{"version":3,"file":"sara-union.mjs","sources":["../../src/app/shared/constantes/Constantes.ts","../../src/app/modules/compensacion/models/EmpleadoModel.ts","../../src/app/modules/sarageneral/models/PublicacionModel.ts","../../src/app/modules/compensacion/models/EmpleadoPuestoModel.ts","../../src/app/modules/talento/models/PuestoTrabajoModel.ts","../../src/app/modules/hojavida/models/AreaConocimientoModel.ts","../../src/app/modules/hojavida/models/HojaVidaModel.ts","../../src/app/modules/jornadadocente/pipes/semestre.pipe.ts","../../src/app/modules/compensacion/pipes/novedad.pipe.ts","../../src/app/modules/compensacion/pipes/liquidacionper.pipe.ts","../../src/app/shared/pipes/listaConstantes.pipe.ts","../../src/app/shared/pipes/ausentismo.pipe.ts","../../src/app/shared/pipes/general.pipe.ts","../../src/app/shared/pipes/parametroFormato.pipe.ts","../../src/app/shared/pipes/gestionReporte.pipe.ts","../../src/app/modules/talento/pipes/parametros-evaluacion.pipe.ts","../../src/app/shared/servicios/general.service.ts","../../src/app/shared/servicios/sara-aplicacion.service.ts","../../src/app/modules/talento/services/puesto-trabajo.service.ts","../../src/app/modules/actos/models/FormatoModel.ts","../../src/app/modules/actos/models/ActoIngresoAusenciaModel.ts","../../src/app/modules/compensacion/models/TipoAusenciaModel.ts","../../src/app/modules/compensacion/models/DatosBasicosEmpresaModel.ts","../../src/app/shared/pipes/parametrosCompensacion.pipe.ts","../../src/app/modules/compensacion/services/empleado.service.ts","../../src/app/shared/pipes/datosBasicosEmpresaCons.pipe.ts","../../src/app/modules/talento/pipes/descripcion-cargo.pipe.ts","../../src/app/modules/saludocupacional/models/DiagnosticoSaludModel.ts","../../src/app/shared/componentes/input-helper-diagnostico/input-helper-diagnostico.component.ts","../../src/app/shared/componentes/input-helper-diagnostico/input-helper-diagnostico.component.html","../../src/app/modules/hojavida/models/UbicacionGeograficaModel.ts","../../src/app/shared/componentes/input-helper-nacionalidad/input-helper-nacionalidad.component.ts","../../src/app/shared/componentes/input-helper-nacionalidad/input-helper-nacionalidad.component.html","../../src/app/shared/componentes/input-helper-ubicacion/input-helper-ubicacion.component.ts","../../src/app/shared/componentes/input-helper-ubicacion/input-helper-ubicacion.component.html","../../src/app/modules/compensacion/models/EmpresaModel.ts","../../src/app/shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component.ts","../../src/app/shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component.html","../../src/app/modules/saludocupacional/models/PlanInversionModel.ts","../../src/app/modules/saludocupacional/models/TipoInversionModel.ts","../../src/app/modules/bienestar/pipes/bienestar.pipe.ts","../../src/app/shared/componentes/input-helper-seleccion-plan-inversion/input-helper-seleccion-plan-inversion.component.ts","../../src/app/shared/componentes/input-helper-seleccion-plan-inversion/input-helper-seleccion-plan-inversion.component.html","../../src/app/modules/hojavida/models/IdiomaModel.ts","../../src/app/shared/componentes/input-helper-idioma/input-helper-idioma.component.ts","../../src/app/shared/componentes/input-helper-idioma/input-helper-idioma.component.html","../../src/app/shared/componentes/input-helper-area-conocimiento/input-helper-area-conocimiento.component.ts","../../src/app/shared/componentes/input-helper-area-conocimiento/input-helper-area-conocimiento.component.html","../../src/app/modules/hojavida/models/InstitucionModel.ts","../../src/app/shared/componentes/input-helper-seleccion-institucion/input-helper-seleccion-institucion.component.ts","../../src/app/shared/componentes/input-helper-seleccion-institucion/input-helper-seleccion-institucion.component.html","../../src/app/modules/hojavida/models/ProfesionOficioModel.ts","../../src/app/shared/componentes/input-helper-profesion-oficio/input-helper-profesion-oficio.component.ts","../../src/app/shared/componentes/input-helper-profesion-oficio/input-helper-profesion-oficio.component.html","../../src/app/modules/hojavida/models/ArchivoModel.ts","../../src/app/shared/servicios/cargar-archivos.service.ts","../../src/app/shared/pipes/hojavida.pipe.ts","../../src/app/modules/hojavida/services/archivo-anexo-hoja-vida.service.ts","../../src/app/shared/componentes/input-helper-cargar-archivo-hoja-vida/input-helper-cargar-archivo-hoja-vida.component.ts","../../src/app/shared/componentes/input-helper-cargar-archivo-hoja-vida/input-helper-cargar-archivo-hoja-vida.component.html","../../src/app/modules/sarageneral/models/ListaModel.ts","../../src/app/modules/talento/models/UnidadOrganizacionalModel.ts","../../src/app/shared/componentes/input-helper-unidad/input-helper-unidad.component.ts","../../src/app/shared/componentes/input-helper-unidad/input-helper-unidad.component.html","../../src/app/modules/talento/models/CargoModel.ts","../../src/app/shared/componentes/input-helper-cargo/input-helper-cargo.component.ts","../../src/app/shared/componentes/input-helper-cargo/input-helper-cargo.component.html","../../src/app/modules/compensacion/pipes/pipe-jornada.pipe.ts","../../src/app/modules/bienestar/popup/input-helper-horario-bienestar-eventos/input-helper-horario-bienestar-eventos.component.ts","../../src/app/modules/bienestar/popup/input-helper-horario-bienestar-eventos/input-helper-horario-bienestar-eventos.component.html","../../src/app/modules/saludocupacional/models/InstructorEntidadModel.ts","../../src/app/modules/saludocupacional/service/entidad-instructor.service.ts","../../src/app/shared/componentes/input-helper-instructor-evento/input-helper-instructor-evento.component.ts","../../src/app/shared/componentes/input-helper-instructor-evento/input-helper-instructor-evento.component.html","../../src/app/modules/jornadadocente/models/SemestreModel.ts","../../src/app/shared/componentes/input-helper-semestre/input-helper-semestre.component.ts","../../src/app/shared/componentes/input-helper-semestre/input-helper-semestre.component.html","../../src/app/shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component.ts","../../src/app/shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component.html","../../src/app/shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component.ts","../../src/app/shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component.html","../../src/app/modules/compensacion/models/AusenciaModel.ts","../../src/app/modules/compensacion/models/EntidadModel.ts","../../src/app/modules/compensacion/models/IncapacidadRecuperaModel.ts","../../src/app/modules/controltiempos/models/CodigoBaseTiempoModel.ts","../../src/app/shared/componentes/input-helper-empleado/input-helper-empleado.component.ts","../../src/app/shared/componentes/input-helper-empleado/input-helper-empleado.component.html","../../src/app/modules/compensacion/pipes/seguridad-social.pipe.ts","../../src/app/shared/componentes/input-helper-incapacidad-recupera/input-helper-incapacidad-recupera.component.ts","../../src/app/shared/componentes/input-helper-incapacidad-recupera/input-helper-incapacidad-recupera.component.html","../../src/app/modules/compensacion/models/ServicioEntidadExternaModel.ts","../../src/app/shared/componentes/input-helper-seleccion-sucursal-entidad/input-helper-seleccion-sucursal-entidad.component.ts","../../src/app/shared/componentes/input-helper-seleccion-sucursal-entidad/input-helper-seleccion-sucursal-entidad.component.html","../../src/app/shared/pipes/periodo.pipe.ts","../../src/app/shared/componentes/input-helper-periodo/input-helper-periodo.component.ts","../../src/app/shared/componentes/input-helper-periodo/input-helper-periodo.component.html","../../src/app/shared/componentes/input-helper-variable-fecha/input-helper-variable-fecha.component.ts","../../src/app/shared/componentes/input-helper-variable-fecha/input-helper-variable-fecha.component.html","../../src/app/modules/compensacion/models/VariableModel.ts","../../src/app/shared/componentes/input-helper-seleccion-variable/input-helper-seleccion-variable.component.ts","../../src/app/shared/componentes/input-helper-seleccion-variable/input-helper-seleccion-variable.component.html","../../src/app/modules/talento/models/FaseGestionModel.ts","../../src/app/modules/talento/models/PlanillaGestionModel.ts","../../src/app/modules/talento/models/GestionPeriodoModel.ts","../../src/app/modules/talento/models/TipoPuestoTrabajoModel.ts","../../src/app/shared/servicios/cargar-mapas.service.ts","../../src/app/modules/talento/services/select-list-evaluaciones.service.ts","../../src/app/shared/componentes/input-helper-planta-lider/input-helper-planta-lider.component.ts","../../src/app/shared/componentes/input-helper-planta-lider/input-helper-planta-lider.component.html","../../src/app/modules/compensacion/models/UbicacionFisicaModel.ts","../../src/app/modules/compensacion/pipes/ubicacionFisica.pipe.ts","../../src/app/shared/componentes/input-helper-seleccion-ubicacion-fisica/input-helper-seleccion-ubicacion-fisica.component.ts","../../src/app/shared/componentes/input-helper-seleccion-ubicacion-fisica/input-helper-seleccion-ubicacion-fisica.component.html","../../src/app/modules/jornadadocente/models/GrupoAsignaturaModel.ts","../../src/app/shared/componentes/input-helper-grupo-asignatura/input-helper-grupo-asignatura.component.ts","../../src/app/shared/componentes/input-helper-grupo-asignatura/input-helper-grupo-asignatura.component.html","../../src/app/shared/pipes/tipoNovedadCons.pipe.ts","../../src/app/modules/hojavida/pages/hojavida/formulario-nuevo/formulario-nuevo.component.ts","../../src/app/modules/hojavida/pages/hojavida/formulario-nuevo/formulario-nuevo.component.html","../../src/app/modules/compensacion/models/ConceptoModel.ts","../../src/app/modules/compensacion/services/concepto.service.ts","../../src/app/shared/componentes/input-helper-seleccion-concepto/input-helper-seleccion-concepto.component.ts","../../src/app/shared/componentes/input-helper-seleccion-concepto/input-helper-seleccion-concepto.component.html","../../src/app/shared/componentes/input-helper-seleccion-materia/input-helper-seleccion-materia.component.ts","../../src/app/shared/componentes/input-helper-seleccion-materia/input-helper-seleccion-materia.component.html","../../src/app/modules/hojavida/models/CoAutoresModel.ts","../../src/app/shared/pipes/solicitudPuntajeDocente.pipe.ts","../../src/app/modules/hojavida/pages/coautor/coautor.component.ts","../../src/app/modules/hojavida/pages/coautor/coautor.component.html","../../src/app/modules/hojavida/popups/cambiar-tipo-hoja/cambiar-tipo-hoja.component.ts","../../src/app/modules/hojavida/popups/cambiar-tipo-hoja/cambiar-tipo-hoja.component.html","../../src/app/modules/compensacion/models/PlanillaModel.ts","../../src/app/modules/hojavida/models/VinculacionModel.ts","../../src/app/modules/talento/models/OrganizacionModel.ts","../../src/app/modules/hojavida/services/hojavida.service.ts","../../src/app/modules/hojavida/popups/popup-hojavida-impresion/popup-hojavida-impresion.component.ts","../../src/app/modules/hojavida/popups/popup-hojavida-impresion/popup-hojavida-impresion.component.html","../../src/app/modules/hojavida/models/EquipoIntegranteModel.ts","../../src/app/modules/hojavida/models/HojaIntelectoModel.ts","../../src/app/modules/hojavida/models/HojaParienteModel.ts","../../src/app/modules/hojavida/models/HojaPatrimonioModel.ts","../../src/app/modules/hojavida/models/SeccionModel.ts","../../src/app/modules/hojavida/models/HojaNotaSeccionModel.ts","../../src/app/modules/hojavida/popups/popup-cambiar-cedula/popup-cambiar-cedula.component.ts","../../src/app/modules/hojavida/popups/popup-cambiar-cedula/popup-cambiar-cedula.component.html","../../src/app/shared/servicios/encriptado-basico.service.ts","../../src/app/shared/componentes/input-helper-seleccion-entidad/input-helper-seleccion-entidad.component.ts","../../src/app/shared/componentes/input-helper-seleccion-entidad/input-helper-seleccion-entidad.component.html","../../src/app/modules/talento/models/TemaModel.ts","../../src/app/shared/componentes/input-helper-temas/input-helper-temas.component.ts","../../src/app/shared/componentes/input-helper-temas/input-helper-temas.component.html","../../src/app/modules/hojavida/models/EstadoCivilModel.ts","../../src/app/shared/componentes/input-helper-estado-civil/input-helper-estado-civil.component.ts","../../src/app/shared/componentes/input-helper-estado-civil/input-helper-estado-civil.component.html","../../src/app/modules/hojavida/models/NivelAcademicoModel.ts","../../src/app/shared/componentes/input-helper-nivel-academico/input-helper-nivel-academico.component.ts","../../src/app/shared/componentes/input-helper-nivel-academico/input-helper-nivel-academico.component.html","../../src/app/modules/hojavida/models/CodigoBaseHovModel.ts","../../src/app/shared/componentes/input-helper-codigo-base-hov/input-helper-codigo-base-hov.component.ts","../../src/app/shared/componentes/input-helper-codigo-base-hov/input-helper-codigo-base-hov.component.html","../../src/app/modules/hojavida/models/TipoDocumentoModel.ts","../../src/app/shared/componentes/input-helper-tipo-documento/input-helper-tipo-documento.component.ts","../../src/app/shared/componentes/input-helper-tipo-documento/input-helper-tipo-documento.component.html","../../src/app/shared/componentes/input-helper-tipo-vinculacion/input-helper-tipo-vinculacion.component.ts","../../src/app/shared/componentes/input-helper-tipo-vinculacion/input-helper-tipo-vinculacion.component.html","../../src/app/modules/saludocupacional/models/SucursalGesModel.ts","../../src/app/shared/componentes/input-helper-sucursal-ges/input-helper-sucursal-ges.component.ts","../../src/app/shared/componentes/input-helper-sucursal-ges/input-helper-sucursal-ges.component.html","../../src/app/shared/pipes/popups-dinamicos.pipe.ts","../../src/app/modules/hojavida/pages/hojavida/detalle-hoja-vida/detalle-hoja-vida.page.ts","../../src/app/modules/hojavida/pages/hojavida/detalle-hoja-vida/detalle-hoja-vida.page.html","../../src/app/shared/componentes/popup-seguimiento/popup-seguimiento.component.ts","../../src/app/shared/componentes/popup-seguimiento/popup-seguimiento.component.html","../../src/app/shared/componentes/cabecera-empleado/cabecera-empleado.component.ts","../../src/app/shared/componentes/cabecera-empleado/cabecera-empleado.component.html","../../src/app/modules/compensacion/models/AusenciaNovedadModel.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/editar-pasivo-ausencia/editar-pasivo-ausencia.component.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/editar-pasivo-ausencia/editar-pasivo-ausencia.component.html","../../src/app/modules/talento/models/ActividadFuenteTareaModel.ts","../../src/app/shared/pipes/safe-html.pipe.ts","../../src/app/modules/sarageneral/services/actividadFuenteTarea.service.ts","../../src/app/modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component.ts","../../src/app/modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component.html","../../src/app/modules/sarageneral/popups/popup-motivo-no-autoriza/popup-motivo-no-autoriza.component.ts","../../src/app/modules/sarageneral/popups/popup-motivo-no-autoriza/popup-motivo-no-autoriza.component.html","../../src/app/modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component.ts","../../src/app/modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component.html","../../src/app/shared/pipes/workflow.pipe.ts","../../src/app/modules/compensacion/services/ausentismo.service.ts","../../src/app/modules/compensacion/pages/ausentismos/vacacion-ausencia-interrupcion/vacacion-ausencia-interrupcion.component.ts","../../src/app/modules/compensacion/pages/ausentismos/vacacion-ausencia-interrupcion/vacacion-ausencia-interrupcion.component.html","../../src/app/modules/compensacion/pipes/ausentismo.pipe.ts","../../src/app/modules/compensacion/ausentismos/vacacion-ausencia-programadas/vacacion-ausencia-programadas.component.ts","../../src/app/modules/compensacion/ausentismos/vacacion-ausencia-programadas/vacacion-ausencia-programadas.component.html","../../src/app/modules/compensacion/models/AusenciaDatoModel.ts","../../src/app/modules/compensacion/models/VariableLiquidacionModel.ts","../../src/app/modules/compensacion/models/NominaAusenciaModel.ts","../../src/app/modules/actos/models/ActoAusenciaModel.ts","../../src/app/modules/compensacion/models/ProcesarPagoVacacionModel.ts","../../src/app/modules/sarageneral/models/DocumentoSoporteModel.ts","../../src/app/modules/compensacion/services/generacionVacaciones.service.ts","../../src/app/shared/pipes/planilla.pipe.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/comprobante-vacaciones/comprobante-vacaciones.component.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/comprobante-vacaciones/comprobante-vacaciones.component.html","../../src/app/modules/compensacion/models/VariablePeriodoFechaModel.ts","../../src/app/modules/compensacion/services/liquidacion-nomina.service.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/popup-variable-fecha-vacacion/popup-variable-fecha-vacacion.component.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/popup-variable-fecha-vacacion/popup-variable-fecha-vacacion.component.html","../../src/app/modules/compensacion/pipes/historicos.pipe.ts","../../src/app/modules/compensacion/services/comprobanteVacacion.service.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/popup-variable-vacacion/popup-variable-vacacion.component.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/popup-variable-vacacion/popup-variable-vacacion.component.html","../../src/app/modules/compensacion/models/TipoServicioModel.ts","../../src/app/modules/compensacion/models/EntidadEmpleadoModel.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/popup-concepto-vacacion/popup-concepto-vacacion.component.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/popup/popup-concepto-vacacion/popup-concepto-vacacion.component.html","../../src/app/modules/compensacion/models/ControlProcesoModel.ts","../../src/app/modules/compensacion/services/control-proceso.service.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/editar-mantenimiento-vacaciones/editar-mantenimiento-vacaciones.page.ts","../../src/app/modules/compensacion/pages/mantenimiento-vacaciones/editar-mantenimiento-vacaciones/editar-mantenimiento-vacaciones.page.html","../../src/app/modules/compensacion/ausentismos/vacacion-ausencia-historico/vacacion-ausencia-historico.component.ts","../../src/app/modules/compensacion/ausentismos/vacacion-ausencia-historico/vacacion-ausencia-historico.component.html","../../src/app/modules/compensacion/models/ProyeccionaVariableModel.ts","../../src/app/modules/compensacion/models/ProyeccionFilaModel.ts","../../src/app/modules/compensacion/models/TipoNovedadModel.ts","../../src/app/modules/compensacion/models/MotivoLiquidaModel.ts","../../src/app/modules/compensacion/models/SucursalEntidadModel.ts","../../src/app/modules/compensacion/models/VinculacionLaboralModel.ts","../../src/app/modules/talento/models/TurnoModel.ts","../../src/app/modules/compensacion/models/ClasificacionModel.ts","../../src/app/modules/compensacion/models/TipoPeriodoModel.ts","../../src/app/modules/compensacion/models/LineaCostoModel.ts","../../src/app/modules/compensacion/models/NivelCargoModel.ts","../../src/app/modules/compensacion/models/CentroCostoModel.ts","../../src/app/modules/compensacion/models/TipoCambioEmpleadoModel.ts","../../src/app/modules/capacitacion/models/TipoActividadModel.ts","../../src/app/modules/compensacion/services/select-list-compensa.service.ts","../../src/app/modules/compensacion/pages/ausentismos/vacacion-ausencia/vacacion-ausencia.component.ts","../../src/app/modules/compensacion/pages/ausentismos/vacacion-ausencia/vacacion-ausencia.component.html","../../src/app/modules/compensacion/ausentismos/popups/popup-seleccion-ausentismo/popup-seleccion-ausentismo.component.ts","../../src/app/modules/compensacion/ausentismos/popups/popup-seleccion-ausentismo/popup-seleccion-ausentismo.component.html","../../src/app/modules/talento/models/RequisitoHojaModel.ts","../../src/app/shared/pipes/parametros.pipe.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/popup-momento-documento/popup-momento-documento.component.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/popup-momento-documento/popup-momento-documento.component.html","../../src/app/modules/compensacion/pages/empleados/licencia-ausencia-solicitud/licencia-ausencia-solicitud.component.ts","../../src/app/modules/compensacion/pages/empleados/licencia-ausencia-solicitud/licencia-ausencia-solicitud.component.html","../../src/app/modules/talento/models/MomentoDocumentoModel.ts","../../src/app/modules/hojavida/models/EmpresaModel.ts","../../src/app/shared/constantes/ImagenesCons.ts","../../src/app/shared/pipes/datoOrganizacion.pipe.ts","../../src/app/modules/compensacion/ausentismos/licencia-ausencia-programadas/licencia-ausencia-programadas.component.ts","../../src/app/modules/compensacion/ausentismos/licencia-ausencia-programadas/licencia-ausencia-programadas.component.html","../../src/app/modules/compensacion/pipes/tipoNovedad.pipe.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/editar-historico-licencia/editar-historico-licencia.component.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/editar-historico-licencia/editar-historico-licencia.component.html","../../src/app/modules/compensacion/pages/empleados/ausentismos/lista-licencias/lista-licencias.component.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/lista-licencias/lista-licencias.component.html","../../src/app/modules/compensacion/pages/empleados/ausentismos/popup-adjunto-respuesta-ausencia/popup-adjunto-respuesta-ausencia.component.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/popup-adjunto-respuesta-ausencia/popup-adjunto-respuesta-ausencia.component.html","../../src/app/modules/compensacion/ausentismos/incapacidad-ausencia-programadas/incapacidad-ausencia-programadas.component.ts","../../src/app/modules/compensacion/ausentismos/incapacidad-ausencia-programadas/incapacidad-ausencia-programadas.component.html","../../src/app/modules/compensacion/models/SeguridadSocialModel.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/editar-historico-incapacidades/editar-historico-incapacidades.component.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/editar-historico-incapacidades/editar-historico-incapacidades.component.html","../../src/app/modules/compensacion/pages/empleados/ausentismos/lista-incapacidades/lista-incapacidades.component.ts","../../src/app/modules/compensacion/pages/empleados/ausentismos/lista-incapacidades/lista-incapacidades.component.html","../../src/app/modules/compensacion/popups/popup-documento-novedad/popup-documento-novedad.component.ts","../../src/app/modules/compensacion/popups/popup-documento-novedad/popup-documento-novedad.component.html","../../src/app/modules/talento/models/DatoorganizacionModel.ts","../../src/app/modules/compensacion/models/LiquidacionperModel.ts","../../src/app/modules/compensacion/models/NovedadDatoModel.ts","../../src/app/modules/compensacion/models/PeriodoConcBaseModel.ts","../../src/app/modules/compensacion/models/NovedadModel.ts","../../src/app/modules/compensacion/models/VariableFechaModel.ts","../../src/app/modules/compensacion/models/CodigoBaseCompensacionModel.ts","../../src/app/modules/compensacion/models/ItemTipoNovedadModel.ts","../../src/app/modules/compensacion/popups/popup-seleccion-novedad-multiple/popup-seleccion-novedad-multiple.component.ts","../../src/app/modules/compensacion/popups/popup-seleccion-novedad-multiple/popup-seleccion-novedad-multiple.component.html","../../src/app/modules/actos/models/FormatoDatoModel.ts","../../src/app/modules/actos/models/ActoCambioEmpleadoModel.ts","../../src/app/modules/compensacion/models/UnidadUsuarioModel.ts","../../src/app/shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component.ts","../../src/app/shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component.html","../../src/app/modules/actos/pages/actos-administrativos/info-datos-planta/info-datos-planta.component.ts","../../src/app/modules/actos/pages/actos-administrativos/info-datos-planta/info-datos-planta.component.html","../../src/app/modules/actos/models/RolesModel.ts","../../src/app/modules/actos/services/acto-cambio-empleado.service.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-datos-puesto/actos-datos-puesto.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-datos-puesto/actos-datos-puesto.component.html","../../src/app/modules/actos/popups/popup-seleccion-puesto/popup-seleccion-puesto.component.ts","../../src/app/modules/actos/popups/popup-seleccion-puesto/popup-seleccion-puesto.component.html","../../src/app/modules/actos/popups/popup-antecesor/popup-antecesor.component.ts","../../src/app/modules/actos/popups/popup-antecesor/popup-antecesor.component.html","../../src/app/modules/actos/services/formato.service.ts","../../src/app/shared/pipes/campoFormulario.pipe.ts","../../src/app/modules/compensacion/services/planilla.service.ts","../../src/app/modules/actos/models/FormatoMotivoModel.ts","../../src/app/modules/actos/services/select-list-actos.service.ts","../../src/app/modules/actos/pages/actos-administrativos/acto-traslado/acto-traslado.component.ts","../../src/app/modules/actos/pages/actos-administrativos/acto-traslado/acto-traslado.component.html","../../src/app/modules/actos/models/DatoActoAdmonModel.ts","../../src/app/modules/actos/pages/actos-administrativos/mostrar-datos-combinacion-acto-ingreso/mostrar-datos-combinacion-acto-ingreso.component.ts","../../src/app/modules/actos/pages/actos-administrativos/mostrar-datos-combinacion-acto-ingreso/mostrar-datos-combinacion-acto-ingreso.component.html","../../src/app/modules/actos/models/UsuarioFormatoModel.ts","../../src/app/modules/actos/pages/actos-administrativos/acto-cambio-puesto/acto-cambio-puesto.component.ts","../../src/app/modules/actos/pages/actos-administrativos/acto-cambio-puesto/acto-cambio-puesto.component.html","../../src/app/modules/actos/pages/actos-administrativos/mostrar-datos-combinacion-acto-ausencia/mostrar-datos-combinacion-acto-ausencia.component.ts","../../src/app/modules/actos/pages/actos-administrativos/mostrar-datos-combinacion-acto-ausencia/mostrar-datos-combinacion-acto-ausencia.component.html","../../src/app/modules/actos/popups/popup-subir-archivo-actos/popup-subir-archivo-actos.component.ts","../../src/app/modules/actos/popups/popup-subir-archivo-actos/popup-subir-archivo-actos.component.html","../../src/app/modules/actos/services/acto-ausencia.service.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-ausencia-terminacion/actos-ausencia-terminacion.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-ausencia-terminacion/actos-ausencia-terminacion.component.html","../../src/app/modules/compensacion/services/tiponovedad.service.ts","../../src/app/modules/compensacion/models/ProcedimientoNovedadModel.ts","../../src/app/modules/compensacion/services/solicitud.service.ts","../../src/app/modules/compensacion/services/novedad.service.ts","../../src/app/modules/compensacion/services/usuario-formato.service.ts","../../src/app/modules/compensacion/pages/novedades/mantenimiento-detalle-novedad/mantenimiento-detalle-novedad.component.ts","../../src/app/modules/compensacion/pages/novedades/mantenimiento-detalle-novedad/mantenimiento-detalle-novedad.component.html","../../src/app/modules/compensacion/models/NovedadMasivaWrapper.ts","../../src/app/modules/compensacion/models/MateriaModel.ts","../../src/app/modules/compensacion/pages/novedades/registro-novedad-masiva-cont/registro-novedad-masiva-cont.component.ts","../../src/app/modules/compensacion/pages/novedades/registro-novedad-masiva-cont/registro-novedad-masiva-cont.component.html","../../src/app/modules/compensacion/pages/empleados/listado-novedad-empleado/listado-novedad-empleado.component.ts","../../src/app/modules/compensacion/pages/empleados/listado-novedad-empleado/listado-novedad-empleado.component.html","../../src/app/modules/hojavida/models/HojaCaracteristicaModel.ts","../../src/app/modules/compensacion/models/SolicitudModel.ts","../../src/app/modules/compensacion/popups/popup-motivo-no-solicitud/popup-motivo-no-solicitud.component.ts","../../src/app/modules/compensacion/popups/popup-motivo-no-solicitud/popup-motivo-no-solicitud.component.html","../../src/app/modules/compensacion/pages/solicitudes/detalle-solicitud/detalle-solicitud.component.ts","../../src/app/modules/compensacion/pages/solicitudes/detalle-solicitud/detalle-solicitud.component.html","../../src/app/modules/compensacion/pages/empleados/listado-solicitud/listado-solicitud.component.ts","../../src/app/modules/compensacion/pages/empleados/listado-solicitud/listado-solicitud.component.html","../../src/app/modules/compensacion/pipes/publicacion.pipe.ts","../../src/app/modules/compensacion/pages/empleados/listado-publicaciones/listado-publicaciones.component.ts","../../src/app/modules/compensacion/pages/empleados/listado-publicaciones/listado-publicaciones.component.html","../../src/app/modules/talento/models/TipoUnidadModel.ts","../../src/app/modules/talento/models/UnidadOrganizacionModel.ts","../../src/app/modules/talento/pages/planta-personal/popup-unidades-vigentes-planta/popup-unidades-vigentes-planta.component.ts","../../src/app/modules/talento/pages/planta-personal/popup-unidades-vigentes-planta/popup-unidades-vigentes-planta.component.html","../../src/app/modules/talento/services/unidadorganizacional.service.ts","../../src/app/modules/talento/pages/planta-personal/popup-unidad-organizacional/popup-unidad-organizacional.component.ts","../../src/app/modules/talento/pages/planta-personal/popup-unidad-organizacional/popup-unidad-organizacional.component.html","../../src/app/modules/talento/models/PerfilFuncionModel.ts","../../src/app/modules/talento/models/UnidadCargoModel.ts","../../src/app/modules/talento/models/NovedadPerfilModel.ts","../../src/app/modules/sarageneral/models/OrdenarModel.ts","../../src/app/modules/talento/models/DimensionCargoModel.ts","../../src/app/modules/talento/models/DimensionModel.ts","../../src/app/modules/talento/models/DimensionFactorModel.ts","../../src/app/modules/hojavida/models/CaracteristicaModel.ts","../../src/app/modules/talento/models/TablaCaracteristicaModel.ts","../../src/app/modules/talento/models/ValorCalificaModel.ts","../../src/app/modules/talento/services/dimension-cargo.service.ts","../../src/app/modules/talento/services/perfil-funcion.service.ts","../../src/app/modules/talento/services/competencias.service.ts","../../src/app/modules/talento/pipes/tabla-caracteristica.pipe.ts","../../src/app/modules/talento/pages/descripcion-cargo/competencias/competencias.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/competencias/competencias.component.html","../../src/app/modules/talento/models/FuncionPuestraModel.ts","../../src/app/modules/talento/services/funcion-puestra.service.ts","../../src/app/modules/talento/pages/descripcion-cargo/funcion-puestra/funcion-puestra.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/funcion-puestra/funcion-puestra.component.html","../../src/app/modules/talento/models/PerfilCargoModel.ts","../../src/app/modules/talento/services/talento-pm.service.ts","../../src/app/modules/talento/pages/descripcion-cargo/perfil-cargo/perfil-cargo.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/perfil-cargo/perfil-cargo.component.html","../../src/app/modules/talento/models/PerfilTablasModel.ts","../../src/app/modules/talento/models/CursoModel.ts","../../src/app/modules/talento/services/tabla-adicional.service.ts","../../src/app/shared/pipes/evento.pipe.ts","../../src/app/modules/talento/services/perfil-tablas.service.ts","../../src/app/modules/talento/pages/descripcion-cargo/tabla-adicional/tabla-adicional.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/tabla-adicional/tabla-adicional.component.html","../../src/app/modules/talento/pages/descripcion-cargo/competencias-externas/competencias-externas.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/competencias-externas/competencias-externas.component.html","../../src/app/modules/talento/models/PerfilFuncionContratoModel.ts","../../src/app/modules/talento/services/descripcion-cargo.service.ts","../../src/app/modules/talento/pages/descripcion-cargo/perfil-contratos/perfil-contratos.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/perfil-contratos/perfil-contratos.component.html","../../src/app/modules/talento/pages/descripcion-cargo/encabezado-descripcion-cargo/encabezado-descripcion-cargo.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/encabezado-descripcion-cargo/encabezado-descripcion-cargo.component.html","../../src/app/modules/talento/services/dato-organizacion.service.ts","../../src/app/modules/talento/pages/descripcion-cargo/descripcion-cargo/descripcion-cargo.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/descripcion-cargo/descripcion-cargo.component.html","../../src/app/modules/talento/popups/popup-lista-puesto-trabajo/popup-lista-puesto-trabajo.component.ts","../../src/app/modules/talento/popups/popup-lista-puesto-trabajo/popup-lista-puesto-trabajo.component.html","../../src/app/modules/talento/pages/descripcion-cargo/listado-descripcion-cargo/listado-descripcion-cargo.component.ts","../../src/app/modules/talento/pages/descripcion-cargo/listado-descripcion-cargo/listado-descripcion-cargo.component.html","../../src/app/modules/talento/models/ProcesoSeleccionModel.ts","../../src/app/modules/talento/models/EtapaProcesoModel.ts","../../src/app/modules/talento/models/CandidatoModel.ts","../../src/app/modules/talento/models/EntrevistaPruebaModel.ts","../../src/app/modules/talento/models/EvaluacionEntPruModel.ts","../../src/app/modules/sarageneral/models/FuenteTareaFiltroModel.ts","../../src/app/modules/talento/models/DimensionGestionHojaModel.ts","../../src/app/modules/talento/popups/popup-cambio-estado-candidato/popup-cambio-estado-candidato.component.ts","../../src/app/modules/talento/popups/popup-cambio-estado-candidato/popup-cambio-estado-candidato.component.html","../../src/app/modules/talento/pipes/tipo-actividad.pipe.ts","../../src/app/modules/sarageneral/services/procesoSeleccionCandidatoFacade.service.ts","../../src/app/modules/talento/services/proceso-seleccion.service.ts","../../src/app/modules/talento/services/candidato.service.ts","../../src/app/modules/talento/services/dimensionGestionHoja.service.ts","../../src/app/modules/talento/pages/convocatoria/mantenimiento-candidato/mantenimiento-candidato.page.ts","../../src/app/modules/talento/pages/convocatoria/mantenimiento-candidato/mantenimiento-candidato.page.html","../../src/app/modules/talento/services/convocatoria.service.ts","../../src/app/modules/talento/services/reclamacion-proceso.service.ts","../../src/app/modules/talento/services/etapa-proceso.service.ts","../../src/app/modules/talento/pipes/convocatoria-pipe.pipe.ts","../../src/app/modules/talento/pipes/autoservicio.pipe.ts","../../src/app/modules/talento/pages/convocatoria/listado-convocatoria-talento/listado-convocatoria-talento.component.ts","../../src/app/modules/talento/pages/convocatoria/listado-convocatoria-talento/listado-convocatoria-talento.component.html","../../src/app/modules/bienestar/models/CodigoBaseTalentoModel.ts","../../src/app/modules/capacitacion/models/EventoModel.ts","../../src/app/modules/capacitacion/models/TipoEventoModel.ts","../../src/app/modules/bienestar/models/EventoParticipaModel.ts","../../src/app/modules/capacitacion/models/AsistenteEventoModel.ts","../../src/app/modules/bienestar/models/MomentoEventoModel.ts","../../src/app/modules/capacitacion/models/GrupoTalentoModel.ts","../../src/app/modules/bienestar/models/TerceroTalentoModel.ts","../../src/app/modules/capacitacion/models/TipoCostoModel.ts","../../src/app/modules/bienestar/models/ConvenioBienestarModel.ts","../../src/app/modules/bienestar/models/BeneficioModel.ts","../../src/app/modules/bienestar/pipes/instructor-entidad.pipe.ts","../../src/app/modules/bienestar/services/bienestar.service.ts","../../src/app/modules/bienestar/pages/evento-bienestar/detalle-grupo-evento/detalle-grupo-evento.component.ts","../../src/app/modules/bienestar/pages/evento-bienestar/detalle-grupo-evento/detalle-grupo-evento.component.html","../../src/app/modules/bienestar/models/FiltroFamiliaModel.ts","../../src/app/modules/bienestar/models/FiltroEmpleadoFamiliaModel.ts","../../src/app/modules/bienestar/models/FiltroEmpleadoModel.ts","../../src/app/modules/talento/models/RequisitoModel.ts","../../src/app/modules/compensacion/models/EstadoLaboralModel.ts","../../src/app/shared/componentes/input-helper-filtro-empleado/input-helper-filtro-empleado.component.ts","../../src/app/shared/componentes/input-helper-filtro-empleado/input-helper-filtro-empleado.component.html","../../src/app/modules/bienestar/services/bienestar-logica.service.ts","../../src/app/modules/bienestar/pages/evento-bienestar/detalle-individual-evento/detalle-individual-evento.component.ts","../../src/app/modules/bienestar/pages/evento-bienestar/detalle-individual-evento/detalle-individual-evento.component.html","../../src/app/modules/compensacion/services/requisito.service.ts","../../src/app/modules/bienestar/pages/convocatoria-evento/listado-convocatoria-evento/listado-convocatoria-evento.component.ts","../../src/app/modules/bienestar/pages/convocatoria-evento/listado-convocatoria-evento/listado-convocatoria-evento.component.html","../../src/app/modules/bienestar/models/BeneficioEmpleadoModel.ts","../../src/app/modules/bienestar/models/TipoBeneficioModel.ts","../../src/app/modules/bienestar/models/BeneficioTipoCostoModel.ts","../../src/app/modules/bienestar/services/beneficio.service.ts","../../src/app/modules/bienestar/popup/input-helper-multiple-formalizacion/input-helper-multiple-formalizacion.component.ts","../../src/app/modules/bienestar/popup/input-helper-multiple-formalizacion/input-helper-multiple-formalizacion.component.html","../../src/app/modules/bienestar/popup/input-helper-cambio-plan-inversion/input-helper-cambio-plan-inversion.component.ts","../../src/app/modules/bienestar/popup/input-helper-cambio-plan-inversion/input-helper-cambio-plan-inversion.component.html","../../src/app/modules/bienestar/services/filtro-empleado.service.ts","../../src/app/modules/bienestar/services/beneficio-tipo-costo.service.ts","../../src/app/modules/bienestar/pages/beneficios/detalle-beneficiario/detalle-beneficiario.component.ts","../../src/app/modules/bienestar/pages/beneficios/detalle-beneficiario/detalle-beneficiario.component.html","../../src/app/modules/bienestar/pages/convocatoria-beneficios/listado-convocatoria-beneficio/listado-convocatoria-beneficio.component.ts","../../src/app/modules/bienestar/pages/convocatoria-beneficios/listado-convocatoria-beneficio/listado-convocatoria-beneficio.component.html","../../src/app/modules/bienestar/pages/beneficios/beneficio-menu-bienestar/beneficio-menu-bienestar.component.ts","../../src/app/modules/bienestar/pages/beneficios/beneficio-menu-bienestar/beneficio-menu-bienestar.component.html","../../src/app/modules/bienestar/services/parametros-generales.service.ts","../../src/app/modules/bienestar/pages/beneficios/listado-beneficiario/listado-beneficiario.component.ts","../../src/app/modules/bienestar/pages/beneficios/listado-beneficiario/listado-beneficiario.component.html","../../src/app/modules/capacitacion/pages/control-eventos-capacitacion/pages-control-eventos/Evaluacion/instructor-evaluacion/cabecera-evaluacion-evento-empleado/cabecera-evaluacion-evento-empleado.component.ts","../../src/app/modules/capacitacion/pages/control-eventos-capacitacion/pages-control-eventos/Evaluacion/instructor-evaluacion/cabecera-evaluacion-evento-empleado/cabecera-evaluacion-evento-empleado.component.html","../../src/app/modules/talento/models/EvaluacionFactorModel.ts","../../src/app/modules/talento/services/evaluacion-ent-pru.service.ts","../../src/app/modules/talento/popups/popup-seccion-hoja/popup-seccion-hoja.component.ts","../../src/app/modules/talento/popups/popup-seccion-hoja/popup-seccion-hoja.component.html","../../src/app/modules/talento/pipes/evaluaciones.pipe.ts","../../src/app/modules/talento/popups/popup-etapa-proceso/popup-etapa-proceso.component.ts","../../src/app/modules/talento/popups/popup-etapa-proceso/popup-etapa-proceso.component.html","../../src/app/modules/capacitacion/pages/control-eventos-capacitacion/pages-control-eventos/Evaluacion/instructor-evaluacion/detalle-preguntas-evaluacion-procesoseleccion/detalle-preguntas-evaluacion-procesoseleccion.component.ts","../../src/app/modules/capacitacion/pages/control-eventos-capacitacion/pages-control-eventos/Evaluacion/instructor-evaluacion/detalle-preguntas-evaluacion-procesoseleccion/detalle-preguntas-evaluacion-procesoseleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/detalle-proceso-seleccion/detalle-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/detalle-proceso-seleccion/detalle-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/proceso-seleccion-menu/proceso-seleccion-menu.page.ts","../../src/app/modules/talento/pages/proceso-seleccion/proceso-seleccion-menu/proceso-seleccion-menu.page.html","../../src/app/modules/talento/pages/proceso-seleccion/evaluacion-proceso-seleccion/evaluacion-proceso-seleccion.page.ts","../../src/app/modules/talento/pages/proceso-seleccion/evaluacion-proceso-seleccion/evaluacion-proceso-seleccion.page.html","../../src/app/modules/actos/popups/popup-seleccionar-derogar/popup-seleccionar-derogar.component.ts","../../src/app/modules/actos/popups/popup-seleccionar-derogar/popup-seleccionar-derogar.component.html","../../src/app/modules/actos/models/ActosAdminTablaModel.ts","../../src/app/modules/jornadadocente/models/AsignaturaModel.ts","../../src/app/modules/compensacion/pages/empleados/beneficiarios-entidad/beneficiarios-entidad.component.ts","../../src/app/modules/compensacion/pages/empleados/beneficiarios-entidad/beneficiarios-entidad.component.html","../../src/app/modules/compensacion/services/entidadempleado.service.ts","../../src/app/modules/compensacion/pages/empleados/popups/popup-entidad-datos-basicos-empleado/popup-entidad-datos-basicos-empleado.component.ts","../../src/app/modules/compensacion/pages/empleados/popups/popup-entidad-datos-basicos-empleado/popup-entidad-datos-basicos-empleado.component.html","../../src/app/modules/actos/popups/popup-formato-tabla-formu-dinamico-actos/popup-formato-tabla-formu-dinamico-actos.component.ts","../../src/app/modules/actos/popups/popup-formato-tabla-formu-dinamico-actos/popup-formato-tabla-formu-dinamico-actos.component.html","../../src/app/modules/actos/popups/popup-ingreso-materias/popup-ingreso-materias.component.ts","../../src/app/modules/actos/popups/popup-ingreso-materias/popup-ingreso-materias.component.html","../../src/app/shared/componentes/cabecera-hoja-vida/cabecera-hoja-vida.component.ts","../../src/app/shared/componentes/cabecera-hoja-vida/cabecera-hoja-vida.component.html","../../src/app/modules/controltiempos/pipes/personaCons.pipe.ts","../../src/app/modules/actos/services/acto-ingreso.service.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-ingreso/actos-ingreso.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-ingreso/actos-ingreso.component.html","../../src/app/modules/actos/pages/actos-administrativos/actos-prorroga-temporal/actos-prorroga-temporal.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-prorroga-temporal/actos-prorroga-temporal.component.html","../../src/app/modules/actos/models/ActoAdministrativosPdfModel.ts","../../src/app/modules/actos/models/ActoEspecialModel.ts","../../src/app/modules/compensacion/models/SeleccionReporteModel.ts","../../src/app/modules/actos/pages/formato/popup-columna-especial/popup-columna-especial.component.ts","../../src/app/modules/actos/pages/formato/popup-columna-especial/popup-columna-especial.component.html","../../src/app/modules/actos/services/acto-especial.service.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-especiales/actos-especiales.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-especiales/actos-especiales.component.html","../../src/app/modules/actos/models/ActoMovPlantaModel.ts","../../src/app/modules/actos/services/acto-mov-planta.service.ts","../../src/app/modules/actos/pages/actos-administrativos/mostrar-datos-combinacion-acto-mov-planta/mostrar-datos-combinacion-acto-mov-planta.component.ts","../../src/app/modules/actos/pages/actos-administrativos/mostrar-datos-combinacion-acto-mov-planta/mostrar-datos-combinacion-acto-mov-planta.component.html","../../src/app/modules/actos/pages/actos-administrativos/info-empleado-ocupa-mov-planta/info-empleado-ocupa-mov-planta.component.ts","../../src/app/modules/actos/pages/actos-administrativos/info-empleado-ocupa-mov-planta/info-empleado-ocupa-mov-planta.component.html","../../src/app/modules/actos/pages/actos-administrativos/actos-mov-planta-crea-elimina/actos-mov-planta-crea-elimina.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-mov-planta-crea-elimina/actos-mov-planta-crea-elimina.component.html","../../src/app/modules/actos/pages/actos-administrativos/actos-mov-planta-libera-traslada/actos-mov-planta-libera-traslada.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-mov-planta-libera-traslada/actos-mov-planta-libera-traslada.component.html","../../src/app/modules/compensacion/models/PeriodoModel.ts","../../src/app/modules/compensacion/models/ParametrosGeneralModel.ts","../../src/app/modules/compensacion/pages/generacion-vacaciones/popup-comprobante-vacaciones/popup-comprobante-vacaciones.component.ts","../../src/app/modules/compensacion/pages/generacion-vacaciones/popup-comprobante-vacaciones/popup-comprobante-vacaciones.component.html","../../src/app/modules/actos/services/acto-vacaciones.service.ts","../../src/app/modules/actos/services/parametroFormatoWeb.service.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-vacaciones/actos-vacaciones.component.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-vacaciones/actos-vacaciones.component.html","../../src/app/modules/actos/pages/actos-administrativos/actos-administrativos/actos-administrativos.page.ts","../../src/app/modules/actos/pages/actos-administrativos/actos-administrativos/actos-administrativos.page.html","../../src/app/shared/componentes/input-helper-unidad-usuario/input-helper-unidad-usuario/input-helper-unidad-usuario.component.ts","../../src/app/shared/componentes/input-helper-unidad-usuario/input-helper-unidad-usuario/input-helper-unidad-usuario.component.html","../../src/app/modules/compensacion/pages/control-prorroga/listado-control-prorroga/listado-control-prorroga.component.ts","../../src/app/modules/compensacion/pages/control-prorroga/listado-control-prorroga/listado-control-prorroga.component.html","../../src/app/modules/talento/models/FaseGestionHojaModel.ts","../../src/app/modules/talento/models/MetaEvaluacionModel.ts","../../src/app/modules/talento/models/SeguimientoMetaModel.ts","../../src/app/modules/talento/models/ReglillaExtremoComp.ts","../../src/app/modules/talento/models/ReglillaComp.ts","../../src/app/modules/talento/models/EscalaMetaHojaModel.ts","../../src/app/modules/talento/pages/evaluacion/popups/popup-anexo-seguimiento/popup-anexo-seguimiento.component.ts","../../src/app/modules/talento/pages/evaluacion/popups/popup-anexo-seguimiento/popup-anexo-seguimiento.component.html","../../src/app/modules/talento/services/evaluacion.service.ts","../../src/app/modules/sarageneral/services/documento-soporte.service.ts","../../src/app/modules/talento/popups/popup-consulta-documento-soporte/popup-consulta-documento-soporte.component.ts","../../src/app/modules/talento/popups/popup-consulta-documento-soporte/popup-consulta-documento-soporte.component.html","../../src/app/modules/hojavida/models/HomologaIdiomaModel.ts","../../src/app/modules/talento/pages/evaluacion/popups/popup-competencia-gestion/popup-competencia-gestion.component.ts","../../src/app/modules/talento/pages/evaluacion/popups/popup-competencia-gestion/popup-competencia-gestion.component.html","../../src/app/modules/talento/pipes/fase-gestion-hoja.pipe.ts","../../src/app/modules/talento/services/evaluaciones.service.ts","../../src/app/modules/talento/pipes/gestion-herramientas.pipe.ts","../../src/app/modules/talento/pages/evaluacion/fase-gestion-hoja-cont/fase-gestion-hoja-cont.component.ts","../../src/app/modules/talento/pages/evaluacion/fase-gestion-hoja-cont/fase-gestion-hoja-cont.component.html","../../src/app/modules/talento/pages/evaluacion/popups/popup-cambio-fecha/popup-cambio-fecha.component.ts","../../src/app/modules/talento/pages/evaluacion/popups/popup-cambio-fecha/popup-cambio-fecha.component.html","../../src/app/modules/talento/pages/evaluacion/listado-fase-gestion-hoja/listado-fase-gestion-hoja.component.ts","../../src/app/modules/talento/pages/evaluacion/listado-fase-gestion-hoja/listado-fase-gestion-hoja.component.html","../../src/app/modules/viaticos/models/CodigoBaseViaticoModel.ts","../../src/app/modules/viaticos/models/ViaticoComplementariaModel.ts","../../src/app/modules/viaticos/models/ViaticoEntidadModel.ts","../../src/app/modules/viaticos/models/ViaticoModel.ts","../../src/app/modules/viaticos/models/ViaticoParticipaModel.ts","../../src/app/modules/viaticos/wrapper/HoraWrapper.ts","../../src/app/modules/viaticos/wrapper/SolicitudViaticoCostoWrapper.ts","../../src/app/modules/viaticos/pipes/viaticos.pipe.ts","../../src/app/modules/viaticos/models/ViaticoPartMedioModel.ts","../../src/app/modules/capacitacion/models/MedioAudioVisualModel.ts","../../src/app/shared/componentes/input-helper-seleccion-zona-economica/input-helper-seleccion-zona-economica.component.ts","../../src/app/shared/componentes/input-helper-seleccion-zona-economica/input-helper-seleccion-zona-economica.component.html","../../src/app/modules/viaticos/models/VEntidadViaticoModel.ts","../../src/app/shared/componentes/input-helper-seleccion-entidad-viatico/input-helper-seleccion-entidad-viatico.component.ts","../../src/app/shared/componentes/input-helper-seleccion-entidad-viatico/input-helper-seleccion-entidad-viatico.component.html","../../src/app/shared/componentes/input-helper-seleccion-programacion-viatico/input-helper-seleccion-programacion-viatico.component.ts","../../src/app/shared/componentes/input-helper-seleccion-programacion-viatico/input-helper-seleccion-programacion-viatico.component.html","../../src/app/modules/viaticos/services/viaticos.service.ts","../../src/app/modules/actos/models/FormatoFirmaModel.ts","../../src/app/modules/viaticos/services/select-list-viaticos.service.ts","../../src/app/modules/viaticos/pages/solicitud/detalle-solicitud-viatico/detalle-solicitud-viatico.component.ts","../../src/app/modules/viaticos/pages/solicitud/detalle-solicitud-viatico/detalle-solicitud-viatico.component.html","../../src/app/modules/talento/models/RequerimientoPersonalModel.ts","../../src/app/modules/talento/models/FormularioProcesoModel.ts","../../src/app/shared/componentes/input-helper-aplicar-cargo/input-helper-aplicar-cargo.component.ts","../../src/app/shared/componentes/input-helper-aplicar-cargo/input-helper-aplicar-cargo.component.html","../../src/app/modules/talento/pages/requerimiento-personal/panel-etapa-requerimiento-con/panel-etapa-requerimiento-con.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/panel-etapa-requerimiento-con/panel-etapa-requerimiento-con.component.html","../../src/app/modules/talento/models/PuestoRequerimientoModel.ts","../../src/app/modules/talento/services/select-list-talento.service.ts","../../src/app/modules/talento/popups/popup-seleccion-puesto-trabajo/popup-seleccion-puesto-trabajo.component.ts","../../src/app/modules/talento/popups/popup-seleccion-puesto-trabajo/popup-seleccion-puesto-trabajo.component.html","../../src/app/modules/talento/pipes/requerimiento-personal.pipe.ts","../../src/app/modules/talento/services/puesto-Requerimiento.service.ts","../../src/app/modules/talento/pages/requerimiento-personal/listado-puesto-requerimiento/listado-puesto-requerimiento.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/listado-puesto-requerimiento/listado-puesto-requerimiento.component.html","../../src/app/modules/talento/services/requerimiento-personal.service.ts","../../src/app/modules/talento/popups/popup-requerimiento-personal/popup-requerimiento-personal.component.ts","../../src/app/modules/talento/popups/popup-requerimiento-personal/popup-requerimiento-personal.component.html","../../src/app/modules/talento/models/MotivoRequerimientoModel.ts","../../src/app/modules/talento/services/motivoRequerimiento.service.ts","../../src/app/modules/talento/popups/popup-motivo-requerimiento/popup-motivo-requerimiento.component.ts","../../src/app/modules/talento/popups/popup-motivo-requerimiento/popup-motivo-requerimiento.component.html","../../src/app/modules/talento/pages/requerimiento-personal/proceso-seleccion/proceso-seleccion.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/proceso-seleccion/proceso-seleccion.component.html","../../src/app/modules/talento/pages/requerimiento-personal/candidatos/candidatos.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/candidatos/candidatos.component.html","../../src/app/modules/compensacion/pages/empleados/popups/pop-up-adjunto-respuesta/pop-up-adjunto-respuesta.component.ts","../../src/app/modules/compensacion/pages/empleados/popups/pop-up-adjunto-respuesta/pop-up-adjunto-respuesta.component.html","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-anexo/requerimiento-anexo.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-anexo/requerimiento-anexo.component.html","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-etapa-candidato/requerimiento-etapa-candidato.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-etapa-candidato/requerimiento-etapa-candidato.component.html","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-costeo/requerimiento-costeo.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-costeo/requerimiento-costeo.component.html","../../src/app/shared/pipes/puestoTrabajo.pipe.ts","../../src/app/modules/hojavida/services/seccionCampo.service.ts","../../src/app/shared/servicios/listado-hoja-vida.service.ts","../../src/app/modules/compensacion/services/requerimiento-personal-pm.service.ts","../../src/app/shared/pipes/origen-datos.pipe.ts","../../src/app/modules/talento/services/formulario-proceso.service.ts","../../src/app/modules/talento/pages/planta-personal/requerimiento-pm/requerimiento-pm.page.ts","../../src/app/modules/talento/pages/planta-personal/requerimiento-pm/requerimiento-pm.page.html","../../src/app/modules/talento/models/CapacitacionEvaluacionModel.ts","../../src/app/shared/componentes/input-helper-empleados/input-helper-empleados.component.ts","../../src/app/shared/componentes/input-helper-empleados/input-helper-empleados.component.html","../../src/app/modules/capacitacion/popups/popup-anexo/popup-anexo.component.ts","../../src/app/modules/capacitacion/popups/popup-anexo/popup-anexo.component.html","../../src/app/modules/capacitacion/services/anexo-necesidad.service.ts","../../src/app/modules/compensacion/pipes/compensacion.pipe.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/anexo-necesidad/anexo-necesidad.component.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/anexo-necesidad/anexo-necesidad.component.html","../../src/app/shared/componentes/input-helper-necesidad/input-helper-necesidad.component.ts","../../src/app/shared/componentes/input-helper-necesidad/input-helper-necesidad.component.html","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/listado-actividades/listado-actividades.component.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/listado-actividades/listado-actividades.component.html","../../src/app/modules/capacitacion/services/necesidadCapacitacionFormulario.service.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/inscritos/inscritos-necesidad.component.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/inscritos/inscritos-necesidad.component.html","../../src/app/modules/hojavida/models/FormularioModel.ts","../../src/app/modules/capacitacion/models/MapperCapacitacionNecesidadRequest.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/detallenecesidadcapacitacion/detalle-necesidad-capacitacion.component.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/detallenecesidadcapacitacion/detalle-necesidad-capacitacion.component.html","../../src/app/modules/actos/models/ActoAdministrativoModel.ts","../../src/app/modules/capacitacion/models/OrigenEventoModel.ts","../../src/environments/environment.ts","../../src/app/modules/talento/popups/popup-proceso-seleccion/popup-proceso-seleccion.component.ts","../../src/app/modules/talento/popups/popup-proceso-seleccion/popup-proceso-seleccion.component.html","../../src/app/modules/talento/popups/popup-requerimiento/popup-requerimiento.component.ts","../../src/app/modules/talento/popups/popup-requerimiento/popup-requerimiento.component.html","../../src/app/modules/talento/popups/popup-contratacion-puesto-trabajo/popup-contratacion-puesto-trabajo.component.ts","../../src/app/modules/talento/popups/popup-contratacion-puesto-trabajo/popup-contratacion-puesto-trabajo.component.html","../../src/app/modules/talento/pages/contratacion/contratacion-menu/contratacion-menu.page.ts","../../src/app/modules/talento/pages/contratacion/contratacion-menu/contratacion-menu.page.html","../../src/app/modules/talento/popups/popup-requisito-contratacion/popup-requisito-contratacion.component.ts","../../src/app/modules/talento/popups/popup-requisito-contratacion/popup-requisito-contratacion.component.html","../../src/app/modules/talento/services/contratacion-bpm.service.ts","../../src/app/modules/talento/pages/contratacion/editar-documento/editar-documento.page.ts","../../src/app/modules/talento/pages/contratacion/editar-documento/editar-documento.page.html","../../src/app/modules/talento/pipes/contratacion.pipe.ts","../../src/app/modules/talento/pages/contratacion/editar-actividad/editar-actividad.page.ts","../../src/app/modules/talento/pages/contratacion/editar-actividad/editar-actividad.page.html","../../src/app/modules/talento/services/acto-administrativo.service.ts","../../src/app/modules/talento/pages/contratacion/editar-contratacion/editar-contratacion.page.ts","../../src/app/modules/talento/pages/contratacion/editar-contratacion/editar-contratacion.page.html","../../src/app/modules/hojavida/models/SolicitudPuntoModel.ts","../../src/app/modules/hojavida/models/ActasModel.ts","../../src/app/modules/actos/models/FactorPuntajeModel.ts","../../src/app/modules/hojavida/models/InstrProductoModel.ts","../../src/app/modules/hojavida/models/InstructorEntidadModel.ts","../../src/app/shared/componentes/input-helper-seleccion-pares-academicos/input-helper-seleccion-pares-academicos.component.ts","../../src/app/shared/componentes/input-helper-seleccion-pares-academicos/input-helper-seleccion-pares-academicos.component.html","../../src/app/modules/hojavida/services/solicitud-punto.service.ts","../../src/app/modules/actos/services/actas-comite.service.ts","../../src/app/modules/hojavida/pages/solicitud/pares-academicos/pares-academicos.component.ts","../../src/app/modules/hojavida/pages/solicitud/pares-academicos/pares-academicos.component.html","../../src/app/modules/actos/pipes/actas-comite.pipe.ts","../../src/app/shared/componentes/input-helper-buscar-acta/input-helper-buscar-acta.component.ts","../../src/app/shared/componentes/input-helper-buscar-acta/input-helper-buscar-acta.component.html","../../src/app/shared/componentes/input-helper-factores-puntaje-docente/input-helper-factores-puntaje-docente.component.ts","../../src/app/shared/componentes/input-helper-factores-puntaje-docente/input-helper-factores-puntaje-docente.component.html","../../src/app/modules/hojavida/pages/solicitud/popups/popup-asignacion-factor-puntaje-docente/popup-asignacion-factor-puntaje-docente.component.ts","../../src/app/modules/hojavida/pages/solicitud/popups/popup-asignacion-factor-puntaje-docente/popup-asignacion-factor-puntaje-docente.component.html","../../src/app/modules/hojavida/pages/solicitud/popups/popup-motivo-solicitud-punto/popup-motivo-solicitud-punto.component.ts","../../src/app/modules/hojavida/pages/solicitud/popups/popup-motivo-solicitud-punto/popup-motivo-solicitud-punto.component.html","../../src/app/modules/hojavida/pages/solicitud/popups/popup-solicitar-acta/popup-solicitar-acta.component.ts","../../src/app/modules/hojavida/pages/solicitud/popups/popup-solicitar-acta/popup-solicitar-acta.component.html","../../src/app/modules/actos/popups/popup-aplicar-solicitud-acta/popup-aplicar-solicitud-acta.component.ts","../../src/app/modules/actos/popups/popup-aplicar-solicitud-acta/popup-aplicar-solicitud-acta.component.html","../../src/app/modules/hojavida/pages/solicitud/detalle-producto-puntaje-docente/detalle-producto-puntaje-docente.component.ts","../../src/app/modules/hojavida/pages/solicitud/detalle-producto-puntaje-docente/detalle-producto-puntaje-docente.component.html","../../src/app/modules/hojavida/pages/solicitud/popups/popup-reclamacion-solicitud-puntaje-docente/popup-reclamacion-solicitud-puntaje-docente.component.ts","../../src/app/modules/hojavida/pages/solicitud/popups/popup-reclamacion-solicitud-puntaje-docente/popup-reclamacion-solicitud-puntaje-docente.component.html","../../src/app/modules/hojavida/pages/solicitud/popups/popup-seccion-solicitud-puntaje-docente/popup-seccion-solicitud-puntaje-docente.component.ts","../../src/app/modules/hojavida/pages/solicitud/popups/popup-seccion-solicitud-puntaje-docente/popup-seccion-solicitud-puntaje-docente.component.html","../../src/app/modules/hojavida/pages/solicitud/seleccion-solicitud-puntaje-docente/seleccion-solicitud-puntaje-docente.component.ts","../../src/app/modules/hojavida/pages/solicitud/seleccion-solicitud-puntaje-docente/seleccion-solicitud-puntaje-docente.component.html","../../src/app/modules/hojavida/pages/solicitud/detalle-solicitud-puntaje-docente/detalle-solicitud-puntaje-docente.component.ts","../../src/app/modules/hojavida/pages/solicitud/detalle-solicitud-puntaje-docente/detalle-solicitud-puntaje-docente.component.html","../../src/app/modules/compensacion/pipes/separadorArchivoPlano.pipe.ts","../../src/app/modules/capacitacion/services/tipo-actividad.service.ts","../../src/app/modules/talento/popups/popup-importar-calificacion-medio/popup-importar-calificacion-medio.component.ts","../../src/app/modules/talento/popups/popup-importar-calificacion-medio/popup-importar-calificacion-medio.component.html","../../src/app/modules/compensacion/models/SeleccionableWrapperModel.ts","../../src/app/modules/talento/popups/popup-citacion/popup-citacion.component.ts","../../src/app/modules/talento/popups/popup-citacion/popup-citacion.component.html","../../src/app/modules/talento/popups/popup-seleccion-reportes/popup-seleccion-reportes.component.ts","../../src/app/modules/talento/popups/popup-seleccion-reportes/popup-seleccion-reportes.component.html","../../src/app/modules/talento/models/ReclamacionProcesoModel.ts","../../src/app/modules/talento/popups/popup-reclamacion-proceso/popup-reclamacion-proceso.component.ts","../../src/app/modules/talento/popups/popup-reclamacion-proceso/popup-reclamacion-proceso.component.html","../../src/app/modules/talento/pages/proceso-seleccion/registro-proceso-seleccion/registro-proceso-seleccion.page.ts","../../src/app/modules/talento/pages/proceso-seleccion/registro-proceso-seleccion/registro-proceso-seleccion.page.html","../../src/app/modules/talento/pages/proceso-seleccion/etapa-proceso-seleccion/etapa-proceso-seleccion.page.ts","../../src/app/modules/talento/pages/proceso-seleccion/etapa-proceso-seleccion/etapa-proceso-seleccion.page.html","../../src/app/modules/talento/popups/popup-unir-proceso-seleccion/popup-unir-proceso-seleccion.component.ts","../../src/app/modules/talento/popups/popup-unir-proceso-seleccion/popup-unir-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/grupo-proceso-seleccion/grupo-proceso-seleccion.page.ts","../../src/app/modules/talento/pages/proceso-seleccion/grupo-proceso-seleccion/grupo-proceso-seleccion.page.html","../../src/app/modules/sarageneral/popups/popup-atributos/popup-atributos.component.ts","../../src/app/modules/sarageneral/popups/popup-atributos/popup-atributos.component.html","../../src/app/modules/talento/pages/proceso-seleccion/publicacion-proceso-seleccion/publicacion-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/publicacion-proceso-seleccion/publicacion-proceso-seleccion.component.html","../../src/app/modules/talento/popups/popup-adendo-proceso/popup-adendo-proceso.component.ts","../../src/app/modules/talento/popups/popup-adendo-proceso/popup-adendo-proceso.component.html","../../src/app/modules/talento/pages/proceso-seleccion/adendo-proceso-seleccion/adendo-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/adendo-proceso-seleccion/adendo-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/competencia-proceso-seleccion/competencia-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/competencia-proceso-seleccion/competencia-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/anexos-proceso-seleccion/anexos-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/anexos-proceso-seleccion/anexos-proceso-seleccion.component.html","../../src/app/modules/talento/models/MedioProcesoSeleccionModel.ts","../../src/app/modules/talento/services/medioProcesoSeleccion.service.ts","../../src/app/modules/talento/pages/proceso-seleccion/medios-proceso-seleccion/medios-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/medios-proceso-seleccion/medios-proceso-seleccion.component.html","../../src/app/modules/talento/popups/popup-documento-anular-contratacion/popup-documento-anular-contratacion.component.ts","../../src/app/modules/talento/popups/popup-documento-anular-contratacion/popup-documento-anular-contratacion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/anular-proceso-seleccion/anular-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/anular-proceso-seleccion/anular-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/requerimientos-proceso-seleccion/requerimientos-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/requerimientos-proceso-seleccion/requerimientos-proceso-seleccion.component.html","../../src/app/modules/talento/popups/popup-proceso-seleccion-trasladar/popup-proceso-seleccion-trasladar.component.ts","../../src/app/modules/talento/popups/popup-proceso-seleccion-trasladar/popup-proceso-seleccion-trasladar.component.html","../../src/app/modules/talento/pages/proceso-seleccion/detalle-candidato-proceso-seleccion/detalle-candidato-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/detalle-candidato-proceso-seleccion/detalle-candidato-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/registro-candidato-proceso-seleccion/registro-candidato-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/registro-candidato-proceso-seleccion/registro-candidato-proceso-seleccion.component.html","../../src/app/shared/componentes/cabecera-candidato/cabecera-candidato.component.ts","../../src/app/shared/componentes/cabecera-candidato/cabecera-candidato.component.html","../../src/app/modules/talento/pages/proceso-seleccion/plan-sucesion-proceso-seleccion/editar-plan-sucesion-proceso-seleccion/editar-plan-sucesion-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/plan-sucesion-proceso-seleccion/editar-plan-sucesion-proceso-seleccion/editar-plan-sucesion-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/plan-sucesion-proceso-seleccion/listado-plan-sucesion-proceso-seleccion/listado-plan-sucesion-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/plan-sucesion-proceso-seleccion/listado-plan-sucesion-proceso-seleccion/listado-plan-sucesion-proceso-seleccion.component.html","../../src/app/modules/compensacion/models/CategoriaModel.ts","../../src/app/shared/componentes/input-helper-unidad-multiple/input-helper-unidad-multiple.page.ts","../../src/app/shared/componentes/input-helper-unidad-multiple/input-helper-unidad-multiple.page.html","../../src/app/shared/componentes/input-helper-variable-cargo/input-helper-variable-cargo.component.ts","../../src/app/shared/componentes/input-helper-variable-cargo/input-helper-variable-cargo.component.html","../../src/app/shared/pipes/RequisitoCons.pipe.ts","../../src/app/shared/componentes/input-helper-condicion-derecho/input-helper-condicion-derecho.component.ts","../../src/app/shared/componentes/input-helper-condicion-derecho/input-helper-condicion-derecho.component.html","../../src/app/shared/componentes/input-helper-condicion-rolacceso/input-helper-condicion-rolacceso.page.ts","../../src/app/shared/componentes/input-helper-condicion-rolacceso/input-helper-condicion-rolacceso.page.html","../../src/app/modules/talento/pages/proceso-seleccion/condicion-derecho-proceso-seleccion/condicion-derecho-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/condicion-derecho-proceso-seleccion/condicion-derecho-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/jurados-proceso-seleccion/jurados-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/jurados-proceso-seleccion/jurados-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/reclamacion-proceso-seleccion/reclamacion-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/reclamacion-proceso-seleccion/reclamacion-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/medios-asistente-proceso-seleccion/medios-asistente-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/medios-asistente-proceso-seleccion/medios-asistente-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/candidatos-externos-proceso-seleccion/candidatos-externos-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/candidatos-externos-proceso-seleccion/candidatos-externos-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/etapa-asistente-proceso-seleccion/etapa-asistente-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/etapa-asistente-proceso-seleccion/etapa-asistente-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/registro-citacion-proceso-seleccion/registro-citacion-proceso-seleccion.component.ts","../../src/app/modules/talento/pages/proceso-seleccion/registro-citacion-proceso-seleccion/registro-citacion-proceso-seleccion.component.html","../../src/app/modules/talento/popups/popup-invitacion-proceso-seleccion/popup-invitacion-proceso-seleccion.component.ts","../../src/app/modules/talento/popups/popup-invitacion-proceso-seleccion/popup-invitacion-proceso-seleccion.component.html","../../src/app/modules/talento/pages/proceso-seleccion/editar-proceso-seleccion/editar-proceso-seleccion.page.ts","../../src/app/modules/talento/pages/proceso-seleccion/editar-proceso-seleccion/editar-proceso-seleccion.page.html","../../src/app/modules/sarageneral/pages/actividades/actividades.component.ts","../../src/app/modules/sarageneral/pages/actividades/actividades.component.html","../../src/app/modules/hojavida/services/capacitacion-hoja-vida.service.ts","../../src/app/modules/hojavida/models/ValoresTrayectoriaModel.ts","../../src/app/modules/talento/pages/periodoEvaluacion/lista-periodo-evaluacion/lista-periodo-evaluacion.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/lista-periodo-evaluacion/lista-periodo-evaluacion.component.html","../../src/app/modules/talento/models/MetaFaseGestionModel.ts","../../src/app/modules/talento/models/PuntajeUnidadModel.ts","../../src/app/modules/talento/pipes/periodo-evaluacion.pipe.ts","../../src/app/modules/talento/pages/periodoEvaluacion/popup-periodo-evaluacion/popup-periodo-evaluacion.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/popup-periodo-evaluacion/popup-periodo-evaluacion.component.html","../../src/app/modules/talento/services/planilla-gestion.service.ts","../../src/app/modules/talento/pages/periodoEvaluacion/periodo-meta-fase-gestion/periodo-meta-fase-gestion.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/periodo-meta-fase-gestion/periodo-meta-fase-gestion.component.html","../../src/app/modules/talento/pages/periodoEvaluacion/puntaje-unidad/puntaje-unidad.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/puntaje-unidad/puntaje-unidad.component.html","../../src/app/modules/talento/pages/periodoEvaluacion/filtro-competencia/detalle-filtro-compentencia/detalle-filtro-compentencia.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/filtro-competencia/detalle-filtro-compentencia/detalle-filtro-compentencia.component.html","../../src/app/modules/talento/pages/periodoEvaluacion/filtro-competencia/listado-filtro-compentencia/listado-filtro-compentencia.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/filtro-competencia/listado-filtro-compentencia/listado-filtro-compentencia.component.html","../../src/app/modules/talento/models/EvaluacionHojaModel.ts","../../src/app/modules/talento/services/cargar-archivos-respuesta.service.ts","../../src/app/modules/talento/pages/periodoEvaluacion/cargar-archivo-respuesta/cargar-archivo-respuesta.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/cargar-archivo-respuesta/cargar-archivo-respuesta.component.html","../../src/app/modules/talento/models/VistaPlantaOcupoModel.ts","../../src/app/shared/servicios/constantes.service.ts","../../src/app/shared/pipes/caracteristica.pipe.ts","../../src/app/modules/talento/popups/popup-datos-requerimiento/popup-datos-requerimiento.component.ts","../../src/app/modules/talento/popups/popup-datos-requerimiento/popup-datos-requerimiento.component.html","../../src/app/modules/talento/models/TipoCalificaModel.ts","../../src/app/modules/talento/pages/herramientas/detalle-evaluador/detalle-evaluador.component.ts","../../src/app/modules/talento/pages/herramientas/detalle-evaluador/detalle-evaluador.component.html","../../src/app/modules/talento/wrapper/DimensionWrapper.ts","../../src/app/modules/talento/pages/herramientas/detalle-dimension/detalle-dimension.component.ts","../../src/app/modules/talento/pages/herramientas/detalle-dimension/detalle-dimension.component.html","../../src/app/modules/talento/popups/popup-tema-recomendacion/popup-tema-recomendacion.component.ts","../../src/app/modules/talento/popups/popup-tema-recomendacion/popup-tema-recomendacion.component.html","../../src/app/modules/talento/services/meta-evaluacion.service.ts","../../src/app/modules/talento/popups/popup-recomendaciones-gestion/popup-recomendaciones-gestion.component.ts","../../src/app/modules/talento/popups/popup-recomendaciones-gestion/popup-recomendaciones-gestion.component.html","../../src/app/modules/talento/pages/herramientas/detalle-herramientas-encabezado/detalle-herramientas-encabezado.component.ts","../../src/app/modules/talento/pages/herramientas/detalle-herramientas-encabezado/detalle-herramientas-encabezado.component.html","../../src/app/shared/componentes/input-helper-filtro-periodo-evaluacion/input-helper-filtro-periodo-evaluacion.component.ts","../../src/app/shared/componentes/input-helper-filtro-periodo-evaluacion/input-helper-filtro-periodo-evaluacion.component.html","../../src/app/modules/talento/popups/popup-detalle-evaluacion/popup-detalle-evaluacion.component.ts","../../src/app/modules/talento/popups/popup-detalle-evaluacion/popup-detalle-evaluacion.component.html","../../src/app/modules/talento/services/periodo-evaluacion.service.ts","../../src/app/modules/talento/popups/popup-programar-masivo/popup-programar-masivo.component.ts","../../src/app/modules/talento/popups/popup-programar-masivo/popup-programar-masivo.component.html","../../src/app/modules/talento/services/evaluacion-hoja.service.ts","../../src/app/modules/talento/pages/herramientas/detalle-herramientas/detalle-herramientas.component.ts","../../src/app/modules/talento/pages/herramientas/detalle-herramientas/detalle-herramientas.component.html","../../src/app/modules/talento/pages/periodoEvaluacion/programar-periodo-evaluacion/programar-periodo-evaluacion.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/programar-periodo-evaluacion/programar-periodo-evaluacion.component.html","../../src/app/modules/talento/popups/popup-tipo-actores/popup-tipo-actores.component.ts","../../src/app/modules/talento/popups/popup-tipo-actores/popup-tipo-actores.component.html","../../src/app/modules/talento/models/CargueProgramacionEvaluacionModel.ts","../../src/app/modules/talento/services/cargar-programacion-evaluacion.service.ts","../../src/app/modules/talento/popups/popup-cargar-programacion-evaluacion/popup-cargar-programacion-evaluacion.component.ts","../../src/app/modules/talento/popups/popup-cargar-programacion-evaluacion/popup-cargar-programacion-evaluacion.component.html","../../src/app/modules/talento/pages/herramientas/listado-herramientas/listado-herramientas.component.ts","../../src/app/modules/talento/pages/herramientas/listado-herramientas/listado-herramientas.component.html","../../src/app/modules/talento/pages/periodoEvaluacion/lista-planilla-gestion/lista-planilla-gestion/lista-planilla-gestion.component.ts","../../src/app/modules/talento/pages/periodoEvaluacion/lista-planilla-gestion/lista-planilla-gestion/lista-planilla-gestion.component.html","../../src/app/modules/talento/pages/periodoEvaluacion/periodo-evaluaciones/periodo-evaluaciones.page.ts","../../src/app/modules/talento/pages/periodoEvaluacion/periodo-evaluaciones/periodo-evaluaciones.page.html","../../src/app/modules/capacitacion/models/DiaEventoModel.ts","../../src/app/modules/capacitacion/services/reserva-salones.service.ts","../../src/app/modules/capacitacion/pages/reservar-salones/popup-reserva-salones/popup-reserva-salones.component.ts","../../src/app/modules/capacitacion/pages/reservar-salones/popup-reserva-salones/popup-reserva-salones.component.html","../../src/app/modules/capacitacion/pages/reservar-salones/mantenimiento-reserva-salones/mantenimiento-reserva-salones.component.ts","../../src/app/modules/capacitacion/pages/reservar-salones/mantenimiento-reserva-salones/mantenimiento-reserva-salones.component.html","../../src/app/modules/capacitacion/pages/reservar-salones/lista-reserva-salones/lista-reserva-salones.component.ts","../../src/app/modules/capacitacion/pages/reservar-salones/lista-reserva-salones/lista-reserva-salones.component.html","../../src/app/modules/bienestar/models/MomentoEventoHorarioModel.ts","../../src/app/modules/capacitacion/services/plan-inversion.service.ts","../../src/app/modules/bienestar/services/evento.service.ts","../../src/app/modules/capacitacion/services/asistente-evento.service.ts","../../src/app/modules/capacitacion/services/dia-evento.service.ts","../../src/app/modules/capacitacion/popups/input-helper-inscribir-evento-por-unidad/input-helper-inscribir-evento-por-unidad.component.ts","../../src/app/modules/capacitacion/popups/input-helper-inscribir-evento-por-unidad/input-helper-inscribir-evento-por-unidad.component.html","../../src/app/modules/capacitacion/models/TemaAsistenteModel.ts","../../src/app/modules/capacitacion/pages/control-eventos-capacitacion/pages-control-eventos/Asistentes/registro/popup-asistente/popup-asistente.component.ts","../../src/app/modules/capacitacion/pages/control-eventos-capacitacion/pages-control-eventos/Asistentes/registro/popup-asistente/popup-asistente.component.html","../../src/app/modules/capacitacion/pages/inscripcion-evento-cursos-publicados/detalle-evento-cursos-publicacion/detalle-evento-cursos-publicacion.component.ts","../../src/app/modules/capacitacion/pages/inscripcion-evento-cursos-publicados/detalle-evento-cursos-publicacion/detalle-evento-cursos-publicacion.component.html","../../src/app/modules/capacitacion/services/publicacionWebCurso.service.ts","../../src/app/modules/capacitacion/pages/inscripcion-evento-cursos-publicados/listado-inscripcion-cursos-publicacion/listado-inscripcion-cursos-publicacion.component.ts","../../src/app/modules/capacitacion/pages/inscripcion-evento-cursos-publicados/listado-inscripcion-cursos-publicacion/listado-inscripcion-cursos-publicacion.component.html","../../src/app/modules/talento/popups/popup-nuevo-requerimiento-personal/popup-nuevo-requerimiento-personal.component.ts","../../src/app/modules/talento/popups/popup-nuevo-requerimiento-personal/popup-nuevo-requerimiento-personal.component.html","../../src/app/modules/talento/pages/requerimiento-personal/listado-requerimiento-personal-con/listado-requerimiento-personal-con.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/listado-requerimiento-personal-con/listado-requerimiento-personal-con.component.html","../../src/app/modules/talento/pages/requerimiento-personal/listado-requerimiento-personal/listado-requerimiento-personal.page.ts","../../src/app/modules/talento/pages/requerimiento-personal/listado-requerimiento-personal/listado-requerimiento-personal.page.html","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-perfil/requerimiento-perfil.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-perfil/requerimiento-perfil.component.html","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-puesto/requerimiento-puesto.component.ts","../../src/app/modules/talento/pages/requerimiento-personal/requerimiento-puesto/requerimiento-puesto.component.html","../../src/app/modules/talento/pages/planta-personal/popup-nuevo-cargo/popup-nuevo-cargo.component.ts","../../src/app/modules/talento/pages/planta-personal/popup-nuevo-cargo/popup-nuevo-cargo.component.html","../../src/app/shared/componentes/input-helper-tipo/input-helper-tipo.component.ts","../../src/app/shared/componentes/input-helper-tipo/input-helper-tipo.component.html","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/listadonecesidadcapacitacion/listado-necesidad-capacitacion.component.ts","../../src/app/modules/capacitacion/pages/necesidadcapacitacion/listadonecesidadcapacitacion/listado-necesidad-capacitacion.component.html","../../src/app/modules/sarageneral/services/publicacion.service.ts","../../src/app/modules/controltiempos/models/PersonaModel.ts","../../src/app/modules/controltiempos/models/TipoLiquidacionTiempoModel.ts","../../src/app/modules/controltiempos/models/JornadaModel.ts","../../src/app/modules/compensacion/models/RegistroProcesoModel.ts","../../src/app/modules/controltiempos/models/HoraLibreJornadaModel.ts","../../src/app/modules/controltiempos/models/TipoHorarioModel.ts","../../src/app/modules/controltiempos/models/SitioModel.ts","../../src/app/modules/controltiempos/models/ConceptoTipoLiquidaModel.ts","../../src/app/modules/controltiempos/models/DiaHorarioModel.ts","../../src/app/modules/controltiempos/models/DiaHorarioWrapper.ts","../../src/app/modules/controltiempos/models/SitioTurnoModel.ts","../../src/app/modules/controltiempos/pipes/JornadaCons.pipe.ts","../../src/app/modules/controltiempos/services/controlTiempos.service.ts","../../src/app/modules/controltiempos/popups/popup-jonada/popup-jonada.component.ts","../../src/app/modules/controltiempos/popups/popup-jonada/popup-jonada.component.html","../../src/app/modules/controltiempos/popups/popup-jornada-por-dia/popup-jornada-por-dia.component.ts","../../src/app/modules/controltiempos/popups/popup-jornada-por-dia/popup-jornada-por-dia.component.html","../../src/app/modules/controltiempos/pipes/liquidacionTiempo.pipe.ts","../../src/app/modules/controltiempos/pages/persona/programacion-persona/programacion-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/programacion-persona/programacion-persona.component.html","../../src/app/modules/controltiempos/models/LiquidacionTiempoModel.ts","../../src/app/modules/controltiempos/popups/popup-jornada-liquida/popup-jornada-liquida.component.ts","../../src/app/modules/controltiempos/popups/popup-jornada-liquida/popup-jornada-liquida.component.html","../../src/app/modules/controltiempos/pages/persona/jornada-persona/jornada-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/jornada-persona/jornada-persona.component.html","../../src/app/modules/controltiempos/pages/persona/conceptos-tiempo-persona/conceptos-tiempo-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/conceptos-tiempo-persona/conceptos-tiempo-persona.component.html","../../src/app/modules/controltiempos/models/EventoJornadaModel.ts","../../src/app/modules/controltiempos/popups/popup-buscar-persona/popup-buscar-persona.component.ts","../../src/app/modules/controltiempos/popups/popup-buscar-persona/popup-buscar-persona.component.html","../../src/app/modules/controltiempos/models/DispositivoModel.ts","../../src/app/modules/controltiempos/pipes/eventoJornadaCons.pipe.ts","../../src/app/modules/controltiempos/popups/popup-reloj/popup-reloj.component.ts","../../src/app/modules/controltiempos/popups/popup-reloj/popup-reloj.component.html","../../src/app/modules/controltiempos/pages/persona/reloj-persona/reloj-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/reloj-persona/reloj-persona.component.html","../../src/app/modules/controltiempos/pages/persona/listado-traslado-temporal-persona/listado-traslado-temporal-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/listado-traslado-temporal-persona/listado-traslado-temporal-persona.component.html","../../src/app/modules/controltiempos/models/JornadaHisModel.ts","../../src/app/modules/controltiempos/pages/persona/programacion-persona-historico/programacion-persona-historico.component.ts","../../src/app/modules/controltiempos/pages/persona/programacion-persona-historico/programacion-persona-historico.component.html","../../src/app/modules/controltiempos/models/EventoJornadaHisModel.ts","../../src/app/modules/controltiempos/pages/persona/reloj-persona-historico/reloj-persona-historico.component.ts","../../src/app/modules/controltiempos/pages/persona/reloj-persona-historico/reloj-persona-historico.component.html","../../src/app/modules/controltiempos/pages/calendario/popups/popup-liquidacion-sitio-tiempo/popup-liquidacion-sitio-tiempo.component.ts","../../src/app/modules/controltiempos/pages/calendario/popups/popup-liquidacion-sitio-tiempo/popup-liquidacion-sitio-tiempo.component.html","../../src/app/modules/controltiempos/popups/popup-fecha-liquidacion/popup-fecha-liquidacion.component.ts","../../src/app/modules/controltiempos/popups/popup-fecha-liquidacion/popup-fecha-liquidacion.component.html","../../src/app/modules/controltiempos/popups/popup-solucion-inconsistencia/popup-solucion-inconsistencia.component.ts","../../src/app/modules/controltiempos/popups/popup-solucion-inconsistencia/popup-solucion-inconsistencia.component.html","../../src/app/modules/controltiempos/pages/liquidacionTiempos/inconsistencia-liquidacion/inconsistencia-liquidacion.component.ts","../../src/app/modules/controltiempos/pages/liquidacionTiempos/inconsistencia-liquidacion/inconsistencia-liquidacion.component.html","../../src/app/modules/controltiempos/pages/liquidacionTiempos/evento-inconsistencia-programacion/evento-inconsistencia-programacion.component.ts","../../src/app/modules/controltiempos/pages/liquidacionTiempos/evento-inconsistencia-programacion/evento-inconsistencia-programacion.component.html","../../src/app/modules/sarageneral/models/LoginAccesoModel.ts","../../src/app/modules/controltiempos/pages/liquidacionTiempos/listado-conceptos-por-autorizar/listado-conceptos-por-autorizar.component.ts","../../src/app/modules/controltiempos/pages/liquidacionTiempos/listado-conceptos-por-autorizar/listado-conceptos-por-autorizar.component.html","../../src/app/modules/controltiempos/pages/liquidacionTiempos/listado-compensacion-tiempo/listado-compensacion-tiempo.component.ts","../../src/app/modules/controltiempos/pages/liquidacionTiempos/listado-compensacion-tiempo/listado-compensacion-tiempo.component.html","../../src/app/modules/controltiempos/pages/liquidacionTiempos/detalle-liquidacion-tiempos/detalle-liquidacion-tiempos.component.ts","../../src/app/modules/controltiempos/pages/liquidacionTiempos/detalle-liquidacion-tiempos/detalle-liquidacion-tiempos.component.html","../../src/app/modules/controltiempos/pages/calendario/menu-control-tiempos/menu-control-tiempos.component.ts","../../src/app/modules/controltiempos/pages/calendario/menu-control-tiempos/menu-control-tiempos.component.html","../../src/app/modules/controltiempos/pages/calendario/lista-sitio-persona/lista-sitio-persona.page.ts","../../src/app/modules/controltiempos/pages/calendario/lista-sitio-persona/lista-sitio-persona.page.html","../../src/app/modules/controltiempos/models/SitioPersonaModel.ts","../../src/app/modules/controltiempos/pages/persona/sitios-persona/sitios-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/sitios-persona/sitios-persona.component.html","../../src/app/modules/controltiempos/models/DispositivoHojaVidaModel.ts","../../src/app/modules/controltiempos/pages/persona/dispositivo-persona/dispositivo-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/dispositivo-persona/dispositivo-persona.component.html","../../src/app/modules/talento/popups/popup-puesto-trabajo/popup-puesto-trabajo.component.ts","../../src/app/modules/talento/popups/popup-puesto-trabajo/popup-puesto-trabajo.component.html","../../src/app/modules/controltiempos/pages/persona/detalle-persona/detalle-persona.component.ts","../../src/app/modules/controltiempos/pages/persona/detalle-persona/detalle-persona.component.html","../../src/app/modules/controltiempos/pages/persona/listado-persona/listado-persona.page.ts","../../src/app/modules/controltiempos/pages/persona/listado-persona/listado-persona.page.html","../../src/app/modules/talento/popups/popup-reclasificacion/popup-reclasificacion.component.ts","../../src/app/modules/talento/popups/popup-reclasificacion/popup-reclasificacion.component.html","../../src/app/modules/talento/pages/planta-personal/datos-puesto-trabajo-cont/datos-puesto-trabajo-cont.component.ts","../../src/app/modules/talento/pages/planta-personal/datos-puesto-trabajo-cont/datos-puesto-trabajo-cont.component.html","../../src/app/modules/talento/pages/planta-personal/planta-personal-cliente/planta-personal-cliente.component.ts","../../src/app/modules/talento/pages/planta-personal/planta-personal-cliente/planta-personal-cliente.component.html","../../src/app/modules/controltiempos/pages/calendario-persona/calendario-persona.component.ts","../../src/app/modules/controltiempos/pages/calendario-persona/calendario-persona.component.html","../../src/app/modules/capacitacion/services/obtener-lista-registro.service.ts","../../src/app/shared/componentes/input-helper-detalle-ausencia-historico/input-helper-detalle-ausencia-historico.component.ts","../../src/app/shared/componentes/input-helper-detalle-ausencia-historico/input-helper-detalle-ausencia-historico.component.html","../../src/app/modules/compensacion/pages/calendario-ausentismo/calendario-ausentismo.page.ts","../../src/app/modules/compensacion/pages/calendario-ausentismo/calendario-ausentismo.page.html","../../src/app/modules/viaticos/popups/popup-destino-solicitud-viatico/popup-destino-solicitud-viatico.component.ts","../../src/app/modules/viaticos/popups/popup-destino-solicitud-viatico/popup-destino-solicitud-viatico.component.html","../../src/app/modules/viaticos/pages/solicitud/listado-solicitud-viatico/listado-solicitud-viatico.component.ts","../../src/app/modules/viaticos/pages/solicitud/listado-solicitud-viatico/listado-solicitud-viatico.component.html","../../src/app/modules/bienestar/services/cumpleanios.service.ts","../../src/app/modules/bienestar/pages/cumpleanios/cumpleanios.component.ts","../../src/app/modules/bienestar/pages/cumpleanios/cumpleanios.component.html","../../src/app/modules/compensacion/models/NovedadAplicarModel.ts","../../src/app/modules/compensacion/popups/popup-cambiar-datos-pago-vacacion/popup-cambiar-datos-pago-vacacion.component.ts","../../src/app/modules/compensacion/popups/popup-cambiar-datos-pago-vacacion/popup-cambiar-datos-pago-vacacion.component.html","../../src/app/modules/compensacion/pages/novedades/aplicar-novedad-proceso-empleado/aplicar-novedad-proceso-empleado.page.ts","../../src/app/modules/compensacion/pages/novedades/aplicar-novedad-proceso-empleado/aplicar-novedad-proceso-empleado.page.html","../../sara-union.ts"],"sourcesContent":["export const Constantes = {\n\n  MENSAJE_GUARDAR: 'Registro guardado exitosamente',\n  MENSAJE_GUARDAR_VARIOS: 'Se guardaron correctamente los registros',\n  MENSAJE_ACTUALIZAR: 'Se actualizó el registro exitosamente',\n  MENSAJE_ACTUALIZAR_VARIOS: 'Se actualizaron correctamente los registros',\n  MENSAJE_ACTUALIZAR_NO: 'Registro no Actualizado',\n  MENSAJE_GUARDAR_ERROR: 'Error al guardar registro',\n  MENSAJE_ELIMINAR_NO: 'El registro no se elimino',\n  MENSAJE_EXISTE: 'El registro ya existe',\n  MENSAJE_ELIMINAR_CONFIRMAR: '¿Desea eliminar el registro?',\n  MENSAJE_ELIMINAR_VARIOS_CONFIRMAR: '¿Desea eliminar los registros seleccionados?',\n  MENSAJE_ELIMINAR_VARIOS: 'Se eliminaron correctamente los registros',\n  MENSAJE_CALCULA_INCREMENTO: '¿Desea iniciar el proceso de ajuste de variables?',\n  MENSAJE_CONFIRMAR: '¿Desea confirmar?',\n  MENSAJE_CREAR: 'Se creó el registro exitosamente',\n  MENSAJE_NO_SELECCIONADO: 'Por favor seleccione un registro',\n  MENSAJE_ELIMINAR: 'Se eliminó el registro exitosamente',\n  MENSAJE_ANULAR: 'Se ha anulado el registro correctamente',\n  MENSAJE_ANULAR_CONFIRMAR: '¿Desea anular el registro?',\n  MENSAJE_COPIAR_CONFIRMAR: '¿Desea copiar en un nuevo evento?',\n  MENSAJE_CAMPOS_OBLIGATORIOS: 'Faltan campos obligatorios',\n  \n\n  ERROR_SERVICE: 'Error en el servicio',\n\n  vista: \"V\",\n  ACE:\"ACE       \",\n  PNP:\"PNP       \",\n  RECO:\"RECO      \",\n  PNP2:\"PNP2      \",\n  ACE2:\"ACE2      \",\n  FIJO:\"FIJO      \",\n\n\n\n\n\n\n\n\n\n\n\n  listadoPlanilla: new Map<string, string>()\n    .set(\"D\", \"Diseño Reporteador\")\n    .set(\"V\", \"Vista\"),\n\n  COMPENSACION: '4',\n  SEGURIDADWEB: '3',\n\tTALENTO: '8',\n\tHOJAVIDA: '5',\n\tALMACEN: '7',\n\tSOPORTE: '20',\n\tSOFIACTIVOS: '10',\n\tFACTURACION: '11',\n\tJORNADADOCENTE: '6',\n\tTRANSPORTES: '30',\n\tCUENTASXPAGAR:'9',\n\tCARTERA:'6',\n\tCARTERAEMPLEADO:'0',\n\tCAPACITACION:'5',\n\tSALUDOCUPACIONAL: '16',\n\tBIENESTAR:'14',\n\tACTOS: '17',\n\tVEHICULOS: '18',\n\tVIATICOS: '13',\n\tSOFIAGENERAL: '12',\n\tSARAGENERAL: '2',\n\tSOFIACUENTAS: '21',\n\tSOFIATESORERIA: '22',\n\tSOFIACONTABILIDAD: '23',\n\tSOFIACUENTASPORCOBRAR: '24',\n\tSOFIAALMACEN: '25',\n\tSOFIAPRESUPUESTO: '26',\n\n\n\n  COMPENSACION_TEXTO : \"compensacion\",\n\tSEGURIDADWEB_TEXTO : \"seguridad\",\n\tTALENTO_TEXTO : \"talento\",\n\tHOJAVIDA_TEXTO : \"hojavida\",\n\tALMACEN_TEXTO : \"almacen\",\n\tSOPORTE_TEXTO : \"soporte\",\n\tSOFIACTIVOS_TEXTO : \"modulogeneral\",\n\tFACTURACION_TEXTO : \"facturacion\",\n\tJORNADADOCENTE_TEXTO : \"jornadadocente\",\n\tTRANSPORTES_TEXTO : \"parametroTransporte\",\n\tCUENTASXPAGAR_TEXTO:\"cuentasxpagar\",\n\tCARTERA_TEXTO:\"cartera\",\n\tCARTERA_EMPLEADO_TEXTO:\"cartera\",\n\tCAPACITACION_TEXTO:\"capacitacion\",\n\tSALUDOCUPACIONAL_TEXTO:\"saludocupacional\",\n\tBIENESTAR_TEXTO:\"bienestar\",\n\tACTOS_TEXTO:\"actos\",\n\tVIATICOS_TEXTO:\"viaticos\",\n\tSOFIAGENERAL_TEXTO:\"modulogeneral\",\n\tSARAGENERAL_TEXTO:\"sarageneral\",\n\tSOFIACUENTAS_TEXTO:\"modulogeneral\",\n\tSOFIATESORERIA_TEXTO:\"modulogeneral\",\n\tSOFIACONTABILIDAD_TEXTO:\"modulogeneral\",\n\tSOFIACUENTASPORCOBRAR_TEXTO:\"modulogeneral\",\n\tSOFIAALMACEN_TEXTO:\"modulogeneral\",\n\tFWK_TEXTO:\"fwk\",\n\tBARCODE_TEXTO:\"barcode\",\n\tVEHICULOS_TEXTO:\"modulogeneral\",\n\n  LETRA_B: \"B\",\n  LETRA_J: \"J\",\n  LETRA_R: \"R\",\n  LETRA_H: \"H\",\n  LETRA_T: \"T\",\n  LETRA_P: \"P\",\n  LETRA_C: \"C\",\n  PUNTO: \".\",\n  ESPACIO_BLANCO: \" \",\n\tPUNTO_COMA: \";\",\n  DOS_PUNTOS: \":\",\n  LINEA_GUION: \"-\",\n\tCOMA: \",\",\n\tIGUAL: \"=\",\n\tBARRA_INCLINADA_DERECHA: \"/\",\n  CONSTANTE_NO: \"N\",\n  CONSTANTE_SI: \"S\",\n  ESPACIO_NULO: \"\",\n  PORCENTAJE: \"%\",\n\n\n\n\n  listadoDestino: new Map<string, string>()\n    .set(\"SO\", \"Seguridad y Salud en el Trabajo\")\n    .set(\"NR\", \"No Relacionado\"),\n\n\n\n  listadoFuente: new Map<string, string>()\n\n    .set(\"B\", \"Diagrama de barras\")\n    .set(\"A\", \"Diagrama de Area\")\n    .set(\"Z\", \"Diagrama de Barras Horizontal\")\n    .set(\"D\", \"Diagrama de Diferencia\")\n    .set(\"H\", \"Diagrama de Histograma\")\n    .set(\"T\", \"Diagrama de Torta\")\n    .set(\"L\", \"Diagrama de linea\")\n    .set(\"E\", \"Diagrama horizontal de Barras con escala\")\n    .set(\"V\", \"Diagrama vertical de Barras con escala\"),\n\n\n\n\n    listadoTipocampo: new Map<string, string>()\n    .set(\"CARGO\", \"Cargo\")\n    .set(\"CARGO_MULTI\", \"Cargos Multiples\")\n    .set(\"CATEGORIA\", \"Categoria\")\n    .set(\"CIUDAD\", \"Ciudad\")\n    .set(\"CLASIFICACION\", \"Clasificacion\")\n    .set(\"EDAD\", \"Edad\")\n    .set(\"EMPRESA\", \"Empresa\")\n    .set(\"ESTADO_CIVIL\", \"Estado Civil\")\n    .set(\"ESTADOLABORAL\", \"Estado Laboral\")\n    .set(\"GENERO\", \"Genero\")\n    .set(\"GRUPO\", \"Grupo empleado\")\n    .set(\"NIVEL_DEL_CARGO\", \"Nivel del Cargo\")\n    .set(\"RANGO_DE_SUELDO\", \"Rango de Sueldo\")\n    .set(\"ROLCLASIFICACION\", \"Rol Clasificacion\")\n    .set(\"TIEMPO_DE_ANTIGUEDAD_CARGO\", \"Tiempo de Antiguedad Cargo Actual\")\n    .set(\"TIEMPO_DE_ANTIGUEDAD\", \"Tiempo de Antiguedad Empresa\")\n    .set(\"TIPO_DE_PERIODO\", \"Tipo de Periodo\")\n    .set(\"TIPO_DE_VINCULACION\", \"Tipo de Vinculacion\")\n    .set(\"UNIDAD\", \"Unidad Organizacional\")\n    .set(\"UNIDAD_MULTI\", \"Unidades Organizacionales Multiples\")\n    .set(\"UNIDAD_RELACION\", \"Unidades Organizacionales y las que dependen\"),\n\n\n\n\n  listadoEmpresa: new Map<string, string>()\n    .set('2', \"AGRICOLA.2\")\n    .set('3', \"AGRICOLA.3\")\n    .set('99', \"EMPRESA DESARROLLO\"),\n\n\n    tipo: new Map<string, string>()\n    .set('CL', \"VARIABLE_CARGO_ROL\")\n    .set('CZ', \"VARIABLE_CARGO_ZONA\")\n    .set('UN', \"VARIABLE_UNIDAD\")\n    .set('CA', \"VARIABLE_CARGO\"),\n\n\n\n\n\n\n\n  CALENDARIO_MES: 'dayGridMonth',\n  CALENDARIO_SEMANA: 'timeGridWeek',\n  CALENDARIO_GENERAL: 'dayGridMonth,timeGridWeek,timeGridDay',\n  AGREGAR_DIA_FESTIVO_PREGUNTA: '¿Desea Agregar este dia como dia festivo?',\n  ELIMINAR_DIA_FESTIVO_PREGUNTA: '¿Desea Eliminar este dia festivo?',\n  REGLA_DETALLE: \"detalle\",\n  REGLA_REGRESAR: \"regresar\",\n  ARCHIVO_PDF: \"pdf\",\n  ARCHIVO_HTML: \"html\",\n  ARCHIVO_JPG: \"jpg\",\n  ARCHIVO_JPG2: \"JPG\",\n  ARCHIVO_PNG: \"png\",\n  ARCHIVO_BMP: \"bmp\",\n  ARCHIVO_JPEG: \"jpeg\",\n  ARCHIVO_GIF: \"gif\",\n  ARCHIVO_XML: \"xml\",\n  ARCHIVO_DOC: \"doc\",\n  ARCHIVO_DOCX: \"docx\",\n  ARCHIVO_XLS: \"xls\",\n  ARCHIVO_XLSM: \"xlsm\",\n  ARCHIVO_XLSX: \"xlsx\",\n  ARCHIVO_ODS: \"ods\",\n  ARCHIVO_ODT: \"odt\",\n  ARCHIVO_SQL: \"sql\",\n  ARCHIVO_ZIP: \"zip\",\n  ARCHIVO_PPT: \"ppt\",\n  ARCHIVO_PPTX: \"pptx\",\n  ARCHIVO_HTMLTIPO: \"html\",\n  ARCHIVO_XMLTIPO: \"xml\",\n  ARCHIVO_XLSTIPO: \"xls\",\n  ARCHIVO_XLSDATA: \"xlsData\",\n  ARCHIVO_PDFDATA: \"pdfData\",\n  ARCHIVO_SH: \"sh\",\n  ARCHIVO_BAT: \"bat\",\n  ARCHIVO_MP4: \"mp4\",\n  ARCHIVO_AVI: \"avi\",\n  ARCHIVO_WMV: \"wmv\",\n  ARCHIVO_PROPERTIES: \"properties\",\n  SI_STRING: \"Si\",\n  NO_STRING: \"No\",\n  ARCHIVOTXT : \"txt\",\n\n  A_TILDE_MIN: \"\\u00E1\",\n\tE_TILDE_MIN: \"\\u00E9\",\n\tI_TILDE_MIN: \"\\u00ED\",\n\tO_TIDLE_MIN: \"\\u00F3\",\n\tU_TILDE_MIN: \"\\u00FA\",\n\tA_TILDE_MAY: \"\\u00C1\",\n\tE_TILDE_MAY: \"\\u00C9\",\n\tI_TILDE_MAY: \"\\u00CD\",\n\tO_TILDE_MAY: \"\\u00D3\",\n\tU_TILDE_MAY: \"\\u00DA\",\n\tN_TILDE_MAY: \"\\u00D1\",\n\tN_TILDE_MIN: \"\\u00F1\",\n\n  CONSTANTE_R: \"R\",\n\tCONSTANTE_F: \"F\",\n\tCONSTANTE_U: \"U\",\n\n  CONSTANTE_C: \"C\",\n  CONSTANTE_V: \"V\",\n  CONSTANTE_A: \"A\",\n  CONSTANTE_D: \"D\",\n  CONSTANTE_N: \"N\",\n  CONSTANTE_L: \"L\",\n\n  MENU_OPCION_WEBSERVICE : \"WS\",\n\tMENU_OPCION_CLIENTE : \"CL\",\n\tMENU_OPCION_MANEJO_PROCESO : \"MP\",\n\n  CONTEXTO_DOCUMENTOS : \"$P{CONTEXTO}\",\n\n\n};\n","import { UnionModel } from 'general-library-union'\n\nexport class EmpleadoModel extends UnionModel {\n\n\t\n\t\n\tcontrato: number;\n\tcedula: number;\n\tunidad: string;\n\tunidadDepende: string;\n\tunidadDescripcion: string;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tcargo: string;\n\tcargoDescripcion: string;\n\tvinculacion: number;\n\tfechaIngreso: Date;\n\tfechaRetiro: Date;\n\tfechaEngache: Date;\n\tfechaTermina: Date;\n\tnumeroProrroga: number;\n\tfechaProrroga: Date;\n\tasignacion: number;\n\tasignacionAcumulada: number;\n\tmoneda: string;\n\tfechaVigencia: Date;\n\testadoLaboral: string;\n\tlineaCosto: string;\n\ttipoPeriodo: number;\n\tdescripcionPeriodo: string;\n\tturno: number;\n\tturnoNombre: string;\n\tfechaLiquidacion: Date;\n\tcargoFuncion: string;\n\tunidadFuncion: string;\n\t//\tprivate string unidadFuncionNombre;\n\tempresa: number;\n\tnit: number;\n\tdigito: number;\n\tformaPago: string;\n\tubicacionfisica: string;\n\tcupo: number;\n\tcargoNombreTitular: string;\n\tunidadNombreTitular: string;\n\tcargoNombreEncargo: string;\n\tunidadNombreEncargo: string;\n\tcentroCostoNombre: string;\n\tzonaEconomicaNombre: string;\n\tvinculacionNombre: string;\n\tlineaCostoNombre: string;\n\tubicacionFisicaNombre: string;\n\testadoLaboralNombre: string;\n\ttipoPeriodoNombre: string;\n\testadoLaboralPeriodo: string;\n\tnombreCompleto: string;\n\tcomodinBuscarNombre: string;\n\tcomodinBuscarNumero: number;\n\tcomodinBuscarDocumento: string;\n\tprimerApellido: string;\n\tsegundoApellido: string;\n\tnombres: string;\n\tunidadRelacion: string;\n\tmail: string;\n\tsoloActivos: string;\n\tcontratoAnt: number;\n\tempresaAnt: number;\n\tnombreEmpresaAnt: string;\n\ttotalAsignacion: number;\n\ttipoPlanta: string;\n\tmotivoIngreso: string;\n\tmotivoIngresoNombre: string;\n\ttipoPuestoTrabajo: string;\n\ttipoPuestoTrabajoNombre: string;\n\tjefeInmediato: number;\n\temp: number;\n\tmotivoRetiro: string;\n\tcodigoMotivoRetiro: number;\n\tturnoFuncion: number;\n\tturnoFuncionNombre: string;\n\tcongela: Date;\n\talterno: string;\n\tcodigoEmpleado: number;\n\tdiferenteEstado: string;\n\tnombreZonaEconomica: string;\n\tnombreCentro: string;\n\tseleccionado: boolean;\n\tfechaInicialRetiro: Date;\n\tfechaFinalRetiro: Date;\n\tfechaInicialIngreso: Date;\n\tfechaFinalIngreso: Date;\n\tfechaInicialTermina: Date; \n\tfechaFinalTermina: Date;\n\tfechaInicialEncargo: Date; \n\tfechaFinalEncargo: Date;\n\tfechaCambio: Date;\n\tfechaPago: Date;\n\ttipoCambio: string;\n\tbaseInicia: number;\n\tnivelCargo: string;\n\tnombreEmpresa: string;\n\ttiempoTotal: number;\n\tporcentaje: number;\t\t\n\tusuarioLogin: string;\n\tusuarioRol: string;\n\tgrupo: number;\n\tclasificacion: string;\n\tnombreClasificacion: string;\n\tclasificacionFuncion: string;\n\tnombreClasificacionFuncion: string;\n\tfiltroCondicionDerecho: string;\n\torganizacion: number;\n\n\t//datos de colsanitas\n\ttelefono: string;\n\tdireccion: string;\n\tsexo: string;\n\toficina: string;\n\tdocumento: string;\n\ttipoDocumento: string;\n\tsucursalUnidadFuncion: string;\n\tnombreSucursal: string;\n\tsucursalGestion: string;\n\tubicacionGeograficaNombre: string;\n\tfiltroCondicion: string;\n\tentidad: string;\n\tvigilancia: string;\n\tcedulaConsultaContratosAnteriores: number;\n\tmotivoRetiroDesc: string;\n\tgeneraRegresion: string;\n\n\t// dattos para filtrar por los datos que se encuentra en los datos basicos\n\n\tfiltroZonaComodin: string;\n\tfiltroUnidadComodin: string;\n\tcambiarPuestoTrabajo: number;\n\t\n\t// Campo mostrar mensaje de proceso realizado a empleado\n\tmensaje: string;\n\talternoHojaVida: string;\n\tfiltro: string;\n\tproyecto: string;\n\tsemestre: string;\n\tdescripcionProyecto: string;\n\tdescripcionSemestre: string;\n\tpresupuestal: string;\n\tdescripcionParentesco: string;\n\tparentesco: string;\n\tfiltroEstadoLaboral: string;\n\tlogin: string;\n\tdocumentoIdentifica: number;\n\tidentificaDocumento: string;\n\temail: string;\n\tnombreFoto: string;\n\tfechaNacimiento: Date;\n\testadoRetirado: string;\n\testadoPorLiquidar: string;\n\tempresaNombre: string;\n\tempresaJefe: number;\n\tsueldoEncargo: number;\n\tnombreAusenciaActual:String\n\tausenciaActual:String\n\t\n\t//GEtters con info del back, no son campos\n\tunidadNombreOcupa: string;\t\n\tunidadOcupa: string;\n\tcargoNombreOcupa: string;\n\tcargoOcupa: string;\n\templeadoLiquidacion: boolean;\n\tverCargoFuncion: boolean;\n\tverUnidadFuncion: boolean;\n\tenFuncion: boolean;\n\tverClasificacionFuncion: boolean;\n  \n\tgetNombreCompleto() {\n\t\tif (this.nombreCompleto == null) {\n\t\t\tif (this.segundoApellido != null) {\n\t\t\t\tif (this.primerApellido != null) {\n\t\t\t\t\tif (this.nombres != null) {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerApellido + ' ' + this.segundoApellido + ' ' + this.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerApellido + ' ' + this.segundoApellido + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.nombreCompleto = ' ' + this.segundoApellido + ' ' + this.nombres;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.primerApellido != null) {\n\t\t\t\t\tif (this.nombres != null) {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerApellido + ' ' + this.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerApellido + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.nombreCompleto = ' ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this.nombreCompleto;\n\t}\n\tget empleadoActivo(): boolean {\n\t\tif (this.estadoLaboral == null || this.estadoLaboralPeriodo == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.estadoLaboral == this.estadoLaboralPeriodo;\n\t}\n\tgetEmpleadoActivo() {\n\t\tif (this.estadoLaboral == null || this.estadoLaboralPeriodo == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.estadoLaboral == this.estadoLaboralPeriodo;\n\t}\n\n\tisEmpleadoLiquidacion() {\n\t\tif (this.estadoLaboral == null || this.estadoLaboralPeriodo == null ) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( this.estadoLaboral == this.estadoLaboralPeriodo ) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( this.estadoPorLiquidar == null || this.estadoRetirado == null || this.estadoPorLiquidar == this.estadoRetirado) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( this.estadoPorLiquidar == this.estadoLaboral ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t\n}\n","import { UnionModel } from \"general-library-union\";\n\n\nexport class PublicacionModel extends UnionModel {\n\n    public llave!: string;\n    public empresa!: number;\n    public publicacionWeb!: string;\n    public archivo!: string;\n    public descripcion!: string;\n\n    public nombrePublicacion!: string;\n    public nombreEmpresa!: string;\n    public contaminada!: string;\n    public llaveBase!: string;\n    public tabla!: string;\n    public pin!: string;\n    public tipoArchivo!: string;\n    public publicacionPadre!: string;\n    public llaveDestino!: string;\n    public numeroDestino!: number;\n    public tablaDestino!: string;\n    public grupoDepende!: string;\n    public almacenamiento!: string;\n    public url!: string;\n    public urlDescarga!: string;\n    public fechaMantiene!: Date;\n    public fechaVizualiza!: Date;\n    public fechaActual!: Date;\n    public codigoPublicacion!: string;\n    public fechaPago!: Date;\n    public documento!: string;\n    public nombres!: string;\n    public email!: string;\n    public filtroDocumento!: string;\n    public filtroNombre!: string;\n\n    // Campos consulta WebService\n    public identifica!: number;\n    public contrato!: number;\n    public rutaArchivo!: string;\n    public fechaInicial!: Date;\n    public fechaFinal!: Date;\n    public nombreContrato!: string;\n\n}","import { UnionModel } from 'general-library-union'\nimport { PuestoTrabajoModel } from '../../talento/models/PuestoTrabajoModel';\nimport { EmpleadoModel } from './EmpleadoModel';\n\nexport class EmpleadoPuestoModel extends UnionModel{\n\n\templeadoDTO: EmpleadoModel;\n\tpuestoTrabajoDTO: PuestoTrabajoModel;\n\tsubAlterno: boolean;\t\n\tcontratos: boolean;\n\n}\n","import { UnionModel } from 'general-library-union'\n\n\nexport class PuestoTrabajoModel extends UnionModel{\n\n\tunidad: string;\n\tunidadPadre: string;\n\tnumeroPuesto: number;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tlineaCosto: string;\n\tcargo: string;\n\ttipoPuestoTrabajo: string;\n\tcontrato: number;\n\tcontratoTemporal: number;\n\tcontratoUltimoOcupo: number;\n\tcontratoOcupa: number;\n\tnombreOcupa: string;\n\tnombreTemporal: string;\n\tnombreUltimoOcupo: string;\n\tnombreTitular: string;\n    cedulaOcupa: number;\n\tcedulaTemporal: number;\n\tcedulaTitular: number;\n\tcedulaUltimoOcupo: number;\n\testado: string;\n\testadoAnterior: string;\n\teliminacion: Date;\n\tasignacion: number;\n\tobservacion: string;\n\tturno: number;\n\ttipoPeriodo: number;\n\tvinculacion: number;\n\tclasificacion: string ;\n\tclasePuesto: string;\n\treserva: string;\n\tultimaActualizacion: Date;\n\tempresa: number;\n\tempresaPadre: number;\n\tdisponible: Date;\n\tcreacion: Date;\n\tperfilFuncion: string;\n\tubicacionFisica: string;\n\tdepende: string;\n\tdependeUnidad: string;\n\tllave: string;\n\tnivelCargo: string;\n\tnegociacion: number;\n\tnombreUnidad: string;\n\tnombreUnidadPadre: string;\n\tnombreCargo: string;\n\tgradoCargo: string;\n\tpesoMinimoNivel: number;\n\tdescripcionNivel: string;\n\tseleccionado: string;\n\tmotivoIngreso: string;\n\tfechaIngreso: Date;\n\torden: number;\n\tnivelPuesto: number;\n\tunidadDepende: string;\n\tcaminoFotoTitular: string;\n\tcaminoFotoOcupa: string;\n\tcaminoFotoTemporal: string;\n\tcaminoFotoUltimo: string;\n\tcomodin: string;\n\tpuestosDependen: PuestoTrabajoModel[];\n\tcargoPeso: string;\n\tnombreEmpresa: string;\n\t/** Tipo de Puesto \n\t *  @see PuestoTrabajoCons */\n\ttipo: string;\n\trutaImagen: string;\n\tnombreEncargado: string;\n\tnombreZonaEconomica: string;\n\tnombreCentro: string;\n\tnombreUbicacionFisica: string;\n\tnombreUbicacionGeografica: string;\n\tnombreTipoPuesto: string;\n\tllaveRequerimiento: string;\n\tantiguedad: Date;\n\tprogorra: number;\n\tfechaprogorra: Date;\n\tcupo: number;\n\ttipoCambio: string;\n\tregresion: string;\n\tusuario: string;\n\tcodigoAlterno: string;\n\tagregado: boolean;\n\timagen: boolean;\n\tpuestoSeleccionado: string;\n\tresponsableUnidad: string; //Determina si este puesto es el responsable de la unidad organizacional a la que pertenece \n\tnombreCompleto: string;\n\tidentifica: number;\n\tunidadJerarquica: string;\n\tnombreUnidadJerarquia: string;\n\tfiltroEstado: string;\n\tnombreJefe: string;\n\tllaveComparte: string;\n\tcedulaBuscar: number;\n\tdocumentoBuscar: string;\n\tpuestoAtraer: string;\n\tempresaEmpleado: number;\n\tdocumentoOcupa: string;\n\tdocumentoTemporal: string;\n\tdocumentoTitular: string;\n\tdocumentoUltimo: string;\n\tllaveImagen: string;\n\tcolor: string;\n\tcolorComparte: string;\n\tcorreoOcupa: string;\n\tcantidadSubAlterno: number;\n\tsueldoTitular: number;\n\tasignacionTotal: number;\n\tllaveBusqueda: string;\n\tseguimiento: string;\n\ttipoEstados: string;\n\trelacion: string;\n\ttipoTemporal: string;\n\tmensaje: string;\n\tusuarioRol: string;\n\tcomodinBuscarNombre: string;\n\tcomodinBuscarNumero: number;\n\tcomodinBuscarDocumento: string;\n\tfiltroTipoPuestoActoMov: string;\n\tdocumentoFuncion: string;\n\tcontratoFuncion: number;\n\tnombreEmpleadoFuncion: string;\n\tdocumentoEmpalme: string;\n\tcontratoEmpalme: number;\n\tnombreEmpleadoEmpalme: string;\n\tfacilitador: string;\n\tfiltroSucursalGestion: string;\n\ttipoFiltro: string;\n\tordenConsulta: string;\n\tcontratoDiferenteDocumentoOcupa: boolean;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class AreaConocimientoModel extends UnionModel{\n\n\t\n\ttipoAreaExp: string;\n\tdescripcion: string;\n\ttipo: string;\n\tdepende: string;\n\talterno: string;\n\tnombredepende: string;\n\t\n\t}\n","import { UnionModel } from 'general-library-union'\n\nexport class HojaVidaModel extends UnionModel {\n\n\tidentifica: number\n\tcontrato: number\n\tdigito: number\n\ttipodocumento: string\n\ttipodocumentoAnterior: string\n\tnombres: string\n\tprimerapellid: string\n\tsegundoapelli: string\n\tubicaciongeo: string\n\tdireccion: string\n\tbarrio: string\n\ttelefono: string\n\tnacimiento: Date\n\tedad: number\n\tlugarnace: string\n\testadocivil: string\n\tsexo: string\n\texpedicion: string\n\tnivelacadem: string\n\ttipovincula: string\n\tnombreViculacion: string\n\tprocedencia: string\n\tnombreProcedencia: string\n\temail: string\n\temail2: string\n\temail3: string\n\tclave: string\n\tpublica: string\n\tsucursal: string\n\ttipohoja: string\n\tgrupoSanguineo: string\n\tubicacionciu: string\n\tnombreUbicacionGeo: string\n\tnombrefoto: string\n\tciudad2: string\n\tfechaExpedicion: Date\n\tfechaFallecimiento: Date\n\torganizacion: number\n\talterno: string\n\tlogin: string\n\tllaveProfesionOficio: string\n\tprofesionOficio: string\n\tidentidadDuplicada: string\n\tcomodinBusqueda: number\n\tnombreTipodocumento: string\n\tnombreFiltrar1: string\n\tnombreFiltrar2: string\n\tcolumna: string\n\torden: string\n\tempresa: number\n\tnombreempresa: string\n\tseccion: string\n\tnumeroActivos: number\n\tprocesoParticipa: string\n\tmodificaPuntaje: string\n\tcomodinBuscarNombre: string\n\tnombreCompleto: string\n\tunidad: string\n\tnombreUnidad: string\n\tunidadSucursal: string\n\testadoLab: string\n\tnombreCargo: string\n\tingreso: Date\n\tinstructorEnt: number\n\tselect: string\n\tvalor: number\n\tproduccion: boolean\n\tavance: number\n\tfiltroZona: string\n\tusuarioLogin: string\n\tusuarioRol: string\n\tautorizador: string\n\tmodoParametro: string\n\tdescModoParametro: string\n\tfechaInicial: Date\n\tfechaFinal: Date\n\testadoLaboralNombre: string\n\tfiltroTipoPeriodo: string\n\thojaVidaFiltroDTO: string\n\tdocumento: string\n\tnroCelular: string\n\ttelOficina: string\n\textOficina: string\n\tcadena1: string\n\tcadena2: string\n\tnacionalidad: string\n\tdescripcionNacionalidad: string\n\tfiltroUnidad: string\n\tcandidatoBloqueado: number\n\tnueva: boolean\n\tcomentarios: number\n\tsucursalGes: string\n\tseguridad: string\n\tcaminoFoto: string\n\torigenFiltro: string\n\tsedeOcupacional: string\n\thojaExterna: string\n\tindicadorHojaVidaExterna: string\n\tcargo: string\n\tmensaje: string;\n\n\tgetNombreCompleto?() {\n\t\tif (this.nombreCompleto == null) {\n\t\t\tif (this.segundoapelli != null) {\n\t\t\t\tif (this.primerapellid != null) {\n\t\t\t\t\tif (this.nombres != null) {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerapellid + ' ' + this.segundoapelli + ' ' + this.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerapellid + ' ' + this.segundoapelli + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.nombreCompleto = ' ' + this.segundoapelli + ' ' + this.nombres;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.primerapellid != null) {\n\t\t\t\t\tif (this.nombres != null) {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerapellid + ' ' + this.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.nombreCompleto = this.primerapellid + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.nombreCompleto = ' ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this.nombreCompleto;\n\t}\n\t\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'semestrePipe',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class SemestrePipe implements PipeTransform {\n//CONSTANTES DE ESTADO DE SEMESTRE\n\tSEMESTRE_CERRADO = \"C\";\n\tSEMESTRE_PROCESO = \"P\";\n\tSEMESTRE_NOGENERA = 'N';\n\n\tDESCSEMESTRE_CERRADO = \"Cerrado\";\n\tDESCSEMESTRE_PROCESO = \"Proceso\";\n\tDESCSEMESTRE_NOGENERA = \"No Generado\";\n\n\t//LISTADO DE ESTADOS DE CONSTANTES\n\tESTADOS = [\n\t\t{codigo: this.SEMESTRE_CERRADO, nombre: this.DESCSEMESTRE_CERRADO},\n\t\t{codigo: this.SEMESTRE_PROCESO, nombre: this.DESCSEMESTRE_PROCESO},\n\t\t{codigo: this.SEMESTRE_NOGENERA, nombre: this.DESCSEMESTRE_NOGENERA},\n\t]\n\n\ttransform(value: any, ...args: any): any {\n\n\t\tlet result = value;\n\t\tif (args[0] == 'listaEstado') { this.ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n    return result;\n  }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { CampoFormularioCons } from 'general-library-union';\n\n@Pipe({\n    name: 'novedadPipe',\n    standalone: true\n})\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class NovedadPipe implements PipeTransform {\n\n\tNOVEDAD_MASIVA_SOLICITADA = 'S';\n\tNOVEDAD_MASIVA_PROGRAMADA = 'P';\n\tNOVEDAD_NOMINA = 'N';\n\n\tBUSCAR_PROGRAMADAS = 'P';;\n\tBUSCAR_DATO_PASIVAS = 'D';\n\tBUSCAR_LIQUIDADAS = 'L';\n\n\tPRELIQUIDACION = 'R';\n\tPROGRAMADA = 'P';\n\tLEGALIZADA = 'L';\n\tNO_LEGALIZADA = 'B';\n\tCERRADA = 'C';\n\n\tAUTORIZADA = 'A';\n\tNOAUTORIZADA = 'N';\n\tACTOELABORADA = 'E';\n\tDESACTOELABORADA = 'acto administrativo';\n\tMODIFICADO = 'M';\n\tELIMINADA = 'X';\n\n\tNUEVA = 'O';\n\tVERIFICADA = 'V';\n\tSOLICITUD = 'S';\n\tSOLICITUDINCONSISTENCIA = 'Y';\n\tPROGRAMADAINCONSISTENCIA = 'I';\n\n\n\tDESCPROGRAMADA = 'Programada';\n\tDESCNUEVA = 'Nueva';\n\tDESC_VERIFICADA = 'Verificada';\n\tDESCNOPROGRAMADA = 'Inconsistencia Programaci\\u00F3n';\n\tDESCPRELIQUIDACION = 'Preliquidaci\\u00F3n';\n\tDESCAUTORIZADA = 'Autorizada';\n\tDESCNOAUTORIZADA = 'No autorizada';\n\tDESPORGENERAR = 'Por Generar';\n\n\tDESCSOLICITUD = 'Solicitud';\n\tDESCSOLICITUDINCONSISTENCIA = 'Solicitud con inconsistencia';\n\tDESCLEGALIZADA = 'Generada';\n\tNO_LEGALIZADA_DESC = 'No legalizada';\n\tDESCERRADA = 'Cerrada';\n\n\tESTADONOVEDAD = [\n\t\t{ codigo: this.PROGRAMADA, nombre: this.DESCPROGRAMADA },\n\t\t{ codigo: this.NOAUTORIZADA, nombre: this.DESCNOAUTORIZADA },\n\t\t{ codigo: this.AUTORIZADA, nombre: this.DESCAUTORIZADA },\n\t\t{ codigo: this.SOLICITUD, nombre: this.DESCSOLICITUD },\n\t\t{ codigo: this.LEGALIZADA, nombre: this.DESCLEGALIZADA },\n\t\t{ codigo: this.ACTOELABORADA, nombre: this.DESACTOELABORADA },\n\t\t{ codigo: this.PROGRAMADAINCONSISTENCIA, nombre: this.DESCNOPROGRAMADA },\n\t\t{ codigo: this.SOLICITUDINCONSISTENCIA, nombre: this.DESCSOLICITUDINCONSISTENCIA },\n\t\t{ codigo: this.NUEVA, nombre: this.DESCNUEVA },\n\t\t{ codigo: this.VERIFICADA, nombre: this.DESC_VERIFICADA },\n\t\t{ codigo: this.NO_LEGALIZADA, nombre: this.NO_LEGALIZADA_DESC },\n\t]\n\n\tESTADOSOLICITUD = [\n\t\t{ codigo: this.PROGRAMADA, nombre: this.DESCPROGRAMADA },\n\t\t{ codigo: this.LEGALIZADA, nombre: this.DESCLEGALIZADA },\n\t\t{ codigo: this.AUTORIZADA, nombre: this.DESPORGENERAR },\n\t\t{ codigo: this.NOAUTORIZADA, nombre: this.DESCNOAUTORIZADA },\n\t\t{ codigo: this.SOLICITUD, nombre: this.DESCSOLICITUD },\n\t]\n\n\tESTADONOVEDACTIVAS = [\n\t\t{ codigo: this.NOAUTORIZADA, nombre: this.DESCNOAUTORIZADA },\n\t\t{ codigo: this.AUTORIZADA, nombre: this.DESCAUTORIZADA },\n\t\t{ codigo: this.SOLICITUD, nombre: this.DESCSOLICITUD },\n\t]\n\n\n\tESTADONOVEDADLISTADO = [\n\t\t{ codigo: this.PROGRAMADA, nombre: this.DESCPROGRAMADA },\n\t\t{ codigo: this.AUTORIZADA, nombre: this.DESCAUTORIZADA },\n\t\t{ codigo: this.NOAUTORIZADA, nombre: this.DESCNOAUTORIZADA },\n\t\t{ codigo: this.SOLICITUD, nombre: this.DESCSOLICITUD },\n\t\t{ codigo: this.LEGALIZADA, nombre: this.DESCLEGALIZADA },\n\t\t{ codigo: this.ACTOELABORADA, nombre: this.DESACTOELABORADA },\n\t\t{ codigo: this.SOLICITUDINCONSISTENCIA, nombre: this.DESCSOLICITUDINCONSISTENCIA },\n\t\t{ codigo: this.PROGRAMADAINCONSISTENCIA, nombre: this.DESCNOPROGRAMADA },\n\t\t{ codigo: this.NO_LEGALIZADA, nombre: this.NO_LEGALIZADA_DESC },\n\t]\n\n\tVACACION = 'V';\n\tNOVEDAD = 'N';\n\tINCAPACIDAD = 'I';\n\tLICANCIA = 'L';\n\tINTERRUPCION_VAC = 'R';\n\n\tVARIABLEEMPLEADO = 'V';\n\tCONCEPTOEMPLADO = 'C';\n\tVARIABLEPERIODO = 'A';\n\tCONCEPTOPERIODO = 'O';\n\tVARIABLEPERIODOFECHA = 'F';\n\tEMBARGO = 'E';\n\tLIQUIDACIONPERIODICA = 'P';\n\n\n\tvalor = 'valor';\n\tvalor2 = 'valor2';\n\tvalor3 = 'valor3';\n\tvalor4 = 'valor4';\n\tvalor5 = 'valor5';\n\tvalor6 = 'valor6';\n\tvalor7 = 'valor7';\n\tvalor8 = 'valor8';\n\tvalor9 = 'valor9';\n\tvalor10 = 'valor10';\n\tcantidad = 'cantidad';\n\tcampo2 = 'campo2';\n\tcampo3 = 'campo3';\n\tcampo4 = 'campo4';\n\ttexto1 = 'texto1';\n\tdesde = 'desde';\n\thasta = 'hasta';\n\tdato = 'dato';\n\tobservacion = 'observacion';\n\tentidad = 'entidad';\n\tdirigidoA = 'dirigidoA';\n\tbeneficiario = 'beneficiario';\n\tfechapago = 'fechapago';\n\tfechaInicial = 'fechaInicial';\n\tfechaFinal = 'fechaFinal';\n\tpin = 'pin';\n\n\tdesvalor1 = 'valor1';\n\tdesvalor2 = 'valor2';\n\tdesvalor3 = 'valor3';\n\tdesvalor4 = 'valor4';\n\tdesvalor5 = 'valor5';\n\tdesvalor6 = 'valor6';\n\tdesvalor7 = 'valor7';\n\tdesvalor8 = 'valor8';\n\tdesvalor9 = 'valor9';\n\tdesvalor10 = 'valor10';\n\tdessolicita = 'solicita';\n\tdescampo2 = 'campo2';\n\tdescampo3 = 'campo3';\n\tdescampo4 = 'campo4';\n\tdestexto1 = 'texto1';\n\tdesdesde = 'desde';\n\tdeshasta = 'hasta';\n\tdesdato = 'dato';\n\tdesobservacion = 'observacion';\n\tdesentidad = 'entidad';\n\tdescampo1 = 'campo1';\n\tdesbeneficiario = 'beneficiario';\n\tdesfechapago = 'fechapago';\n\tdespin = 'pin';\n\t/**\n\t * en este atributo estan los marcadores  que swe mestran el tipos solicitud en seleccion \n\t * estos seran utlizados en la pantalla de tipo solicitud  \n\t */\n\n\n\n\tPENDIENTES = 'PENDIENTE';\n\n\tLISTA_DATOS_SOLICITUD = [\n\t\t{ codigo: this.valor, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor2, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor3, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor4, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor5, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor6, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor7, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor8, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor9, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.valor10, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.cantidad, nombre: CampoFormularioCons.DECIMAL },\n\t\t{ codigo: this.campo2, nombre: CampoFormularioCons.TEXTO },\n\t\t{ codigo: this.campo3, nombre: CampoFormularioCons.TEXTO },\n\t\t{ codigo: this.campo4, nombre: CampoFormularioCons.TEXTO },\n\t\t{ codigo: this.texto1, nombre: CampoFormularioCons.TEXTO },\n\t\t{ codigo: this.desde, nombre: CampoFormularioCons.FECHA },\n\t\t{ codigo: this.hasta, nombre: CampoFormularioCons.FECHA },\n\t\t{ codigo: this.dato, nombre: CampoFormularioCons.FECHA },\n\t\t{ codigo: this.observacion, nombre: CampoFormularioCons.TEXTOAREA },\n\t\t{ codigo: this.entidad, nombre: CampoFormularioCons.TEXTO },\n\t\t{ codigo: this.dirigidoA, nombre: CampoFormularioCons.TEXTO },\n\t\t{ codigo: this.beneficiario, nombre: CampoFormularioCons.POPUP },\n\t\t{ codigo: this.fechapago, nombre: CampoFormularioCons.FECHA },\n\t\t{ codigo: this.fechaInicial, nombre: CampoFormularioCons.FECHAHORA },\n\t\t{ codigo: this.fechaFinal, nombre: CampoFormularioCons.FECHAHORA },\n\t]\n\n\tMAPA_COMPONENTES_CARACTERISTICAS_ADI = [\n\t\t{ codigo: CampoFormularioCons.TEXTO, nombre: CampoFormularioCons.TEXTO_DES },\n\t\t{ codigo: CampoFormularioCons.COMBO, nombre: CampoFormularioCons.COMBO_DES },\n\t\t{ codigo: CampoFormularioCons.NUMERO, nombre: CampoFormularioCons.NUMERO_DES },\n\t\t{ codigo: CampoFormularioCons.DECIMAL, nombre: CampoFormularioCons.DECIMAL_DES },\n\t\t{ codigo: CampoFormularioCons.FECHA, nombre: CampoFormularioCons.FECHA_DES },\n\t\t{ codigo: CampoFormularioCons.RADIO, nombre: CampoFormularioCons.RADIO_DES },\n\t\t{ codigo: CampoFormularioCons.CHECK, nombre: CampoFormularioCons.CHECK_DES },\n\t\t{ codigo: CampoFormularioCons.LOGICO, nombre: CampoFormularioCons.LOGICO_DES },\n\t\t{ codigo: CampoFormularioCons.TITULO, nombre: CampoFormularioCons.TITULO_DES },\n\t\t{ codigo: CampoFormularioCons.TEXTOAREA, nombre: CampoFormularioCons.TEXTOAREA_DES },\n\t\t{ codigo: CampoFormularioCons.SECRET, nombre: CampoFormularioCons.SECRET_DES },\n\t\t{ codigo: CampoFormularioCons.SUBTITULO, nombre: CampoFormularioCons.SUBTITULO_DES },\n\t\t{ codigo: CampoFormularioCons.MENSAJE, nombre: CampoFormularioCons.MENSAJE_DES },\n\t\t{ codigo: CampoFormularioCons.COMBOSQL, nombre: CampoFormularioCons.COMBOSQL_DES },\n\t]\n\n\tOPCION_MENU_NOVEDAD = 'NOVEDAD';\n\tOPCION_MENU_AUSENTISMO = 'AUSENTISMO';\n\tOPCION_MENU_SOLICITUD = 'SOLICITUD';\n\tOPCION_MENU_FLEXIBLE = 'FLEXIBLE';\n\tOPCION_MENU_AJUSTE_NOMINA = 'AJUSTE_NOMINA';\n\n\tNOVEDAD_POR_LEGALIZAR = 'PL';\n\tNOVEDAD_POR_AUTORIZAR = 'PA';\n\tNOVEDAD_POR_SOLICITAR = 'PS';\n\n\tTABLA_NOVEDAD = 'NOVEDAD_NOV';\n\tTABLA_AUSENCIA = 'AUSENCIANOVEDAD_AUN';\n\tTABLA_AUSENCIA_HISTORICO = 'AUSENCIA_AUS';\n\tTABLA_EMPLEADO = 'EMPLEADO_EML';\n\tTABLA_VIATICO_PROGRAMACION = 'VIATICOPARTICIPA_VIP';\n\n\tLISTA_ESTADOS_DETALLE_LEGALIZACION = [\n\t\t{ codigo: this.AUTORIZADA, nombre: this.DESCAUTORIZADA },\n\t\t{ codigo: this.LEGALIZADA, nombre: this.DESCLEGALIZADA },\n\t]\n\n\tNOVEDAD_LEGALIZACION_MASIVA = 'M';\n\tNOVEDAD_LEGALIZACION_INDIVIDUAL = 'I';\n\n\tVACACION_DESC = 'Vacaciones';\n\tINCAPACIDAD_DESC = 'Incapacidades';\n\tLICENCIA_DESC = 'Licencias';\n\n\tMAPA_DESC_AUSENTISMOS = [\n\t\t{ codigo: this.VACACION, nombre: this.VACACION_DESC },\n\t\t{ codigo: this.INCAPACIDAD, nombre: this.INCAPACIDAD_DESC },\n\t\t{ codigo: this.LICANCIA, nombre: this.LICENCIA_DESC },\n\t]\n\n\tFLEXIBLE = 'F';\n\n\tORIGEN_SOLICITUD_EMPLEADO = 'SOLICITUD_EMPLEADO';\n\n\tORIGEN_APLICAR_NOV_SOLICITUD_EMPLEADO = 'APLICAR_NOV_SOLICITUD_EMPLEADO';\n\n\tORIGEN_NOVEDAD_EMPLEADO = 'NOVEDAD_EMPLEADO';\n\tORIGEN_NOVEDAD_HISTORICO_EMPLEADO = 'NOVEDAD_HISTORICO_EMPLEADO';\n\tORIGEN_APLICAR_NOVEDAD = 'APLICAR_NOVEDAD';\n\tORIGEN_NOVEDAD_NOMINA = 'NOVEDAD_NOMINA';\n\tORIGEN_ACTIVIDAD_NOVEDAD_EMPLEADO = 'ACTIVIDAD_NOVEDAD_EMPLEADO';\n\tORIGEN_NOVEDAD_LIQ_MASIVA = 'NOVEDAD_LIQ_MASIVA';\n\n\tORIGEN_FILTRO_NOVEDAD_LIQ_MASIVA = 'LM';\n\n\tFORM_APLICAR_NOV_EMPLEADO = 'aplicaNovedadProceso:';\n\tFORM_EMPLEADO_NOVEDAD = 'form_novedadesEmpleado:';\n\n\tORIGEN_ACTIVIDAD_SOLICITUD_EMPLEADO = 'ACTIVIDAD_SOLICITUD_EMPLEADO';\n\n\tCAMPO_TIPO_NOV_VARIABLE_FECHA = 'VF';\n\n\n\tSIPEDIRFECHAREINICIO = 'S';\n\tNOPEDIRFECHAREINICIO = 'X';\n\n\tDESC_SIPEDIRFECHAREINICIO = 'Obligatoria Fecha de Reinicio';\n\tDESC_NOPEDIRFECHAREINICIO = 'No obligatoria Fecha de Reinicio';\n\n\tLISTAFECHAREINICIO = [\n\t\t{ codigo: this.SIPEDIRFECHAREINICIO, nombre: this.DESC_SIPEDIRFECHAREINICIO },\n\t\t{ codigo: this.NOPEDIRFECHAREINICIO, nombre: this.DESC_NOPEDIRFECHAREINICIO },\n\t]\n\n\tLISTANOVEDADESTADO = [\n\t\t{ codigo: null, nombre: Constantes.ESPACIO_NULO },\n\t\t{ codigo: this.PROGRAMADA, nombre: this.DESCPROGRAMADA },\n\t\t{ codigo: this.LEGALIZADA, nombre: this.DESCLEGALIZADA },\n\t\t{ codigo: this.NO_LEGALIZADA, nombre: this.NO_LEGALIZADA_DESC },\n\t\t{ codigo: this.AUTORIZADA, nombre: this.DESCAUTORIZADA },\n\t\t{ codigo: this.NOAUTORIZADA, nombre: this.DESCNOAUTORIZADA },\n\t\t{ codigo: this.SOLICITUD, nombre: this.DESCSOLICITUD },\n\t\t{ codigo: this.PRELIQUIDACION, nombre: this.DESCPRELIQUIDACION },\n\t]\n\n\ttransform(value: any, ...args: any): any {\n\t\tlet result = value;\n\t\tif (args[0] == 'listaEstado') { this.ESTADONOVEDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaNovedadEstado') { result = 'ESTADO NO DEFINIDO'; this.LISTANOVEDADESTADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaEstadoSolicitud') { this.ESTADOSOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\t// if (args[0] == 'listaEstadoProyecto') { this.LISTAESTADOPROYECTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }}, nombre: this.}\n\t\t// if (args[0] == 'listaReportesPlanilla') { this.TIPOS_TEPORTES.forEach(data => { if (data.codigo === value) { result = data.nombre } }}, nombre: this.}\n\t\t// if (args[0] == 'listaNominaTipo') { this.LISTA_NOMINA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }}, nombre: this.}\n\t\treturn result;\n\t}\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'liquidacionPerPipe',\n    standalone: true\n})\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class LiquidacionPerPipe implements PipeTransform {\n\n\tNOMINA = 'N';\n\tTERMINACION = 'T';\n\tVACACIONES = 'V';\n\tEXTRA = 'X';\n\n\tDESCNOMINA = 'Nomina';\n\tDESCTERMINACION = 'Terminacion';\n\tDESCVACACIONES = 'Vacaciones';\n\tDESCEXTRA = 'Extra';\n\n\tLISTA_LIQUIDACION = [\n\t\t{ codigo: this.NOMINA, nombre: this.DESCNOMINA },\n\t\t{ codigo: this.TERMINACION, nombre: this.DESCTERMINACION },\n\t\t{ codigo: this.VACACIONES, nombre: this.DESCVACACIONES },\n\t\t{ codigo: this.EXTRA, nombre: this.DESCEXTRA },\n\t]\n\n\tACTIVO = 'A';\n\tCANCELADO = 'C';\n\tPROCESO = 'P';\n\tANULADO = 'N';\n\tANULADO_COMPRAR = 'R';\n\n\tDESCACTIVO = 'Activo';\n\tDESCCANCELADO = 'Cancelado por sistema';\n\tDESCANULADO = 'Cancelado';\n\tDESCPROCESO = 'Proceso';\n\tDESCANULADO_COMPRAR = 'Anulado por refinanciacion';\n\n\tESTADOS = [\n\t\t{ codigo: this.ACTIVO, nombre: this.DESCACTIVO },\n\t\t{ codigo: this.ANULADO, nombre: this.DESCANULADO },\n\t\t{ codigo: this.CANCELADO, nombre: this.DESCCANCELADO },\n\t\t{ codigo: this.PROCESO, nombre: this.DESCPROCESO },\n\t\t{ codigo: this.ANULADO_COMPRAR, nombre: this.DESCANULADO_COMPRAR },\n\t]\n\n\tCONCEPTO = 'C';\n\tCONSOLIDADOR = 'A';\n\n\tDESCONCEPTO = 'CONCEPTO';\n\tDESCONSOLIDADOR = 'CONSOLIDADOR';\n\n\tTIPO = [\n\t\t{ codigo: this.CONCEPTO, nombre: this.DESCONCEPTO },\n\t\t{ codigo: this.CONSOLIDADOR, nombre: this.DESCONSOLIDADOR },\n\t]\n\n\tLISTADOHORAS = [\n\t\t{ codigo: '0', nombre: '00' },\n\t\t{ codigo: '1', nombre: '01' },\n\t\t{ codigo: '2', nombre: '02' },\n\t\t{ codigo: '3', nombre: '03' },\n\t\t{ codigo: '4', nombre: '04' },\n\t\t{ codigo: '5', nombre: '05' },\n\t\t{ codigo: '6', nombre: '05' },\n\t\t{ codigo: '7', nombre: '07' },\n\t\t{ codigo: '8', nombre: '08' },\n\t\t{ codigo: '9', nombre: '09' },\n\t\t{ codigo: '10', nombre: '10' },\n\t\t{ codigo: '11', nombre: '11' },\n\t\t{ codigo: '12', nombre: '12' },\n\t\t{ codigo: '13', nombre: '13' },\n\t\t{ codigo: '14', nombre: '14' },\n\t\t{ codigo: '15', nombre: '15' },\n\t\t{ codigo: '16', nombre: '16' },\n\t\t{ codigo: '17', nombre: '17' },\n\t\t{ codigo: '18', nombre: '18' },\n\t\t{ codigo: '19', nombre: '19' },\n\t\t{ codigo: '20', nombre: '20' },\n\t\t{ codigo: '21', nombre: '21' },\n\t\t{ codigo: '22', nombre: '22' },\n\t\t{ codigo: '23', nombre: '23' },\n\t]\n\n\tLISTADOMINUTOS = [\n\t\t{ codigo: '00', nombre: '00' },\n\t\t{ codigo: '01', nombre: '01' },\n\t\t{ codigo: '02', nombre: '02' },\n\t\t{ codigo: '03', nombre: '03' },\n\t\t{ codigo: '04', nombre: '04' },\n\t\t{ codigo: '05', nombre: '05' },\n\t\t{ codigo: '06', nombre: '05' },\n\t\t{ codigo: '07', nombre: '07' },\n\t\t{ codigo: '08', nombre: '08' },\n\t\t{ codigo: '09', nombre: '09' },\n\t\t{ codigo: '10', nombre: '10' },\n\t\t{ codigo: '11', nombre: '11' },\n\t\t{ codigo: '12', nombre: '12' },\n\t\t{ codigo: '13', nombre: '13' },\n\t\t{ codigo: '14', nombre: '14' },\n\t\t{ codigo: '15', nombre: '15' },\n\t\t{ codigo: '16', nombre: '16' },\n\t\t{ codigo: '17', nombre: '17' },\n\t\t{ codigo: '18', nombre: '18' },\n\t\t{ codigo: '19', nombre: '19' },\n\t\t{ codigo: '20', nombre: '20' },\n\t\t{ codigo: '21', nombre: '21' },\n\t\t{ codigo: '22', nombre: '22' },\n\t\t{ codigo: '23', nombre: '23' },\n\t\t{ codigo: '24', nombre: '24' },\n\t\t{ codigo: '25', nombre: '25' },\n\t\t{ codigo: '26', nombre: '26' },\n\t\t{ codigo: '27', nombre: '27' },\n\t\t{ codigo: '28', nombre: '28' },\n\t\t{ codigo: '29', nombre: '29' },\n\t\t{ codigo: '30', nombre: '30' },\n\t\t{ codigo: '31', nombre: '31' },\n\t\t{ codigo: '32', nombre: '32' },\n\t\t{ codigo: '33', nombre: '33' },\n\t\t{ codigo: '34', nombre: '34' },\n\t\t{ codigo: '35', nombre: '35' },\n\t\t{ codigo: '36', nombre: '36' },\n\t\t{ codigo: '37', nombre: '37' },\n\t\t{ codigo: '38', nombre: '38' },\n\t\t{ codigo: '39', nombre: '39' },\n\t\t{ codigo: '40', nombre: '40' },\n\t\t{ codigo: '41', nombre: '41' },\n\t\t{ codigo: '42', nombre: '42' },\n\t\t{ codigo: '43', nombre: '43' },\n\t\t{ codigo: '44', nombre: '44' },\n\t\t{ codigo: '45', nombre: '45' },\n\t\t{ codigo: '46', nombre: '46' },\n\t\t{ codigo: '47', nombre: '47' },\n\t\t{ codigo: '48', nombre: '48' },\n\t\t{ codigo: '49', nombre: '49' },\n\t\t{ codigo: '50', nombre: '50' },\n\t\t{ codigo: '51', nombre: '51' },\n\t\t{ codigo: '52', nombre: '52' },\n\t\t{ codigo: '53', nombre: '53' },\n\t\t{ codigo: '54', nombre: '54' },\n\t\t{ codigo: '55', nombre: '55' },\n\t\t{ codigo: '56', nombre: '56' },\n\t\t{ codigo: '57', nombre: '57' },\n\t\t{ codigo: '58', nombre: '58' },\n\t\t{ codigo: '59', nombre: '59' },\n\n\t]\n\n\tCAMBIOCUOTA = \"U\";\n\tCAMBIOPORCENTAJEINTERES = \"P\";\n\tABONOEXTERNOCAPITAL = \"A\";\n\tABONOEXTERNOINTERES = \"I\";\n\n\tDESCAMBIOCUOTA = \"CAMBIO DE CUOTA\";\n\tDESCAMBIOPORCENTAJEINTERES = \"CAMBIO PORCENTAJE INTERES\";\n\tDESABONOEXTERNOCAPITAL = \"ABONO EXTERNO CAPITAL\";\n\tDESABONOEXTERNOINTERES = \"ABONO EXTERNO INTERES\";\n\n\tNOVEDADES = [\n\t\t{ codigo: this.CAMBIOCUOTA, nombre: this.DESCAMBIOCUOTA },\n\t\t{ codigo: this.CAMBIOPORCENTAJEINTERES, nombre: this.DESCAMBIOPORCENTAJEINTERES },\n\t\t{ codigo: this.ABONOEXTERNOCAPITAL, nombre: this.DESABONOEXTERNOCAPITAL },\n\t\t{ codigo: this.ABONOEXTERNOINTERES, nombre: this.DESABONOEXTERNOINTERES },\n\n\t]\n\n\tLIQUIDACION_PERIODICA_PRESTAMO = \"P\";\n\tLIQUIDACION_PERIODICA_EMBARGO = \"E\";\n\tLIQUIDACION_PERIODICA_AMBOS = \"A\";\n\n\tFORM_LIQUIDACION_PERIODICA = \"form_liquidacionesPeriodicasEmpleado:\";\n\tFORM_EMBARGO = \"form_embargoEmpleado:\";\n\tFORM_LIQUIDACION_PERIODICA_NOMINA = \"liquidacionPeriodo_form:\";\n\n\tORIGEN_LIQUIDACION_PERIODICA = \"LIQUIDACION_PERIODICA_PRESTAMO\";\n\tORIGEN_EMBARGO = \"LIQUIDACION_PERIODICA_EMBARGO\";\n\tORIGEN_LIQUIDACION_PERIODICA_NOMINA = \"LIQUIDACION_PERIODICA_NOMINA\";\n\n\n\t/*-------------------------------lista accion comprobante para descargas-----------------------------------------------------*/\n\n\tTODOS = 'T';\n\tCORREO = 'C';\n\tPUBLICACION = 'P';\n\tTODOSDESC = 'Archivo';\n\tCORREODESC = 'Enviar Correo';\n\tPUBLICACIONDESC = 'Publicar';\n\n\tLISTAACCIONCOMPROBANTE = [\n\t\t{ codigo: this.TODOS, nombre: this.TODOSDESC },\n\t\t{ codigo: this.CORREO, nombre: this.CORREODESC },\n\t\t{ codigo: this.PUBLICACION, nombre: this.PUBLICACIONDESC },\n\t]\n\n\ttransform(value: any, ...args: any): any {\n\t\tlet result = value;\n\t\tif (args[0] == 'listaLiquidacion') { this.LISTA_LIQUIDACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaaccioncomprobante') { this.LISTAACCIONCOMPROBANTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaEstados') { this.ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaTipo') { this.TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaNovedad') { this.NOVEDADES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\treturn result;\n\t}\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../constantes/Constantes';\nimport { DatoOrganizacionPipe } from './datoOrganizacion.pipe';\n\n@Pipe({\n    name: 'listaConstantesPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class ListaConstantesPipe implements PipeTransform {\n\n    constructor(\n    ) { }\n\n    GRADOACADEMICO = \"GA\";\n    DESCGRADOACADEMICO = \"Grado Acad\\u00E9mico\";\n    NIVELACADEMICO = \"NA\";\n    DESCNIVELACADEMICO = \"Nivel Acad\\u00E9mico\";\n\n\n    ORIGEN_NIVEL_ACADEMICO =\n        [\n            { codigo: this.GRADOACADEMICO, nombre: this.DESCGRADOACADEMICO },\n            { codigo: this.NIVELACADEMICO, nombre: this.DESCNIVELACADEMICO },\n        ]\n\n    VIGENTE_V = \"V\";\n    VIGENTE = Constantes.CONSTANTE_SI;\n    PLANTILLA_NOTIFICACION_CAMBIO_ESTADO_ASISTENTE_CURSO = \"CambioEstadoAsistenteCurso.html\";\n    PLANTILLA_NOTIFICACION_CAMBIO_ESTADO_ASISTENTE_EVENTO = \"CambioEstadoAsistenteEvento.html\";\n    PLANTILLA_INVITACION_ASISTENTE_EVENTO = \"InvitacionAsistenteEvento.html\";\n    PLANTILLA_INVITACION_ASISTENTE_CUROS = \"InvitacionAsistenteCurso.html\";\n    PLANTILLA_NOTIFICACION_PROCESO_SELECCION = \"notificacionProcesoSeleccion.html\";\n    PLANTILLA_NOADMITIDO_PROCESO_SELECCION = \"notificacionNoAdmitidoProcesoSeleccion.html\";\n    PLANTILLA_ENGANCHE_PROCESO_SELECCION = \"notificacionEngancheProcesoSeleccion.html\";\n    PLANTILLA_INFORMEFINAL_PROCESO_SELECCION = \"notificacionInformeFinalProcesoSeleccion.html\";\n    PLANTILLA_PROCESO_PROCESO_SELECCION = \"notificacionProcesoProcesoSeleccion.html\";\n    PLANTILLA_SELECCIONADO_PROCESO_SELECCION = \"notificacionSeleccionadoProcesoSeleccion.html\";\n    PLANTILLA_INSCRIPCION_PROCESO_SELECCION = \"notificacionInscripcionProcesoSeleccion.html\";\n    PLANTILLA_INVITACION_PROCESO_SELECCION = \"InvitacionProcesoSeleccion.html\";\n    PLANTILLA_DIPLOMA = \"DiplomaAsistente.html\";\n    PLANTILLA_NOTIFICACION_ASIGNACION_ELEMENTO = \"notificacionAsignacionElemento.html\";\n    PLANTILLA_RESPONSABLE_PROCESO_SELECCION = \"notificacionResponsableProcesoSeleccion.html\";\n    PLANTILLA_NOTIFICACION_SOLICITUD_ELEMENTO = \"notificacionSolicitudElemento.html\";\n    PLANTILLA_NOTIFICACION_INSPECCION_RECOMENDACION = \"notificacionInspeccionRecomendacion.html\";\n    PLANTILLA_NOTIFICACION_NOADMISION_CANDIDATO_EXT = \"notificacionNoAdmisionCandidato.html\";\n    PLANTILLA_NOTIFICACION_AUTORIZADOR_PLAN_CAPACITACION = \"notificacionPlanCapacitacion.html\";\n    PLANTILLA_NOTIFICACION_APROBACION_PLAN_CAPACITACION = \"aprobacionPlanCapacitacion.html\";\n    PLANTILLA_NOTIFICACION_RECHAZO_PLAN_CAPACITACION = \"rechazoPlanCapacitacion.html\";\n    NOVIGENTE = Constantes.CONSTANTE_NO;\n\n    DESVIGENTE = \"Vigente\";\n    DESNOVIGENTE = \"No Vigente\";\n\n    BASICO = \"B\";\n    ESPECIFICAR = \"E\";\n    NUEVOESPECIFICAR = \"C\";\n\n    DESBASICO = \"Basico\";\n    DESESPECIFICAR = \"Especificar\";\n    DESNUEVOESPECIFICAR = \"Nuevo especificar\";\n\n    PROCESO = \"P\";\n    BLOQUEADO = \"B\";\n    CERRADO = \"C\";\n    LIQUIDACION = \"L\";\n    ANULADO = \"A\";\n    INFORMEFINAL = \"F\";\n    SOLICITUD = Constantes.CONSTANTE_SI;\n    ENCONTRATACION = \"E\";\n\n    DESPROCESO = \"Proceso\";\n    DESBLOQUEADO = \"Bloqueado\";\n    DESCERRADO = \"Cerrado\";\n    DESANULADO = \"Anulado\";\n    DESINFORMEFINAL = \"Informe final\";\n    DESENCONTRATACION = \"En contrataci\" + Constantes.O_TIDLE_MIN + \"n\";\n    NOCONTRATADO = \"C\";\n\n    PROCESOCAN = \"A\";\n    NOADMITIDOS = Constantes.CONSTANTE_NO;\n    ENGANCHE = \"E\";\n    INSCRIPCION = \"I\";\n    PREINSCRIPCION = \"P\";\n\n    DESPROCESOCAN = \"Proceso\";\n    DESNOADMITIDOS = \"No Admitidos\";\n    DESENGANCHE = \"Enganche\";\n    DESINSCRIPCION = \"Inscripci\" + Constantes.O_TIDLE_MIN + \"n\";\n    DESPREINSCRIPCION = \"PreInscripci\" + Constantes.O_TIDLE_MIN + \"n\";\n    DESNOCONTRATADO = \"No Contratado\";\n\n    ALTA = \"A\";\n    MEDIA = \"M\";\n    BAJA = \"B\";\n    NOAPLICA = Constantes.CONSTANTE_NO;\n\n    DESALTA = \"Alta\";\n    DESMEDIA = \"Media\";\n    DESBAJA = \"Baja\";\n    DESNOAPLICA = \"No Aplica\";\n\n\n    INGRESO = \"I\";\n    RETIRO = \"R\";\n\n    INGRESODES = \"Ingreso\";\n    RETIRODES = \"Retiro\";\n\n    ACTIVO = \"A\";\n    INACTIVO = \"I\";\n\n    ACTIVODES = \"Activo\";\n    INACTIVODES = \"Inactivo\";\n\n    CUMPLIDO = \"C\";\n    TRAMITE = \"T\";\n    NOCUMPLIDO = Constantes.CONSTANTE_NO;\n    NOAPLICADOCUMENTO = \"X\";\n\n    CUMPLIDODES = \"Cumplido\";\n    TRAMITEDES = \"Tramite\";\n    NOCUMPLIDODES = \"No Cumplido\";\n\n    COMPLEJIDAD =\n        [\n            { codigo: this.ALTA, nombre: this.DESALTA },\n            { codigo: this.MEDIA, nombre: this.DESMEDIA },\n            { codigo: this.BAJA, nombre: this.DESBAJA },\n            { codigo: this.NOAPLICA, nombre: this.DESNOAPLICA },\n        ]\n\n    ESTADOS_PROCESO =\n        [\n            { codigo: this.PROCESO, nombre: this.DESPROCESO },\n            { codigo: this.BLOQUEADO, nombre: this.DESBLOQUEADO },\n            { codigo: this.CERRADO, nombre: this.DESCERRADO },\n            { codigo: this.ANULADO, nombre: this.DESANULADO },\n            { codigo: this.INFORMEFINAL, nombre: this.DESINFORMEFINAL },\n            { codigo: this.SOLICITUD, nombre: this.DESINSCRIPCION },\n            { codigo: this.ENCONTRATACION, nombre: this.DESENCONTRATACION },\n        ]\n\n\n    ESTADOS_PROCESO_SIN_ANULAR =\n        [\n            { codigo: this.PROCESO, nombre: this.DESPROCESO },\n            { codigo: this.BLOQUEADO, nombre: this.DESBLOQUEADO },\n            { codigo: this.CERRADO, nombre: this.DESCERRADO },\n            { codigo: this.INFORMEFINAL, nombre: this.DESINFORMEFINAL },\n            { codigo: this.SOLICITUD, nombre: this.DESINSCRIPCION },\n        ]\n\n    TODOS = \"T\";\n    DESTODOS = \"Todos\";\n\n    ESTADOS_CANIDATO =\n        [\n            { codigo: this.PROCESOCAN, nombre: this.DESPROCESOCAN },\n            { codigo: this.NOADMITIDOS, nombre: this.DESNOADMITIDOS },\n            { codigo: this.ENGANCHE, nombre: this.DESENGANCHE },\n            { codigo: this.INSCRIPCION, nombre: this.DESINSCRIPCION },\n            { codigo: this.PREINSCRIPCION, nombre: this.DESPREINSCRIPCION },\n            { codigo: this.CERRADO, nombre: \"Seleccionado\" },\n            { codigo: this.INFORMEFINAL, nombre: this.DESINFORMEFINAL },\n        ]\n\n    PROCESOETAPAPROCESO =\n        [\n            { codigo: this.PROCESOCAN, nombre: this.DESPROCESOCAN },\n            { codigo: this.NOADMITIDOS, nombre: this.DESNOADMITIDOS },\n            { codigo: this.ENGANCHE, nombre: this.DESENGANCHE },\n            { codigo: this.INSCRIPCION, nombre: this.DESINSCRIPCION },\n            { codigo: this.PREINSCRIPCION, nombre: this.DESPREINSCRIPCION },\n            { codigo: this.TODOS, nombre: this.DESTODOS },\n            { codigo: this.INFORMEFINAL, nombre: this.DESINFORMEFINAL },\n        ]\n\n\n    TIPOS_VIGENTE =\n        [\n            { codigo: this.VIGENTE, nombre: this.DESVIGENTE },\n            { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n        ]\n\n\n    TIPOS_VIGENTE_V =\n        [\n            { codigo: this.VIGENTE_V, nombre: this.DESVIGENTE },\n            { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n        ]\n\n\n    FUNCIONAL = \"F\";\n    CLIENTE = \"C\";\n    FUNCIONAL_DESC = \"FUNCIONAL\";\n    CLIENTE_DESC = \"CLIENTE\";\n\n\n    ESTADO_NECESIDAD =\n        [\n            { codigo: this.FUNCIONAL, nombre: this.FUNCIONAL_DESC },\n            { codigo: this.CLIENTE, nombre: this.CLIENTE_DESC },\n        ]\n\n\n\n    ESTADOS =\n        [\n            { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n            { codigo: this.BASICO, nombre: this.DESBASICO },\n            { codigo: this.ESPECIFICAR, nombre: this.DESESPECIFICAR },\n            { codigo: this.NUEVOESPECIFICAR, nombre: this.DESNUEVOESPECIFICAR },\n        ]\n\n    ESTADOS_TOTALES =\n        [\n            { codigo: this.VIGENTE, nombre: this.DESVIGENTE },\n            { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n            { codigo: this.BASICO, nombre: this.DESBASICO },\n            { codigo: this.ESPECIFICAR, nombre: this.DESESPECIFICAR },\n            { codigo: this.NUEVOESPECIFICAR, nombre: this.DESNUEVOESPECIFICAR },\n            { codigo: this.FUNCIONAL, nombre: this.FUNCIONAL_DESC },\n            { codigo: this.CLIENTE, nombre: this.CLIENTE_DESC },\n            { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n            { codigo: this.BASICO, nombre: this.DESBASICO },\n            { codigo: this.ESPECIFICAR, nombre: this.DESESPECIFICAR },\n            { codigo: this.NUEVOESPECIFICAR, nombre: this.DESNUEVOESPECIFICAR },\n\n        ]\n\n    CUMPLIDO_REQ =\n        [\n            { codigo: this.CUMPLIDO, nombre: this.CUMPLIDODES },\n            { codigo: this.TRAMITE, nombre: this.TRAMITEDES },\n            { codigo: this.NOCUMPLIDO, nombre: this.NOCUMPLIDODES },\n            { codigo: this.NOAPLICADOCUMENTO, nombre: this.DESNOAPLICA },\n        ]\n\n    CUMPLIDO_REQ_SIMPLE =\n        [\n            { codigo: this.CUMPLIDO, nombre: this.CUMPLIDODES },\n            { codigo: this.NOCUMPLIDO, nombre: this.NOCUMPLIDODES },\n            { codigo: this.NOAPLICADOCUMENTO, nombre: this.DESNOAPLICA },\n        ]\n\n    PROCESO_REQUISITO =\n        [\n            { codigo: this.INGRESO, nombre: this.INGRESODES },\n            { codigo: this.RETIRO, nombre: this.RETIRODES },\n        ]\n\n    SI = Constantes.CONSTANTE_SI;\n    NO = Constantes.CONSTANTE_NO;\n\n    DESSI = \"SI\";\n    DESNO = \"NO\";\n\n\n    SI_NO =\n        [\n            { codigo: this.SI, nombre: this.DESSI },\n            { codigo: this.NO, nombre: this.DESNO },\n        ]\n\n    ACTIVO_REQUISITO =\n        [\n            { codigo: this.ACTIVO, nombre: this.ACTIVODES },\n            { codigo: this.INACTIVO, nombre: this.INACTIVODES },\n        ]\n\n    DIARIA = \"D\";\n    SEMANAL = Constantes.CONSTANTE_SI;\n    MENSUAL = \"M\";\n    PERIODICA = \"P\";\n    ANUAL = \"A\";\n    SEMESTRAL = \"T\";\n    QUINCENAL = \"Q\";\n    TRIMESTRAL = \"R\";\n    OCASIONAL = \"O\";\n    FRECUENTE = \"F\";\n    BIMENSUAL = \"B\";\n    CATORCENAL = \"C\";\n\n    DESDIARIA = \"DIARIA\";\n    DESSEMANAL = \"SEMANAL\";\n    DESMENSUAL = \"MENSUAL\";\n    DESPERIODICA = \"PERIODICA\";\n    DESANUAL = \"ANUAL\";\n    DESSEMESTRAL = \"SEMESTRAL\";\n    DESQUINCENAL = \"QUINCENAL\";\n    DESTRIMESTRAL = \"TRIMESTRAL\";\n    OCASIONAL_DESC = \"OCASIONAL\";\n    FRECUENTE_DESC = \"FRECUENTE\";\n    DESBIMENSUAL = \"BIMENSUAL\";\n    DESCATORCENAL = \"CATORCENAL\";\n\n    FRECUENCIA =\n        [\n            { codigo: this.DIARIA, nombre: this.DESDIARIA },\n            { codigo: this.SEMANAL, nombre: this.DESSEMANAL },\n            { codigo: this.MENSUAL, nombre: this.DESMENSUAL },\n            { codigo: this.PERIODICA, nombre: this.DESPERIODICA },\n            { codigo: this.ANUAL, nombre: this.DESANUAL },\n            { codigo: this.SEMESTRAL, nombre: this.DESSEMESTRAL },\n            { codigo: this.QUINCENAL, nombre: this.DESQUINCENAL },\n            { codigo: this.TRIMESTRAL, nombre: this.DESTRIMESTRAL },\n            { codigo: this.OCASIONAL, nombre: this.OCASIONAL_DESC },\n            { codigo: this.FRECUENTE, nombre: this.FRECUENTE_DESC },\n\n        ]\n\n    FRECUENCIA_SOLICITUD_ELEMENTOS =\n        [\n            { codigo: this.MENSUAL, nombre: this.DESMENSUAL },\n            { codigo: this.BIMENSUAL, nombre: this.DESBIMENSUAL },\n            { codigo: this.TRIMESTRAL, nombre: this.DESTRIMESTRAL },\n            { codigo: this.SEMESTRAL, nombre: this.DESSEMESTRAL },\n            { codigo: this.ANUAL, nombre: this.DESANUAL },\n        ]\n\n    AUTORIZACION = \"A\";\n    PROCEDIIENTO = \"P\";\n    NOAUTORIZACION = Constantes.CONSTANTE_NO;\n\n    DESAUTORIZACION = \"Autorizacion Nivel Superior\";\n    DESPROCEDIIENTO = \"Sigue procedimiento\";\n    DESNOAUTORIZACION = \"No necesita autorizacion\";\n\n    AUTONOMIA =\n        [\n            { codigo: this.AUTORIZACION, nombre: this.DESAUTORIZACION },\n            { codigo: this.PROCEDIIENTO, nombre: this.DESPROCEDIIENTO },\n            { codigo: this.NOAUTORIZACION, nombre: this.DESNOAUTORIZACION },\n        ]\n\n    INTERNA = \"I\";\n    EXTERNA = \"E\";\n\n    DESINTERNA = \"INTERNA\";\n    DESEXTERNA = \"EXTERNA\";\n\n    TIPO =\n        [\n            { codigo: this.INTERNA, nombre: this.DESINTERNA },\n            { codigo: this.EXTERNA, nombre: this.DESEXTERNA },\n        ]\n\n    ACEPTADO = \"A\";\n    CREADO = \"C\";\n    PENDIENTE = \"P\";\n    RECHAZADA = \"R\";\n\n    MAYORQUE = \"MAYORQUE\";\n    MENORQUE = \"MENORQUE\";\n    ENTRE = \"ENTRE\";\n    IGUAL = \"IGUAL\";\n\n    DESMAYORQUE = \"MAYOR QUE\";\n    DESMENORQUE = \"MENOR QUE\";\n    DESENTRE = \"ENTRE\";\n    DESIGUAL = \"IGUAL\";\n\n    COMPARACION =\n        [\n            { codigo: this.MAYORQUE, nombre: this.DESMAYORQUE },\n            { codigo: this.MENORQUE, nombre: this.DESMENORQUE },\n            { codigo: this.ENTRE, nombre: this.DESENTRE },\n            { codigo: this.IGUAL, nombre: this.DESIGUAL },\n        ]\n\n    VACIO = Constantes.PUNTO;\n    DESVACIO = \"Titulo Carpeta\";\n\n    DESTIPOADICIONAL = \"Tipo\";\n    DESDESCRIPCIONCOMITEADICIONAL = \"Descripci\\u00F3n 1\";\n    DESPROPOSITOADICIONAL = \"Descripci\\u00F3n 2\";\n    DESREQUERIDADADICIONAL = \"Valor 1\";\n    DESPAPELADICIONAL = \"Descripci\\u00F3n 3\";\n    DESFRECUENCIAADICIONAL = \"Descripci\\u00F3n 4\";\n\n    DISTRIBUCIONCONTABLE = \"distribucioncontable\";\n    DISTRIBUCIONCONTABLE_DESC = \"distribucion contable\";\n\n    SEPARADOR = \",\";\n\n    INDISPENSABLE = \"I\";\n    OPCIONAL = \"O\";\n    INDISPENSABLEDESC = \"INDISPENSABLE\";\n    OPCIONALDESC = \"OPCIONAL\";\n\n    LISTA_NECESIDADESMEDIOEVENTO =\n        [\n            { codigo: this.INDISPENSABLE, nombre: this.INDISPENSABLEDESC },\n            { codigo: this.OPCIONAL, nombre: this.OPCIONALDESC },\n        ]\n\n    // LUNES = \"LUN\";\n    // MARTES = \"MAR\";\n    // MIERCOLES = \"MIE\";\n    // JUEVES = \"JUE\";\n    // VIERNES = \"VIE\";\n    // SABADO = \"SAB\";\n    // DOMINGO = \"DOM\";\n\n    /*-------------------------------------- CONCURSO ----------------------------------------*/\n\n    PROCESOEXTERNO = \"E\";\n    CONCURSOINTERNO = \"P\";\n    MIXTO = \"M\";\n\n    PROCESOEXTERNODESC = \"Proceso Externo\";\n    CONCURSOINTERNODESC = \"Proceso Interno\";\n    MIXTODESC = \"Mixto\";\n\n    CONCURSO =\n        [\n            { codigo: this.CONCURSOINTERNO, nombre: this.CONCURSOINTERNODESC },\n            { codigo: this.PROCESOEXTERNO, nombre: this.PROCESOEXTERNODESC },\n            { codigo: this.MIXTO, nombre: this.MIXTODESC },\n        ]\n\n    EVENTO = \"E\";\n    DIA_EVENTO = \"D\";\n    EVENTO_DESC = \"EVENTO\";\n    DIA_EVENTO_DESC = \"DIA EVENTO\";\n\n    LISTA_FILTRO_EVENTO =\n        [\n            { codigo: this.EVENTO, nombre: this.EVENTO_DESC },\n            { codigo: this.DIA_EVENTO, nombre: this.DIA_EVENTO_DESC },\n        ]\n\n    /*-------------------------------------- TIPO PRUEBAS ----------------------------------------*/\n    PSICOMETRIA = \"Psicometr\\u00EDa\";\n    TIPOPRUEBAS =\n        [\n            { codigo: this.SI, nombre: this.PSICOMETRIA },\n            { codigo: this.NO, nombre: this.DESNO },\n        ]\n\n    /*-------------------------------------- TIPO ENTREVISTA ----------------------------------------*/\n    ESTRUCTURA = Constantes.CONSTANTE_SI;\n    NOESTRUCTURA = Constantes.CONSTANTE_NO;\n    VISITADOMICILIARIA = \"V\";\n\n    ESTRUCTURADESC = \"Estructura\";\n    NOESTRUCTURADESC = \"No Estructura\";\n    VISITADOMICILIARIADESC = \"Visita Domiciliaria\";\n\n    TIPOENTREVISTA =\n        [\n            { codigo: this.ESTRUCTURA, nombre: this.ESTRUCTURADESC },\n            { codigo: this.NOESTRUCTURA, nombre: this.NOESTRUCTURADESC },\n            { codigo: this.VISITADOMICILIARIA, nombre: this.VISITADOMICILIARIADESC },\n        ]\n\n    /*-------------------------------------- ETAPAPROCESO ----------------------------------------*/\n\n    ETAPAPROCESO =\n        [\n            { codigo: this.PROCESOCAN, nombre: this.DESPROCESOCAN },\n            { codigo: this.NOADMITIDOS, nombre: this.DESNOADMITIDOS },\n            { codigo: this.ENGANCHE, nombre: this.DESENGANCHE },\n            { codigo: this.INSCRIPCION, nombre: this.DESINSCRIPCION },\n            { codigo: this.INFORMEFINAL, nombre: this.DESINFORMEFINAL },\n            { codigo: this.PREINSCRIPCION, nombre: this.DESPREINSCRIPCION },\n            { codigo: this.NOCONTRATADO, nombre: this.DESNOCONTRATADO },\n        ]\n\n    /*-------------------------------------- MEDIOETAPAPROCESO ----------------------------------------*/\n\n    PRUEBA = \"P\";\n    ENTREVISTA = \"E\";\n\n    DESPRUEBA = \"Prueba\";\n    DESENTREVISTA = \"Entrevista\";\n\n    UNICO_MEDIO_DES = \"Unico Medio\";\n    UNICO_MEDIO = \"U\";\n\n    MULTIPLES_MEDIO_DES = \"Multiples Medio\";\n    MULTIPLES_MEDIO = \"M\";\n\n    NO_APLICA_MEDIO_DES = \"No Aplica\";\n    NO_APLICA_MEDIO = Constantes.CONSTANTE_NO;\n\n    HERRAMIENTA = \"H\";\n    HERRAMIENTA_DESC = \"Herramienta\";\n\n    MEDIOETAPAPROCESO =\n        [\n            { codigo: this.UNICO_MEDIO, nombre: this.UNICO_MEDIO_DES },\n            { codigo: this.MULTIPLES_MEDIO, nombre: this.MULTIPLES_MEDIO_DES },\n            { codigo: this.NO_APLICA_MEDIO, nombre: this.NO_APLICA_MEDIO_DES },\n            { codigo: this.HERRAMIENTA, nombre: this.HERRAMIENTA_DESC }\n        ]\n\n    /*-------------------------------------- ESTADO ETAPA PROCESO ----------------------------------------*/\n\n    NOSEPRESENTO = Constantes.CONSTANTE_NO;\n    PROGRAMA = \"P\";\n    NOEFECTUADA = \"X\";\n    POR_DEFINIR_FECHA = \"A\";\n\n\n    DESNOSEPRESENTO = \"No se presento\";\n    DESPROGRAMA = \"Programada\";\n    DESNOEFECTUADA = \"Efectuada\";\n    POR_DEFINIR_FECHA_DESC = \"Por Definir Fecha\";\n\n    ESTADOETAPAPROCESO =\n        [\n            { codigo: this.NOSEPRESENTO, nombre: this.DESNOSEPRESENTO },\n            { codigo: this.PROGRAMA, nombre: this.DESPROGRAMA },\n            { codigo: this.NOEFECTUADA, nombre: this.DESNOEFECTUADA },\n            { codigo: this.POR_DEFINIR_FECHA, nombre: this.POR_DEFINIR_FECHA_DESC },\n        ]\n\n    PROPONE = \"P\";\n    PROPONE_DESC = \"PROPONER\";\n\n    LISTA_ACCION_ETAPA =\n        [\n            { codigo: this.PROPONE, nombre: this.PROPONE_DESC },\n            { codigo: this.NO_APLICA_MEDIO, nombre: this.NO_APLICA_MEDIO_DES },\n        ]\n\n\n    SININICIAL = \"I\";\n    CERRADA = \"C\";\n\n    DESSININICIAL = \"Sin Iniciar\";\n    DESCERRADA = \"Cerrada\";\n\n    LISTA_ESTADO_ETAPA =\n        [\n            { codigo: this.PROCESO, nombre: this.DESPROCESO },\n            { codigo: this.SININICIAL, nombre: this.DESSININICIAL },\n            { codigo: this.CERRADA, nombre: this.DESCERRADA },\n        ]\n\n    /*-------------------------------------- ACCION ETAPA PROCESO ----------------------------------------*/\n\n    BORRARREGISTRO = \"B\";\n    REGISTRARCITACION = Constantes.CONSTANTE_NO;\n\n    DESBORRARREGISTRO = \"Borrar registro previa citaci\\u00F3n\";\n    DESREGISTRARCITACION = \"Registrar una nueva citaci\\u00F3n\";\n\n    ACCIONETAPAPROCESO =\n        [\n            { codigo: this.BORRARREGISTRO, nombre: this.DESBORRARREGISTRO },\n            { codigo: this.REGISTRARCITACION, nombre: this.DESREGISTRARCITACION },\n        ]\n\n\n    /*-------------------------------------- TIPO DE FUENTE ----------------------------------------*/\n\n    MULTIPLE = \"M\";\n    UNICO = \"U\";\n    MULTIPLE_DESC = \"MULTIPLES LINEAS POR REGISTRO\";\n    UNICO_DESC = \"UNICA LINEA POR REGISTRO\";\n\n    LISTA_TIPO_FUENTE =\n        [\n            { codigo: this.MULTIPLE, nombre: this.MULTIPLE_DESC },\n            { codigo: this.UNICO, nombre: this.UNICO_DESC },\n        ]\n    /*-------------------------------------- TIPO DE HOMOLOGACION ----------------------------------------*/\n    CARGO = \"CG\";\n    UBICACION_GEOGRAFICA = \"UG\";\n    ESTADO_CIVIL = \"EC\";\n    NIVEL_ACADEMICO = \"NA\";\n    TIPO_VINCULACION = \"TV\";\n    SUCURSAL = \"SC\";\n    TIPO_HOJA = \"TH\";\n    PROFESION_OFICIO = \"PO\";\n    VINCULACION_LABORAL = \"VL\";\n    ESTADO_LABORAL = \"EL\";\n    TIPO_PERIODO = \"TP\";\n    LINEA_COSTO = \"LC\";\n    TURNO_TO = \"TN\";\n    UBICACION_FISICA = \"UF\";\n    CENTROCOSTO = \"CC\";\n    ZONA = \"ZE\";\n    UNIDADTO = \"UN\";\n    TIPODOCUMENTO = \"TD\";\n    SEXO = \"SX\";\n    EMPRESA = \"EP\";\n    MOTIVORETIRO = \"MR\";\n    CARGO_DESC = \"CARGO\";\n    SEXO_DESC = \"SEXO\";\n    EMPRESA_DESC = \"EMPRESA\";\n    MOTIVORETIRO_DESC = \"MOTIVO DE RETIRO\";\n    UBICACION_GEOGRAFICA_DESC = \"UBICACION GEOGRAFICA\";\n    ESTADO_CIVIL_DESC = \"ESTADO CIVIL\";\n    NIVEL_ACADEMICO_DESC = \"NIVEL ACADEMICO\";\n    TIPO_VINCULACION_DESC = \"TIPO DE VINCULACION\";\n    SUCURSAL_DESC = \"SUCURSAL\";\n    TIPO_HOJA_DESC = \"TIPO DE HOJA\";\n    PROFESION_OFICIO_DESC = \"PROFESION OFICIO\";\n    VINCULACION_LABORAL_DESC = \"VINCULACION LABORAL\";\n    ESTADO_LABORAL_DESC = \"ESTADO LABORAL\";\n    TIPO_PERIODO_DESC = \"TIPO PERIODO\";\n    LINEA_COSTO_DESC = \"LINEA COSTO\";\n    TURNO_TO_DESC = \"TURNO\";\n    UBICACION_FISICA_DESC = \"UBICACION FISICA\";\n    CENTROCOSTO_DESC = \"CENTRO DE COSTO\";\n    ZONA_DESC = \"ZONA ECONOMICA\";\n    UNIDADTO_DESC = \"UNIDAD\";\n    TIPODOCUMENTO_DESC = \"TIPO DE DOCUMENTO\";\n\n    LISTA_TIPO_HOMOLOGACION =\n        [\n            { codigo: this.CARGO, nombre: this.CARGO_DESC },\n            { codigo: this.ESTADO_CIVIL, nombre: this.ESTADO_CIVIL_DESC },\n            { codigo: this.UBICACION_GEOGRAFICA, nombre: this.UBICACION_GEOGRAFICA_DESC },\n            { codigo: this.NIVEL_ACADEMICO, nombre: this.NIVEL_ACADEMICO_DESC },\n            { codigo: this.TIPO_VINCULACION, nombre: this.TIPO_VINCULACION_DESC },\n            { codigo: this.SUCURSAL, nombre: this.SUCURSAL_DESC },\n            { codigo: this.TIPO_HOJA, nombre: this.TIPO_HOJA_DESC },\n            { codigo: this.PROFESION_OFICIO, nombre: this.PROFESION_OFICIO_DESC },\n            { codigo: this.VINCULACION_LABORAL, nombre: this.VINCULACION_LABORAL_DESC },\n            { codigo: this.ESTADO_LABORAL, nombre: this.ESTADO_LABORAL_DESC },\n            { codigo: this.TIPO_PERIODO, nombre: this.TIPO_PERIODO_DESC },\n            { codigo: this.LINEA_COSTO, nombre: this.LINEA_COSTO_DESC },\n            { codigo: this.TURNO_TO, nombre: this.TURNO_TO_DESC },\n            { codigo: this.UBICACION_FISICA, nombre: this.UBICACION_FISICA_DESC },\n            { codigo: this.CENTROCOSTO, nombre: this.CENTROCOSTO_DESC },\n            { codigo: this.ZONA, nombre: this.ZONA_DESC },\n            { codigo: this.UNIDADTO, nombre: this.UNIDADTO_DESC },\n            { codigo: this.TIPODOCUMENTO, nombre: this.TIPODOCUMENTO_DESC },\n            { codigo: this.SEXO, nombre: this.SEXO_DESC },\n            { codigo: this.MOTIVORETIRO, nombre: this.MOTIVORETIRO_DESC },\n            { codigo: this.EMPRESA, nombre: this.EMPRESA_DESC },\n        ]\n\n    CARGADO = \"C\";\n    PROCESADO = \"P\";\n    CARGADO_DESC = \"CARGADO\";\n    PROCESADO_DESC = \"PROCESADO\";\n    LISTA_ESTADO_FUENTE_CARGUE =\n        [\n            { codigo: this.CARGADO, nombre: this.CARGADO_DESC },\n            { codigo: this.PROCESADO, nombre: this.PROCESADO_DESC },\n        ]\n\n    IMPRESION_HOJAINTERNA = \"HV\";\n    IMPRESION_PERIODO = \"W\";\n    IMPRESION_TIPO_DC = \"DC\";\n    IMPRESION_HOJAEXTERNA = \"HE\";\n\n    MAPAIMPRESIONHOJA =\n        [\n            { codigo: this.IMPRESION_HOJAINTERNA, nombre: \"HOJA INTERNA\" },\n            { codigo: this.IMPRESION_HOJAEXTERNA, nombre: \"HOJA EXTERNA\" },\n        ]\n\n    ELIMINATORIA = \"E\";\n    CLASIFICATORIA = \"C\";\n\n    ELIMINATORIADES = \"Eliminatoria\";\n    CLASIFICATORIADES = \"Clasificatoria\";\n\n    MAPAACCIONESMEDIOS =\n        [\n            { codigo: this.NOAPLICA, nombre: this.DESNOAPLICA },\n            { codigo: this.ELIMINATORIA, nombre: this.ELIMINATORIADES },\n            { codigo: this.CLASIFICATORIA, nombre: this.CLASIFICATORIADES },\n        ]\n\n    PLANTA_PERSONAL_DENTRO_UNIDAD = \"DU\";\n    PLANTA_PERSONAL_UNIDAD_EXTERNA = \"UE\";\n    PLANTA_PERSONAL_DENTRO_UNIDAD_DEFINICION = \"Dentro de la Unidad\";\n    PLANTA_PERSONAL_UNIDAD_EXTERNA_DEFINICION = \"Unidad Externa\";\n\n    /**\n     *Constantes Estado Etapa Cuando es Informe Final\n     */\n    INFORMEFINAL_POREVALUAR = \"E\";\n    INFORMEFINAL_NOACEPTADO = Constantes.CONSTANTE_NO;\n    INFORMEFINAL_ACEPTADO = Constantes.CONSTANTE_SI;\n\n    INFORMEFINAL_POREVALUARDES = \"En Proceso\";\n    INFORMEFINAL_NOACEPTADODES = \"No Aceptado\";\n    INFORMEFINAL_ACEPTADODES = \"Aceptado\";\n\n    MAPAINFORMEFINAL =\n        [\n            { codigo: this.INFORMEFINAL_ACEPTADO, nombre: this.INFORMEFINAL_ACEPTADODES },\n            { codigo: this.INFORMEFINAL_NOACEPTADO, nombre: this.INFORMEFINAL_NOACEPTADODES },\n            { codigo: this.INFORMEFINAL_POREVALUAR, nombre: this.INFORMEFINAL_POREVALUARDES },\n        ]\n\n\n\n    BASEDESCCARGO_DESC = \"Base Descripci\" + Constantes.O_TIDLE_MIN + \"n  Cargo\";\n    FILTROHV = \"H\";\n    FILTROHV_DESC = \"Filtro Hoja Vida\";\n\n    ESTADOPERFILFILTRO =\n    [\n        {codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE},\n        {codigo: this.VIGENTE, nombre: this.BASEDESCCARGO_DESC},\n        {codigo: this.FILTROHV, nombre: this.FILTROHV_DESC},\n    ]\n\n    TIPO_CANDIDATO = \"CANDI\";\n    TIPO_PROCESO = \"PROCE\";\n\n    /*-------------------------------------- TIPO CUENTA ----------------------------------------*/\n\n    AHORROS = \"A\";\n    CORRIENTE = \"C\";\n\n    AHORROS_DESC = \"Ahorros\";\n    CORRIENTE_DESC = \"Corriente\";\n\n    LISTA_TIPO_CUENTA =\n    [\n        {codigo: this.AHORROS, nombre: this.AHORROS_DESC},\n        {codigo: this.CORRIENTE, nombre: this.CORRIENTE_DESC},\n    ]\n\n    /*-------------------------------------- TIPO PLANILLA ----------------------------------------*/\n\n    CONSOLIDADO = \"C\";\n    ESPECIAL = \"D\";\n    UNICA = \"U\";\n    SUCURSAL_PRIME = \"S\";\n\n    CONSOLIDADO_DESC = \"Consolidado\";\n    ESPECIAL_DESC = \"Especial\";\n    UNICA_DESC = \"Unica\";\n    SUCURSALPRIME_DESC = \"Sucursal\";\n\n    LISTA_TIPO_PLANILLA =\n    [\n        {codigo: this.CONSOLIDADO, nombre: this.CONSOLIDADO_DESC},\n        {codigo: this.ESPECIAL, nombre: this.ESPECIAL_DESC},\n        {codigo: this.UNICA, nombre: this.UNICA_DESC},\n        {codigo: this.SUCURSAL_PRIME, nombre: this.SUCURSALPRIME_DESC},\n    ]\n\n\n    /*\n     * =========================================================Constantes envio comprobantes nomina=========================================================\n     */\n    ENVIAR_AL_CONFIRMAR_ARCHIVO_DE_PAGO = \"1\";\n    ENVIAR_A_SOLICITUD_DEL_ADMINISTRADOR = \"2\";\n    NO_ENVIAR_COMPROBANTES = \"3\";\n\n    ENVIAR_AL_CONFIRMAR_ARCHIVO_DE_PAGO_DESC = \"Enviar correo al confirmar archivo de pago\";\n    ENVIAR_A_SOLICITUD_DEL_ADMINISTRADOR_DESC = \"Enviar correo a solicitud del administrador\";\n    NO_ENVIAR_COMPROBANTES_DESC = \"No enviar comprobantes\";\n\n    OPCIONES_ENVIO_COMPROBANTES =\n    [\n        {codigo: this.ENVIAR_AL_CONFIRMAR_ARCHIVO_DE_PAGO, nombre: this.ENVIAR_AL_CONFIRMAR_ARCHIVO_DE_PAGO_DESC},\n        {codigo: this.ENVIAR_A_SOLICITUD_DEL_ADMINISTRADOR, nombre: this.ENVIAR_A_SOLICITUD_DEL_ADMINISTRADOR_DESC},\n        {codigo: this.NO_ENVIAR_COMPROBANTES, nombre: this.NO_ENVIAR_COMPROBANTES_DESC},\n    ]\n\n    /*\n     * =========================================================Constantes pago colaborador=========================================================\n     */\n    CHEQUE_TRANSFERENCIA = \"CH\";\n    PROXIMA_NOMINA = \"PN\";\n\n    CHEQUE_TRANSFERENCIA_DESC = \"Cheque, Transferencia\";\n    PROXIMA_NOMINA_DESC = \"Proxima Nómina\";\n\n    OPCIONES_PAGO_COLABORADOR =\n    [\n        {codigo: this.CHEQUE_TRANSFERENCIA, nombre: this.CHEQUE_TRANSFERENCIA_DESC},\n        {codigo: this.PROXIMA_NOMINA, nombre: this.PROXIMA_NOMINA_DESC},\n    ]\n\n    MAPATIPOREQUERIMIENTO = [\n        {codigo: 'PT', nombre: 'Puesto Existe'},\n        {codigo: 'CE', nombre: 'Cargo Existe'},\n        {codigo: 'CN', nombre: 'Nuevo Cargo'},\n    ]\n\n    NECESIDAD_CAPACITACION = \"NECESIDADCAPAC_NEC\";\n\n\n   ACTIVOS =\"A\";\n   CANCELADO=\"C\"\n\n   NOMINA_ACTIVO_DES =\"Activo\";\n   NOMINA_CANCELADO_DES =\"Cancelado\";\n\n\n   LISTA_ESTADO = [\n     { codigo: this.ACTIVOS, nombre: this.NOMINA_ACTIVO_DES },\n     { codigo: this.CANCELADO, nombre: this.NOMINA_CANCELADO_DES },\n\n    ]\n\n    LISTA_TABLAS_ADICIONALES = [\n       //FIXME: Por qué usar propiedades de dato organizacion aqui? crear LISTA_TABLAS_ADICIONALES en datoOrganizacionCons, genera error al compilar lib\n        // { codigo: this.datoOrganizacionCons.RELACION, nombre: this.datoOrganizacionCons.RELACION },\n        // { codigo: this.datoOrganizacionCons.GRUPO, nombre: this.datoOrganizacionCons.GRUPO },\n        // { codigo: this.datoOrganizacionCons.INDUCCION, nombre: this.datoOrganizacionCons.INDUCCION },\n        // { codigo: this.datoOrganizacionCons.ENTRENAMIENTO, nombre: this.datoOrganizacionCons.ENTRENAMIENTO },\n        // { codigo: this.datoOrganizacionCons.FORMACION, nombre: this.datoOrganizacionCons.FORMACION },\n        // { codigo: this.datoOrganizacionCons.TABLA1, nombre: this.datoOrganizacionCons.TABLA1 },\n        // { codigo: this.datoOrganizacionCons.TABLA2, nombre: this.datoOrganizacionCons.TABLA2 },\n        // { codigo: this.datoOrganizacionCons.TABLA3, nombre: this.datoOrganizacionCons.TABLA3 },\n        // { codigo: this.datoOrganizacionCons.TABLA4, nombre: this.datoOrganizacionCons.TABLA4 },\n        // { codigo: this.datoOrganizacionCons.TABLA5, nombre: this.datoOrganizacionCons.TABLA5 },\n        // { codigo: this.datoOrganizacionCons.EPP, nombre: this.datoOrganizacionCons.EPP },\n        // { codigo: this.datoOrganizacionCons.DOTACIONEQUIPO, nombre: this.datoOrganizacionCons.DOTACIONEQUIPO },\n    ]\n\n    transform(value: any, ...args: any): any {\n      let result = value;\n      if (args[0] == 'listaCumplidoReq') { this.CUMPLIDO_REQ.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'mapaTipoRequerimiento') { this.MAPATIPOREQUERIMIENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'etapaProceso') { this.ETAPAPROCESO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'mapaAccionesMedios') { this.MAPAACCIONESMEDIOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'listaEstado') { this.LISTA_ESTADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'listaNecesidadMedioEvento') { this.LISTA_NECESIDADESMEDIOEVENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'listanecesidades') { this.LISTA_NECESIDADESMEDIOEVENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'listaEstadoNecesidad') { this.ESTADO_NECESIDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      if (args[0] == 'listaSi_No') { this.SI_NO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    \n      return result;\n    }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { GeneralPipe } from './general.pipe';\n\n@Pipe({\n    name: 'ausentismoPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class AusentismoPipe implements PipeTransform {\n\n    constructor(\n    ) { }\n\n    CHEQUE = 'C';\n    ENTIDADAPAGO = 'E';\n    PAGONOMINA = 'N';\n\n    DESCCHEQUE = 'Cheque';\n    DESCENTIDADAPAGO = 'Entidad de Pago';\n    DESCPAGONOMINA = 'Periodo de Nomina';\n\n    PASIVO = 'PA';\n\n    COMPENSADA = 'C';\n    AUSENTISMO = 'A';\n    VACACION = 'V';\n    INCAPACIDAD = 'I';\n    LICENCIA = 'L';\n    TERMINARCONTRATO = 'T';\n\n    DESCVACACION = 'Vacacion';\n    DESCINCAPACIDAD = 'Incapacidad';\n    DESCLICENCIA = 'Licencia';\n    DESTERMINARCONTRATO = 'TERMINACION CONTRATO';\n\n    INTERRUPCION = 'I';\n    DESCINTERRUPCION = 'Interrupci\\u00F3n';\n\n    SI = 'S';\n    NO = 'N';\n\n    DESCSI = 'SI';\n    DESCNO = 'NO';\n    DESCNO_APLICA = 'No Aplica';\n\n\n    PRORROGA =\n        [\n            { codigo: this.SI, nombre: this.DESCSI },\n            { codigo: this.NO, nombre: this.DESCNO }\n        ]\n\n\n    FORMAPAGO = [\n        { codigo: this.CHEQUE, nombre: this.DESCCHEQUE },\n        { codigo: this.ENTIDADAPAGO, nombre: this.DESCENTIDADAPAGO },\n        { codigo: this.PAGONOMINA, nombre: this.DESCPAGONOMINA }\n    ]\n\n    ORIGENPASIVO = [\n        { codigo: this.INTERRUPCION, nombre: this.DESCINTERRUPCION },\n        { codigo: this.NO, nombre: this.DESCNO_APLICA }\n    ]\n\n    TIPOINTERRUPCION = [\n        { codigo: this.SI, nombre: this.DESCINTERRUPCION },\n        { codigo: this.NO, nombre: this.DESCNO_APLICA }\n    ]\n\n\n\n    ORIGENAUSENCIA = [\n        { codigo: this.VACACION, nombre: this.DESCVACACION },\n        { codigo: this.INCAPACIDAD, nombre: this.DESCINCAPACIDAD },\n        { codigo: this.LICENCIA, nombre: this.DESCLICENCIA }\n    ]\n\n    AUSENCIAS = 'L';\n    INCAPACIDAD_DESC = 'Incapacidad';\n    AUSENCIAS_DESC = 'Ausencias';\n    AUSENCIA_DESC = 'Ausencia';\n    COMPENSACION_DESC = 'Compensacion';\n    MODO_COMPENSACION_DESC = 'ModoCompensacion';\n\n    mapaAusentismoAusencia = [\n        { codigo: this.INCAPACIDAD, nombre: this.INCAPACIDAD_DESC },\n        { codigo: this.AUSENCIAS, nombre: this.AUSENCIA_DESC }\n    ]\n\n    TERMINACIONCONTRATO = 'T';\n    DESTERMINACIONCONTRATO = 'Terminación Contrato';\n    RELIQUIDACION = 'R';\n    DESRELIQUIDACION = 'Reliquidación';\n\n    MAPA_ORIGEN_TERMINACION_CONTRATO = [\n        { codigo: this.TERMINACIONCONTRATO, nombre: this.DESTERMINACIONCONTRATO },\n        { codigo: this.RELIQUIDACION, nombre: this.DESRELIQUIDACION },\n    ]\n\n    CODIGO_DIAGNOSTICO = \"codigodiagnostico\";\n    LISTA_DIAGNOSTICO = \"listadiagnostico\";\n    HORA_SALIDA = \"horasalida\";\n    HORA_REGRESA = \"horaregresa\";\n    CADENA1 = \"cadena1\";\n    CADENA2 = \"cadena2\";\n    CADENA3 = \"cadena3\";\n    VALOR3 = \"valor3\";\n    VALOR4 = \"valor4\";\n    FECHA1 = \"fecha1\";\n    FECHA2 = \"fecha2\";\n    HORA1 = \"hora1\";\n    HORA2 = \"hora2\";\n    AREA1 = \"area1\";\n    DIAS_AUSENTISMO = \"diasausentismo\";\n    HORAS_ADICIONALES = \"horasadicionales\";\n    OBSERVACION = \"observacion\";\n    INDICADORPRORROGA = \"prorroga\";\n\n\n    mapaAusentismoCampos =\n        [\n            { codigo: this.CODIGO_DIAGNOSTICO, nombre: this.CODIGO_DIAGNOSTICO },\n            { codigo: this.LISTA_DIAGNOSTICO, nombre: this.LISTA_DIAGNOSTICO },\n            { codigo: this.HORA_SALIDA, nombre: this.HORA_SALIDA },\n            { codigo: this.HORA_REGRESA, nombre: this.HORA_REGRESA },\n            { codigo: this.CADENA1, nombre: this.CADENA1 },\n            { codigo: this.CADENA2, nombre: this.CADENA2 },\n            { codigo: this.CADENA3, nombre: this.CADENA3 },\n            { codigo: this.VALOR3, nombre: this.VALOR3 },\n            { codigo: this.VALOR4, nombre: this.VALOR4 },\n            { codigo: this.FECHA1, nombre: this.FECHA1 },\n            { codigo: this.FECHA2, nombre: this.FECHA2 },\n            { codigo: this.HORA1, nombre: this.HORA1 },\n            { codigo: this.HORA2, nombre: this.HORA2 },\n            { codigo: this.AREA1, nombre: this.AREA1 },\n            { codigo: this.DIAS_AUSENTISMO, nombre: this.DIAS_AUSENTISMO },\n            { codigo: this.HORAS_ADICIONALES, nombre: this.HORAS_ADICIONALES },\n            { codigo: this.OBSERVACION, nombre: this.OBSERVACION },\n            { codigo: this.INDICADORPRORROGA, nombre: this.INDICADORPRORROGA },\n        ]\n\n    DETALLE_MANTENIMIENTO_VACACION = \"DETALLE_MANTENIMIENTO_VACACION\";\n    MANTENIMIENTO_VACACION = \"MANTENIMIENTO_VACACION\";\n\n    ORIGEN_EMPLEADO_VACACION = \"listadoVacacionAusenciaBean.mostrarListadoHistorico\";\n    ORIGEN_APLICAR_NOVEDAD_VACACION = \"APLICAR_NOVEDAD_VACACION\";\n    ORIGEN_ACTIVIDAD_VACACION = \"ACTIVIDAD_VACACION\";\n\n    ORIGEN_EMPLEADO_INTERRUPCION = \"VACACION_INTERRUPCION_EMPLEADO\";\n    ORIGEN_ACTIVIDAD_VACACION_INTERRUPCION = \"ACTIVIDAD_INTERRUPCION_VACACION\";\n    ORIGEN_APLICAR_NOVEDAD_VACACION_INTERRUPCION = \"APLICAR_NOVEDAD_VACACION_INTERRUPCION\";\n    ORIGEN_POPUP_HIST_VACACION = \"popupDetalleVacacionHistoricoBean.cerrarPopup\";\n\n    FORM_ACTIVIDAD_INTERRUPCION = \"form_actividadInterrupcionVacacionEmpleado:\";\n\n    FORM_EMPLEADO_VACACION = \"form_vacacionesEmpleado:tabsVacaciones:\";\n    FORM_EMPLEADO_VACACION_HISTORICO = \"form_vacacionesEmpleado:\";\n    FORM_APLICAR_NOV_EMPLEADO_VACACION = \"aplicaNovedadProceso:\";\n    FORM_ACTIVIDAD_VACACION = \"form_actividadVacacionEmpleado:\";\n    FORM_POPUP_HISTORICO_VACACIONES = \"form_detalleHistoricoVacaciones:\";\n    FORM_EMPLEADO_VACACION_INTERRUPCION = \"form_vacacionesEmpleado:regresoInterrupcion\";\n\n    FORM_EMPLEADO_LICENCIA = \"form_licenciaEmpleado:tabsLicencias:panelLicencia:\";\n    FORM_EMPLEADO_PASIVO_LICENCIA = \"form_licenciaEmpleado:\";\n    FORM_EMPLEADO_LICENCIA_HISTORICO = \"form_licenciaEmpleado:\";\n    FORM_APLICAR_NOV_EMPLEADO_LICENCIA = \"aplicaNovedadProceso:\";\n    FORM_ACTIVIDAD_LICENCIA = \"form_actividadLicenciaEmpleado:\";\n    FORM_POPUP_HISTORICO_LICENCIA = \"form_detalleHistoricoLicencias:\";\n\n\n    ORIGEN_EMPLEADO_LICENCIA = \"LICENCIA_EMPLEADO\";\n    ORIGEN_APLICAR_NOVEDAD_LICENCIA = \"APLICAR_NOVEDAD_LICENCIA\";\n    ORIGEN_ACTIVIDAD_LICENCIA = \"ACTIVIDAD_LICENCIA\";\n    ORIGEN_POPUP_HIST_LICENCIA = \"ORIGEN_POPUP_HIST_LICENCIA\";\n\n    ORIGEN_EMPLEADO_INCAPACIDAD = \"INCAPACIDAD_EMPLEADO\";\n    ORIGEN_POPUP_HIST_INCAPACIDAD = \"ORIGEN_POPUP_HIST_INCAPACIDAD\";\n    ORIGEN_APLICAR_NOVEDAD_INCAPACIDAD = \"APLICAR_NOVEDAD_INCAPACIDAD\";\n    ORIGEN_ACTIVIDAD_INCAPACIDAD = \"ACTIVIDAD_INCAPACIDAD\";\n\n    FORM_EMPLEADO_INCAPACIDAD = \"form_incapacidadesEmpleado:\";\n    FORM_POPUP_HISTORICO_INCAPACIDAD = \"form_detalleHistoricoIncapacidades:\";\n    FORM_EMPLEADO_INCAPACIDAD_HISTORICO = \"form_incapacidadesEmpleado:\";\n    FORM_APLICAR_NOV_EMPLEADO_INCAPACIDAD = \"aplicaNovedadProceso:\";\n    FORM_ACTIVIDAD_INCAPACIDAD = \"form_actividadIncapacidadEmpleado:\";\n\n    transform(value: unknown, ...args: unknown[]): unknown {\n        let result = value;\n        if (args[0] == 'listadoTioAusencia') { this.ORIGENAUSENCIA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaFormaPago') { this.FORMAPAGO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'origenTerminacionContrato') { this.MAPA_ORIGEN_TERMINACION_CONTRATO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'origenPasivo') { this.ORIGENPASIVO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../constantes/Constantes';\n\n@Pipe({\n    name: 'generalPipe',\n    standalone: true\n})\n@Injectable({\n  providedIn: 'root'\n})\nexport class GeneralPipe implements PipeTransform {\n\n  PIPELINE = \"\\\\|\";\t\n\n  PORCENTAJE = '%';\n\n  ESPACIO_BLANCO = \" \";\n  ESPACIO_NULO = \"\";\n\n  NO_APLICA = 'N'\n  NO_APLICA_DESC = 'No Aplica'\n\n  SI = 'S';\n  NO = 'N';\n\n  SI_DESC = 'Si';\n  NO_DESC = 'No';\n\n  vertical = \"V\";\n  desVertical = \"Vertical\";\n\n  horizontal = \"H\";\n  desHorizontal = \"Horizontal\";\n\n  ACTIVOS_LIQUIDADOS = \"L\";\n\n\n  ORIENTACION = [\n    { codigo: this.vertical, nombre: this.desVertical },\n    { codigo: this.horizontal, nombre: this.desHorizontal },\n  ]\n\n  ASC = \"ASC \";\n  DESASC = \"Ascendente\";\n\n  DESC = \"DESC\";\n  DESDESC = \"Descendente\";\n\n\n  ORDEN = [\n    { codigo: this.ASC, nombre: this.DESASC },\n    { codigo: this.DESC, nombre: this.DESDESC },\n  ]\n\n\n  LISTA_SINO = [\n    { codigo: this.SI, nombre: this.SI_DESC },\n    { codigo: this.NO, nombre: this.NO_DESC }\n  ]\n\n\n  todas = 0;\n  todasdes = 'TODAS'\n\n  lISTAEMPRESA0 = [\n    { codigo: this.todas, nombre: this.todasdes },\n\n  ]\n\n\n  COPIARDIFERENCIA = 'Copiar Diferencia L'\n  COPIARDIFERENCIA_DESC = 'Copiar Diferencia'\n  COPIARTODO = 'Copiar Todo L'\n  COPIARTODO_DESC = 'Copiar Todo'\n\n  LISTA_TIPO_COPIA = [\n    { codigo: this.COPIARDIFERENCIA, nombre: this.COPIARDIFERENCIA_DESC },\n    { codigo: this.COPIARTODO, nombre: this.COPIARTODO_DESC },\n  ]\n\n  COPIARDIFERENCIAR = 'Copiar DiferenciaR'\n  COPIARTODOR = 'Copiar TodoR'\n\n  LISTA_TIPO_COPIAR = [\n    { codigo: this.COPIARDIFERENCIAR, nombre: this.COPIARDIFERENCIA_DESC },\n    { codigo: this.COPIARTODOR, nombre: this.COPIARTODO_DESC },\n  ]\n\n\n\n  ESTADO_PROCESO = 'P';\n  ESTADO_PUNTO = '.'\n  ESTADO_SELECCION_DESC = '--Seleccionar--';\n  ESTADO_ACTIVO_DES = 'Activo';\n  ESTADO_INACTIVO_DESC = 'Inactivo'\n  ESTADO_PROCESO_DESC = 'En proceso';\n  U_TILDE_MAY = \"\\u00DA\";\n  U = \"U\"\n\n  LISTA_ESTADO_SN = [\n    { codigo: this.SI, nombre: this.ESTADO_ACTIVO_DES },\n    { codigo: this.NO, nombre: this.ESTADO_INACTIVO_DESC },\n    { codigo: this.ESTADO_PROCESO, nombre: this.ESTADO_PROCESO_DESC }\n  ]\n  // Tipos Anexi\n  TIPOS_ANEXO_LIMITADO = [\n    { codigo: this.NO, nombre: \"No solicitar\" },\n    { codigo: this.U, nombre: this.U_TILDE_MAY + \"nico anexo\" },\n\n  ]\n\n  LISTA_SELECIONAR_MAP = [\n    { codigo: this.SI, nombre: this.SI_DESC },\n    { codigo: this.NO, nombre: this.NO_DESC },\n\n  ]\n\n\n\n\n\n  MAS = \"+\";\n  MENOS = \"-\";\n  BARRA_PISO = \"_\";\n  MONTO = \"MONTO\";\n  FECHA_1 = \"FECHA1\";\n  FECHA_2 = \"FECHA2\";\n  FECHA_3 = \"FECHA3\";\n  ciclo = \"CICLO\";\n  COMPROBANTE = \"COMPROB\";\n  restringe = \"RESTRINGE\";\n  actividad = \"ACTIVIDAD\";\n  ABONOPENSI = \"ABONOPENSI\";\n\n  estados = {\n    S: 'Activo',\n    P: 'En proceso',\n    N: 'Inactivo'\n  }\n  listaEstados = {\n    S: 'Activo',\n    Punto: 'En proceso',\n    N: 'Inactivo'\n  }\n  LISTA_ESTADO = [\n    { codigo: this.SI, nombre: this.ESTADO_ACTIVO_DES },\n    { codigo: this.NO, nombre: this.ESTADO_INACTIVO_DESC },\n  ]\n\n  ////// PARAMETROS DE COMPENSACION\n  PADRE = \"P\";\n  HIJO = \"H\";\n\n  CONCEPTO_VIGENTE = 'VIGENTE'\n  CONCEPTO_NOVIGENTE = 'NO VIGENTE'\n\n  LISTADO_ESTADO_CONCEPTO = [\n    { codigo: this.SI, nombre: this.CONCEPTO_VIGENTE },\n    { codigo: this.NO, nombre: this.CONCEPTO_NOVIGENTE }\n  ]\n\n  FORMULA_GENERAL = 'G'\n  FORMULA = 'F'\n  FORMULA_BENEFICIARIO = 'B'\n  FORMULA_VALOR_FIJO = 'M'\n  VALOR_FIJO = 'V'\n\n  FORMULA_GENERAL_DESC = 'Formula General'\n  FORMULA_DESC = 'Formula'\n  FORMULA_BENEFICIARIO_DESC = 'Formula Beneficiario'\n  FORMULA_VALOR_FIJO_DESC = 'Formula Valor Fijo'\n  VALOR_FIJO_DESC = 'Valor Fijo'\n\n  LISTADO_FORMULA = [\n    { codigo: this.FORMULA_GENERAL, nombre: this.FORMULA_GENERAL_DESC },\n    { codigo: this.FORMULA, nombre: this.FORMULA_DESC },\n    { codigo: this.FORMULA_BENEFICIARIO, nombre: this.FORMULA_BENEFICIARIO_DESC },\n    { codigo: this.FORMULA_VALOR_FIJO, nombre: this.FORMULA_VALOR_FIJO_DESC },\n    { codigo: this.VALOR_FIJO, nombre: this.VALOR_FIJO_DESC },\n  ]\n\n  CONCEPTO_DEVENGO = '+'\n  CONCEPTO_DEDUCCION = '-'\n\n  CONCEPTO_DEVENGO_DESC = 'DEVENGO'\n  CONCEPTO_DEDUCCION_DESC = 'DEDUCCION'\n\n  LISTADO_NATURALEZA_CONCEPTO = [\n    { codigo: this.CONCEPTO_DEVENGO, nombre: this.CONCEPTO_DEVENGO_DESC },\n    { codigo: this.CONCEPTO_DEDUCCION, nombre: this.CONCEPTO_DEDUCCION_DESC },\n  ]\n\n  REDONDEO_CERO_DECIMALES = 'S'\n  REDONDEO_UN_DECIMAL = '1'\n  REDONDEO_DOS_DECIMALES = '2'\n\n  REDONDEO_CERO_DECIMALES_DESC = '0 DECIMALES'\n  REDONDEO_UN_DECIMAL_DESC = '1 DECIMAL'\n  REDONDEO_DOS_DECIMALES_DESC = '2 DECIMALES'\n\n\n  LISTA_REDONDEO_CONCEPTO = [\n    { codigo: this.REDONDEO_CERO_DECIMALES, nombre: this.REDONDEO_CERO_DECIMALES_DESC },\n    { codigo: this.REDONDEO_UN_DECIMAL, nombre: this.REDONDEO_UN_DECIMAL_DESC },\n    { codigo: this.REDONDEO_DOS_DECIMALES, nombre: this.REDONDEO_DOS_DECIMALES_DESC },\n    { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n  ]\n\n  CAMBIO_ASIGNACION_CONCEPTO = 'S'\n  CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO = 'A'\n  CAMBIO_ROL_CONCEPTO = 'R'\n  CAMBIO_TEMPORAL_CONCEPTO = 'T'\n\n\n  CAMBIO_ASIGNACION_CONCEPTO_DES = 'Cambio Asignacion'\n  CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES = 'Cambio Asignacion/Temporal'\n  CAMBIO_ROL_CONCEPTO_DES = 'Cambio Rol'\n  CAMBIO_TEMPORAL_CONCEPTO_DES = 'Cambio Temporal'\n\n\n  LISTA_CAMBIO_CONCEPTO = [\n    { codigo: this.CAMBIO_ASIGNACION_CONCEPTO, nombre: this.CAMBIO_ASIGNACION_CONCEPTO_DES },\n    { codigo: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO, nombre: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES },\n    { codigo: this.CAMBIO_ROL_CONCEPTO, nombre: this.CAMBIO_ROL_CONCEPTO_DES },\n    { codigo: this.CAMBIO_TEMPORAL_CONCEPTO, nombre: this.CAMBIO_TEMPORAL_CONCEPTO_DES },\n    { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n  ]\n\n  AJUSTE_PARCIAL_CONCEPTO = 'P'\n  AJUSTE_TOTAL_CONCEPTO = 'T'\n\n  AJUSTE_PARCIAL_CONCEPTO_DESC = 'PARCIAL'\n  AJUSTE_TOTAL_CONCEPTO_DESC = 'TOTAL'\n\n  LISTA_TIPOAJUSTE_CONCEPTO = [\n    { codigo: this.AJUSTE_PARCIAL_CONCEPTO, nombre: this.AJUSTE_PARCIAL_CONCEPTO_DESC },\n    { codigo: this.AJUSTE_TOTAL_CONCEPTO, nombre: this.AJUSTE_TOTAL_CONCEPTO_DESC }\n  ]\n\n\n\n  FLEXIBLE_BENEFICIO_CONCEPTO = 'F'\n  FLEXIBLE_BENEFICIOADI_CONCEPTO = 'A'\n  FLEXIBLE_CRUCE_CONCEPTO = 'C'\n\n\n  FLEXIBLE_BENEFICIO_CONCEPTO_DESC = 'BENEFICIO'\n  FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC = 'BENEFICIO ADICIONAL'\n  FLEXIBLE_CRUCE_CONCEPTO_DESC = 'BENEFICIO CRUCE'\n\n\n  LISTA_FLEXIBLE_CONCEPTO = [\n    { codigo: this.FLEXIBLE_BENEFICIO_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIO_CONCEPTO_DESC },\n    { codigo: this.FLEXIBLE_BENEFICIOADI_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC },\n    { codigo: this.FLEXIBLE_CRUCE_CONCEPTO, nombre: this.FLEXIBLE_CRUCE_CONCEPTO_DESC },\n    { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n  ]\n\n\n  // kkk\n  CONTRATOPRINCIPAL = 'contratoprincipal';\n  BASECOTIZACION = 'formulaibc';\n  UNIFICACIONSEGURIDAD = 'formulassunif';\n  INTERESCUOTAPARTE = 'interescuotaparte';\n  FORMULADISTRIBUIR = 'formuladistribuir';\n  JORNADADOCENTE = 'formulajor';\n  AJUSTENOMINA = 'formulaajuste';\n  DESCUENTOFIJO = 'conceptofijos';\n  PENSIONDISTRIBUYE = 'pensiondistribuye';\n  PUESTOTRABAJO = 'puestotrabajo';\n  SEGURIDADSOCIAL = 'seguridadsocial';\n  VIATICO = 'viatico';\n  NOMINA = 'nomina';\n  CONCEPTOTIEMPOS = 'conceptotiempo';\n  GENERACIONINTERFAZ = 'generacioninterfaz';\n  REGISTROAUSENCIA = 'registroausencia';\n  INTERRUPCIONAUSENCIA = 'interrupcionausencia';\n  NOVEDAD = 'novedad';\n  CONTROLLIQPERIODICA = 'controlliqperiodica';\n  BENEFICIO = 'beneficio';\n  SERVICIOENTIDAD = 'servicioentidad';\n  SOLICITUDCREDITO = 'solicitudcredito';\n  CUOTACREDITO = 'cuotacredito';\n  TABLAAMORTIZACION = 'tablaamortizacion';\n  EVALUACION = 'evaluacion';\n  ACTOADMINISTRATIVO = 'actoadministrativo';\n  FACTORPUNTAJE = 'factorpuntaje';\n  PLANSUCESION = 'plansucesion';\n  AJUSTEHISTORICO = 'ajustehistorico';\n  AJUSTEVARIABLE = 'incrementovariable';\n  NOMINALELECTRONICA = 'nominaelectronica';\n  NOMINALELECTRONICACON = 'nominaelectronicacon';\n  NOMINALELECTRONICAINI = 'nominaelectronicaini';\n  NOMINALELECTRONICANET = 'nominaelectronicanet';\n\n  BASECOTIZACION_DESC = 'Ingreso Base de Cotizacion (ANTES)';\n  CONTRATOPRINCIPAL_DESC = 'Calculo Contrato Principal';\n  UNIFICACIONSEGURIDAD_DESC = 'Unificacion Seguridad Social (ANTES)';\n  INTERESCUOTAPARTE_DESC = 'Interes Cuota Parte';\n  FORMULADISTRIBUIR_DESC = 'Distribucion Abono en Cuenta';\n  JORNADADOCENTE_DESC = 'Jornada Docente';\n  AJUSTENOMINA_DESC = 'Ajuste de Nomina';\n  DESCUENTOFIJO_DESC = 'Conceptos Fijos de Nomina';\n  PENSIONDISTRIBUYE_DESC = 'Distribucion Pension';\n  PUESTOTRABAJO_DESC = 'Puesto de trabajo';\n  SEGURIDADSOCIAL_DESC = 'Seguridad Social';\n  VIATICO_DESC = 'Programacion de viaticos';\n  NOMINA_DESC = 'Nomina';\n  GENERACIONINTERFAZ_DESC = 'Generacion Interfaz';\n  REGISTROAUSENCIA_DESC = 'Registro Ausencia';\n  INTERRUPCIONAUSENCIA_DESC = 'Interrupcion Ausencia';\n  NOVEDAD_DESC = 'Novedad';\n  CONTROLLIQPERIODICA_DESC = 'Control Prestamos/Embargos';\n  BENEFICIO_DESC = 'Beneficio';\n  SERVICIOENTIDAD_DESC = 'Servicio Entidad';\n  SOLICITUDCREDITO_DESC = 'Solicitud de Credito';\n  CUOTACREDITO_DESC = 'Aplicacion Cuota Credito';\n  TABLAAMORTIZACION_DESC = 'Tabla de amortizacion';\n  EVALUACION_DESC = 'Herrarmientas de Gestion';\n  ACTOADMINISTRATIVO_DESC = 'Actos Administrativos';\n  FACTORPUNTAJE_DESC = 'Factor Puntaje';\n  PLANSUCESION_DESC = 'Plan de Sucesion';\n  CONCEPTOTIEMPOS_DESC = 'Conceptos de Tiempos';\n  AJUSTEHISTORICO_DESC = 'Ajuste Historico Periodo de Vacaciones';\n  AJUSTEVARIABLE_DESC = 'Ajuste de Variable';\n  NOMINALELECTRONICA_DESC = 'Nomina Electronica - Empleado';\n  NOMINALELECTRONICACON_DESC = 'Nomina Electronica - Conceptos';\n  NOMINALELECTRONICAINI_DESC = 'Nomina Electronica - Inicial';\n  NOMINALELECTRONICANET_DESC = 'Nomina Electronica - Neto Pagos';\n\n\n  LISTA_TIPOFORMULA = [\n    { codigo: this.CONTRATOPRINCIPAL, nombre: this.CONTRATOPRINCIPAL_DESC },\n    { codigo: this.BASECOTIZACION, nombre: this.BASECOTIZACION_DESC },\n    { codigo: this.UNIFICACIONSEGURIDAD, nombre: this.UNIFICACIONSEGURIDAD_DESC },\n    { codigo: this.INTERESCUOTAPARTE, nombre: this.INTERESCUOTAPARTE_DESC },\n    { codigo: this.FORMULADISTRIBUIR, nombre: this.FORMULADISTRIBUIR_DESC },\n    { codigo: this.JORNADADOCENTE, nombre: this.JORNADADOCENTE_DESC },\n    { codigo: this.AJUSTENOMINA, nombre: this.AJUSTENOMINA_DESC },\n    { codigo: this.DESCUENTOFIJO, nombre: this.DESCUENTOFIJO_DESC },\n    { codigo: this.PENSIONDISTRIBUYE, nombre: this.PENSIONDISTRIBUYE_DESC },\n    { codigo: this.PUESTOTRABAJO, nombre: this.PUESTOTRABAJO_DESC },\n    { codigo: this.SEGURIDADSOCIAL, nombre: this.SEGURIDADSOCIAL_DESC },\n    { codigo: this.VIATICO, nombre: this.VIATICO_DESC },\n    { codigo: this.NOMINA, nombre: this.NOMINA_DESC },\n    { codigo: this.CONCEPTOTIEMPOS, nombre: this.CONCEPTOTIEMPOS_DESC },\n    { codigo: this.GENERACIONINTERFAZ, nombre: this.GENERACIONINTERFAZ_DESC },\n    { codigo: this.REGISTROAUSENCIA, nombre: this.REGISTROAUSENCIA_DESC },\n    { codigo: this.INTERRUPCIONAUSENCIA, nombre: this.INTERRUPCIONAUSENCIA_DESC },\n    { codigo: this.NOVEDAD, nombre: this.NOVEDAD_DESC },\n    { codigo: this.CONTROLLIQPERIODICA, nombre: this.CONTROLLIQPERIODICA_DESC },\n    { codigo: this.BENEFICIO, nombre: this.BENEFICIO_DESC },\n    { codigo: this.SERVICIOENTIDAD, nombre: this.SERVICIOENTIDAD_DESC },\n    { codigo: this.SOLICITUDCREDITO, nombre: this.SOLICITUDCREDITO_DESC },\n    { codigo: this.CUOTACREDITO, nombre: this.CUOTACREDITO_DESC },\n    { codigo: this.TABLAAMORTIZACION, nombre: this.TABLAAMORTIZACION_DESC },\n    { codigo: this.EVALUACION, nombre: this.EVALUACION_DESC },\n    { codigo: this.ACTOADMINISTRATIVO, nombre: this.ACTOADMINISTRATIVO_DESC },\n    { codigo: this.FACTORPUNTAJE, nombre: this.FACTORPUNTAJE_DESC },\n    { codigo: this.PLANSUCESION, nombre: this.PLANSUCESION_DESC },\n    { codigo: this.AJUSTEHISTORICO, nombre: this.AJUSTEHISTORICO_DESC },\n    { codigo: this.AJUSTEVARIABLE, nombre: this.AJUSTEVARIABLE_DESC },\n    { codigo: this.NOMINALELECTRONICA, nombre: this.NOMINALELECTRONICA_DESC },\n    { codigo: this.NOMINALELECTRONICACON, nombre: this.NOMINALELECTRONICACON_DESC },\n    { codigo: this.NOMINALELECTRONICAINI, nombre: this.NOMINALELECTRONICAINI_DESC },\n    { codigo: this.NOMINALELECTRONICANET, nombre: this.NOMINALELECTRONICANET_DESC },\n    { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n  ]\n\n  /* VARIABLE / TIPO */\n\n  FECHA = \"F\";\n  HORA = \"H\";\n\n  NUMERODES = \"N\\u00DAMERO\";\n  FECHADES = \"FECHA\";\n  HORADES = \"HORA\";\n\n  LISTATIPO = [\n    { codigo: this.NO, nombre: this.NUMERODES },\n    { codigo: this.FECHA, nombre: this.FECHADES },\n    { codigo: this.HORA, nombre: this.HORADES }\n  ]\n\n  INICIOANO = \"A\";\n  FINANO = \"O\";\n  INICIOMES = \"M\";\n  FINMES = \"S\";\n  LIBRE = \"N\";\n\n  DESINICIOANO = \"INICIO A\\u00D1O\";\n  DESFINANO = \"FIN A\\u00D1O\";\n  DESINICIOMES = \"INICIO MES\";\n  DESFINMES = \"FIN MES\";\n  DESLIBRE = \"LIBRE\";\n\n  TIPOVIGENCIA = [\n    { codigo: this.INICIOANO, nombre: this.DESINICIOANO },\n    { codigo: this.FINANO, nombre: this.DESFINANO },\n    { codigo: this.INICIOMES, nombre: this.DESINICIOMES },\n    { codigo: this.FINMES, nombre: this.DESFINMES },\n    { codigo: this.LIBRE, nombre: this.DESLIBRE },\n  ]\n\n  // Constantes Dropdawn Tipo\n\n  MARCADOR = 'M';\n  MARCADORREGISTRO = 'MR';\n  MARCADORTABLA = 'TB';\n  MARCADORIMAGEN = 'MI';\n  IMAGEN = 'IM';\n  MARCADORQR = 'QR';\n\n\n  DESMARCADOR = 'Marcador';\n  DESMARCADORREGISTRO = 'Marcador Registro';\n  DESMARCADORTABLA = 'Tabla';\n  DESIMAGEN = 'imagen'\n  DESMARCADORIMAGEN = 'Marcador Imagen';\n  DESMARCADORQR = \"Imagen QR\";\n\n\n  MARCADORES = [\n    { codigo: this.IMAGEN, nombre: this.DESIMAGEN },\n    { codigo: this.MARCADORQR, nombre: this.DESMARCADORQR },\n    { codigo: this.MARCADOR, nombre: this.DESMARCADOR },\n    { codigo: this.MARCADORIMAGEN, nombre: this.DESMARCADORIMAGEN },\n    { codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\n    { codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\n  ]\n\n\n\n  // Constantes dropdown TipoCampo\n\n  CARGO = 'cargo';\n  CARGO_MULTI = 'cargo_multiples';\n  CCATEGORIA = 'categoria';\n  CIUDAD = 'ciudad';\n  CLASIFICACION = 'clasificacion';\n  EDAD = 'edad';\n  EMPRESA = 'empresa';\n  ESTADO_CIVIL = 'estadocivil';\n  ESTADOLABORAL = 'estadoeml';\n  GENERO = 'sexo';\n  GRUPO = 'grupoempleado';\n  NIVEL_DEL_CARGO = 'nivelcargo';\n  RANGO_DE_SUELDO = 'sueldobasico';\n  ROLCLASIFICACION = 'rolclasificacion';\n  TIEMPO_DE_ANTIGUEDAD_CARGO = 'antiguedadcargoact';\n  TIEMPO_DE_ANTIGUEDAD = 'antiguedad';\n  TIPO_DE_PERIODO = 'tipoperiodo';\n  TIPO_DE_VINCULACION = 'vinculacion';\n  UNIDAD = 'unidad';\n  UNIDAD_MULTI = 'unidad_multiple';\n  UNIDAD_RELACION = 'unidadrelacion';\n  TIEMPO_DE_ANTIGUEDADENTERO='antiguedadentero'\n  TIEMPO_DE_ANTIGUEDAD_CARGOENTERO=\"antiguedadcargoactentero\"\n\n\n  DESCARGO = 'Cargo';\n  DESCARGO_MULTI = 'Cargos Multiples';\n  DESCATEGORIA = 'Categoria';\n  DESCIUDAD = 'Ciudad';\n  DESCLASIFICACION = 'Clasificacion';\n  DESEDAD = 'Edad';\n  DESEMPRESA = 'Empresa';\n  DESESTADO_CIVIL = 'Estado Civil';\n  DESESTADOLABORAL = 'Estado Laboral';\n  DESGENERO = 'Genero';\n  DESGRUPO = 'Grupo Empleado';\n  DESNIVEL_DEL_CARGO = 'Nivel del Cargo';\n  DESRANGO_DE_SUELDO = 'Rango de Sueldo';\n  DESROLCLASIFICACION = 'Rol Clasificacion';\n  DESTIEMPO_DE_ANTIGUEDAD_CARGO = 'Tiempo de Antiguedad Cargo Actual';\n  DESTIEMPO_DE_ANTIGUEDAD = 'Tiempo de Antiguedad Empresa';\n  DESTIPO_DE_PERIODO = 'Tipo de Periodo';\n  DESTIPO_DE_VINCULACION = 'Tipo de Vinculacion';\n  DESUNIDAD = 'Unidad Organizacional';\n  DESUNIDAD_MULTI = 'Unidades Organizacionales Multiples';\n  DESUNIDAD_RELACION = 'Unidades Organizacionales y las que dependen';\n  TIEMPO_DE_ANTIGUEDADENTERO_DESC= \"Tiempo de Antiguedad Empresa - Año Entero\";\n  TIEMPO_DE_ANTIGUEDAD_CARGOENTERO_DESC = \"Tiempo de Antiguedad Cargo Actual Año Entero\";\n  EDADENTERO=\"edadentero\";\n  EDADENTERO_DESC=\"Edad Año Entero\";\n\n\n  TIPOCAMPO = [\n    { codigo: this.CARGO, nombre: this.DESCARGO },\n    { codigo: this.CARGO_MULTI, nombre: this.DESCARGO_MULTI },\n    { codigo: this.CCATEGORIA, nombre: this.DESCATEGORIA },\n    { codigo: this.CIUDAD, nombre: this.DESCIUDAD },\n    { codigo: this.CLASIFICACION, nombre: this.DESCLASIFICACION },\n    { codigo: this.EDAD, nombre: this.DESEDAD },\n    { codigo: this.EDADENTERO, nombre: this.EDADENTERO_DESC },\n    { codigo: this.EMPRESA, nombre: this.DESEMPRESA },\n    { codigo: this.ESTADO_CIVIL, nombre: this.DESESTADO_CIVIL },\n    { codigo: this.ESTADOLABORAL, nombre: this.DESESTADOLABORAL },\n    { codigo: this.GENERO, nombre: this.DESGENERO },\n    { codigo: this.GRUPO, nombre: this.DESGRUPO },\n    { codigo: this.NIVEL_DEL_CARGO, nombre: this.DESNIVEL_DEL_CARGO },\n    { codigo: this.RANGO_DE_SUELDO, nombre: this.DESRANGO_DE_SUELDO },\n    { codigo: this.ROLCLASIFICACION, nombre: this.DESROLCLASIFICACION },\n    { codigo: this.TIEMPO_DE_ANTIGUEDAD_CARGO, nombre: this.DESTIEMPO_DE_ANTIGUEDAD_CARGO },\n    { codigo: this.TIEMPO_DE_ANTIGUEDAD, nombre: this.DESTIEMPO_DE_ANTIGUEDAD },\n    { codigo: this.TIPO_DE_PERIODO, nombre: this.DESTIPO_DE_PERIODO },\n    { codigo: this.TIPO_DE_VINCULACION, nombre: this.DESTIPO_DE_VINCULACION },\n    { codigo: this.UNIDAD, nombre: this.DESUNIDAD },\n    { codigo: this.UNIDAD_MULTI, nombre: this.DESUNIDAD_MULTI },\n    { codigo: this.UNIDAD_RELACION, nombre: this.DESUNIDAD_RELACION },\n    { codigo: this.TIEMPO_DE_ANTIGUEDAD_CARGOENTERO, nombre: this.TIEMPO_DE_ANTIGUEDAD_CARGOENTERO_DESC },\n    { codigo: this.TIEMPO_DE_ANTIGUEDADENTERO, nombre: this.TIEMPO_DE_ANTIGUEDADENTERO_DESC },\n\n\n\n  ]\n\n    // Constantes dropdown EjecucionReporte\n\n    PERMITE_EJECUTAR = 'E';\n    PERMITE_MODIFICAR = 'M';\n\n    PERMITE_EJECUTAR_DESC = 'Permite Ejecutar';\n    PERMITE_MODIFICAR_DESC = 'Permite Modificar/Ejecutar';\n\n\n\n  TIPOEJECUCIONREPORTE = [\n    { codigo: this.PERMITE_EJECUTAR, nombre: this.PERMITE_EJECUTAR_DESC },\n    { codigo: this.PERMITE_MODIFICAR, nombre: this.PERMITE_MODIFICAR_DESC },\n  ]\n\n   // Constantes dropdown DiseñoReporte\n\n   NO_ACTUALIZA = 'N';\n   PERMITE_ACTUALIZAR = 'S';\n\n   NO_ACTUALIZA_DESC = 'No Actualiza';\n   PERMITE_ACTUALIZAR_DESC = 'Permite Actualizar';\n\n\n\n DISENOREPORTE = [\n   { codigo: this.NO_ACTUALIZA, nombre: this.NO_ACTUALIZA_DESC },\n   { codigo: this.PERMITE_ACTUALIZAR, nombre: this.PERMITE_ACTUALIZAR_DESC },\n ]\n\n // Constantes PERMISOS LOGIN\n\n\n PERMISO_POR_LLAVE_TABLA = \"OT\";\n PERMISO_PERIODO = 'PE';\n PERMISO_SITIO = 'ST';\n PERMISO_DISENO_REPORTE = 'DR';\n PERMISO_AUSENTISMOS = \"TA\";\n PERMISO_NOVEDAD = \"TN\";\n PERMISO_EJECUCION_REPORTE = \"RF\"\n PERMISO_FUENTE_REPORTE = \"FD\";\n PERMISO_IMPORTAR_FUENTE = \"IF\";\n PERMISO_FACTOR_PUNTAJE= \"FP\";\n PERMISO_USUARIO_FORMATO = \"UF\";\n\n PERMISO_PERIODO_DESC = 'Periodo';\n PERMISO_SITIO_DESC = 'Sitio';\n PERMISO_DISENO_REPORTE_DESC = 'Diseño Reporte';\n PERMISO_AUSENTISMOS_DESC = \"Ausentismo\";\n PERMISO_NOVEDAD_DESC = \"Novedad\";\n PERMISO_EJECUCION_REPORTE_DESC = \"Ejecucion Reporte\";\n PERMISO_FUENTE_REPORTE_DESC = \"Fuente Reporte\";\n PERMISO_IMPORTAR_FUENTE_DESC = \"Importar Fuente\";\n PERMISO_FACTOR_PUNTAJE_DESC = \"Factor Puntaje\";\n PERMISO_USUARIO_FORMATO_DESC = \"Usuario Formato\";\n\nLISTAPERMISOSLOGIN = [\n { codigo: this.PERMISO_PERIODO, nombre: this.PERMISO_PERIODO_DESC },\n { codigo: this.PERMISO_SITIO, nombre: this.PERMISO_SITIO_DESC },\n { codigo: this.PERMISO_DISENO_REPORTE, nombre: this.PERMISO_DISENO_REPORTE_DESC },\n { codigo: this.PERMISO_AUSENTISMOS, nombre: this.PERMISO_AUSENTISMOS_DESC },\n { codigo: this.PERMISO_NOVEDAD, nombre: this.PERMISO_NOVEDAD_DESC},\n { codigo: this.PERMISO_EJECUCION_REPORTE, nombre: this.PERMISO_EJECUCION_REPORTE_DESC},\n { codigo: this.PERMISO_FUENTE_REPORTE, nombre: this.PERMISO_FUENTE_REPORTE_DESC},\n { codigo: this.PERMISO_IMPORTAR_FUENTE, nombre: this.PERMISO_IMPORTAR_FUENTE_DESC},\n { codigo: this.PERMISO_FACTOR_PUNTAJE, nombre: this.PERMISO_FACTOR_PUNTAJE_DESC},\n { codigo: this.PERMISO_USUARIO_FORMATO, nombre: this.PERMISO_USUARIO_FORMATO_DESC},\n\n\n]\n\n // Constantes PERMISOS ROL\n\n\n PERMISO_TIPO_SOLICITUD = \"TV\";\n PERMISO_REPORTE_GENERADO = 'RG';\n PERMISO_ZONA_ECONOMICA = 'ZO';\n PERMISO_UNIDAD = 'UN';\n PERMISO_SECCION_HOJA_VIDA = \"HV\";\n PERMISO_ETAPA = \"ET\";\n PERMISO_TIPO_PLANTA = \"TP\"\n PERMISO_DESCRIPCION_CARGO = \"DC\";\n PERMISO_GESTION_HERRAMIENTAS = \"GH\";\n PERMISO_TIPO_SERVICIO= \"TS\";\n\n PERMISO_TIPO_SOLICITUD_DESC = 'Tipo Solicitud';\n PERMISO_REPORTE_GENERADO_DESC = 'Reporte Generado';\n PERMISO_ZONA_ECONOMICA_DESC = 'Zona Economic';\n PERMISO_UNIDAD_DESC = \"PERMISO_UNIDAD_DESC\";\n PERMISO_SECCION_HOJA_VIDA_DESC = \"Seccion Hoja Vida\";\n PERMISO_ETAPA_DESC = \"Etapa\";\n PERMISO_TIPO_PLANTA_DESC = \"Tipo Planta\";\n PERMISO_DESCRIPCION_CARGO_DESC = \"Descripcion Cargo\";\n PERMISO_GESTION_HERRAMIENTAS_DESC = \"Gestion Herramientas\";\n PERMISO_TIPO_SERVICIO_DESC = \"Tipo Servicio\";\n\nLISTAPERMISOSROL = [\n { codigo: this.PERMISO_TIPO_SOLICITUD, nombre: this.PERMISO_TIPO_SOLICITUD_DESC },\n { codigo: this.PERMISO_EJECUCION_REPORTE, nombre: this.PERMISO_EJECUCION_REPORTE_DESC },\n { codigo: this.PERMISO_FUENTE_REPORTE, nombre: this.PERMISO_FUENTE_REPORTE_DESC },\n { codigo: this.PERMISO_IMPORTAR_FUENTE, nombre: this.PERMISO_IMPORTAR_FUENTE_DESC },\n { codigo: this.PERMISO_REPORTE_GENERADO, nombre: this.PERMISO_REPORTE_GENERADO_DESC },\n { codigo: this.PERMISO_DISENO_REPORTE, nombre: this.PERMISO_DISENO_REPORTE_DESC },\n { codigo: this.PERMISO_ZONA_ECONOMICA, nombre: this.PERMISO_ZONA_ECONOMICA_DESC },\n { codigo: this.PERMISO_UNIDAD, nombre: this.PERMISO_UNIDAD_DESC },\n { codigo: this.PERMISO_SECCION_HOJA_VIDA, nombre: this.PERMISO_SECCION_HOJA_VIDA_DESC},\n { codigo: this.PERMISO_NOVEDAD, nombre: this.PERMISO_NOVEDAD_DESC},\n { codigo: this.PERMISO_AUSENTISMOS, nombre: this.PERMISO_AUSENTISMOS_DESC},\n { codigo: this.PERMISO_ETAPA, nombre: this.PERMISO_ETAPA_DESC},\n { codigo: this.PERMISO_TIPO_PLANTA, nombre: this.PERMISO_TIPO_PLANTA_DESC},\n { codigo: this.PERMISO_DESCRIPCION_CARGO, nombre: this.PERMISO_DESCRIPCION_CARGO_DESC},\n { codigo: this.PERMISO_GESTION_HERRAMIENTAS, nombre: this.PERMISO_GESTION_HERRAMIENTAS_DESC},\n { codigo: this.PERMISO_TIPO_SERVICIO, nombre: this.PERMISO_TIPO_SERVICIO_DESC},\n { codigo: this.PERMISO_FACTOR_PUNTAJE, nombre: this.PERMISO_FACTOR_PUNTAJE_DESC},\n\n\n\n\n]\n\n\n\n  // Constantes dropdown Genero\n  MASCULINO = 'M';\n  FEMENINO = 'F';\n  TRANSGENERO = 'T';\n\n  MASCULINO_DESC = 'MASCULINO';\n  FEMENINO_DESC = 'FEMENINO';\n  TRANSGENERO_DESC = 'TRANSGÉNERO';\n\n  SGENERO = [\n    { codigo: this.MASCULINO, nombre: this.MASCULINO_DESC },\n    { codigo: this.FEMENINO, nombre: this.FEMENINO_DESC },\n    { codigo: this.TRANSGENERO, nombre: this.TRANSGENERO_DESC },\n\n\n  ]\n\n  // Constantes Recurso Grafica\n\n  SERIE = 'S';\n  CATEGORIA = 'C';\n  VALOR = 'V';\n\n  SERIE_STRING = 'Serie';\n  CATEGORIA_STRING = 'Categoria';\n  VALOR_STRING = 'Valor';\n\n  Rgrafica = [\n    { codigo: this.SERIE, nombre: this.SERIE_STRING },\n    { codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\n    { codigo: this.VALOR, nombre: this.VALOR_STRING },\n    { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC },\n  ]\n\n\n  //Constantes Operador\n\n  igual = '=';\n  mayorQue = '>';\n  mayorIgual = '>=';\n  menor = '<';\n  menorIgual = '<=';\n  diferente = '<>';\n  inclusion = 'IN';\n  como = 'like'\n\n  desIgual = 'igual';\n  desMayorQue = 'mayor que';\n  desMayorIgual = 'mayor o igual';\n  desMenor = 'menor';\n  desMenorIgual = 'menor o igual';\n  desDiferente = 'diferente';\n  desInclusion = 'inclusi\\u00F3n';\n  desComo = 'como'\n\n\n  Roperador = [\n    { codigo: this.igual, nombre: this.desIgual },\n    { codigo: this.mayorQue, nombre: this.desMayorQue },\n    { codigo: this.mayorIgual, nombre: this.desMayorIgual },\n    { codigo: this.menor, nombre: this.desMenor },\n    { codigo: this.menorIgual, nombre: this.desMenorIgual },\n    { codigo: this.diferente, nombre: this.desDiferente },\n    { codigo: this.inclusion, nombre: this.desInclusion },\n    { codigo: this.como, nombre: this.desComo },\n  ]\n\n\n  //COntantes copiar permisos\n  COPIAR_DIFERENCIA = 'CD';\n  COPIAR_TODO = 'CT';\n\n  COPIAR_DIFERENCIA_DESC = 'Copiar Diferencias';\n  COPIAR_TODO_DESC = '\"Borrar Permisos Actuales y Copiar Todo';\n\n  LISTA_TIPO_COPIAS = [\n    { codigo: this.COPIAR_DIFERENCIA, nombre: this.COPIAR_DIFERENCIA_DESC },\n    { codigo: this.COPIAR_TODO, nombre: this.COPIAR_TODO_DESC },\n\n  ]\n   //COntantes Parametros concepto\n\n   T = 'T';\n   L = 'L';\n\n   T_DES = 'TODOS';\n   L_DES = 'LINEA';\n\n   LISTA_PARAMETROS_CONCEPTO = [\n     { codigo: this.T, nombre: this.T_DES },\n     { codigo: this.L, nombre: this.L_DES },\n     { codigo: this.SI, nombre: this.SI_DESC },\n   ]\n\n//Contantes TipoColumna\n\nPERIODO = 'P';\nMESANNO = 'F';\nMESANNOABONO = 'A';\nMESANNOBASE = 'B';\n\nPERIODODESC = 'Per\\u00edodo';\nMESANNODESC = 'Mes-A\\u00f1o';\nMESANNOABONODESC = 'Mes-A\\u00f1o Fecha Abono';\nMESANNOBASEDESC = 'Mes-A\\u00f1o Base';\n\n\n\n   LISTA_TIPO_COLUMNA = [\n     { codigo: this.PERIODO, nombre: this.PERIODODESC },\n     { codigo: this.MESANNO, nombre: this.MESANNODESC },\n     { codigo: this.MESANNOABONO, nombre: this.MESANNOABONODESC },\n\n   ]\n   //Contantes TipoParametros\n\n   CAUSADO = 'C';\n   PAGADO = 'P';\n   CAUSADODES = 'Causado';\n   PAGADODES = 'Pagado';\n   LISTA_TIPO_PARAMETROS = [\n     { codigo: this.CAUSADO, nombre: this.CAUSADODES },\n     { codigo: this.PAGADO, nombre: this.PAGADODES },\n\n   ]\n\n      //Contantes TipoProceso\n\n      P = 'P';\n      F = 'F';\n      P_DES = 'Periodo';\n      F_DES = 'Rango de fechas';\n      LISTA_PARAMETROS_PROCESO = [\n        { codigo: this.CAUSADO, nombre: this.CAUSADODES },\n        { codigo: this.PAGADO, nombre: this.PAGADODES },\n\n      ]\n\n\n       //Contantes Tipo Rompimiento\n\n       LI = 'LI';\n       LI_DES = 'Linea de Costo';\n       ZO = 'ZO';\n       ZO_DES = 'Zona Economica';\n\n       LZ = 'LZ';\n       LZ_DES = 'Linea / Zona';\n       UN = 'UN';\n       UN_DES = 'Unidad / Nivel Cargo';\n       UA = 'UA';\n       UA_DES = 'Unidad / Apellido';\n       CC = 'CC';\n       CC_DES = 'Zona / Centro';\n       SR = 'SR';\n       SR_DES = 'Sin Rompimiento';\n\n\n       LISTA_TIPO_ROMPIMIENTO = [\n         { codigo: this.LI, nombre: this.LI_DES },\n         { codigo: this.ZO, nombre: this.ZO_DES },\n         { codigo: this.LZ, nombre: this.LZ_DES },\n         { codigo: this.UN, nombre: this.UN_DES },\n         { codigo: this.UA, nombre: this.UA_DES },\n         { codigo: this.CC, nombre: this.CC_DES },\n         { codigo: this.SR, nombre: this.SR_DES },\n       ]\n\n\n      //Contantes PArametros rompimiento fijo\n\n      ZCE = '1 ';\n      ZCE_DES = 'Zona y Centro de Costo - Empleado';\n\n      LISTA_ROMPIMIENTO_FIJO = [\n        { codigo: this.ZCE, nombre: this.ZCE_DES },\n\n      ]\n\n\n   //Contantes Parametros Origen Pagado\n\n\n   PERIODONOMINAA = this.NO\n   PERIODONOMINADES = 'Periodo de N\\u00F3mina';\n   TERMINACIONCONTRATO = 'T';\n   TERMINACIONCONTRATODES = 'Terminaci\\u00F3n Contrato - Fuera de N\\u00F3mina';\n   VACACIONESFUERANOMINA = 'V';\n   VACACIONESFUERANOMINADES = 'Vacaciones - Fuera de N\\u00F3mina';\n   VACACIONESENTIDADPAGO = 'B';\n   VACACIONESENTIDADPAGODES = 'Vacaciones - Entidad Pago';\n   VACACIONESPAGODIRECTO = 'W';\n   VACACIONESPAGODIRECTODES = 'Vacaciones - Pago Directo';\n    NOMINAEXTRA = 'X';\n    NOMINAEXTRADES = 'N\\u00F3mina Extra';\n   FUERANOMINA = 'D';\n   FUERANOMINADES = 'Fuera de N\\u00F3mina';\n\n   TIPOS_PARAMETROS_ORIGEN_PAGADO = [\n    { codigo: this.PERIODONOMINAA, nombre: this.PERIODONOMINADES },\n    { codigo: this.TERMINACIONCONTRATO, nombre: this.TERMINACIONCONTRATODES },\n    { codigo: this.VACACIONESFUERANOMINA, nombre: this.VACACIONESFUERANOMINADES },\n    { codigo: this.VACACIONESENTIDADPAGO, nombre: this.VACACIONESENTIDADPAGODES },\n    { codigo: this.VACACIONESPAGODIRECTO, nombre: this.VACACIONESPAGODIRECTODES },\n    { codigo: this.NOMINAEXTRA, nombre: this.NOMINAEXTRADES },\n    { codigo: this.FUERANOMINA, nombre: this.FUERANOMINADES },\n\n\n   ]\n\n\n\n\n\n\n\n  //Constantes Tipo\n\n  DATO = 'D';\n  CAMPO = 'C';\n\n  CAMPO_STRING = 'Campo';\n  DATO_STRING = 'Dato';\n\n  ListaTipo = [\n    { codigo: this.DATO, nombre: this.DATO_STRING },\n    { codigo: this.CAMPO, nombre: this.CAMPO_STRING },\n\n  ]\n\n  // constantes tipo archivo\n  ARCHIVO_TXT = 'txt';\n  ARCHIVO_CSV = 'csv';\n\n  ARCHIVO_TXT_DESC = '.TXT';\n  ARCHIVO_CSV_DESC = '.CSV';\n\n  ListaTipoArchivo = [\n    { codigo: this.ARCHIVO_TXT, nombre: this.ARCHIVO_TXT_DESC },\n    { codigo: this.ARCHIVO_CSV, nombre: this.ARCHIVO_CSV_DESC },\n\n  ]\n\n  //constantes Encriptacion\n  COLSANITAS_DAVIVIENDA = 'CDAD'\n  COLSANITAS_BANCO_BOGOTA = 'CBBD'\n  UNION_SOLUCIONES = 'USOL'\n  PGP = 'UPGP'\n  BPGP = 'BPGP'\n  CV_DAVIVIENDA = 'CV_DAVIVIENDA'\n  CV_CITIBANK = 'CVCT'\n\n\n  COLSANITAS_DAVIVIENDA_DESC = 'Colsanitas Davivienda'\n  COLSANITAS_BANCO_BOGOTA_DESC = 'Colsanitas Banco de Bogota'\n  UNION_SOLUCIONES_DESC = 'Modo Unión Soluciones'\n  PGP_DESC = 'PGP'\n  BPGP_DESC = 'PGP Binario'\n  CV_DAVIVIENDA_DESC = 'Crypto Vault Davivienda'\n  CV_CITIBANK_DESC = 'Crypto Vault CitiBank'\n\n\n\n\n  LISTADO_ENCRIPTACION = [\n    { codigo: this.COLSANITAS_DAVIVIENDA, nombre: this.COLSANITAS_DAVIVIENDA_DESC },\n    { codigo: this.COLSANITAS_BANCO_BOGOTA, nombre: this.COLSANITAS_BANCO_BOGOTA_DESC },\n    { codigo: this.UNION_SOLUCIONES, nombre: this.UNION_SOLUCIONES_DESC },\n    { codigo: this.PGP, nombre: this.PGP_DESC },\n    { codigo: this.BPGP, nombre: this.BPGP_DESC },\n    { codigo: this.CV_DAVIVIENDA, nombre: this.CV_DAVIVIENDA_DESC },\n    { codigo: this.CV_CITIBANK, nombre: this.CV_CITIBANK_DESC },\n\n\n  ]\n\n    //constantes para codigoInterfaz\n\n    SIS = 'SIS'\n    SOC = 'SOC'\n    SOT = 'SOT'\n    DOT = 'DOT'\n    DPR = 'DPR'\n    EBS = 'EBS'\n    EBA = 'EBA'\n    SAP = 'SAP'\n    CAR = 'CAR'\n    SII = 'SII'\n    SIG = 'SIG'\n    OAT = 'OAT'\n    SUR = 'SUR'\n    UVIN = 'UVIN'\n    SSIN = 'SSIN'\n    SSAC = 'SSAC'\n    FIJO = 'FIJO'\n\n    LISTADO_TIPOCONTABLE = [\n      { codigo: this.SIS, nombre: this.SIS },\n      { codigo: this.SOC, nombre: this.SOC },\n      { codigo: this.SOT, nombre: this.SOT },\n      { codigo: this.DOT, nombre: this.DOT },\n      { codigo: this.DPR, nombre: this.DPR },\n      { codigo: this.EBS, nombre: this.EBS },\n      { codigo: this.EBA, nombre: this.EBA },\n      { codigo: this.SAP, nombre: this.SAP },\n      { codigo: this.CAR, nombre: this.CAR },\n      { codigo: this.SII, nombre: this.SII },\n      { codigo: this.SIG, nombre: this.SIG },\n      { codigo: this.OAT, nombre: this.OAT },\n      { codigo: this.SUR, nombre: this.SUR },\n      { codigo: this.UVIN, nombre: this.UVIN },\n      { codigo: this.SSIN, nombre: this.SSIN },\n      { codigo: this.SSAC, nombre: this.SSAC },\n      { codigo: this.FIJO, nombre: this.FIJO },\n    ]\n\n\n    //Mapa con las lineas/grupos a los que se puede asociar un campo de interfaz externa\n\n    ENCABEZADO_N = 'N'\n    ENCABEZADO = 'E'\n    DETALLE = 'D'\n    FINAL = 'F'\n    FINAL2 = 'I'\n\n    ENCABEZADODESC_N = 'Encabezado 2'\n    ENCABEZADODESC = 'Encabezado'\n    DETALLEDESC = 'Detalle'\n    FINALDESC = 'Final'\n    FINAL2DES = 'Final 2'\n\n  LISTADO_LINEA = [\n    { codigo: this.ENCABEZADO_N, nombre: this.ENCABEZADODESC_N },\n    { codigo: this.ENCABEZADO, nombre: this.ENCABEZADODESC },\n    { codigo: this.DETALLE, nombre: this.DETALLEDESC },\n    { codigo: this.FINAL, nombre: this.FINALDESC },\n    { codigo: this.FINAL2, nombre: this.FINAL2DES },\n  ]\n    //Tipo de campo\n    CONSTANTE = 'C'\n    VARIABLE = 'V'\n\n\n    CONSTANTEDESC = 'Constante'\n    VARIABLEDESC = 'Variable'\n\n\n  LISTADO_TIPOCAMPOS = [\n    { codigo: this.CONSTANTE, nombre: this.CONSTANTEDESC },\n    { codigo: this.VARIABLE, nombre: this.VARIABLEDESC },\n\n  ]\n\n\n\n\n   //Constantes punto Co\n   PERIODONOMINA = this.NO\n   LIQUIDACIONCONTRATO = 'T'\n   SEGURIDADSOCIALL = this.SI\n   TIPOSERVICIO = 'E'\n   LIQUIDACIONADICIONAL = 'A'\n\n\n   PERIODONOMINA_DESC = 'Periodo de N\\u00F3mina'\n   LIQUIDACIONCONTRATO_DESC = 'Liquidaci\\u00F3n Contrato'\n   TIPOSERVICIO_DESC = 'Tipo Servicio'\n   LIQUIDACIONADICIONAL_DESC = 'Liquidaci\\u00F3n Adicional'\n\n\n LISTADO_PUNT = [\n   { codigo: this.PERIODONOMINA, nombre: this.PERIODONOMINA_DESC },\n   { codigo: this.NOMINAEXTRA, nombre: this.NOMINAEXTRADES },\n   { codigo: this.LIQUIDACIONCONTRATO, nombre: this.LIQUIDACIONCONTRATO_DESC },\n   { codigo: this.SEGURIDADSOCIALL, nombre: this.SEGURIDADSOCIAL_DESC },\n   { codigo: this.TIPOSERVICIO, nombre: this.TIPOSERVICIO_DESC },\n   { codigo: this.LIQUIDACIONADICIONAL, nombre: this.LIQUIDACIONADICIONAL_DESC },\n\n ]\n\n//Lista Naturaleza\nCAMBIARNATURALEZA = 'Cambiar Naturaleza'\nNOAFECTA = 'No Afecta'\n\nLISTADO_NATURALEZA = [\n  { codigo: this.SI, nombre: this.CAMBIARNATURALEZA },\n  { codigo: this.NO, nombre: this.NOAFECTA },\n]\n\n//Lista Generar Detalla\n\nPEDIR = 'P'\nAMBOS = 'A'\nTRANSFORMADO = 'T'\n\n\nNOGENERAR = 'No generar'\nSIGENERAR = 'Generar Movimiento Detalle'\nPEDIRDESCRIPCION = 'Solicitar Movimiento Detalle'\nTRANSFORMADODESCRIPCION = 'Generar Movimiento Transformado'\nAMBOSDESCRIPCION = 'Generar Movimiento Detalle/Transformado'\n\n\nMAPAGENERARDETALLE = [\n  { codigo: this.NO, nombre: this.NOGENERAR },\n  { codigo: this.PEDIR, nombre: this.PEDIRDESCRIPCION },\n  { codigo: this.SI, nombre: this.SIGENERAR },\n  { codigo: this.TRANSFORMADO, nombre: this.TRANSFORMADODESCRIPCION },\n  { codigo: this.AMBOS, nombre: this.AMBOSDESCRIPCION },\n\n]\n\n//Lista Campo Agrupacion\n\n\nAGRUPACION = 'AGRUPACION'\n\nZONAECONOMICA = 'zonaeconomica'\nCENTROCOSTO = 'centrocosto'\nLINEACOSTO = 'lineacosto'\nLINEA = 'linea'\nVALOR1 = 'valor1'\nVALOR2 = 'valor2'\nVALOR3 = 'valor3'\nVALOR4 = 'valor4'\nVALOR5 = 'valor5'\nVALOR6 = 'valor6'\nVALOR0 = 'valor'\nNATURALEZA= 'naturaleza'\nDESCRIPCION = 'descripcion'\nREFERENCIA = 'referencia'\nDESCRIPCION2 = 'descripcion2'\n\n\n\nMAPAAGRUPACION = [\n  { codigo: this.ZONAECONOMICA, nombre: this.ZONAECONOMICA },\n  {  codigo: this.CENTROCOSTO, nombre: this.CENTROCOSTO },\n  { codigo: this.LINEACOSTO, nombre: this.LINEACOSTO },\n  {codigo: this.LINEA, nombre: this.LINEA },\n  { codigo: this.VALOR1, nombre: this.VALOR1 },\n  { codigo: this.VALOR2,nombre: this.VALOR2 },\n  { codigo: this.VALOR3,nombre: this.VALOR3 },\n  { codigo: this.VALOR4, nombre: this.VALOR4 },\n  { codigo: this.VALOR5, nombre: this.VALOR5 },\n  {codigo: this.VALOR6, nombre: this.VALOR6 },\n  { codigo: this.VALOR0, nombre: this.VALOR0 },\n  { codigo: this.NATURALEZA, nombre: this.NATURALEZA },\n  {codigo: this.DESCRIPCION, nombre: this.DESCRIPCION },\n  { codigo: this.REFERENCIA, nombre: this.REFERENCIA },\n  { codigo: this.DESCRIPCION2, nombre: this.DESCRIPCION2 },\n\n\n]\n\n//Lista Orden\nORDERBY_ASCENDENTE = 'ASC '\nORDERBY_DESCENDENTE = 'DESC'\nORDERBY_ASCENDENTEDESC = 'Ascendente'\nORDERBY_DESCENDENTEDESC = 'Descendente'\nMAPAORDERBY = [\n  { codigo: this.ORDERBY_ASCENDENTE, nombre: this.ORDERBY_ASCENDENTEDESC },\n  { codigo: this.ORDERBY_DESCENDENTE, nombre: this.ORDERBY_DESCENDENTEDESC },\n]\n\n\n\n//lista generar detalle\nPORLINEA = 'L'\nPORZONA = 'Z'\n\n\n\nNOAPLICA = 'No aplica'\nPORLINEADESC = 'Generacion Por Linea de costo'\nPORZONADESC = '\"Proponer Por Zona Economica'\n\n\n\nMAPAGENERARCOMPROBANTEPOR = [\n  { codigo: this.NO, nombre: this.NOAPLICA },\n  { codigo: this.PORLINEA, nombre: this.PORLINEADESC },\n  { codigo: this.PORZONA, nombre: this.PORZONADESC },\n\n\n]\n\n\n\n  SUMA = 'SU';\n  DES_SUMA = 'Suma';\n  PROMEDIO = 'PR';\n  DES_PROMEDIO = 'Promedio';\n  CONTAR = 'CN';\n  DES_CONTAR = 'Contar';\n  CONTAR_DISTINTO = 'CD';\n  DES_CONTAR_DISTINTO = 'ContarDistinto';\n  MAX = 'MX';\n  DES_MAX = 'Maximo';\n  MIN = 'MN';\n  DES_MIN = 'Minimo';\n\n  MAPAOPERACIONES = [\n    { codigo: this.SUMA, nombre: this.DES_SUMA },\n    { codigo: this.PROMEDIO, nombre: this.DES_PROMEDIO },\n    { codigo: this.CONTAR, nombre: this.DES_CONTAR },\n    { codigo: this.CONTAR_DISTINTO, nombre: this.DES_CONTAR_DISTINTO },\n  ]\n\n  NUMERO1 = \"###0.00;-###0.00\";\n  NUMERO2 = \"###0.00;(###0.00)\";\n  NUMERO3 = \"###0.00;(-###0.00)\";\n  NUMERO4 = \"#,##0.00;-#,##0.00\";\n  NUMERO5 = \"#,##0.00;(#,##0.00)\";\n  NUMERO6 = \"#,##0.00;(-#,##0.00)\";\n  NUMERO7 = \"#,###;(-#,###)\";\n  NUMERO8 = \"###;(-###)\";\n\n  NUMERO1DES = \"###0.00;-###0.00\";\n  NUMERO2DES = \"###0.00;(###0.00)\";\n  NUMERO3DES = \"###0.00;(-###0.00)\";\n  NUMERO4DES = \"#,##0.00;-#,##0.00\";\n  NUMERO5DES = \"#,##0.00;(#,##0.00)\";\n  NUMERO6DES = \"#,##0.00;(-#,##0.00)\";\n  NUMERO7DES = \"#,###;(-#,###)\";\n  NUMERO8DES = \"###;(-###)\";\n\n  MAPAFORMATONUMERO = [\n    { codigo: this.NUMERO1, nombre: this.NUMERO1DES },\n    { codigo: this.NUMERO2, nombre: this.NUMERO2DES },\n    { codigo: this.NUMERO3, nombre: this.NUMERO3DES },\n    { codigo: this.NUMERO4, nombre: this.NUMERO4DES },\n    { codigo: this.NUMERO5, nombre: this.NUMERO5DES },\n    { codigo: this.NUMERO6, nombre: this.NUMERO6DES },\n    { codigo: this.NUMERO7, nombre: this.NUMERO7DES },\n    { codigo: this.NUMERO8, nombre: this.NUMERO8DES },\n  ]\n\n  FECHA1 = \"dd/MM/yyyy\";\n\tFECHA2 = \"MM/dd/yyyy\";\n\tFECHA3 = \"yyyy/MM/dd\";\n\tFECHA4 = \"MMMMM dd,yyyy\";\n\tFECHA5 = \"dd-MM-yyyy\";\n\tFECHA6 = \"dd-MMMMM-yyyy\";\n\n\tFECHA1DES = \"dd/MM/yyyy\";\n\tFECHA2DES = \"MM/dd/yyyy\";\n\tFECHA3DES = \"yyyy/MM/dd\";\n\tFECHA4DES = \"Mes dd,yyyy\";\n\tFECHA5DES = \"dd-MM-yyyy\";\n\tFECHA6DES = \"dd-Mes-yyyy\";\n\n  MAPAFORMATOFECHA = [\n    { codigo: this.FECHA1, nombre: this.FECHA1DES },\n    { codigo: this.FECHA2, nombre: this.FECHA2DES },\n    { codigo: this.FECHA3, nombre: this.FECHA3DES },\n    { codigo: this.FECHA4, nombre: this.FECHA4DES },\n    { codigo: this.FECHA5, nombre: this.FECHA5DES },\n    { codigo: this.FECHA6, nombre: this.FECHA6DES },\n  ]\n\n  VIGENTE_V = \"V\";\n  VIGENTE = Constantes.CONSTANTE_SI;\n  NOVIGENTE = Constantes.CONSTANTE_NO;\n  DESVIGENTE = \"Vigente\";\n  DESNOVIGENTE = \"No Vigente\";\n\n  TIPOS_VIGENTE_V = [\n    { codigo: this.VIGENTE_V, nombre: this.DESVIGENTE },\n    { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n  ]\n\n  TIPOS_VIGENTE = [\n    { codigo: this.VIGENTE, nombre: this.DESVIGENTE },\n    { codigo: this.NOVIGENTE, nombre: this.DESNOVIGENTE },\n  ]\n\n  ///Constantes De Mensajes\n  MENSAJE_INGRESAR = 'Se ingresó el registro';\n  LETRA_A = 'A';\n  LETRA_O = 'O';\n  LETRA_F = 'F';\n  MENSAJE_ADICIONAR = 'Se adicion\\u00F3 el registro';\n  MENSAJE_GUARDAR = 'Se cre\\u00F3 el registro exitosamente';\n  MENSAJE_ACTUALIZAR = 'Se actualiz\\u00F3 el registro exitosamente';\n  MENSAJE_ACTUALIZAR_VARIOS = 'Se actualizaron los registros';\n  MENSAJE_ACTUALIZAR_NO = 'Registro NO Actualizado';\n  MENSAJE_ELIMINAR_VARIOS_CONFIRMAR = '¿Desea eliminar los registros seleccionados?';\n  MENSAJE_ELIMINAR_CONFIRMAR = '¿Desea eliminar el registro?';\n  MENSAJE_ELIMINAR = 'Se elimin\\u00F3 el registro exitosamente';\n  MENSAJE_ELIMINAR_VARIOS = 'Se eliminarion correctamente los registros';\n  MENSAJE_ELIMINAR_NO = 'No se pudo eliminar el registro';\n  MENSAJE_EMVIARCORREO_NO = 'No se pudo enviar el correo';\n  MENSAJE_ELIMINAR_NO_ASOCIADO = '  No se puede eliminar/crear el registro, tiene elementos asociados';\n  MENSAJE_TERMINO_SATISFACTORIO = 'Proceso termin\\u00F3 satisfactoriamente';\n\n\n  MENSAJE_CANCELAR = 'Registro Cancelado';\n  MENSAJE_GUARDAR_NO = 'El registro no se pudo guardar por=';\n  MENSAJE_YA_EXISTE = 'El registro ya existe';\n  MENSAJE_ORDEN_REPETIDO = 'El orden no se puede repetir';\n  MENSAJE_NO_EXISTE = 'No existen registros ';\n  MENSAJE_GENERAR_REPORTE = 'Generando información para el reporte';\n  MENSAJE_FIN_GENERAR_REPORTE = 'Se finalizo la generacion de información para reporte';\n  MENSAJE_INCOMPLETA = 'Información incompleta.';\n  MENSAJE_DUPLICADA = 'Existe más de un registro.';\n  ESTADO_ACTIVO = 'A';\n  MENSAJE_ERROR_SERVICIO = 'Error en el servicio; Por favor intente mas tarde';\n  MENSAJE_CAMPOS_OBLIGATORIOS = 'Faltan campos obligatorios';\n  MENSAJE_EMAIL_NO_VALIDO= 'El email esta vacio o e formato esta errado.'\n  SUBCONTENIDOINICIO = '${CONTENIDO=';\n  SUBCONTENIDOFIN = '}';\n  MENSAJE_PUNTO_PROCESO_REPETIDO = \"El punto de proceso no se puede repetir\";\n  MENSAJE_PARAMETRO_REPETIDO = \"El parametro no se puede repetir\";\n  ESTADO_INACTIVO = 'I';\n  SELECCIONEEVALUACION = 'Seleccione una evaluacion';\n  MENSAJE_NO_SELECCIONADO = 'Por favor seleccione un registro';\n\n\n\n  LISTA_ACTIVO = [\n\n    { codigo: this.ESTADO_ACTIVO, nombre: this.ESTADO_ACTIVO_DES },\n    { codigo: this.ESTADO_INACTIVO, nombre: this.ESTADO_INACTIVO_DESC },\n  ];\n\n\nORGANIZACION = 'Organizaci\\u00F3n'\nEMPRESAT = 'Empresa'\n\nLISTA_TIPOCAMPO = [\n\n  { codigo: this.EMPRESAT, nombre: this.EMPRESAT },\n  { codigo: this.ORGANIZACION, nombre: this.ORGANIZACION },\n];\n\nBIENESTAR = \"B\";\nCAPACITACION = \"C\";\n\nCODIGO_BENEFICIO ='B';\nCODIGO_BIENESTAR  ='E';\nCODIGO_CANDIDATO='X';\nCODIGO_CAPACITACION  ='P';\nCODIGO_CONTRATACION='C';\nCODIGO_CONVOCATORIA='Z';\nCODIGO_INCAPACIDAD ='I';\nCODIGO_INTERRUPCION='T';\nCODIGO_LICENCIA='L';\nCODIGO_NOVEDAD='N';\nCODIGO_REQUERIMIENTO='R';\nCODIGO_SOLICITUD='O';\nCODIGO_VACACION='V';\nCODIGO_VIATIVOS='Y';\nCODIGO_SALIDA='S';\n\nDES_BENEFICIO ='Beneficio';\nDES_BIENESTAR  ='Bienestar';\nDES_CANDIDATO='Candidato';\nDES_CAPACITACION  ='Capacitacion';\nDES_CONTRATACION='Contratacion';\nDES_CONVOCATORIA='Convocatoria';\nDES_INCAPACIDAD ='Icapacidad';\nDES_INTERRUPCION='Interrupcion';\nDES_LICENCIA='Licencia';\nDES_NOVEDAD='Novedad';\nDES_REQUERIMIENTO='Requerimiento';\nDES_SOLICITUD='Solicitud';\nDES_VACACION='Vacaciones';\nDES_VIATIVOS='Viaticos';\nDES_SALIDA='Salida';\n\nLISTA_TIPO = [\n\n  { codigo: this.CODIGO_BENEFICIO, nombre: this.DES_BENEFICIO },\n  { codigo: this.CODIGO_BIENESTAR, nombre: this.DES_BIENESTAR },\n  { codigo: this.CODIGO_CANDIDATO, nombre: this.DES_CANDIDATO },\n  { codigo: this.CODIGO_CAPACITACION, nombre: this.DES_CAPACITACION },\n  { codigo: this.CODIGO_CONTRATACION, nombre: this.DES_CONTRATACION },\n  { codigo: this.CODIGO_CONVOCATORIA, nombre: this.DES_CONVOCATORIA },\n  { codigo: this.CODIGO_INCAPACIDAD, nombre: this.DES_INCAPACIDAD },\n  { codigo: this.CODIGO_INTERRUPCION, nombre: this.DES_INTERRUPCION },\n  { codigo: this.CODIGO_LICENCIA, nombre: this.DES_LICENCIA },\n  { codigo: this.CODIGO_NOVEDAD, nombre: this.DES_NOVEDAD },\n  { codigo: this.CODIGO_REQUERIMIENTO, nombre: this.DES_REQUERIMIENTO },\n  { codigo: this.CODIGO_SOLICITUD, nombre: this.DES_SOLICITUD },\n  { codigo: this.CODIGO_VACACION, nombre: this.DES_VACACION },\n  { codigo: this.CODIGO_VIATIVOS, nombre: this.DES_VIATIVOS },\n  { codigo: this.CODIGO_SALIDA, nombre: this.DES_SALIDA },\n];\n\nNUMERO_ENTERO = \"N\";\nNUMERO_DECIMAL = \"D\";\nFECHAS = \"F\";\nTEXTO_LARGO = \"T\";\nTEXTO_CORTO = \"C\";\nRADIO = \"R\";\nLISTA_DESPLEGABLE = \"L\";\nTABLA = \"B\";\nMARCA_SELECCION_MULTIPLE = \"M\";\nMENSAJE = \"J\";\nPOPUP_UBICACION = \"U\";\nLISTA_TEXTO= \"X\";\nADJUNTO= \"A\";\n\nMARCA_SELECCION_MULTIPLE_DES = \"Marca de Seleccion multiple\";\nNUMERO_ENTERO_DES = \"Numero Entero\";\nNUMERO_DECIMAL_DES = \"Numero Decimal\";\nFECHA_DES = \"Fecha\";\nTEXTO_LARGO_DES = \"Texto Largo\";\nTEXTO_CORTO_DES = \"Texto Corto\";\nRADIO_DES = \"Radio\";\nLISTA_DESPLEGABLE_DES = \"Lista Valor\";\nTABLA_DES = \"Tabla\";\nMENSAJE_DES = \"Mensaje\";\nPOPUP_UBICACION_DESC = \"Ubicación\";\nLISTA_TEXTO_DES= \"Lista Texto\";\nADJUNTO_DES= \"Adjunto\";\n\nLISTA_TIPOPREGUNTA = [\n\n /*  { codigo: this.CODIGO_BENEFICIO, nombre: this.MARCA_SELECCION_MULTIPLE_DES }, */\n  { codigo: this.NUMERO_ENTERO, nombre: this.NUMERO_ENTERO_DES },\n  { codigo: this.NUMERO_DECIMAL, nombre: this.NUMERO_DECIMAL_DES },\n  { codigo: this.FECHAS, nombre: this.FECHA_DES },\n  { codigo: this.TEXTO_LARGO, nombre: this.TEXTO_LARGO_DES },\n  { codigo: this.TEXTO_CORTO, nombre: this.TEXTO_CORTO_DES },\n  { codigo: this.RADIO, nombre: this.RADIO_DES },\n  { codigo: this.LISTA_DESPLEGABLE, nombre: this.LISTA_DESPLEGABLE_DES },\n  { codigo: this.TABLA, nombre: this.TABLA_DES },\n  { codigo: this.MENSAJE, nombre: this.MENSAJE_DES },\n  { codigo: this.POPUP_UBICACION_DESC, nombre: this.POPUP_UBICACION_DESC },\n  { codigo: this.LISTA_TEXTO_DES, nombre: this.LISTA_TEXTO_DES },\n  { codigo: this.ADJUNTO, nombre: this.ADJUNTO_DES },\n];\n\n\nLISTA_TIPOTABLA = [\n   { codigo: this.CAMPO, nombre: this.CAMPO_STRING },\n   { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC },\n ];\n\n\n MENSAJES_PRE= \"Mensaje Resgistro\";\n\n LISTA_CAMPO =[\n  { codigo: this.MENSAJE, nombre: this.MENSAJES_PRE},\n ]\n\n\n DOCUMENTO_ALFANUMERICO = 'Documento Alfanumérico'\nDOCUMENTO_NUMERICO = 'Documento Numérico'\n\nMAPATIPODOCUMENTO = [\n  { codigo: this.SI, nombre: this.DOCUMENTO_NUMERICO },     \n  { codigo: this.NO, nombre: this.DOCUMENTO_ALFANUMERICO }, \n    \n]\n\nPUNTO = \".\";\n\n  NUCLEO = \"0\";\n\tAPLICACION_SARA = \"1\";\n\tAPLICACION_SOFIA = \"2\";\n\tAPLICACION_TRANSPORTES = \"3\";\n\tAPLICACION_SAMANTA = \"4\";\n\tAPLICACION_SEGURIDAD = \"5\";\n\tAPLICACION_FIDUCIA = \"7\";\n\tAPLICACION_SERVICIOS = \"8\";\n\tAPLICACION_PORTAL = \"10\";\n\tAPLICACION_MANA = \"13\";\n\t\n\tAPLICACION_SARA_DES = \"SARA\";\n\tAPLICACION_SOFIA_DES = \"SOFIA\";\n\tAPLICACION_TRANSPORTES_DES = \"TRANSPORTES\";\n\tAPLICACION_SAMANTA_DES = \"SAMANTA\";\n\tAPLICACION_SEGURIDAD_DES = \"SEGURIDAD\";\n\tAPLICACION_FIDUCIA_DES = \"FIDUCIA\";\n\tAPLICACION_SERVICIOS_DES = \"SERVICIOS\";\n\tAPLICACION_PORTAL_DES = \"PORTAL\";\n\tAPLICACION_MANA_DES = \"MANA\";\n\n   PROCESOCAN = \"A\";\n\t NOADMITIDOS = Constantes.CONSTANTE_NO;\n\t ENGANCHE = \"E\";\n\t INSCRIPCION = \"I\";\n\t PREINSCRIPCION = \"P\";\n\n    TODOS = \"T\";\n\t DESTODOS = \"Todos\";\n\n    NOCONTRATADO = \"C\";\n\n    PROCESO = \"P\";\n\t BLOQUEADO = \"B\";\n\t CERRADO = \"C\";\n\t LIQUIDACION = \"L\";\n\t ANULADO = \"A\";\n\t INFORMEFINAL = \"F\";\n\t SOLICITUD = Constantes.CONSTANTE_SI;\n\t ENCONTRATACION = \"E\";\n\n\t DESPROCESO = \"Proceso\";\n\t DESBLOQUEADO = \"Bloqueado\";\n\t DESCERRADO = \"Cerrado\";\n\t DESANULADO = \"Anulado\";\n\t DESINFORMEFINAL = \"Informe final\";\n\t DESENCONTRATACION = \"En contrataci\" + Constantes.O_TIDLE_MIN + \"n\";\n\n  DESPROCESOCAN = \"Proceso\";\n\t DESNOADMITIDOS = \"No Admitidos\";\n\t DESENGANCHE = \"Enganche\";\n\t DESINSCRIPCION = \"Inscripci\" + Constantes.O_TIDLE_MIN + \"n\";\n\t DESPREINSCRIPCION = \"PreInscripci\" + Constantes.O_TIDLE_MIN + \"n\";\n\t DESNOCONTRATADO = \"No Contratado\";\n\n   NOEVALUCIONESASO =  \"No se encontraron evaluaciones asociadas al evento\";\n   SELECCIONEUNELEMENTO = \"Seleccione por lo menos un elemento\"\n\n   AGREGAR_CONTENIDO_PUBLICACION = \"Se agregó la publicación exitosamente\"\n\t \n  \n  ETAPAPROCESO = [\n    { codigo: this.PROCESOCAN, nombre: this.DESPROCESOCAN },     \n    { codigo: this.NOADMITIDOS, nombre: this.DESNOADMITIDOS }, \n    { codigo: this.ENGANCHE, nombre: this.DESENGANCHE },     \n    { codigo: this.INSCRIPCION, nombre: this.DESINSCRIPCION }, \n    { codigo: this.INFORMEFINAL, nombre: this.DESINFORMEFINAL },     \n    { codigo: this.PREINSCRIPCION, nombre: this.DESPREINSCRIPCION }, \n    { codigo: this.NOCONTRATADO, nombre: this.DESNOCONTRATADO },     \n  ]\n\n  DOS_PUNTOS = \":\";\n\n  ASIGVARPER=\"S\";\n\tASIGINDIVI=\"N\";\n\tASIGAREA=\"A\";\n  \n  DESSOLI = \"Individual\";\n  DESCASIGVARPER=\"Varias personas\";\n  DESCARE = \"Area\";\n\n  LISTA_ASIGNACION = [\n    { codigo: this.ASIGVARPER, nombre: this.DESCASIGVARPER },     \n    { codigo: this.ASIGINDIVI, nombre: this.DESSOLI }, \n    { codigo: this.ASIGAREA, nombre: this.DESCARE },     \n  ]\n\n  SOLICITANTE = \"SO\";\n\tGRUPPERSONA = \"GR\";\n\tGRUPERNODEF = \"ND\";\n\tAREA = \"AR\";\n\tENTIDADRIESGO = \"ER\";\n\n  DES_SOLICITANTE = \"Individual\";\n\tDES_GRUPPERSONA = \"Grupo Personas\";\n\tDES_GRUPERNODEF = \"Grupo Personas no Definido\";\n\tDES_AREA = \"Area\";\n\tDES_ENTIDADRIESGO = \"Grupo Ocupacional\"\n\n  LISTA_DIRIGIDOA = [\n    { codigo: this.SOLICITANTE, nombre: this.DES_SOLICITANTE },     \n    { codigo: this.GRUPPERSONA, nombre: this.DES_GRUPPERSONA }, \n    { codigo: this.GRUPERNODEF, nombre: this.DES_GRUPERNODEF },    \n    { codigo: this.AREA, nombre: this.DES_AREA },\n    { codigo: this.ENTIDADRIESGO, nombre: this.DES_ENTIDADRIESGO}, \n  ]\n\n\n  ESTADO_CUMPLIDO = \"U\";\n  ESTADO_CANCELADO = \"C\";\n  ESTADO_NOCUMPLIDO = \"N\"\n  ESTADO_PROGRAMADO = \"P\"\n  ESTADO_CANCELADOGRUPO = \"C\"\n  ESTADO_CUMPLIDOGRUPO = \"A\"\n\n  ESTADO_PROGRAMADO_DES = \"Programado\"\n  ESTADO_CANCELADOGRUPO_DES= \"Cancelado\"\n  ESTADO_CUMPLIDOGRUPO_DES = \"Cumplido\"\n  ESTADO_NOCUMPLIDO_DES = \"NO Cumplido\"\n\n  ESTADOSGRUPOAPOYO = [\n    { codigo: this.ESTADO_CUMPLIDOGRUPO, nombre: this.ESTADO_CUMPLIDOGRUPO_DES },     \n    { codigo: this.ESTADO_CANCELADOGRUPO, nombre: this.ESTADO_CANCELADOGRUPO_DES }, \n    { codigo: this.ESTADO_PROGRAMADO, nombre: this.ESTADO_PROGRAMADO_DES },     \n\n  ]\n\n  ESTADOS = [\n    { codigo: this.ESTADO_ACTIVO, nombre: this.ESTADO_ACTIVO_DES },     \n    { codigo: this.ESTADO_CUMPLIDO, nombre: this.ESTADO_CUMPLIDOGRUPO_DES }, \n    { codigo: this.ESTADO_CANCELADO, nombre: this.ESTADO_CANCELADOGRUPO_DES },     \n    { codigo: this.ESTADO_NOCUMPLIDO, nombre: this.ESTADO_NOCUMPLIDO_DES },     \n\n  ]\n\n  //FINALIN = 'P'\n  PARCIAL = 'P'\n\n  PARCIAL_DESC = 'PARCIAL'\n  TOTAL_DESC = 'TOTAL'\n  FINAL_DESC = 'Final'\n\n  LISTA_INFORME = [\n    { codigo: this.FINAL, nombre: this.FINAL_DESC },\n    { codigo: this.PARCIAL, nombre: this.PARCIAL_DESC }\n  ]\n\n  INDIVIDUAL  = \"I\";\n  GRUPAL = \"G\";\n\n  DES_INDIVIDUAL = \"Individual\";\n  DES_GRUPAL = \"Grupal\";\n  \n  LISTATIPOAGRUPACION = [\n    { codigo: this.INDIVIDUAL, nombre: this.DES_INDIVIDUAL },\n    { codigo: this.GRUPAL, nombre: this.DES_GRUPAL }\n\n  ]\n\n\n  EMPLEADOR=\"E\";\n\tCONTRATANTE=\"C\";\n\tCOOPERATIVA_TRABAJO_ASOCIADO=\"T\";\n  \n  DES_EMPLEADOR = \"Empleador\";\n  DES_CONTRATANTE=\"Contratante\";\n  DES_COOPERATIVA_TRABAJO_ASOCIADO = \"Cooperativa de trabajo asociado\";\n\n  LISTA_VINCULACION = [\n    { codigo: this.EMPLEADOR, nombre: this.DES_EMPLEADOR },     \n    { codigo: this.CONTRATANTE, nombre: this.DES_CONTRATANTE }, \n    { codigo: this.COOPERATIVA_TRABAJO_ASOCIADO, nombre: this.DES_COOPERATIVA_TRABAJO_ASOCIADO },     \n  ]\n\n\tNORMAL=\"N\";\n\tEXTRA=\"E\";\n  \n  DES_NORMAL = \"Normal\";\n  DES_EXTRA=\"Extra\";\n\n  LISTA_JORNADA = [\n    { codigo: this.NORMAL, nombre: this.DES_NORMAL },     \n    { codigo: this.EXTRA, nombre: this.DES_EXTRA }    \n  ]\n\n  RURAL=\"R\";\n\tURBANA=\"U\";\n  \n  DES_RURAL = \"Rural\";\n  DES_URBANA=\"Urbana\";\n\n  ZONA=[\n    { codigo: this.RURAL, nombre: this.DES_RURAL },     \n    { codigo: this.URBANA, nombre: this.DES_URBANA }     \n  ]\n  \n  LUNES = \"a\";\n  MARTES = \"b\";\n  MIERCOLES = \"c\";\n  JUEVES = \"d\";\n  VIERNES = \"e\";\n  SABADO = \"f\";\n  DOMINGO = \"g\";\n\n  DES_LUNES = \"Lunes\";\n  DES_MARTES= \"Martes\";\n  DES_MIERCOLES= \"Miercoles\";\n  DES_JUEVES= \"Jueves\";\n  DES_VIERNES= \"Viernes\";\n  DES_SABADO= \"Sabado\";\n  DES_DOMINGO= \"Domingo\";\n\n  DIAS=[\n    { codigo: this.LUNES, nombre: this.DES_LUNES },     \n    { codigo: this.MARTES, nombre: this.DES_MARTES },\n    { codigo: this.MIERCOLES, nombre: this.DES_MIERCOLES },   \n    { codigo: this.JUEVES, nombre: this.DES_JUEVES },\n    { codigo: this.VIERNES, nombre: this.DES_VIERNES },\n    { codigo: this.SABADO, nombre: this.DES_SABADO },\n    { codigo: this.DOMINGO, nombre: this.DES_DOMINGO }     \n  ]\n\n\n  DES_INTERNO ='Interno'\n  DES_EXTERNO ='Externo'\n\n  LISTA_TIPO_TESTIGO=[\n    { codigo: this.NO, nombre: this.DES_INTERNO },     \n    { codigo: this.SI, nombre: this.DES_EXTERNO },\n      \n  ]\n\n\tARCHIVO_PDF: string;\n\n  SARA_REPORTE = \"Sara\";\n\t\ncapitallizeFully(value: string){\n  if (!value) return '';\n\n  const words = value.split(' ');\n\n  const capitalizedWords = words.map(word => {\n    return word.charAt(0).toUpperCase() + word.substring(1).toLowerCase();\n  });\n\n  return capitalizedWords.join(' ');\n}\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listacampos') { this.LISTADO_TIPOCAMPOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listalinea') { this.LISTADO_LINEA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaSiNo') { this.LISTA_SINO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaEstadoSn') { this.LISTA_ESTADO_SN.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listadoNaturaleza') { this.LISTADO_NATURALEZA_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listadoFormula') { this.LISTADO_FORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listadoEstadoConcepto') { this.LISTADO_ESTADO_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listadoTipoFormula') { this.LISTA_TIPOFORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaRecursoGrafico') { this.Rgrafica.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listadoOPerador') { this.Roperador.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listadoTipo') { this.ListaTipo.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'orientacion') { this.ORIENTACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'mapaOperaciones') { this.MAPAOPERACIONES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'mapaFormatoNumero') { this.MAPAFORMATONUMERO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'mapaFormatoFecha') { this.MAPAFORMATOFECHA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listagenero') { this.SGENERO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listapuntocontrol') { this.LISTADO_PUNT.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaempresa0') { this.lISTAEMPRESA0.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoParametros') { this.LISTA_TIPO_PARAMETROS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaOrden') { this.ORDEN.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaSeleccionarMap') { this.LISTA_SELECIONAR_MAP.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaactivo') { this.LISTA_ACTIVO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipo') { this.LISTA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoPregunta') { this.LISTA_TIPOPREGUNTA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoTabla') { this.LISTA_TIPOTABLA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoCampo') { this.TIPOCAMPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaCampo') { this.LISTA_CAMPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaestado') { this.TIPOS_VIGENTE_V.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaAsignacion') { this.LISTA_ASIGNACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaEstadoGrupoA') { this.ESTADOSGRUPOAPOYO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaDirigidia') { this.LISTA_DIRIGIDOA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoAgrupacion') { this.LISTATIPOAGRUPACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoVinculacion') { this.LISTA_VINCULACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaJornada') { this.LISTA_JORNADA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoTestigo') { this.LISTA_TIPO_TESTIGO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaEstadoRecomenda') { this.ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    \n    if (args[0] == 'capitallizeFully') { result = this.capitallizeFully(value) }\n\n    \n    return result;\n  }\n}\n\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../constantes/Constantes';\n\n@Pipe({\n    name: 'parametroFormatoPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\nexport class ParametroFormatoPipe implements PipeTransform {\n\n    constructor(\n    ) { }\n\n    NO = Constantes.CONSTANTE_NO;\n    SI = Constantes.CONSTANTE_SI;\n    ENCUESTA = 'E';\n\n    ORIGEN_ACTO_VACACION_EMPLEADO = 'EMPLEADO';\n    ORIGEN_ACTO_CAMBIO_PUESTO = 'ACTO_CAMBIO_PUESTO';\n    ORIGEN_ACTO_VACACION_APLICARNOVEDADEML = 'APLICARNOVEDADEML';\n    ORIGEN_ACTO_VACACION_ACTOSADMIN = 'ACTOSADMIN';\n    ORIGEN_DETALLE_ENTIDAD_CUOTA = 'ENTIDADCUOTA';\n    ORIGEN_LISTADO_ENTIDAD_CUOTA = 'LISTADOCUOTA';\n    ORIGEN_CONSULTA_ESPECIAL = 'consulta_acto_especial';\n    ORIGEN_CONSULTA_ESPECIAL_FILTRO_ACTOS = 'consulta_acto_especial_filtro_acto';\n    ORIGEN_EMPLEADO_CONSULTA_ACTOS = 'REGRESO_LIQUIDACION_CONTRATO';\n    ORIGEN_CONSULTA_AUSENCIA = 'consulta_acto_ausencia';\n    ORIGEN_CONSULTA_AUSENCIA_FILTRO_ACTOS = 'consulta_acto_ausencia_filtro_acto';\n    ORIGEN_CONSULTA_CAMBIO = 'consulta_acto_cambio_empleado';\n    ORIGEN_CONSULTA_CAMBIO_FILTRO_ACTOS = 'consulta_acto_cambio_empleado_filtro_acto';\n    ORIGEN_CONSULTA_PLANTA = 'consulta_acto_mov_planta';\n    ORIGEN_CONSULTA_PLANTA_FILTRO_ACTOS = 'consulta_acto_mov_planta_filtro_acto';\n\n    TIPO_ACTO_INGRESO = 'AINGRESO';\n    TIPO_ACTO_MOVIMIENTO_PLANTA = 'AMOVPLANTA';\n    TIPO_ACTO_AUSENCIA = 'AAUSENCIA';\n    TIPO_ACTO_VACACION = 'AVACACION';\n    TIPO_ACTO_PRORROGA_FUNCION = 'APRORROFUNCION';\n\n    PARAMETRO_L_AUSENCIA = 'L';\n    PARAMETRO_T_TERMINACION_CONTRATO = 'T';\n    PARAMETRO_V_VACACION = 'V';\n    PARAMETRO_PR_AUSENCIA = 'PR';\n    PARAMETRO_IN_AUSENCIA = 'IN';\n    PARAMETRO_NO_AUSENCIA = 'NO';\n\n    PARAMETRO_ACTO_CAMBIO_EMPLEADO_DES = 'Acto cambio del Empleado';\n    PARAMETRO_ACTO_CAMBIO_EMPLEADO = 'CE';\n    PARAMETRO_ACTO_VACACION_DES = 'Acto Vacaci\\u00F3n';\n    PARAMETRO_ACTO_VACACION = 'VA';\n    PARAMETRO_ACTO_MOVIMIENTO_PLANTA_DES = 'Acto Movimento de planta';\n    PARAMETRO_ACTO_MOVIMIENTO_PLANTA = 'MP';\n    PARAMETRO_ACTO_LICENCIA_COMISIONES_DES = 'Actos Ausencia';\n    PARAMETRO_ACTO_LICENCIA_COMISIONES = 'LI';\n    PARAMETRO_ACTO_RETIRO_EMPLEADO = 'RE';\n    PARAMETRO_ACTO_PLANTA = 'MP';\n    PARAMETRO_ACTO_FORMATO_ESPECIAL = 'ES';\n\n    PARAMETRO_ACTO_RETIRO_EMPLEADO_DES = 'Actos de Retiro del empleado';\n    PARAMETRO_FORMATO_DESCRIPCION = 'formato';\n    PARAMETRO_EVALUACION_DESCRIPCION = 'vacacion';\n    PARAMETRO_TERMINACION_CONTRATO_DESCRIPCION = 'terminacionContrato';\n    PARAMETRO_AUSENCIA_DESCRIPCION = 'ausencia';\n    PARAMETRO_ESPECIAL = 'especial';\n    PARAMETRO_MOVIMIENTO_PLANTA = 'movimientoplanta';\n    PARAMETRO_TIPO_FORMATO_ESPECIAL_DES = 'Actos especiales';\n\n    ACTOS_ADMINISTRATIVOS_EML =\n        [\n            { codigo: this.PARAMETRO_ACTO_CAMBIO_EMPLEADO, nombre: this.PARAMETRO_ACTO_CAMBIO_EMPLEADO_DES },\n            { codigo: this.PARAMETRO_ACTO_VACACION, nombre: this.PARAMETRO_ACTO_VACACION_DES },\n            { codigo: this.PARAMETRO_ACTO_MOVIMIENTO_PLANTA, nombre: this.PARAMETRO_ACTO_MOVIMIENTO_PLANTA_DES },\n            { codigo: this.PARAMETRO_ACTO_LICENCIA_COMISIONES, nombre: this.PARAMETRO_ACTO_LICENCIA_COMISIONES_DES },\n            { codigo: this.PARAMETRO_ACTO_RETIRO_EMPLEADO, nombre: this.PARAMETRO_ACTO_RETIRO_EMPLEADO_DES },\n            { codigo: this.PARAMETRO_ACTO_FORMATO_ESPECIAL, nombre: this.PARAMETRO_TIPO_FORMATO_ESPECIAL_DES }\n        ]\n\n    ACTOS_ADMINISTRATIVOS_IMAGEN =\n        [\n            { codigo: this.PARAMETRO_ACTO_CAMBIO_EMPLEADO, nombre: 'glyphicons glyphicons-group' },\n            { codigo: this.PARAMETRO_ACTO_VACACION, nombre: 'glyphicons glyphicons-sunbath' },\n            { codigo: this.PARAMETRO_ACTO_MOVIMIENTO_PLANTA, nombre: 'glyphicons glyphicons-user-structure' },\n            { codigo: this.PARAMETRO_ACTO_LICENCIA_COMISIONES, nombre: 'glyphicons glyphicons-businessman' },\n            { codigo: this.PARAMETRO_ACTO_RETIRO_EMPLEADO, nombre: 'glyphicons glyphicons-user-ban' },\n            { codigo: this.PARAMETRO_ACTO_FORMATO_ESPECIAL, nombre: 'glyphicons glyphicons-user-key' }\n        ]\n\n    INGRESODEFINITIVO = 'ID';\n    INGRESODEFINITIVO_Masivo = 'ID_MASIVO';\n    INGRESOTEMPORAL = 'IT';\n    INGRESOTEMPORAL_Masivo = 'IT_MASIVO';\n    INGRESOJUBILADOSINNOMINA = 'IF';\n    INGRESODEFIEMPALME = 'IE';\n    TRASLADODEFINITIVO = 'TD';\n    TRASLADOENFUNCION = 'TF';\n    TRASLADOENCARGO = 'TT';\n    ASIGNACIONFUNCIONES = 'AF';\n    TRASDEFINITIVOTEM = 'TE';\n    NOAPLICA = Constantes.PUNTO;\n    INTERRUPCCIONENCARGO = 'IN';\n    INTERRUPCIONASIGNAFUNCION = 'IA';\n    PRORROGATERMINACIONCONTRATO = 'PC';\n    PRORROGATERMINACIONCONTRATO_Masivo = 'PC_MASIVO';\n    PRORROGAENCARGOTEMPORAL = 'PR';\n    PRORROGAENCARGOTEMPORAL_Masivo = 'PR_MASIVO';\n    PRORROGAASIGNACIONFUNCION = 'PA';\n    CAMBIOPUESTOTRA = 'PT';\n    TRASLADOTEMPORALSITIO = 'TS';\n    ENTIDADEMPLEADO = 'EE';\n    CARRERAADMINISTRATIVA = 'CA';\n\n    INGRESODEFINITIVODESC = 'Ingreso - Definitivo';\n    INGRESOTEMPORALDESC = 'Ingreso - Temporal';\n    INGRESODEFINITIVODESC_Masivo = 'Ingreso - Definitivo - Masivo';\n    INGRESOTEMPORALDESC_Masivo = 'Ingreso - Temporal - Masivo';\n    TRASLADODEFINITIVODESC = 'Traslado - Definitivo';\n    TRASLADOFUNCIONDESC = 'Traslado en Funci\\u00F3n';\n    TRASLADOTEMPORALDESC = 'Traslado Encargo';\n    ASIGNACIONFUNCIONDESC = 'Asignaci\\u00F3n Funci\\u00F3n';\n    NOAPLICADESC = 'No Aplica';\n    TRASLADOTEMPORALSITIODESC = 'Traslado temporal sitio';\n    INTERRUPCIONTRASTEMPDESC = 'Interrupci\\u00F3n Traslado Encargo o por Funciones';\n    INTERRUPCIONASIGNAFUNCION_DESC = 'Interrupci\\u00F3n Asignaci\\u00F3n de Funciones';\n    PRORROGATRASTEMPDESC = 'Prorroga Traslado Encargo o por Funciones';\n    PRORROGATRASTEMPDESC_Masivo = 'Prorroga Traslado Encargo o por Funciones Masivo';\n    PRORROGAFUNCIONDESC = 'Prorroga Asignaci\\u00F3n Funciones';\n    ENTIDADEMPLEADODESC = 'Entidad Empleado';\n    CAMBIOPUESTOTRADESC = 'Cambio Puesto Trabajo';\n    TRASDEFINITIVOTEMDESC = 'Traslado - Definitivo como Temporal';\n    INGRESOJUBILADOSINNOMINADESC = 'Ingreso Jubilado Sin N\\u00F3mina';\n    INGRESODEFIEMPALMEDESC = 'Ingreso - Definitivo - Empalme';\n    CARRERAADMINISTRATIVADESC = 'Carrera Administrativa';\n    PRORROGATERMINACIONCONTRATODESC = 'Prorroga Terminacion Contrato';\n    PRORROGATERMINACIONCONTRATODESC_Masivo = 'Prorroga Terminacion Contrato Masivo';\n\n    ACCION =\n        [\n            { codigo: this.INGRESODEFINITIVO, nombre: this.INGRESODEFINITIVODESC },\n            { codigo: this.INGRESOTEMPORAL, nombre: this.INGRESOTEMPORALDESC },\n            { codigo: this.TRASLADODEFINITIVO, nombre: this.TRASLADODEFINITIVODESC },\n            { codigo: this.TRASLADOENFUNCION, nombre: this.TRASLADOFUNCIONDESC },\n            { codigo: this.NOAPLICA, nombre: this.NOAPLICADESC },\n            { codigo: this.TRASLADOENCARGO, nombre: this.TRASLADOTEMPORALDESC },\n            { codigo: this.INTERRUPCCIONENCARGO, nombre: this.INTERRUPCIONTRASTEMPDESC },\n            { codigo: this.INTERRUPCIONASIGNAFUNCION, nombre: this.INTERRUPCIONASIGNAFUNCION_DESC },\n            { codigo: this.PRORROGAENCARGOTEMPORAL, nombre: this.PRORROGATRASTEMPDESC },\n            { codigo: this.ENTIDADEMPLEADO, nombre: this.ENTIDADEMPLEADODESC },\n            { codigo: this.CAMBIOPUESTOTRA, nombre: this.CAMBIOPUESTOTRADESC },\n            { codigo: this.TRASLADOTEMPORALSITIO, nombre: this.TRASLADOTEMPORALSITIODESC },\n            { codigo: this.TRASDEFINITIVOTEM, nombre: this.TRASDEFINITIVOTEMDESC },\n            { codigo: this.INGRESOJUBILADOSINNOMINA, nombre: this.INGRESOJUBILADOSINNOMINADESC },\n            { codigo: this.ASIGNACIONFUNCIONES, nombre: this.ASIGNACIONFUNCIONDESC },\n            { codigo: this.CARRERAADMINISTRATIVA, nombre: this.CARRERAADMINISTRATIVADESC },\n            { codigo: this.INGRESODEFIEMPALME, nombre: this.INGRESODEFIEMPALMEDESC },\n            { codigo: this.PRORROGAASIGNACIONFUNCION, nombre: this.PRORROGAFUNCIONDESC },\n            { codigo: this.PRORROGATERMINACIONCONTRATO, nombre: this.PRORROGATERMINACIONCONTRATODESC },\n            { codigo: this.INGRESODEFINITIVO_Masivo, nombre: this.INGRESODEFINITIVODESC_Masivo },\n            { codigo: this.INGRESOTEMPORAL_Masivo, nombre: this.INGRESOTEMPORALDESC_Masivo },\n            { codigo: this.PRORROGATERMINACIONCONTRATO_Masivo, nombre: this.PRORROGATERMINACIONCONTRATODESC_Masivo },\n            { codigo: this.PRORROGAENCARGOTEMPORAL_Masivo, nombre: this.PRORROGATRASTEMPDESC_Masivo },\n        ]\n\n    PROGRAMACION_MASIVA_CEDULA = 'PM';\n    PROGRAMACION_MASIVA_FORMULA = 'PF';\n    PROGRAMACION_INDIVIDUAL = 'PA';\n    NO_DISFRUTE_Y_NO_PAGO_MAS = 'NM';\n    NO_DISFRUTE_Y_NO_PAGO_IND = 'NI';\n    INTERRUPCION_MAS = 'IM';\n    INTERRUPCION_IND = 'II';\n    PERDER_DERECHO_VACA = 'DE';\n    POSTERGAR_VACA = 'DP';\n    INTERRUPCION_TOTAL = 'IT';\n\n    PROGRAMACION_MASIVA_CEDULA_DES = 'Programaci\\u00F3n Masiva con C\\u00E9dulas';\n    PROGRAMACION_MASIVA_FORMULA_DES = 'Programaci\\u00F3n Masiva con F\\u00F3rmula';\n    PROGRAMACION_INDIVIDUAL_DES = 'Programaci\\u00F3n Individual con Periodos por Disfrutar y Pendientes';\n    NO_DISFRUTE_Y_NO_PAGO_MAS_DES = 'No Disfrute y No Pago Masivo';\n    NO_DISFRUTE_Y_NO_PAGO_IND_DES = 'No Disfrute y No Pago Individual';\n    INTERRUPCION_MAS_DES = 'Interrupci\\u00F3n Masiva';\n    INTERRUPCION_IND_DES = 'Interrupci\\u00F3n Individual';\n    INTERRUPCION_TOTAL_DES = 'Interrupci\\u00F3n Total';\n    PERDER_DERECHO_VACA_DES = 'Perder Derecho de Vacaciones';\n    POSTERGAR_VACA_DES = 'Postergar Vacaciones';\n\n\n    ACCION_VACACION =\n        [\n            { codigo: this.PROGRAMACION_MASIVA_CEDULA, nombre: this.PROGRAMACION_MASIVA_CEDULA_DES },\n            { codigo: this.PROGRAMACION_MASIVA_FORMULA, nombre: this.PROGRAMACION_MASIVA_FORMULA_DES },\n            { codigo: this.PROGRAMACION_INDIVIDUAL, nombre: this.PROGRAMACION_INDIVIDUAL_DES },\n            { codigo: this.NO_DISFRUTE_Y_NO_PAGO_MAS, nombre: this.NO_DISFRUTE_Y_NO_PAGO_MAS_DES },\n            { codigo: this.NO_DISFRUTE_Y_NO_PAGO_IND, nombre: this.NO_DISFRUTE_Y_NO_PAGO_IND_DES },\n            { codigo: this.INTERRUPCION_MAS, nombre: this.INTERRUPCION_MAS_DES },\n            { codigo: this.INTERRUPCION_IND, nombre: this.INTERRUPCION_IND_DES },\n            { codigo: this.PERDER_DERECHO_VACA, nombre: this.PERDER_DERECHO_VACA_DES },\n            { codigo: this.POSTERGAR_VACA, nombre: this.POSTERGAR_VACA_DES },\n            { codigo: this.INTERRUPCION_TOTAL, nombre: this.INTERRUPCION_TOTAL_DES },\n        ]\n\n    DEROGAR = 'D';\n    CORREGIR = 'C';\n    AMBOS = 'A';\n    NOGENERA = 'X';\n\n    DEROGARDESC = 'Permite Derogar un Acto';\n    CORREGIRDESC = 'Permite Corregir un Acto';\n    AMBOSDESC = 'Corregir/Derogar un Acto';\n    NOGENERADESC = 'No Genera Acto Administrativo';\n\n    POSTLEGALIZA =\n        [\n            { codigo: this.DEROGAR, nombre: this.DEROGARDESC },\n            { codigo: this.CORREGIR, nombre: this.CORREGIRDESC },\n            { codigo: this.AMBOS, nombre: this.AMBOSDESC },\n            { codigo: this.NOAPLICA, nombre: this.NOAPLICADESC },\n            { codigo: this.NOGENERA, nombre: this.NOGENERADESC }\n        ]\n\n    POSTLEGALIZA_MASIVO =\n        [\n            { codigo: this.NOAPLICA, nombre: this.NOAPLICADESC },\n            { codigo: this.NOGENERA, nombre: this.NOGENERADESC },\n        ]\n\n    RETIRO_DES = 'Retiro';\n    COMISION_DES = 'Comisi' + Constantes.O_TIDLE_MIN + 'n';\n    LICENCIA_DES = 'Licencia';\n\n    TIPO_FORMATO_TER_CONTRATO =\n        [\n            { codigo: this.PARAMETRO_ACTO_RETIRO_EMPLEADO, nombre: this.RETIRO_DES },\n            { codigo: this.PARAMETRO_ACTO_LICENCIA_COMISIONES, nombre: this.COMISION_DES },\n            { codigo: this.PARAMETRO_ACTO_LICENCIA_COMISIONES, nombre: this.LICENCIA_DES }\n        ]\n\n    TIPO_FORMATO_LICENCIA_AUSENCIA =\n        [\n            { codigo: this.PARAMETRO_ACTO_LICENCIA_COMISIONES, nombre: this.LICENCIA_DES }\n        ]\n\n    TIPO_FORMATO_RETIRO_TERMINACION_CONTRATO =\n        [\n            { codigo: this.PARAMETRO_ACTO_RETIRO_EMPLEADO, nombre: this.RETIRO_DES }\n        ]\n\n    LIBERAR_PUESTO_LEGALIZAR_DES = 'Liberar al Legalizar';\n    LIBERAR_PUESTO_COMPENSACIONES_DES = 'Liberar en Modulo de Compensaaciones';\n    BLOQUEAR_PUESTO = 'C';\n    BLOQUEAR_PUESTO_DES = 'Bloquear Puesto';\n\n    TIPO_FORMATO_TERMINACION_CONTRATO_DETERMINADO =\n        [\n            { codigo: this.SI, nombre: this.LIBERAR_PUESTO_LEGALIZAR_DES },\n            { codigo: this.NO, nombre: this.LIBERAR_PUESTO_COMPENSACIONES_DES },\n            { codigo: this.BLOQUEAR_PUESTO, nombre: this.BLOQUEAR_PUESTO_DES }\n        ]\n\n    LIBERAR_PUESTO_DES = 'Liberar Puesto Trabajo';\n    NO_LIBERAR_PUESTO_DES = 'No Liberar Puesto Trabajo';\n\n    TIPO_FORMATO_AUSENTISMO_DETERMINADO =\n        [\n            { codigo: this.SI, nombre: this.LIBERAR_PUESTO_DES },\n            { codigo: this.NO, nombre: this.NO_LIBERAR_PUESTO_DES }\n        ]\n\n    ELIMININAR_PUESTO_TRABAJO = 'EP';\n    ELIMININAR_PUESTO_TRABAJO_DES = 'Eliminar Puesto de Trabajo';\n    RECLASIFICACION_PUESTO_TRABAJO = 'RP';\n    RECLASIFICACION_PUESTO_TRABAJO_DES = 'Reclasificar Puesto de Trabajo';\n    CREAR_PUESTO_TRABAJO = 'CP';\n    CREAR_PUESTO_TRABAJO_DES = 'Crear Puesto de Trabajo';\n    TRALADO_PUESTO_DE_TRABAJO = 'TP';\n    TRALADO_PUESTO_DE_TRABAJO_DES = 'Traslado Puesto de Trabajo';\n    LIBERAR_PUESTO_TRABAJO = 'LA';\n    LIBERAR_PUESTO_TRABAJO_DES = 'Liberar Puesto';\n\n    ACCION_MOV_PLANTA =\n        [\n            { codigo: this.ELIMININAR_PUESTO_TRABAJO, nombre: this.ELIMININAR_PUESTO_TRABAJO_DES },\n            { codigo: this.RECLASIFICACION_PUESTO_TRABAJO, nombre: this.RECLASIFICACION_PUESTO_TRABAJO_DES },\n            { codigo: this.CREAR_PUESTO_TRABAJO, nombre: this.CREAR_PUESTO_TRABAJO_DES },\n            { codigo: this.TRALADO_PUESTO_DE_TRABAJO, nombre: this.TRALADO_PUESTO_DE_TRABAJO_DES },\n            { codigo: this.LIBERAR_PUESTO_TRABAJO, nombre: this.LIBERAR_PUESTO_TRABAJO_DES }\n        ]\n\n    INFORMACION_BASE_PROCESO = 'Informaci\\u00F3n Base del Proceso';\n    AFECTA_PROCESO = 'Afecta Proceso';\n\n\n    DOC_TRANSICION =\n        [\n            { codigo: this.NO, nombre: this.INFORMACION_BASE_PROCESO },\n            { codigo: this.SI, nombre: this.AFECTA_PROCESO }\n        ]\n\n    LIQUIDACION_CONTRATO = 'RE';\n    LIQUIDACION_CONTRATO_DES = 'Liquidaci\\u00F3n de Contrato';\n    LIQUIDACION_DEFINITIVO = 'RD';\n    LIQUIDACION_DEFINITIVO_DES = 'Sin liquidaci\\u00F3n - definitivo';\n\n    ACCION_TERMINACION_CONTRATO =\n        [\n            { codigo: this.LIQUIDACION_CONTRATO, nombre: this.LIQUIDACION_CONTRATO_DES },\n            { codigo: this.LIQUIDACION_DEFINITIVO, nombre: this.LIQUIDACION_DEFINITIVO_DES },\n        ]\n\n    NO_APLICA_DETALLE_DES = 'No Aplica';\n    NO_APLICA_DETALLE = Constantes.PUNTO;\n    GRUPO_PERSONAS_DES = 'Grupo de Personas';\n    GRUPO_PERSONAS = 'GP';\n    ASIGNACION_BASICA_MASIVA_DES = 'Asignaci' + Constantes.O_TIDLE_MIN + 'n B' + Constantes.A_TILDE_MIN + 'sica Masiva';\n    ASIGNACION_BASICA_MASIVA = 'AM';\n    ASIGNACION_BASICA_PERSONA_DES = 'Asignaci' + Constantes.O_TIDLE_MIN + 'n B' + Constantes.A_TILDE_MIN + 'sica Por persona';\n    ASIGNACION_BASICA_PERSONA = 'AP';\n    ASIGNACION_EMPLEADO_DES = 'Asignaci' + Constantes.O_TIDLE_MIN + 'n Empleado';\n    ASIGNACION_EMPLEADO = 'AE';\n    ENTIDAD_PENSIONADO_COBRAR = 'PC';\n    ENTIDAD_PENSIONADO_COBRAR_DES = 'Entidad Pensionado por Cobrar';\n    ENTIDAD_PENSIONADO_PAGAR = 'PP';\n    ENTIDAD_PENSIONADO_PAGAR_DES = 'Entidad Pensionado por Pagar';\n    PRORROGA_MASIVA = 'PM';\n    PRORROGA_MASIVA_DES = 'Prorroga Masiva';\n\n    LIQUIDACIONPRESTACIONAL = 'LP';\n    LIQUIDACIONPRESTACIONAL_DESC = 'Liquidaci' + Constantes.O_TIDLE_MIN + 'n Prestaciones';\n\n\n    ACCION_LICENCIA =\n        [\n            { codigo: this.NO_APLICA_DETALLE, nombre: this.NO_APLICA_DETALLE_DES },\n            { codigo: this.GRUPO_PERSONAS, nombre: this.GRUPO_PERSONAS_DES },\n            { codigo: this.ASIGNACION_BASICA_MASIVA, nombre: this.ASIGNACION_BASICA_MASIVA_DES },\n            { codigo: this.ASIGNACION_BASICA_PERSONA, nombre: this.ASIGNACION_BASICA_PERSONA_DES },\n            { codigo: this.ASIGNACION_EMPLEADO, nombre: this.ASIGNACION_EMPLEADO_DES },\n            { codigo: this.ENTIDAD_PENSIONADO_COBRAR, nombre: this.ENTIDAD_PENSIONADO_COBRAR_DES },\n            { codigo: this.ENTIDAD_PENSIONADO_PAGAR, nombre: this.ENTIDAD_PENSIONADO_PAGAR_DES },\n            { codigo: this.PRORROGA_MASIVA, nombre: this.PRORROGA_MASIVA_DES },\n            { codigo: this.LIQUIDACIONPRESTACIONAL, nombre: this.LIQUIDACIONPRESTACIONAL_DESC },\n        ]\n\n    FAAT_REQUERIDA = 'FAAT_REQUERIDA';\n    CAAT_TEMPORAL = 'CAAT_TEMPORAL';\n    CAAT_AREACOMITE = 'CAAT_AREACOMITE';\n    CAAT_PROPOSITO = 'CAAT_PROPOSITO';\n    CAAT_PAPEL = 'CAAT_PAPEL';\n    CAAT_FRECUENCIA = 'CAAT_FRECUENCIA';\n\n    CAAT_ASIGNATURA = 'CAAT_ASIGNATURA';\n    CAAT_SEMESTRE = 'CAAT_SEMESTRE';\n    CAAT_GRUPOASIGNATURA = 'CAAT_GRUPOASIGNATURA';\n    NAAT_INTENSIDAD = 'NAAT_INTENSIDAD';\n\n\n    CAMPOS_PERFIL_TABLAS =\n        [\n            { codigo: this.FAAT_REQUERIDA, nombre: this.FAAT_REQUERIDA },\n            { codigo: this.CAAT_TEMPORAL, nombre: this.CAAT_TEMPORAL },\n            { codigo: this.CAAT_AREACOMITE, nombre: this.CAAT_AREACOMITE },\n            { codigo: this.CAAT_PROPOSITO, nombre: this.CAAT_PROPOSITO },\n            { codigo: this.CAAT_PAPEL, nombre: this.CAAT_PAPEL },\n            { codigo: this.CAAT_FRECUENCIA, nombre: this.CAAT_FRECUENCIA },\n            { codigo: this.CAAT_ASIGNATURA, nombre: this.CAAT_ASIGNATURA },\n            { codigo: this.CAAT_SEMESTRE, nombre: this.CAAT_SEMESTRE },\n            { codigo: this.CAAT_GRUPOASIGNATURA, nombre: this.CAAT_GRUPOASIGNATURA },\n            { codigo: this.NAAT_INTENSIDAD, nombre: this.NAAT_INTENSIDAD }\n        ]\n\n    LICENCIA_COMISION = Constantes.PUNTO;\n    LICENCIA_COMISION_DES = 'Licencia/Comision';\n    PRORROGA = 'PR';\n    PRORROGA_DES = 'Prorroga';\n    INTERRUPCION_TERMINACION = 'IN';\n    INTERRUPCION_TERMINACION_DES = 'Interrupci' + Constantes.O_TIDLE_MIN + 'n/Terminaci' + Constantes.O_TIDLE_MIN + 'n';\n    NO_APLICA = 'NO';\n    NO_APLICA_DES = 'No Aplica';\n\n    ACCION_ACTO_AUSENCIA =\n        [\n            { codigo: this.LICENCIA_COMISION, nombre: this.LICENCIA_COMISION_DES },\n            { codigo: this.PRORROGA, nombre: this.PRORROGA_DES },\n            { codigo: this.INTERRUPCION_TERMINACION, nombre: this.INTERRUPCION_TERMINACION_DES },\n            { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DES }\n        ]\n\n    NODESC = 'No';\n    SIDESC = 'Si';\n    ENCUESTADESC = 'Encuesta';\n\n    SINO =\n        [\n            { codigo: this.SI, nombre: this.SIDESC },\n            { codigo: this.NO, nombre: this.NODESC }\n        ]\n\n    SINOENCUESTA =\n        [\n            { codigo: this.SI, nombre: this.SIDESC },\n            { codigo: this.NO, nombre: this.NODESC },\n            { codigo: this.ENCUESTA, nombre: this.ENCUESTADESC }\n        ]\n\n    NOENCUESTA =\n        [\n            { codigo: this.NO, nombre: this.NODESC },\n            { codigo: this.ENCUESTA, nombre: this.ENCUESTADESC }\n        ]\n\n    AFECTACONTRATO = Constantes.CONSTANTE_NO;\n    AFECTAHOJA = Constantes.CONSTANTE_SI;\n\n    AFECTACONTRATODESC = 'Afecta un Contrato';\n    AFECTAHOJADESC = 'Afecta una Hoja de Vida';\n\n    APLICAEMPLEADO =\n        [\n            { codigo: this.AFECTACONTRATO, nombre: this.AFECTACONTRATODESC },\n            { codigo: this.AFECTAHOJA, nombre: this.AFECTAHOJADESC }\n        ]\n\n    AFECTARETIRADODESC = 'Afectar Retirado';\n    AFECTAACTIVODESC = 'Afecta Activo';\n\n    APLICAACTIVORETIRADO =\n        [\n            { codigo: Constantes.CONSTANTE_R, nombre: this.AFECTARETIRADODESC },\n            { codigo: Constantes.CONSTANTE_SI, nombre: this.AFECTAACTIVODESC },\n        ]\n\n\n    NOAFECTASUELDO = Constantes.CONSTANTE_NO;\n    AFECTASUELDO = Constantes.CONSTANTE_SI;\n    AFECTAMESADA = 'M';\n\n    AFECTASUELDODESC = 'Afecta mesada/sueldo nomina';\n    AFECTAMESADADESC = 'Afecta mesada cuota parte';\n    NOAFECTASUELDODESC = 'No afecta';\n\n    AFECTAESPECIAL =\n        [\n            { codigo: this.AFECTASUELDO, nombre: this.AFECTASUELDODESC },\n            { codigo: this.AFECTAMESADA, nombre: this.AFECTAMESADADESC },\n            { codigo: this.NOAFECTASUELDO, nombre: this.NOAFECTASUELDODESC },\n        ]\n\n    CTRLING_FORMATOUNIDAD = 'U';\n    CTRLING_FORMATO = 'F';\n    CTRLING_FORMATOFECHA = 'T';\n\n    DESC_CTRLING_FORMATOUNIDAD = 'En el mismo formato en elaboracion y unidad organizacion';\n    DESC_CTRLING_FORMATO = 'En el mismo formato en elaboracion';\n    DESC_CTRLING_FORMATOFECHA = 'En el mismo formato en elaboracion y Cruce de fechas';\n\n    CONTROLELABORAR =\n        [\n            { codigo: this.CTRLING_FORMATOUNIDAD, nombre: this.DESC_CTRLING_FORMATOUNIDAD },\n            { codigo: this.CTRLING_FORMATO, nombre: this.DESC_CTRLING_FORMATO },\n            { codigo: this.CTRLING_FORMATOFECHA, nombre: this.DESC_CTRLING_FORMATOFECHA },\n        ]\n\n\n    PERIODOLABORAL =\n        [\n            { codigo: this.NO, nombre: this.NODESC },\n            { codigo: this.SI, nombre: this.SIDESC },\n            { codigo: this.NOAPLICA, nombre: this.NOAPLICADESC },\n        ]\n\n    REQUIERELEGALIZACION = Constantes.CONSTANTE_NO;\n    NOREQUIERE = Constantes.CONSTANTE_SI;\n    NOGENERAREGISTRO = 'X';\n\n    REQUIERELEGALIZACIONDESC = 'Requiere Legalizaci\\u00F3n';\n    NOREQUIEREDESC = 'No Requiere Legalizaci\\u00F3n';\n    NOGENERAREGISTRODESC = 'No Genera Registro';\n\n    PROCESO =\n        [\n            { codigo: this.REQUIERELEGALIZACION, nombre: this.REQUIERELEGALIZACIONDESC },\n            { codigo: this.NOREQUIERE, nombre: this.NOREQUIEREDESC },\n            { codigo: this.NOGENERAREGISTRO, nombre: this.NOGENERAREGISTRODESC },\n        ]\n\n    LIQUIDADO = 'L';\n    USADO = 'U';\n    PROGRAMADO = 'P';\n    INCONSISTENCIA = 'A';\n    INTERRUMPIDO = 'I';\n    APLAZADO = 'N';\n    ACTUALIZADO = 'B';\n    CADUCADO = 'C';\n\n    LIQUIDADO_DESC = 'Liquidado';\n    USADO_DESC = 'Usado';\n    PROGRAMADO_DESC = 'Programado';\n    INCONSISTENCIA_DESC = 'Inconsistencia';\n    INTERRUMPIDO_DESC = 'Interrumpido';\n    APLAZADO_DESC = 'Aplazado';\n    ACTUALIZADO_DESC = 'Actualizado';\n    CADUCADO_DESC = 'Caducado';\n\n    ESTADOACTO =\n        [\n            { codigo: this.LIQUIDADO, nombre: this.LIQUIDADO_DESC },\n            { codigo: this.USADO, nombre: this.USADO_DESC },\n            { codigo: this.PROGRAMADO, nombre: this.PROGRAMADO_DESC },\n            { codigo: this.INCONSISTENCIA, nombre: this.INCONSISTENCIA_DESC },\n            { codigo: this.INTERRUMPIDO, nombre: this.INTERRUMPIDO_DESC },\n            { codigo: this.APLAZADO, nombre: this.APLAZADO_DESC },\n            { codigo: this.ACTUALIZADO, nombre: this.ACTUALIZADO_DESC },\n            { codigo: this.CADUCADO, nombre: this.CADUCADO_DESC },\n        ]\n\n\n    //CONSTANTES DE LOS PARAMETROS FORMATO ACTOS\n\n    OFICIO = 'OFICIO';\n    FECHA_OFICIO = 'FECHA_OFICIO';\n    ACTA = 'ACTA';\n    FECHA_SESION = 'FECHA_SESION';\n    COMUNICADO = 'COMUNICADO';\n    DURACION = 'DURACION';\n    FACTOR = 'FACTOR';\n    FECHA_CAMBIO = 'FECHA_CAMBIO';\n    FECHA_FINAL = 'FECHA_FINAL';\n    FECHA_INICIAL = 'FECHA_INICIAL';\n    FECHA_ENGANCHE = 'FECHA_ENGANCHE';\n    FECHA_APLICA = 'FECHA_APLICA';\n    INTENSIDAD = 'INTENSIDAD';\n    ADICIONAL = 'ADICIONAL';\n    TIPO_DE_CAMBIO = 'TIPO DE CAMBIO';\n    TEXTO_ADICIONAL = 'TEXTO_ADICIONAL';\n    ROL = 'ROL';\n    SUSTITUCION = 'SUSTITUCI\\u00D3N';\n    TIPO_DOC = 'TIPO_DOC';\n    NUMERO_DOC = 'NUMERO_DOC';\n    FECHA_DOC = 'FECHA_DOC';\n    SUCURSAL = 'SUCURSAL';\n    UNIDAD_ORIGEN = 'UNIDAD_ORIGEN';\n    CEDULA_FIRMA = 'CEDULA_FIRMA';\n    FECHA_CONGELA = 'FECHA_CONGELA';\n    SOPORTE = 'SOPORTE';\n    EMPRESA_ANT = 'EMPRESA_ANT';\n    FECHA_SALIDA = 'FECHA_SALIDA';\n    FECHA_TERMINA = 'FECHA_TERMINA';\n    FECHA_REGRESO = 'FECHA_REGRESO';\n    FECHA_REAL = 'FECHA_REAL';\n    FECHA_HASTA = 'FECHA_HASTA';\n    NRO_PERIODOS = 'NRO_PERIODOS';\n    DINERO = 'DINERO';\n    DISFRUTE = 'DISFRUTE';\n    DURACION_ADI = 'DURACIONADI';\n    DISFRUTE_ADI = 'DISFRUTEADI';\n    DINERO_ADI = 'DINEROADI';\n    ENTIDAD = 'ENTIDAD';\n    INICIA_PERIODO = 'INICIA_PERIODO';\n    FIN_PERIODO = 'FIN_PERIODO';\n    ANO_SERVICIO = 'ANO_SERVICIO';\n    NRO_ANO_SERVICIO = 'NRO_ANO_SERVICIO';\n    FECHA_VIGENCIA = 'FECHA_VIGENCIA';\n    UNIDAD = 'UNIDAD';\n    CARGO = 'CARGO';\n    SUELDO = 'SUELDO';\n    TOTAL = 'TOTAL';\n    PERIODO = 'PERIODO';\n    TURNO = 'TURNO';\n    CLASIFICACION = 'CLASIFICACION';\n    CLASIFICACIONTITULAR = 'CLASIFICACIONTITULAR';\n    VINCULACION = 'VINCULACION';\n    COSTEO = 'COSTEO';\n    LINEA = 'LINEA';\n    UBICACION = 'UBICACION';\n    FECHAPAGO = 'FECHA_PAGO';\n    FORMA_PAGO = 'FORMA_PAGO';\n    FECHACOMITE = 'FECHA_COMITE';\n    DINERO_ITEM = 'DINEROITEM';\n    DISFRUTE_ITEM = 'DISFRUTEITEM';\n    FACTOR_RETIRO = 'FACTOR';\n    FECHA_INTERRUPCION = 'FECHA_INTERRUPCION';\n    MOTIVO = 'MOTIVO';\n    FECHA1 = 'FECHA1';\n    FECHA2 = 'FECHA2';\n    FECHA3 = 'FECHA3';\n    CIUDAD = 'CIUDAD';\n    OBJETO = 'OBJETO';\n    INSTITUCION = 'INSTITUCION';\n    HORARIO = 'HORARIO';\n    NUM_HORAS = 'NUM_HORAS';\n    MODALIDAD_ACADEMICA = 'MODALIDAD_ACADEMICA';\n    CONVENIO = 'CONVENIO';\n    NOMBRE_DEL_PROGRAMA = 'NOMBRE_DEL_PROGRAMA';\n    COMPROMISO = 'COMPROMISO';\n    FECHA_COMITE = 'FECHA_COMITE';\n    FECHA_PAGO = 'FECHA_PAGO';\n    FECHA_RETIRO = 'FECHA_RETIRO';\n    CAUSADO = 'CAUSADO';\n    CONTRATO = 'CONTRATO';\n    TERCERO = 'TERCERO';\n    PROYECTO = 'PROYECTO';\n    VALOR = 'VALOR';\n    ITEM_FECHA_INICIAL = 'ITEMFECHA_INICIAL';\n    ITEM_MOTIVO = 'ITEMMOTIVO';\n    ITEM_ROL = 'ITEMROL';\n    ITEM_PROYECTO = 'ITEMPROYECTO';\n    CANTIDAD = 'CANTIDAD';\n    TABLA1 = 'TABLA1';\n    TABLA2 = 'TABLA2';\n    TABLA3 = 'TABLA3';\n    TABLA_MATERIA = 'TABLA_MATERIA';\n    VALOR1 = 'VALOR1';\n    VALOR2 = 'VALOR2';\n    VALOR3 = 'VALOR3';\n    VALOR4 = 'VALOR4';\n    VALOR5 = 'VALOR5';\n    VALOR6 = 'VALOR6';\n    VALOR7 = 'VALOR7';\n    VALOR8 = 'VALOR8';\n    VALOR9 = 'VALOR9';\n    VALOR10 = 'VALOR10';\n    LISTA_ADICIONAL_1 = 'LISTA_ADICIONAL_1';\n    LISTA_ADICIONAL_2 = 'LISTA_ADICIONAL_2';\n    LISTA_ADICIONAL_3 = 'LISTA_ADICIONAL_3';\n    FECHA_FINAL_ITEM = 'FECHA_FINAL_ITEM';\n    FECHA_DOC_ITEM = 'FECHA_DOC_ITEM';\n    NUMERO_DOC_ITEM = 'NUMERO_DOC_ITEM';\n\n    SEMESTRE = 'SEMESTRE';\n    PRESUPUESTAL = 'PRESUPUESTAL';\n    CONTRATO_CAUSANTE = 'CONTRATO_CAUSANTE';\n    ELIMINAR_PUESTO = 'ELIMINAR_PUESTO';\n\n    TIEMPO_TIPO_HORARIO = 'TIEMPO_TIPO_HORARIO';\n    TIEMPO_TIPO_LIQUIDA = 'TIEMPO_TIPO_LIQUIDA';\n    TIEMPO_GRUPO = 'TIEMPO_GRUPO';\n    TIEMPO_TIPO_SITIO = 'TIEMPO_TIPO_SITIO';\n    TIEMPO_SITIO = 'TIEMPO_SITIO';\n    ALTERNO = 'ALTERNO';\n\n\n    OBSERVACION = 'OBSERVACION';\n    NEGOCIACION = 'NEGOCIACION';\n    TIPO_PLANTA = 'TIPO_PLANTA';\n    CLASE_PUESTO = 'CLASE_PUESTO';\n    PUESTO_RESPONDE = 'RESPONDE';\n    FILTRO = 'FILTRO';\n    CADENA1 = 'CADENA1';\n    CADENA2 = 'CADENA2';\n    CADENA3 = 'CADENA3';\n    CODIGO_DIAGNOSTICO = 'CODIGO_DIAGNOSTICO';\n    HORA_SALIDA = 'HORA_SALIDA';\n    HORA_TERMINA = 'HORA_TERMINA';\n\n    //CONSTANTES DE LOS PARAMETROS FORMATO RETIRO\n\n    SELECCIONCAMPOS_AUSENTISMO =\n        [\n            { codigo: this.TIPO_DOC },\n            { codigo: this.NUMERO_DOC },\n            { codigo: this.FECHA_DOC },\n            { codigo: this.CEDULA_FIRMA },\n            { codigo: this.UNIDAD_ORIGEN },\n            { codigo: this.SUCURSAL },\n            { codigo: this.FECHA_SALIDA },\n            { codigo: this.FECHA_TERMINA },\n            { codigo: this.FECHA_REGRESO },\n            { codigo: this.NRO_PERIODOS },\n            { codigo: this.DURACION },\n            { codigo: this.DURACION_ADI },\n            { codigo: this.FACTOR_RETIRO },\n            { codigo: this.FECHA_INTERRUPCION },\n            { codigo: this.MOTIVO },\n            { codigo: this.DINERO_ADI },\n            { codigo: this.ENTIDAD },\n            { codigo: this.FECHA1 },\n            { codigo: this.FECHA2 },\n            { codigo: this.FECHA3 },\n            { codigo: this.OFICIO },\n            { codigo: this.FECHA_OFICIO },\n            { codigo: this.ACTA },\n            { codigo: this.FECHA_SESION },\n            { codigo: this.COMUNICADO },\n            { codigo: this.FECHA_VIGENCIA },\n            { codigo: this.UNIDAD },\n            { codigo: this.CIUDAD },\n            { codigo: this.OBJETO },\n            { codigo: this.INSTITUCION },\n            { codigo: this.HORARIO },\n            { codigo: this.NUM_HORAS },\n            { codigo: this.MODALIDAD_ACADEMICA },\n            { codigo: this.CONVENIO },\n            { codigo: this.ROL },\n            { codigo: this.NOMBRE_DEL_PROGRAMA },\n            { codigo: this.COMPROMISO },\n            { codigo: this.FECHA_COMITE },\n            { codigo: this.FECHA_PAGO },\n            { codigo: this.FORMA_PAGO },\n            { codigo: this.SOPORTE },\n            { codigo: this.CODIGO_DIAGNOSTICO },\n            { codigo: this.HORA_SALIDA },\n            { codigo: this.HORA_TERMINA }\n        ]\n\n    SELECCIONCAMPOS_TERMINACION_CONTRATO =\n        [\n            { codigo: this.TIPO_DOC },\n            { codigo: this.NUMERO_DOC },\n            { codigo: this.FECHA_DOC },\n            { codigo: this.CEDULA_FIRMA },\n            { codigo: this.UNIDAD_ORIGEN },\n            { codigo: this.SUCURSAL },\n            { codigo: this.FECHA_TERMINA },\n            { codigo: this.NRO_PERIODOS },\n            { codigo: this.FACTOR },\n            { codigo: this.MOTIVO },\n            { codigo: this.DINERO_ADI },\n            { codigo: this.FECHA1 },\n            { codigo: this.FECHA2 },\n            { codigo: this.FECHA3 },\n            { codigo: this.OFICIO },\n            { codigo: this.FECHA_OFICIO },\n            { codigo: this.FECHA_INTERRUPCION },\n            { codigo: this.ACTA },\n            { codigo: this.FECHA_SESION },\n            { codigo: this.COMUNICADO },\n            { codigo: this.FECHA_VIGENCIA },\n            { codigo: this.UNIDAD },\n            { codigo: this.CIUDAD },\n            { codigo: this.OBJETO },\n            { codigo: this.INSTITUCION },\n            { codigo: this.HORARIO },\n            { codigo: this.NUM_HORAS },\n            { codigo: this.MODALIDAD_ACADEMICA },\n            { codigo: this.CONVENIO },\n            { codigo: this.ROL },\n            { codigo: this.NOMBRE_DEL_PROGRAMA },\n            { codigo: this.COMPROMISO },\n            { codigo: this.FECHA_COMITE },\n            { codigo: this.FECHA_PAGO },\n            { codigo: this.FORMA_PAGO },\n            { codigo: this.SOPORTE },\n        ]\n\n    ESEDITABLE = Constantes.CONSTANTE_SI;\n    NOESEDITABLE = Constantes.CONSTANTE_NO;\n\n\n    SELECCIONACTOVACACIONES =\n        [\n            { codigo: this.TIPO_DOC },\n            { codigo: this.NUMERO_DOC },\n            { codigo: this.FECHA_DOC },\n            { codigo: this.CEDULA_FIRMA },\n            { codigo: this.UNIDAD_ORIGEN },\n            { codigo: this.SUCURSAL },\n            { codigo: this.FECHA_SALIDA },\n            { codigo: this.FECHA_TERMINA },\n            { codigo: this.FECHA_REGRESO },\n            { codigo: this.FECHA_HASTA },\n            { codigo: this.FECHA_REAL },\n            { codigo: this.NRO_PERIODOS },\n            { codigo: this.DURACION },\n            { codigo: this.DISFRUTE },\n            { codigo: this.DINERO },\n            { codigo: this.DURACION_ADI },\n            { codigo: this.DISFRUTE_ADI },\n            { codigo: this.DINERO_ADI },\n            { codigo: this.INICIA_PERIODO },\n            { codigo: this.FIN_PERIODO },\n            { codigo: this.ANO_SERVICIO },\n            { codigo: this.OFICIO },\n            { codigo: this.FECHA_OFICIO },\n            { codigo: this.ACTA },\n            { codigo: this.FECHA_SESION },\n            { codigo: this.COMUNICADO },\n            { codigo: this.FECHA_VIGENCIA },\n            { codigo: this.UNIDAD },\n            { codigo: this.FECHACOMITE },\n            { codigo: this.FECHAPAGO },\n            { codigo: this.FORMA_PAGO },\n            { codigo: this.SOPORTE },\n            { codigo: this.DINERO_ITEM },\n            { codigo: this.DISFRUTE_ITEM },\n            { codigo: this.CIUDAD },\n        ]\n\n    SELECCIONCAMPOS_EMPLEADO =\n        [\n            { codigo: this.ACTA },\n            { codigo: this.ADICIONAL },\n            { codigo: this.CEDULA_FIRMA },\n            { codigo: this.COMUNICADO },\n            { codigo: this.DURACION },\n            { codigo: this.FACTOR },\n            { codigo: this.FECHA_CAMBIO },\n            { codigo: this.FECHA_CONGELA },\n            { codigo: this.FECHA_DOC },\n            { codigo: this.FECHA_ENGANCHE },\n            { codigo: this.FECHA_FINAL },\n            { codigo: this.FECHA_OFICIO },\n            { codigo: this.FECHA_SESION },\n            { codigo: this.INSTITUCION },\n            { codigo: this.INTENSIDAD },\n            { codigo: this.LISTA_ADICIONAL_1 },\n            { codigo: this.LISTA_ADICIONAL_2 },\n            { codigo: this.LISTA_ADICIONAL_3 },\n            { codigo: this.NUMERO_DOC },\n            { codigo: this.OFICIO },\n            { codigo: this.PRESUPUESTAL },\n            { codigo: this.ROL },\n            { codigo: this.SOPORTE },\n            { codigo: this.SUCURSAL },\n            { codigo: this.SUSTITUCION },\n            { codigo: this.TABLA1 },\n            { codigo: this.TABLA2 },\n            { codigo: this.TABLA3 },\n            { codigo: this.TEXTO_ADICIONAL },\n            { codigo: this.TIPO_DE_CAMBIO },\n            { codigo: this.TIPO_DOC },\n            { codigo: this.UNIDAD_ORIGEN },\n            { codigo: this.VALOR1 },\n            { codigo: this.VALOR10 },\n            { codigo: this.VALOR2 },\n            { codigo: this.VALOR3 },\n            { codigo: this.VALOR4 },\n            { codigo: this.VALOR5 },\n            { codigo: this.VALOR6 },\n            { codigo: this.VALOR7 },\n            { codigo: this.VALOR8 },\n            { codigo: this.VALOR9 },\n            { codigo: this.FECHA_FINAL_ITEM },\n        ]\n\n    SELECCION_CAMPOS_ADI_INGRESO_EMPLEADO =\n        [\n            { codigo: this.TIEMPO_TIPO_HORARIO },\n            { codigo: this.TIEMPO_TIPO_LIQUIDA },\n            { codigo: this.TIEMPO_GRUPO },\n            { codigo: this.TIEMPO_TIPO_SITIO },\n            { codigo: this.TIEMPO_SITIO },\n            { codigo: this.ALTERNO },\n            { codigo: this.PROYECTO },\n            { codigo: this.CONTRATO_CAUSANTE },\n            { codigo: this.ELIMINAR_PUESTO },\n        ]\n\n    SELECCION_CAMPOS_ADICIONALES =\n        [\n            { codigo: this.SEMESTRE },\n            { codigo: this.TABLA_MATERIA },\n        ]\n\n    SELECCIONCAMPOS_ESPECIAL =\n        [\n            { codigo: this.TIPO_DOC },\n            { codigo: this.NUMERO_DOC },\n            { codigo: this.FECHA_DOC },\n            { codigo: this.CEDULA_FIRMA },\n            { codigo: this.SUCURSAL },\n            { codigo: this.UNIDAD_ORIGEN },\n            { codigo: this.OFICIO },\n            { codigo: this.FECHA_OFICIO },\n            { codigo: this.ACTA },\n            { codigo: this.FECHA_SESION },\n            { codigo: this.COMUNICADO },\n            { codigo: this.FECHA_INICIAL },\n            { codigo: this.FECHA_FINAL },\n            { codigo: this.CAUSADO },\n            { codigo: this.MOTIVO },\n            { codigo: this.PROYECTO },\n            { codigo: this.TERCERO },\n            { codigo: this.SOPORTE },\n            { codigo: this.TIPO_DE_CAMBIO },\n            { codigo: this.VALOR },\n            { codigo: this.ROL },\n            { codigo: this.ITEM_FECHA_INICIAL },\n            { codigo: this.ITEM_MOTIVO },\n            { codigo: this.ITEM_ROL },\n            { codigo: this.ITEM_PROYECTO },\n            { codigo: this.CONTRATO },\n            { codigo: this.FILTRO },\n            { codigo: this.SUELDO },\n            { codigo: this.CADENA1 },\n            { codigo: this.CADENA2 },\n            { codigo: this.CADENA3 },\n            { codigo: this.LISTA_ADICIONAL_2 },\n            { codigo: this.LISTA_ADICIONAL_3 },\n            { codigo: this.ENTIDAD },\n        ]\n\n\n    SELECCION_CAMPOS_ADI_ESPECIAL =\n        [\n            { codigo: this.FECHA_APLICA }\n        ]\n\n    SELECCIONCAMPOS_MOV_PLANTA =\n        [\n            { codigo: this.TIPO_DOC },\n            { codigo: this.NUMERO_DOC },\n            { codigo: this.FECHA_DOC },\n            { codigo: this.CEDULA_FIRMA },\n            { codigo: this.SUCURSAL },\n            { codigo: this.UNIDAD_ORIGEN },\n            { codigo: this.OFICIO },\n            { codigo: this.FECHA_OFICIO },\n            { codigo: this.ACTA },\n            { codigo: this.FECHA_SESION },\n            { codigo: this.COMUNICADO },\n            { codigo: this.FECHA_CAMBIO },\n            { codigo: this.FECHA_FINAL },\n            { codigo: this.TEXTO_ADICIONAL },\n            { codigo: this.SOPORTE },\n            { codigo: this.TIPO_DE_CAMBIO },\n            { codigo: this.INTENSIDAD },\n            { codigo: this.CANTIDAD },\n            { codigo: this.OBSERVACION },\n        ]\n\n    SELECCIONCAMPOS_EMPLEADONOAPLICA =\n        [\n            { codigo: this.UNIDAD }\n        ]\n\n    NOVISUALIZAR = Constantes.CONSTANTE_NO;\n    VISUALIZAR = 'V';\n    INGRESARE = Constantes.CONSTANTE_SI;\n    INGRESOL = 'L';\n    CONSULTAR = 'C';\n    SOLICITUD_FINAL = 'F';\n\n    NOVISUALIZARDESC = 'No Visualizar';\n    VISUALIZARDESC = 'Visualizar';\n    INGRESAREDESC = 'Ingresar Elaboracion';\n    INGRESOLDESC = 'Ingreso Legalizacion';\n    CONSULTARDES = 'Consultar Actos';\n    SOLICITUD_FINAL_DES = 'Solicitud Final';\n\n    ENTRADA =\n        [\n            { codigo: this.CONSULTAR, nombre: this.CONSULTARDES },\n            { codigo: this.INGRESARE, nombre: this.INGRESAREDESC },\n            { codigo: this.INGRESOL, nombre: this.INGRESOLDESC },\n            { codigo: this.NOVISUALIZAR, nombre: this.NOVISUALIZARDESC },\n            { codigo: this.VISUALIZAR, nombre: this.VISUALIZARDESC },\n        ]\n\n    ENTRADA_BASICA_ESPECIAL =\n        [\n            { codigo: this.NOVISUALIZAR, nombre: this.NOVISUALIZARDESC },\n            { codigo: this.INGRESARE, nombre: this.INGRESAREDESC }\n        ]\n\n    PLANTA =\n        [\n            { codigo: this.CARGO },\n            { codigo: this.CLASIFICACION },\n            { codigo: this.CLASIFICACIONTITULAR },\n            { codigo: this.CLASE_PUESTO },\n            { codigo: this.COSTEO },\n            { codigo: this.LINEA },\n            { codigo: this.PERIODO },\n            { codigo: this.SUELDO },\n            { codigo: this.TOTAL },\n            { codigo: this.NEGOCIACION },\n            { codigo: this.PUESTO_RESPONDE },\n            { codigo: this.TURNO },\n            { codigo: this.UBICACION },\n            { codigo: this.UNIDAD },\n            { codigo: this.VINCULACION },\n        ]\n\n    INGRESARINFO = Constantes.CONSTANTE_SI;\n    INGRESARINFODESC = 'Ingresar Informaci\\u00F3n';\n    INGRESARINFODESC_ENCABEZADO = 'Ingresar Informaci\\u00F3n Encabezado';\n    INGRESARINFODESC_ITEM = 'Ingresar Informaci\\u00F3n Item';\n    INGRESARINFODESC_AMBOS = 'Ingresar Informaci\\u00F3n Encabezado/Item';\n\n    INGRESARINFO_AMBOS = 'A';\n    INGRESARINFO_ITEM = 'T';\n\n    ENTRADAPLANTA =\n        [\n            { codigo: this.NOVISUALIZAR, nombre: this.NOVISUALIZARDESC },\n            { codigo: this.VISUALIZAR, nombre: this.VISUALIZARDESC },\n            { codigo: this.INGRESARINFO, nombre: this.INGRESARINFODESC },\n        ]\n\n    ENTRADAPLANTA_MASIVO =\n        [\n            { codigo: this.NOVISUALIZAR, nombre: this.NOVISUALIZARDESC },\n            { codigo: this.VISUALIZAR, nombre: this.VISUALIZARDESC },\n            { codigo: this.INGRESARINFO, nombre: this.INGRESARINFODESC_ENCABEZADO },\n            { codigo: this.INGRESARINFO_ITEM, nombre: this.INGRESARINFODESC_ITEM },\n            { codigo: this.INGRESARINFO_AMBOS, nombre: this.INGRESARINFODESC_AMBOS },\n        ]\n\n\n    VARIABLE = 'V';\n    LIQUIDACION = 'L';\n    ASIGNACION = 'C';\n    VARIABLEFECHA = 'E';\n\n    VARIABLEDESC = 'Variable';\n    LIQUIDACIONDESC = 'Liquidaci\\u00F3n';\n    ASIGNACIODESC = 'Asignaci\\u00F3n de Puntaje';\n    VARIABLEFECHADESC = 'Variable Fecha';\n\n    AFECTALISTA =\n        [\n            { codigo: this.VARIABLE, nombre: this.VARIABLEDESC },\n            { codigo: this.LIQUIDACION, nombre: this.LIQUIDACIONDESC },\n            { codigo: this.NOAPLICA, nombre: this.NOAPLICADESC },\n            { codigo: this.ASIGNACION, nombre: this.ASIGNACIODESC },\n        ]\n\n    OPCION_CON_PUESTO = '1';\n    OPCION_SIN_PUESTO = '2';\n    OPCION_CON_PUESTO_DES = 'Deseo basarme en un puesto de trabajo con caracteristicas similares.';\n    OPCION_SIN_PUESTO_DES = 'Deseo incluir todos los datos sin un puesto de trabajo determinado';\n    PUESTO_TRABAJO_SELECCIONADO = 'SELECCIONADO';\n\n    //constantes utilizados en la tarea actos ingresos\n    ETAPA_MODIFICAR = 'MODIFICACION';\n    ETAPA_ELABORACION = 'ELABORACION';\n    ETAPA_ELABORACION_NOVEDAD = 'ELABORACION_NOVEDAD';\n    ETAPA_ELIMINACION = 'ELIMINACION';\n    ETAPA_LEGALIZACION = 'LEGALIZACION';\n\n    ACCION_ORIGINAL = 'ORIGINAL';\n    ACCION_CORRECCION = 'CORRECION';\n    ACCION_DEROGACION = 'DEROGACION';\n\n    PASO_ANTECESOR = 'antecesor';\n    PASO_PROGRAMACION = 'programacion';\n    PASO_CONTRATO = 'contrato';\n    PASO_CEDULA = 'cedula';\n    PASO_ADICIONAL = 'adicional';\n    PASO_ADICIONAL_LEGALIZAR = 'adicional_legalizar';\n    PASO_PUESTO_TRABAJO = 'puestotrabajo';\n    PASO_DATO_PUESTO = 'datopuesto';\n    PASO_BUSCAR_OTRO = 'buscarotro';\n    PASO_LEGALIZAR = 'pasolegalizar';\n    PASO_FINAL = 'final';\n    PASO_SOLICITUD_FINAL = 'solicitudfinal';\n    PASO_INICIAL = 'inicial';\n    PASO_ACCION_ESPECIAL = 'datosaccionespecial';\n\n    VALOR_LEGALIZACION = 'L';\n\n    TIPO_ACCION_NUEVO = 'NUEVO_ACTO';\n    TIPO_ACCION_MODIDIFICAR = 'MODIFICAR_ACTO';\n    TIPO_ACCION_ELIMINAR = 'ELIMINAR_ACTO';\n    TIPO_ACCION_LEGALIZAR = 'LEGALIZAR_ACTO';\n\n    DESDIRECTO = 'Directo';\n    DESENTIDADPAGO = 'Entidad Pago';\n    DESPERIODONOMINA = 'Periodo Nomina';\n\n    DIRECTO = 'C';\n    ENTIDADPAGO = 'E';\n    PERIODONOMINA = Constantes.CONSTANTE_NO;\n\n    FORMAPAGO =\n        [\n            { codigo: this.DIRECTO, nombre: this.DESDIRECTO },\n            { codigo: this.ENTIDADPAGO, nombre: this.DESENTIDADPAGO },\n            { codigo: this.PERIODONOMINA, nombre: this.DESPERIODONOMINA }\n        ]\n\n    CAMPOSSELECCIONACTOSESPECIAL_AM =\n        [\n            { codigo: 'meml_identifica', nombre:  \"N\\u00FAmero Contrato\"}\n        ]\n\n    ESTADO_LEGALIZACION = 6;\n    ESTADO_LEGALIZACION_DES = 'Legalizado';\n    ESTADO_DEROGADO = 4;\n    ESTADO_DEROGADO_DES = 'Derogado';\n    ESTADO_QUE_DEROGA = 5;\n    ESTADO_QUE_DEROGA_DES = 'Acto que Derogado';\n    ESTADO_ELABORACION = 1;\n    ESTADO_ELABORACION_DES = 'En Elaboracion';\n\n    MAPA_ESTADOS =\n        [\n            { codigo: this.ESTADO_LEGALIZACION, nombre: this.ESTADO_LEGALIZACION_DES },\n            { codigo: this.ESTADO_DEROGADO, nombre: this.ESTADO_DEROGADO_DES },\n            { codigo: this.ESTADO_QUE_DEROGA, nombre: this.ESTADO_QUE_DEROGA_DES },\n            { codigo: this.ESTADO_ELABORACION, nombre: this.ESTADO_ELABORACION_DES },\n        ]\n\n\n    /**\n     * pasos para derogar\n     */\n    PASO_INGRESO_DATOS = 'ingreso_datos';\n    PASO_VIZUALIZACION_DATOS = 'vizualizacion_datos';\n\n    ACTOS_ORIGINALES = 'O';\n    ACTOS_DEROGACION = 'D';\n    ACTOS_ORIGINALES_STRING = 'Acto Original';\n    ACTOS_DEROGACION_STRING = 'Acto Derogacion';\n\n\n    ORIGEN_ACTOS =\n        [\n            { codigo: this.ACTOS_ORIGINALES, nombre: this.ACTOS_ORIGINALES_STRING },\n            { codigo: this.ACTOS_DEROGACION, nombre: this.ACTOS_DEROGACION_STRING },\n        ]\n\n    PUESTO_TRABAJO = 'P';\n    ANTECESOR = 'A';\n    NO_INICIALIZAR_STRING = 'No Inicializar';\n    ANTECESOR_STRING = 'Antecesor';\n    PUESTO_TRABAJO_STRING = 'Puesto Trabajo';\n\n\n\n    DATOS_INICIALES_PLANTA =\n        [\n            { codigo: this.PUESTO_TRABAJO, nombre: this.PUESTO_TRABAJO_STRING },\n            { codigo: this.ANTECESOR, nombre: this.ANTECESOR_STRING },\n            { codigo: Constantes.CONSTANTE_NO, nombre: this.NO_INICIALIZAR_STRING }\n        ]\n\n    DATOS_INICIALES_SELECCION_CAMPO =\n        [\n            { codigo: this.ANTECESOR, nombre: this.ANTECESOR_STRING },\n            { codigo: Constantes.CONSTANTE_NO, nombre: this.NO_INICIALIZAR_STRING }\n        ]\n\n\n    TIPO_SERVICIO = 'TS';\n    VARIABLE_EMPLEADO = 'VE';\n    CONCEPTO_EMPLEADO = 'CE';\n    GRUPO_EMPLEADO = 'GE';\n    VARIABLE_FECHA = 'VF';\n    VARIABLE_EMPLEADO_FECHAS = 'EF';\n\n    TIPO_SERVICIO_DES = 'Tipo Servicio';\n    VARIABLE_EMPLEADO_DES = 'Variable Empleado';\n    CONCEPTO_EMPLEADO_DES = 'Concepto Empleado';\n    GRUPO_EMPLEADO_DES = 'Grupo Empleado';\n\n    TIPO_RENGLONES_PLANILLA =\n        [\n            { codigo: this.VARIABLE_EMPLEADO, nombre: this.VARIABLE_EMPLEADO_DES },\n            { codigo: this.CONCEPTO_EMPLEADO, nombre: this.CONCEPTO_EMPLEADO_DES },\n            { codigo: this.GRUPO_EMPLEADO, nombre: this.GRUPO_EMPLEADO_DES },\n            { codigo: this.TIPO_SERVICIO, nombre: this.TIPO_SERVICIO_DES },\n        ]\n\n    TIPO_SERVICIO_UNICO = 'TS_UNICO';\n    TIPO_SERVICIO_MULTIPLE = 'TS_MULTIPLE';\n    TIPO_SERVICIO_UNICO_DES = 'Tipo Servicio';\n\n    TIPO_RENGLONES_RESULTADOPLANILLA =\n        [\n            { codigo: this.VARIABLE_EMPLEADO, nombre: this.VARIABLE_EMPLEADO_DES },\n            { codigo: this.CONCEPTO_EMPLEADO, nombre: this.CONCEPTO_EMPLEADO_DES },\n            { codigo: this.GRUPO_EMPLEADO, nombre: this.GRUPO_EMPLEADO_DES },\n            { codigo: this.TIPO_SERVICIO_UNICO, nombre: this.TIPO_SERVICIO_UNICO_DES },\n            { codigo: this.TIPO_SERVICIO_MULTIPLE, nombre: this.TIPO_SERVICIO_UNICO_DES },\n        ]\n\n    ACTO_INGRESO = 'I';\n    ACTO_TRASLADO = 'T';\n    ACTO_CAMBIO_PUESTO = 'C';\n\n    TIPO_VARIABLE_FORMATO = 'VF';\n    TIPO_SERVICIO_FORMATO = 'TS';\n\n    CARACTER = 'A';\n    FECHA = 'F';\n    NUMERO = 'N';\n    COLUMNA = 'C';\n\n    CARACTER_DES = 'Caracter';\n    FECHA_DES = 'Fecha';\n    NUMERO_DES = 'Numero';\n    COLUMNA_DES = 'Columna';\n\n\n    LISTA_TIPO_DATO =\n        [\n            { codigo: this.CARACTER, nombre: this.CARACTER_DES },\n            { codigo: this.FECHA, nombre: this.FECHA_DES },\n            { codigo: this.NUMERO, nombre: this.NUMERO_DES },\n            { codigo: this.COLUMNA, nombre: this.COLUMNA_DES },\n        ]\n\n    INGRESO_SOLICITUD = 'S';\n    INGRESO_LEGALIZACION = 'L';\n    RESULTADO = 'R';\n\n    ELABORAR = 'E';\n    LEGALIZACION = 'L';\n\n    ELABORAR_DES = 'Elaboracion';\n    LEGALIZACION_DES = 'Legalizacion';\n\n\n    INGRESO_SOLICITUD_DES = 'Ingreso Solicitud';\n    INGRESO_LEGALIZACION_DES = 'Ingreso Legalizacion';\n    RESULTADO_DES = 'Resultado';\n\n    LISTA_ACCION_TIPOSERVICIO =\n        [\n            { codigo: this.ELABORAR, nombre: this.ELABORAR_DES },\n            { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION_DES },\n        ]\n\n    LISTA_ACCION =\n        [\n            { codigo: this.INGRESO_SOLICITUD, nombre: this.INGRESO_SOLICITUD_DES },\n            { codigo: this.INGRESO_LEGALIZACION, nombre: this.INGRESO_LEGALIZACION_DES },\n            { codigo: this.RESULTADO, nombre: this.RESULTADO_DES },\n        ]\n\n    NOAPLICA_VAR = 'N';\n    FACTOR_PUNTAJE = 'C';\n    FACTOR_PUNTAJE_DES = 'Factor Puntaje';\n\n    AFECTA_VARIABLE =\n        [\n            { codigo: this.VARIABLE, nombre: this.VARIABLEDESC },\n            { codigo: this.LIQUIDACION, nombre: this.LIQUIDACIONDESC },\n            { codigo: this.NOAPLICA_VAR, nombre: this.NOAPLICADESC },\n            { codigo: this.FACTOR_PUNTAJE, nombre: this.FACTOR_PUNTAJE_DES },\n            { codigo: this.VARIABLEFECHA, nombre: this.VARIABLEFECHADESC },\n        ]\n\n    IR_A_FLEXIBLE = 'IR_A_FLEXIBLE';\n\n    PROGRAMACION_TURNO_TIEMPO = 'PE';\n    HORARIO_FIJO_TIEMPO = 'FI';\n    NO_REGISTRAR_EN_TIEMPO = 'NO';\n\n    PROGRAMACION_TURNO_TIEMPO_DESC = 'Programacion Turno En Tiempos';\n    HORARIO_FIJO_TIEMPO_DESC = 'Horario Fijo De Tiempo';\n    NO_REGISTRAR_EN_TIEMPO_DESC = 'No Registrar En Tiempo';\n\n    TIPOS_INCLUSION_TIEMPOS =\n        [\n            { codigo: this.PROGRAMACION_TURNO_TIEMPO, nombre: this.PROGRAMACION_TURNO_TIEMPO_DESC },\n            { codigo: this.HORARIO_FIJO_TIEMPO, nombre: this.HORARIO_FIJO_TIEMPO_DESC },\n            { codigo: this.NO_REGISTRAR_EN_TIEMPO, nombre: this.NO_REGISTRAR_EN_TIEMPO_DESC },\n        ]\n\n    TIPO_LISTA_1 = 'LISTA1';\n    TIPO_LISTA_2 = 'LISTA2';\n    TIPO_LISTA_3 = 'LISTA3';\n\n    TIPO_LISTA_1_DESC = 'Lista Adicional 1';\n    TIPO_LISTA_2_DESC = 'Lista Adicional 2';\n    TIPO_LISTA_3_DESC = 'Lista Adicional 3';\n\n    TIPOS_LISTA_ADICIONAL =\n        [\n            { codigo: this.TIPO_LISTA_1, nombre: this.TIPO_LISTA_1_DESC },\n            { codigo: this.TIPO_LISTA_2, nombre: this.TIPO_LISTA_2_DESC },\n            { codigo: this.TIPO_LISTA_3, nombre: this.TIPO_LISTA_3_DESC },\n        ]\n\n    AFECTA_TITULAR = 'S';\n    AFECTA_AMBOS = 'A';\n\n    AFECTA_TITULAR_DESC = 'Titular';\n    AFECTA_AMBOS_DESC = 'Titular y Encargado';\n\n    TIPO_AFECTA_SUELDO =\n        [\n            { codigo: this.AFECTA_TITULAR, nombre: this.AFECTA_TITULAR_DESC },\n            { codigo: this.AFECTA_AMBOS, nombre: this.AFECTA_AMBOS_DESC },\n            { codigo: this.NO, nombre: this.NOAPLICADESC },\n        ]\n\n    TIPO_FIRMA_1 = 'T';\n    TIPO_FIRMA_2 = 'E';\n    TIPO_FIRMA_3 = 'I';\n    TIPO_FIRMA_4 = 'O';\n\n    TIPO_FIRMA_1_DESC = 'Titular';\n    TIPO_FIRMA_2_DESC = 'Encargado';\n    TIPO_FIRMA_3_DESC = 'Inhabilitado';\n    TIPO_FIRMA_4_DESC = 'Ocupante';\n\n    TIPOS_FIRMA =\n        [\n            { codigo: this.TIPO_FIRMA_1, nombre: this.TIPO_FIRMA_1_DESC },\n            { codigo: this.TIPO_FIRMA_2, nombre: this.TIPO_FIRMA_2_DESC },\n            { codigo: this.TIPO_FIRMA_3, nombre: this.TIPO_FIRMA_3_DESC },\n            { codigo: this.TIPO_FIRMA_4, nombre: this.TIPO_FIRMA_4_DESC },\n        ]\n\n    TIPO_FIRMA_CEDULA = 'C';\n    TIPO_FIRMA_RESPONSABLE_UNIDAD = 'U';\n\n    TIPO_FIRMA_CEDULA_DESC = 'Cedula';\n    TIPO_FIRMA_RESPONSABLE_UNIDAD_DESC = 'Responsable Unidad - Acto';\n\n    MAPA_TIPO_FIRMA =\n        [\n            { codigo: this.TIPO_FIRMA_CEDULA, nombre: this.TIPO_FIRMA_CEDULA_DESC },\n            { codigo: this.TIPO_FIRMA_RESPONSABLE_UNIDAD, nombre: this.TIPO_FIRMA_RESPONSABLE_UNIDAD_DESC },\n        ]\n\n    PASO_FORMULARIO = 'FORMULARIO_DATOS';\n    PASO_FORMULARIO_INGRESO_EMPLEADO = 'FORMULARIO_INGRESO_EMPLEADO';\n    PASO_DOCUMENTO_SOPORTE = 'DOCUMENTO_SOPORTE';\n    PASO_FORMULARIO_LEGALIZACION = 'FORMULARIO_LEGALIZACION';\n\n    GRUPO_ACTO = \"GR\";\n    GRUPO_VINCULACION = \"GV\";\n    GRUPO_FORMATO = \"GF\";\n    USUARIO_FORMATO = \"US\";\n\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listaDatosInicia') { this.DATOS_INICIALES_SELECCION_CAMPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaEntrada') { this.ENTRADA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaAccion') { this.LISTA_ACCION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'tiposListaAdicional') { this.TIPOS_LISTA_ADICIONAL.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaAccionTipoServicio') { this.LISTA_ACCION_TIPOSERVICIO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'actosAdminEml') { this.ACTOS_ADMINISTRATIVOS_EML.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'imgAdminEml') { this.ACTOS_ADMINISTRATIVOS_IMAGEN.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaDatosInicialesPlanta') { this.DATOS_INICIALES_PLANTA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../constantes/Constantes';\n\n@Pipe({\n    name: 'gestionReportePipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\nexport class GestionReportePipe implements PipeTransform {\n\n    vertical = \"V\";\n    desVertical = \"Vertical\";\n\n    horizontal = \"H\";\n    desHorizontal = \"Horizontal\";\n\n    Helvetica = \"Helvetica\";\n    HelveticaOblique = \"Helvetica-Oblique\";\n    Courier = \"Courier\";\n    CourierOblique = \"Courier-Oblique\";\n    CourierBold = \"Courier-Bold\";\n    TimesRoman = \"Times-Roman\";\n    TimesBoldItalic = \"Times-BoldItalic\";\n    TimesItalic = \"Times-Italic\";\n    TimesBold = \"Times-Bold\";\n\n    base = \"B\";\n    desBase = \"Interna\";\n    baseCalculo = \"Q\";\n    desBaseCalculo = \"Interna C\\u00E1lculo\";\n    numero = Constantes.CONSTANTE_NO;\n    desNumero = \"Numero\";\n    fecha = \"F\";\n    desFecha = \"Fecha\";\n    periodoNomina = \"P\";\n    desPeriodoNomina = \"Periodo Nomina\";\n\n    numeroContrato = \"meml_identifica\";\n    desNumeroContrato = \"N\\u00FAmero Contrato\";\n    identificacion = \"meml_hojavida\";\n    desIdentificacion = \"Identificaci\\u00F3n\";\n    unidad = \"ceml_unidad\";\n    desUnidad = \"Unidad\";\n    zona = \"ceml_zonaeconomica\";\n    desZona = \"Zona\";\n    centroCosto = \"ceml_centrocosto\";\n    desCentroCosto = \"Centro Costo\";\n    ingreso = \"deml_ingreso\";\n    desIngreso = \"Ingreso\";\n    retiro = \"deml_retiro\";\n    desRetiro = \"Retiro\";\n    sueldo = \"meml_sueldo\";\n    desSueldo = \"Sueldo\";\n    enganche = \"deml_engache\";\n    desEnganche = \"Enganche\";\n    estadoLaboral = \"ceml_estadolaboral\";\n    desEstadoLaboral = \"Estado Laboral\";\n    vinculacion = \"neml_vinculacion\";\n    desVinculacion = \"Vinculaci\\u00F3n\";\n    cargo = \"ceml_cargo\";\n    desCargo = \"Cargo\";\n    tipoPeriodo = \"neml_tipoperiodo\";\n    desTipoPeriodo = \"Tipo Periodo\";\n    desClasificacion = \"Clasificaci\\u00F3n\";\n\n    CONTRATO = \"CODIGO\";\n    desCONTRATO = \"CODIGO\";\n    CEDULA = \"CEDULA\";\n    NOMBRES = \"NOMBRES\";\n    APELLIDO1 = \"APELLIDO1\";\n    APELLEDO2 = \"APELLIDO2\";\n    CNOMBRES = \"CNOMBRES\";\n    INGRESO = \"INGRESO\";\n    UNIDAD = \"UNIDAD\";\n    SUELDO = \"SUELDO\";\n    CARGO = \"CODCAR\";\n    desCARGO = \"CARGO\";\n    NOMBRECAR = \"NOMBRECAR\";\n    SUELDOANTE = \"SUELDOANTE\";\n    ZONA = \"ZONA\";\n    CENTROCOST = \"CENTROCOST\";\n    NOMBRECC = \"NOMBRECC\";\n    VIGENCIA = \"VIGENCIA\";\n    VINCULACION = \"VINCULACION\";\n    NOMUNIDAD = \"NOMUNID\";\n    desNOMUNIDAD = \"NOMBRE UNIDAD\";\n    NOMLINEA = \"NOMLINEA\";\n    NOMZONA = \"NOMZONA\";\n    NOMVINCULA = \"NOMVINCULA\";\n    ESTADOLABO = \"ESTADOLABO\";\n    REPORTE = \"C_REPORTE\";\n    desREPORTE = \"REPORTE\";\n    SEXO = \"SEXO\";\n    CODEMPRESA = \"CODEMPRESA\";\n    desCODEMPRESA = \"CODEMPRESA\";\n    REFF1 = \"REFF1\";\n    REFF2 = \"REFF2\";\n    REFF5 = \"REFF5\";\n    NESCIVIL = \"NESCIVIL\";\n    CUMPLE = \"CUMPLE\";\n    HIJOS = \"HIJOS\";\n    NEMPRESA = \"NEMPRESA\";\n    EPS = \"EPS\";\n    FCES = \"FCES\";\n    NESTADO = \"NESTADO\";\n    NOMBREUNID = \"NOMBREUNID\";\n\n\n\n    igual = \"=\";\n    desIgual = \"igual\";\n    mayorQue = \">\";\n    desMayorQue = \"mayor que\";\n    mayorIgual = \">=\";\n    desMayorIgual = \"mayor o igual\";\n    menor = \"<\";\n    desMenor = \"menor\";\n    menorIgual = \"<=\";\n    desMenorIgual = \"menor o igual\";\n    diferente = \"<>\";\n    desDiferente = \"diferente\";\n    inclusion = \"IN\";\n    desInclusion = \"inclusi\\u00F3n\";\n    como = \"like\";\n    desComo = \"como\";\n\n\n    and = \"and\";\n    desAnd = \"Y\";\n    or = \"or\";\n    desOr = \"O\";\n\n    noAplica = Constantes.CONSTANTE_NO;\n    desNoAplica = \"No Aplica\";\n    variable = \"V\";\n    desVariable = \"Variable\";\n    concepto = \"C\";\n    desConcepto = \"Concepto\";\n    liquidacion = \"A\";\n    desLiquidacion = \"Liquidaci\\u00F3n Adicional\";\n    sueldoP = Constantes.CONSTANTE_SI;\n    desSueldoP = \"Sueldo\";\n    mensual = \"U\";\n    desMensual = \"Proceso Mensual Segun Rango Fecha\";\n\n    pluma = Constantes.CONSTANTE_SI;\n    desPluma = \"Pluma\";\n    exel = \"E\";\n    desExel = \"Exel\";\n\n    punto = Constantes.PUNTO;\n    contar = \"C\";\n    max = \"M\";\n    minimo = \"I\";\n    suma = Constantes.CONSTANTE_SI;\n\n    promedio = \"P\";\n    desContar = \"Contar\";\n    desMax = \"Maximo\";\n    desMinimo = \"Minimo\";\n    desSuma = \"Suma\";\n    desPromedio = \"Promedio\";\n\n    desContarRep = \"count\";\n    desMaxRep = \"max\";\n    desMinimoRep = \"min\";\n    desSumaRep = \"sum\";\n    desPromedioRep = \"avg\";\n\n    ROMPIMIENTONO = Constantes.CONSTANTE_NO;\n    ROMPIMIENTOSI = Constantes.CONSTANTE_SI;\n    ROMPIMIENTORE = \"R\";\n    DESROMPIMIENTONO = \"NO\";\n    DESROMPIMIENTOSI = \"SI\";\n    DESROMPIMIENTORE = \"RE\";\n\n    NOAPLICA = \"NA\";\n    GRUOPO1 = \"G1\";\n    GRUOPO2 = \"G2\";\n    GRUOPO3 = \"G3\";\n    GRUOPO4 = \"G4\";\n    GRUOPO5 = \"G5\";\n    DETALLE = \"L1\";\n\n    DESNOAPLICA = \"No aplica\";\n    DESGRUOPO1 = \"Grupo 1\";\n    DESGRUOPO2 = \"Grupo 2\";\n    DESGRUOPO3 = \"Grupo 3\";\n    DESGRUOPO4 = \"Grupo 4\";\n    DESGRUOPO5 = \"Grupo 5\";\n    DESDETALLE = \"Detalle\";\n\n\n\n    MAPAROMPIMIENTO =\n        [\n            { codigo: this.ROMPIMIENTONO, nombre: this.DESROMPIMIENTONO },\n            { codigo: this.ROMPIMIENTOSI, nombre: this.DESROMPIMIENTOSI },\n            { codigo: this.ROMPIMIENTORE, nombre: this.DESROMPIMIENTORE },\n        ]\n\n    MAPAAUTOMATICO =\n        [\n            { codigo: this.ROMPIMIENTONO, nombre: this.DESROMPIMIENTONO },\n            { codigo: this.ROMPIMIENTOSI, nombre: this.DESROMPIMIENTOSI },\n        ]\n\n    ORDERRENO = Constantes.CONSTANTE_NO;\n    ORDERREASC = \"A\";\n    ORDERREDES = \"R\";\n    DESORDERRENO = \"NO\";\n    DESORDERREASC = \"ASC\";\n    DESORDERREDES = \"DESC\";\n\n    MAPAORDERRE =\n        [\n            { codigo: this.ORDERRENO, nombre: this.DESORDERRENO },\n            { codigo: this.ORDERREASC, nombre: this.DESORDERREASC },\n            { codigo: this.ORDERREDES, nombre: this.DESORDERREDES },\n        ]\n\n    OPERACION =\n        [\n            { codigo: this.punto, nombre: this.punto },\n            { codigo: this.contar, nombre: this.desContar },\n            { codigo: this.max, nombre: this.desMax },\n            { codigo: this.minimo, nombre: this.desMinimo },\n            { codigo: this.suma, nombre: this.desSuma },\n        ]\n\n    TAMANOLETRA =\n        [\n            { codigo: 8, nombre: \"8\" },\n            { codigo: 9, nombre: \"9\" },\n            { codigo: 10, nombre: \"10\" },\n            { codigo: 11, nombre: \"11\" },\n            { codigo: 12, nombre: \"12\" },\n            { codigo: 14, nombre: \"14\" },\n            { codigo: 16, nombre: \"16\" },\n            { codigo: 18, nombre: \"18\" },\n            { codigo: 20, nombre: \"20\" },\n            { codigo: 22, nombre: \"22\" },\n        ]\n\n    EJECUCION =\n        [\n            { codigo: this.pluma, nombre: this.desPluma },\n            { codigo: this.exel, nombre: this.desExel },\n            { codigo: this.noAplica, nombre: this.desNoAplica },\n        ]\n\n    TIPOPARAMETRO =\n        [\n            { codigo: this.numero, nombre: this.desNumero },\n            { codigo: this.fecha, nombre: this.desFecha },\n            { codigo: this.periodoNomina, nombre: this.desPeriodoNomina },\n        ]\n\n    TIPOACTUALIZACION =\n        [\n            { codigo: this.noAplica, nombre: this.desNoAplica },\n            { codigo: this.variable, nombre: this.desVariable },\n            { codigo: this.concepto, nombre: this.desConcepto },\n            { codigo: this.liquidacion, nombre: this.desLiquidacion },\n            { codigo: this.sueldoP, nombre: this.desSueldoP },\n            { codigo: this.mensual, nombre: this.desMensual },\n        ]\n\n    SEGUNEVENTO = \"EV\";\n    SEGUNEVENTO_DESC = \"Seg\" + Constantes.U_TILDE_MIN + \"n Evento\";\n    MASIVOTIMER = \"TM\";\n    MASIVOTIMER_DESC = \"Masivo timer\";\n\n    MODOPROCESO =\n        [\n            { codigo: this.noAplica, nombre: this.desNoAplica },\n            { codigo: this.SEGUNEVENTO, nombre: this.SEGUNEVENTO_DESC },\n            { codigo: this.MASIVOTIMER, nombre: this.MASIVOTIMER_DESC },\n        ]\n\n\n    CAMPOSSELECCION =\n        [\n            { codigo: this.numeroContrato, nombre: this.desNumeroContrato },\n            { codigo: this.identificacion, nombre: this.desIdentificacion },\n            { codigo: this.unidad, nombre: this.desUnidad },\n            { codigo: this.zona, nombre: this.desZona },\n            { codigo: this.centroCosto, nombre: this.desCentroCosto },\n            { codigo: this.ingreso, nombre: this.desIngreso },\n            { codigo: this.retiro, nombre: this.desRetiro },\n            { codigo: this.enganche, nombre: this.desEnganche },\n            { codigo: this.sueldo, nombre: this.desSueldo },\n            { codigo: this.estadoLaboral, nombre: this.desEstadoLaboral },\n            { codigo: this.vinculacion, nombre: this.desVinculacion },\n            { codigo: this.cargo, nombre: this.desCargo },\n            { codigo: this.tipoPeriodo, nombre: this.desTipoPeriodo },\n        ]\n\n    CAMPOSSELECCIONVISTA =\n        [\n            { codigo: this.noAplica, nombre: this.desNoAplica },\n            { codigo: \"meml_identifica\", nombre: this.desNumeroContrato },\n            { codigo: \"meml_hojavida\", nombre: this.desIdentificacion },\n            { codigo: \"ceml_unidad\", nombre: this.desUnidad },\n            { codigo: \"ceml_zonaeconomica\", nombre: this.desZona },\n            { codigo: \"ceml_centrocosto\", nombre: this.desCentroCosto },\n            { codigo: \"deml_ingreso\", nombre: this.desIngreso },\n            { codigo: \"deml_retiro\", nombre: this.desRetiro },\n            { codigo: \"deml_engache\", nombre: this.desEnganche },\n            { codigo: \"meml_sueldo\", nombre: this.desSueldo },\n            { codigo: \"ceml_estadolaboral\", nombre: this.desEstadoLaboral },\n            { codigo: \"neml_vinculacion\", nombre: this.desVinculacion },\n            { codigo: \"ceml_cargo\", nombre: this.desCargo },\n            { codigo: \"neml_tipoperiodo\", nombre: this.desTipoPeriodo },\n            { codigo: \"ceml_clasificacion\", nombre: this.desClasificacion },\n\n        ]\n\n\n    CAMPOSSELECCIONDINAMICO =\n        [\n            { codigo: this.numeroContrato, nombre: \"contrato\" },\n            { codigo: this.identificacion, nombre: \"cedula\" },\n            { codigo: this.unidad, nombre: \"unidad\" },\n            { codigo: this.zona, nombre: \"zonaEconomica\" },\n            { codigo: this.centroCosto, nombre: \"centroCosto\" },\n            { codigo: this.ingreso, nombre: \"ingreso\" },\n            { codigo: this.retiro, nombre: \"retiro\" },\n            { codigo: this.enganche, nombre: \"enganche\" },\n            { codigo: this.sueldo, nombre: \"sueldo\" },\n            { codigo: this.estadoLaboral, nombre: \"desEstadoLaboral\" },\n            { codigo: this.vinculacion, nombre: \"estadoLaboral\" },\n            { codigo: this.cargo, nombre: \"cargo\" },\n            { codigo: this.tipoPeriodo, nombre: \"tipoPeriodo\" },\n        ]\n\n\n\n    TIPOSELECCION =\n        [\n            { codigo: this.igual, nombre: this.desIgual },\n            { codigo: this.mayorQue, nombre: this.desMayorQue },\n            { codigo: this.mayorIgual, nombre: this.desMayorIgual },\n            { codigo: this.menor, nombre: this.desMenor },\n            { codigo: this.menorIgual, nombre: this.desMenorIgual },\n            { codigo: this.diferente, nombre: this.desDiferente },\n            { codigo: this.inclusion, nombre: this.desInclusion },\n            { codigo: this.como, nombre: this.desComo },\n        ]\n\n    ANIDADO =\n        [\n            { codigo: this.and, nombre: this.desAnd },\n            { codigo: this.or, nombre: this.desOr },\n        ]\n\n    TOTAL =\n        [\n            { codigo: this.igual, nombre: this.desIgual },\n            { codigo: this.mayorQue, nombre: this.desMayorQue },\n            { codigo: this.mayorIgual, nombre: this.desMayorIgual },\n            { codigo: this.menor, nombre: this.desMenor },\n            { codigo: this.menorIgual, nombre: this.desMenorIgual },\n            { codigo: this.diferente, nombre: this.desDiferente },\n            { codigo: this.inclusion, nombre: this.desInclusion },\n            { codigo: this.como, nombre: this.desComo },\n            { codigo: this.and, nombre: this.desAnd },\n            { codigo: this.or, nombre: this.desOr },\n        ]\n\n    ORIENTACION =\n        [\n            { codigo: this.vertical, nombre: this.desVertical },\n            { codigo: this.horizontal, nombre: this.desHorizontal },\n        ]\n\n    TIPOLETRA =\n        [\n            { codigo: this.Helvetica, nombre: this.Helvetica },\n            { codigo: this.HelveticaOblique, nombre: this.HelveticaOblique },\n            { codigo: this.Courier, nombre: this.Courier },\n            { codigo: this.CourierOblique, nombre: this.CourierOblique },\n            { codigo: this.CourierBold, nombre: this.CourierBold },\n            { codigo: this.TimesRoman, nombre: this.TimesRoman },\n            { codigo: this.TimesBoldItalic, nombre: this.TimesBoldItalic },\n            { codigo: this.TimesItalic, nombre: this.TimesItalic },\n            { codigo: this.TimesBold, nombre: this.TimesBold },\n        ]\n\n    TIPOVARIABLE =\n        [\n            { codigo: this.base, nombre: this.desBase },\n            { codigo: this.baseCalculo, nombre: this.desBaseCalculo },\n            { codigo: this.numero, nombre: this.desNumero },\n            { codigo: this.fecha, nombre: this.desFecha },\n        ]\n\n    FUNCIONGRUPO =\n        [\n            { codigo: this.noAplica, nombre: this.desNoAplica },\n            { codigo: this.suma, nombre: this.desSuma },\n            { codigo: this.max, nombre: this.desMax },\n            { codigo: this.minimo, nombre: this.desMinimo },\n            { codigo: this.contar, nombre: this.desContar },\n            { codigo: this.promedio, nombre: this.desPromedio },\n        ]\n\n    BANDA =\n        [\n            { codigo: this.NOAPLICA, nombre: this.DESNOAPLICA },\n            { codigo: this.DETALLE, nombre: this.DESDETALLE },\n            { codigo: this.GRUOPO1, nombre: this.DESGRUOPO1 },\n            { codigo: this.GRUOPO2, nombre: this.DESGRUOPO2 },\n            { codigo: this.GRUOPO3, nombre: this.DESGRUOPO3 },\n            { codigo: this.GRUOPO4, nombre: this.DESGRUOPO4 },\n            { codigo: this.GRUOPO5, nombre: this.DESGRUOPO5 },\n        ]\n\n\n    FUNCIONREPORTE =\n        [\n            { codigo: this.suma, nombre: this.desSumaRep },\n            { codigo: this.max, nombre: this.desMaxRep },\n            { codigo: this.minimo, nombre: this.desMinimoRep },\n            { codigo: this.contar, nombre: this.desContarRep },\n            { codigo: this.promedio, nombre: this.desPromedioRep }\n        ]\n\n    TIPO_OPERADORES =\n        [\n            { codigo: this.igual, nombre: this.igual },\n            { codigo: this.mayorQue, nombre: this.mayorQue },\n            { codigo: this.mayorIgual, nombre: this.mayorIgual },\n            { codigo: this.menor, nombre: this.menor },\n            { codigo: this.menorIgual, nombre: this.menorIgual },\n            { codigo: this.diferente, nombre: this.diferente }\n        ]\n\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'ListadoSeleccionVista') { this.CAMPOSSELECCIONVISTA.forEach(data => { if (data.codigo === value) {result = data.nombre } }); }\n        if (args[0] == 'ListadoTipoSeleccion') { this.TIPOSELECCION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'ListadoAnidado') { this.ANIDADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'ListadoTipoParametro') { this.TIPOPARAMETRO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'ListadoOrden') { this.MAPAORDERRE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n    }\n\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'parametrosEvaluacionPipe',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class ParametrosEvaluacionPipe implements PipeTransform {\n\n\tNOAPLICA = 'N';\n\tNOAPLICADES = 'No Aplica';\n\tVALOROBTENIDO ='S';\n\tVALOROBTENIDODES = 'Valor Obtenido';\n\tVALORPUNTAJE = 'P';\n\tVALORPUNTAJEDES = 'Valor Puntaje';\n\n\tLISTAESTADOGESTION = [\n\t\t{codigo: this.NOAPLICA, nombre: this.NOAPLICADES},\n\t\t{codigo: this.VALOROBTENIDO, nombre: this.VALOROBTENIDODES},\n\t\t{codigo: this.VALORPUNTAJE, nombre: this.VALORPUNTAJEDES},\n\t]\n\n\tVIJENTE = 'A';\n\tVIJENTEDES = 'Vigente';\n\tNOVIJENTE = 'N';\n\tNOVIJENTEDES = 'No Vigente';\n\n\tLISTAESTADOGESTIONHERRAMIENTA = [\n\t\t{codigo: this.VIJENTE, nombre: this.VIJENTEDES},\n\t\t{codigo: this.NOVIJENTE, nombre: this.NOVIJENTEDES},\n\t]\n\n\tDEFINEFINAL ='S';\n\tDEFINEFINALDES = 'Definir al final de la evaluaci\\u00F3n';\n\tDEFINECOMIENZO = 'I';\n\tDEFINECOMIENZODES = 'Definir al comienzo de la evaluaci\\u00F3n';\n\tNODEFINE = 'N';\n\tNODEFINEDES = 'No definir nuevos objetivos';\n\n\tLISTAESTADOPRIMERACARPETA_META = [\n\t\t{codigo: this.DEFINEFINAL, nombre: this.DEFINEFINALDES},\n\t\t{codigo: this.DEFINECOMIENZO, nombre: this.DEFINECOMIENZODES},\n\t\t{codigo: this.NODEFINE, nombre: this.NODEFINEDES},\n\t]\n\n\tHABILITAR ='S';\n\tHABILITARDES = 'Habilitar';\n\tNORELACIONAR = 'N';\n\tNORELACIONARDES = 'No relacionar';\n\n\tLISTAESTADOPRIMERACARPETA_CAPACITACION = [\n\t\t{codigo: this.HABILITAR, nombre: this.HABILITARDES},\n\t\t{codigo: this.NORELACIONAR, nombre: this.NORELACIONARDES},\n\t]\n\n\tDATORESULTADO = 'R';\n\tDATORESULTADODESC = 'Resultado';\n\tDATOFINAL = 'F';\n\tDATOFINALDES = 'Proceso Final';\n\n\tLISTAACCIONGESTION = [\n\t\t{codigo: this.DATORESULTADO, nombre: this.DATORESULTADODESC},\n\t\t{codigo: this.NORELACIONAR, nombre: this.NORELACIONARDES},\n\t\t{codigo: this.DATOFINAL, nombre: this.DATOFINALDES},\n\t]\n\n\t\n\t\n\tCONCERTADA = 'S';\n\tCONCERTADA_DESC = 'Concertada';\n\tNO_CONCERTADA = 'N';\n\tNO_CONCERTADA_DESC = 'No Concertada';\n\tSEGUIMIENTO = 'E';\n\tSEGUIMIENTO_DESC = 'Seguimiento';\n\tNO_PROGRAMADA = 'G';\n\tNO_PROGRAMADA_DESC = 'No Programada';\n\n\tLISTAESTADOPRIMERACARPETA_CONCERTADA = [\n\t\t{codigo: this.CONCERTADA, nombre: this.CONCERTADA_DESC},\n\t\t{codigo: this.NO_CONCERTADA, nombre: this.NO_CONCERTADA_DESC},\n\t\t{codigo: this.SEGUIMIENTO, nombre: this.SEGUIMIENTO_DESC},\n\t\t{codigo: this.NO_PROGRAMADA, nombre: this.NO_PROGRAMADA_DESC},\n\t]\n\n\tDEFINEPLANCCION ='S';\n\tDEFINEPLANCCIONDES = 'Definir plan de acci\\u00F3n';\n\n\tLISTAESTADOPRIMERACARPETA_PLANACCION = [\n\t\t{codigo: this.DEFINEPLANCCION, nombre: this.DEFINEPLANCCIONDES},\n\t\t{codigo: this.NORELACIONAR, nombre: this.NORELACIONARDES},\n\t]\n\n\tCOMPETENCIA = 'C';\n\tCOMPETENCIADES = 'Competencia';\n\n\tEVALUADOR = 'E';\n\tEVALUADORDES = 'Evaluador';\n\n\tDESCRIPTOR = 'F';\n\tDESCRIPTORDES = ' Descriptor';\n\n\tITEM = 'I';\n\tITEMDES = 'Item';\n\n\tTIPOCOMPETENCIA = 'T';\n\tTIPOCOMPETENCIADES = 'Tipo Competencia';\n\n\tHERRAMIENTAGESTION = 'H';\n\tHERRAMIENTAGESTIONDES = 'Herramienta Gesti\\u00F3n';\n\n\tEVALUACION = 'V';\n\tEVALUACIONDES = 'Evaluaci\\u00F3n';\n\n\tLISTAESTADOCUARTACARPETA_TIPO =  [\n\t\t{codigo: this.COMPETENCIA, nombre: this.COMPETENCIADES},\n\t\t{codigo: this.EVALUADOR, nombre: this.EVALUADORDES},\n\t\t{codigo: this.DESCRIPTOR, nombre: this.DESCRIPTORDES},\n\t\t{codigo: this.ITEM, nombre: this.ITEMDES},\n\t\t{codigo: this.TIPOCOMPETENCIA, nombre: this.TIPOCOMPETENCIADES},\n\t\t{codigo: this.HERRAMIENTAGESTION, nombre: this.HERRAMIENTAGESTIONDES},\n\t]\n\n\tTITULO = 'T';\n\tSUBTITULO ='S';\n\tCALIFICACION_CUALITATIVA = 'C';\n\tCALIFICACION_CUALITATIVA_HOR = 'H';\n\tCALIFICACION_CUALITATIVA_EXT = 'O';\n\tFECHA = 'F';\n\tTEXTO = 'X';\n\tMARCA = 'M';\n\tLISTA = 'L';\n\tINSTRUCCION = 'I';\n\tNUMERICO = 'N';\n\tNUMERICO_DECIMALES = 'DEC';\n\tCALIFICACION_VALOR = 'V';\n\tLISTA_MULTIPLE = 'U';\n\tVALORTIPOCOMPETENCIA = 'G';\n\tVALORCOMPETENCIA = 'D';\n\tINSTRUCCIONREGLA = 'R';\n\tCOMPETENCIASEGUNFILTRO = 'B';\n\tCOMPETENCIASEGUNUSUARIO = 'CUS';\n\tCOMPETENCIACALIFICASEGUNUSUARIO = 'CCU';\n\tANEXO_FACTOR = \"A\";\n\tCOMPETENCIAUSUARIOFILTRO = \"CUF\";\n\n\n\tCOMPETENCIACALIFICASEGUNUSUARIO_DESC = 'Califica Competencia seg\\u00FAn usuario';\n\tFECHA_DES = 'Ingreso Fecha';\n\tCALIFICACION_CUALITATIVA_DES = 'Ingreso Calificaci\\u00F3n Cualitativa';\n\tCALIFICACION_CUALITATIVA_HOR_DES = 'Ingreso Calificaci\\u00F3n Cualitativa Reglilla Horizontal';\n\tCALIFICACION_CUALITATIVA_EXT_DES = 'Ingreso Calificación Cualitativa Reglilla Extremos';\n\tCALIFICACION_VALOR_DES = 'Ingreso Calificaci\\u00F3n Valor';\n\tLISTA_DES = 'Ingreso Lista';\n\tLISTA_MULTIPLE_DES = 'Ingreso Multiple Respuesta';\n\tMARCA_DES = 'Ingreso Marca';\n\tNUMERICO_DES = 'Ingreso N\\u00FAmero';\n\tNUMERICO_DECIMALES_DEC = 'Ingreso N\\u00FAmero Decimal';\n\tVALORCOMPETENCIA_DES = 'Ingreso Por Nivel Seg\\u00FAn Compentencia';\n\tVALORTIPOCOMPETENCIA_DES = 'Ingreso Por Nivel Seg\\u00FAn Tipo Competencias';\n\tCOMPETENCIASEGUNFILTRO_DES = 'Ingreso Tipo seg\\u00FAn Filtro Competencia';\n\tINSTRUCCION_DES = 'Instrucci\\u00F3n';\n\tINSTRUCCIONREGLA_DES = 'Instructivo Reglilla';\n\tCOMPETENCIASEGUNUSUARIO_DESC = 'Seleccionar Competencia Perfil seg\\u00FAn usuario';\n\tSUBTITULO_DES = 'Subtitulo';\n\tTITULO_DES = 'Titulo';\n\tTEXTO_DES = 'Ingreso Texto';\n\tANEXO_FACTOR_DESC = \"Ingresar Anexo\";\n\tCOMPETENCIAUSUARIOFILTRO_DESC = \"Seleccionar Competencia Filtro seg\\u00FAn usuario\";\n\n\n\n\tLISTAPREGUNTATIPO = [\n\t\t{codigo: this.COMPETENCIACALIFICASEGUNUSUARIO, nombre: this.COMPETENCIACALIFICASEGUNUSUARIO_DESC},\n\t\t{codigo: this.ANEXO_FACTOR, nombre: this.ANEXO_FACTOR_DESC},\n\t\t{codigo: this.COMPETENCIAUSUARIOFILTRO, nombre: this.COMPETENCIAUSUARIOFILTRO_DESC},\n\t\t{codigo: this.COMPETENCIASEGUNUSUARIO, nombre: this.COMPETENCIASEGUNUSUARIO_DESC},\n\t\t{codigo: this.COMPETENCIASEGUNFILTRO, nombre: this.COMPETENCIASEGUNFILTRO_DES},\n\t\t{codigo: this.INSTRUCCIONREGLA, nombre: this.INSTRUCCIONREGLA_DES},\n\t\t{codigo: this.VALORCOMPETENCIA, nombre: this.VALORCOMPETENCIA_DES},\n\t\t{codigo: this.VALORTIPOCOMPETENCIA, nombre: this.VALORTIPOCOMPETENCIA_DES},\n\t\t{codigo: this.LISTA_MULTIPLE, nombre: this.LISTA_MULTIPLE_DES},\n\t\t{codigo: this.CALIFICACION_VALOR, nombre: this.CALIFICACION_VALOR_DES},\n\t\t{codigo: this.NUMERICO_DECIMALES, nombre: this.NUMERICO_DECIMALES_DEC},\n\t\t{codigo: this.NUMERICO, nombre: this.NUMERICO_DES},\n\t\t{codigo: this.INSTRUCCION, nombre: this.INSTRUCCION_DES},\n\t\t{codigo: this.LISTA, nombre: this.LISTA_DES},\n\t\t{codigo: this.MARCA, nombre: this.MARCA_DES},\n\t\t{codigo: this.TEXTO, nombre: this.TEXTO_DES},\n\t\t{codigo: this.FECHA, nombre: this.FECHA_DES},\n\t\t{codigo: this.CALIFICACION_CUALITATIVA_EXT, nombre: this.CALIFICACION_CUALITATIVA_EXT_DES},\n\t\t{codigo: this.CALIFICACION_CUALITATIVA_HOR, nombre: this.CALIFICACION_CUALITATIVA_HOR_DES},\n\t\t{codigo: this.CALIFICACION_CUALITATIVA, nombre: this.CALIFICACION_CUALITATIVA_DES},\n\t\t{codigo: this.SUBTITULO, nombre: this.SUBTITULO_DES},\n\t\t{codigo: this.TITULO, nombre: this.TITULO_DES},\n\t]\n\n\tOTRO = 'O';\n\tOTRO_DES = 'Otro';\n\tJEFE = 'J';\n\tJEFE_DES = 'Jefe';\n\tSUBALTERNO ='S';\n\tSUBALTERNO_DES = 'Subalterno';\n\tCOMPANERO = 'C';\n\tCOMPANERO_DES = 'Compa\\u00f1ero';\n\tAUTOEVAL = 'A';\n\tAUTOEVAL_DES = 'Autoevaluaci\\u00F3n';\n\t\n\tLISTAESTADOTERCERACARPETA_TIPOEVALUADOR =  [\n\t\t{codigo: this.OTRO, nombre: this.OTRO_DES},\n\t\t{codigo: this.JEFE, nombre: this.JEFE_DES},\n\t\t{codigo: this.SUBALTERNO, nombre: this.SUBALTERNO_DES},\n\t\t{codigo: this.COMPANERO, nombre: this.COMPANERO_DES},\n\t\t{codigo: this.AUTOEVAL, nombre: this.AUTOEVAL_DES},\n\t]\n\n\tPORITEMS = '0';\n\tPORITEMS_DES = 'Por Items';\n\tLISTAESTADOQUINTACARPETA_EVALUADOROTRO = [\n\t\t{codigo: this.PORITEMS, nombre: this.PORITEMS_DES},\n\t]\n\n\tPOREVALDESCRIP = '1';\n\tPOREVALDESCRIP_DES = 'Por Evaluadores - Descriptor';\n\tPOREVALDESCOMPE = '2';\n\tPOREVALDESCOMPE_DES = 'Por Evaluadores - Competencias';\n\tLISTAESTADOQUINTACARPETA_COMPETENCIA =  [\n\t\t{codigo: this.PORITEMS, nombre: this.PORITEMS_DES},\n\t\t{codigo: this.POREVALDESCRIP, nombre: this.POREVALDESCRIP_DES},\n\t\t{codigo: this.POREVALDESCOMPE, nombre: this.POREVALDESCOMPE_DES},\n\t]\n\n\tPORCOMPE = '4';\n\tPORCOMPE_DES = 'Por Competencia';\n\tLISTAESTADOQUINTACARPETA_TIPOCOMPETENCIA = [\n\t\t{codigo: this.POREVALDESCRIP, nombre: this.POREVALDESCRIP_DES},\n\t\t{codigo: this.PORCOMPE, nombre: this.PORCOMPE_DES},\n\t]\n\n\tPORDESCRI = '3';\n\tPORDESCRI_DES = 'Por Descriptores';\n\tPOREVAL = '5';\n\tPOREVAL_DES = 'Por Evaluadores';\n\tPORTIPOCOMPE = '6';\n\tPORTIPOCOMPE_DES = 'Por Tipo Competencias';\n\tPORGRUPOCOMPE = '7';\n\tPORGRUPOCOMPE_DES = 'Por Grupo Competencias';\n\tLISTAESTADOQUINTACARPETA_HERRAMIENTA = [\n\t\t{codigo: this.PORITEMS, nombre: this.PORITEMS_DES},\n\t\t{codigo: this.POREVALDESCRIP, nombre: this.POREVALDESCRIP_DES},\n\t\t{codigo: this.POREVALDESCOMPE, nombre: this.POREVALDESCOMPE_DES},\n\t\t{codigo: this.PORDESCRI, nombre: this.PORDESCRI_DES},\n\t\t{codigo: this.PORCOMPE, nombre: this.PORCOMPE_DES},\n\t\t{codigo: this.POREVAL, nombre: this.POREVAL_DES},\n\t\t{codigo: this.PORTIPOCOMPE, nombre: this.PORTIPOCOMPE_DES},\n\t\t{codigo: this.PORGRUPOCOMPE, nombre: this.PORGRUPOCOMPE_DES},\n\t]\n\n\tLISTAESTADOQUINTACARPETA_GRUPOCOMPETENCIA = [\n\t\t{codigo: this.POREVALDESCOMPE, nombre: this.POREVALDESCOMPE_DES},\n\t\t{codigo: this.PORCOMPE, nombre: this.PORCOMPE_DES},\n\t\t{codigo: this.PORTIPOCOMPE, nombre: this.PORTIPOCOMPE_DES},\n\t]\n\n\tLISTAESTADOQUINTACARPETA_DESCRIPTOR = [\n\t\t{codigo: this.PORITEMS, nombre: this.PORITEMS_DES},\n\t\t{codigo: this.POREVALDESCRIP, nombre: this.POREVALDESCRIP_DES},\n\t\t{codigo: this.POREVALDESCOMPE, nombre: this.POREVALDESCOMPE_DES},\n\t]\n\n\tLISTAESTADOQUINTACARPETA_EVALUADOR = [\n\t\t{codigo: this.PORITEMS, nombre: this.PORITEMS_DES},\n\t\t{codigo: this.POREVALDESCRIP, nombre: this.POREVALDESCRIP_DES},\n\t\t{codigo: this.POREVALDESCOMPE, nombre: this.POREVALDESCOMPE_DES},\n\t]\n\n\tRESUMEN = 'F';\n\tRESUMEN_DES = 'Resumen Final';\n\tHERRAMIENTAS = '8';\n\tHERRAMIENTAS_DES = 'Herramientas';\n\tEVALUADOR_QC = '5';\n\tEVALUADOR_QC_DES = 'Evaluador';\n\tCOMPETENCIA_QC = '4';\n\tCOMPETENCIA_QC_DES = 'Competencia';\n\tEVALUADORCOMPETE_QC = '2';\n\tEVALUADORCOMPETE_QC_DES = 'Evaluador - Competencia';\n\n\tELEMENTOCONSENSO = 'E';\n\tELEMENTOCONSENSO_DES = 'Elemento Consenso';\n\n\tCONSENSO = 'C';\n\tCONSENSO_DES = 'Consenso';\n\n\tSELECCION_ENTREVISTA_ESTRUCTURADA_DES = 'Entrevista Estructurada';\n\tSELECCION_ENTREVISTA_ESTRUCTURADA = 'EE';\n\tSELECCION_ENTREVISTA_NO_ESTRUCTURADA_DES = 'Entrevista No Estructurada';\n\tSELECCION_ENTREVISTA_NO_ESTRUCTURADA = 'EN';\n\tSELECCION_VISITA_DOMICILIARIA_DES = 'Visita Domicilaria';\n\tSELECCION_VISITA_DOMICILIARIA = 'VI';\n\tSELECCION_PRUEBA_PSICOMETRICA_DES = 'Prueba Psicometrica';\n\tSELECCION_PRUEBA_PSICOMETRICA = 'PS';\n\tSELECCION_PRUEBA_DES = 'Prueba';\n\tSELECCION_PRUEBA = 'PN';\n\tSELECCION_INFORME_FINAL = 'IF';\n\tSELECCION_INFORME_FINAL_DES = 'Informe Final';\n\tSELECCION_NO_APLICA_DES = 'No Aplica';\n\tSELECCION_NO_APLICA = 'NO';\n\n\tLISTA_TIPO_HERRAMIENTAS_EVALUACION = [\n\t\t{codigo: this.SELECCION_ENTREVISTA_ESTRUCTURADA, nombre: this.SELECCION_ENTREVISTA_ESTRUCTURADA_DES},\n\t\t{codigo: this.SELECCION_ENTREVISTA_NO_ESTRUCTURADA, nombre: this.SELECCION_ENTREVISTA_NO_ESTRUCTURADA_DES},\n\t\t{codigo: this.SELECCION_VISITA_DOMICILIARIA, nombre: this.SELECCION_VISITA_DOMICILIARIA_DES},\n\t\t{codigo: this.SELECCION_PRUEBA_PSICOMETRICA, nombre: this.SELECCION_PRUEBA_PSICOMETRICA_DES},\n\t\t{codigo: this.SELECCION_PRUEBA, nombre: this.SELECCION_PRUEBA_DES},\n\t\t{codigo: this.SELECCION_INFORME_FINAL, nombre: this.SELECCION_INFORME_FINAL_DES},\n\t\t{codigo: this.SELECCION_NO_APLICA, nombre: this.SELECCION_NO_APLICA_DES},\n\t]\n\n\tSELECCION_RESULTADO_FINAL_DES = 'Resultado Final';\n\tSELECCION_EVALUAR_FACTORES_DES = 'Evaluar factores';\n\tSELECCION_RESULTADO_FINAL ='S';\n\tSELECCION_EVALUAR_FACTORES = 'N';\n\n\tLISTA_RESUMEN_EVALUACION = [\n\t\t{codigo: this.SELECCION_RESULTADO_FINAL, nombre: this.SELECCION_RESULTADO_FINAL_DES},\n\t\t{codigo: this.SELECCION_EVALUAR_FACTORES, nombre: this.SELECCION_EVALUAR_FACTORES_DES},\n\t]\n\n\tSELECCION_TITULO_DES = 'Titulo';\n\tSELECCION_TITULO = 'T';\n\tSELECCION_SUBTITULO_DES = 'Subtitulo';\n\tSELECCION_SUBTITULO ='S';\n\tSELECCION_INSTRUCCION_DES = 'Instrucci\\u00f3n';\n\tSELECCION_INSTRUCCION = 'I';\n\tSELECCION_INGRESO_CALIFICACION_CUALITATIVA_DES = 'Ingreso Calificaci\\u00f3n Cualitativa';\n\tSELECCION_INGRESO_CALIFICACION_CUALITATIVA = 'C';\n\tSELECCION_INGRESO_FECHA_DES = 'Ingreso Fecha';\n\tSELECCION_INGRESO_FECHA = 'F';\n\tSELECCION_INGRESO_TEXTO_DES = 'Ingreso Texto';\n\tSELECCION_INGRESO_TEXTO = 'X';\n\tSELECCION_INGRESO_OBSERVACION_DES = 'Ingreso Observaci\\u00f3n';\n\tSELECCION_INGRESO_OBSERVACION = 'O';\n\tSELECCION_INGRESO_MARCA_DES = 'Ingreso Marca';\n\tSELECCION_INGRESO_CADENA = 'A';\n\tSELECCION_INGRESO_CADENA_DES = 'Ingreso Cadena';\n\tSELECCION_INGRESO_MARCA = 'M';\n\tSELECCION_INGRESO_LISTA_DES = 'Ingreso Lista';\n\tSELECCION_INGRESO_LISTA = 'L';\n\tSELECCION_INGRESO_NUMERO_DES = 'Ingreso Numero';\n\tSELECCION_INGRESO_NUMERO = 'N';\n\tSELECCION_INGRESO_CALIFICACION_VALOR_DES = 'Ingreso Calificaci\\u00f3n Valor';\n\tSELECCION_INGRESO_CALIFICACION_VALOR = 'V';\n//\tSELECCION_MULTIPLE_RESPUESTA_DES = 'Multiple Respuesta';\n//\tSELECCION_MULTIPLE_RESPUESTA = 'U';\n\tSELECCION_HOJA_VIDA_DES = 'Secci\\u00f3n Hoja Vida';\n\tSELECCION_HOJA_VIDA = 'H';\n\tSELECCION_INGRESO_ANEXO = 'Y';\n\tSELECCION_INGRESO_ANEXO_DES = 'Anexo';\n\tSELECCION_ANEXOCANDIDATO_DES = 'Lista Anexos Candidato';\n\tSELECCION_ANEXOCANDIDATO = 'Z';\n\n\tLISTA_TIPO_FACTOR_EVALUACION_CREAR = [\n\t\t{codigo: this.SELECCION_TITULO, nombre: this.SELECCION_TITULO_DES},\n\t\t{codigo: this.SELECCION_SUBTITULO, nombre: this.SELECCION_SUBTITULO_DES},\n\t\t{codigo: this.SELECCION_INSTRUCCION, nombre: this.SELECCION_INSTRUCCION_DES},\n\t\t{codigo: this.SELECCION_INGRESO_CALIFICACION_CUALITATIVA, nombre: this.SELECCION_INGRESO_CALIFICACION_CUALITATIVA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_FECHA, nombre: this.SELECCION_INGRESO_FECHA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_TEXTO, nombre: this.SELECCION_INGRESO_TEXTO_DES},\n\t\t{codigo: this.SELECCION_INGRESO_OBSERVACION, nombre: this.SELECCION_INGRESO_OBSERVACION_DES},\n\t\t{codigo: this.SELECCION_INGRESO_CADENA, nombre: this.SELECCION_INGRESO_CADENA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_MARCA, nombre: this.SELECCION_INGRESO_MARCA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_LISTA, nombre: this.SELECCION_INGRESO_LISTA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_NUMERO, nombre: this.SELECCION_INGRESO_NUMERO_DES},\n//\t\t{codigo: this.SELECCION_INGRESO_CALIFICACION_VALOR, nombre: this.SELECCION_INGRESO_CALIFICACION_VALOR_DES},\n//\t\t{codigo: this.SELECCION_MULTIPLE_RESPUESTA, nombre: this.SELECCION_MULTIPLE_RESPUESTA_DES},\n\t\t{codigo: this.SELECCION_HOJA_VIDA, nombre: this.SELECCION_HOJA_VIDA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_ANEXO, nombre: this.SELECCION_INGRESO_ANEXO_DES},\n\t\t{codigo: this.SELECCION_ANEXOCANDIDATO, nombre: this.SELECCION_ANEXOCANDIDATO_DES},\n\t\t\n\t]\n\t\n\tLISTA_TIPO_FACTOR_EVALUACION = [\n\t\t{codigo: this.SELECCION_TITULO, nombre: this.SELECCION_TITULO_DES},\n\t\t{codigo: this.SELECCION_SUBTITULO, nombre: this.SELECCION_SUBTITULO_DES},\n\t\t{codigo: this.SELECCION_INSTRUCCION, nombre: this.SELECCION_INSTRUCCION_DES},\n\t\t{codigo: this.SELECCION_INGRESO_CALIFICACION_CUALITATIVA, nombre: this.SELECCION_INGRESO_CALIFICACION_CUALITATIVA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_FECHA, nombre: this.SELECCION_INGRESO_FECHA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_TEXTO, nombre: this.SELECCION_INGRESO_TEXTO_DES},\n\t\t{codigo: this.SELECCION_INGRESO_OBSERVACION, nombre: this.SELECCION_INGRESO_OBSERVACION_DES},\n\t\t{codigo: this.SELECCION_INGRESO_CADENA, nombre: this.SELECCION_INGRESO_CADENA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_MARCA, nombre: this.SELECCION_INGRESO_MARCA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_LISTA, nombre: this.SELECCION_INGRESO_LISTA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_NUMERO, nombre: this.SELECCION_INGRESO_NUMERO_DES},\n\t\t{codigo: this.SELECCION_INGRESO_CALIFICACION_VALOR, nombre: this.SELECCION_INGRESO_CALIFICACION_VALOR_DES},\n//\t\t{codigo: this.SELECCION_MULTIPLE_RESPUESTA, nombre: this.SELECCION_MULTIPLE_RESPUESTA_DES},\n\t\t{codigo: this.SELECCION_HOJA_VIDA, nombre: this.SELECCION_HOJA_VIDA_DES},\n\t\t{codigo: this.SELECCION_INGRESO_ANEXO, nombre: this.SELECCION_INGRESO_ANEXO_DES},\n\t\t{codigo: this.SELECCION_ANEXOCANDIDATO, nombre: this.SELECCION_ANEXOCANDIDATO_DES},\n\t]\n\n\tESEDITABLE ='S';\n\tNOESEDITABLE = 'N';\n\n\tNO_DILIGENCIA_DES = 'No Diligenciada';\n\tNO_DILIGENCIA = 'P';\n\n\tDILIGENCIA_PARCIALMENTE_DES = 'Diligenciada Parcialmente';\n\tDILIGENCIA_PARCIALMENTE = 'E';\n\n\tAPLICADA_DES = 'Aplicada';\n\tAPLICADA = 'C';\n\t\n\tPOR_DEFINIR_FECHA_DES = 'Fecha por Definir';\n\tPOR_DEFINIR_FECHA = 'A';\n\n\t/**  Lista de posibles estados de una evaluacion */\n\tLISTA_ESTADO_EVALUACION_PRU = [\n\t\t{codigo: this.NO_DILIGENCIA, nombre: this.NO_DILIGENCIA_DES},\n\t\t{codigo: this.DILIGENCIA_PARCIALMENTE, nombre: this.DILIGENCIA_PARCIALMENTE_DES},\n\t\t{codigo: this.APLICADA, nombre: this.APLICADA_DES},\n\t\t{codigo: this.POR_DEFINIR_FECHA, nombre: this.POR_DEFINIR_FECHA_DES},\n\t]\n\t\n\t/** Lista de estados a los se puede cambiar una evaluacion que se encuentra APLICADA */\n\tLISTA_ESTADO_EVALUACION_PRU_CAMBIO = [\n\t\t{codigo: this.NO_DILIGENCIA, nombre: this.NO_DILIGENCIA_DES},\n\t\t{codigo: this.DILIGENCIA_PARCIALMENTE, nombre: this.DILIGENCIA_PARCIALMENTE_DES},\n\t]\n\n\tCOMPETENCIA_SEG = 'D';\n\tCAPACITACION = 'C';\n\tMETA = 'M';\n\tPLAN_ACCION = 'P';\n\tCAPACITACION_DES = 'Capacitacion';\n\tMETA_DES = 'Meta/Objetivos';\n\tPLAN_ACCION_DES = 'Plan de Accion';\n\tCOMP_SEG_DES = 'Seguimiento Competencias';\n\n\tLISTA_TIPOEVALUADOR = [\n\t\t{codigo: this.CAPACITACION, nombre: this.CAPACITACION_DES},\n\t\t{codigo: this.META, nombre: this.META_DES},\n\t\t{codigo: this.PLAN_ACCION, nombre: this.PLAN_ACCION_DES},\n\t\t{codigo: this.COMPETENCIA_SEG, nombre: this.COMP_SEG_DES},\n\t]\n\n\tTEMA = 'tema';\n\tTEXTO1 = 'texto1';\n\tTEXTO2 = 'texto2';\n\tCOMPETENCIAS_DIMENSION = 'competenciaDimension';\n\tCOMPETENCIAS_DIMENSION_DESC = 'competencias';\n\tFECHAFINAL = 'fechaFinal';\n\tCURSO = 'curso';\n\n\tFIJOEVALUADOR = 'D';\n\tDEFINICION_MODIFICAR = 'M';\n\tFIJOAUTORIZADOR = 'A';\n\tFIJOEVALUADOR_DES = 'Definici\\u00f3n Fijo Evaluador';\n\tDEFINICION_MODIFICAR_DES = 'Definici\\u00f3n Modificar';\n\tFIJOAUTORIZADOR_DES = 'Definici\\u00f3n Fijo Autorizador';\n\tLISTA_ACCION = [\n\t\t{codigo: this.FIJOEVALUADOR, nombre: this.FIJOEVALUADOR_DES},\n\t\t{codigo: this.FIJOAUTORIZADOR, nombre: this.FIJOAUTORIZADOR_DES},\n\t\t{codigo: this.DEFINICION_MODIFICAR, nombre: this.DEFINICION_MODIFICAR_DES},\n\t]\n\n\tINDICADOR = 'indicador';\n\tPRIORIDAD = 'prioridad';\n\tACCION_META = 'accionMeta';\n\tMEDIDA = 'medida';\n\tPESO = 'peso';\n\tPESO2 = 'peso2';\n\tVALORACUERDO = 'valorAcuerdo';\n\tPORCENTAJEACUERDO = 'porcentajeAcuerdo';\n\tPORCENTAJE = 'porcentaje';\n\tPORCENTAJE100 = 'porcentaje100';\n\tESPERADO = 'esperado';\n\tCODIGOOBJETIVO = 'codigoObjetivo';\n\tTEMACAPACITACION = 'temaCapacitacion';\n\n\tLISTAMETA1 = 'listaMeta1';\n\tMETAESCALA = 'metaEscala';\n\tVALORALCANCE1 = 'valorAlcance1';\n\tVALORALCANCE2 = 'valorAlcance2';\n\tVALORALCANCE3 = 'valorAlcance3';\n\tFECHAINICIO = 'fechaInicio';\n\tALCANCE = 'alcance';\n\tOBSERVACION = 'observacion';\n\tCADENA1 = 'cadena1';\n\tCADENA2 = 'cadena2';\n\tCADENA3 = 'cadena3';\n\tCADENA4 = 'cadena4';\n\tEMPRESA = 'empresa';\n\tORDEN = 'orden';\n\tORDENADICION = \"ordenAdicion\";\n\tOBJETIVOGENERAL = 'objetivoGeneral';\n\tOBJETIVOGENERALUNICO = 'objetivoGeneralUnico';\n\tLISTAMETA2 = 'listaMeta2';\n\tLISTAMETA3 = 'listaMeta3';\n\tLISTAMETA4 = 'listaMeta4';\n\tLISTAMETA5 = 'listaMeta5';\n\tFUNCIONPUESTO = 'funcionPuesto';\n\t\n\n\tSEG_PORCENTAJE = 'seguimiento_porcentaje';\n\tSEG_PORCENTAJEACUERDO = 'seguimiento_porcentajeAcuerdo';\n\tSEG_VALOR = 'seguimiento_valor1';\n\tSEG_ALCANCE = 'seguimiento_alcance';\n\tSEG_OBSERVACION = 'seguimiento_observacion';\n\tSEG_TEXTO1 = 'seguimiento_texto1';\n\tSEG_TEXTO2= 'seguimiento_texto2';\n\tSEG_CADENA1 = 'seguimiento_cadena1';\n\tSEG_CADENA2 = 'seguimiento_cadena2';\n\tSEG_FECHA = 'seguimiento_fecha';\n\tSEG_AVISO = 'seguimiento_aviso';\n\tSEG_INCLUIR_ANEXOS = 'seguimiento_anexos';\n\tSEG_CALIFACION = 'seguimiento_calificacion';\n\tSEG_LISTA1='seguimiento_lista1';\n\tSEG_LISTA2='seguimiento_lista2';\n\tSEG_LISTA3='seguimiento_lista3';\n\n\tMETAEVAL_PORCENTAJE = 'evaluacion_porcentaje';\n\tMETAEVAL_VALOR = 'evaluacion_valor1';\n\tMETAEVAL_ALCANCE = 'evaluacion_alcance';\n\tMETAEVAL_OBSERVACION = 'evaluacion_observacion';\n\tMETAEVAL_TEXTO1 = 'evaluacion_texto1';\n\tMETAEVAL_TEXTO2 = 'evaluacion_texto2';\n\tMETAEVAL_CADENA1 = 'evaluacion_cadena1';\n\tMETAEVAL_CADENA2 = 'evaluacion_cadena2';\n\tMETAEVAL_FECHA = 'evaluacion_fecha';\n\tMETAEVAL_AVISO = 'evaluacion_aviso';\n\tMETAEVAL_CALIFICACION = 'evaluacion_calificacion';\n\tMETAEVAL_LISTA1 = 'evaluacion_lista1';\n\tMETAEVAL_LISTA2 = 'evaluacion_lista2';\n\tMETAEVAL_LISTA3 = 'evaluacion_lista3';\n\tCOMPETENCIA_SEGUN_FILTRO_PERIODO = 'competencia_segun_filtro_periodo';\n\tANEXO_META='anexoMeta';\n\tANEXO_META2='anexoMeta2';\n\tSEG_UN_ANEXO='seguimiento_un_anexo'\n\n\tLISTA_CAMPOS_DEFINICION = [\n\t\t{codigo: this.TEMA, nombre: this.TEMA},\n\t\t{codigo: this.TEXTO1, nombre: this.TEXTO1},\n\t\t{codigo: this.TEXTO2, nombre: this.TEXTO2},\n\t\t{codigo: this.INDICADOR, nombre: this.INDICADOR},\n\t\t{codigo: this.PRIORIDAD, nombre: this.PRIORIDAD},\n\t\t{codigo: this.ACCION_META, nombre: this.ACCION_META},\n\t\t{codigo: this.MEDIDA, nombre: this.MEDIDA},\n\t\t{codigo: this.PESO, nombre: this.PESO},\n\t\t{codigo: this.PESO2, nombre: this.PESO2},\n\t\t{codigo: this.VALORACUERDO, nombre: this.VALORACUERDO},\n\t\t{codigo: this.PORCENTAJE, nombre: this.PORCENTAJE},\n\t\t{codigo: this.PORCENTAJE100, nombre: this.PORCENTAJE100},\n\t\t{codigo: this.ESPERADO, nombre: this.ESPERADO},\n\t\t{codigo: this.CODIGOOBJETIVO, nombre: this.CODIGOOBJETIVO},\n\t\t{codigo: this.CURSO, nombre: this.CURSO},\n\t\t{codigo: this.TEMACAPACITACION, nombre: this.TEMACAPACITACION},\n\t\t{codigo: this.LISTAMETA1, nombre: this.LISTAMETA1},\n\t\t{codigo: this.LISTAMETA2, nombre: this.LISTAMETA2},\n\t\t{codigo: this.LISTAMETA3, nombre: this.LISTAMETA3},\n\t\t{codigo: this.LISTAMETA4, nombre: this.LISTAMETA4},\n\t\t{codigo: this.LISTAMETA5, nombre: this.LISTAMETA5},\n\t\t{codigo: this.METAESCALA, nombre: this.METAESCALA},\n\t\t{codigo: this.VALORALCANCE1, nombre: this.VALORALCANCE1},\n\t\t{codigo: this.VALORALCANCE2, nombre: this.VALORALCANCE2},\n\t\t{codigo: this.VALORALCANCE3, nombre: this.VALORALCANCE3},\n\t\n\t\t{codigo: this.FECHAINICIO, nombre: this.FECHAINICIO},\n\t\t{codigo: this.FECHAFINAL, nombre: this.FECHAFINAL},\n\t\t{codigo: this.CADENA1, nombre: this.CADENA1},\n\t\t{codigo: this.CADENA2, nombre: this.CADENA2},\n\t\t{codigo: this.CADENA3, nombre: this.CADENA3},\n\t\t{codigo: this.CADENA4, nombre: this.CADENA4},\n\t\t{codigo: this.EMPRESA, nombre: this.EMPRESA},\n\t\t{codigo: this.FUNCIONPUESTO, nombre: this.FUNCIONPUESTO},\n\t\t{codigo: this.COMPETENCIAS_DIMENSION, nombre: this.COMPETENCIAS_DIMENSION_DESC},\n\t\t{codigo: this.ORDEN, nombre: this.ORDEN},\n\t\t{codigo: this.ORDENADICION, nombre: this.ORDENADICION},\n\t\t{codigo: this.OBJETIVOGENERAL, nombre: this.OBJETIVOGENERAL},\n\t\t{codigo: this.OBJETIVOGENERALUNICO, nombre: this.OBJETIVOGENERALUNICO},\n\t\t{codigo: this.ANEXO_META, nombre: this.ANEXO_META},\n\t\t{codigo: this.ANEXO_META2, nombre: this.ANEXO_META2},\n\t\t{codigo: this.SEG_UN_ANEXO, nombre: this.SEG_UN_ANEXO},\n\t\t{codigo: this.SEG_INCLUIR_ANEXOS, nombre: this.SEG_INCLUIR_ANEXOS},\n\t\t{codigo: this.SEG_PORCENTAJEACUERDO, nombre: this.SEG_PORCENTAJEACUERDO},\n\t\t{codigo: this.SEG_VALOR, nombre: this.SEG_VALOR},\n\t\t{codigo: this.SEG_ALCANCE, nombre: this.SEG_ALCANCE},\n\t\t{codigo: this.SEG_OBSERVACION, nombre: this.SEG_OBSERVACION},\n\t\t{codigo: this.SEG_TEXTO1, nombre: this.SEG_TEXTO1},\n\t\t{codigo: this.SEG_TEXTO2, nombre: this.SEG_TEXTO2},\n\t\t{codigo: this.SEG_CADENA1, nombre: this.SEG_CADENA1},\n\t\t{codigo: this.SEG_CADENA2, nombre: this.SEG_CADENA2},\n\t\t{codigo: this.SEG_AVISO, nombre: this.SEG_AVISO},\n\t\t{codigo: this.SEG_FECHA, nombre: this.SEG_FECHA},\n\t\t{codigo: this.SEG_PORCENTAJE, nombre: this.SEG_PORCENTAJE},\n\t\t{codigo: this.SEG_CALIFACION, nombre: this.SEG_CALIFACION},\n\t\t{codigo: this.SEG_LISTA1, nombre: this.SEG_LISTA1},\n\t\t{codigo: this.SEG_LISTA2, nombre: this.SEG_LISTA2},\n\t\t{codigo: this.SEG_LISTA3, nombre: this.SEG_LISTA3},\n\t\t\n\t\t{codigo: this.METAEVAL_VALOR, nombre: this.METAEVAL_VALOR},\n\t\t{codigo: this.METAEVAL_ALCANCE, nombre: this.METAEVAL_ALCANCE},\n\t\t{codigo: this.METAEVAL_OBSERVACION, nombre: this.METAEVAL_OBSERVACION},\n\t\t{codigo: this.METAEVAL_TEXTO1, nombre: this.METAEVAL_TEXTO1},\n\t\t{codigo: this.METAEVAL_TEXTO2, nombre: this.METAEVAL_TEXTO2},\n\t\t{codigo: this.METAEVAL_CADENA1, nombre: this.METAEVAL_CADENA1},\n\t\t{codigo: this.METAEVAL_CADENA2, nombre: this.METAEVAL_CADENA2},\n\t\t{codigo: this.METAEVAL_AVISO, nombre: this.METAEVAL_AVISO},\n\t\t{codigo: this.METAEVAL_FECHA, nombre: this.METAEVAL_FECHA},\n\t\t{codigo: this.METAEVAL_PORCENTAJE, nombre: this.METAEVAL_PORCENTAJE},\n\t\t{codigo: this.METAEVAL_CALIFICACION, nombre: this.METAEVAL_CALIFICACION},\n\t\t{codigo: this.METAEVAL_LISTA1, nombre: this.METAEVAL_LISTA1},\n\t\t{codigo: this.METAEVAL_LISTA2, nombre: this.METAEVAL_LISTA2},\n\t\t{codigo: this.METAEVAL_LISTA3, nombre: this.METAEVAL_LISTA3},\n\t\t{codigo: this.COMPETENCIA_SEGUN_FILTRO_PERIODO, nombre: this.COMPETENCIA_SEGUN_FILTRO_PERIODO},\n\t]\n\t\n\n\tLISTA_SEG_COMPENTENCIA = [\n\t\t{codigo: this.SEG_PORCENTAJEACUERDO, nombre: this.SEG_PORCENTAJEACUERDO},\n\t\t{codigo: this.SEG_VALOR, nombre: this.SEG_VALOR},\n\t\t{codigo: this.SEG_ALCANCE, nombre: this.SEG_ALCANCE},\n\t\t{codigo: this.SEG_OBSERVACION, nombre: this.SEG_OBSERVACION},\n\t\t{codigo: this.SEG_TEXTO1, nombre: this.SEG_TEXTO1},\n\t\t{codigo: this.SEG_TEXTO2, nombre: this.SEG_TEXTO2},\n\t\t{codigo: this.SEG_CADENA1, nombre: this.SEG_CADENA1},\n\t\t{codigo: this.SEG_CADENA2, nombre: this.SEG_CADENA2},\n\t\t{codigo: this.SEG_AVISO, nombre: this.SEG_AVISO},\n\t\t{codigo: this.SEG_FECHA, nombre: this.SEG_FECHA},\n\t\t{codigo: this.SEG_PORCENTAJE, nombre: this.SEG_PORCENTAJE},\n\t\t{codigo: this.SEG_LISTA1, nombre: this.SEG_LISTA1},\n\t\t{codigo: this.SEG_LISTA2, nombre: this.SEG_LISTA2},\n\t\t{codigo: this.SEG_LISTA3, nombre: this.SEG_LISTA3},\n\t\t{codigo: this.METAEVAL_CALIFICACION, nombre: this.METAEVAL_CALIFICACION},\n\t]\n\n\tFECHA_CUMPLIMIENTO = 'fechaCumplimiento';\n\tESTADO = 'estado';\n\tSEG_ADICIONAL= 'seguimiento_adicional';\n\tSEG_FECHA_NUEVA = 'seguimiento_fechaNueva';\n\t\n\tLISTA_CAMPOS_PLAN_ACCION = [\n\t\t{codigo: this.ESTADO, nombre: this.ESTADO},\n\t\t{codigo: this.TEMA, nombre: this.TEMA},\n\t\t{codigo: this.INDICADOR, nombre: this.INDICADOR},\n\t\t{codigo: this.FECHA_CUMPLIMIENTO, nombre: this.FECHA_CUMPLIMIENTO},\n\t\t{codigo: this.SEG_OBSERVACION, nombre: this.SEG_OBSERVACION},\n\t\t{codigo: this.SEG_ADICIONAL, nombre: this.SEG_ADICIONAL},\n\t\t{codigo: this.SEG_FECHA_NUEVA, nombre: this.SEG_FECHA_NUEVA},\n\t\t{codigo: this.SEG_PORCENTAJE, nombre: this.SEG_PORCENTAJE},\n\t]\n\tLISTA_CAMPOS_SEGUIMIENTO = [\n\t\t{codigo: this.PORCENTAJE, nombre: this.PORCENTAJE},\n\t\t{codigo: this.VALORACUERDO, nombre: this.VALORACUERDO},\n\t\t{codigo: this.PORCENTAJEACUERDO, nombre: this.PORCENTAJEACUERDO},\n\t\t{codigo: this.ALCANCE, nombre: this.ALCANCE},\n\t\t{codigo: this.OBSERVACION, nombre: this.OBSERVACION},\n\t]\n\n\tDEFINIDO = 'N';\n\tEVALUADO_DES = 'Evaluado';\n\tDEFINIDO_DES = 'Definido';\n\tLISTA_ACCION_INDICADORES = [\n\t\t{codigo: this.DEFINIDO, nombre: this.DEFINIDO_DES},\n\t\t{codigo: this.EVALUADOR, nombre: this.EVALUADO_DES},\n\t]\n\n\t\n\n\tEMPRESAS_DES = 'Todas las empresas';\n\tLISTA_EMPRESA = [\n\t\t{codigo: this.PORITEMS, nombre: this.EMPRESAS_DES},\n\t]\n\n\tLISTA_01 = 'L01';\n\tLISTA_01_DES = 'Lista 01';\n\tLISTA_02 = 'L02';\n\tLISTA_02_DES = 'Lista 02';\n\tLISTA_03 = 'L03';\n\tLISTA_03_DES = 'Lista 03';\n\tLISTA_04 = 'L04';\n\tLISTA_04_DES = 'Lista 04';\n\tLISTA_05 = 'L05';\n\tLISTA_05_DES = 'Lista 05';\n\t\n\tLISTA_BASE = [\n\t\t{codigo: this.LISTA_01, nombre: this.LISTA_01_DES},\n\t\t{codigo: this.LISTA_02, nombre: this.LISTA_02_DES},\n\t\t{codigo: this.LISTA_03, nombre: this.LISTA_03_DES},\n\t\t{codigo: this.LISTA_04, nombre: this.LISTA_04_DES},\n\t\t{codigo: this.LISTA_05, nombre: this.LISTA_05_DES},\n\t]\n\n\tOBJETIVO = 'O';\n\tDIMENSION = 'D';\n\tOBJETIVODES = 'Objetivo';\n\tDIMENSIONDES = 'Dimension';\n\tMAPA_FUENTE = [\n\t\t{codigo: this.ITEM, nombre: this.ITEMDES},\n\t\t{codigo: this.OBJETIVO, nombre: this.OBJETIVODES},\n\t\t{codigo: this.DIMENSION, nombre: this.DIMENSIONDES},\n\t]\n\n\tNIVELES = [\n\t\t{codigo: '1', nombre: '1'},\n\t\t{codigo: '2', nombre: '2'},\n\t\t{codigo: '3', nombre: '3'},\n\t\t{codigo: '4', nombre: '4'},\n\t\t{codigo: '5', nombre: '5'},\n\t\t{codigo: '6', nombre: '6'},\n\t\t{codigo: '7', nombre: '7'},\n\t\t{codigo: '8', nombre: '8'},\n\t\t{codigo: '9', nombre: '9'},\n\t]\n\tMAPATIPOSINDICADORES = [\n\t\t{codigo: this.EVALUADORCOMPETE_QC, nombre: this.EVALUADORCOMPETE_QC_DES},\n\t\t{codigo: this.PORCOMPE, nombre: this.PORCOMPE_DES},\n\t\t{codigo: this.EVALUADOR_QC, nombre: this.EVALUADOR_QC_DES},\n\t\t{codigo: this.HERRAMIENTAS, nombre: this.HERRAMIENTAS_DES},\n\t\t{codigo: this.RESUMEN, nombre: this.RESUMEN_DES},\n\t\t{codigo: this.ELEMENTOCONSENSO, nombre: this.ELEMENTOCONSENSO_DES},\n\t\t{codigo: this.CONSENSO, nombre: this.CONSENSO_DES},\n\t\t{codigo: this.NOAPLICA, nombre: this.NOAPLICADES},\n\t]\n\n\tMANUAL = 'M';\n\tAUTOMATICA = 'A';\n\tMANUAL_DES = 'Manual';\n\tAUTOMATICA_DES = 'Automatica';\n\t\n\tMAPATIPOSENTRADA = [\n\t\t{codigo: this.MANUAL, nombre: this.MANUAL_DES},\n\t\t{codigo: this.AUTOMATICA, nombre: this.AUTOMATICA_DES},\n\t]\n\t\n\tOPORTUNIDAD = 'O';\n\tGUIA = 'G';\n\tOPORTUNIDAD_DES = 'Oportunidad de Mejora';\n\tGUIA_DES = 'Guia de Desarrollo';\n\t\n\tMAPADEFINICIONES = [\n\t\t{codigo: this.OPORTUNIDAD, nombre: this.OPORTUNIDAD_DES},\n\t\t{codigo: this.GUIA, nombre: this.GUIA_DES},\n\t]\n\t\n\tCUESTIONARIO = 'C';\n\tHERRAMIENTA = 'H';\n\tCUESTIONARIO_DES = 'Cuestionario';\n\tHERRAMIENTA_DES = 'Herramienta';\n\t\n\tTIPOREPORTE = [\n\t\t{codigo: this.CUESTIONARIO, nombre: this.CUESTIONARIO_DES},\n\t\t{codigo: this.HERRAMIENTA, nombre: this.HERRAMIENTA_DES},\n\t]\n\n\tPORGRUPO = 'G';\n\tPORGRUPO_DES = 'Grupo';\n\n\tPORITEM = 'I';\n\tPORITEM_DES = 'Item';\n\n\tMAPATIPOSINDICADORESPLANSUCESION = [\n\t\t{codigo: this.RESUMEN, nombre: this.RESUMEN_DES},\n\t\t{codigo: this.PORGRUPO, nombre: this.PORGRUPO_DES},\n\t\t{codigo: this.PORITEM, nombre: this.PORITEM_DES},\n\t\t{codigo: this.NOAPLICA, nombre: this.NOAPLICADES},\n\t]\n\n\tBASE = 'B';\n\n\tESTADO_PROCESO = 'P';\n\tESTADO_CERRADO = 'C';\n\tESTADO_SEGUIMIENTO = 'S';\n\t\n\tESTADO_PROCESO_DES = 'Proceso';\n\tESTADO_CERRADO_DES = 'Cerrado';\n\tESTADO_SEGUIMIENTO_DES = 'Seguimiento';\n\t\n\tMAPAESTADOS = [\n\t\t{codigo: this.ESTADO_PROCESO, nombre: this.ESTADO_PROCESO_DES},\n\t\t{codigo: this.ESTADO_CERRADO, nombre: this.ESTADO_CERRADO_DES},\n\t\t{codigo: this.ESTADO_SEGUIMIENTO, nombre: this.ESTADO_SEGUIMIENTO_DES},\n\t]\n\n\tTABLAGESTIONPERIODO = 'GESTIONPERIODO_GEP';\n\tGESTION_HERRAMIENTA = 'GH';\n\t\n\t\n\t\n\n\tRESUMEN_INSTRUCTOR = 'A';\n\tRESUMEN_EVENTO = 'C';\n\t\n\tEVALUACION_INSTRUCTOR = 'EI';\n\tEVALUACION_EVENTO = 'EE';\n\tENCUESTA_JEFE = 'EJ';\n\t\t\n\tRESUMEN_INSTRUCTOR_DESC = 'Resumen Instructor';\n\tRESUMEN_EVENTO_DESC = 'Resumen Evento';\n\tEVALUACION_INSTRUCTOR_DESC = 'Evaluacion Instructor';\n\tEVALUACION_EVENTO_DESC = 'Evaluacion Evento';\n\tENCUESTA_JEFE_EVENTO_DESC = 'Encuesta Jefe';\n\t\n\t\n\tLISTA_TIPO_RESUMEN_EVALUACION = [\n\t\t{codigo: this.RESUMEN_INSTRUCTOR, nombre: this.RESUMEN_INSTRUCTOR_DESC},\n\t\t{codigo: this.RESUMEN_EVENTO, nombre: this.RESUMEN_EVENTO_DESC},\n\t]\n\t\n\tLISTA_TIPO_EVALUACION = [\n\t\t{codigo: this.EVALUACION_INSTRUCTOR, nombre: this.EVALUACION_INSTRUCTOR_DESC},\n\t\t{codigo: this.EVALUACION_EVENTO, nombre: this.EVALUACION_EVENTO_DESC},\n\t\t{codigo: this.ENCUESTA_JEFE, nombre: this.ENCUESTA_JEFE_EVENTO_DESC},\n\t]\n\t\n\tSELECCION = 'S';\n\t\n\tBIENESTAR = 'B';\n\t\n\t\n\tREPORTEFASE= 'F';\n\tREPORTEFASEDES = 'Fase';\n\tREPORTEHERRAMIENTA = 'H';\n\tREPORTEHERRAMIENTASDES= 'Gestión Herramienta';\n\tREPORTELISTADOHERRAMIENTA = 'L';\n\tREPORTELISTADOHERRAMIENTASDES= 'Listado Herramienta Final';\n\n\tLISTAAPLICAREPORTE= [\n\t\t{codigo: this.REPORTEFASE, nombre: this.REPORTEFASEDES},\n\t\t{codigo: this.REPORTEHERRAMIENTA, nombre: this.REPORTEHERRAMIENTASDES},\n\t\t{codigo: this.REPORTELISTADOHERRAMIENTA, nombre: this.REPORTELISTADOHERRAMIENTASDES},\n\t]\n\tDETALLADO_DES2 = 'Detallado'\n\tDETALLADOINGRESAR = 'I';\n\tDETALLADOINGRESAR_DES = 'Detallado Ingresar';\n\tDETALLADO = 'D';\n\tDETALLADO_DES = 'Detallado Proponer';\n\tLISTA_TABLA = 'T';\n\tLISTA_TABLA_DES = 'Lista Tabla';\n\tLISTA_TIPO_TABLA = [\n\t\t{codigo: this.DETALLADO, nombre: this.DETALLADO_DES},\n\t\t{codigo: this.LISTA_TABLA, nombre: this.LISTA_TABLA_DES},\n\t\t{codigo: this.DETALLADOINGRESAR, nombre: this.DETALLADOINGRESAR_DES},\n\t]\n\tLISTA_TIPO_TABLA2 = [\n\t\t{codigo: this.DETALLADO, nombre: this.DETALLADO_DES2},\n\t\t{codigo: this.LISTA_TABLA, nombre: this.LISTA_TABLA_DES},\n\t]\n\t\n\tAUTOEVALUACION = 'AUTO';\n\tJEFEEVALUA = 'JEFE';\n\tAUTOEVALUACION_JEFE = 'AUTO-JEFE';\n\tJEFEEVALUA_AUTO = 'JEFE-AUTO';\n\n\tAUTOEVALUACION_DES = 'Autoevaluar';\n\tJEFEEVALUA_DES = 'Evaluador Jefe';\n\tAUTOEVALUACION_JEFE_DES = 'Autoevaluar, nombre: this.Autoriza Jefe';\n\tJEFEEVALUA_AUTO_DES = 'Evaluador Jefe, nombre: this.Autoriza Evaluado';\n\tNOAPLICA_DES = 'No aplica';\n\n\t\n\tLISTA_TIPO_ACTORES = [\n\t\t{codigo: this.AUTOEVALUACION, nombre: this.AUTOEVALUACION_DES},\n\t\t{codigo: this.JEFEEVALUA, nombre: this.JEFEEVALUA_DES},\n\t\t{codigo: this.AUTOEVALUACION_JEFE, nombre: this.AUTOEVALUACION_JEFE_DES},\n\t\t{codigo: this.JEFEEVALUA_AUTO, nombre: this.JEFEEVALUA_AUTO_DES},\n\t\t{codigo: this.NOAPLICA, nombre: this.NOAPLICADES},\n\t]\n\t\n\n\tAUTOEVALUACION_ACTOR_AVALA = 'ACTORAVALA';\n\tEVALUA_ACTOR_EVALUADO_AVALA = 'EVALUAVALA';\n\tACTOR = 'ACTOR';\n\tMULTIPLE = 'MULTIPLE';\n\tNO_APLICA = 'N';\n\n\tAUTOEVALUACION_ACTOR_AVALA_DESC = 'Autoevaluación -- Actor relacionado autoriza';\n\tEVALUA_ACTOR_EVALUADO_AVALA_DESC = 'Actor relacionado elabora evaluacion - Evaluado autoriza';\n\tACTOR_DESC = 'Actor relacionado elabora evaluación - no hay autorización';\n\tMULTIPLE_DES = 'Múltiple actores, se relaciona al programar';\n\tNO_APLICA_DES = 'No aplica';\n\n\tLISTA_ACTORES = [\n\t\t{codigo: this.AUTOEVALUACION_ACTOR_AVALA, nombre: this.AUTOEVALUACION_ACTOR_AVALA_DESC},\n\t\t{codigo: this.EVALUA_ACTOR_EVALUADO_AVALA, nombre: this.EVALUA_ACTOR_EVALUADO_AVALA_DESC},\n\t\t{codigo: this.ACTOR, nombre: this.ACTOR_DESC},\n\t\t{codigo: this.MULTIPLE, nombre: this.MULTIPLE_DES},\n\t\t{codigo: this.NO_APLICA, nombre: this.NO_APLICA_DES},\n\t]\n\t\n\n\n\tTIPOPRESENTA_PERIODO = 'periodo';\n\tTIPOPRESENTA_RESUMEN = 'resumen';\n\tTIPOPRESENTA_FILTRO = 'filtro';\n\n\tLISTA_TIPOPRESENTACION = [\n\t\t{codigo: this.TIPOPRESENTA_FILTRO, nombre: 'Filtrar Herramientas de gestion'},\n\t\t{codigo: this.TIPOPRESENTA_RESUMEN, nombre: 'Mostrar resumen de herramienta gestion'},\n\n\t\t\n\t]\n\n\tEVALUACION_PERSONA = 'S';\n\tEVALUACION_GRUPAL = 'N'\n\tDES_EVALUACION_PERSONA = 'Evaluacion por persona';\n\tDES_EVALUACION_GRUPAL = 'Evaluacion grupal'\n\n\tLISTA_INDIVIDUAL = [\n\t\t{codigo: this.EVALUACION_PERSONA, nombre: this.DES_EVALUACION_PERSONA},\n\t\t{codigo: this.EVALUACION_GRUPAL, nombre:  this.DES_EVALUACION_GRUPAL},\n\t]\n\n\n\tCARACTERESEXEDIDOS_DESC= 'Ha excedido la cantidad caracteres permitidos para la definicion de valores por favor elimine o simplifique algunos valores e intente de nuevo'\n\n\tVIGENCIADES = 'VIGENTE';\n\tNO_VIGENCIADESC = 'NO VIGENTE'\n\t\n\n\tMAPAVIGENCIA = [\n\t\t{codigo: Constantes.CONSTANTE_SI, nombre: this.VIGENCIADES},\n\t\t{codigo: Constantes.CONSTANTE_NO, nombre:  this.NO_VIGENCIADESC},\n\t]\nMANUAL_PROGRAMA = 'N'\nMANUAL_PROGRAMA_DESC = 'Manual'\nAPLICA_PROGRAMA = 'S'\nAPLICA_PROGRAMA_DESC = 'Genera automaticamente, posterior cierre fase'\nPERIODO_PROGRAMA = 'P'\nPERIODO_PROGRAMA_DESC = 'Genera automaticamente, segun fechas periodo de evaluaci' + Constantes.O_TIDLE_MIN + 'n'\n\n\n\tLISTAAUTOMATICO = [\n\t\t{codigo: this.MANUAL_PROGRAMA, nombre: this.MANUAL_PROGRAMA_DESC},\n\t\t{codigo: this.APLICA_PROGRAMA, nombre:  this.APLICA_PROGRAMA_DESC},\n\t\t{codigo: this.PERIODO_PROGRAMA, nombre:  this.PERIODO_PROGRAMA_DESC},\n\t]\n\n\tNOHISTORICO = 'N'\n\tNOHISTORICO_DESC = 'No mostrar'\n\t\n\tSIHISTORICO = 'S'\n\tSIHISTORICO_DESC = 'Mostrar ignorar responsable'\n\t\n\tSOLOHISTORICO = 'E'\n\tSOLOHISTORICO_DESC = 'Mostrar seg' + Constantes.U_TILDE_MIN + 'n responsable'\n\t\n\n\t\n\tLISTAHISTORICO = [\n\t\t{codigo: this.NOHISTORICO, nombre: this.NOHISTORICO_DESC},\n\t\t{codigo: this.SIHISTORICO, nombre:  this.SIHISTORICO_DESC},\n\t\t{codigo: this.SOLOHISTORICO, nombre:  this.SOLOHISTORICO_DESC},\n\t]\n\t\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaest1') { this.LISTAESTADOTERCERACARPETA_TIPOEVALUADOR.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listafuente') { this.MAPA_FUENTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listadefin') { this.MAPADEFINICIONES.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listaentra') { this.MAPATIPOSENTRADA.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listatevalu') { this.LISTA_TIPOEVALUADOR.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listaaccion') { this.LISTA_ACCION.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listabase') { this.LISTA_BASE.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listaestadog') { this.LISTAESTADOGESTIONHERRAMIENTA.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listapretipo') { this.LISTAPREGUNTATIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listatipofactorevaluacion') { this.LISTA_TIPO_FACTOR_EVALUACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listatiporesumenevaluacion') { this.LISTA_TIPO_RESUMEN_EVALUACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listatipoevaluacion') { this.LISTA_TIPO_EVALUACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listavigencia') { this.MAPAVIGENCIA.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listagestion') { this.LISTAESTADOGESTION.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listafactor') { this.LISTA_TIPO_FACTOR_EVALUACION_CREAR.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listaestado') { this.LISTA_ESTADO_EVALUACION_PRU_CAMBIO.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'listaestadoevaluacionpru') { this.LISTA_ESTADO_EVALUACION_PRU.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'mapaEstados') { this.MAPAESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\tif (args[0] == 'mapatiposindicadores') { this.MAPATIPOSINDICADORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n\treturn result;\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel , UtilsService } from 'general-library-union';\nimport Swal from 'sweetalert2';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GeneralService {\n  create(arg0: any) {\n    throw new Error('Method not implemented.');\n  }\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    console.log(error)\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  queryForList(general: GeneralModel): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/queryForList`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  queryForObject(general: GeneralModel): Observable<any> {\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/queryForObject`, general).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  cantidadRegistros(general: GeneralModel): Observable<number> {\n    return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/cantidadRegistros`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  crearRegistro(general: GeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/crearRegistro`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  delete(general: GeneralModel): Observable<number> {\n    return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/delete`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  update(general: GeneralModel): Observable<number> {\n    return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/update`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  procedure(general: GeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/procedure`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerJasper(rutaJasper): Observable<any> {\n    let formData = new FormData();\n    formData.append(\"jasper\", rutaJasper);\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/obtenerJasper`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n\n\n","import { HttpClient, HttpEvent, HttpParams, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AuthService, GeneralModel, StorageService, UtilsService } from 'general-library-union';\nimport { GeneralService } from './general.service';\nimport { EmpresaModel } from '../../modules/hojavida/models/EmpresaModel';\nimport { DatosBasicosEmpresaModel } from '../../modules/compensacion/models/DatosBasicosEmpresaModel';\n@Injectable({\n  providedIn: 'root'\n})\nexport class SaraAplicacionService {\n\n  constructor(private httpClient: HttpClient,\n    private authService: AuthService,\n    private generalService: GeneralService,\n    private utilsService: UtilsService,\n    private storageService: StorageService,) { }\n\n  async getCedula() {\n\n    if (this.authService.getTokenKey('tipoLogin') == 'C') {\n\n      var cedula = this.authService.getTokenKey('cedula') ? parseInt(this.authService.getTokenKey('cedula')) : null;\n\n      if (cedula == undefined || cedula == null) {\n\n        let usuario = this.authService.getTokenKey('usuario')\n        let listaHojaVida = await this.generalService.queryForList(new GeneralModel('HojaVidaDTO', null, false, { login: usuario })).toPromise();\n        if (listaHojaVida.length == 0 || listaHojaVida.length != 1) {\n          cedula = -1\n        } else {\n          cedula = listaHojaVida[0].identifica;\n        }\n\n      } else {\n        return cedula;\n      }\n    } else {\n      cedula = -1;\n    }\n    return cedula;\n  }\n\n  async getDocumento() {\n    if (this.authService.getTokenKey('tipoLogin') == 'C') {\n      console.log(this.authService.getTokenKey('usuario'))\n      var documento;\n      let usuario = this.authService.getTokenKey('usuario')\n      let listaHojaVida = await this.generalService.queryForList(new GeneralModel('HojaVidaDTO', null, false, { login: usuario })).toPromise();\n      if (listaHojaVida.length == 0 || listaHojaVida.length != 1) {\n        documento = '-1'\n      } else {\n        documento = listaHojaVida[0].documento;\n      }\n    } else {\n      documento = '-1';\n    }\n    return documento;\n  }\n\n  async getEmpresa(): Promise<EmpresaModel> {\n    let consultaEmpresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    if (consultaEmpresa != null) {\n      if (consultaEmpresa.llaveSeguridad == null) {\n        consultaEmpresa.llaveSeguridad = this.authService.getTokenKey('llaveEmpresa');\n        await this.generalService.update(new GeneralModel('EmpresaDTO', null, false, consultaEmpresa)).toPromise();\n      }\n    }\n    return consultaEmpresa;\n  }\n\n  async getDatosBasicosEmpresa(): Promise<DatosBasicosEmpresaModel> {\n    let consultaEmpresa: DatosBasicosEmpresaModel = await this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    return consultaEmpresa;\n  }\n\n  async isSoyYo(identificacion: string, informacionActiva: string) {\n    if (informacionActiva == null) {\n      return false;\n    }\n    if (informacionActiva == 'U') {\n      return false;\n    }\n    return identificacion != null && await this.getDocumento() == identificacion;\n  }\n\n  isAutoServicioPortal(): boolean {\n    return this.authService.getTokenKey('aplicacion').trim() == '10'\n  }\n\n  isCliente(): boolean {\n    return this.authService.getTokenKey('tipoLogin') == 'C';\n  } \n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { AuthService, GeneralModel, ParametrosGeneralModel, UtilsService } from \"general-library-union\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { ErrorIntecertorService } from 'general-library-union';\nimport { PuestoTrabajoModel } from '../models/PuestoTrabajoModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { UnidadCargoModel } from '../models/UnidadCargoModel';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PuestoTrabajoService {\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilService: UtilsService, private GeneralSvc: GeneralService,\n      private generalPipe : GeneralPipe\n    ) {\n        this.handleError = this.handleError.bind(this);\n      }\n    \n      private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          // A client-side or network error occurred. Handle it accordingly.\n          console.error('An error occurred:', error.error);\n        } else {\n          // The backend returned an unsuccessful response code.\n          // The response body may contain clues as to what went wrong.\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n      obtenerPuestosDependeNiveles(general?: ParametrosGeneralModel): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/obtenerPuestosDependeNiveles`, general).pipe(\n          catchError(this.handleError)\n        );\n      }\n      resumentCargoUnidad(general?: ParametrosGeneralModel): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/resumentCargoUnidad`, general).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      obtenerPuestosUnidad(general : PuestoTrabajoModel){\n        return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/obtenerPuestosUnidad`, general).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      actualizarPuestoTrabajo(general?: ParametrosGeneralModel): Observable<any>{\n        return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/actualizarPuestoTrabajo`, general).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n     async consultarListaPuestoTrabajo(puestoTrabajoDTO: PuestoTrabajoModel){\n\n        if(puestoTrabajoDTO.cargo != null && puestoTrabajoDTO.cargo != ''){\n          puestoTrabajoDTO.cargo = this.utilService.rightpad(puestoTrabajoDTO.cargo,8,null);\n        }\n        if((puestoTrabajoDTO.unidad != null && puestoTrabajoDTO.unidad != '')){\n          puestoTrabajoDTO.unidad = (this.utilService.rightpad(puestoTrabajoDTO.unidad, 12, null));\n        }\n        if ( puestoTrabajoDTO.tipoEstados!=null) {\n          return await this.GeneralSvc.queryForList(new GeneralModel('PuestoTrabajoDTO',\"PuestoTrabajo.obtenerListaPlantaSegunEstado\",false, puestoTrabajoDTO)).toPromise();\n          \n        }\n          return null;\n      }\n\n      traerListaPuesto(objeto: any): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/traerListaPuesto`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      construirPuestoLider(unidadCargo: UnidadCargoModel, puestoTrabajo: string ): Observable<any> {\n        let formData = new FormData();\n        formData.append(\"unidadCargo\", JSON.stringify(unidadCargo));\n        formData.append(\"puestoTrabajo\", puestoTrabajo);\n        return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/construirPuestoLider`, formData).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      traerListaPuestoContrato(objeto: any): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/traerListaPuestoContrato`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      traerListaPuestoDepende(objeto: any): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/traerListaPuestoDepende`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      obtenerPuestosUnidad_Cargo_Puesto(objeto: PuestoTrabajoModel): Observable<PuestoTrabajoModel[]> {\n        return this.httpClient.post<PuestoTrabajoModel[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/obtenerPuestosUnidad_Cargo_Puesto`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      cantidadPuestosUnidad_Cargo_Puesto(objeto: PuestoTrabajoModel): Observable<number> {\n        return this.httpClient.post<number>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/cantidadPuestosUnidad_Cargo_Puesto`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      traerListaPuestoLider(objeto: number): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/traerListaPuestoLider`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      reclasificacionPuesto(objeto: PuestoTrabajoModel): Observable<void> {\n        return this.httpClient.post<void>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/reclasificacionPuesto`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      quitarOtrosResponsables(objeto: PuestoTrabajoModel): Observable<void> {\n        return this.httpClient.post<void>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/quitarOtrosResponsables`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      ajustarRelacionPuesto(empresa: number, depende: string ): Observable<void> {\n        let formData = new FormData();\n        formData.append(\"empresa\", empresa.toString());\n        formData.append(\"depende\", depende);\n        return this.httpClient.post<void>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/ajustarRelacionPuesto`, formData).pipe(\n          catchError(this.handleError)\n        );\n      }\n      revisionPuestos(empresa: number, usuario: string ): Observable<void> {\n        let formData = new FormData();\n        formData.append(\"empresa\", empresa.toString());\n        formData.append(\"usuario\", usuario);\n        return this.httpClient.post<void>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/revisionPuestos`, formData).pipe(\n          catchError(this.handleError)\n        );\n      }\n      obtenerPuestosPersona(objeto: PuestoTrabajoModel): Observable<PuestoTrabajoModel[]> {\n        return this.httpClient.post<PuestoTrabajoModel[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/obtenerPuestosPersona`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n      cargarImagen(puesto: PuestoTrabajoModel): Observable<string> {\n        return this.httpClient.post<string>(`${this.utilService.obtenerUrlApi()}/requieretoken/talento/puestoTrabajo/cargarImagen`, puesto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      cargarListadoUnidadCliente(listaPuesto: PuestoTrabajoModel[]) : any[]{\n  \n        let mapa: Map<string, String> = new Map<string, String>();\n  \n        listaPuesto.forEach((item) => {\n          if (this.generalPipe.SI == item.facilitador || this.generalPipe.SI == item.responsableUnidad) {\n            mapa.set(item.unidad, item.unidad + ' - ' + item.nombreUnidad);\n          }\n        });\n  \n        return Array.from(mapa, ([key, label]) => ({ key, label }));\n        \n      }\n}","import { UnionModel } from 'general-library-union'\nimport { FormatoDatoModel } from './FormatoDatoModel';\nimport { FormatoFirmaModel } from './FormatoFirmaModel';\n\n\nexport class FormatoModel extends UnionModel {\n\tgetListaParaCampos() {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tgetLegalUnico() {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\n\tllave: number;\n\tdescripcion: string;\n\ttipo: string;\n\tdocumentos: string;\n\tformula: number;\n\ttipoCambioEmp: string;\n\tvincula: number;\n\taccion: string;\n\tformPadre: number;\n\tdefinitivo: string;\n\thojaVida: string;\n\tcampos: string;\n\ttipoPuestoTra: string;\n\ttipoAusencia: string;\n\torigenAusencia: string;\n\tregresion: string;\n\tpostLegaliza: string;\n\ttitulo1: string;\n\ttitulo2: string;\n\ttitulo3: string;\n\ttitulo4: string;\n\ttitulo5: string;\n\ttitulo6: string;\n\ttitulo7: string;\n\ttitulo8: string;\n\ttitulo9: string;\n\ttitulo10: string;\n\ttitulo11: string;\n\ttitulo12: string;\n\ttitulo13: string;\n\tadicional: string;\n\tdeterminado: string;\n\tafectaSueldo: string;\n\tclasePuesto: string;\n\ttitulo14: string;\n\tlegalUnico: string;\n\ttitulo15: string;\n\ttitulo16: string;\n\ttitulo17: string;\n\ttitulo18: string;\n\ttitulo19: string;\n\ttitulo20: string;\n\tdisponible: string;\n\tinterrumpe: string;\n\tbase: string;\n\tformato: string;\n\ttabla1: string;\n\ttabla2: string;\n\ttabla3: string;\n\ttablaMateria: string;\n\tnombreFormPadre: string;\n\ttipoAutomatico: string;\n\tusuario: string;\n\tgrupo: number ;\n\tformatoPadreDTO: FormatoModel;\n\t\n\tlistaParaCampos: FormatoDatoModel[];\n\tlistaParaCamposSolicitudFinal: FormatoDatoModel[];\n\tlistaParaLegalizacion: FormatoDatoModel[];\n\tlistaCamposDerogar: FormatoDatoModel[];\n\tlistaParaPuesto: FormatoDatoModel[];\n\tlistaSoporteItem: FormatoFirmaModel [];\n\tlistadoVariables: FormatoDatoModel [];\n\n\tasignaContrato:  string;\n\tcomodin:  string;\n\tseleccion:  string;\n\tplanilla:  string;\n\tgeneraFlexible:  string;\n\tingresoTiempo:  string;\n\tservicioValidador:  string;\n\taccionNovedades:  string;\n\ttipoServicio1:  string;\n\ttipoNovedadCambio:  string;\n\tmasivo:  string;\n\ttipoPermiso:  string;\n\taccionFormato: string;\n\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class ActoIngresoAusenciaModel extends UnionModel{\n\n\tcedula:number;\n\tformatoPadre:number;\n\tformatoOriginal:number;\n\taccionOriginal:string;\n\testado:number;\n\tllaveActo:string;\n\tcontrato:number;\n\tempresa:number;\n\tentidad:string;\n\tprorrogaFuncion:string;\n\tprorrogaTraslado:string;\n\tcargo:string;\n\tfechaInicio:Date;\n\tfechaFin:Date;\n\tvincula:string;\n\tduracion:number;\n\tfechaDocumento:Date;\n\tnumero:string;\n\ttipoDocumento:string;\n\tconsecutivo:number;\n\tunidad:string;\n\tnombreUnidad:string;\n\tcampoEstado:string;\n\trolUsuario:string;\n\tfiltroUnidad:string;\n\tantecesor:string;\n\tnumeroAntecesor:number;\n\tsucursal:string;\n\tdescripcionFormato:string;\n\tnombreSucursal:string;\n\tgrupo:number;\n\tusuarioLogin:string;\n\tnombrePersona:string;\n\n\tdescripcion: string;\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class TipoAusenciaModel extends UnionModel {\n\n\t\n\torigen: string;\n\torigenDiferente: string;\n\tcodigo: number;\n\tdescripcion: string;\n\tremunerada: string;\n\testado: string;\n\tmodoParametro: string;\n\tregresion: string;\n\tausenciaTiempos: string;\n\tpasivo: string;\n\ttipoReposo: string;\n\tformula: number;\n\tformulaInterrupcion: number;\n\tadjuntar: string;\n\tmensaje: string;\n\tsaludOcupacional: string;\n\taccionDisfrute: string;\n\taccionCompesa: string;\n\tmodo: string;\n\tlogin: string;\n\trolUsuario: string;\n\tfiltroLoginRol: string;\n\tfiltroCondicionDerecho: string;\n\tcodigoBase: string;\n\tclienteDescripcion: string;\n\tmanejoTurno: string;\n\tcantidadRango: number;\n\n\t//DATOS NO PERSISTENTES\n\tdescripcionModo: string;\n\t\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class DatosBasicosEmpresaModel extends UnionModel {\n\n\t\n\tempresa: number;\n\tflexible: string;\n\tlaboralRetira: string;\n\tdescripcionLaboralRetira: string;\n\tlaboralActivo: string;\n\tnitEmpresa: number; // : Debe selecciona todo los datos de EmpresaDTO ( memp_nit)\n\tdigEmpresa: number; // : Debe selecciona todo los datos de EmpresaDTO ( nemp_digito)\n\tnombreEmpresa: string; // : Debe selecciona todo los datos de EmpresaDTO ( (cemp_nombre)\n\tref1Empresa: string;// : Debe selecciona todo los datos de DatoBasicoEmpresaDTO ( cdbe_referencia1)\n\tref2Empresa: string;// : Debe solution todo los dates de DatoBasicoEmpresaDTO ( cdbe_referencia2)\n\tref3Empresa: string;\n\tfechalep: string;\n\tcontabilidad: number;\n\tanticipoVacaciones: number;\n\tpagoVacacion: number;\n\ttrabajando: string;\n\taspirante: string;\n\tcandidato: string;\n\tvacacion: string;\n\tcredito: string;\n\tdebito: string;\n\tpagoRegresion: number;\n\tconceptoLct: number;\n\topcionHoja: string;\n\tnumeroPagoLiquidar: number;\n\tpagoLiquidar: string;\n\tmoneda: string;\n\ttipoRepresenta: string;\n\tformatoPun: number;\n\tdobleRegistro: string;\n\tperfil: string;\n\ttipoAporte: string;\n\tpensionCp: string;\n\tdescripcionPensionCp: string;\n\tunificasS: string;\n\tsinCaracteresEspecial: string;\n\tsapProyecto: string;\n\tdireccionEmpresa: string;\n\ttipoVacaciones: string;\n\ttipoInterrumpe: string;\n\tpublicacionVacion: string;\n\ttipoFiltro: string;\n\tformaVaciones: string;\n\ttipoAjuste: string;\n\tcodigoConcepto: string;\n\ttipoDocumento: string;\n\tajusteDestino: string;\n\tcreditoAlterno: string;\n\tdebitoAlterno: string;\n\ttipoSolicitud: string;\n\tformularSeguridad: number;\n\toperador: string;\n\thojaNumero: string;\n\n\t}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'parametrosCompensacionPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\nexport class ParametrosCompensacion implements PipeTransform {\n\n    NO_APLICA = 'N'\n    NO_APLICA_DESC = 'No Aplica'\n\n    SI = 'S';\n    NO = 'N';\n    SI_DESC = 'Si';\n    NO_DESC = 'No';\n\n    LISTA_SINO = [\n        { codigo: this.SI, nombre: this.SI_DESC },\n        { codigo: this.NO, nombre: this.NO_DESC }\n    ]\n\n    /* CONCEPTOS */\n    CONCEPTO_VIGENTE = 'VIGENTE'\n    CONCEPTO_NOVIGENTE = 'NO VIGENTE'\n\n    LISTADO_ESTADO_CONCEPTO = [\n        { codigo: this.SI, nombre: this.CONCEPTO_VIGENTE },\n        { codigo: this.NO, nombre: this.CONCEPTO_NOVIGENTE }\n    ]\n\n    FORMULA_GENERAL = 'G'\n    FORMULA = 'F'\n    FORMULA_BENEFICIARIO = 'B'\n    FORMULA_VALOR_FIJO = 'M'\n    VALOR_FIJO = 'V'\n    FORMULA_GENERAL_DESC = 'Formula General'\n    FORMULA_DESC = 'Formula'\n    FORMULA_BENEFICIARIO_DESC = 'Formula Beneficiario'\n    FORMULA_VALOR_FIJO_DESC = 'Formula Valor Fijo'\n    VALOR_FIJO_DESC = 'Valor Fijo'\n\n    LISTADO_FORMULA = [\n        { codigo: this.FORMULA_GENERAL, nombre: this.FORMULA_GENERAL_DESC },\n        { codigo: this.FORMULA, nombre: this.FORMULA_DESC },\n        { codigo: this.FORMULA_BENEFICIARIO, nombre: this.FORMULA_BENEFICIARIO_DESC },\n        { codigo: this.FORMULA_VALOR_FIJO, nombre: this.FORMULA_VALOR_FIJO_DESC },\n        { codigo: this.VALOR_FIJO, nombre: this.VALOR_FIJO_DESC },\n    ]\n\n    CONCEPTO_DEVENGO = '+'\n    CONCEPTO_DEDUCCION = '-'\n    CONCEPTO_DEVENGO_DESC = 'DEVENGO'\n    CONCEPTO_DEDUCCION_DESC = 'DEDUCCION'\n\n    LISTADO_NATURALEZA_CONCEPTO = [\n        { codigo: this.CONCEPTO_DEVENGO, nombre: this.CONCEPTO_DEVENGO_DESC },\n        { codigo: this.CONCEPTO_DEDUCCION, nombre: this.CONCEPTO_DEDUCCION_DESC },\n    ]\n\n    REDONDEO_CERO_DECIMALES = Constantes.CONSTANTE_SI\n    NOAPLICA = Constantes.CONSTANTE_NO\n    REDONDEO_UN_DECIMAL = '1'\n    REDONDEO_DOS_DECIMALES = '2'\n    REDONDEO_CERO_DECIMALES_DESC = '0 DECIMALES'\n    NOAPLICADESC = 'No aplica';\n    REDONDEO_UN_DECIMAL_DESC = '1 DECIMAL'\n    REDONDEO_DOS_DECIMALES_DESC = '2 DECIMALES'\n\n\n    LISTA_REDONDEO_CONCEPTO = [\n        { codigo: this.REDONDEO_CERO_DECIMALES, nombre: this.REDONDEO_CERO_DECIMALES_DESC },\n        { codigo: this.REDONDEO_UN_DECIMAL, nombre: this.REDONDEO_UN_DECIMAL_DESC },\n        { codigo: this.REDONDEO_DOS_DECIMALES, nombre: this.REDONDEO_DOS_DECIMALES_DESC },\n        { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n    ]\n\n    CAMBIO_ASIGNACION_CONCEPTO = 'S'\n    CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO = 'A'\n    CAMBIO_ROL_CONCEPTO = 'R'\n    CAMBIO_TEMPORAL_CONCEPTO = 'T'\n    CAMBIO_ASIGNACION_CONCEPTO_DES = 'Cambio Asignacion'\n    CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES = 'Cambio Asignacion/Temporal'\n    CAMBIO_ROL_CONCEPTO_DES = 'Cambio Rol'\n    CAMBIO_TEMPORAL_CONCEPTO_DES = 'Cambio Temporal'\n\n\n    LISTA_CAMBIO_CONCEPTO = [\n        { codigo: this.CAMBIO_ASIGNACION_CONCEPTO, nombre: this.CAMBIO_ASIGNACION_CONCEPTO_DES },\n        { codigo: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO, nombre: this.CAMBIO_ASIGNACIONTEMPORAL_CONCEPTO_DES },\n        { codigo: this.CAMBIO_ROL_CONCEPTO, nombre: this.CAMBIO_ROL_CONCEPTO_DES },\n        { codigo: this.CAMBIO_TEMPORAL_CONCEPTO, nombre: this.CAMBIO_TEMPORAL_CONCEPTO_DES },\n        { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n    ]\n\n    AJUSTE_PARCIAL_CONCEPTO = 'P'\n    AJUSTE_TOTAL_CONCEPTO = 'T'\n    AJUSTE_PARCIAL_CONCEPTO_DESC = 'PARCIAL'\n    AJUSTE_TOTAL_CONCEPTO_DESC = 'TOTAL'\n\n    LISTA_TIPOAJUSTE_CONCEPTO = [\n        { codigo: this.AJUSTE_PARCIAL_CONCEPTO, nombre: this.AJUSTE_PARCIAL_CONCEPTO_DESC },\n        { codigo: this.AJUSTE_TOTAL_CONCEPTO, nombre: this.AJUSTE_TOTAL_CONCEPTO_DESC }\n    ]\n\n    FLEXIBLE_BENEFICIO_CONCEPTO = 'F'\n    FLEXIBLE_BENEFICIOADI_CONCEPTO = 'A'\n    FLEXIBLE_CRUCE_CONCEPTO = 'C'\n    FLEXIBLE_BENEFICIO_CONCEPTO_DESC = 'BENEFICIO'\n    FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC = 'BENEFICIO ADICIONAL'\n    FLEXIBLE_CRUCE_CONCEPTO_DESC = 'BENEFICIO CRUCE'\n\n\n    LISTA_FLEXIBLE_CONCEPTO = [\n        { codigo: this.FLEXIBLE_BENEFICIO_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIO_CONCEPTO_DESC },\n        { codigo: this.FLEXIBLE_BENEFICIOADI_CONCEPTO, nombre: this.FLEXIBLE_BENEFICIOADI_CONCEPTO_DESC },\n        { codigo: this.FLEXIBLE_CRUCE_CONCEPTO, nombre: this.FLEXIBLE_CRUCE_CONCEPTO_DESC },\n        { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC }\n    ]\n\n    /* VARIABLE / TIPO */\n    FECHA = 'F';\n    HORA = 'H';\n    NUMERODES = 'N\\u00DAMERO';\n    FECHADES = 'FECHA';\n    HORADES = 'HORA';\n\n    LISTATIPO = [\n        { codigo: this.NO, nombre: this.NUMERODES },\n        { codigo: this.FECHA, nombre: this.FECHADES },\n        { codigo: this.HORA, nombre: this.HORADES }\n    ]\n\n    INICIOANO = 'A';\n    FINANO = 'O';\n    INICIOMES = 'M';\n    FINMES = 'S';\n    LIBRE = 'N';\n    DESINICIOANO = 'INICIO A\\u00D1O';\n    DESFINANO = 'FIN A\\u00D1O';\n    DESINICIOMES = 'INICIO MES';\n    DESFINMES = 'FIN MES';\n    DESLIBRE = 'LIBRE';\n\n    TIPOVIGENCIA = [\n        { codigo: this.INICIOANO, nombre: this.DESINICIOANO },\n        { codigo: this.FINANO, nombre: this.DESFINANO },\n        { codigo: this.INICIOMES, nombre: this.DESINICIOMES },\n        { codigo: this.FINMES, nombre: this.DESFINMES },\n        { codigo: this.LIBRE, nombre: this.DESLIBRE },\n    ]\n\n    VARIABLENOMINA = this.NO;\n    VARIABLEFECHA = 'F';\n\n    DESVARIABLENOMINA = 'Variable Periodo Nomina';\n    DESVARIABLEFECHA = 'Variable por fecha';\n\n    TIPOORIGENVARIABLE = [\n        { codigo: this.VARIABLENOMINA, nombre: this.DESVARIABLENOMINA },\n        { codigo: this.VARIABLEFECHA, nombre: this.DESVARIABLEFECHA },\n    ]\n\n    /*Variables - tipo liquidacion*/\n\n    NOMINA = this.NO;\n    NOMINAFINAL = \"U\";\n    VACACION = 'V';\n    TERMINACION = 'T';\n    EXTRA = 'X';\n    VACACIONFINAL = 'J';\n    VACACIONFINALDESC = 'VACACION FINAL';\n    NOMINADESC = 'NOMINA';\n    NOMINAFINALDESC = \"NOMINA FINAL\";\n    VACACIONDESC = 'VACACION';\n    TERMINACIONDESC = 'TERMINACION';\n    EXTRADESC = 'EXTRA';\n\n    LISTALIQUIDACIONTIPOGRUPO = [\n        { codigo: this.NOMINA, nombre: this.NOMINADESC },\n        { codigo: this.TERMINACION, nombre: this.TERMINACIONDESC },\n        { codigo: this.VACACION, nombre: this.VACACIONDESC },\n        { codigo: this.EXTRA, nombre: this.EXTRADESC },\n        { codigo: this.VACACIONFINAL, nombre: this.VACACIONFINALDESC },\n        { codigo: this.NOMINAFINAL, nombre: this.NOMINAFINALDESC },\n    ];\n\n\n    ADICIONALES = 'A';\n    TERMINACIONCONTRATODESC = 'TERMINACION  DEL CONTRATO';\n    ADICIONALESDESC = 'ADICIONALES';\n\n    LIQUIDACIONES = [\n        { codigo: this.NOMINA, nombre: this.NOMINADESC },\n        { codigo: this.TERMINACION, nombre: this.TERMINACIONCONTRATODESC },\n        { codigo: this.VACACION, nombre: this.VACACIONDESC },\n        { codigo: this.ADICIONALES, nombre: this.ADICIONALESDESC }\n    ]\n\n    MOSTRARCOMPROBANTESDESC = 'MOSTRAR COMPROBANTES';\n    NOMOSTRARCOMPROBANTESDESC = 'NO MOSTRAR COMPROBANTES';\n\n    MOSTRARCOMPROBANTES = [\n        { codigo: this.SI, nombre: this.MOSTRARCOMPROBANTESDESC },\n        { codigo: this.NO, nombre: this.NOMOSTRARCOMPROBANTESDESC },\n    ]\n\n    ANTESAUSENTISMO = 'N';\n    DESPUESAUSENTISMO = 'S';\n    DESPUESNOMINA = 'F';\n\n    ANTESAUSENTISMODESC = 'ANTES DE AUSENTISMO';\n    DESPUESAUSENTISMODESC = 'DESPUES DE AUSENTISMO';\n    DESPUESNOMINADESC = 'DESPUES DE NOMINA';\n\n    MOSTRARCALCULO = [\n        { codigo: this.ANTESAUSENTISMO, nombre: this.ANTESAUSENTISMODESC },\n        { codigo: this.DESPUESAUSENTISMO, nombre: this.DESPUESAUSENTISMODESC },\n        { codigo: this.DESPUESNOMINA, nombre: this.DESPUESNOMINADESC },\n    ];\n\n    NOMOSTRARDESC = 'NO MOSTRAR';\n    ITEM = 'I';\n    PRINCIPAL = this.SI;\n    BASE = 'B';\n    ITEMDESC = 'ITEM';\n    PRINCIPALDESC = 'PRINCIPAL';\n    BASEDESC = 'BASE';\n\n    MOSTRAROTROS = [\n        { codigo: this.NO, nombre: this.NOMOSTRARDESC },\n        { codigo: this.ITEM, nombre: this.ITEMDESC },\n        { codigo: this.PRINCIPAL, nombre: this.PRINCIPALDESC },\n        { codigo: this.BASE, nombre: this.BASEDESC },\n    ]\n\n    /* Ausentismo*/\n\n    DESCTEMPORAL = 'Temporal';\n    DESCNOAPLICA = 'No Aplica';\n\n    PORREGIMEN = 'V';\n    TERMINAPRORROGA = 'P';\n\n    DESCTERMINAPRORROGA = 'Terminacion Prorroga';\n    DESCPORSUSTITUCION = 'Por Sustitucion';\n    DESCPORREGIMEN = 'Por cambio regimen';\n\n    ORIGENMOTIVORETIRO = [\n        { codigo: this.NO, nombre: this.DESCNOAPLICA },\n        { codigo: this.SI, nombre: this.DESCPORSUSTITUCION },\n        { codigo: this.TERMINAPRORROGA, nombre: this.DESCTERMINAPRORROGA },\n        { codigo: this.PORREGIMEN, nombre: this.DESCPORREGIMEN },\n    ]\n\n    SUELDO = this.SI;\n    AMBOS = 'A';\n    INGRESO = 'I';\n    PUESTO = 'P';\n    SUELDODESC = 'SUELDO';\n    PUESTODESC = 'PUESTO';\n    INGRESODESC = 'INGRESO';\n    SUELDOPUESTODESC = 'SUELDO/PUESTO';\n\n    LISTAACCIONTIPOCAMBIO = [\n        { codigo: this.SUELDO, nombre: this.SUELDODESC },\n        { codigo: this.AMBOS, nombre: this.SUELDOPUESTODESC },\n        { codigo: this.INGRESO, nombre: this.INGRESODESC },\n        { codigo: this.PUESTO, nombre: this.PUESTODESC }\n    ]\n\n    LIQUIDACIONNOMINADESC = 'LIQUIDACI\\u00D3N N\\u00D3MINA';\n    NOHAYRELACIONDESC = 'NO HAY RELACI\\u00D3N DIRECTA';\n\n    LISTAFECTA = [\n        { codigo: this.SI, nombre: this.NOHAYRELACIONDESC },\n        { codigo: this.NO, nombre: this.LIQUIDACIONNOMINADESC }\n    ]\n\n    LISTATEMPORALTIPOCAMBIO = [\n        { codigo: this.SI, nombre: this.DESCTEMPORAL },\n        { codigo: this.NO, nombre: this.DESCNOAPLICA }\n    ]\n\n    VACACIONES = 'V';\n    LICENCIA = 'L';\n    INCAPACIDAD = 'I';\n    TERMINARCONTRATO = 'T';\n\n    VACACIONESDESC = 'VACACIONES';\n    LICENCIADESC = 'LICENCIA';\n    INCAPACIDADDESC = 'INCAPACIDAD';\n    DESTERMINARCONTRATO = 'TERMINACION CONTRATO';\n\n    ORIGENTIPAUSENCIA = [\n        { codigo: this.VACACIONES, nombre: this.VACACIONESDESC },\n        { codigo: this.LICENCIA, nombre: this.LICENCIADESC },\n        { codigo: this.INCAPACIDAD, nombre: this.INCAPACIDADDESC }\n    ]\n\n    FECHAAPLICACION = 'A';\n    FECHAAPLICACION_DESC = 'FECHA APLICACION';\n\n    LISTAREGRESION = [\n        { codigo: this.SI, nombre: this.SI_DESC },\n        { codigo: this.NO, nombre: this.NO_DESC },\n        { codigo: this.FECHAAPLICACION, nombre: this.FECHAAPLICACION_DESC }\n    ]\n\n    VIGENTEDESC = 'VIGENTE';\n    NOVIGENTEDESC = 'NO VIGENTE';\n\n    ESTADOTIPAUSENCIA = [\n        { codigo: this.SI, nombre: this.VIGENTEDESC },\n        { codigo: this.NO, nombre: this.NOVIGENTEDESC }\n    ]\n\n    VISUALIZAR_AUSENCIA = 'V';\n    ENTRADA_AUSENCIA = 'E';\n    NO_VISUALIZAR_AUSENCIA = 'N';\n    ENTRADA_FUNCIONAL = 'F';\n\n    VISUALIZAR_AUSENCIA_DESC = 'Visualizar';\n    ENTRADA_AUSENCIA_DES = 'Entrada';\n    NO_VISUALIZAR_AUSENCIA_DESC = 'No visualizar';\n    ENTRADA_FUNCIONAL_DESC = 'Entrada solo funcional';\n\n    LISTAINGRESO = [\n        { codigo: this.VISUALIZAR_AUSENCIA, nombre: this.VISUALIZAR_AUSENCIA_DESC },\n        { codigo: this.ENTRADA_AUSENCIA, nombre: this.ENTRADA_AUSENCIA_DES },\n        { codigo: this.NO_VISUALIZAR_AUSENCIA, nombre: this.NO_VISUALIZAR_AUSENCIA_DESC },\n        { codigo: this.ENTRADA_FUNCIONAL, nombre: this.ENTRADA_FUNCIONAL_DESC }\n    ]\n\n    ENFERMEDADPROFESIONAL = 'P';\n    MATERNIDAD = 'M';\n    INCAPACIDADLICENCIA = 'I';\n    RIESGOPROFESIONAL = 'R';\n    ENFERMEDADPROFESIONALDESC = 'ENFERMEDAD PROFESIONAL';\n    MATERNIDADDESC = 'MATERNIDAD';\n    INCAPACIDADLICENCIADESC = 'INCAPACIDAD';\n    RIESGOPROFESIONALDESC = 'RIESGO PROFESIONAL';\n\n    INCAPACIDADTIPOTIPAUSENCIA = [\n        { codigo: this.ENFERMEDADPROFESIONAL, nombre: this.ENFERMEDADPROFESIONALDESC },\n        { codigo: this.MATERNIDAD, nombre: this.MATERNIDADDESC },\n        { codigo: this.INCAPACIDADLICENCIA, nombre: this.INCAPACIDADLICENCIADESC },\n        { codigo: this.RIESGOPROFESIONAL, nombre: this.RIESGOPROFESIONALDESC }\n    ]\n\n    LICENCIANOREMUNERADA = 'LICENCIA NO REMUNERADA';\n    COMISION = 'I';\n    COMISIONDESC = 'COMISION';\n\n    LICENCIATIPOTIPAUSENCIA = [\n        { codigo: this.LICENCIA, nombre: this.LICENCIADESC },\n        { codigo: this.COMISION, nombre: this.COMISIONDESC }\n    ]\n\n    /* TIPO DE TURNO */\n    EMPLEADO = this.NO;\n    PENSIONADOC = 'P';\n    PENSIONADOS = this.SI;\n\n    EMPLEADODES = 'EMPLEADO';\n    PENSIONADOCDES = 'PENSIONADO CAUSANTE';\n    PENSIONADOSDES = 'PENSIONADO SUSTITUTO';\n\n    RANGO_ORIGEN = 'NO';\n\n    HIJO = 'H';\n    PADRE = 'P';\n\n    LISTATIPOEMPLEADO = [\n        { codigo: this.EMPLEADO, nombre: this.EMPLEADODES },\n        { codigo: this.PENSIONADOC, nombre: this.PENSIONADOCDES },\n        { codigo: this.PENSIONADOS, nombre: this.PENSIONADOSDES },\n    ]\n\n    /* TIPO DE SERVICIO / LIQUIDACION */\n\n    CESANTIAS = 'C';\n    CUOTASPARTES = 'U';\n    DEPOSITOJUDICIAL = 'D';\n    FLEXIBLE = 'F';\n    OTROS = 'M';\n    PAGONOMINA = 'P';\n    SEGURIDADSOCIAL = Constantes.CONSTANTE_SI;\n    JUZGADO = 'J';\n\n    CESANTIASDES = 'CESANTIAS';\n    CUOTASPARTESDES = 'CUOTAS PARTES';\n    DEPOSITOJUDICIALDES = 'DEPOSITO JUDICIAL';\n    FLEXIBLEDES = 'FLEXIBLE';\n    OTROSDES = 'OTROS';\n    PAGONOMINADES = 'PAGO NOMINA';\n    SEGURIDADSOCIALDES = 'SEGURIDAD SOCIAL';\n    JUZGADO_DESC = 'Juzgado';\n\n    CONCEPTO = 'C';\n    LIQUIDACIONADICIONAL = 'L';\n    ADICIONALCONCEPTO = 'O';\n    APORTEEMPLEADO = 'A';\n    CONTROLPLANILLA = 'P';\n    CONCEPTODESC = 'CONCEPTO';\n    LIQUIDACIONADICIONALDESC = 'LIQUIDACION ADICIONAL';\n    ADICIONALCONCEPTODESC = 'ADICIONAL CONCEPTO';\n    APORTEEMPLEADODESC = 'APORTE EMPLEADO';\n    CONTROLPLANILLADESC = 'COLUMNA PLANILLA';\n\n\n    ORIGENCOLUMNACONCEPTO = [\n        { codigo: this.SEGURIDADSOCIAL, nombre: this.SEGURIDADSOCIALDES },\n        { codigo: this.CONCEPTO, nombre: this.CONCEPTODESC },\n        { codigo: this.LIQUIDACIONADICIONAL, nombre: this.LIQUIDACIONADICIONALDESC },\n        { codigo: this.ADICIONALCONCEPTO, nombre: this.ADICIONALCONCEPTODESC },\n        { codigo: this.APORTEEMPLEADO, nombre: this.APORTEEMPLEADODESC },\n        { codigo: this.CONTROLPLANILLA, nombre: this.CONTROLPLANILLADESC },\n    ]\n\n    PLANTILLABENEFICIO = 'B';\n    BASESIMULACRO = Constantes.CONSTANTE_SI;\n    BENEFICIORESULTADO = 'R';\n    INFORMACIONBASE = 'I';\n    BENEFICIOAJUSTE = 'A';\n    BASESIMULACIONEMPRESA = 'E';\n    BASESIMULACRODESC = 'BASE SIMULACION';\n    BENEFICIORESULTADODESC = 'BENEFICIO RESULTADO';\n    INFORMACIONBASEDESC = 'INFORMACI\\u00D3N BASE';\n    BENEFICIOAJUSTEDESC = 'BENEFICIOS AJUSTE';\n    PLANTILLABENEFICIODESC = 'PLANTILLA BENEFICIO';\n    BASESIMULACIONEMPRESADESC = 'BASE SIMULACION EMPRESA';\n\n    TIPOITEMFLEXIBLE =\n        [\n            { codigo: this.PLANTILLABENEFICIO, nombre: this.PLANTILLABENEFICIODESC },\n            { codigo: this.BASESIMULACRO, nombre: this.BASESIMULACRODESC },\n            { codigo: this.BENEFICIORESULTADO, nombre: this.BENEFICIORESULTADODESC },\n            { codigo: this.INFORMACIONBASE, nombre: this.INFORMACIONBASEDESC },\n            { codigo: this.BENEFICIOAJUSTE, nombre: this.BENEFICIOAJUSTEDESC },\n            { codigo: this.BASESIMULACIONEMPRESA, nombre: this.BASESIMULACIONEMPRESADESC }\n        ]\n\n    MULTIPLESENTIDADES = 'M';\n    ENTIDADUNICASELECCION = 'U';\n    NOAPLICAPUNTO = Constantes.PUNTO;\n    ENTIDADUNICA = Constantes.CONSTANTE_NO;\n    MULTIPLESENTIDADESDESC = 'MULTIPLES ENTIDADES';\n    ENTIDADUNICASELECCIONDESC = 'ENTIDAD UNICA-SELECCION';\n    ENTIDADUNICADESC = 'ENTIDAD UNICA';\n\n    TIPOENTIDADITEMFLEXIBLE =\n        [\n            { codigo: this.MULTIPLESENTIDADES, nombre: this.MULTIPLESENTIDADESDESC },\n            { codigo: this.ENTIDADUNICASELECCION, nombre: this.ENTIDADUNICASELECCIONDESC },\n            { codigo: this.NOAPLICAPUNTO, nombre: this.NOAPLICADESC },\n            { codigo: this.ENTIDADUNICA, nombre: this.ENTIDADUNICADESC }\n        ]\n\n    VARIABLETERMINACIONDESC = 'VARIABLE FECHA DE TERMINACI\\u00D3N';\n    VARIABLESINTERMINACIONDESC = 'VARIABLE SIN FECHA DE TERMINACI\\u00D3N';\n\n    ALCANCEITEMFLEXIBLE =\n        [\n            { codigo: this.SI, nombre: this.VARIABLETERMINACIONDESC },\n            { codigo: this.NO, nombre: this.VARIABLESINTERMINACIONDESC }\n        ]\n\n    TIPOFORMULA_ITEMFLEX =\n        [\n            { codigo: this.FORMULA, nombre: this.FORMULA_DESC },\n            { codigo: this.VALOR_FIJO, nombre: this.VALOR_FIJO_DESC }\n        ]\n\n    INGRESARVALORDESC = 'Ingresar Dato';\n    BLOQUEARVALORDESC = 'Visualizar';\n\n    FACTORPLANILLA =\n        [\n            { codigo: this.SI, nombre: this.INGRESARVALORDESC },\n            { codigo: this.NO, nombre: this.BLOQUEARVALORDESC }\n        ]\n    PARTICULAR = 'P';\n    GENERALEMPRESA = 'E';\n\n    PARTICULARDESC = 'Particular';\n    GENERALEMPRESADESC = 'General';\n\n    LISTA_TIPODISTRIBUCIONCOSTO = [\n        { codigo: this.NOAPLICA, nombre: this.DESCNOAPLICA },\n        { codigo: this.PARTICULAR, nombre: this.PARTICULARDESC },\n        { codigo: this.GENERALEMPRESA, nombre: this.GENERALEMPRESADESC }\n    ]\n\n    INCAPACIDADRECUPERA = \"INCRE\";\n    VIGENTE = Constantes.CONSTANTE_SI;\n    NO_VIGENTE = Constantes.CONSTANTE_NO;\n\n    VIGENCIADES = \"VIGENTE\";\n    NO_VIGENCIADESC = \"NO VIGENTE\";\n\n    LISTAVIGENCIA =\n        [\n            { codigo: this.VIGENTE, nombre: this.VIGENCIADES },\n            { codigo: this.NO_VIGENTE, nombre: this.NO_VIGENCIADESC },\n        ]\n\n    TRAMITE = \"T\";\n    SINTRAMITE = \"S\";\n    NORECONOCIDA = \"N\";\n    RECONOCIDA = \"R\";\n    NOAPLICAINC = \"L\";\n\n    TRAMITEDESC = \"Tramite\";\n    SINTRAMITEDESC = \"Sin Tramite\";\n    NORECONOCIDADESC = \"No Reconocida\";\n    RECONOCIDADESC = \"Reconocida\";\n    NOAPLICAINCDESC = \"No Aplica\";\n\n    LISTA_ESTADOINCAPACIDADREC =\n        [\n            { codigo: this.TRAMITE, nombre: this.TRAMITEDESC },\n            { codigo: this.SINTRAMITE, nombre: this.SINTRAMITEDESC },\n            { codigo: this.NORECONOCIDA, nombre: this.NORECONOCIDADESC },\n            { codigo: this.RECONOCIDA, nombre: this.RECONOCIDADESC },\n            { codigo: this.NOAPLICAINC, nombre: this.NOAPLICAINCDESC },\n        ]\n\n    INGRESAOBLIGATORIO = \"Ingresar Dato Obligatorio\";\n    INGRESAOPCIONAL = \"Ingresar Dato Opcional\";\n\n    ACCIONINGRESO = [\n        { codigo: this.SI, nombre: this.INGRESAOBLIGATORIO },\n        { codigo: this.NO, nombre: this.INGRESAOPCIONAL },\n        { codigo: this.VISUALIZAR_AUSENCIA, nombre: this.BLOQUEARVALORDESC },\n    ]\n\n    DESCCOSTEOORIGEN = \"Costeo Tomar Origen\";\n    DESCCOSTEONOMINA = \"Costeo Ignorar Origen\";\n\n    TIPOCOSTEO = [\n        { codigo: this.SI, nombre: this.DESCCOSTEOORIGEN },\n\t\t{ codigo: this.NO, nombre: this.DESCCOSTEONOMINA }\n    ]\n\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listadoNaturaleza') { this.LISTADO_NATURALEZA_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listadoFormula') { this.LISTADO_FORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listadoEstadoConcepto') { this.LISTADO_ESTADO_CONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listadoLiquidaciones') { this.LIQUIDACIONES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listadoLiquidacionTipoGrupo') { this.LISTALIQUIDACIONTIPOGRUPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'origenColumnaConcepto') { this.ORIGENCOLUMNACONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaTipoDistribucionCosto') { this.LISTA_TIPODISTRIBUCIONCOSTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaTipoOrigen') { this.TIPOORIGENVARIABLE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaVigencia') { this.LISTAVIGENCIA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaEstadoIncapacidadRec') { this.LISTA_ESTADOINCAPACIDADREC.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaEstadoTipoAusencia') { this.ESTADOTIPAUSENCIA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaAccionIngreso') { this.ACCIONINGRESO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaTipoAccion') { this.TIPOCOSTEO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n        return result;\n    }\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, map, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { EmpleadoModel } from '../models/EmpleadoModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { FormatoModel } from '../../actos/models/FormatoModel';\nimport { ActoIngresoAusenciaModel } from '../../actos/models/ActoIngresoAusenciaModel';\nimport { TipoAusenciaModel } from '../models/TipoAusenciaModel';\nimport { ParametrosCompensacion } from '../../../shared/pipes/parametrosCompensacion.pipe';\nimport { DatosBasicosEmpresaModel } from '../models/DatosBasicosEmpresaModel';\nimport { PuestoTrabajoModel } from '../../talento/models/PuestoTrabajoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EmpleadoService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService, private utilService: UtilsService,\n    private parametrosCompensacion: ParametrosCompensacion, private toastService: ToastService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  consultarEmpleado(general: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/consultarEmpleado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerPorCedulaActivo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/obtenerPorCedulaActivo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cambiarContrato(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/cambiarContrato`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerContratoActivo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/obtenerContratoActivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async listaEmpleadosActoMasivo(empleado: EmpleadoModel, formato: number, tipo: string): Promise<EmpleadoModel[]> {\n\n    let objeto = new GeneralModel('EmpleadoDTO', null, false, empleado);\n    let lista: EmpleadoModel[] = [];\n    lista = await this.generalService.queryForList(objeto).toPromise();\n    \n    if (formato == null || formato == 0 || !('encargo' == tipo)) {\n      return lista;\n    }\n\n    let formatoModel: FormatoModel = new FormatoModel();\n    formatoModel.llave = formato;\n    let objetoFormato = new GeneralModel('FormatoDTO', null, false, formatoModel);\n    formatoModel = await this.generalService.queryForObject(objetoFormato).toPromise();\n\n    let acto: ActoIngresoAusenciaModel = new ActoIngresoAusenciaModel();\n    let listaEmpleado: EmpleadoModel[] = [];\n\n    for (let unEmpleado of lista) {\n\n      acto = new ActoIngresoAusenciaModel();\n      acto.unidad = unEmpleado.unidadFuncion;\n      acto.cargo = unEmpleado.cargoFuncion;\n      acto.empresa = unEmpleado.empresa;\n      acto.contrato = unEmpleado.contrato;\n      acto.formatoPadre = formatoModel.formPadre;\n      acto.formatoOriginal = formatoModel.llave;\n\n      let objetoActo = new GeneralModel('ActoIngresoAusenciaDTO', 'FormatoFirma.consultarListaAntecesorMasivoProrrogaEncargo', false, acto);\n      let cantidad: number = await this.generalService.cantidadRegistros(objetoActo).toPromise();\n\n      if (cantidad != 0) {\n        listaEmpleado.push(unEmpleado);\n      }\n\n    }\n\n    return listaEmpleado;\n\n  }\n\n  async procesoLiquidacion(listaEmpleado: EmpleadoModel[]): Promise<EmpleadoModel[]> {\n\n    let empresa: number = null;\n    let listaEmpleadoMensaje: EmpleadoModel[] = [];\n    let listaTemporal: EmpleadoModel[] = JSON.parse(JSON.stringify(listaEmpleado));\n    let tipoAusencia = new TipoAusenciaModel();\n    tipoAusencia.origen = this.parametrosCompensacion.TERMINARCONTRATO;\n    tipoAusencia.regresion = this.parametrosCompensacion.TERMINAPRORROGA;\n\n    let objeto: GeneralModel = new GeneralModel('TipoAusenciaDTO', null, false, tipoAusencia);\n    let listaTipo: TipoAusenciaModel[] = await this.generalService.queryForList(objeto).toPromise();\n\n    if (listaTipo.length == 0) {\n      this.toastService.showWarning('Motivo Liquidacion Contrato (Terminacion Prorroga), no existe');\n      throw new Error(\"Motivo Liquidacion Contrato (Terminacion Prorroga), no existe\");\n    }\n\n    let datoBasico: DatosBasicosEmpresaModel = null;\n\n    for (let empleadoDTO of listaTemporal) {\n\n      if (empresa == null || !(empleadoDTO.empresa == empresa)) {\n        empresa = empleadoDTO.empresa;\n        datoBasico = new DatosBasicosEmpresaModel();\n        datoBasico.empresa = empresa;\n\n        let objeto: GeneralModel = new GeneralModel('DatosBasicosEmpresaDTO', null, false, datoBasico);\n        datoBasico = await this.generalService.queryForObject(objeto).toPromise();\n\n        if (datoBasico == null) {\n          this.toastService.showWarning('Parámetros de la empresa no es valido');\n          throw new Error(\"Parámetros de la empresa no es valido\");\n        }\n\n        if (datoBasico.laboralRetira == null || datoBasico.pagoLiquidar == null) {\n          this.toastService.showWarning('Parámetros Estado Laboral');\n          throw new Error(\"Parámetros Estado Laboral\");\n        }\n\n      }\n\n      if (!(this.isEmpleadoActivo(empleadoDTO))) {\n        empleadoDTO.mensaje = \"Empleado no se encuentra activo\";\n        listaEmpleadoMensaje.push(empleadoDTO);\n        continue;\n      }\n\n      if (empleadoDTO.fechaTermina == null) {\n        empleadoDTO.mensaje = \"Fecha Terminacion no existe\";\n        listaEmpleadoMensaje.push(empleadoDTO);\n        continue;\n      }\n\n      if (empleadoDTO.fechaRetiro != null) {\n        empleadoDTO.mensaje = \"Fecha de retiro del empleado ya posee valor\";\n        listaEmpleadoMensaje.push(empleadoDTO);\n      }\n\n      empleadoDTO.fechaRetiro = empleadoDTO.fechaTermina;\n      empleadoDTO.motivoRetiro = tipoAusencia.llaveTabla;\n      empleadoDTO.estadoLaboral = datoBasico.pagoLiquidar ? datoBasico.pagoLiquidar.toString() : null;\n\n      //Se eliminan del objeto creado en angular, ya que en le back no son atributos del DTO EmpleadoDTO\n      delete empleadoDTO.unidadNombreOcupa ;\n      delete empleadoDTO.unidadOcupa;\n      delete empleadoDTO.cargoNombreOcupa;\n      delete empleadoDTO.cargoOcupa ;\n\n      let objetoFiltro: GeneralModel = new GeneralModel('EmpleadoDTO', \"Empleado.retiroEmpleado\", false, empleadoDTO);\n\n      await this.generalService.update(objetoFiltro).toPromise();\n\n      await this.actualizarPuestoTrabajo(empleadoDTO);\n\n    }\n\n    return listaEmpleadoMensaje;\n  }\n\n  isEmpleadoActivo(empleado: EmpleadoModel): boolean {\n\t\treturn empleado != null && this.empleadoActivo(empleado);\n\t}\n\n  empleadoActivo(empleado: EmpleadoModel) : boolean{\n\t\tif (empleado.estadoLaboral == null || empleado.estadoLaboralPeriodo == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn empleado.estadoLaboral == empleado.estadoLaboralPeriodo;\n\t}\n\n  async actualizarPuestoTrabajo(empleado: EmpleadoModel) {\n\n    let puesto = new PuestoTrabajoModel();\n    puesto.empresa = empleado.empresa;\n    puesto.contrato = empleado.contrato;\n    empleado.fechaRetiro = new Date(empleado.fechaRetiro);\n    puesto.disponible = new Date(empleado.fechaRetiro.getFullYear(), empleado.fechaRetiro.getMonth(), empleado.fechaRetiro.getDate() + 1);\n\n    let objetoFiltro: GeneralModel = new GeneralModel('PuestoTrabajoDTO', \"PuestoTrabajo.actualizarPuestoTitular\", false, puesto);\n    await this.generalService.update(objetoFiltro).toPromise();\n\n    let objetoFiltroTemporal: GeneralModel = new GeneralModel('PuestoTrabajoDTO', \"PuestoTrabajo.actualizarPuestoTemporal\", false, puesto);\n    await this.generalService.update(objetoFiltroTemporal).toPromise();\n\n    let objetoFiltroAutomatica: GeneralModel = new GeneralModel('PuestoTrabajoDTO', \"PuestoTrabajo.actualizarPuestoNoAutomatica\", false, puesto);\n    await this.generalService.update(objetoFiltroAutomatica).toPromise();\n  }\n\n  async obtenerEmpleadoUsuario(empresa: number, contrato: number, grupoActos: number, estadoPermitido: string): Promise<EmpleadoModel> {\n    var unEmpleado: EmpleadoModel = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, {\n      empresa: empresa,\n      contrato: contrato,\n      grupo: grupoActos\n    })).toPromise();\n    if (unEmpleado == null || unEmpleado == undefined) {\n      return null;\n    }\n    if (estadoPermitido == null) {\n      return unEmpleado;\n    }\n    if (this.getEmpleadoActivo(unEmpleado)) {\n      return unEmpleado;\n    }\n    if ('activoliquidacion' == estadoPermitido && unEmpleado.isEmpleadoLiquidacion()) {\n      return unEmpleado;\n    }\n    return null;\n  }\n\n  getEmpleadoActivo(unEmpleado) {\n    if (unEmpleado.estadoLaboral == null || unEmpleado.estadoLaboralPeriodo == null) {\n      return false;\n    }\n    return unEmpleado.estadoLaboral == unEmpleado.estadoLaboralPeriodo;\n  }\n\n  actualizarDistribucionSustitutos(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/actualizarDistribucionSustitutos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerContratosPorDocumentoActivo(objeto: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/obtenerContratosPorDocumentoActivo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  getListaContratosEmpleadoPortal(objeto: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/getListaContratosEmpleadoPortal`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  contarEmpleadoFiltro(objeto: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/contarEmpleadoFiltro`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async obtenerPorCedulaActivoSinEmpresa(cedula: number): Promise<any> {\n\n    let lista: any[] = [];\n\n    let empleado = new EmpleadoModel();\n    empleado.cedula = cedula;\n    empleado.soloActivos = 'S';\n\n    let filtroHoja = new GeneralModel('EmpleadoDTO', null, false, empleado);\n    lista = await this.generalService.queryForList(filtroHoja).toPromise();\n\n    if (lista.length != 0) {\n      return lista[0];\n    }\n\n    return null;\n  }\n\n  async obtenerEmpleado(empresa: number, contrato: number,): Promise<EmpleadoModel> {\n\n    let listaTemporal: any[];\n\n    let empleado = new EmpleadoModel();\n    empleado.empresa = empresa;\n    empleado.cedula = contrato;\n\n    listaTemporal = await this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, empleado)).toPromise();\n\n    if (listaTemporal != null && listaTemporal.length > 0) {\n      return listaTemporal[0];\n    }\n    return null;\n  }\n\n  async obtenerEmpleadoPorContrato(empresa: number, contrato: number): Promise<EmpleadoModel> {\n    let empleado: EmpleadoModel = new EmpleadoModel();\n    empleado.empresa = empresa;\n    empleado.contrato = contrato;\n    empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleado)).toPromise();\n  if (empleado == null) {\n      return null;\n    }\n    return empleado;\n  }\n\n  async consultarEmpleadoPorFechaSinEmpresa(identifica: number, fechaInicial: Date, organizacion: number): Promise<EmpleadoModel> {\n    let empleadoDTO = new EmpleadoModel();\n    empleadoDTO.cedula = identifica;\n    empleadoDTO.fechaRetiro = fechaInicial;\n    empleadoDTO.organizacion = organizacion;\n\n    let objetoEmpleado = new GeneralModel('EmpleadoDTO', \"Empleado.consultarEmpleadoPorFechaSinEmpresa\", false, empleadoDTO);\n    let lista: EmpleadoModel[] = await this.generalService.queryForList(objetoEmpleado).toPromise();\n    if (lista != null && lista.length > 0) {\n      return lista[0];\n    }\n    return null;\n  }\n\n\n  getNombreCompleto(empleado: EmpleadoModel) {\n\t\tif (empleado.nombreCompleto == null) {\n\t\t\tif (empleado.segundoApellido != null) {\n\t\t\t\tif (empleado.primerApellido != null) {\n\t\t\t\t\tif (empleado.nombres != null) {\n\t\t\t\t\t\templeado.nombreCompleto = empleado.primerApellido + ' ' + empleado.segundoApellido + ' ' + empleado.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\templeado.nombreCompleto = empleado.primerApellido + ' ' + empleado.segundoApellido + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\templeado.nombreCompleto = ' ' + empleado.segundoApellido + ' ' + empleado.nombres;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (empleado.primerApellido != null) {\n\t\t\t\t\tif (empleado.nombres != null) {\n\t\t\t\t\t\templeado.nombreCompleto = empleado.primerApellido + ' ' + empleado.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\templeado.nombreCompleto = empleado.primerApellido + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\templeado.nombreCompleto = ' ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn empleado.nombreCompleto;\n\t}\n\n  public async obtenerContratosPorCedulaActivo(empresa: number, cedula: number ): Promise<EmpleadoModel[]> {\n\t\tvar comodin = new EmpleadoModel();\n\t\tcomodin.empresa = empresa;\n\t\tcomodin.cedula = cedula;\n\t\tvar retorno: EmpleadoModel[] = [];\n\t\tvar lista: EmpleadoModel[] = await this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, comodin)).pipe(map(data => data.map(item => Object.assign(new EmpleadoModel(), item)))).toPromise();\n\t\tif (lista != null && lista.length > 0) {\n\t\t\tfor (var unEmpleado of lista) {\n\t\t\t\tif (unEmpleado.empleadoActivo) {\n\t\t\t\t\tretorno.push(unEmpleado);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn retorno;\n\t}\n\n  actualizarCongela(lista: EmpleadoModel[],fecha: Date): Observable<any[]> {\n    let form = {lista: lista, fecha: fecha};\n    return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/actualizarCongela`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerContratosActivoEmpleado(objeto: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilService.obtenerUrlApi()}/requieretoken/compensacion/empleado/obtenerContratosActivoEmpleado`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}","import { Pipe, Injectable, PipeTransform } from \"@angular/core\";\nimport { Constantes } from \"../constantes/Constantes\";\n\n@Pipe({\n    name: 'datosBasicosEmpresa',\n    standalone: true\n})\n@Injectable({\n  providedIn: 'root'\n})\nexport class DatosBasicosEmpresaCons implements PipeTransform {\n\n  PENSIONADO = \"P\";\n\n  MANEJOFLEXIBLE = Constantes.CONSTANTE_SI;\n  NOAPLICA = Constantes.CONSTANTE_NO;\n\n  MANEJOFLEXIBLEDES = \"MANEJO FLEXIBLE\";\n  PENSIONADOSDES = \"PENSIONADOS\";\n  NOAPLICADES = \"NO APLICA\";\n\n  lista_flexible =\n    [\n      { codigo: this.MANEJOFLEXIBLE, nombre: this.MANEJOFLEXIBLEDES },\n      { codigo: this.PENSIONADO, nombre: this.PENSIONADOSDES },\n      { codigo: this.NOAPLICA, nombre: this.NOAPLICADES }\n    ]\n\n  TOTAL = \"T\";\n  POR_CADA_TIPO_AUSENTISMO = \"A\";\n  POR_CADA_REGISTRO_AUSENTISMO = \"R\";\n\n  TOTAL_DES = \"Total\";\n  POR_CADA_TIPO_AUSENTISMO_DES = \"Por cada tipo ausentismo\";\n  POR_CADA_REGISTRO_AUSENTISMO_DES = \"Por cada registro ausentismo\";\n\n  AUSENTISMO =\n    [\n      { codigo: this.TOTAL, nombre: this.TOTAL_DES },\n      { codigo: this.POR_CADA_TIPO_AUSENTISMO, nombre: this.POR_CADA_TIPO_AUSENTISMO_DES },\n      { codigo: this.POR_CADA_REGISTRO_AUSENTISMO, nombre: this.POR_CADA_REGISTRO_AUSENTISMO_DES }\n\n    ]\n\n  SI = Constantes.CONSTANTE_SI;\n  NO = \"P\";\n\n  SIDES = \"SI\";\n  NODES = \"NO\";\n\n  lista_vacacion =\n    [\n      { codigo: this.SI, nombre: this.SIDES },\n\t\t{ codigo: this.NO, nombre: this.NODES }\n    ]\n\n  IGUALCONTABLE = Constantes.CONSTANTE_NO;\n  MULTIPLEIGUALCONTABLE = \"T\";\n\n  DIFERENTECONTABLE = Constantes.CONSTANTE_SI;\n  MULTIPLEDIFERENTECONTABLE = \"A\";\n\n  IGUALCONTABLEDES = \"Igual Contable\";\n  MULTIPLEIGUALCONTABLEDES = \"Igual Contable - Por Tipo Periodo\";\n\n  DIFERENTECONTABLEDES = \"Diferente Contable\";\n  MUTLIPLEDIFERENTECONTABLEDES = \"Diferente Contable - Por Tipo Periodo\";\n\n  lista_fechalep =\n    [\n      { codigo: this.IGUALCONTABLE, nombre: this.IGUALCONTABLEDES },\n      { codigo: this.DIFERENTECONTABLE, nombre: this.DIFERENTECONTABLEDES },\n      { codigo: this.MULTIPLEIGUALCONTABLE, nombre: this.MULTIPLEIGUALCONTABLEDES },\n      { codigo: this.MULTIPLEDIFERENTECONTABLE, nombre: this.MUTLIPLEDIFERENTECONTABLEDES },\n    ]\n\n\n  UNIDADCARGO = \"U\";\n  PUESTOTRABAJO = \"P\";\n  CLASIFICACION = \"L\";\n  PUESTOTRABAJOMULTIPLE = \"M\";\n\n  UNIDADCARGODES = \"UNIDAD CARGO\";\n  CLASIFICACIONDES = \"CLASIFICACION\";\n  CARGODES = \"CARGO\";\n  PUESTOTRABAJODES = \"PUESTO DE TRABAJO\";\n  PUESTOTRABAJOMULTIPLEDES = \"PUESTO DE TRABAJO MULTIPLE\";\n\n  lista_perfil =\n    [\n      { codigo: this.UNIDADCARGO, nombre: this.UNIDADCARGODES },\n      { codigo: this.PUESTOTRABAJO, nombre: this.PUESTOTRABAJODES },\n      { codigo: this.CLASIFICACION, nombre: this.CLASIFICACIONDES },\n      { codigo: this.PUESTOTRABAJOMULTIPLE, nombre: this.PUESTOTRABAJOMULTIPLEDES },\n    ]\n\n  CONSOLIDADO = \"C\";\n  SUCURSAL = Constantes.CONSTANTE_SI;\n  ESPECIAL = \"D\";\n  UNICOPRE = \"U\";\n\n  CONSOLIDADODES = \"Consolidado\";\n  SUCURSALDES = \"Sucursal\";\n  ESPECIALDES = \"Especial\";\n  UNICOPREDES = \"Unico\";\n\n  lista_tipopresenta =\n    [\n      { codigo: this.CONSOLIDADO, nombre: this.CONSOLIDADODES },\n      { codigo: this.UNICOPRE, nombre: this.UNICOPREDES },\n      { codigo: this.SUCURSAL, nombre: this.SUCURSALDES },\n      { codigo: this.ESPECIAL, nombre: this.ESPECIALDES }\n    ]\n\n  REGESPECIAL = \"3\";\n  NORMAL = \"1\";\n  REGDOBLE = \"2\";\n  NORMALDOBLE = \"0\";\n\n  REGESPECIALDES = \"Regimen Especial\";\n  NORMALDES = \"Normal\";\n  REGDOBLEDES = \"Regimen Especial Doble\";\n  NORMALDOBLEDES = \"Normal Doble\";\n  PENSIONADODES = \"Pensionado\";\n\n  lista_tipoaporte =\n    [\n      { codigo: this.REGESPECIAL, nombre: this.REGESPECIALDES },\n      { codigo: this.NORMAL, nombre: this.NORMALDES },\n      { codigo: this.REGDOBLE, nombre: this.REGDOBLEDES },\n      { codigo: this.NORMALDOBLE, nombre: this.NORMALDOBLEDES },\n      { codigo: this.PENSIONADO, nombre: this.PENSIONADODES },\n    ]\n\n  SISANTERIOR = Constantes.PUNTO;\n  REGCONTRATO = Constantes.CONSTANTE_SI;\n  REGIDENTIFI = Constantes.CONSTANTE_NO;\n\n  SISANTERIORDES = \"SISTEMA ANTERIOR\";\n  REGCONTRATODES = \"REGISTRO POR CONTRATO\";\n  REGIDENTIFIDES = \"REGISTRO POR IDENTIFICACION\";\n\n  lista_unifica =\n    [\n      { codigo: this.SISANTERIOR, nombre: this.SISANTERIORDES },\n      { codigo: this.REGCONTRATO, nombre: this.REGCONTRATODES },\n      { codigo: this.REGIDENTIFI, nombre: this.REGIDENTIFIDES },\n    ]\n  CADAREGISTRO = Constantes.CONSTANTE_NO;\n  PAQUETEREGISTRO = \"M\";\n\n  CADAREGISTRODESC = \"Por cada registro\";\n  PAQUETEREGISTRODESC = \"Paquete de registros\";\n\n  lista_paquete =\n    [\n      {codigo: this.CADAREGISTRO, nombre: this.CADAREGISTRODESC},\n      {codigo: this.PAQUETEREGISTRO, nombre: this.PAQUETEREGISTRODESC}\n    ]\n\n\n  CENTROCOSTO = \"C\";\n  ZONAECONO = \"Z\";\n\n  CENTROCOSTODES = \"CENTRO DE COSTO\";\n  ZONAECONODES = \"ZONA ECONOMICA\";\n\n  lista_sapproyecto =\n  [\n    {codigo: this.CENTROCOSTO, nombre: this.CENTROCOSTODES},\n    {codigo: this.ZONAECONO, nombre: this.ZONAECONODES},\n  ]\n\n\n  DIRECTO = \"D\";\n  GENERAR = \"G\";\n\n  DIRECTODES = \"DIRECTO\";\n  GENERARDES = \"GENERAR ACTO ADMINISTRATIVO\";\n\n  lista_actosdirectos =\n  [\n    {codigo: this.DIRECTO, nombre: this.DIRECTODES},\n    {codigo: this.GENERAR, nombre: this.GENERARDES},\n  ]\n\n  TIPO_FILTRO_ZONA_ECONOMICA = \"ZO\";\n  TIPO_FILTRO_ZONA_UNIDAD = \"UN\";\n\n  UNIDADDES = \"UNIDAD\";\n\n  lista_tipoFiltro =\n  [\n    {codigo: this.TIPO_FILTRO_ZONA_ECONOMICA, nombre: this.ZONAECONODES},\n    {codigo: this.TIPO_FILTRO_ZONA_UNIDAD, nombre: this.UNIDADDES},\n  ]\n\n  NO_REGISTRO_AJUSTE = \"N\";\n  REGISTRO_AJUSTE_AUTORIZA = \"A\";\n  REGISTRO_AJUSTE_LEGALIZA = \"L\";\n\n  NO_REGISTRO = \"No Genere Registro de Ajuste\";\n  REGISTRO_AUTORIZA = \"Genera Registro de Ajuste por Autorizar\";\n  REGISTRO_LEGALIZA = \"Genera Registro de Ajuste por Legalizar\";\n\n  lista_ajusteDestino =\n  [\n    {codigo: this.NO_REGISTRO_AJUSTE, nombre: this.NO_REGISTRO},\n    {codigo: this.REGISTRO_AJUSTE_AUTORIZA, nombre: this.REGISTRO_AUTORIZA},\n    {codigo: this.REGISTRO_AJUSTE_LEGALIZA, nombre: this.REGISTRO_LEGALIZA},\n  ]\n\n  NO_APLICA = Constantes.CONSTANTE_NO;\n  PERIODO_NOMINA = \"P\";\n  LIQUIDACION_CONTRATO = \"L\";\n  AMBOS = \"A\";\n\n  NO_APLICA_DESC = \"No Aplica\";\n  PERIODO_NOMINA_DESC = \"Periodo Nomina\";\n  LIQUIDACION_CONTRATO_DESC = \"Liquidacion Contrato\";\n  AMBOS_DESC = \"Ambos\";\n\n  MAPA_TIPO_AJUSTE =\n  [\n    {codigo: this.PERIODO_NOMINA, nombre: this.PERIODO_NOMINA_DESC},\n    {codigo: this.LIQUIDACION_CONTRATO, nombre: this.LIQUIDACION_CONTRATO_DESC},\n    {codigo: this.AMBOS, nombre: this.AMBOS_DESC},\n    {codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC},\n  ]\n\n  URBANO = \"Urbano\";\n  RURAL = \"Rural\";\n  TIPOURBANO = \"U\";\n  TIPORURAL = \"R\";\n\n  MAPA_ZONA =\n  [\n    {codigo: this.TIPOURBANO, nombre: this.URBANO},\n    {codigo: this.TIPORURAL, nombre: this.RURAL},\n  ]\n\n\n\n  ENTIDAD_SUCURSAL = \"F\";\n  ENTIDAD_SUCURSAL_DESC = \"Entidad Sucursal\";\n  DIAS_ENTRE_CONTRATO = \"I\";\n  DIAS_ENTRE_CONTRATO_DESC = \"Dias Entre Contrato\";\n\n  MAPA_TIPO_ENTIDAD =\n  [\n    {codigo: this.ENTIDAD_SUCURSAL,nombre: this.ENTIDAD_SUCURSAL_DESC},\n    {codigo: this.DIAS_ENTRE_CONTRATO,nombre: this.DIAS_ENTRE_CONTRATO_DESC},\n  ]\n\n\n  ENTIDADES_EXTERNAS = \"E\";\n  ENTIDADES_EXTERNAS_DESC = \"Entidades Externas\";\n  LIQUIDACIONES_PERIODICAS = \"P\";\n  LIQUIDACIONES_PERIODICAS_DESC = \"Liquidaciones Periodicas\";\n  VARIABLE_EMPLEADO_FECHA = \"F\";\n  VARIABLE_EMPLEADO_FECHA_DESC = \"Variable Fecha Empleado\";\n\n  VARIABLE_EMPLEADO = \"V\";\n  VARIABLE_EMPLEADO_DESC = \"Variable Empleado\";\n  CONCEPTO_EMPLEADO = \"C\";\n  CONCEPTO_EMPLEADO_DESC = \"Concepto Empleado\";\n\n  MAPA_INICIALIZACION =\n  [\n    {codigo: this.ENTIDADES_EXTERNAS, nombre: this.ENTIDADES_EXTERNAS_DESC},\n    {codigo: this.LIQUIDACIONES_PERIODICAS, nombre: this.LIQUIDACIONES_PERIODICAS_DESC},\n    {codigo: this.VARIABLE_EMPLEADO, nombre: this.VARIABLE_EMPLEADO_DESC},\n    {codigo: this.VARIABLE_EMPLEADO_FECHA, nombre: this.VARIABLE_EMPLEADO_FECHA_DESC},\n    {codigo: this.CONCEPTO_EMPLEADO, nombre: this.CONCEPTO_EMPLEADO_DESC},\n  ]\n\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaTipo') { this.MAPA_INICIALIZACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaOtroTipo') { this.MAPA_TIPO_ENTIDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { DatosBasicosEmpresaCons } from '../../../shared/pipes/datosBasicosEmpresaCons.pipe';\n\n\n@Pipe({\n    name: 'descripcionCargoPipe',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DescripcionCargoPipe implements PipeTransform {\n\n\tconstructor(private datosBasicosEmpresaCons: DatosBasicosEmpresaCons){}\n\n     SOLICITUD=\"S\";\n\t LEGALIZADONOUTILIZADO=\"L\";\n\t LEGALIZADO_HISTORICO=\"H\";\n\t NO_AUTORIZADO = \"R\"; \n\t LEGALIZADOENUSO=\"U\";\n\t NOVIGENTE=\"N\";\n\t\n\t SOLICITUD_DESC=\"Solicitud\";\n\t LEGALIZADONOUTILIZADO_DESC=\"Legalizado no utilizado\";\n\t LEGALIZADOENUSO_DESC=\"Legalizado en uso\";\n\t LEGALIZADO_HISTORICO_DESC =\"Historico\";\n\t NOVIGENTE_DESC=\"No vigente\";\n\t NO_AUTORIZADO_DESC = \"No Autorizado\";\n\t \n\t\n\t ORIGINAL = \"O\";\n\tPERFILADICIONAL = \"P\";\n\tMODIFICADOORIGINAL = \"M\";\n\tMODIFICADOADICIONAL = \"A\";\n\t\n\tORIGINAL_DESC = \"Original\";\n\tPERFILADICIONAL_DESC = \"Perfil Adicional\";\n\tMODIFICADOORIGINAL_DESC = \"Modificado Original\";\n\tMODIFICADOADICIONAL_DESC = \"Modificado Adicional\";\n\n\t\n\tPUESTOTRABAJOMULTIPLE=\"PM\";\n\tPUESTOTRABAJO=\"PT\";\n\tUNIDADCARGO =\"UC\";\n\tCLASIFICACION =\"CL\";\n\t\n\t\n\tpublic TIPOORIGENPERFIL=  [\n\t\t//FIXME: Por qué usar propiedades de datosBasicosEmpresaCons aqui? crear TIPOORIGENPERFIL en datosBasicosEmpresaCons, genera error al compilar lib\n\t\t//{codigo: this.datosBasicosEmpresaCons.UNIDADCARGO, nombre: this.UNIDADCARGO},\n\t\t//{codigo: this.datosBasicosEmpresaCons.PUESTOTRABAJO, nombre: this.PUESTOTRABAJO},\n\t\t//{codigo: this.datosBasicosEmpresaCons.CLASIFICACION, nombre: this.CLASIFICACION},\n\t\t//{codigo: this.datosBasicosEmpresaCons.PUESTOTRABAJOMULTIPLE, nombre: this.PUESTOTRABAJOMULTIPLE},\n\t]\n\t\n\tTIPOUNIDAD=  [\n\t\t{codigo: this.ORIGINAL, nombre: this.ORIGINAL_DESC},\n\t\t{codigo: this.PERFILADICIONAL, nombre: this.PERFILADICIONAL_DESC},\n\t\t{codigo: this.MODIFICADOORIGINAL, nombre: this.MODIFICADOORIGINAL_DESC},\n\t\t{codigo: this.MODIFICADOADICIONAL, nombre: this.MODIFICADOADICIONAL_DESC},\n\t];\n\n\tESTADODESCRIPCIONCARGO = [\n\t\t{codigo: this.SOLICITUD, nombre: this.SOLICITUD_DESC},\n\t\t{codigo: this.LEGALIZADONOUTILIZADO, nombre: this.LEGALIZADONOUTILIZADO_DESC},\n\t\t{codigo: this.LEGALIZADOENUSO, nombre: this.LEGALIZADOENUSO_DESC},\n        {codigo: this.NOVIGENTE, nombre: this.NOVIGENTE_DESC},\n\t\t{codigo: this.LEGALIZADO_HISTORICO, nombre: this.LEGALIZADO_HISTORICO_DESC},\n\t\t{codigo: this.NO_AUTORIZADO, nombre: this.NO_AUTORIZADO_DESC},\n\t];\n\n\n\t OPCION_CONTRATOS_MENU =\"CONTRATOS\";\n\t\n\t REGRESAR_PLANTA_CLIENTE =\"REGRESAR_PLANTA_CLIENTE\";\n\t\n\t CONSULTA_DESCRIPCION_CARGO = \"CONSULTA_DESCRIPCION_CARGO\";\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'estadoDesCargo') { this.ESTADODESCRIPCIONCARGO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'tipoUnidad') { this.TIPOUNIDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n      }\n}","import { UnionModel } from 'general-library-union'\n\nexport class DiagnosticoSaludModel extends UnionModel{\n\n\tllave: string;\n\tcodigo: string;\n\tdescripcion: string;\n\tobservacion: string;\n\t\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DiagnosticoSaludModel } from '../../../modules/saludocupacional/models/DiagnosticoSaludModel';\n\n\n@Component({\n  selector: 'app-input-helper-diagnostico',\n  standalone: true,\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-diagnostico.component.html',\n  styleUrl: './input-helper-diagnostico.component.scss'\n})\nexport class InputHelperDiagnosticoComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaDiagnostico: DiagnosticoSaludModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: DiagnosticoSaludModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private generalService: GeneralService,\n    private translateService: TranslateService,\n    private authService: AuthService,\n    private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      }\n    ];\n    if (this.labelInput == null) {\n      this.labelInput = this.translateService.instant('diagnostico');\n    }\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.llave;\n    this.label = this.dataSelected.descripcion;\n    console.log(this.dataSelected);\n    \n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      descripcion: event.filters.descripcion?.value ? '%' + event.filters.descripcion?.value + '%' : null,\n    }\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'DiagnosticoSaludDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto\n    };\n    this.listaDiagnostico = await this.generalService.queryForList(objetoFiltro).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objetoFiltro).toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new DiagnosticoSaludModel();\n      filtro.llave = llave.padEnd(32, ' ');\n      let objeto = new GeneralModel('DiagnosticoSaludDTO', null, false, filtro);\n      let respuesta: DiagnosticoSaludModel = await generalService.queryForObject(objeto).toPromise();\n      return `${respuesta.descripcion.trim()}`\n    } else {\n      return null;\n    }\n  }\n\n\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' : ''}}</label>\n        <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\">\n        <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n</div>\n\n<p-dialog header=\"{{'diagnostico' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" formControlName=\"descripcion\" autocomplete=\"off\" />\n                            <label>{{'descripcion' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" [value]=\"listaDiagnostico\" selectionMode=\"single\" [scrollable]=\"true\"\n        [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect()\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 20%;\">{{'codigo' | translate}} </th>\n                <th style=\"width: 80%;\">{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n                <td style=\"width: 20%;\">{{bean.codigo}}</td>\n                <td style=\"width: 80%;\">{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class UbicacionGeograficaModel extends UnionModel{\n\n\tubicacion: string;\n\tdescripcion: string;\n\ttipoubicacion: string;\n\tdepende: string;\n\trutaImagen: string;\n\tnombreDepende: string;\n\tsinPunto: string;\n\tnacionalidad: string;\n\ta2: string;\n\ta3: string;\n\tpais: string;\n\tubicacionPais: string;\n\tdestino: string;\n\t\n\n\n}\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { UbicacionGeograficaModel } from '../../../modules/hojavida/models/UbicacionGeograficaModel';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\n\n\n@Component({\n    selector: 'app-input-helper-nacionalidad',\n    templateUrl: './input-helper-nacionalidad.component.html',\n    styleUrls: ['./input-helper-nacionalidad.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionNacionalidadComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n        NgIf,\n    ],\n})\nexport class InputHelperSeleccionNacionalidadComponent implements ControlValueAccessor, OnInit {\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() mostrarX: boolean;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  listaUbicacionGeografica: any[];\n\n  onChange: Function = (event) => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: UbicacionGeograficaModel;\n  parametroBusqueda: string;\n  filters = [];\n  paginator={rows:10, totalRecords:0};\n\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService,\n              private utilsService: UtilsService,\n    private authService: AuthService) {}\n\n    ngOnInit(): void {\n      this.filters = [\n        {\n          field: 'parametroBusqueda',\n          header: this.translateService.instant('filtro'),\n          matchMode: 'contains',\n        }\n      ]\n    }\n    \n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.ubicacion;\n    this.label = this.dataSelected.nacionalidad ;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  loadData(event) {\n    var objetoFiltro = {\n      nombreDTO: 'UbicacionGeograficaDTO',\n      nombreConsulta: 'UbicacionGeografica.consultarUbicacion',\n      seguridad: false,\n      objeto: {\n        paginacionRegistroInicial: event.first,\n        paginacionRegistroFinal: event.rows,\n        descripcion: event.filters.parametroBusqueda?.value ? '%' + event.filters.parametroBusqueda?.value + '%' : null\n      },\n    };\n    this.generalService.queryForList(objetoFiltro).subscribe((data) => {\n      this.listaUbicacionGeografica = data;\n      objetoFiltro.nombreConsulta = 'cantidadRegistrosNacionalidad'\n      this.generalService.cantidadRegistros(objetoFiltro).subscribe((data) => {\n        this.paginator.totalRecords = data;\n      })\n    });\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n\n    if (llave != null) {\n      let ubicacionGeograficaDTO = new UbicacionGeograficaModel();\n      ubicacionGeograficaDTO.ubicacion = llave.padEnd(8, ' ');\n      let objeto = new GeneralModel('UbicacionGeograficaDTO', null, false, ubicacionGeograficaDTO);\n      let respuesta = await generalService.queryForObject(objeto).toPromise();\n      generalService = null;\n      \n      return respuesta.nacionalidad;\n    }\n\n    return null;\n  }\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" id=\"nacionalidad\" [required]=\"booleano\" />\n    <label htmlfor=\"nacionalidad\">{{labelInput}}</label>\n  </span>\n  <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n  </button>\n  <button #deleteButton *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n    (click)=\"deleteSelection()\">\n    <span class=\"glyphicons glyphicons-remove\"></span>\n  </button>\n</div>\n\n<p-dialog header=\"{{'nacionalidad' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\" (onShow)=\"openDataTable()\" [style]=\"{ width: '50vw' }\" >\n  <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n    <!-- Filtro-->\n    <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" id=\"id_parametroBusqueda\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n              <label for=\"id_parametroBusqueda\">{{'filtro' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n  <p-table #tablaGeneral \n    dataKey=\"llaveTabla\"\n    [value]=\"listaUbicacionGeografica\"\n    selectionMode=\"single\"\n    responsiveLayout=\"scroll\"\n    [scrollable]=\"true\"\n    [rows]=\"paginator.rows\"\n    [paginator]=\"paginator.totalRecords > paginator.rows\"\n    [totalRecords]=\"paginator.totalRecords\"\n    [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    [(selection)]=\"dataSelected\"\n    [lazy]=\"true\"\n    (onLazyLoad)=\"loadData($event)\" \n    (onRowSelect)=\"onRowSelect()\"\n  >\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{\"descripcion\" | translate}}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-ubicacion>\n      <tr [pSelectableRow]=\"ubicacion\">\n        <td>{{ubicacion.nacionalidad}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { UbicacionGeograficaFiltroTablaModel } from '../../../modules/hojavida/models/UbicacionGeograficaFiltroTablaModel';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { UbicacionGeograficaModel } from '../../../modules/hojavida/models/UbicacionGeograficaModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n\n@Component({\n    selector: 'app-input-helper-ubicacion',\n    templateUrl: './input-helper-ubicacion.component.html',\n    styleUrls: ['./input-helper-ubicacion.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperUbicacionComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperUbicacionComponent implements ControlValueAccessor, OnInit {\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean = false;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() verPais: boolean;\n\n  @Input() entradaPais: string = ''\n\n  @Input() ubicacion: string;\n\n  @ViewChild('deleteButton') deleteButton: any;\n\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n\n  listaUbicacion: any[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: UbicacionGeograficaFiltroTablaModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private utilsService: UtilsService,\n    private translateService: TranslateService) { }\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'ciudad',\n        header: this.translateService.instant('ciudad'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'pais',\n        header: this.translateService.instant('pais'),\n        matchMode: 'contains',\n      }\n    ];\n    if(this.labelInput == null){\n      //FIXME: Se borra por form dinamico\n      //   this.labelInput= this.translateService.instant('ciudad');\n    \n      \n    }\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }    \n    this.filtroGeneral.limpiarFiltros();\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    console.log(event)\n    this.dataSelected = event.data;\n    console.log(this.dataSelected)\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveCiudad\n    this.label = this.dataSelected.llaveCiudad.trim() + \" - \" + this.dataSelected.ciudad;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    if(( (event?.filters?.pais?.value?.length > 2   ||  event?.filters?.ciudad?.value?.length > 2) && !this.verPais ) || this.verPais){\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      ciudad: event.filters.ciudad?.value ? '%' + event.filters.ciudad?.value + '%' : null,\n      pais: event.filters.pais?.value ? '%' + event.filters.pais?.value + '%' : null,\n    }\n    const objetoFiltro = {\n      nombreDTO: 'UbicacionGeograficaFiltroTablaDTO',\n      nombreConsulta: this.verPais ?  'UbicacionGeografica.consultarPaisesUbicacion' : 'UbicacionGeografica.consultarUbicacionGeograficaFiltro',\n      seguridad: false,\n      objeto\n    };\n    this.generalService.queryForList(objetoFiltro).subscribe((data) => {\n      this.listaUbicacion = data;\n      this.paginator.totalRecords = this.listaUbicacion.length;\n    });\n  }else{\n    this.listaUbicacion = [];\n      this.paginator.totalRecords = 0;\n  }\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.deleteButton.nativeElement.blur();\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let ubicacionGeograficaDTO = new UbicacionGeograficaModel();\n      ubicacionGeograficaDTO.ubicacion = llave.padEnd(8, ' ');\n      let objeto = new GeneralModel('UbicacionGeograficaDTO', null, false, ubicacionGeograficaDTO);\n      let respuesta = await generalService.queryForObject(objeto).toPromise();\n      generalService = null; \n      \n      return `${respuesta.ubicacion.trim()} - ${respuesta.descripcion}`\n    }\n\n    return null;\n  }\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" id=\"nombreCiudad\" [required]=\"booleano\" />\n    <label htmlfor=\"nombreCiudad\">{{labelInput}}</label>\n  </span>\n  <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n  </button>\n  <button #deleteButton *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n    (click)=\"deleteSelection()\">\n    <span class=\"glyphicons glyphicons-remove\"></span>\n  </button>\n</div>\n\n<p-dialog header=\"{{'ubicacion' | translate}}\" [draggable]=\"false\" [resizable]=\"false\" [(visible)]=\"showDialog\"\n  [modal]=\"true\" appendTo=\"body\" (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n  [style]=\"{ width: '50vw'}\">\n  <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n    <!-- Filtro-->\n    <app-filtro-general #filtroGeneral [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" id=\"id_pais\" formControlName=\"pais\" autocomplete=\"off\" />\n              <label for=\"id_pais\">{{'pais' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" id=\"id_ciudad\" formControlName=\"ciudad\" autocomplete=\"off\" />\n              <label for=\"id_ciudad\">{{'ciudad' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n  <p-table #tablaGeneral class=\"mt-4\" dataKey=\"llaveCiudad\" [value]=\"listaUbicacion\" selectionMode=\"single\"\n    [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n    [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    styleClass=\"p-datatable-striped input-helper-datatable\"  [lazy]=\"true\"\n    (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{\"pais\" | translate}} </th>\n        <th>{{\"departamento\" | translate}} </th>\n        <th>{{\"ciudad\" | translate}}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-ubicacion>\n      <tr [pSelectableRow]=\"ubicacion\">\n        <td>{{ubicacion.llavePais}} : {{ubicacion.pais}}</td>\n        <td>{{ubicacion.llaveDepartamento}} : {{ubicacion.departamento}}</td>\n        <td>{{ubicacion.llaveCiudad}} : {{ubicacion.ciudad}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class EmpresaModel extends UnionModel {\n\n\tempresa: number;\n\tnit: number;\n\tdigito: number;\n\torganizacion: number;\n\tprimeraQuincena: number;\n\tsegundaQuincena: number;\n\tdiaPagoMes: number;\n\tdiaPagoAnticipo: number;\n\tnombre: string;\n\tdominio: string;\n\ttelefono: string;\n\tnombrePais: string;\n\tdireccion: string;\n\tpais: string;\n\tmodoHojavida: string;\n\tdescripcionModoHojaVida: string;\n\tmodoCompensacion: string;\n\tdescripcionModoCompensacion: string;\n\tdiaFestivo: string;\n\talterno: string;\n\ttipoDocumento: string;\n\tzona: string;\n\tmail: string;\n\tcodigoActividad: string;\n\tactividadEconomica: string;\n\tobjeto: string;\n\tobjeto2: string;\n\tnominaQuincenal: string;\n\tnominaMensual: string;\n\tmanejoDiaPago: string;\n\tdiaHabilPago: string;\n\tsabadoHabil: string;\n\tenvioComprobante: string;\n\tsucursalges: number;\n\thabilitado: string;\n\n}\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { EmpresaModel } from '../../../modules/compensacion/models/EmpresaModel';\nimport { HojaVidaModel } from '../../../modules/hojavida/models/HojaVidaModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgClass, CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\n\n@Component({\n  selector: 'app-input-helper-hoja-vida',\n  templateUrl: './input-helper-hoja-vida.component.html',\n  styleUrls: ['./input-helper-hoja-vida.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperHojaVidaComponent),\n      multi: true,\n    },\n  ],\n  standalone: true,\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    NgClass,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n    CommonModule\n  ],\n})\nexport class InputHelperHojaVidaComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild('inputText') inputText: ElementRef;\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n  @Input() header: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() ocultarBtnLimpiar: boolean = false;\n\n  @Input() consulta: string = '';\n\n  @Input() cantidadConsulta: string = '';\n\n  @Input() filtroRolCliente: boolean = false;\n\n  @Input() columna: boolean = false;\n\n  @Input() booleano: boolean;\n  @Input() limpiabooleano: boolean;\n  @Input() documento: boolean;\n  @Input() hojaSegunPersonaUnidad: boolean;\n\n\n\n  dataSelected: any;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  listadofiltroGrupo: any[];\n\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  modoParametro: string = '';\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private translateService: TranslateService,\n    private saraAplicacionService: SaraAplicacionService,\n    private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n\n    this.showDialog = false;\n\n    this.filters = [\n      {\n        field: 'identifica',\n        header: this.filtroRolCliente ? this.translateService.instant('identificacion') : this.translateService.instant('identificacion') + ' / ' + this.translateService.instant('nombrepersona'),\n        matchMode: 'contains',\n      },\n\n    ];\n\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    this.dataSelected = null;\n    this.showDialog = true;\n    // if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n    //   setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    // }\n  }\n\n  cleanData() {\n    this.label = '';\n    this.dataSelected = new HojaVidaModel();\n    this.dataSelected.identifica = null;\n    this.dataSelected.nombreCompleto = null;\n    this.value = this.dataSelected.identifica;\n    this.onChange(this.value)\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.identifica;\n    this.label = `${this.dataSelected.identifica} - ${this.dataSelected.nombreCompleto}`;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n    this.booleano = false;\n  }\n\n  async cargarLista(event) {\n\n    this.listadofiltroGrupo = [];\n\n    if(!event.filters.identifica){\n      return;\n    }\n\n    if (!/^[0-9]+$/.test(event.filters.identifica?.value)) {\n      if (this.filtroRolCliente) {\n        return;\n      }\n    }\n\n    let empresa: EmpresaModel = new EmpresaModel();\n    empresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    let objeto2 = new GeneralModel('EmpresaDTO', null, false, empresa);\n    empresa = await this.generalService.queryForObject(objeto2).toPromise();\n    this.modoParametro = empresa.modoHojavida;\n\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      columna: this.columna,\n      comodinBuscarNombre: event.filters.identifica?.value ? '%' + event.filters.identifica?.value + '%' : null,\n      modoParametro: this.modoParametro,\n      usuarioLogin: this.authService.getTokenKey('usuario'),\n      usuarioRol: this.authService.getTokenKey('aliasRol'),\n    };\n\n    if (this.hojaSegunPersonaUnidad) {\n      objeto['identifica'] = await this.saraAplicacionService.getCedula();\n      objeto['empresa'] = empresa.empresa;\n      objeto['organizacion'] = empresa.organizacion;\n      objeto['orden'] = \"asc\";\n      let general = new GeneralModel('HojaVidaDTO', this.consulta ? this.consulta : 'HojaVida.obtenerHojaVidaSegunPersonaUnidad', false, objeto);\n\n      this.generalService.queryForList(general).subscribe((data) => {\n        this.listadofiltroGrupo = data;\n\n        let general = new GeneralModel('HojaVidaDTO', this.cantidadConsulta ? this.cantidadConsulta : 'HojaVida.obtenerCantidadHojaVidaSegunPersonaUnidad', false, objeto);\n        this.generalService.cantidadRegistros(general).subscribe((data) => {\n          this.paginator.totalRecords = data;\n        });\n      });\n      return;\n    }\n\n    let general = new GeneralModel('HojaVidaDTO', this.consulta ? this.consulta : 'HojaVida.obtenerHojaVida', false, objeto);\n\n    this.generalService.queryForList(general).subscribe((data) => {\n      this.listadofiltroGrupo = data;\n\n      let general = new GeneralModel('HojaVidaDTO', this.cantidadConsulta ? this.cantidadConsulta : 'HojaVida.cantidadObtenerHojaVida', false, objeto);\n      this.generalService.cantidadRegistros(general).subscribe((data) => {\n        this.paginator.totalRecords = data;\n      });\n    });\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n\n    if (llave != null) {\n      let filtro = new HojaVidaModel();\n      filtro.identifica = parseInt(llave);\n      if (!filtro.identifica) {\n        return null;\n      }\n      let objeto = new GeneralModel('HojaVidaDTO', null, false, filtro);\n      let respuesta: HojaVidaModel = await generalService.queryForObject(objeto).toPromise();\n      let retorno: HojaVidaModel = new HojaVidaModel();\n      retorno.nombres = respuesta.nombres;\n      retorno.primerapellid = respuesta.primerapellid;\n      retorno.segundoapelli = respuesta.segundoapelli;\n      return retorno.getNombreCompleto();\n    }\n\n    return null;\n  }\n\n  validaboleano(valida: boolean) {\n    this.booleano = valida;\n    this.label = '';\n  }\n\n  ocultar() {\n    this.showDialog = false;\n    this.filtroGeneral.panel.hide();\n  }\n\n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n\n  <span class=\"p-float-label\">\n    <input pInputText #inputText readonly=\"true\" [value]=\"label\" disabled [required]=\"booleano\" />\n    <!--GENERALIZA TODOS LOS LABEL QUE USEN ESTE div-->\n    <!-- se agrega condición al label, para evitar que se muestre la etiqueta vacia en la parte superior del formulario dinamico-->\n    <label *ngIf=\"header != ''\">{{header}}</label>\n  </span>\n  <!-- Abrir Popup -->\n  <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\"\n    [ngClass]=\"{ 'clear': !ocultarBtnLimpiar }\">\n    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n  </button>\n  <!-- Limpiar campo -->\n  <button pButton pRipple *ngIf=\"ocultarBtnLimpiar\" (click)=\"cleanData()\" class=\"p-button-icon-only clear\"\n    icon=\" pi pi-times\" [ngClass]=\"{ 'clear': ocultarBtnLimpiar}\">\n    <!-- <span class=\"glyphicons glyphicons-remove\"></span> -->\n  </button>\n\n</div>\n\n<p-dialog header=\"Filtro hoja de vida\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\" [draggable]=\"true\"\n  [breakpoints]=\"{ '2000px': '40vw','1500px': '60vw','960px': '75vw','800px': '80vw', '700px': '100vw' }\"\n  [style]=\"{ width: '60vw' }\" (onHide)=\"ocultar()\">\n  <div>\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general #filtroGeneral [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                @if(!filtroRolCliente){\n                <input pInputText autofocus type=\"text\" id=\"id_identifica\" formControlName=\"identifica\"\n                  autocomplete=\"off\" />\n                <label for=\"id_documento\">{{'identificacion' | translate}} / {{'nombre' | translate}}</label>\n                }\n                @if(filtroRolCliente){\n                <input pInputText autofocus type=\"text\" id=\"id_identifica\" formControlName=\"identifica\"\n                  autocomplete=\"off\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 20)\" />\n                <label for=\"id_documento\">{{'identificacion' | translate}}</label>\n                }\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listadofiltroGrupo\" selectionMode=\"single\"\n      [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n      [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" (onRowSelect)=\"onRowSelect()\"\n      [lazy]=\"true\" (onLazyLoad)=\"cargarLista($event)\">\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th>{{ \"identificacion\" | translate }}</th>\n          <th>{{ \"nombrepersona\" | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-hoja>\n        <tr [pSelectableRow]=\"hoja\">\n          <td *ngIf=\"!hoja.documento\">{{hoja.identifica}}</td>\n          <td *ngIf=\"hoja.documento\">{{hoja.documento}}</td>\n          <td>{{hoja.nombreCompleto}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n  </div>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class PlanInversionModel extends UnionModel {\n\n\tplanInversion: string;\n\t/** La llave del Plan de Inversion al cual está asociado este subPlan (@TipoInversionDTO) */\n\ttipoInversion: string;\n\tempresa: number;\n\tempresaNombre: string;\n\tsucursalGes: string;\n\tsucursalNombre: string;\n\torganizacion: number;\n\tmonto: number;\n\tejecutado: number;\n\tnombreTipoDescripcion: string;\n\torigen: string;\n\tdescripcion: string;\n\tloginAcceso: string;\n\t/** El tipo / estado del subplan ({@link BienestarCons#TIPOABIERTOCERRADO})*/\n\ttipo: string;\n\tcodigo: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\t/** (campo utilizado para consultas) La llave del Plan de Inversion al cual está asociado este subPlan (@TipoInversionDTO) */\n\tllaveTipoInversion: string;\n\tdepende: string;\n\t/** (campo utilizado para consultas) El estado del plan de Inversion al cual está asociado este subPlan*/\n\testadoTipoInversion: string;\n\tfechaEmision: Date;\n\tnumero: number;\n\tproyectado: number;\n\tanio: string;\n\tcomodinDescripcion: string;\n\tusuarioRol: string;\n\tusuarioLogin: string;\n\tvalorPendiente: number;\n\n\t\n}","\nimport { UnionModel } from 'general-library-union'\n\n\nexport class TipoInversionModel extends UnionModel {\n\n\ttipoInversion: string;\n\torigen: string;\n\tdescripcion: string;\n\tfechaInicio: Date;\n\tfechaFinal: Date;\n\tmonto: number;\n\tejecutado: number;\n\torganizacion: number;\n\t/** El estado del tipo / plan de inversion ({@link BienestarCons#LISTA_ESTADO_PLAN_INVERSION})*/\n\testado: string;\n\thijoPadre: string;\n\tdepende: string;\n\tfechaInicioFormato: string;\n\tfechaFinFormato: string;\n\tusuarioRol: string;\n\tusuarioLogin: string;\n\tsucursalGes: string;\n\tnombreSucursalGes: string;\n\n\t\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'bienestar',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class BienestarPipe implements PipeTransform {\n\n  TABLA_BENEFICIO = \"TIPOBENEFICIO_TIE\";\n\tTABLA_AREATALENTO = \"AREATALENTO\";\n\tTABLA_PROGRAMATALENTO = \"PROGRAMATALENTO\";\n\tTABLA_DISCIPLINADEPORTE = \"DISCIPLINADEPORTE\";\n\tTABLA_MODALIDADDEPORTE = \"MODALIDADDEPORTE\";\n\tTABLA_NIVELTALENTO = \"NIVELTALENTO\";\n\tTABLA_TIPOEVENTO = \"TIPOEVENTO\";\n\tTABLA_PRESUPUESTO = \"PRESUPUESTO\";\n\tTABLA_ASIGNACION = \"ASIGNACION\";\n\tTABLA_CONVENIO = \"CONVENIO_CONT\";\n\tTABLA_TIPOPROCESOSELECCION= \"TIPOPROCESOSELECCION\";\n\n\tGENERAL = \"G\";\n\tESPECIFICO = \"E\";\n\t\n\tGENERAL_DESC = \"General\";\n\tESPECIFICO_DESC = \"Especifico\";\n\t\n\tORIGEN_B = \"B\";\n\tORIGEN_P = \"P\";\n\tORIGEN_BI = \"BI\";\n\tORIGEN_I = \"I\";\n\tTIPO_E = \"E\";\n\tTIPO_I = \"I\";\n\tTIPO_D = \"D\";\n\tTIPO_C = \"C\";\n\tTIPO_H = \"H\";\n\tTIPO_BENEFICIO = \"TB\";\n\tPLAN_INVERSION = \"planInversion\";\n\tTIPO_COSTO_BEN = \"tipoCosto\";\n//\tPLAN_INVERSION_COSTO = \"planInversionCosto\";\n\tHOJA_PARIENTE = \"hojaPariente\";\n\tTIPO_CURSO = \"tipoCurso\";\n\tPERIODO_BENEFICIO = \"periodoBeneficio\";\n\tNIVEL_ACADEMICO = \"nivelAcademico\";\n\tTARIFA = \"tarifa\";\n\tENTIDADES_BENEFICIARIO = \"terceroTalento\";\n\tTIPO_AVTIVIDAD = \"tipoAvtividad\";\n\tDISCIPLINA = \"disciplina\";\n\tMODALIDAD = \"modalidad\";\n\tINSCRITOS = \"inscritos\";\n\tRAMA = \"rama\";\n\tNIVEL_DISCIPLINA = \"nivelDisciplina\";\n\tTIPO_PARTICIPANTE = \"tipoParticipante\";\n\tUBICACION_GEO = \"ubicacionGeo\";\n\tCOMISION = \"comision\";\n\tENTIDAD_BIENESTAR = \"entidadBienestar\";\n\tCAMPO_EMPRESA = \"empresa\";\n\tCAMPO_PERSONA_BIENESTAR =  \"personaBienestar\";\n\tCAMPO_UNIDAD = \"unidad\";\n\tCAMPO_RELACIONCOSTO = \"relacionCosto\";\n\tENTIDAD_BENEFICIO = \"entidad\";\n\tNUMERO_INSCRIPTOS = \"inscritos\";\n\tNUMERO = \"numero\";\n\tFECHA_INICIAL = \"fechaInicial\";\n\tFECHA_FINAL = \"fechaFinal\";\n\tESTADO_DESCUENTO = \"estadoDescuento\";\n\tESTADO = \"estado\";\n\tLISTA = \"lista\";\n\tGRUPO_TIPO_G = \"G\";\n\tSANCIONADO = \"S\";\n\tOPERADOR_LIKE=\"like\";\n\tOPERADOR_IGUAL=\"=\";\n\t//OPERADOR_MAYOR_IGUAL=\">=\";\n\tOPERADOR_AND=\"and\";\n\tOPERADOR_OR=\"or\";\n\tOPERADOR_BETWEEN=\"between\";\n\tCOMPONENTE_HABILITAR = \"S\";\n\tCOMPONENTE_DESHABILITAR = \"L\";\n\tCAMPO_ESCENARIO = \"escenario\";\n\t\n\tPLAN_INVERSION_COSTO_DESC = \"Tipo Costo\";\n\n\tUNICA =\"U\";\n\tMULTIPLE = \"M\";\n\t\n\tDESUNICA =\"Unica\";\n\tDESMULTIPLE = \"Multiple\";\n\t\n\tHIJO = \"H\";\n\tPADRE = \"P\";\n\t\n\tLISTA_NIVEL =\n\t[\n\t\t{ codigo: this.GENERAL, nombre: this.GENERAL_DESC},\n\t\t{ codigo: this.ESPECIFICO, nombre: this.ESPECIFICO_DESC}\n\t]\n\n\n\tACCIONFORMALIZAR =\"S\";\n\tACCIONNOFORMALIZAR =\"N\";\n\tACCIONAMBAS=\"A\";\n\n\tACCIONFORMALIZAR_DESC =\"Requiere Formalizar\";\n\tACCIONNOFORMALIZAR_DESC =\"No requiere Formalizar\";\n\tACCIONAMBAS_DESC=\"Requiere Formalizar, puede condonar\";\n\n\tLISTA_ACCION = \n\t[\n\t\t{ codigo: this.ACCIONFORMALIZAR, nombre: this.ACCIONFORMALIZAR_DESC },\n\t\t{ codigo: this.ACCIONNOFORMALIZAR, nombre: this.ACCIONNOFORMALIZAR_DESC},\n    { codigo: this.ACCIONAMBAS, nombre: this.ACCIONAMBAS_DESC},\n\t]\n\n\tPROGRAMACION =\n\t[\n\t\t{ codigo: this.UNICA, nombre: this.DESUNICA},\n\t\t{ codigo: this.MULTIPLE, nombre: this.DESMULTIPLE},\t\t\n\t]\n\n\n\tGRUPOBIENESTAR =\"GB\";\n\tINDIVIDUAL = \"IN\";\n\tPORGRUPOS = \"GR\";\n\t\n\tDESGRUPOBIENESTAR =\"Grupo Bienestar\";\n\tDESINDIVIDUAL = \"Individual\";\n\tDESPORGRUPOS = \"Por Grupos\";\t\n\t\n\t\n\tTIPOPARTICIPACION=\n\t[\n\t\t{ codigo: this.GRUPOBIENESTAR, nombre: this.DESGRUPOBIENESTAR },\n\t\t{ codigo: this.INDIVIDUAL, nombre: this.DESINDIVIDUAL},\n\t\t{ codigo: this.PORGRUPOS, nombre: this.DESPORGRUPOS}\n\t\t\n\t]\n\t\n\t\n\tTIPOPARTICIPACION_CAPACITACION=\n\t[\n\t\t{ codigo: this.INDIVIDUAL, nombre: this.DESINDIVIDUAL},\n\t\t{ codigo: this.PORGRUPOS, nombre: this.DESPORGRUPOS}\n\t\t\n\t]\n\n\n\tTIPOEVENTO =\"TIPOEVENTO\";\n\tENTRENADORES = \"ENTRENADORES\";\n\tDIRIGIDO = \"DIRIGIDO\";\n\tSANCIONADOS = \"SANCIONADOS\";\n\tCALENDARIO = \"CALENDARIO\";\n\tCOSTO = \"COSTO\";\n\tREMISION = \"REMISION\";\n\n\tDESTIPOEVENTO =\"Tipo Evento\";\n\tDESENTRENADORES = \"Entrenadores\";\n\tDESDIRIGIDO = \"Dirigido\";\n\tDESSANCIONADOS = \"Sancionados\";\n\tDESCALENDARIO = \"Calendario\";\n\tDESCOSTO = \"Costo\";\n\tDESREMISION = \"Remision\";\n\t\n\t\n\tSECCIONTIPOEVENTO =\n\t[\n\t\t{ codigo: this.TIPOEVENTO, nombre: this.DESTIPOEVENTO },\n\t\t{ codigo: this.ENTRENADORES, nombre: this.DESENTRENADORES},\n\t\t{ codigo: this.DIRIGIDO, nombre: this.DESDIRIGIDO},\n\t\t{ codigo: this.SANCIONADOS, nombre: this.DESSANCIONADOS},\n\t\t{ codigo: this.CALENDARIO, nombre: this.DESCALENDARIO},\n\t\t{ codigo: this.COSTO, nombre: this.DESCOSTO},\n\t\t{ codigo: this.REMISION, nombre: this.DESREMISION},\n\t]\n\t\n\tMASCULINA = \"M\";\n\tFEMENINA = \"F\";\n\tMIXTA = \"X\";\n\tNO_APLICA = \"N\";\n\tMASCULINA_DESC = \"Masculina\";\n\tFEMENINA_DESC = \"Femenina\";\n\tMIXTA_DESC = \"Mixta\";\n\tNO_APLICA_DESC = \"No Aplica\";\n\n\tLISTA_RAMAS=\n\t[\n\t\t{ codigo: this.MASCULINA, nombre: this.MASCULINA_DESC},\n\t\t{ codigo: this.FEMENINA, nombre: this.FEMENINA_DESC},\n\t\t{ codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC},\n\t]\n\n\tLISTA_RAMA_MIXTA=\n\t[\n\t\t{ codigo: this.MASCULINA, nombre: this.MASCULINA_DESC},\n\t\t{ codigo: this.FEMENINA, nombre: this.FEMENINA_DESC},\n\t\t{ codigo: this.MIXTA, nombre: this.MIXTA_DESC},\n\t]\n\t\n\tPARTICIPANTE_GRUPO = \"G\";\n\tPARTICIPANTE_INDIVIDUAL = \"I\";\n\tPARTICIPANTE_GRUPO_DESC = \"Por Grupo\";\n\tPARTICIPANTE_INDIVIDUAL_DESC = \"Individual\";\n\tLISTA_TIPO_PARTICIPANTE=\n\t[\n\t\t{ codigo: this.PARTICIPANTE_GRUPO, nombre: this.PARTICIPANTE_GRUPO_DESC},\n    { codigo: this.PARTICIPANTE_INDIVIDUAL, nombre: this.PARTICIPANTE_INDIVIDUAL_DESC},\n\t]\n\t\n\tABIERTO =\"A\";\n\tCERRADO = \"C\";\t\n\tDESABIERTO = \"Abierto\";\n\tDESCERRADO = \"Cerrado\";\t\n\t\n\t\n\tTIPOABIERTOCERRADO=\n\t[\n\t\t{ codigo: this.ABIERTO, nombre: this.DESABIERTO},\n    { codigo: this.CERRADO, nombre: this.DESCERRADO},\n\t\t\n\t]\n\t\n\tESTADO_PROGRAMADA = \"P\";\n\tESTADO_CANCELADO = \"C\";\n\tESTADO_PROGRAMADA_DESC = \"Programada\";\n\tESTADO_CANCELADO_DESC = \"Cancelado\";\n  \n\tLISTA_ESTADOS=\n\t[\n    { codigo: this.ESTADO_PROGRAMADA, nombre: this.ESTADO_PROGRAMADA_DESC},\n    { codigo: this.ESTADO_CANCELADO, nombre: this.ESTADO_CANCELADO_DESC},\n\t]\n\t\n\tPRESTAMO = \"P\";\n\tDESCUENTO = \"D\";\n\tNORECAUDO = \"N\";\n\tNOVEDADNOMINA = \"M\";\n\tPRESTAMO_DESC = \"Prestamo\";\n\tDESCUENTO_DESC = \"Descuento\";\n\tNORECAUDO_DESC = \"No Recaudo\";\n\tNOVEDADNOMINA_DESC = \"Novedad hacia N\"+Constantes.O_TIDLE_MIN+\"mina\";\n\tLISTA_FORMA_RECAUDO =\n\t[\n\t\t{ codigo: this.PRESTAMO, nombre: this.PRESTAMO_DESC},\n\t\t{ codigo: this.DESCUENTO, nombre: this.DESCUENTO_DESC},\n\t\t{ codigo: this.NORECAUDO, nombre: this.NORECAUDO_DESC},\n\t\t{ codigo: this.NOVEDADNOMINA, nombre: this.NOVEDADNOMINA_DESC},\n\t]\n\t\n\tGENERO=\"GENERO\";\n\tEDAD=\"EDAD\";\n\t\n\tEDAD_DESC=\"Edad\";\n\tGENERO_DESC=\"Genero\";\n\n\tEXTERNO =\"E\";\n\tINTERNO = \"I\";\n\t\n\t DESEXTERNO =\"Externo\";\n\t DESINTERNO = \"Interno\";\n\t\n\t\n\tlistaExternoInterno=\n\t[\n\t{ codigo: this.EXTERNO, nombre: this.DESEXTERNO},\n    { codigo: this.INTERNO, nombre: this.DESINTERNO},\n\t\t\n\t]\n\t\n\tPROGRAMADO =\"P\";\n\tCANCELADO = \"C\";\n\tINSCRITO = \"I\";\n\t\n\t PROGRAMADO_DESC =\"Programado\";\n\t CANCELADO_DESC = \"Cancelado\";\n\t INSCRITO_DESC = \"Inscrito\";\n\t\n\tMAPA_DESCRIPCION_ESTADOS=\n\t[\n\t\t {codigo: this.PROGRAMADO, nombre: this.PROGRAMADO_DESC},\n\t\t {codigo: this.CANCELADO, nombre: this.CANCELADO_DESC},\n\t\t {codigo: this.INSCRITO, nombre: this.INSCRITO_DESC},\n\t\t\n\t]\n\t\n\tENTREGA_EFECTIVO = \"E\";\n\tABONO_NOMINA = \"A\";\n\tNOAPLICA = \"N\";\n\tPAGO_TERCERO = \"T\";\n\tENTREGA_EFECTIVO_DESC = \"Entrega Efectivo\";\n\tABONO_NOMINA_DESC = \"Abono a N\"+Constantes.O_TIDLE_MIN+\"mina\";\n\tNOAPLICA_DESC = \"No Aplica\";\n\tPAGO_TERCERO_DESC = \"Pago a un Tercero\";\n\tLISTA_FORMA_DESEMBOLSO=\n\t[\n\t\t{codigo: this.ENTREGA_EFECTIVO, nombre: this.ENTREGA_EFECTIVO_DESC},\n\t\t{codigo: this.ABONO_NOMINA, nombre: this.ABONO_NOMINA_DESC},\n\t\t{codigo: this.NOAPLICA, nombre: this.NOAPLICA_DESC},\n\t\t{codigo: this.PAGO_TERCERO, nombre: this.PAGO_TERCERO_DESC},\n\t]\n\t\n\n\tCONTROL_POR_TARIFA = \"CT\";\n\tMANEJO_TARIFA = \"TA\";\n\tNO_RELACIONAR = \"NO\";\n\tCONTROL_POR_TARIFA_DESC = \"Control por Tarifa\";\n\tMANEJO_TARIFA_DESC = \"Manejo Tarifa\";\n\tNO_RELACIONAR_DESC = \"No Relacionar\";\n\tLISTA_MANEJA_TARIFAS=\n\t[\n\t\t{codigo: this.CONTROL_POR_TARIFA, nombre: this.CONTROL_POR_TARIFA_DESC},\n\t\t{codigo: this.MANEJO_TARIFA, nombre: this.MANEJO_TARIFA_DESC},\n\t\t{codigo: this.NO_RELACIONAR, nombre: this.NO_RELACIONAR_DESC},\n\t]\n\n\tPUNTAJE_MINIMA = \"P\";\n\tAPROBACION = \"A\";\n\tENTREGA_DOCUMENTO = \"E\";\n\tPUNTAJE_MINIMA_DESC = \"Puntaje m\"+Constantes.I_TILDE_MIN+\"nima\";\n\tMANEJO_APROBACION_DESC = \"Aprobaci\"+Constantes.O_TIDLE_MIN+\"n\";\n\tENTREGA_DOCUMENTO_DESC = \"Entrega Documento\";\n\tLISTA_TIPO_CONDONACION=\n\t[\n    {codigo: this.PUNTAJE_MINIMA, nombre: this.PUNTAJE_MINIMA_DESC},\n    {codigo: this.APROBACION, nombre: this. MANEJO_APROBACION_DESC},\n    {codigo: this.ENTREGA_DOCUMENTO, nombre: this.ENTREGA_DOCUMENTO_DESC},\n\t]\n\tPERIODOS_PROGRAMACION = \"P\";\n\tSERVICIO_TARIFAS = \"T\";\n\t\n\tCONTROL_DE_CANTIDAD =\"C\";\n\tCONTROL_DE_CANTIDAD_DESC=\"Control de cantidad\";\n\tVALOR_PRESUPUESTO =\"V\";\n\tVALOR_PRESUPUESTO_DESC =\"Valor presupuesto\";\n\t\n\tLISTA_TIPO_CONTROL=\n\t[\n\t\t{codigo: this.CONTROL_DE_CANTIDAD, nombre: this.CONTROL_DE_CANTIDAD_DESC},\n\t\t{codigo: this.VALOR_PRESUPUESTO, nombre: this.VALOR_PRESUPUESTO_DESC},\n\t\t{codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC},\n\t]\n\t\n\t\n\tSOLICITADO_DESC=\"Solicitado\";\n\tASIGNADO_DESC=\"Legalizado\";\n\tAPROBADO_DESC=\"Autorizado\";\n\tNOAPROBADO_DESC=\"No Autorizado\";\n\tNOASIGNADO_DESC=\"No Legalizado\";\n\tPORFORMALIZAR_DESC=\"Por Formalizar\";\n\tFORMALIZADO_DESC=\"Formalizado\";\n\tNOFORMALIZADO_DESC=\"No Formalizado\";\n\tNOCONDONADO_DESC=\"Formalizado No Condonado\";\n\tCONDONADO_DESC=\"Formalizado Condonado\";\n\tSOLICITUDCONDONACION_DESC =\"Solicitud Condonacion\";\n\tSOLICITUDFORMALIZAR_DESC =\"Solicitud de Formalizar\";\n\tSOLICITADO =\"S\";\n\tASIGNADO =\"A\";\n\tAPROBADO =\"P\";\n\tNOAPROBADO =\"D\";\n\tNOASIGNADO =\"N\";\n\tPORFORMALIZAR=\"R\";\n\tFORMALIZADO =\"F\";\n\tNOFORMALIZADO =\"M\";\n\tSOLICITUDFORMALIZAR =\"O\";\n\tNOCONDONADO =\"C\";\n\tCONDONADO =\"G\";\n\tSOLICITUDCONDONACION =\"X\";\n\n\t\n\tESTADO_BENEFICIARIO=\n\t[\n\t\t{codigo: this.SOLICITADO, nombre: this.SOLICITADO_DESC},\n\t\t{codigo: this.ASIGNADO, nombre: this.ASIGNADO_DESC},\n\t\t{codigo: this.APROBADO, nombre: this.APROBADO_DESC},\n\t\t{codigo: this.NOAPROBADO, nombre: this.NOAPROBADO_DESC},\n\t\t{codigo: this.NOASIGNADO, nombre: this.NOASIGNADO_DESC},\n\t\t{codigo: this.PORFORMALIZAR, nombre: this.PORFORMALIZAR_DESC},\n\t\t{codigo: this.FORMALIZADO, nombre: this.FORMALIZADO_DESC},\n\t\t{codigo: this.NOFORMALIZADO, nombre: this.NOFORMALIZADO_DESC},\n\t\t{codigo: this.NOCONDONADO, nombre: this.NOCONDONADO_DESC},\n\t\t{codigo: this.CONDONADO, nombre: this.CONDONADO_DESC},\n\t\t{codigo: this.SOLICITUDCONDONACION, nombre: this.SOLICITUDCONDONACION_DESC},\n\t\t{codigo: this.SOLICITUDFORMALIZAR, nombre: this.SOLICITUDFORMALIZAR_DESC},\n\t]\n\n\tGENERADO_NOMINA=\"N\";\n\tGENERADO_NOMINA_DESC=\"Generado nomina\";\n\tPENDIENTE_GENERACION=\"Pendiente Generacion\";\n\tPENDIENTE_GENERACION_DESC=\"No Asignado\";\n\tLISTA_ESTADO_DESCUENTO_BENEFICIARIO=\n\t[\n\t\t{codigo: this.GENERADO_NOMINA, nombre: this.GENERADO_NOMINA_DESC},\n\t\t{codigo: this.PENDIENTE_GENERACION, nombre: this.PENDIENTE_GENERACION_DESC},\n\t]\n\t\n\tTIPO_CONTROL = \"tipoControl\";\n\n\tSOLICITANTE=\"P\";\n\tSECCION=\"H\";\n\tSOLICITANTE_SECCION=\"D\";\n\n\tSOLICITANTE_DESC=\"Solicitante\";\n\tSECCION_DESC=\"Seccion Hoja\";\n\tSOLICITANTE_SECCION_DESC=\"Solicitante Y Seccion Hoja\";\n\t\n\tLISTA_SOLICIANTE =\n\t[\n\t\t{codigo: this.SOLICITANTE, nombre: this.SOLICITANTE_DESC},\n    {codigo: this.SECCION, nombre: this.SECCION_DESC},\n    {codigo: this.SOLICITANTE_SECCION, nombre: this.SOLICITANTE_SECCION_DESC},\n\t]\n\tCAMPO_POPUP_MOMENTOEVENTO_MODALIDAD = \"modalidad\";\n\tCAMPO_POPUP_MOMENTOEVENTO_RAMA = \"rama\";\n\tCAMPO_POPUP_MOMENTOEVENTO_NIVEL = \"nivelDisciplina\";\n\tCAMPO_POPUP_MOMENTOEVENTO_CUPOMAXIMO = \"cupoMaximo\";\n\tCAMPO_POPUP_MOMENTOEVENTO_CUPOMINIMO = \"cupoMinimo\";\n\tCAMPO_POPUP_MOMENTOEVENTO_INSCRITOS = \"inscritos\";\n\tCAMPO_POPUP_MOMENTOEVENTO_INSTRUCTOR = \"instructor\";\n\tCAMPO_POPUP_MOMENTOEVENTO_INICIALINSCRIBE = \"inicialInscribe\";\n\tCAMPO_POPUP_MOMENTOEVENTO_FINALINSCRIBE = \"finalInscribe\";\n\tCAMPO_POPUP_MOMENTOEVENTO_HORARIO = \"horario\";\n\tLISTA_CAMPOS_POPUP_MOMENTO_EVENTOS=\n\t[\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_MODALIDAD, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_MODALIDAD},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_RAMA, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_RAMA},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_NIVEL, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_NIVEL},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_CUPOMAXIMO, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_CUPOMAXIMO},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_CUPOMINIMO, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_CUPOMINIMO},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_INSCRITOS, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_INSCRITOS},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_INSTRUCTOR, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_INSTRUCTOR},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_INICIALINSCRIBE, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_INICIALINSCRIBE},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_FINALINSCRIBE, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_FINALINSCRIBE},\n\t\t{codigo: this.CAMPO_POPUP_MOMENTOEVENTO_HORARIO, nombre: this.CAMPO_POPUP_MOMENTOEVENTO_HORARIO},\n\t]\n\t\n\tESTADO_PROGRAMADA_GRUPO_BIENESTAR = \"P\";\n\tESTADO_NO_ACEPTADO_BIENESTAR = \"N\";\n\tESTADO_CANCELADO_GRUPO_BIENESTAR = \"C\";\n\tESTADO_INSCRITO_GRUPO_BIENESTAR = \"I\";\t\n\tESTADO_FINALIZADO_GRUPO_BIENESTAR = \"F\";\n\tESTADO_NO_FINALIZADO_GRUPO_BIENESTAR = \"L\";\n\tESTADO_PROGRAMADA_GRUPO_BIENESTAR_DESC = \"Aceptado\";\n\tESTADO_NO_ACEPTADO_BIENESTAR_DESC = \"No Aceptado\";\n\tESTADO_CANCELADO_GRUPO_BIENESTAR_DESC = \"Cancelado\";\n\tESTADO_INSCRITO_GRUPO_BIENESTAR_DESC = \"Inscrito\";\n\tESTADO_FINALIZADO_GRUPO_BIENESTAR_DESC = \"Finalizado\";\n\tESTADO_NO_FINALIZADO_GRUPO_BIENESTAR_DESC = \"No Finalizado\";\n\tLISTA_ESTADOS_GRUPO_BIENESTAR=\n\t[\n\t\t{codigo: this.ESTADO_PROGRAMADA_GRUPO_BIENESTAR, nombre: this.ESTADO_PROGRAMADA_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.ESTADO_CANCELADO_GRUPO_BIENESTAR, nombre: this.ESTADO_CANCELADO_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.ESTADO_INSCRITO_GRUPO_BIENESTAR, nombre: this.ESTADO_INSCRITO_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.ESTADO_NO_ACEPTADO_BIENESTAR, nombre: this.ESTADO_NO_ACEPTADO_BIENESTAR_DESC},\n\t\t{codigo: this.ESTADO_FINALIZADO_GRUPO_BIENESTAR,nombre: this.ESTADO_FINALIZADO_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.ESTADO_NO_FINALIZADO_GRUPO_BIENESTAR,nombre: this.ESTADO_NO_FINALIZADO_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.SOLICITADO, nombre: this.SOLICITADO_DESC},\n\t]\n\t\n\tESTADOS_GRUPO_BIENESTAR_CUPO=\n\t[\n\t\t{codigo: this.ESTADO_PROGRAMADA_GRUPO_BIENESTAR, nombre: this.ESTADO_PROGRAMADA_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.ESTADO_FINALIZADO_GRUPO_BIENESTAR,nombre: this.ESTADO_FINALIZADO_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.ESTADO_INSCRITO_GRUPO_BIENESTAR, nombre: this.ESTADO_INSCRITO_GRUPO_BIENESTAR_DESC},\n\t\t{codigo: this.SOLICITADO, nombre: this.SOLICITADO_DESC},\n\t]\n\t\n\t\n\tSUB_PLAN = \"S\";\n\tSUB_PLAN_DESC = \"SubPlan\";\n\tTIPO_COSTO = \"C\";\n\tTIPO_COSTO_DESC = \"Tipo Costo\";\n\t\n\tLISTA_DETALLE_PRESUPUESTO=\n\t[\n\t\t{codigo: this.SUB_PLAN, nombre: this.SUB_PLAN_DESC},\n    \t{codigo: this.TIPO_COSTO, nombre: this.TIPO_COSTO_DESC},\n\t]\n\t\n\t\n\tEJECUCION = \"S\";\n\tBLOQUEADO= \"B\";\n\tFINALIZADO = \"N\";\n\t\n\tEJECUCION_DESC = \"Ejecucion\";\n\tBLOQUEADO_DESC= \"Bloqueado\";\n\tFINALIZADO_DESC = \"Finalizado\";\n\t\n\tLISTA_ESTADO_PLAN_INVERSION=\n\t[\n\t\t{codigo: this.EJECUCION, nombre: this.EJECUCION_DESC},\n    {codigo: this.BLOQUEADO, nombre: this.BLOQUEADO_DESC},\n    {codigo: this.FINALIZADO, nombre: this.FINALIZADO_DESC},\n\t]\n\t\n\t//Variables para tarea Convenio\n\tORIGENCONVENIO = \"CONVENIO\";\n\tORIGENCONTRATO= \"CONTRATO\";\n\n\ttransform(value: any, ...args: any): any {\n\t\t\n\t\tlet result = value;\n\t\tif (args[0] == 'listaprogramacion') { this.PROGRAMACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listatipoparticipacion') { this.TIPOPARTICIPACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaestadobeneficiario') { this.ESTADO_BENEFICIARIO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listatipoexrt') { this.listaExternoInterno.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listadotiparticipa') { this.TIPOPARTICIPACION_CAPACITACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listadoestadogrupobienestar') { this.LISTA_ESTADOS_GRUPO_BIENESTAR.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listadoformarecaudo') { this.LISTA_FORMA_RECAUDO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n\n\t\t\n    return result;\n  }\n\n}\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { AuthService, GeneralModel, GeneralService, UtilsService } from 'general-library-union';\nimport { BienestarPipe } from '../../../modules/bienestar/pipes/bienestar.pipe';\nimport { CampoFormularioModel } from 'general-library-union';\n\nimport { PlanInversionModel } from '../../../modules/saludocupacional/models/PlanInversionModel';\nimport { TipoInversionModel } from '../../../modules/saludocupacional/models/TipoInversionModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, CurrencyPipe } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-seleccion-plan-inversion',\n    templateUrl: './input-helper-seleccion-plan-inversion.component.html',\n    styleUrls: ['./input-helper-seleccion-plan-inversion.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionPlanInversionComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        CurrencyPipe,\n        TranslateModule,\n    ],\n})\nexport class InputHelperSeleccionPlanInversionComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input() value: string | number;\n\n  @Input() headerPopup: string;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() showDialog: boolean = false;\n\n  @Input() soloPopup: boolean = false;\n\n  @Input() mostrarX: boolean;\n\n  @Input() booleano: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() ingresarMetodo: string = '';\n\n  @Input() llavePlanAnterior: string = '';\n\n  @Input() llaveTipoInversionTipoBeneficio: string = '';\n\n  @Input() modulo: string = '';\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  loading: boolean;\n\n  dataSelected: PlanInversionModel;\n  listadoPlan: PlanInversionModel[];\n\n  constructor(private generalService: GeneralService, \n              private authService: AuthService, \n              private translateService: TranslateService,\n              private bienestarPipe: BienestarPipe, \n              private utilsService: UtilsService) { }\n\n\n  ngOnInit(): void {\n  \n    this.listadoPlan = []\n    this.showDialog = false;\n\n    if (this.labelInput == null) {\n      this.labelInput = this.translateService.instant('planinversion');\n    }\n\n    if(this.headerPopup == null){\n      this.headerPopup =  this.translateService.instant('filtroempleado');\n    }\n  }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n\n    this.showDialog = true;\n\n    this.dataSelected = null;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n    if (!this.ingresarMetodo || this.ingresarMetodo == 'init') {\n      this.init();\n      return;\n    }\n\n    if (this.ingresarMetodo == 'initPlan') {\n      this.initPlan();\n      return;\n    }\n\n    if (this.ingresarMetodo == 'buscar') {\n      this.buscar();\n      return;\n    }\n\n  }\n\n  init() {\n    this.cargarPaginadorPorTipoBeneficio();\n    this.showDialog = true;\n  }\n\n  initPlan() {\n    this.cargarPaginadorllave();\n    this.showDialog = true;\n  }\n\n  buscar() {\n    this.cargarPaginador();\n    this.showDialog = true;\n  }\n\n  async cargarPaginador() {\n\n    let planInversion = new PlanInversionModel();\n    planInversion.estadoTipoInversion = this.bienestarPipe.EJECUCION;\n    planInversion.tipo = this.bienestarPipe.ABIERTO;\n    planInversion.usuarioRol = this.authService.getTokenKey('aliasRol');\n    planInversion.usuarioLogin = this.authService.getTokenKey('usuario');\n\n    let objeto = new GeneralModel('PlanInversionDTO', null, false, planInversion);\n    this.listadoPlan = await this.generalService.queryForList(objeto).toPromise();\n\n    await this.cargarValorPendiente();\n\n  }\n\n  async cargarPaginadorPorTipoBeneficio() {\n\n    if (this.llaveTipoInversionTipoBeneficio) {\n\n      let tipoInversion = new TipoInversionModel;\n      tipoInversion.tipoInversion = this.llaveTipoInversionTipoBeneficio;//\"384911b81772428ea0bf3f6cc93f39a5\"\n      let objeto = new GeneralModel('TipoInversionDTO', null, false, tipoInversion);\n      tipoInversion = await this.generalService.queryForObject(objeto).toPromise();\n\n      let planInversion = new PlanInversionModel();\n\n      if (this.bienestarPipe.HIJO == tipoInversion.hijoPadre) {\n        planInversion.llaveTipoInversion = this.llaveTipoInversionTipoBeneficio;\n      } else {\n        planInversion.depende = this.llaveTipoInversionTipoBeneficio;\n      }\n\n      planInversion.usuarioRol = this.authService.getTokenKey('aliasRol');\n      planInversion.usuarioLogin = this.authService.getTokenKey('usuario');\n\n      objeto = new GeneralModel('PlanInversionDTO', null, false, planInversion);\n      this.listadoPlan = await this.generalService.queryForList(objeto).toPromise();\n\n      await this.cargarValorPendiente();\n    }\n  }\n\n  async cargarValorPendiente() {\n\n    if (this.listadoPlan.length > 0) {\n\n      for (const iterator of this.listadoPlan) {\n\n        if (iterator.monto != null && iterator.ejecutado != null)\n          iterator.valorPendiente = iterator.monto - iterator.ejecutado;\n        else {\n          iterator.valorPendiente = 0;\n        }\n\n      }\n    }\n    \n\n  }\n\n  async cargarPaginadorllave() {\n\n    let planInversion = new PlanInversionModel();\n    planInversion.origen = this.modulo;\n    planInversion.estadoTipoInversion = this.bienestarPipe.EJECUCION;\n    planInversion.tipo = this.bienestarPipe.ABIERTO;\n    planInversion.usuarioRol = this.authService.getTokenKey('aliasRol');\n    planInversion.usuarioLogin = this.authService.getTokenKey('usuario');\n\n    let objeto = new GeneralModel('PlanInversionDTO', null, false, planInversion);\n    this.listadoPlan = await this.generalService.queryForList(objeto).toPromise();\n\n\n    if (this.llavePlanAnterior != null) {\n      //Agrega al listado de planes de inversion (paginador) el plan seleccionado anteriormente (si no se encuentra ya en el listado)\n      let planAnterior = new PlanInversionModel();\n      planAnterior.planInversion = this.llavePlanAnterior;\n      let objeto = new GeneralModel('PlanInversionDTO', null, false, planAnterior);\n      planAnterior = await this.generalService.queryForObject(objeto).toPromise();\n\n      if (!this.listadoPlan.some((plan) => plan.planInversion === planAnterior.planInversion)) {\n        this.listadoPlan.push(planAnterior);\n      }\n    }\n    await this.cargarValorPendiente();\n\n  }\n\n  onRowSelect(event) {\n    \n    this.showDialog = false;\n    this.value = this.dataSelected.planInversion;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n\n    if (llave != null) {\n      let planInversion = new PlanInversionModel();\n      planInversion.planInversion = llave.padEnd(32, ' ');\n      let objeto = new GeneralModel('PlanInversionDTO', null, false, planInversion);\n      let respuesta = await generalService.queryForObject(objeto).toPromise();\n      generalService = null;\n      return respuesta.descripcion;\n    }\n\n    return null;\n  }\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' : ''}}</label>\n        <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\">\n        <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n</div>\n<p-dialog #dialog id='popupEmpleado' [header]=\"headerPopup\" [(visible)]=\"showDialog\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\">\n\n    <p-table #tablaGeneral [value]=\"listadoPlan\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n        [paginator]=\"listadoPlan.length > 10\" [totalRecords]=\"listadoPlan.length\" [showCurrentPageReport]=\"true\"\n        [scrollable]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [(selection)]=\"dataSelected\" styleClass=\"p-datatable-striped input-helper-datatable\"\n        (onRowSelect)=\"onRowSelect($event)\" [globalFilterFields]=\"['tipoplan', 'subplaninversion', 'pendiente']\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 30%;\">{{ \"tipoplan\" | translate }}</th>\n                <th style=\"width: 40%;\">{{ \"subplaninversion\" | translate }}</th>\n                <th style=\"width: 30%;\">{{ \"pendiente\" | translate }}</th>\n            </tr>\n            <tr class=\"bg-white\">\n                <th class=\"bg-white border-noround border-bottom-1 color-100\" style=\"width: 30%\">\n                    <div class=\"flex\">\n                        <span class=\"pl-0 text-base color-400\"></span>\n                        <p-columnFilter field=\"nombreTipoDescripcion\" matchMode=\"contains\" [showOperator]=\"false\"\n                            [showClearButton]=\"false\" [showMenu]=\"false\"></p-columnFilter>\n                    </div>\n                </th>\n                <th class=\"bg-white border-noround  border-bottom-1 color-100\" style=\"width: 40%\">\n                    <div class=\"flex\">\n                        <span class=\"pl-0 text-base color-400\"></span>\n                        <p-columnFilter field=\"descripcion\" matchMode=\"contains\" [showOperator]=\"false\"\n                            [showMenu]=\"false\" [showClearButton]=\"false\"></p-columnFilter>\n                    </div>\n                </th>\n                <th class=\"bg-white border-noround border-bottom-1 color-100\" style=\"width: 30%\">\n                </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-item>\n            <tr [pSelectableRow]=\"item\">\n                <td style=\"width: 30%;\">{{item.nombreTipoDescripcion}}</td>\n                <td style=\"width: 40%;\">{{item.descripcion}}</td>\n                <td *ngIf=\"item.valorPendiente > 0\" style=\"width: 30%;\">{{item.valorPendiente | currency}}</td>\n                <td *ngIf=\"item.valorPendiente <= 0\" style=\"width: 30%; color: red;\">{{item.valorPendiente | currency}}\n                </td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class IdiomaModel extends UnionModel {\n\n\t\n\t\n\tidioma: string;\n\tnombre: string;\n\tversion: number;\n\tseleccion: string;\n\tparametroFiltro: string;\n\t\n\t\n}\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { IdiomaModel } from '../../../modules/hojavida/models/IdiomaModel';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n\n@Component({\n    selector: 'app-input-helper-idioma',\n    templateUrl: './input-helper-idioma.component.html',\n    styleUrls: ['./input-helper-idioma.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperIdiomaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperIdiomaComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaIdioma: IdiomaModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: IdiomaModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService,\n              private authService: AuthService,\n              private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      }\n    ];\n    if(this.labelInput == null){\n      this.labelInput= this.translateService.instant('idioma');\n    }\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.idioma\n    this.label = this.dataSelected.nombre;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      nombre: event.filters.parametroBusqueda?.value ? '%' + event.filters.parametroBusqueda?.value + '%' : null,\n    }\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'IdiomaDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto\n    };\n    this.listaIdioma = await this.generalService.queryForList(objetoFiltro).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objetoFiltro).toPromise();\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new IdiomaModel();\n      filtro.idioma = llave.padEnd(2, ' ');\n      let objeto = new GeneralModel('IdiomaDTO', null, false, filtro);\n      let respuesta: IdiomaModel = await generalService.queryForObject(objeto).toPromise();\n      return `${respuesta.nombre.trim()}`\n    } else {\n      return null;\n    }\n  }\n\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog header=\"{{'idioma' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"idioma\" [value]=\"listaIdioma\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect()\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.idioma}}</td>\n            <td>{{bean.nombre}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport {  AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { AreaConocimientoModel } from '../../../modules/hojavida/models/AreaConocimientoModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-area-conocimiento',\n    templateUrl: './input-helper-area-conocimiento.component.html',\n    styleUrls: ['./input-helper-area-conocimiento.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperAreaConocimientoComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperAreaConocimientoComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  lista: AreaConocimientoModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: AreaConocimientoModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService,\n              private authService: AuthService,\n              private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.tipoAreaExp\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      descripcion: event.filters.parametroBusqueda?.value ? '%' + event.filters.parametroBusqueda?.value + '%' : null,\n    }\n    var objetoFiltro: GeneralModel = {\n      nombreDTO: 'AreaConocimientoDTO',\n      nombreConsulta: 'AreaConocimiento.listaAreaConocimiento',\n      seguridad: false,\n      objeto: objeto\n    };\n    this.lista = await this.generalService.queryForList(objetoFiltro).toPromise();\n    objetoFiltro.nombreConsulta = 'AreaConocimiento.cantidadRegistrosAreaConocimiento'\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objetoFiltro).toPromise();\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new AreaConocimientoModel();\n      filtro.tipoAreaExp = llave.padEnd(32, ' ');\n      let objeto = new GeneralModel('AreaConocimientoDTO', 'AreaConocimiento.listaAreaConocimiento', false, filtro);\n      let respuesta: AreaConocimientoModel = await generalService.queryForObject(objeto).toPromise();\n      return `${respuesta.descripcion.trim()}`\n    } else {\n      return null;\n    }\n  }\n\n\n}\n","<div  #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\">\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n</div>\n  \n  <p-dialog header=\"{{'profesionoficio' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"tipoAreaExp\" [value]=\"lista\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\n\nexport class InstitucionModel extends UnionModel {\n\n\t\n\tinstitucion: number;\n\tnombre: string;\n\ttipo: string;\n\tversion: number;\n\tdireccion: string;\n\ttelefono: string; \n\tcontacto: string; \n\tciudad: string; \n\tnombreCiudad: string;\n\torigen: string;\n\tnombreOriginal: string;\n\tcodigo: string;\n\tparametroFiltro: string;\n\t\t\n\t}\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, CampoFormularioModel, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { InstitucionModel } from '../../../modules/hojavida/models/InstitucionModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-seleccion-institucion',\n    templateUrl: './input-helper-seleccion-institucion.component.html',\n    styleUrls: ['./input-helper-seleccion-institucion.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionInstitucionComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperSeleccionInstitucionComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() labelInput: string;\n\n  listaInstitucion: any[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: InstitucionModel;\n\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService\n  ) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n\n    if (this.labelInput == null) {\n      //this.labelInput = this.translateService.instant('editorial');\n    }\n\n    this.filters = [\n      {\n        field: 'institucion',\n        header: this.translateService.instant('institucion'),\n        matchMode: 'contains',\n      }\n      , {\n        field: 'nombre',\n        header: this.translateService.instant('nombre'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.institucion;\n    this.label = this.dataSelected.nombre;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      nombre: event.filters.nombre?.value ? '%' + event.filters.nombre?.value + '%' : null,\n      institucion: event.filters.institucion?.value ? event.filters.institucion?.value : null\n    }\n    const objetoFiltro = {\n      nombreDTO: 'InstitucionDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto\n    };\n    this.generalService.queryForList(objetoFiltro).subscribe((data) => {\n      this.listaInstitucion = data;\n      this.generalService.cantidadRegistros(objetoFiltro).subscribe(data => {\n        this.paginator.totalRecords = data;\n      })\n\n    });\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: any, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new InstitucionModel();\n      filtro.institucion = llave;\n      let objeto = new GeneralModel('InstitucionDTO', null, false, filtro);\n      let respuesta = await generalService.queryForObject(objeto).toPromise();\n      generalService = null;\n      return respuesta.nombre;\n    }\n    return null;\n  }\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" id=\"instituto\" [required]=\"booleano\"/>\n        <label htmlfor=\"instituto\" *ngIf=\"booleano\">{{labelInput ? labelInput + '*' :  ''}}</label>\n        <label htmlfor=\"instituto\" *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n\n</div>\n\n<p-dialog header=\"{{'institucion'| translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n    (onShow)=\"openDataTable()\" [contentStyle]=\"{width: '720px'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_institucion\" formControlName=\"institucion\"\n                                maxlength=\"5\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_institucion\">{{'institucion' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_nombre\" formControlName=\"nombre\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_nombre\">{{'nombre' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listaInstitucion\" selectionMode=\"single\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect()\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 13%;\">{{\"institucion\" | translate}} </th>\n                <th style=\"width: 30%;\">{{\"nombre\" | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-institucion>\n            <tr [pSelectableRow]=\"institucion\">\n                <td style=\"width: 13%;\">{{institucion.institucion}}</td>\n                <td style=\"width: 30%;\">{{institucion.nombre}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\n\nexport class ProfesionOficioModel extends UnionModel{\n\n\tprofesion: string;\n\tdescripcion: string;\n\ttipo: string;\n\tversion: number;\n\tgrupoProfesion: string;\n\n\t\n}\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {  AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { ProfesionOficioModel } from '../../../modules/hojavida/models/ProfesionOficioModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-profesion-oficio',\n    templateUrl: './input-helper-profesion-oficio.component.html',\n    styleUrls: ['./input-helper-profesion-oficio.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperProfesionOficioComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperProfesionOficioComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  lista: ProfesionOficioModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: ProfesionOficioModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService,\n              private authService: AuthService,\n              private  utilsService: UtilsService){ }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.profesion\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      descripcion: event.filters.parametroBusqueda?.value ? '%' + event.filters.parametroBusqueda?.value + '%' : null,\n    }\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'ProfesionOficioDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto\n    };\n    this.lista = await this.generalService.queryForList(objetoFiltro).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objetoFiltro).toPromise();\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new ProfesionOficioModel();\n      filtro.profesion = llave.padEnd(4, ' ');\n      let objeto = new GeneralModel('ProfesionOficioDTO', null, false, filtro);\n      let respuesta: ProfesionOficioModel = await generalService.queryForObject(objeto).toPromise();\n      return `${respuesta.descripcion.trim()}`\n    } else {\n      return null;\n    }\n  }\n\n\n}\n","<div  #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\">\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n</div>\n  \n  <p-dialog header=\"{{'profesionoficio' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"profesion\" [value]=\"lista\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.profesion}}</td>\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class ArchivoModel extends UnionModel{\n\n\tllave: string;\n\tempresa: number;\n\tdescripcion: string;\n\truta: string;\n\tarchivoOrigenEliminar: string;\n\tarchivoorigen: string;\n\tarchivoorigenencriptado: string;\n\thojaintelecto: string;\n\thojapariente: string;\n\thojapatrimonio: string;\n\tequipointegrante: string;\n\tnovedad: string;\n\tllaveActoAdmon: string;\n\ttipoActo: string;\n\tnombreTabla: string;\n\tllaveCandidato: string;\n\tetapa: string;\n\ttipoDocumento: string;\n\tdescripcionTipoDocumento: string;\n\tllaveTablaArchivo: string;\n\tllaveTemporal: string;\n\textension: string;\n\tfecha: Date;\n\tidentifica: number;\n\thojaVidaCandidato: number;\n\tcontrato: number;\n\texiste: Boolean;\n\teliminar: boolean;\n\tsede: string;\n\taliasRol: string;\n\tusuarioLogin: string;\n\tfiltroSede: string;\n\tdescripcionSede: string;\n\thojaintelectoExiste: string;\n\thojapatrimonioExiste: string;\n\tcarpeta: string;\n\trutaArchivoTemporal:string;\n\torigen:string;\n\torden:number\n\trutaFisica: string;\n\t}\n","import { HttpClient, HttpEvent, HttpParams, HttpRequest, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CargarArchivosService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarArchivo(archivo: File, ruta: string, propiedad: string, codigoAplicacion: string): Observable<HttpEvent<{}>> {\n    let formData = new FormData();\n    formData.append(\"archivo\", archivo);\n    formData.append(\"ruta\", ruta);\n    formData.append(\"propiedad\", propiedad);\n    formData.append(\"aplicativo\", codigoAplicacion);\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/general/cargarArchivo`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n\n  }\n\n  descargarArchivo(ruta: string, propiedad?: string, aplicacion?: string): Observable<Blob> {\n    \n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/general/obtenerRecursoServidor/`+ ruta+`/`+propiedad+`/`+aplicacion;    \n    return this.httpClient.get(url, {\n      responseType: 'blob'\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarArchivo(ruta: string, propiedad: string, aplicacion: string): Observable<Blob> {\n    \n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/general/eliminarArchivoServidor/`+ ruta+`/`+propiedad+`/`+aplicacion;\n    return this.httpClient.get(url, {\n      responseType: 'blob'\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  getPropiedad(peticion: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/obtenerPropiedad`, peticion).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  existeArchivo(path: string): Observable<boolean>{\n    return this.httpClient.post<boolean>(`${this.utilsService.obtenerUrlApi()}/requieretoken/general/existeArchivo`, path).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'hojaVidaPipe',\n    standalone: true\n})\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class HojaVidaPipe implements PipeTransform {\n\n\tMASCULINO = 'M';\n\tFEMENINO = 'F';\n\tTRANSGENERO = 'T';\n\tMASCULINO_DESC = 'MASCULINO';\n\tFEMENINO_DESC = 'FEMENINO';\n\tTRANSGENERO_DESC = 'TRANSGÉNERO';\n\n\tSEXO = [\n\t\t{ codigo: this.MASCULINO, nombre: this.MASCULINO_DESC },\n\t\t{ codigo: this.FEMENINO, nombre: this.FEMENINO_DESC },\n\t\t{ codigo: this.TRANSGENERO, nombre: this.TRANSGENERO_DESC },\n\t]\n\n\tPLANTILLA_DATOS_BASICOS = 'DATO_BASICO';\n\tPLANTILLA_EDUCACION = 'EDUCACION';\n\tPLANTILLA_IDIOMA = 'IDIOMA';\n\tPLANTILLA_GRUPO_FAMILIAR = 'GRUPO_FAMILIAR';\n\tPLANTILLA_BIENES = 'BIENES';\n\tPLANTILLA_REFERENCIAS = 'REFERENCIAS';\n\tPLANTILLA_ASOCIACIONES = 'ASOCIACIONES';\n\tPLANTILLA_EXPERIENCIA_LABORAL = 'EXP_LABORAL';\n\tPLANTILLA_AREAS_EXPERIENCIA = 'AREAS_EXP';\n\tPLANTILLA_TRAYECTORIA_ACADEMICA = 'TRA_ACADEM';\n\tPLANTILLA_PRODUCCION_INTELECTUAL = 'PRO_INTELEC';\n\tPLANTILLA_CARACTERISTICA_FORMULARIO = 'CAR_FORMULARIO';\n\tPLANTILLA_EQUIPO_TRABAJO = 'EQUIPO_TRABAJO';\n\tPLANTILLA_TRAYECTORIA_INTERNA = 'TRAYECTORIA_INTERNA';\n\tPLANTILLA_CAPACITACION_INTERNA = 'CAPACITACION_INTERNA';\n\tPLANTILLA_TRAYECTORIA_CONTRATO = 'TRAYECTORIA_CONTRATO';\n\tPLANTILLA_EVENTO_BIENESTAR = 'EVENTO_BIENESTAR';\n\n\tHOJAVIDA = 'HOJAVIDA_HOV';\n\tHOJAINTELECTO = 'HOJAINTELECTO_HIN';\n\tHOJAPARIENTE = 'HOJAPARIENTE_HOP';\n\tHOJAPATRIMONIO = 'HOJAPATRIMONIO_HPA';\n\tEQUIPOINTEGRANTE = 'EQUIPOINTEGRANTE_EQI';\n\tTRAYECTORIAINTERNA = 'V_TRAYECTORIAINTERNA';\n\tTRAYECTORIACONTRATO = 'V_TRAYECTORIACONTRATO';\n\tCAPACITACIONINTERNA = 'V_CAPACITACIONINTERNA';\n\tHOJACARACTERISTICA = 'HOJACARACTERISTICA_HCA';\n\tETAPAPROCESO = 'ETAPAPROCESOSE_EPS';\n\tEVENTOBIENESTAR = 'V_EVENTOBIENESTAR';\n\tSOLICITUDPUNTO = 'SOLICITUDPUNTO_SOP';\n\tCANDIDATO = 'CANDIDATO_CAN';\n\n\tLISTA_PLANTILLAS = [\n\t\t{ codigo: this.PLANTILLA_DATOS_BASICOS, nombre: this.HOJAVIDA },\n\t\t{ codigo: this.PLANTILLA_EDUCACION, nombre: this.HOJAINTELECTO },\n\t\t{ codigo: this.PLANTILLA_IDIOMA, nombre: this.HOJAINTELECTO },\n\t\t{ codigo: this.PLANTILLA_GRUPO_FAMILIAR, nombre: this.HOJAPARIENTE },\n\t\t{ codigo: this.PLANTILLA_BIENES, nombre: this.HOJAPATRIMONIO },\n\t\t{ codigo: this.PLANTILLA_REFERENCIAS, nombre: this.HOJAPATRIMONIO },\n\t\t{ codigo: this.PLANTILLA_ASOCIACIONES, nombre: this.HOJAPATRIMONIO },\n\t\t{ codigo: this.PLANTILLA_EXPERIENCIA_LABORAL, nombre: this.HOJAINTELECTO },\n\t\t{ codigo: this.PLANTILLA_AREAS_EXPERIENCIA, nombre: this.HOJAINTELECTO },\n\t\t{ codigo: this.PLANTILLA_TRAYECTORIA_ACADEMICA, nombre: this.HOJAINTELECTO },\n\t\t{ codigo: this.PLANTILLA_PRODUCCION_INTELECTUAL, nombre: this.HOJAINTELECTO },\n\t\t{ codigo: this.PLANTILLA_EQUIPO_TRABAJO, nombre: this.EQUIPOINTEGRANTE },\n\t\t{ codigo: this.PLANTILLA_TRAYECTORIA_INTERNA, nombre: this.TRAYECTORIAINTERNA },\n\t\t{ codigo: this.PLANTILLA_CAPACITACION_INTERNA, nombre: this.CAPACITACIONINTERNA },\n\t\t{ codigo: this.PLANTILLA_TRAYECTORIA_CONTRATO, nombre: this.TRAYECTORIACONTRATO },\n\t\t{ codigo: this.PLANTILLA_EVENTO_BIENESTAR, nombre: this.EVENTOBIENESTAR },\n\t]\n\n\tPLANTILLAS = [\n\t\t{ codigo: this.PLANTILLA_DATOS_BASICOS, nombre: 'Datos B\\u00E1sicos' },\n\t\t{ codigo: this.PLANTILLA_EDUCACION, nombre: 'Educaci\\u00F3n' },\n\t\t{ codigo: this.PLANTILLA_IDIOMA, nombre: 'Idioma' },\n\t\t{ codigo: this.PLANTILLA_GRUPO_FAMILIAR, nombre: 'Grupo Familiar' },\n\t\t{ codigo: this.PLANTILLA_BIENES, nombre: 'Bienes/Inmuebles' },\n\t\t{ codigo: this.PLANTILLA_REFERENCIAS, nombre: 'Referencia' },\n\t\t{ codigo: this.PLANTILLA_ASOCIACIONES, nombre: 'Asociaciones' },\n\t\t{ codigo: this.PLANTILLA_EXPERIENCIA_LABORAL, nombre: 'Experiencia Laboral' },\n\t\t{ codigo: this.PLANTILLA_AREAS_EXPERIENCIA, nombre: 'Areas de experiencia' },\n\t\t{ codigo: this.PLANTILLA_TRAYECTORIA_ACADEMICA, nombre: 'Trayectoria Acad\\u00e9mica' },\n\t\t{ codigo: this.PLANTILLA_PRODUCCION_INTELECTUAL, nombre: 'Producci\\u00F3n Intelectual' },\n\t\t{ codigo: this.PLANTILLA_EQUIPO_TRABAJO, nombre: 'Equipo de trabajo' },\n\t\t{ codigo: this.PLANTILLA_TRAYECTORIA_INTERNA, nombre: 'Trayectoria interna' },\n\t\t{ codigo: this.PLANTILLA_CAPACITACION_INTERNA, nombre: 'Capacitacion interna' },\n\t\t{ codigo: this.PLANTILLA_TRAYECTORIA_CONTRATO, nombre: 'Trayectoria contrato' },\n\t\t{ codigo: this.PLANTILLA_EVENTO_BIENESTAR, nombre: 'Eventos bienestar' },\n\n\t]\n\n\n\tHAYDATOS = 'haydatos';\n\tNOHAYDATOS = 'nohaydatos';\n\tNOAPLICADATOS = 'noaplica';\n\n\tSOLOLISTA='L';\n\n\tNOLISTA_DESC='No listar coautores';\n\tSILISTA_DESC=' Listar Coautores - bloquea campo cantidad';\n\tSOLOLISTA_DESC='Listar Coautores';\n\n\tTIO_HOJAVIDA = 'H';\n\tTIO_CONTRATACION = 'C';\n\n\tNUCLEO_CONOCIMIENTO = 'GRUPR';\n\n\tTIPO_PROFESION_OFICIO = 'PO';\n\tTIPO_NUCLEO_CONOCIMIENTO = 'NC';\n\n\tTIPO_PROFESION_OFICIO_DESC = 'Profesion / Oficio';\n\tTIPO_NUCLEO_CONOCIMIENTO_DESC = 'Nucleo de Conocimiento';\n\n\tTIPO_PROFESION_PERFIL =\n\t\t[\n\t\t\t{ codigo: this.TIPO_PROFESION_OFICIO, nombre: this.TIPO_PROFESION_OFICIO_DESC },\n\t\t\t{ codigo: this.TIPO_NUCLEO_CONOCIMIENTO, nombre: this.TIPO_NUCLEO_CONOCIMIENTO_DESC }\n\t\t]\n\n\tAMBOS = 'A';\n\tEDITORIAL = 'E';\n\tINSTITUCION = 'I';\n\tUNIVERSITARIA = 'U';\n\n\t// TIPOINSTITUCION\n\tTIPOSINSTITUCION =\n\t\t[\n\t\t\t{ codigo: this.AMBOS, nombre: 'Ambos' },\n\t\t\t{ codigo: this.EDITORIAL, nombre: 'Editorial' },\n\t\t\t{ codigo: this.INSTITUCION, nombre: 'Institucion' },\n\t\t\t{ codigo: this.UNIVERSITARIA, nombre: 'Universitaria' }\n\t\t]\n\n\tPUBLICA = 'G';\n\tPRIVADA = 'P';\n\n\tPUBLICA_DESC = 'P' + Constantes.U_TILDE_MIN + 'blica';\n\tPRIVADA_DESC = 'Privada';\n\n\tMAPA_ORIGEN =\n\t\t[\n\t\t\t{ codigo: this.PUBLICA, nombre: this.PUBLICA_DESC },\n\t\t\t{ codigo: this.PRIVADA, nombre: this.PRIVADA_DESC },\n\t\t]\n\n\tPROFESION = 'P';\n\tOFICIO = 'O';\n\n\t// PTOFESIONOFICIO\n\tTIPOPROFESION =\n\t\t[\n\t\t\t{ codigo: this.PROFESION, nombre: 'Profesion' },\n\t\t\t{ codigo: this.OFICIO, nombre: 'Oficio' }\n\t\t]\n\n\tVIGENTE = 'V';\n\tNOVIGENTE = Constantes.CONSTANTE_NO;\n\n\tTIPOS_VIGENTE =\n\t\t[\n\t\t\t{ codigo: this.VIGENTE, nombre: 'Vigente' },\n\t\t\t{ codigo: this.NOVIGENTE, nombre: 'No Vigente' }\n\t\t]\n\n\tACTIVO = 'A';\n\tRETIRADO = 'R';\n\n\tDESACTIVO = 'Activo';\n\tDESRETIRADO = 'Retirado';\n\n\tLISTAESTADOPAR =\n\t\t[\n\t\t\t{ codigo: this.ACTIVO, nombre: this.DESACTIVO },\n\t\t\t{ codigo: this.RETIRADO, nombre: this.DESRETIRADO },\n\t\t]\n\n\tACEPTADODESC = 'Aceptado';\n\tNOACEPTACIONDESC = 'No Aceptaci\\u00F3n';\n\tINVITACIONDESC = 'Invitaci\\u00F3n';\n\tASIGNACIONDESC = 'Asignaci\\u00F3n';\n\tENVIO_MATERIALDESC = 'Env\\u00EDo Material';\n\tENTREGA_EVALUACIONDESC = 'Entrega Evaluaci\\u00F3n';\n\n\tACEPTADO = 'A';\n\tNOACEPTACION = Constantes.CONSTANTE_NO;\n\tINVITACION = 'I';\n\tASIGNACION = Constantes.CONSTANTE_SI;\n\tENVIO_MATERIAL = 'M';\n\tENTREGA_EVALUACION = 'E';\n\n\tLISTAACEPTACIONSOLICITUD =\n\t\t[\n\t\t\t{ codigo: this.ASIGNACION, nombre: this.ASIGNACIONDESC },\n\t\t\t{ codigo: this.INVITACION, nombre: this.INVITACIONDESC },\n\t\t\t{ codigo: this.ACEPTADO, nombre: this.ACEPTADODESC },\n\t\t\t{ codigo: this.NOACEPTACION, nombre: this.NOACEPTACIONDESC },\n\t\t\t{ codigo: this.ENVIO_MATERIAL, nombre: this.ENVIO_MATERIALDESC },\n\t\t\t{ codigo: this.ENTREGA_EVALUACION, nombre: this.ENTREGA_EVALUACIONDESC },\n\t\t]\n\n\tMARCADOR = 'MA';\n\tMARCADORREGISTRO = 'MR';\n\tMARCADORTABLA = 'TB';\n\tMARCADORIMAGEN = 'MI';\n\tIMAGEN = 'IM';\n\tMARCADORVARIABLE = 'MV';\n\tMARCADORQR = 'QR';\n\n\tDESMARCADOR = 'Marcador';\n\tDESMARCADORREGISTRO = 'Marcador Registro';\n\tDESMARCADORTABLA = 'Tabla';\n\tDESIMAGEN = 'Imagen';\n\tDESMARCADORIMAGEN = 'Marcador Imagen';\n\tDESMARCADORVARIABLE = 'Marcador Variable';\n\tDESMARCADORQR = 'Imagen QR';\n\n\tMARCADORLIQUIDACION_USUARIO = 'USUARIO';\n\n\tMARCADORES =\n\t\t[\n\t\t\t{ codigo: this.MARCADOR, nombre: this.DESMARCADOR },\n\t\t\t{ codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\n\t\t\t{ codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\n\t\t\t{ codigo: this.IMAGEN, nombre: this.DESIMAGEN },\n\t\t\t{ codigo: this.MARCADORIMAGEN, nombre: this.DESMARCADORIMAGEN },\n\t\t\t{ codigo: this.MARCADORQR, nombre: this.DESMARCADORQR },\n\n\t\t]\n\n\t// Tipos Anexi\n\tTIPOS_ANEXO =\n\t\t[\n\t\t\t{ codigo: Constantes.CONSTANTE_SI, nombre: 'Multiplex Anexos' },\n\t\t\t{ codigo: Constantes.CONSTANTE_NO, nombre: 'No solicitar' },\n\t\t\t{ codigo: 'U', nombre: Constantes.U_TILDE_MAY + 'nico anexo' }\n\t\t]\n\n\tMAP_SINO = [\n\t\t{ codigo: Constantes.CONSTANTE_SI, nombre: ' Si' },\n\t\t{ codigo: Constantes.CONSTANTE_NO, nombre: 'No' }\n\t]\n\n\tSIBOOL = 'true';\n\tNOBOOL = 'false';\n\tTRUE = 'true';\n\tFALSE = 'false';\n\n\tMAP_SINOBOOLEAN =\n\t\t[\n\t\t\t{ codigo: this.SIBOOL, nombre: ' Si' },\n\t\t\t{ codigo: this.NOBOOL, nombre: 'No' }\n\t\t]\n\n\tBOOLEANS =\n\t\t[\n\t\t\t{ codigo: this.TRUE, nombre: 'T' },\n\t\t\t{ codigo: this.FALSE, nombre: 'F' }\n\t\t]\n\n\tCIUDAD = 'CIUD';\n\tPAIS = 'PAIS';\n\tDEPARTAMENTO = 'DPTO';\n\tCIUDAD_DESC = 'CIUDAD';\n\tDEPARTAMENTO_DESC = 'DEPARTAMENTO';\n\n\n\tTIPO_UBICACION =\n\t\t[\n\t\t\t{ codigo: this.CIUDAD, nombre: this.CIUDAD_DESC },\n\t\t\t{ codigo: this.PAIS, nombre: this.PAIS },\n\t\t\t{ codigo: this.DEPARTAMENTO, nombre: this.DEPARTAMENTO_DESC },\n\t\t]\n\n\tCAMPO = 'CAMP';\n\tCARA = 'CARA';\n\tDESCAMPO = 'CAMPO';\n\tDESCARA = 'CARACTERISTICA';\n\n\tMAPATIPO =\n\t\t[\n\t\t\t{ codigo: this.CAMPO, nombre: this.DESCAMPO },\n\t\t\t{ codigo: this.CARA, nombre: this.DESCARA },\n\t\t]\n\n\tEDITABLE = 'E';\n\tLECTURA = 'L';\n\tNOMOSTRAR = Constantes.CONSTANTE_NO;\n\tDESEDITABLE = 'Editable';\n\tDESLECTURA = 'Lectura';\n\tDESNOMOSTRAR = 'No Mostrar';\n\n\tLISTAEDITABLE =\n\t\t[\n\t\t\t{ codigo: this.EDITABLE, nombre: this.DESEDITABLE },\n\t\t\t{ codigo: this.LECTURA, nombre: this.DESLECTURA },\n\t\t\t{ codigo: this.NOMOSTRAR, nombre: this.DESNOMOSTRAR },\n\t\t]\n\n\t/**variable para ordenar la columna de una tabla acendente*/\n\tASC = 'asc';\n\t/**variable para ordenar la columna de una tabla descendente*/\n\tDESC = 'desc';\n\n\tLISTAORDEN = [\n\n\t\t{ codigo: this.ASC, nombre: this.ASC },\n\t\t{ codigo: this.DESC, nombre: this.DESC }\n\t]\n\n\tFUN_EDAD = 'Edad';\n\tDESFUN_EDAD = 'Edad';\n\tFUN_CATEGORIA = 'CategoriaRevistaISSN';\n\tDESFUN_CATEGORIA = 'Categoria Revista ISSN';\n\tFUN_CATEGORIAFECHA = 'CategoriaRevistaFecha';\n\tDESFUN_CATEGORIAFECHA = 'Categoria Revista Fecha';\n\n\tMAPAFUNCION =\n\t\t[\n\t\t\t{ codigo: this.FUN_EDAD, nombre: this.DESFUN_EDAD },\n\t\t\t{ codigo: this.FUN_CATEGORIA, nombre: this.DESFUN_CATEGORIA },\n\t\t\t{ codigo: this.FUN_CATEGORIAFECHA, nombre: this.DESFUN_CATEGORIAFECHA }\n\t\t]\n\n\tDATO_BASICO_DOCUMENTO = 'DOCUMENTO';\n\tDATO_BASICO_EDAD = 'EDAD';\n\tDATO_BASICO_ACTUALIZACION = 'ACTUALIZACION';\n\n\tCOAUTOR= 'CO';\n\tESTUDIANTE= 'ES';\n\tDIRECTOR= 'DI';\n\tEXPOSITOR= 'EX';\n\tGANADOR= 'GA';\n\tTRADUCTOR= 'TR';\n\tCODIRECTOR= 'CD';\n\n\tDESCCOAUTOR= 'COAUTOR';\n\tDESESTUDIANTE= 'ESTUDIANTE';\n\tDESDIRECTOR= 'DIRECTOR';\n\tDESEXPOSITOR= 'EXPOSITOR';\n\tDESGANADOR= 'GANADOR';\n\tDESTRADUCTOR= 'TRADUCTOR';\n\tDESCODIRECTOR= 'CODIRECTOR';\n\n\tDESNIEDU = 'Nivel Educativo o formativo';\n\tDESTIPRO = 'Tipo Programa';\n\tDESMODGR = 'Modalidad de Grado';\n\tDESTIESC = 'Tipo Escalaf\\u00F3n';\n\tDESDEDIC = 'Tiempo Dedicaci\\u00F3n';\n\tDESTICAP = 'Tipo Capacitaci\\u00F3n';\n\tDESARCAP = 'Area Capacitaci\\u00F3n';\n\tDESCARAC = 'Ambito o Car\\u00E1cter de la Publicaci\\u00F3n';\n\tDESPARTI = 'Participaci\\u00F3n';\n\tDESDIFUS = 'Medio Difusi\\u00F3n';\n\tDESEDICI = 'Medio Edici\\u00F3n';\n\tDESMEMOR = 'Modalidad Memoria';\n\tDESTIPPR = 'Tipo Producci\\u00F3n';\n\tDESTIPDO = 'Tipo Documento';\n\tDESTIPPU = 'Tipo Publicaci\\u00F3n';\n\tDESMATER = 'Material Entregado';\n\tDESMOREC = 'Motivo Reconocimiento';\n\tDESDISTI = 'Distinci\\u00F3n';\n\tDESTIASC = 'Tipo Asociaci\\u00F3n';\n\tDESTIPPA = 'Tipo Patente';\n\tDESINDEX = 'Indexada';\n\tDESTIPPE = 'Tipo Periodo';\n\tDESFACUL = 'Facultad';\n\tDESEQTRA = 'Tipos de Equipo de Trabajo';\n\tDESCARID = 'Caracter\\u00EDstica Idioma';\n\tDESTIPIN = 'Tipo Inmueble';\n\tDESTIPBI = 'Tipo Bien';\n\tDESTIPRE = 'Tipo Referencia';\n\tDESTIPEX = 'Tipo Experiencia';\n\tDESCONOC = 'Area de experiencia';\n\tDESTIPCU = 'Tipo Cuenta Bancaria';\n\tDESPROHV = 'Procedencia Hoja Vida';\n\tDESTIPAR = 'Tipo de Parentesco';\n\tDESTIEMP = 'Unidad de Tiempo';\n\tDESASUNT = 'Tipo de Asunto';\n\tDESTIPGE = 'Tipo Género';\n\n\tNIEDU = 'NIEDU';\n\tTIPRO = 'TIPRO';\n\tMODGR = 'MODGR';\n\tTIESC = 'TIESC';\n\tDEDIC = 'DEDIC';\n\tTICAP = 'TICAP';\n\tARCAP = 'ARCAP';\n\tCARAC = 'CARAC';\n\tPARTI =\t'PARTI';\n\tDIFUS =\t'DIFUS';\n\tEDICI =\t'EDICI';\n\tMEMOR =\t'MEMOR';\n\tTIPPU =\t'TIPPU';\n\tTIPDO =\t'TIPDO';\n\tTIPPR =\t'TIPPR';\n\tMATER =\t'MATER';\n\tMOREC =\t'MOREC';\n\tDISTI =\t'DISTI';\n\tTIASC =\t'TIASC';\n\tTIPPA =\t'TIPPA';\n\tINDEX =\t'INDEX';\n\tTIPPE =\t'TIPPE';\n\tFACUL =\t'FACUL';\n\tEQTRA =\t'EQTRA';\n\tCLATE =\t'CLATE';\n\tCARID =\t'CARID';\n\tTIPIN =\t'TIPIN';\n\tTIPBI =\t'TIPBI';\n\tTIPRE =\t'TIPRE';\n\tTIPEX =\t'TIPEX';\n\tCONOC =\t'CONOC';\n\tTIPCU =\t'TIPCU';\n\tPROHV =\t'PROHV';\n\tTIPAR = 'TIPAR';\n\tTIEMP = 'TIEMP';\n\tTIDOC = 'TIDOC';\n\tASUNT = 'ASUNT';\n\tFORCA = 'FORCA';\n\tTIPGE = 'TIPGE';\n\n\tCOAUTORES = [\n\t\t{codigo: this.COAUTOR, nombre: this.DESCCOAUTOR},\n\t\t{codigo: this.ESTUDIANTE, nombre: this.DESESTUDIANTE},\n\t\t{codigo: this.DIRECTOR, nombre: this.DESDIRECTOR},\n\t\t{codigo: this.EXPOSITOR, nombre: this.DESEXPOSITOR},\n\t\t{codigo: this.GANADOR, nombre: this.DESGANADOR},\n\t\t{codigo: this.TRADUCTOR, nombre: this.DESTRADUCTOR},\n\t\t{codigo: this.CODIRECTOR, nombre: this.DESCODIRECTOR},\n\t]\n\n\tFILTRO_DINAMICO_EXTERNO='FILTRO_DINAMICO_EXTERNO';\n\n  CTIEN = 'CTIEN';\n\n  TEXTO = 'T';\n\tCOMBO = 'C';\n\tNUMERO = 'N';\n\tFECHA = 'F';\n\tTITULO = 'I';\n\tTEXTOAREA = 'A';\n  POPUP = 'P';\n  DECIMAL = 'D';\n  RADIO = 'R';\n  CHECK = 'H';\n\n  TEXTO_DESC = 'Texto';\n  COMBO_DESC = 'Lista';\n  NUMERO_DESC = 'Numerico';\n  FECHA_DESC = 'Fecha';\n  TITULO_DESC = 'Titulo';\n  TEXTOAREA_DESC = 'Texto Area';\n  POPUP_DESC = 'Popup';\n  DECIMAL_DESC = 'Decimal';\n  RADIO_DESC = 'Radio';\n  CHECK_DESC = 'Check';\n\n\n\tTIPOCARACTERISTICA = [\n\t\t{ codigo: this.TEXTO, nombre: this.TEXTO_DESC },\n\t\t{ codigo: this.COMBO, nombre: this.COMBO_DESC },\n\t\t{ codigo: this.NUMERO, nombre: this.NUMERO_DESC },\n    { codigo: this.FECHA, nombre: this.FECHA_DESC },\n    { codigo: this.TITULO, nombre: this.TITULO_DESC },\n    { codigo: this.TEXTOAREA, nombre: this.TEXTOAREA_DESC },\n    { codigo: this.POPUP, nombre: this.POPUP_DESC },\n    { codigo: this.DECIMAL, nombre: this.DECIMAL_DESC },\n    { codigo: this.RADIO, nombre: this.RADIO_DESC },\n    { codigo: this.CHECK, nombre: this.CHECK_DESC },\n\t]\n\n  LONNUMERO = 5;\n  LONFECHA = 7;\n  LONDECIMAL = 20;\n  LONAREA = 4000;\n  LONTEXTO = 100;\n  LONDECIMALD = 6;\n  LONNUMEROD = 0;\n\n  \n  INGLES = \"EN\";\n  DESC_INGLES = \"Inglés\"\n\n\n  LISTA_IDIOMAS = [    \n\t{ codigo: this.INGLES, nombre: this.DESC_INGLES },\n  ];\n\n\n\n\ttransform(value: any, ...args: any): any {\n\t\tlet result = value;\n\t\tif (args[0] == 'listaSexo') { this.SEXO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'tipoVigencia') { this.TIPOS_VIGENTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'listaEstadoPar') { this.LISTAESTADOPAR.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'listaAceptacionSolicitud') { this.LISTAACEPTACIONSOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'listaPlantillas') { this.LISTA_PLANTILLAS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'aceptacionsolicitud') { this.LISTAACEPTACIONSOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'listaestado') { this.LISTAACEPTACIONSOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'tipoCoautor') { this.COAUTORES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\n\n\n\t\treturn result;\n\t}\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ArchivoAnexoHojaVidaService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n   }\n\n  private handleError(error: HttpErrorResponse) {\n\n    if (!error.error.traza) {\n      error.error.traza = error.error.mensaje;\n    }\n\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      console.error('An error occurred:', error.error);\n    } else {\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarListaAnexos(objeto): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/anexoshojavida/cargarListaAnexos`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarAnexo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/anexoshojavida/guardarAnexo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarAnexo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/anexoshojavida/eliminarAnexo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  consultarAnexos(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/anexoshojavida/consultarAnexos`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  insertarAnexo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/anexoshojavida/insertarAnexo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarAnexo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/anexoshojavida/actualizarAnexo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { HttpEventType } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Constantes } from '../../constantes/Constantes';\nimport { HojaVidaPipe } from '../../pipes/hojavida.pipe';\nimport { CargarArchivosService } from '../../servicios/cargar-archivos.service';\nimport { AuthService, GeneralModel, ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ArchivoModel } from '../../../modules/hojavida/models/ArchivoModel';\nimport { SeccionModel } from '../../../modules/hojavida/models/SeccionModel';\nimport { ArchivoAnexoHojaVidaService } from '../../../modules/hojavida/services/archivo-anexo-hoja-vida.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { GeneralService } from '../../../shared/servicios/general.service';\n\n@Component({\n    selector: 'app-input-helper-cargar-archivo-hoja-vida',\n    templateUrl: './input-helper-cargar-archivo-hoja-vida.component.html',\n    styleUrls: ['./input-helper-cargar-archivo-hoja-vida.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, InputTextModule, FileUploadModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class InputHelperCargarArchivoHojaVidaComponent implements OnInit {\n\n  @Input() isMostrarPopup: boolean;\n  @Input() objetoSeccion: SeccionModel;\n  @Input() hojaVidaModel: any;\n  @Input() aspirante: boolean;\n  //parametros usados para guardar campos en tabla y llavetabla y no apuntar a una seccion\n  @Input() tabla: string;\n  @Input() llaveTablaAnexo: string;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n\n  archivoSeleccionadoAnexo: File;\n  anexoModel: ArchivoModel;\n  nombreArchivo: string;\n  filename: string = '';\n  clickGuardar: boolean = false;\n\n  constructor(private cargarArchivo: CargarArchivosService, private toastService: ToastService, private authService: AuthService,\n    private hojaVidaPipe: HojaVidaPipe, public utilsService: UtilsService, private archivoAnexoHojaVidaService: ArchivoAnexoHojaVidaService,\n    private generalService: GeneralService,) { }\n\n  ngOnInit(): void {\n    this.anexoModel = new ArchivoModel();\n    this.anexoModel.descripcion = null;\n  }\n\n  openDataTable() {\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.filename = file.name;\n  }\n\n  cargarAnexo(data: any, fubauto) {\n    this.archivoSeleccionadoAnexo = data.files[0];\n    let extArchivo = this.archivoSeleccionadoAnexo.name.split('.')[1];\n    let extPermitidas = fubauto.accept.split(',');\n    extPermitidas = extPermitidas.map(ext => ext.trim().toLowerCase());\n    if (extPermitidas.includes('.' + extArchivo.toLowerCase())) {\n      this.readFile(this.archivoSeleccionadoAnexo);\n      this.toastService.showSuccess('Se cargó el documento con éxito');\n      fubauto.clear();\n    } else {\n      this.toastService.showError('Solo son permitidas las extensiones '+fubauto.accept);\n      return;\n    }\n  }\n\n  async guardarAnexo() {\n    this.clickGuardar = true;\n    if (this.validar()) {\n      await this.subirAnexo();\n      this.clickGuardar = false;\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n    }\n  }\n\n\n  validar(): boolean {\n    var validador = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.anexoModel.descripcion);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.filename);\n\n    //this.validando = validador;\n    return validador;\n  }\n\n  async subirAnexo() {\n    if (this.utilsService.isNotBlank(this.llaveTablaAnexo) && this.utilsService.isNotBlank(this.tabla)) {\n      await this.subirAnexoATabla();\n    } else {\n      await this.subirAnexoASeccion();\n    }\n  }\n\n\n  async subirAnexoATabla() {\n    let propiedad = 'ruta_anexosHojaVida'\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n    let llaveNuevoReg = this.utilsService.generarLlave();\n    let fileExtension: string = this.archivoSeleccionadoAnexo.name.split('?')[0].split('.').pop();\n    this.archivoSeleccionadoAnexo = new File([this.archivoSeleccionadoAnexo], llaveNuevoReg + '.' + fileExtension);\n    this.cargarArchivo.cargarArchivo(this.archivoSeleccionadoAnexo, '', propiedad, codigoAplicacion).subscribe({\n      next: (event) => {\n        if (event.type === HttpEventType.Response) {\n          this.anexoModel.archivoorigen = this.filename;\n          this.anexoModel.llaveTabla = llaveNuevoReg;\n          this.anexoModel.llaveTablaArchivo = this.llaveTablaAnexo;\n          this.anexoModel.nombreTabla = this.tabla;\n          console.log(this.anexoModel)\n          this.archivoAnexoHojaVidaService.insertarAnexo(this.anexoModel).subscribe(data => {\n            this.toastService.showSuccess(Constantes.MENSAJE_CREAR);\n            this.anexoModel = new ArchivoModel();\n            let dataFile =  { files: File }\n            this.archivoSeleccionadoAnexo = dataFile.files[0];\n            this.ocultar();\n          })\n        }\n      }\n    })\n  }\n\n  async subirAnexoASeccion() {\n    let propiedad = 'ruta_anexosHojaVida'\n    let plantillasFiltro = this.hojaVidaPipe.LISTA_PLANTILLAS.filter(element => element.codigo === this.objetoSeccion.plantilla);\n    let rutaCarpeta = this.crearEstructuraAnexo(plantillasFiltro[0].nombre.toLowerCase())\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n    let llaveNuevoReg = this.utilsService.generarLlave();\n    let fileExtension: string = this.archivoSeleccionadoAnexo.name.split('?')[0].split('.').pop();\n    this.archivoSeleccionadoAnexo = new File([this.archivoSeleccionadoAnexo], llaveNuevoReg + '.' + fileExtension);\n    this.cargarArchivo.cargarArchivo(this.archivoSeleccionadoAnexo, rutaCarpeta, propiedad, codigoAplicacion).subscribe({\n      next: (event) => {\n        if (event.type === HttpEventType.Response) {\n          this.anexoModel.archivoorigen = this.filename;\n          this.anexoModel.llaveTabla = llaveNuevoReg;\n          let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null,\n            { archivoDTO: this.anexoModel, seccion: this.objetoSeccion, objeto: this.hojaVidaModel, aspirante: this.aspirante }\n          );\n          this.archivoAnexoHojaVidaService.guardarAnexo(parametroGeneral).subscribe({\n            next: (data) => {\n              if (data != null) {\n                this.toastService.showSuccess(Constantes.MENSAJE_CREAR);\n                this.anexoModel = new ArchivoModel();\n                let dataFile =  { files: File }\n                this.archivoSeleccionadoAnexo = dataFile.files[0];\n                this.ocultar();\n              } else {\n                this.toastService.showError('Error en el método de agregar anexo');\n                this.anexoModel = new ArchivoModel();\n                let dataFile =  { files: File }\n                this.archivoSeleccionadoAnexo = dataFile.files[0];\n              }\n            }\n          });\n        }\n      }\n    });\n  }\n\n  crearEstructuraAnexo(tabla: string): string {\n\n    const fecha = new Date();\n\n    let anio = fecha.getFullYear();\n    let mes = fecha.getMonth() + 1;\n    let ruta = \"\";\n    ruta = '/' + tabla + '/' + anio + '/' + mes + '/';\n    return ruta;\n  }\n\n  ocultar() {\n    this.isMostrarPopup = false;\n    this.regresar.emit(false);\n  }\n\n  public validarExtensiones(): string {\n    let extensionesPermitidas: string[] = this.objetoSeccion?.extensionArchivo ? this.objetoSeccion?.extensionArchivo.split(',') : ['pdf'];\n    return extensionesPermitidas.map(ext => `.${ext}`).join(',');\n  }\n\n\n}\n","<p-dialog id=\"input-helper-cargar-archivo\" header=\"{{'cargar' | translate}} {{'archivo' | translate}}\"\n    [(visible)]=\"isMostrarPopup\" appendTo=\"body\" [modal]=\"true\" (onHide)=\"ocultar()\" (onShow)=\"openDataTable()\"\n    [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw' }\">\n\n\n    <div class=\"col-12 md:col-12 lg:col-12\">\n\n        <!-- campos -->\n        <div class=\"p-fluid p-formgrid grid\">\n            <div class=\"col-12 md:col-6\">\n                <div>\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_detalle\" [(ngModel)]=\"anexoModel.descripcion\" \n                            [class]=\"(!utilsService.validarCampoObligatorio(anexoModel.descripcion) && clickGuardar)  ? 'ng-invalid ng-dirty' : '' \" />\n                        <label htmlFor=\"detalle\">{{'detalle' | translate}} *</label>\n                    </span>\n                </div>\n            </div>\n\n            <div class=\"col-12 md:col-6\" id=\"btn-cargar-popup\">\n                <div\n                    [class]=\"(!utilsService.validarCampoObligatorio(filename) && clickGuardar)  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n                    <span class=\"p-float-label nomostrar\">\n                        <input pInputText #inputText [readonly]=\"true\" [value]=\"filename\" disabled  />\n                        <label htmlFor=\"detalle\">{{'adjunto' | translate}} *</label>\n                        <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" [accept]=\"validarExtensiones()\"\n                        (onSelect)=\"cargarAnexo($event, fubauto)\" required chooseIcon=\"pi pi-paperclip\"\n                            [class.invalid-upload]=\"!utilsService.validarCampoObligatorio(filename) && clickGuardar\"></p-fileUpload>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"col-12 md:col-12 lg:col-12\">\n        <div class=\" flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                label=\"{{'link_guardar' | translate}}\" (click)=\"guardarAnexo()\"></button>\n        </div>\n    </div>\n\n</p-dialog>","import { UnionModel } from \"general-library-union\";\n\nexport  class ListaModel extends UnionModel{\n\n    descripcionLista: String;\n    afecta: String;\n    \n}","import { ListaModel } from '../../sarageneral/models/ListaModel';\n\n\nexport class UnidadOrganizacionalModel extends ListaModel {\n\n\n\tunidad: string;\n\tnombreUnidad: string;\n\tsucursal: string;\n\ttipoUnidad: string;\n\t/** Llave de la unidad organizacional de la cual depende esta unidad (dependencia jerárquica)*/\n\tdepende: string;\n\trelacion: string;\n\tnivel: number;\n\tordenNivel: number;\n\tcupoPuesto: number;\n\t/** Estado de vigencia de esta unidad organizacional*/\n\testado: string;\n\t/** Llave de la empresa a la cual está asociada esta unidad organizacional*/\n\tempresa: number;\n\tnombreEmpresa: string;\n\tcomodinBusqueda: string;\n\trutaImagen: string;\n\tagregado: boolean;\n\toperacion: string;\n\tcorreo: string;\n\ttelefonos: string;\n\textension: string;\n\n\t/* Atributos que aplican para unidad compartida*/\n\n\t/** Llave de la empresa de la cual depende ESTA unidad*/\n\tempresaDepende: number;\n\t/** Contiene la llave de puestoComparte_pco para cargar la unidad */\n\tunidadComparte: string;\n\tempresaDependeUnidad: number;\n\tresponsable: string;\n\tnombreResponsable: string;\n\tcargoResponsable: string;\n\tcolor: string;\n\tcolorComparte: string;\n\taliasRol: string;\n\tlogin: string;\n\n\tunidadesDepende: UnidadOrganizacionalModel[];\n\tcantidad: number;\n\n\t/* Atributos Unidades Transversales */\n\tunidadesTransversales: string;\n\tpiso: string;\n\tprt: number;\n\tsucursalGes: string;\n\tfiltroSucursalGes: string;\n\n\tsucursalEmail: string;\n}","import { Component, Input, Output, EventEmitter, OnInit, ElementRef, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, TableColumn, UtilsService } from 'general-library-union';\nimport { EmpresaModel } from '../../../modules/compensacion/models/EmpresaModel';\nimport { UnidadOrganizacionalModel } from '../../../modules/talento/models/UnidadOrganizacionalModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-unidad',\n    templateUrl: './input-helper-unidad.component.html',\n    styleUrls: ['./input-helper-unidad.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperUnidadComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperUnidadComponent implements ControlValueAccessor, OnInit {\n\n\n  \n  @ViewChild('inputText') inputText: ElementRef;\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n\n  @Input() value: string;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() ocultarBoton: boolean = false;\n  @Input() mostrarX: boolean = true;\n\n  @Input() booleano: boolean;\n\n  @Input() verListaFija: boolean = false;\n  @Input() punto: boolean = false;\n  @Input() estado: string = null;\n  @Input() sucursalGes: string = null;\n  @Input() verUnidades: boolean = false;\n  @Input() filtroLogin: boolean = false;\n  @Input() filtroSucursalGestionAsociada: boolean = false;\n  @Input() listaUnidadFija: UnidadOrganizacionalModel[] = [];\n  @Input() empresa: number;\n  @Input() header: string ;\n  //@Input() campos: CampoFormularioModel[] = [];\n  //@Input() campo: CampoFormularioModel;\n\n\n\n  dataSelected: UnidadOrganizacionalModel;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  onChange: Function = () => { };\n  onCambio: Function = () => { };\n\n  onTouched: Function = () => { };\n  public filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  columns: TableColumn[] = []\n  empresaSesion: EmpresaModel = new EmpresaModel;\n  lista: UnidadOrganizacionalModel[] = [];\n  listaUnidad: UnidadOrganizacionalModel[] = [];\n  usuario: string = null;\n  aliasRol: string = null;\n\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private utilsService: UtilsService,\n    private translateService: TranslateService) { }\n\n  ngOnInit() {\n\n    this.filters = [\n      {\n        field: 'comodinBusqueda',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'equal',\n      }\n    ]\n    \n    //this.cargarListado(event);\n    this.columns = [\n      {\n        field: 'unidad',\n        header: this.translateService.instant('codigo'),\n        width: 100,\n      },\n      {\n        field: 'nombreUnidad',\n        header: this.translateService.instant('nombre'),\n        width: 100,\n      },\n    ]\n    this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).subscribe(data => {\n      this.empresaSesion = data;\n    });\n    this.usuario = this.authService.getTokenKey('usuario')\n    this.aliasRol = this.authService.getTokenKey('aliasRol')    \n  }\n\n  ocultar() {\n    this.showDialog = false;\n    this.filtroGeneral.panel.hide();\n  }\n\n  async mostrar(){\n    if(this.empresa != null || this.empresa != undefined ){\n      await this.cargarListado(event)\n    }\n    this.showDialog = true;\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.dataSelected = new UnidadOrganizacionalModel();\n    this.dataSelected.unidad = null;\n    this.dataSelected.nombreUnidad = null;\n    this.onChange(this.value)\n    this.onCambio(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  openDataTable() {\n\n    //Se encarga de limpiar el filtro, cuando ingresa.\n    this.filtroGeneral.filterForm.get('comodinBusqueda')?.setValue(null);\n    this.filtroGeneral.chips = [];\n    this.lista = [];\n\n    if(this.empresa != null || this.empresa != undefined ){\n      this.cargarListado(event)\n    }\n    \n    \n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;    \n    this.showDialog = false;\n    this.value = this.dataSelected.unidad;\n    this.label = this.dataSelected.unidad?.trim() + ' - ' + this.dataSelected.nombreUnidad;\n    this.onChange(this.value);\n    this.onCambio(this.value);\n    this.onSelected.emit(this.dataSelected);\n    \n  }\n\n  async cargarListado(event) {\n    \n    if (this.verListaFija) {      \n      this.listaUnidad = this.listaUnidadFija;\n      this.lista = this.listaUnidad;\n      this.paginator.totalRecords = (this.lista.length);\n    } else {\n      let objeto = {\n        sucursalGes: this.sucursalGes,\n        empresa: this.empresa ? this.empresa : parseInt(this.authService.getTokenKey('numeroEmpresa')),\n        //  empresa: 2,\n        comodinBusqueda: event?.filters?.comodinBusqueda ? '%' + event?.filters?.comodinBusqueda?.value + '%' : null,\n        estado: this.estado ? 'S' : null,\n        filtroSucursalGes: this.filtroSucursalGestionAsociada ? 'S' : null,\n        aliasRol: this.aliasRol,\n        login: this.usuario,\n        paginacionRegistroInicial: event?.first,\n        paginacionRegistroFinal: event?.rows,\n\n      }      \n      if ((event?.filters?.comodinBusqueda?.value == null || event?.filters?.comodinBusqueda?.value?.length < 1) && !this.verUnidades) {\n        this.paginator.totalRecords = 0;\n        this.lista = [];\n        if (this.filtroLogin) {\n          this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.contarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n          if (this.paginator.totalRecords < 10) {\n            this.lista = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.consultarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n          } else {\n            this.paginator.totalRecords = 0;\n          }\n        }\n      } else {\n        if (this.filtroLogin) {\n          this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.contarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n          this.lista = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.consultarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n        } else {\n          this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', null, false, objeto)).toPromise();\n          this.lista = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, objeto)).toPromise();\n        }        \n      }\n\n\n      if (this.punto) {\n        this.listaUnidad = this.lista\n      } else {\n        this.lista.forEach(uni => {\n          this.listaUnidad.push(uni)\n        })\n      }\n    }\n    this.verListaFija = false;\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n    if (llave != null) {\n      let filtro = new UnidadOrganizacionalModel();\n      filtro.unidad = llave;\n      filtro.empresa = parseInt(authService.getTokenKey('numeroEmpresa'));\n      let objeto = new GeneralModel('UnidadOrganizacionalDTO', null, false, filtro);\n      let respuesta: UnidadOrganizacionalModel = await generalService.queryForObject(objeto).toPromise();\n      if (!respuesta) {\n        return null;\n      }\n      return `${respuesta.unidad.trim()} - ${respuesta.nombreUnidad}`;\n    }\n\n    return null;\n  }\n\n\n\n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \" >\n  <span class=\"p-float-label\">\n      <input pInputText  [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" \n        />\n      <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\"\n        *ngIf=\"!ocultarBoton\" >\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n      </button>\n      <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\"  icon=\"glyphicons glyphicons-remove\">\n      </button>\n      <label for=\"unidadNombre\">{{ header }}</label>\n  </span>\n</div>\n\n<p-dialog header=\"{{'unidadorganizacional' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n[breakpoints]=\"{ '2000px': '40vw','1400px': '60vw','960px': '75vw','800px': '80vw', '700px': '100vw' }\" [style]=\"{ width: '50vw' }\" (onHide)=\"ocultar()\" (onShow)=\"mostrar()\">\n  \n  <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n    <!-- Filtro-->\n    <app-filtro-general #filtroGeneral (onHide)=\"showDialog\" #filtroItem  [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" id=\"comodinBusqueda\" formControlName=\"comodinBusqueda\" autocomplete=\"off\" />\n              <label for=\"comodinBusqueda\">{{'busqueda' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n  \n  <p-table #tablaGeneral dataKey=\"unidad\" [value]=\"lista\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"paginator.rows\"\n    [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\" \n    [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    [lazy]=\"true\" (onLazyLoad)=\"cargarListado($event)\"\n    styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th style=\"width: 10%;\">{{\"codigo\" | translate}}</th>\n        <th style=\"width: 40%;\">{{\"nombre\" | translate}}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-unidad>\n      <tr [pSelectableRow]=\"unidad\">\n        <td style=\"width: 10%;\">{{unidad.unidad}}</td>\n        <td style=\"width: 40%;\">{{unidad.nombreUnidad}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n\n\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\n\nexport class CargoModel extends UnionModel  {\n\n\tcargo: string;\n\tdescripcion: string;\n\tclasificacion: string;\n\tnivelCargo: string;\n\tnivelCargos: string;\n\tobjetivo: string;\n\tareas: string;\n\tpeso: number;\n\tsueldoMinimo: number;\n\tsueldoMaximo: number;\n\tcreacion: Date;\n\tedadInicio: number;\n\tedadFinal: number;\n\tgradoInicio: number;\n\tgradoFinal: number;\n\tsexo: string;\n\testadoCivil: string;\n\testado: string;\n\textExterna: string;\n\textInterna: string;\n\tproyeccion: string;\n\tcapacitacion: string;\n\trelInterna: string;\n\trelExterna: string;\n\totros: string;\n\tplanSucesion: string;\n\tcargoGen: string;\n\tempresa: number;\n\torganizacion: number;\n\tcomodinBusqueda: string;\n\tunidad: string;\n\tperfil: string;\n\tnombreunidad: string;\n\tnombreempresa: string;\n\tperfilfuncion: string;\n\tpuestotrabajo: string;\n\tsolodisponibles: string;\n\tunidadRelacion: string;\n\tcategoria: string;\n\n\tdescripcionPopup: string;\n\tvalorPopup: string;\n\n\tget nombreCargo(): string {\n\t\tvar nombreCargo = '';\n\t\tif (this.descripcion) {\n\t\t\tif (this.nivelCargo) {\n\t\t\t\tnombreCargo = this.descripcion + \" - \" + this.nivelCargo;\n\t\t\t} else {\n\t\t\t\tnombreCargo = this.descripcion;\n\t\t\t}\n\t\t}\n\t\treturn nombreCargo;\n\t}\n\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { CargoModel } from '../../../modules/talento/models/CargoModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-input-helper-cargo',\n    templateUrl: './input-helper-cargo.component.html',\n    styleUrls: ['./input-helper-cargo.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperCargoComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        NgIf,\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperCargoComponent implements OnInit {\n\n\n  filters\n  listadoCargo: CargoModel[] = []\n  paginator = {\n    totalRecords: 0,\n    rows: 10,\n  }\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n  \n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() showDialog: boolean = false;\n\n  @Input() soloPopup: boolean = false;\n\n  @Input() mostrarX: boolean;\n\n  @Input() booleano: boolean;\n\n  @Input() nombreInput : string = '';\n  @Input() campoReferencia : any;\n  @Input() campoReferenciaDos : any;\n  \n  @Input() empresa: any;\n\n  onChange: Function = () => {};\n  onCambio: Function = () => { };\n\n  onTouched: Function = () => {};\n\n  constructor(private translateService: TranslateService,\n              private authService: AuthService,\n              private utilsService: UtilsService,\n              private generalService: GeneralService,) { }\n\n  ngOnInit(): void {\n    this.filters = [\n      {\n        field: 'cargo',\n        header: this.translateService.instant('cargo'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nivelCargo',\n        header: this.translateService.instant('nivelcargo'),\n        matchMode: 'contains',\n      },\n\n    ];\n  }\n\n\n  async loadData(event) {\n    this.paginator.totalRecords = 10;\n    this.listadoCargo = []\n    let objeto = {\n      paginacionRegistroInicial: event?.first != null ? event?.first : 0,\n      paginacionRegistroFinal: event?.rows != null ? event?.rows : 10,\n      empresa: this.empresa ? this.empresa :parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      cargo: event?.filters?.cargo?.value ? event?.filters?.cargo?.value : null,\n      descripcion: event?.filters?.descripcion?.value ? event?.filters?.descripcion?.value : null,\n      nivelCargo: event?.filters?.nivelCargo?.value ? event?.filters?.nivelCargo?.value : null,\n      solodisponibles: this.campoReferenciaDos,\n      unidad: this.campoReferencia,\n    }\n    this.listadoCargo = await this.generalService.queryForList(new GeneralModel('CargoDTO',null,false,objeto)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('CargoDTO',null,false,objeto)).toPromise();\n  }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  openDataTable(){\n    if(this.empresa != null || this.empresa != undefined ){\n      this.loadData(event)\n    }\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onCambio(this.value);\n    this.onSelected.emit({});\n  }\n\n  onRowSelect(event) {    \n    this.showDialog = false;\n    let cargoSeleccionado = event?.data;\n    this.label = `${cargoSeleccionado.cargo.trim()} - ${cargoSeleccionado.descripcion}`;;\n    this.value = cargoSeleccionado.cargo;\n    this.onChange(this.value);\n    this.onCambio(this.value);\n    this.onSelected.emit(cargoSeleccionado);\n    \n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {    \n    if (llave != null) {\n      let filtro = new CargoModel();\n      filtro.cargo = llave;\n      filtro.empresa = parseInt(authService.getTokenKey('numeroEmpresa'));\n      let objeto = new GeneralModel('CargoDTO', null, false, filtro);\n      let respuesta: CargoModel = await generalService.queryForObject(objeto).toPromise();\n      if (!respuesta) {\n        return null;\n      }\n      return `${respuesta.cargo.trim()} - ${respuesta.descripcion}`;\n    }\n\n    return null;\n  }\n\n  public aplicarFiltro(){\n    this.filtroGeneral.aplicarFiltros();\n    this.loadData(null);\n  }\n\n}\n","<div #field class=\"p-inputgroup\" *ngIf=\"!soloPopup\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText disabled [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"\n            [class]=\"booleano  ? 'ng-invalid ng-dirty' : ''\"/>\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label *ngIf=\"booleano\">{{ nombreInput}} *</label>\n        <label *ngIf=\"!booleano\">{{ nombreInput}}</label>\n    </span>\n</div>\n\n<p-dialog #dialog id='popupcargo' header=\"{{'filtro' | translate}} {{'cargo' | translate}}\" [(visible)]=\"showDialog\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n    [contentStyle]=\"{width: '900px', 'overflow-y': 'scroll'}\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general #filtroGeneral [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"cargo\" formControlName=\"cargo\" />\n                            <label for=\"cargo\">{{'Cargo' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"descripcion\"\n                                formControlName=\"descripcion\" />\n                            <label for=\"descripcion\">{{'Descripcion' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"nivelCargo\"\n                                formControlName=\"nivelCargo\" />\n                            <label for=\"nivelCargo\">{{'Nivel Cargo' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"listadoCargo\" selectionMode=\"single\"\n        responsiveLayout=\"scroll\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [scrollable]=\"true\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 10%;\">{{'cargo' | translate}}</th>\n                <th style=\"width: 60%;\">{{'descripcion' | translate}}</th>\n                <th style=\"width: 12%;\">{{'Nivel Cargo' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-planilla>\n            <tr [pSelectableRow]=\"planilla\">\n                <td style=\"width: 10%;\">{{planilla.cargo}}</td>\n                <td style=\"width: 60%;\">{{planilla.descripcion}}</td>\n                <td style=\"width: 12%;\">{{planilla.nivelCargo}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n</p-dialog>\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'pipeJornada',\n    standalone: true\n})\n@Injectable({\n  providedIn: 'root'\n})\nexport class PipeJornadaPipe implements PipeTransform {\n\n\n  FRANJA_TRABAJO = \"N\";\n  FRANJA_PROCESO_TEMPORAL = \"S\";\n  AUSENCIA_TIPO = \"A\";\n  DEFINE_GENERA_PASIVO = \"D\";\n  GENERA_PASIVO_DESCANSO = \"P\";\n  NO_GENERA_PASIVO_DESCANSO = \"R\";\n  DES_FRANJA_TRABAJO = \"Franja de Trabajo\";\n  DES_FRANJA_PROCESO_TEMPORAL = \"Franja de Proceso Temporal\";\n  DES_AUSENCIA_TIPO = \"Ausencia\";\n  DES_DEFINE_GENERA_PASIVO = \"Franja de Trabajo - Posible Pasivo Descanso\";\n  DES_GENERA_PASIVO_DESCANSO = \"Franja de Trabajo - Genera Pasivo Descanso\";\n  DES_NO_GENERA_PASIVO_DESCANSO = \"Franja de Trabajo - No Genera Pasivo Descanso\";\n\n\n\n  TIPOJORNADA = [\n\n    { codigo: this.FRANJA_TRABAJO, nombre: this.DES_FRANJA_TRABAJO },\n    { codigo: this.FRANJA_PROCESO_TEMPORAL, nombre: this.DES_FRANJA_PROCESO_TEMPORAL },\n    { codigo: this.AUSENCIA_TIPO, nombre: this.DES_AUSENCIA_TIPO },\n    { codigo: this.DEFINE_GENERA_PASIVO, nombre: this.DES_DEFINE_GENERA_PASIVO },\n    { codigo: this.GENERA_PASIVO_DESCANSO, nombre: this.DES_GENERA_PASIVO_DESCANSO },\n    { codigo: this.NO_GENERA_PASIVO_DESCANSO, nombre: this.DES_NO_GENERA_PASIVO_DESCANSO },\n\n  ]\n\n\n\n\n  TURNO = \"TU\";\n  SEMANA = \"SE\";\n  AUSENCIA = \"NA\";\n  TURNO_DESC = \"Turno\";\n  SEMANA_DESC = \"Semana\";\n  AUSENCIA_DESC = \"Ausencia\";\n  MAPA_TIPO_JORNADA = [\n\n    { codigo: this.TURNO, nombre: this.TURNO_DESC },\n    { codigo: this.SEMANA, nombre: this.SEMANA_DESC },\n    { codigo: this.AUSENCIA, nombre: this.AUSENCIA_DESC }\n\n  ]\n\n  MAPA_TIPO_JORNADAH = [\n\n    { codigo: this.TURNO, nombre: this.TURNO_DESC },\n    { codigo: this.SEMANA, nombre: this.SEMANA_DESC },\n\n  ]\n\n  MAPA_TIPO_AUSENCIA = [\n\n    { codigo: this.AUSENCIA, nombre: this.AUSENCIA_DESC }\n\n\n  ]\n\n\n  SEMANAL = \"S\";\n  DIARIO = \"D\";\n  SEMANAL_DESC = \"Semanal\";\n  DIARIO_DESC = \"Diario\";\n  MAPA_TIPO_SITIO_TURNO = [\n\n    { codigo: this.SEMANAL, nombre: this.SEMANAL_DESC },\n    { codigo: this.DIARIO, nombre: this.DIARIO_DESC },\n  ]\n\n  LUNES = 'LUN';\n  MARTES = 'MAR';\n  MIERCOLES = 'MIE';\n  JUEVES = 'JUE';\n  VIERNES = 'VIE';\n  SABADO = 'SAB';\n  DOMINGO = 'DOM';\n\n  LUNES_DESC = 'Lunes'\n  MARTES_DESC = 'Martes'\n  MIERCOLES_DESC = 'Miércoles'\n  JUEVES_DESC = 'Jueves'\n  VIERNES_DESC = 'Viernes'\n  SABADO_DESC = 'Sábado'\n  DOMINGO_DESC = 'Domingo'\n\n  MAPASEMANA = [\n\n    { codigo: this.LUNES, nombre: this.LUNES_DESC },\n    { codigo: this.MARTES, nombre: this.MARTES_DESC },\n    { codigo: this.MIERCOLES, nombre: this.MIERCOLES_DESC },\n    { codigo: this.JUEVES, nombre: this.JUEVES_DESC },\n    { codigo: this.VIERNES, nombre: this.VIERNES_DESC },\n    { codigo: this.SABADO, nombre: this.SABADO_DESC },\n    { codigo: this.DOMINGO, nombre: this.DOMINGO_DESC },\n\n  ]\n\n  DOMINGO2 = '1';\n  LUNES2 = '2';\n  MARTES2 = '3';\n  MIERCOLES2 = '4';\n  JUEVES2 = '5';\n  VIERNES2 = '6';\n  SABADO2 = '7';\n\n\n  MAPASEMANA2 = [\n\n    { codigo: this.LUNES2, nombre: this.LUNES_DESC },\n    { codigo: this.MARTES2, nombre: this.MARTES_DESC },\n    { codigo: this.MIERCOLES2, nombre: this.MIERCOLES_DESC },\n    { codigo: this.JUEVES2, nombre: this.JUEVES_DESC },\n    { codigo: this.VIERNES2, nombre: this.VIERNES_DESC },\n    { codigo: this.SABADO2, nombre: this.SABADO_DESC },\n    { codigo: this.DOMINGO2, nombre: this.DOMINGO_DESC },\n\n  ]\n\n  MAPASEMANA3 = [\n\n    { codigo: this.LUNES2, nombre: this.LUNES },\n    { codigo: this.MARTES2, nombre: this.MARTES },\n    { codigo: this.MIERCOLES2, nombre: this.MIERCOLES },\n    { codigo: this.JUEVES2, nombre: this.JUEVES },\n    { codigo: this.VIERNES2, nombre: this.VIERNES },\n    { codigo: this.SABADO2, nombre: this.SABADO },\n    { codigo: this.DOMINGO2, nombre: this.DOMINGO },\n\n  ]\n\n\n\n  TIEMPO = 'T';\n  HORARIO = 'H';\n  TIEMPO_DESC = 'Tiempo';\n  HORARIO_DESC = 'Horario';\n\n\n  MAPATIPOPROCESO = [\n\n    { codigo: this.TIEMPO, nombre: this.TIEMPO_DESC },\n    { codigo: this.HORARIO, nombre: this.HORARIO_DESC },\n\n\n  ]\n\n\n\n\n\n  transform(value: any, ...args: any[]): any {\n    let result = value;\n    if (args[0] == 'listaTipoho') { this.MAPA_TIPO_JORNADA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaSitioTurno') { this.MAPA_TIPO_SITIO_TURNO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaSemana') { this.MAPASEMANA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listattiempo') { this.MAPATIPOPROCESO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listattipojornada') { this.MAPA_TIPO_JORNADAH.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaausencia') { this.MAPA_TIPO_AUSENCIA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n    \n    \n\n    \n\n    return result;\n}\n\n}\n","import { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { MomentoEventoHorarioModel } from '../../models/MomentoEventoHorarioModel';\nimport { PipeJornadaPipe } from '../../../../modules/compensacion/pipes/pipe-jornada.pipe';\nimport { AuthService, CargarControlFuncionalidadService, ToastService, UtilsService } from 'general-library-union';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-input-helper-horario-bienestar-eventos',\n    templateUrl: './input-helper-horario-bienestar-eventos.component.html',\n    styleUrls: ['./input-helper-horario-bienestar-eventos.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperHorarioBienestarEventosComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        ConfirmPopupModule,\n        NgIf,\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        CalendarModule,\n        FormsModule,\n        MultiSelectModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n    ],\n})\nexport class InputHelperHorarioBienestarEventosComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() showDialog: boolean = false;\n\n  @Input() soloPopup: boolean = false;\n\n  @Input() mostrarX: boolean;\n\n  @Input() booleano: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() momentoEventoHorarioModel: MomentoEventoHorarioModel;\n\n  horaIncial: Date;\n  horaFinal: Date;\n  diasSemana: any[];\n  listaHorarios: string[];\n  listaDiasHabilitados: any[];\n  diasSemanaOptions: { key: number; label: string; }[];\n  seleccionadoMomentoEvento: any;\n  cadenaHorarioSeleccionado: string;\n  cadenaHorarioSeleccionadoActualizar: string = null;\n  clickGenerar: boolean = false;\n  cadenaHorarios: string;\n\n  constructor(public jornadapipe: PipeJornadaPipe, public utilsService: UtilsService, private notificacionesBusService: ToastService, private authService: AuthService,\n    private generalPipe: GeneralPipe, private confirmationService: ConfirmationService, public controlFuncionService: CargarControlFuncionalidadService,) { }\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  ngOnInit(): void {\n\n    this.showDialog = false;\n    this.listaHorarios = [];\n    this.listaDiasHabilitados = [];\n\n    if (this.labelInput == null) {\n      this.labelInput = '';\n    }\n\n    this.construirListaHorarios();\n\n  }\n\n  ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  construirListaHorarios() {\n\n    if (!this.momentoEventoHorarioModel || !this.momentoEventoHorarioModel.horario) {\n      return null;\n    }\n\n    this.listaHorarios = this.momentoEventoHorarioModel.horario.split(';');\n\n  }\n\n  openDataTable() {\n\n    this.showDialog = true;\n\n    this.determinarDiasMomentoEvento();\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  async determinarDiasMomentoEvento() {\n\n    if (!this.momentoEventoHorarioModel) {\n      return null;\n    }\n\n    this.listaDiasHabilitados = this.jornadapipe.MAPASEMANA3;\n\n    let mapaDiasSeleccionados = this.obtenerDiasSemanaEnRango(this.momentoEventoHorarioModel.fechaInicial, this.momentoEventoHorarioModel.fechaFinal);\n\n    this.diasSemanaOptions = Array.from(mapaDiasSeleccionados, ([key, label]) => ({ key, label }));\n\n    this.diasSemanaOptions.sort((a, b) => { return a.key - b.key });\n\n  }\n\n  obtenerDiasSemanaEnRango(fechaInicial: Date, fechaFinal: Date): Map<number, string> {\n\n    const diasSemanaEnRango = new Map<number, string>();\n\n    for (let fecha = new Date(fechaInicial); fecha <= fechaFinal; fecha.setDate(fecha.getDate() + 1)) {\n\n      const diaSemana = fecha.getDay() + 1;\n\n      const diaEncontrado = this.jornadapipe.MAPASEMANA3.find(dia => dia.codigo === diaSemana.toString());\n\n      if (diaEncontrado) {\n        diasSemanaEnRango.set(parseInt(diaEncontrado.codigo), diaEncontrado.nombre);\n      }\n    }\n\n    return diasSemanaEnRango;\n  }\n\n  onRowSelect(event) {\n\n    this.cadenaHorarioSeleccionado = event.data;\n    this.cadenaHorarioSeleccionadoActualizar = this.cadenaHorarioSeleccionado;\n\n    this.construirHorarioSeleccionado(event.data);\n    //this.seleccionadoMomentoEvento = null;\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  construirHorarioSeleccionado(stringDiasHoras: string) {\n\n    this.diasSemana = [];\n\n    const [dias, horas] = stringDiasHoras.split(' ');\n\n    const diasSeparados = dias.split('-');\n\n    for (let item of diasSeparados) {\n\n      const diaEncontrado = this.jornadapipe.MAPASEMANA3.find(dia => dia.nombre === item.toString());\n\n      if (diaEncontrado) {\n        this.diasSemana.push(parseInt(diaEncontrado.codigo));\n      }\n\n    }\n\n    const [horaInicialStr, horaFinalStr] = horas.split('-');\n\n    this.horaIncial = this.parseDate(horaInicialStr);\n    this.horaFinal = this.parseDate(horaFinalStr);\n  }\n\n  parseDate(horaStr: string): Date {\n    const [horas, minutos] = horaStr.split(':').map(Number);\n    const date = new Date();\n    date.setHours(horas);\n    date.setMinutes(minutos);\n    return date;\n  }\n\n  agregarHorario() {\n\n    if (!this.validar()) {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      this.clickGenerar = true;\n      return null;\n    }\n\n    if (!this.validarHora()) {\n      this.notificacionesBusService.showError('La hora final debe ser mayor');\n      return null;\n    }\n\n    this.cadenaHorarioSeleccionado = this.obtenerCadenaHorarioSeleccionado();\n\n    if (this.cadenaHorarioSeleccionadoActualizar == null || !this.cadenaHorarioSeleccionadoActualizar) {\n\n      for (let cadena of this.listaHorarios) {\n        if (cadena === this.cadenaHorarioSeleccionado) {\n          this.notificacionesBusService.showError('Horario ya programado');\n          return;\n        }\n      }\n\n    } else {\n      this.listaHorarios = this.listaHorarios.filter(cadena => cadena !== this.cadenaHorarioSeleccionadoActualizar);\n    }\n\n    this.listaHorarios.push(this.cadenaHorarioSeleccionado);\n    this.cadenaHorarioSeleccionadoActualizar = null;\n    this.horaIncial = null;\n    this.horaFinal = null;\n    this, this.diasSemana = null;\n  }\n\n  validar() {\n\n    var validador: boolean = true;\n\n    validador = validador && this.utilsService.validarCampoObligatorio(this.horaIncial);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.horaFinal);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.diasSemana);\n\n    return validador;\n  }\n\n  validarHora() {\n\n    if (this.horaIncial > this.horaFinal) {\n      return false;\n    }\n\n    return true;\n  }\n\n  obtenerCadenaHorarioSeleccionado(): string {\n\n    let rangoDias = \"\";\n    let rangoHora = \"\";\n\n    for (let i = 0; i < this.diasSemana.length; i++) {\n      if ((this.diasSemana.length - 1) == i) {\n        rangoDias += this.obtenerDescripcionDia(this.diasSemana[i]);\n      } else {\n        rangoDias += this.obtenerDescripcionDia(this.diasSemana[i]) + this.generalPipe.MENOS;\n      }\n    }\n\n    rangoHora = (this.horaIncial.getHours().toString().length < 2 ? \"0\" + this.horaIncial.getHours() : this.horaIncial.getHours()) + Constantes.DOS_PUNTOS;\n    rangoHora += this.horaIncial.getMinutes().toString().length < 2 ? \"0\" + this.horaIncial.getMinutes() : this.horaIncial.getMinutes();\n    rangoHora += this.generalPipe.MENOS;\n    rangoHora += (this.horaFinal.getHours().toString().length < 2 ? \"0\" + this.horaFinal.getHours() : this.horaFinal.getHours()) + Constantes.DOS_PUNTOS;\n    rangoHora += this.horaFinal.getMinutes().toString().length < 2 ? \"0\" + this.horaFinal.getMinutes() : this.horaFinal.getMinutes();\n\n    return rangoDias + Constantes.ESPACIO_BLANCO + rangoHora;\n  }\n\n  obtenerDescripcionDia(dia: string) {\n    let diaDesc = \"\";\n    for (let item of this.jornadapipe.MAPASEMANA3) {\n      if (item.codigo == dia) {\n        diaDesc += item.nombre;\n        break;\n      }\n    }\n    return diaDesc;\n  }\n\n  aplicarHorarios() {\n\n    this.construirCadenaHorarios();\n\n    this.value = this.cadenaHorarios;\n    this.label = this.cadenaHorarios;\n    this.onChange(this.value);\n    this.onSelected.emit(this.cadenaHorarios);\n    this.showDialog = false;\n    this.regresar.emit(false);\n    return null;\n  }\n\n  construirCadenaHorarios() {\n\n    this.cadenaHorarios = \"\";\n\n    for (let cadena of this.listaHorarios) {\n      if (this.listaHorarios[this.listaHorarios.length - 1] == cadena) {\n        this.cadenaHorarios = this.cadenaHorarios + cadena;\n      } else {\n        this.cadenaHorarios = this.cadenaHorarios + cadena + Constantes.PUNTO_COMA;\n      }\n    }\n  }\n\n  eliminarRegistro(registroEliminar: any) {\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'eliminarMomentoEventoHorario',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setEliminarRegistro(registroEliminar);\n      },\n      reject: () => { },\n    });\n\n  }\n\n  setEliminarRegistro(registroEliminar: any) {\n    this.listaHorarios = this.listaHorarios.filter(cadena => cadena !== registroEliminar);\n    return null;\n  }\n\n  get diasSemanaSeleccionados(): string {\n    \n    if (!this.diasSemana || this.diasSemana.length === 0) {\n        return 'Seleccione días';\n    }\n\n    return this.diasSemana.map(key => {\n      const day = this.diasSemanaOptions.find(option => option.key === key);\n      return day ? day.label : key;\n  }).join(', ');\n}\n\n}\n","<p-confirmPopup key=\"eliminarHorario\"></p-confirmPopup>\n<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n\n    <!-- Cuando no lleva label el input, evita que se muestre la etiqueta vacia en la parte superior-->\n    <input *ngIf=\"labelInput == ''\" pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n\n    <span class=\"p-float-label\" *ngIf=\"labelInput != ''\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <label>{{labelInput}}</label>\n    </span>\n\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\">\n        <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n</div>\n\n<p-dialog #dialog id='popupEmpleado' header=\"{{'horario' | translate}}\" [(visible)]=\"showDialog\" (onHide)=\"ocultar()\"\n    [modal]=\"true\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '40vw' }\">\n\n    <!-- campos Momento-->\n    <div class=\"p-fluid p-formgrid grid\">\n        <!-- Hora Inicial -->\n        <div class=\"field col-12 md:col-6 lg:col-3\">\n\n            <span class=\"p-float-label\">\n                <p-calendar [timeOnly]='true' [showTime]=\"true\" [required]=\"true\" [readonlyInput]=\"true\"\n                    [(ngModel)]=\"horaIncial\" [hourFormat]=\"'24'\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(horaIncial) && clickGenerar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(horaIncial)  && clickGenerar\"></p-calendar>\n                <label>{{'horainicial' | translate}} *</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-3\">\n            <span class=\"p-float-label\">\n                <p-calendar [timeOnly]='true' [showTime]=\"true\" [required]=\"true\" [readonlyInput]=\"true\"\n                    [(ngModel)]=\"horaFinal\" [hourFormat]=\"'24'\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(horaFinal) && clickGenerar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(horaFinal) && clickGenerar\"></p-calendar>\n                <label>{{'horafinal' | translate}} *</label>\n\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n                <p-multiSelect [options]=\"diasSemanaOptions\" [(ngModel)]=\"diasSemana\" appendTo=\"body\" [required]=\"true\"\n                    id=\"diaSemana\" optionLabel=\"label\" optionValue=\"key\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(diasSemana) && clickGenerar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(diasSemana) && clickGenerar\">\n                    <ng-template let-value pTemplate=\"selectedItems\">\n                        <div>\n                            {{diasSemanaSeleccionados}}\n                        </div>\n                    </ng-template>\n                </p-multiSelect>\n                <label htmlFor=\"diaSemana\">{{'semana' | translate}} *</label>\n            </span>\n        </div>\n\n    </div>\n\n    <!-- BOTONES -->\n    <div class=\"flex justify-content-end mb-4\">\n\n        <!-- APLICAR -->\n        <button pButton pRipple class=\"mr-2 p-button p-button-secondary\" icon=\"glyphicons glyphicons-plus\"\n            *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:nuevo')\" label=\"{{'agregar' | translate}}\"\n            (click)=\"agregarHorario()\">\n        </button>\n    </div>\n\n    <p-table #tablaGeneral id=\"tabla_listado_momento_evento_horario\" [value]=\"listaHorarios\" responsiveLayout=\"scroll\"\n        [rows]=\"10\" [paginator]=\"listaHorarios.length > 10\" [totalRecords]=\"listaHorarios.length\"\n        scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n        dataKey=\"llaveTabla\" (onRowSelect)=\"onRowSelect($event)\" [(selection)]=\"seleccionadoMomentoEvento\"\n        selectionMode=\"single\" [scrollable]=\"true\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width:92%\">{{'horario' | translate}}</th>\n                <th style=\"width:8%;\"></th>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-item>\n            <tr [pSelectableRow]=\"item\">\n                <td style=\"width:92%\">{{item}}</td>\n                <!-- BOTONES -->\n                <td style=\"width: 8%; text-align: right\">\n                    <!-- ELIMINAR -->\n                    <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                        (click)=\"eliminarRegistro(item)\"\n                        *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:eliminar')\"\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>\n                </td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n    <!-- BOTONES -->\n    <div class=\"flex justify-content-end mt-4\">\n\n        <!--GUARDAR-->\n        <button pButton pRipple class=\"mr-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            label=\"{{'link_guardar' | translate}}\" (click)=\"aplicarHorarios()\">\n        </button>\n    </div>\n\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class InstructorEntidadModel extends UnionModel  {\n\n\tintructor: number;\n\torigen: string;\n\tidentifica: number;\n\tnombreIdentifica: string;\n\ttipo: string;\n\testado: string;\n\trazonSocial: string;\n\tcontacto: string;\n\tdireccion: string;\n\tbarrio: string;\n\ttelefono: string;\n\tsucursalReferencia: string;\n\treferencia: string;\n\ttipoReferencia: string;\n\tentidadPago: string;\n\tfechaIngreso: Date;\n\tfechaRetiro: Date;\n\tobservacion: string;\n\tmotivo: string;\n\tevento: string;\n\tidentificaExterno: number;\n\ttipoInstructor: string;\n\tnombreInstructor: string;\n\tfiltroNombre: string;\n\tdocumento: string;\n\texterno: string;\n\tdocumentoExterno: string;\n\tnombreCompletoExterno: string;\t\n\tcorreo: string;\n\tcorreoHojaVida: string;\n\tfiltroIdentifica: number;\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { InstructorEntidadModel } from '../models/InstructorEntidadModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EntidadInstructorService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n\n  obtenerListado(instructorEntidad: InstructorEntidadModel, consulta: string): Observable<any[]> {\n    let formData = new FormData();\n    formData.append(\"instructorEntidadDTO\", JSON.stringify(instructorEntidad) );\n    formData.append(\"consulta\", consulta);\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/entidad/obtenerListado`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  \n  obtenerobjeto(instructorEntidad: InstructorEntidadModel, consultaobj: string): Observable<any> {\n    \n    let formData = new FormData();\n    formData.append(\"instructorEntidadDTO\", JSON.stringify(instructorEntidad) );\n    formData.append(\"consultaobj\", consultaobj);\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/entidad/obtenerobjeto`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  guardarRegistroInstructorEntidad(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/entidad/guardarRegistroInstructorEntidad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminaRegistroInstructorEntidad(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/entidad/eliminaRegistroInstructorEntidad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, CampoFormularioModel, ErrorIntecertorService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { InstructorEntidadModel } from '../../../modules/saludocupacional/models/InstructorEntidadModel';\nimport { EntidadInstructorService } from '../../../modules/saludocupacional/service/entidad-instructor.service';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-input-helper-instructor-evento',\n    templateUrl: './input-helper-instructor-evento.component.html',\n    styleUrls: ['./input-helper-instructor-evento.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperInstructorEventoComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        NgIf,\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperInstructorEventoComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild(EntidadInstructorService) entidadInstructorService1: EntidadInstructorService;\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  @Input() value: number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() mostrarX: boolean;\n\n  listaInstructor: InstructorEntidadModel[];\n\n  onChange: Function = () => {   };\n\n  onTouched: Function = () => { };\n\n  dataSelected: InstructorEntidadModel;\n\n  filters = [];\n\n  constructor(private translateService: TranslateService, private entidadInstructorService: EntidadInstructorService,\n              private authService: AuthService, private utilsService: UtilsService,\n  ) { }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  deleteSelection(){}\n\n  ngOnInit(): void {\n\n    this.showDialog = false;\n    this.listaInstructor = [];\n\n    if (this.labelInput == null) {\n      this.labelInput = '';\n    }\n\n    this.filters = [\n      {\n        field: 'filtroIdentifica',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'contains',\n      }\n      , {\n        field: 'filtroNombre',\n        header: this.translateService.instant('nombre'),\n        matchMode: 'contains',\n      }\n    ];\n\n  }\n\n  ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  openDataTable() {\n\n    this.showDialog = true;\n\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n\n    let event = {};\n    this.cargarListaFiltros(event);\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect() {\n\n    console.log('this.dataSelected', this.dataSelected);\n\n    this.showDialog = false;\n    this.value = this.dataSelected.intructor;\n    this.label = this.dataSelected.nombreInstructor;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  cargarListaFiltros(event) {\n    this.cargarListado(event);\n  }\n\n  async cargarListado(event) {\n\n    let filtroObjeto = new InstructorEntidadModel()\n    filtroObjeto.paginacionRegistroInicial = event.first;\n    filtroObjeto.paginacionRegistroFinal = event.rows;\n    filtroObjeto.filtroNombre = event.filtroNombre?.value ? '%' + event.filtroNombre?.value + '%' : null;\n    filtroObjeto.filtroIdentifica = event.filtroIdentifica?.value ? event.filtroIdentifica?.value : null;\n    filtroObjeto.tipo = 'I';\n    filtroObjeto.origen = 'C';\n\n    this.listaInstructor = await this.entidadInstructorService.obtenerListado(filtroObjeto, 'InstructorEntidadSaludOcupacional.consultarInstructorEntidadOrdenado').toPromise();\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: any, campo: CampoFormularioModel): Promise<string> {\n\n    if (llave != null) {\n      let filtro = new InstructorEntidadModel();\n      filtro.intructor = llave;\n      let objeto = new GeneralModel('InstructorEntidadSaludOcupacionalDTO', 'InstructorEntidadSaludOcupacional.consultarInstructorEntidadOrdenado', false, filtro);\n      let respuesta = await generalService.queryForObject(objeto).toPromise();\n      generalService = null;\n      return respuesta.nombreInstructor;\n    }\n    return null;\n  }\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n\n    <!-- Cuando no lleva label el input, evita que se muestre la etiqueta vacia en la parte superior-->\n    <input *ngIf=\"labelInput == ''\" pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n\n    <span class=\"p-float-label\" *ngIf=\"labelInput != ''\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <label>{{labelInput}}</label>\n    </span>\n\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\">\n        <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n\n</div>\n\n<p-dialog header=\"{{'instructor'| translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n    (onShow)=\"openDataTable()\" [contentStyle]=\"{width: '720px'}\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_filtroIdentifica\"\n                                formControlName=\"filtroIdentifica\"\n                                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 20);\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_filtroIdentifica\">{{'identificacion' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_filtroNombre\" formControlName=\"filtroNombre\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_filtroNombre\">{{'nombre' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listaInstructor\" selectionMode=\"single\"\n        [paginator]=\"listaInstructor.length > 10\" [rows]=\"10\" [totalRecords]=\"listaInstructor.length\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\"\n        (onRowSelect)=\"onRowSelect()\">\n        \n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 50%;\">{{\"identificacion\" | translate}} </th>\n                <th style=\"width: 50%;\">{{\"nombre\" | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-item>\n            <tr [pSelectableRow]=\"item\">\n                <td style=\"width: 50%;\" *ngIf=\"item.tipoInstructor != 'E'\"> {{item.identifica}} </td>\n                <td style=\"width: 50%;\" *ngIf=\"item.tipoInstructor == 'E' && item.documentoExterno\">\n                    {{item.documentoExterno}} </td>\n                <td style=\"width: 50%;\" *ngIf=\"item.tipoInstructor == 'E' && item.documentoExterno == null\">\n                    {{item.identificaExterno}} </td>\n                <!-- Nombre -->\n                <td style=\"width: 50%;\" *ngIf=\"item.tipoInstructor != 'E'\">{{item.nombreIdentifica}}</td>\n                <td style=\"width: 50%;\" *ngIf=\"item.tipoInstructor == 'E' && item.documentoExterno\">{{item.nombreCompletoExterno}}</td>\n                <td style=\"width: 50%;\" *ngIf=\"item.tipoInstructor == 'E' && item.documentoExterno == null\">{{item.contacto}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class SemestreModel extends UnionModel {\n\n\t\n\tllave: string;\n\tdescripcion: string;\n\tperiodo: number;\n\tinicio: Date;\n\ttermina: Date;\n\tempresa: number;\n\testado: string;\n\tlimiteinicial: Date;\n\tlimitefinal: Date;\n\tplanilla: string;\n\tperiodo1: string;\n\tperiodo2: string;\n\tperiodo3: string;\n\tcomodinBusqueda: string;\n\tcodigo: string;\n\tsinEstado: string;\n\t\t\n}\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { SemestreModel } from '../../../modules/jornadadocente/models/SemestreModel';\nimport { SemestrePipe } from '../../../modules/jornadadocente/pipes/semestre.pipe';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgClass, NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-semestre',\n    templateUrl: './input-helper-semestre.component.html',\n    styleUrls: ['./input-helper-semestre.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSemestreComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgClass,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        DropdownModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        SemestrePipe,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperSemestreComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() header: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() mostrarX: boolean = true;\n\n  @Input() ocultarBtnLimpiar: boolean = true;\n\n  @Input() booleano: boolean;\n\n  @Input() estado: string;\n\n  dataSelected: SemestreModel;\n\n  listado: SemestreModel[] = [];\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(private generalService: GeneralService, \n              public semestrePipe: SemestrePipe,\n              private authService: AuthService,\n              private utilsService: UtilsService,\n              private translateService: TranslateService,) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n\n    this.filters = [\n      {\n        field: 'periodo',\n        header: this.translateService.instant('periodo'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (key) => this.semestrePipe.ESTADOS.filter(data => data.codigo == key)[0].nombre,\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  \n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    this.dataSelected = null;\n    this.showDialog = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  cleanData(){\n    this.label = '';\n    this.dataSelected = new SemestreModel();\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n    this.booleano = false;\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroFinal: event.rows,\n      paginacionRegistroInicial: event.first,\n      periodo: event.filters?.periodo?.value ? event.filters?.periodo?.value : null,\n      descripcion: event.filters?.descripcion?.value ? `%${event.filters?.descripcion?.value}%` : null,\n      estado: event.filters?.estado?.value ? event.filters?.estado?.value : null,\n      sinEstado: this.estado ? this.estado : this.semestrePipe.SEMESTRE_CERRADO,\n    }\n    this.listado = await this.generalService.queryForList(new GeneralModel('SemestreDTO',null,false,objeto)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('SemestreDTO',null,false,objeto)).toPromise();\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n    if (llave != null) {\n      let filtro = new SemestreModel();\n      filtro.llaveTabla =llave;\n      let objeto = new GeneralModel('SemestreDTO', null, false, filtro);\n      let respuesta: SemestreModel = await generalService.queryForObject(objeto).toPromise();\n      return respuesta.descripcion;\n    }\n    return null;\n  }\n\n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \" >\n    <span class=\"p-float-label\">\n      <input pInputText #inputText readonly=\"true\" [value]=\"label\" disabled [required]=\"booleano\"\n       />\n      <label>{{header}}</label>\n    </span>\n    <button  pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\"\n      [ngClass]=\"{ 'clear': !mostrarX }\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button pButton pRipple *ngIf=\"mostrarX\" (click)=\"cleanData()\"\n      class=\"p-button-icon-only unico\" icon=\" pi pi-times\" [ngClass]=\"{ 'clear': ocultarBtnLimpiar}\">\n    </button>\n  </div>\n  \n  <p-dialog header=\"{{'semestre' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\" [draggable]=\"true\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '50vw' }\">\n  \n    <div>\n      <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n          <ng-template let-form>\n            <ng-container [formGroup]=\"form\">\n              <div class=\"field\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" formControlName=\"periodo\" autocomplete=\"off\" \n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '');\" />\n                  <label>{{'periodo' | translate}}</label>\n                </span>\n              </div>\n              <div class=\"field\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" formControlName=\"descripcion\" autocomplete=\"off\" />\n                  <label>{{'descripcion' | translate}}</label>\n                </span>\n              </div>\n              <div class=\"field\">\n                <span class=\"p-float-label\">\n                  <p-dropdown [options]=\"semestrePipe.ESTADOS\" [autoDisplayFirst]=\"false\" \n                    optionLabel=\"nombre\" optionValue=\"codigo\" formControlName=\"estado\" [showClear]=\"true\" ></p-dropdown>\n                  <label>{{'estado' | translate}}</label>\n                </span>\n              </div>\n            </ng-container>\n          </ng-template>\n        </app-filtro-general>\n      </div>\n  \n      <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listado\" selectionMode=\"single\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\"  [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\"\n        [lazy]=\"true\" (onLazyLoad)=\"loadData($event)\">\n        <ng-template pTemplate=\"header\">\n          <tr>\n            <th>{{ \"periodo\" | translate }}</th>\n            <th>{{ \"descripcion\" | translate }}</th>\n            <th>{{ \"estado\" | translate }}</th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-semestre>\n          <tr [pSelectableRow]=\"semestre\">\n            <td>{{semestre.periodo}}</td>\n            <td>{{semestre.descripcion}}</td>\n            <td>{{semestre.estado | semestrePipe : 'listaEstado'}}</td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n    </div>\n  </p-dialog>","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { DatosBasicosEmpresaModel } from '../../../modules/compensacion/models/DatosBasicosEmpresaModel';\nimport { EmpleadoModel } from '../../../modules/compensacion/models/EmpleadoModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-input-helper-empleado-boton',\n    templateUrl: './input-helper-empleado-boton.component.html',\n    styleUrls: ['./input-helper-empleado-boton.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperEmpleadoBotonComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        NgIf,\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        CheckboxModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        DatePipe,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\n\nexport class InputHelperEmpleadoBotonComponent implements ControlValueAccessor, OnInit {\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = null;\n\n  @Input() readonly: boolean = false;\n\n  @Input() showDialog: boolean = false;\n\n  @Input() soloPopup: boolean = false;\n\n  @Input() mostrarX: boolean = true;\n\n  @Input() booleano: boolean = false;\n\n  @Input() nombreInput : string = '';\n\n  @Input() filtroPorCedula : number;\n \n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  loading: boolean;\n\n  listadoEmpleado: EmpleadoModel[];\n  estaticos: boolean;\n  cedulaConsultaContratosAnteriores: number;\n  filtroBean: EmpleadoModel;\n  estado: boolean;\n  datosBasicoEmpresa: DatosBasicosEmpresaModel;\n  @Input() public activos: boolean = false;\n  @Input() public soloActivos: string;\n  @Input() public verOpcionActivos: boolean = true;\n  verEmpresa: boolean;\n\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  @ViewChild(FiltroGeneralComponent) filtroGeneral: FiltroGeneralComponent;\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService,\n    private toastService: ToastService, private utilsService: UtilsService) { }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n    this.filtroGeneral.panel.hide();\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n\n  async ngOnInit() {\n    \n    this.filters = [\n      {\n        field: 'comodinFiltro',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'estadoLaboral',\n        header: this.translateService.instant('estado'),\n        matchMode: 'equals',\n      }\n\n    ];\n    await this.cargarDatosEmpresa();\n\n  }\n\n  async cargarDatosEmpresa() {\n\n    this.datosBasicoEmpresa = new DatosBasicosEmpresaModel();\n    this.datosBasicoEmpresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    let objeto2 = new GeneralModel('DatosBasicosEmpresaDTO', 'DatosBasicosEmpresa.consultarDatosBasicosEmpresa', false, this.datosBasicoEmpresa);\n    this.datosBasicoEmpresa = await this.generalService.queryForObject(objeto2).toPromise();\n\n    if (this.datosBasicoEmpresa == null) {\n      this.toastService.showError('La empresa no se encuentra correctamente parametrizada');\n    }\n\n  }\n\n  openDataTable(){\n    \n    this.showDialog = true;    \n    if(this.filtroPorCedula){\n      this.filtroBean = new EmpleadoModel();\n      this.filtroBean.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      this.filtroBean.cedula = this.filtroPorCedula;\n      this.cargarLista({rows:10, first:0})\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n      this.utilsService.resizeWindowIFrame();\n    }\n  }\n\n  async cargarLista(event) {\n    if (this.soloActivos != 'ActivoEncargo' && this.soloActivos != 'ActivoDeterminados') {\n      this.activos = true;\n    }\n    let filtroNombreCompleto: string = event.filters?.comodinFiltro?.value;\n    \n    if (filtroNombreCompleto == undefined && !this.filtroPorCedula) {\n      this.listadoEmpleado = [];\n      this.paginator.totalRecords = 0;\n      return;\n    }\n\n    if (!this.estaticos) {\n      await this.colocarFiltro();\n      this.filtroBean.paginacionRegistroFinal = event.rows;\n      this.filtroBean.paginacionRegistroInicial = event.first;\n\n      if (Number(event.filters?.comodinFiltro?.value) ) {\n\t\t\t\tthis.filtroBean.comodinBuscarNumero = event.filters?.comodinFiltro?.value ? parseInt(event.filters?.comodinFiltro?.value) : null;\n\t\t\t\tthis.filtroBean.comodinBuscarDocumento = event.filters?.comodinFiltro?.value ? event.filters.comodinFiltro?.value : null;\n\t\t\t} else {\n\t\t\t\tthis.filtroBean.comodinBuscarNombre = event.filters?.comodinFiltro?.value ? event.filters?.comodinFiltro?.value : null;\n\t\t\t}\n\n      this.filtroBean.estadoLaboral = event.filters?.estadoLaboral?.value == 'Activo'? 'A' : null; \n      let general = new GeneralModel('EmpleadoDTO', null, false, this.filtroBean);\n      this.generalService.queryForList(general).subscribe((data) => {\n        this.listadoEmpleado = data;\n        this.listadoEmpleado.forEach(item => {\n          item.nombreCompleto = (item.primerApellido? item.primerApellido : '') + ' ' + (item.segundoApellido? item.segundoApellido : '') + ' ' + item.nombres;\n        });\n        this.generalService.cantidadRegistros(general).subscribe((data) => {\n          this.paginator.totalRecords = data;\n        });\n\n      });\n    } else {\n      console.log('ingreso else');\n\n      //** Pendiente por revisar con Tarea y funcionalidad    */\n    }\n\n\n\n  }\n\n  colocarFiltro() {\n    this.verEmpresa = true;\n    this.filtroBean = new EmpleadoModel();\n    //pendiente campo getFiltroCondicionDerecho()\n    if (this.cedulaConsultaContratosAnteriores != null) {\n      /*\n        Pendiente por revisar con Tarea y funcionalidad     \n      */\n    } else {\n      if (this.estado) {\n        /*\n          Pendiente por revisar con tarea y funcionalidad   \n        */\n      }\n\n      if (this.datosBasicoEmpresa.tipoFiltro! = null) {\n        this.filtroBean.filtroZonaComodin = this.tipoFiltro(this.datosBasicoEmpresa.tipoFiltro, 'ZO');\n        this.filtroBean.filtroUnidadComodin = this.tipoFiltro(this.datosBasicoEmpresa.tipoFiltro, 'UN');\n      } else {\n        this.filtroBean.filtroZonaComodin = null;\n        this.filtroBean.filtroUnidadComodin = null;\n      }\n\n      if (this.authService.getTokenKey('numeroEmpresa') != null) {\n        this.verEmpresa = false;\n        this.filtroBean.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        this.filtroBean.usuarioRol = this.authService.getTokenKey('aliasRol');\n        this.filtroBean.usuarioLogin = this.authService.getTokenKey('usuario');\n      }\n\n      if (this.activos) {\n        this.filtroBean.soloActivos = 'L';\n      }\n      else {\n        this.filtroBean.soloActivos = this.soloActivos;\n      }\n\n    }\n\n    if(this.filtroPorCedula){\n      this.filtroBean.cedula = this.filtroPorCedula;\n    }\n\n  }\n\n  tipoFiltro(tipoFiltro: String, constanteFiltro: String): string {\n    let tiposFiltros = [];\n    tiposFiltros = tipoFiltro.split(',');\n    for (const filtro of tiposFiltros) {\n      if (filtro.trim() == constanteFiltro) {\n        return 'S';\n      }\n    }\n    return null\n  }\n\n  buscar() {\n    console.log('ingreso buscar');\n    this.buscarEmpleadoDinamicos(null);\n  }\n\n  buscarEmpleadoDinamicos(soloActivos: string) {\n    this.soloActivos = soloActivos;\n    this.estaticos = false;\n  }\n\n  onRowSelect(event) {\n    this.showDialog = false;\n    let empleadoSeleccionado = event.data;\n    this.label = empleadoSeleccionado.nombreCompleto;\n    this.value = empleadoSeleccionado.contrato;\n    this.onChange(this.value);\n    this.onSelected.emit(empleadoSeleccionado);\n    \n  }\n\n  deleteSelection(){\n    console.trace()\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n}\n","<div *ngIf=\"!soloPopup\" #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\">\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>        \n        <label>{{nombreInput}}</label>\n    </span>\n</div>\n\n<p-dialog #dialog id='popupEmpleado' header=\"{{'filtroempleado' | translate}}\" [(visible)]=\"showDialog\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '60vw'}\">\n    <!-- [contentStyle]=\"{width: '900px', 'overflow-y': 'scroll'}\" -->\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\" *ngIf=\"!filtroPorCedula\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_busquedae\" formControlName=\"comodinFiltro\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_busqueda\">{{'busqueda' | translate}}</label>\n                        </span>\n                    </div>\n                    @if (verOpcionActivos) {\n                        <div class=\"field\">\n                            <span class=\"\">\n                                <p-checkbox formControlName=\"estadoLaboral\" value=\"Activo\"></p-checkbox>\n                                <label for=\"id_identifica\"> {{'activo' | translate}}</label>\n                            </span>\n                        </div>\n                    }\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"listadoEmpleado\" selectionMode=\"single\" [scrollable]=\"true\" [tableStyle]=\"{ 'min-width': '50rem' }\"\n        responsiveLayout=\"scroll\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" \n        [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last}    de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\" [lazy]=\"true\"\n        (onLazyLoad)=\"cargarLista($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 10%;\">{{ \"identificacion\" | translate }}</th>\n                <th style=\"width: 10%;\">{{ \"contrato\" | translate }}</th>\n                <th style=\"width: 30%;\">{{ \"nombrefuncionario\" | translate }}</th>\n                <th style=\"width: 15%;\">{{ \"estadolaboral\" | translate }}</th>\n                <th style=\"width: 10%;\">{{ \"fechaingreso\" | translate }}</th>\n                <th style=\"width: 10%;\" *ngIf=\"(!activos) && soloActivos != 'ActivoDeterminados'\">{{ \"fecharetiro\" | translate }}</th>\n                <th style=\"width: 10%;\" *ngIf=\"soloActivos == 'ActivoDeterminados'\">{{ \"fechatermina\" | translate }}</th>\n                <th style=\"width: 20%;\">{{ \"vinculacion\" | translate }}</th>\n                <th style=\"width: 20%;\"*ngIf=\"verEmpresa\">{{ \"empresa\" | translate }}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-empleado>\n            <tr [pSelectableRow]=\"empleado\">\n                <td style=\"width: 10%;\">{{empleado.documento}}</td>\n                <td style=\"width: 10%;\">{{empleado.contrato}}</td>\n                <td style=\"width: 30%;\">{{empleado.nombreCompleto}}</td>\n                <td style=\"width: 15%;\">{{empleado.estadoLaboralNombre}}</td>\n                <td style=\"width: 10%;\">{{empleado.fechaIngreso | date: ('formatofecha' | translate)}}</td>\n                <td style=\"width: 10%;\" *ngIf=\"(!activos) && soloActivos != 'ActivoDeterminados'\">{{empleado.fechaRetiro | date: ('formatofecha' | translate)}}</td>\n                <td style=\"width: 10%;\" *ngIf=\"soloActivos == 'ActivoDeterminados'\">{{empleado.fechaTermina | date: ('formatofecha' | translate)}}</td>\n                <td style=\"width: 20%;\">{{empleado.vinculacionNombre}}</td>\n                <td style=\"width: 20%;\" *ngIf=\"verEmpresa\">{{empleado.empresa}}</td>\n            </tr>        \n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { CentroCostoModel } from '../../../modules/compensacion/models/CentroCostoModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-seleccion-zona-centro',\n    templateUrl: './input-helper-seleccion-zona-centro.component.html',\n    styleUrls: ['./input-helper-seleccion-zona-centro.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionZonaCentroComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperSeleccionZonaCentroComponent implements ControlValueAccessor, OnInit {\n  @ViewChild('inputText') inputText: ElementRef;\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() labelIntput: string;\n\n  @Input() labelHeader: string;\n\n  @Input() mostrarX: boolean;\n\n  @Input() mostrarZonaLabel: boolean;\n\n  filters = [];\n\n  listaZonaCentro: any[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: CentroCostoModel;\n\n  paginator = { rows: 10, totalRecords: 0 }\n\n  comodin: string;\n  @Input() cargaempresa: number;\n\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private utilsService: UtilsService,\n    private translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.crearFiltros();\n    if (this.showDialog) {\n      this.openDataTable()\n    }\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n\n    \n\nif(this.cargaempresa != null || this.cargaempresa != undefined ){\n  \n  let event = {first: 0, rows:10,filters: {}}\n    this.loadData(event)   \n}\n\n    this.dataSelected = null\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  crearFiltros() {\n    this.filters = [\n      {\n        field: 'busqueda',\n        header: this.translateService.instant('Busqueda'),\n        matchMode: 'equals',\n      }]\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = String(this.dataSelected.centroCosto);\n    if(this.mostrarZonaLabel){\n      this.label = String(this.dataSelected.centroCosto.trim() + \" - \" + this.dataSelected.descripcion + '/' +\n      this.dataSelected.zonaEconomica.trim() + ' - ' + this.dataSelected.descripcionZona);\n    }else{\n      this.label = String(this.dataSelected.centroCosto.trim() + \" - \" + this.dataSelected.descripcion);\n    }\n\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n    this.booleano = false;    \n  }\n\n  async loadData(event) {\n    \n\n    let objetoFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      empresa : this.cargaempresa ? this.cargaempresa :  this.authService.getTokenKey('numeroEmpresa'), \n      estado: Constantes.CONSTANTE_SI,\n      comodin: event.filters.busqueda?.value ? '%' + event.filters.busqueda?.value + '%' : null\n    };\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'CentroCostoDTO',\n      seguridad: false,\n      objeto: objetoFiltro\n    }).subscribe((data) => {\n      this.listaZonaCentro = data;\n      this.generalService.cantidadRegistros({\n        nombreConsulta: null,\n        nombreDTO: 'CentroCostoDTO',\n        seguridad: false,\n        objeto: objetoFiltro\n      }).subscribe((data) => {\n        this.paginator.totalRecords = data;\n      });\n    });\n\n  };\n\n  ocultar() {\n    this.showDialog = false;\n    this.filtroGeneral.panel.hide();\n  }\n\n}\n","<div #field [class]=\"booleano ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n    <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\n      class=\"p-button-icon-only clear unico\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n    <label>{{labelIntput}} </label>\n  </span>\n</div>\n\n<div>\n  <p-dialog header=\"{{labelHeader || labelIntput | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" (onShow)=\"openDataTable()\"\n    [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\" appendTo=\"body\" (onHide)=\"ocultar()\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general #filtroGeneral (onHide)=\"showDialog\" [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" id=\"busqueda\" formControlName=\"busqueda\" autocomplete=\"off\" />\n                <label for=\"busqueda\">{{'busqueda' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral dataKey=\"centroCosto\" [value]=\"listaZonaCentro\" selectionMode=\"single\"\n      responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n      [paginator]=\"paginator.totalRecords > paginator.rows\" [showCurrentPageReport]=\"true\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [(selection)]=\"dataSelected\"\n      (onRowSelect)=\"onRowSelect()\" [lazy]=\"true\" (onLazyLoad)=\"loadData($event)\">\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      <ng-template pTemplate=\"header\">\n        <tr>\n          <th style=\"width: 10%;\">{{\"codigo\" | translate}}</th>\n          <th style=\"width: 30%;\">{{\"zonaeconomica\" | translate}}</th>\n          <th style=\"width: 10%;\">{{\"codigo\" | translate}}</th>\n          <th style=\"width: 50%;\">{{\"centrocosto\" | translate}}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-centrocosto>\n        <tr [pSelectableRow]=\"centrocosto\">\n          <td style=\"width: 10%;\">{{centrocosto.zonaEconomica}}</td>\n          <td style=\"width: 30%;\">{{centrocosto.descripcionZona}}</td>\n          <td style=\"width: 10%;\">{{centrocosto.centroCosto}}</td>\n          <td style=\"width: 50%;\">{{centrocosto.descripcion}}</td>\n        </tr>\n      </ng-template>\n    </p-table>\n  </p-dialog>\n</div>","import { UnionModel } from 'general-library-union'\nimport { AusenciaDatoModel } from './AusenciaDatoModel';\n\nexport class AusenciaModel extends UnionModel {\n\n\t\n\tempresa: number;\n\tcontrato: number;\n\tsalida: Date;\n\tsalidaNomina: Date;\n\ttermina: Date;\n\tregreso: Date;\n\tregresoNomina: Date;\n\tdias: number;\n\tinterrupcion: number;\n\ttipo: string;\n\ttipoAusencia: string;\n\torigen: Date;\n\tinicial: Date;\n\tfechaFinal: Date;\n\tvalor: number;\n\treconocido: number;\n\tvalor2: number;\n\thoras: number;\n\tformaPago: string;\n\tpago: Date;\n\tperiodo: string;\n\tperiodoCausacion: string;\n\tprorroga: string;\n\tantecesor: Date;\n\tentidad: string;\n\tobservacion: string;\n\tsalidaPrincipal: Date;\n\tdescripcionTipoAusencia: string;\n\tdescripcionClienteTipo: string;\n\tdiasAcumula: number;\n\ttipoPuestoTra: string;\n\tdiagnostico: string;\n\ttipoPeriodo: number;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tlineaCosto: string;\n\tcargo: string;\n\torigenAusencia: string;\n\tactoAusencia: string;\n\tunidad: string;\n\tnombreCompleto: string;\n\tnombreZona: string;\n\tnombreCentro: string;\n\ttipoInterrumpe: string;\n\tcomodin: string;\n\tcomodinHoja: number;\n\tlistaAusencia: AusenciaDatoModel[];\n\tdocumento: string;\n\tcodigoAusencia: number;\n\tfechaInterrupcion: Date;\n\taplicacion: Date;\n\thoraSalida: Date;\n\thoraRegresa: Date;\n\tcadena1: string;\n\tcadena2: string;\n\tcadena3: string;\n\tvalor3: number;\n\tvalor4: number;\n\tperiodoServicio: string;\n\tetapa: string;\n\tcerradas: number;\n\tdescripcionEstado: string;\n\tcedula: number;\n\tusuario: string;\n\tdescripcionTipoPeriodo: string;\n\testado: string;\n\tcomprobante: string;\n\tfechaActual: Date;\n\tfechaAccidente: Date;\n\tfiltroFecha: Date;\n\tloginUsuario: string;\n\tanticipoNomina: Date;\n\tsaludOcupacional: string;\n\tinvestigacionLlave: string;\n\texiteEnInvestigacion: Boolean;\n\tproceso: string;\n\tmensaje: string;\n\tfecha1: Date;\n\tfecha2: Date;\n\thora1: Date;\n\thora2: Date;\n\tarea1: string;\n\tsoporteAusencia: string;\n\taliasRol: string;\n\tempresaTraslado: number;\n\tvinculaTraslado: number;\n\tsueldoTraslado: number;\n\tcontratoTraslado: number;\n\torigenTabla: string;\n\tfiltroFechaInicial: Date;\n\tfiltroFechaFinal: Date;\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class EntidadModel extends UnionModel {\n\n\n\tllave: string;\n\tdescripcion: string;\n\tnit: number;\n\tdireccion: string;\n\ttelefono: string;\n\tfax: string;\n\trepresentante: string;\n\tobservaciones: string;\n\tdigito: number;\n\ttipoPresenta: string;\n\tnumero: number;\n\tsucursalReferencia: string;\n\tunico: string;\n\testado: string;\n\tparametroBusqueda: string;\n\ttipo: string;\n\tmodo: string;\n\tfiltroTipoServicio: string;\n\talterno: string;\n\ttipoServicio: string;\n\tdescripcionTipoServicio: string;\n\tsucursal: number;\n\tnombreSucursal: string;\n\tliquidacion: string;\n\n\t//DATOS NO PERSISTENTES\t\t\n\tdescripcionPopup: string;\n\tvalorPopup: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class IncapacidadRecuperaModel extends UnionModel {\n\n\tausencia: String;\n\ttipo: String;\n\tpago: Date;\n\tautorizacion: number;\n\tvalor: number;\n\tentidad: String;\n\tzonaEconomica: String;\n\tcentroCosto: String;\n\ttipoPeriodo: number;\n\tlineaCosto: String;\n\tempresa: number;\n\testado: String;\n\tsucursal: number;\n\tvalorEps: number;\n\tvalorFp: number;\n\tdescripcionEntidad: String;\n\tsnombre: String;\n\tdocumento: String;\n\thojavida: number;\n\tidentifica: number;\n\tsalida: Date;\n\tetapaRecupera: String;\n\treconocida: String;\n\tfechaProceso: Date;\n\tdescripciontia: String;\n\tllavetia: String;\n\tdescripcionEstado: String;\n\tdescripcionEtapa: String;\n\tcodigoEtapaRecupera: String;\n\tobservacionNoRecono: String;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class CodigoBaseTiempoModel extends UnionModel {\n\n\ttipo: string;\n\tcodigo: string;\n\tdescripcion: string;\n\tparametroBusqueda: string;\n\tcomodinDescripcion: string;\n\tcomodinCodigo: string;\n\tmodoParametro: string;\n\tdescripcionModo: string;\n\ttemporal: string;\n\testado: string;\n\tcorte: Date;\n\tresponsable: number;\n\tnombreResponsable: string;\n\tcolor: string;\n\tporSitio: string;\n\t\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { DatosBasicosEmpresaModel } from '../../../modules/compensacion/models/DatosBasicosEmpresaModel';\nimport { EmpleadoModel } from '../../../modules/compensacion/models/EmpleadoModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-input-helper-empleado',\n    templateUrl: './input-helper-empleado.component.html',\n    styleUrls: ['./input-helper-empleado.component.scss'],\n    standalone: true,\n    imports: [DialogModule, NgIf, FormsModule, ReactiveFormsModule, InputTextModule, CheckboxModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DatePipe, TranslateModule, FiltroGeneralComponent]\n})\n\nexport class InputHelperEmpleadoComponent {\n\n  @Input()\n  mostrar: boolean;\n  @Output()\n  regresar = new EventEmitter();\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  listadoEmpleado: EmpleadoModel[];\n  estaticos: boolean;\n  cedulaConsultaContratosAnteriores: number;\n  filtroBean: EmpleadoModel = new EmpleadoModel();\n  estado: boolean;\n  datosBasicoEmpresa: DatosBasicosEmpresaModel;\n  activos: boolean;\n  soloActivos: string;\n  verEmpresa: boolean;\n  mostrarSeleccionFiltro: boolean = true;\n\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService,\n    private toastService: ToastService) { }\n\n  public ocultar() {\n    this.regresar.emit();\n    this.mostrar = false;\n  }\n\n  async ngOnInit() {\n\n    this.filters = [\n      {\n        field: 'nombreCompleto',\n        header: this.translateService.instant('nombrefuncionario'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('identificacion') + ' / ' + this.translateService.instant('contrato'),\n        matchMode: 'contains',\n      }\n      ,\n      {\n        field: 'estadoLaboral',\n        header: this.translateService.instant('estadoLaboral'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n  async cargarDatosEmpresa() {\n\n    this.datosBasicoEmpresa = new DatosBasicosEmpresaModel();\n    this.datosBasicoEmpresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    let objeto2 = new GeneralModel('DatosBasicosEmpresaDTO', 'DatosBasicosEmpresa.consultarDatosBasicosEmpresa', false, this.datosBasicoEmpresa);\n    this.datosBasicoEmpresa = await this.generalService.queryForObject(objeto2).toPromise();\n\n    if (this.datosBasicoEmpresa == null) {\n      this.toastService.showError('La empresa no se encuentra correctamente parametrizada');\n    }\n\n  }\n\n  async cargarLista(event) {\n\n    this.activos = true;\n\n    let filtroDocumento: string = event.filters?.documento?.value;\n    let filtroNombreCompleto: string = event.filters?.nombreCompleto?.value;\n\n    if (filtroDocumento == undefined && filtroNombreCompleto == undefined && this.mostrarSeleccionFiltro) {\n      this.listadoEmpleado = [];\n      this.paginator.totalRecords = 0;\n      return;\n    }\n    await this.cargarDatosEmpresa();\n    if (!this.estaticos) {\n      if (this.mostrarSeleccionFiltro) {\n        await this.colocarFiltro();\n      }\n      this.filtroBean.paginacionRegistroFinal = event.rows;\n      this.filtroBean.paginacionRegistroInicial = event.first;\n      this.filtroBean.comodinBuscarNumero = parseInt(event.filters?.documento?.value ? event.filters?.documento?.value : null);\n      this.filtroBean.comodinBuscarDocumento = event.filters?.documento?.value ? event.filters?.documento?.value : null;\n      this.filtroBean.comodinBuscarNombre = event.filters?.nombreCompleto?.value ? '%' + event.filters?.nombreCompleto?.value + '%' : null;\n      let general = new GeneralModel('EmpleadoDTO', null, false, this.filtroBean);\n      this.generalService.queryForList(general).subscribe((data) => {\n        this.listadoEmpleado = data;\n        this.listadoEmpleado.forEach(item => {\n          item.nombreCompleto = (item.primerApellido ? item.primerApellido : '') + ' ' + (item.segundoApellido ? item.segundoApellido : '') + ' ' + item.nombres;\n        });\n        this.generalService.cantidadRegistros(general).subscribe((data) => {\n          this.paginator.totalRecords = data;\n        });\n\n      });\n    } else {\n      console.log('ingreso else');\n\n      //** Pendiente por revisar con Tarea y funcionalidad    */\n    }\n\n\n\n  }\n\n  colocarFiltro() {\n    this.verEmpresa = true;\n    this.filtroBean = new EmpleadoModel();\n    //pendiente campo getFiltroCondicionDerecho()\n    if (this.cedulaConsultaContratosAnteriores != null) {\n      /*\n        Pendiente por revisar con Tarea y funcionalidad     \n      */\n    } else {\n      if (this.estado) {\n        /*\n          Pendiente por revisar con tarea y funcionalidad   \n        */\n      }\n\n      if (this.datosBasicoEmpresa.tipoFiltro! = null) {\n        this.filtroBean.filtroZonaComodin = this.tipoFiltro(this.datosBasicoEmpresa.tipoFiltro, 'ZO');\n        this.filtroBean.filtroUnidadComodin = this.tipoFiltro(this.datosBasicoEmpresa.tipoFiltro, 'UN');\n      } else {\n        this.filtroBean.filtroZonaComodin = null;\n        this.filtroBean.filtroUnidadComodin = null;\n      }\n\n      if (this.authService.getTokenKey('numeroEmpresa') != null) {\n        this.verEmpresa = false;\n        this.filtroBean.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        this.filtroBean.usuarioRol = this.authService.getTokenKey('aliasRol');\n        this.filtroBean.usuarioLogin = this.authService.getTokenKey('usuario');\n      }\n\n      if (this.activos) {\n        this.filtroBean.soloActivos = 'L';\n      }\n      else {\n        this.filtroBean.soloActivos = this.soloActivos;\n      }\n\n    }\n\n  }\n\n  tipoFiltro(tipoFiltro: String, constanteFiltro: String): string {\n    let tiposFiltros = [];\n    tiposFiltros = tipoFiltro.split(',');\n    for (const filtro of tiposFiltros) {\n      if (filtro.trim() == constanteFiltro) {\n        return 'S';\n      }\n    }\n    return null\n  }\n\n  buscar() {\n    this.buscarEmpleadoDinamicos(null);\n  }\n\n  buscarEmpleadoDinamicos(soloActivos: string) {\n    this.soloActivos = soloActivos;\n    this.estaticos = false;\n  }\n\n  onRowSelect(event) {\n    let empleadoSeleccionado = event.data;\n    this.onSelected.emit(empleadoSeleccionado);\n    this.mostrar = false;\n  }\n\n  async buscarCedula(cedula: number) {\n    try {\n      this.mostrar = true;\n      this.mostrarSeleccionFiltro = false;\n      this.verEmpresa = false;\n      this.estado = false;\n      this.estaticos = false;\n      this.filtroBean = new EmpleadoModel();\n      this.filtroBean.cedula = cedula;\n      this.filtroBean.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      await this.cargarLista({ first: 0, rows: 10 })\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  async buscarSegunLista(empleado: EmpleadoModel[]) {\n    try {\n      this.mostrar = true;\n      this.mostrarSeleccionFiltro = false;\n      this.verEmpresa = false;\n      this.estado = false;\n      this.estaticos = false;\n      this.listadoEmpleado = empleado.slice(0, empleado.length);\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n}\n","<p-dialog #dialog id='popupEmpleado' header=\"{{'filtroempleado' | translate}}\" [(visible)]=\"mostrar\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '60vw'}\">\n    <!-- [contentStyle]=\"{width: '900px', 'overflow-y': 'scroll'}\" -->\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\" >\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\" *ngIf=\"mostrarSeleccionFiltro\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_nombre\" formControlName=\"nombreCompleto\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_nombre\">{{'nombre' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_identifica\" formControlName=\"documento\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_identifica\">{{'identificacion' | translate}} / {{'contrato' |\n                                translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"\">\n                            <p-checkbox formControlName=\"estadoLaboral\" value=\"Activo\"></p-checkbox>\n                            <label for=\"id_identifica\"> {{'activo' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"listadoEmpleado\" selectionMode=\"single\" [scrollable]=\"true\" [tableStyle]=\"{ 'min-width': '50rem' }\"\n        responsiveLayout=\"scroll\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" \n        [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last}    de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\" [lazy]=\"true\"\n        (onLazyLoad)=\"cargarLista($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 10%;\">{{ \"identificacion\" | translate }}</th>\n                <th style=\"width: 10%;\">{{ \"contrato\" | translate }}</th>\n                <th style=\"width: 30%;\">{{ \"nombrefuncionario\" | translate }}</th>\n                <th style=\"width: 17%;\">{{ \"estadolaboral\" | translate }}</th>\n                <th style=\"width: 20%;\">{{ \"fechaingreso\" | translate }}</th>\n                <th style=\"width: 20%;\" *ngIf=\"(!activos) && soloActivos != 'ActivioDeterminados'\">{{ \"fechaRetiro\" | translate }}</th>\n                <th style=\"width: 20%;\" *ngIf=\"soloActivos == 'ActivoDeterminados'\">{{ \"fechaTermina\" | translate }}</th>\n                <th style=\"width: 10%;\">{{ \"vinculacion\" | translate }}</th>\n                <th style=\"width: 20%;\"*ngIf=\"verEmpresa\">{{ \"empresa\" | translate }}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-empleado>\n            <tr [pSelectableRow]=\"empleado\">\n                <td style=\"width: 10%;\">{{empleado.documento}}</td>\n                <td style=\"width: 10%;\">{{empleado.contrato}}</td>\n                <td style=\"width: 30%;\">{{empleado.nombreCompleto}}</td>\n                <td style=\"width: 17%;\">{{empleado.estadoLaboralNombre}}</td>\n                <td style=\"width: 20%;\">{{empleado.fechaIngreso | date: ('formatofecha' | translate)}}</td>\n                <td style=\"width: 20%;\" *ngIf=\"(!activos) && soloActivos != 'ActivoDeterminados'\">{{empleado.fechaRetiro}}</td>\n                <td style=\"width: 20%;\" *ngIf=\"soloActivos == 'ActivoDeterminados'\">{{empleado.fechaTermina}}</td>\n                <td style=\"width: 10%;\">{{empleado.vinculacion}}</td>\n                <td style=\"width: 20%;\" *ngIf=\"verEmpresa\">{{empleado.empresa}}</td>\n            </tr>\n        \n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'seguridadSocialPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SeguridadSocialPipe implements PipeTransform {\n\n    PLANTILLAEMPLEADOEMPRESA = \"E\";\n    PLANTILLAEMPLEADOADICIONALES = \"A\";\n    PLANILLAMORA = \"M\";\n    PLANILLACORRECION = \"N\";\n\n    DESPLANTILLAEMPLEADOEMPRESA = \"Planilla Empleados Empresa\";\n    DESPLANTILLAEMPLEADOADICIONALES = \"Planilla Empleados Adicionales\";\n    DESPLANILLAMORA = \"Planilla mora\";\n    DESPLANILLACORRECION = \"Planilla Correccion\";\n\n    enero = 1;\n    febreo = 2;\n    marzo = 3;\n    abril = 4;\n    mayo = 5;\n    junio = 6;\n    julio = 7;\n    agosto = 8;\n    septiembre = 9;\n    octubre = 10;\n    noviembre = 11;\n    diciembre = 12;\n    mestrece = 13;\n\n    desenero = \"Enero\";\n    desfebreo = \"Febrero\";\n    desmarzo = \"Marzo\";\n    desabril = \"Abril\";\n    desmayo = \"Mayo\";\n    desjunio = \"Junio\";\n    desjulio = \"Julio\";\n    desagosto = \"Agosto\";\n    desseptiembre = \"Septiembre\";\n    desoctubre = \"Octubre\";\n    desnoviembre = \"Noviembre\";\n    desdiciembre = \"Diciembre\";\n    desmestrece = \"MES TRECE\";\n\n    MATERNIDAD = \"M\";\n    INCAPACIDAD = \"I\";\n    RIESGOPROFESIONAL = \"R\";\n\n    DESMATERNIDAD = \"MATERNIDAD\";\n    DESINCAPACIDAD = \"INCAPACIDAD\";\n    DESRIESGOPROFESIONAL = \"RIESGO PROFESIONAL\";\n\n    INCLUIDA = \"L\";\n    NOINCLUIDA = \"N\";\n    CHEQUE = \"C\";\n    NORECONOCIDA = \"X\";\n    AUTOLIQUIDACION = \"D\";\n\n    DESINCLUIDA = \"INCLUIDA\";\n    DESNOINCLUIDA = \"NO INCLUIDA\";\n    DESCHEQUE = \"CHEQUE\";\n    DESNORECONOCIDA = \"NO RECONOCIDA\";\n    DESAUTOLIQUIDACION = \"AUTOLIQUIDACION\";\n\n    MAPAPLANILLA = [\n        { codigo: this.PLANTILLAEMPLEADOEMPRESA, nombre: this.DESPLANTILLAEMPLEADOEMPRESA },\n        { codigo: this.PLANTILLAEMPLEADOADICIONALES, nombre: this.DESPLANTILLAEMPLEADOADICIONALES },\n        { codigo: this.PLANILLAMORA, nombre: this.DESPLANILLAMORA },\n        { codigo: this.PLANILLACORRECION, nombre: this.DESPLANILLACORRECION }\n    ]\n\n    MAPAPLANILLAPENSIONADO = [\n        { codigo: this.PLANTILLAEMPLEADOEMPRESA, nombre: this.DESPLANTILLAEMPLEADOEMPRESA },\n        { codigo: this.PLANILLACORRECION, nombre: this.DESPLANILLACORRECION },\n    ]\n\n\n    MAPAMESES = [\n        { codigo: this.enero, nombre: this.desenero },\n        { codigo: this.febreo, nombre: this.desfebreo },\n        { codigo: this.marzo, nombre: this.desmarzo },\n        { codigo: this.abril, nombre: this.desabril },\n        { codigo: this.mayo, nombre: this.desmayo },\n        { codigo: this.junio, nombre: this.desjunio },\n        { codigo: this.julio, nombre: this.desjulio },\n        { codigo: this.agosto, nombre: this.desagosto },\n        { codigo: this.septiembre, nombre: this.desseptiembre },\n        { codigo: this.octubre, nombre: this.desoctubre },\n        { codigo: this.noviembre, nombre: this.desnoviembre },\n        { codigo: this.diciembre, nombre: this.desdiciembre },\n    ]\n\n    TIPO = [\n        { codigo: this.MATERNIDAD, nombre: this.DESMATERNIDAD },\n        { codigo: this.INCAPACIDAD, nombre: this.DESINCAPACIDAD },\n        { codigo: this.RIESGOPROFESIONAL, nombre: this.DESRIESGOPROFESIONAL },\n    ]\n\n    ESTADO = [\n        { codigo: this.INCLUIDA, nombre: this.DESINCLUIDA },\n        { codigo: this.NOINCLUIDA, nombre: this.DESNOINCLUIDA },\n        { codigo: this.CHEQUE, nombre: this.DESCHEQUE },\n        { codigo: this.NORECONOCIDA, nombre: this.DESNORECONOCIDA },\n    ]\n\n    ESTADOGENEREAL = [\n        { codigo: this.NOINCLUIDA, nombre: this.DESNOINCLUIDA },\n        { codigo: this.CHEQUE, nombre: this.DESCHEQUE },\n        { codigo: this.AUTOLIQUIDACION, nombre: this.DESAUTOLIQUIDACION },\n    ]\n\n    ESTADOGENERALSINAUTOLIQ = [\n        { codigo: this.NOINCLUIDA, nombre: this.DESNOINCLUIDA },\n        { codigo: this.CHEQUE, nombre: this.DESCHEQUE },\n    ]\n\n\n    transform(value: any, ...args: any[]): any {\n        let result = value;\n        if (args[0] == 'listaTipo') { this.TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\tif (args[0] == 'listaEstado') { this.ESTADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'mapaMeses') { this.MAPAMESES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'mapaPlantilla') { this.MAPAPLANILLA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n\n\n\n}","import { DatePipe, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { AusenciaModel } from '../../../modules/compensacion/models/AusenciaModel';\nimport { EmpleadoModel } from '../../../modules/compensacion/models/EmpleadoModel';\nimport { EntidadModel } from '../../../modules/compensacion/models/EntidadModel';\nimport { IncapacidadRecuperaModel } from '../../../modules/compensacion/models/IncapacidadRecuperaModel';\nimport { SeguridadSocialModel } from '../../../modules/compensacion/models/SeguridadSocialModel';\nimport { SeguridadSocialPipe } from '../../../modules/compensacion/pipes/seguridad-social.pipe';\nimport { CodigoBaseTiempoModel } from '../../../modules/controltiempos/models/CodigoBaseTiempoModel';\nimport { InputHelperEmpleadoComponent } from '../input-helper-empleado/input-helper-empleado.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\n\n@Component({\n  selector: 'app-input-helper-incapacidad-recupera',\n  templateUrl: './input-helper-incapacidad-recupera.component.html',\n  styleUrls: ['./input-helper-incapacidad-recupera.component.scss'],\n  standalone: true,\n  providers: [DatePipe],\n  imports: [ConfirmPopupModule,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    NgIf,\n    InputTextModule,\n    ButtonDirective,\n    Ripple,\n    DropdownModule,\n    CalendarModule,\n    InputNumberModule,\n    InputTextareaModule,\n    InputHelperEmpleadoComponent,\n    TranslateModule,\n    ConfirmDialogModule,]\n})\nexport class InputHelperIncapacidadRecuperaComponent implements OnInit {\n\n  @ViewChild(InputHelperEmpleadoComponent) popUpEmpleado: InputHelperEmpleadoComponent;\n\n  @Input()\n  mostrar: boolean;\n  @Input()\n  recuperacionSeleccionada: IncapacidadRecuperaModel;\n  @Input()\n  isNewIncapacidad: boolean;\n  @Input()\n  llaveAusencia: string;\n  @Input()\n  seguridadSeleccionada: SeguridadSocialModel;\n  @Input()\n  empleado: EmpleadoModel;\n  @Output()\n  regresar = new EventEmitter();\n  @Output()\n  regresarAccion = new EventEmitter();\n\n  formRecuperarIncapacidad: FormGroup;\n  mostrarDatos: boolean;\n  datosTramite: boolean;\n  datosNoReconocida: boolean;\n  estado: boolean;\n  incapacidad: boolean=true;\n  fase1: boolean;\n  listaEtapaRecuperacion;\n  listaLibroAusencia;\n  listaEntidad;\n  isPopupEmpleado: boolean = false;\n  mostrarFuncionalidad = false;\n  isMostrarRetirado = false;\n\n  constructor(private formBuilder: FormBuilder, private authService: AuthService, private generalService: GeneralService,\n    public seguridadSocialPipe: SeguridadSocialPipe, private toastService: ToastService, private confirmationService: ConfirmationService,\n    private datePipe: DatePipe, private controlFuncionalidad: CargarControlFuncionalidadService, private generalPipe: GeneralPipe, private utilService: UtilsService) { }\n\n  ngOnInit(): void {\n\n    this.mostrarFuncionalidad = this.validarControlFuncionalidad('recinc:mantenimiento');\n    this.isMostrarRetirado = this.validarControlFuncionalidad('incsol:empRetirado');\n\n    if (this.isNewIncapacidad) {\n      this.recuperacionSeleccionada = new IncapacidadRecuperaModel();\n    }\n\n    this.cargarFormulario();\n    this.cargarDatosIniciales();\n  }\n\n  mostrarPopup() {\n    this.mostrar = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  ocultar() {\n    this.regresar.emit();\n    this.mostrar = false;\n  }\n\n  cargarFormulario() {\n    this.formRecuperarIncapacidad = this.formBuilder.group({\n      llaveTabla: new FormControl(this.recuperacionSeleccionada.llaveTabla),\n      snombre: new FormControl(this.recuperacionSeleccionada.snombre),\n      documento: new FormControl(this.recuperacionSeleccionada.documento),\n      identifica: new FormControl(this.recuperacionSeleccionada.identifica),\n      ausencia: new FormControl(this.recuperacionSeleccionada.ausencia),\n      //etapaRecupera: new FormControl(this.recuperacionSeleccionada.etapaRecupera),\n      etapaRecupera: [{ value: this.recuperacionSeleccionada.etapaRecupera, disabled: !this.isNewIncapacidad }],\n      tipo: new FormControl(this.recuperacionSeleccionada.tipo),\n      entidad: new FormControl(this.recuperacionSeleccionada.entidad),\n      fechaProceso: new FormControl(new Date(this.recuperacionSeleccionada.fechaProceso)),\n      autorizacion: new FormControl(this.recuperacionSeleccionada.autorizacion),\n      valor: new FormControl(this.recuperacionSeleccionada.valor),\n      pago: new FormControl(new Date(this.recuperacionSeleccionada.pago)),\n      estado: new FormControl(this.recuperacionSeleccionada.estado),\n      valorEps: new FormControl(this.recuperacionSeleccionada.valorEps),\n      valorFp: new FormControl(this.recuperacionSeleccionada.valorFp),\n      reconocida: new FormControl(this.recuperacionSeleccionada.reconocida),\n      observacionNoRecono: new FormControl(this.recuperacionSeleccionada.observacionNoRecono),\n      hojavida: new FormControl(this.recuperacionSeleccionada.hojavida),\n      empresa: new FormControl(this.recuperacionSeleccionada.empresa),\n      descripcionEstado: new FormControl(this.recuperacionSeleccionada.descripcionEstado),\n      fechaAdicionado: new FormControl(new Date(this.recuperacionSeleccionada.fechaAdicionado)),\n      salida: new FormControl(new Date(this.recuperacionSeleccionada.salida)),\n      zonaEconomica: new FormControl(this.recuperacionSeleccionada.zonaEconomica),\n      centroCosto: new FormControl(this.recuperacionSeleccionada.centroCosto),\n      tipoPeriodo: new FormControl(this.recuperacionSeleccionada.tipoPeriodo),\n      lineaCosto: new FormControl(this.recuperacionSeleccionada.lineaCosto),\n      controlSeguimiento: new FormControl(this.recuperacionSeleccionada.controlSeguimiento),\n      modificado: new FormControl(this.recuperacionSeleccionada.modificado),\n      fechaModificado: new FormControl(new Date(this.recuperacionSeleccionada.fechaModificado)),\n    });\n  }\n\n  async cargarDatosIniciales() {\n    if (this.recuperacionSeleccionada.llaveTabla == null) {\n\n      this.recuperacionSeleccionada.ausencia = this.llaveAusencia;\n      this.estado = false;\n      this.fase1 = false;\n      this.recuperacionSeleccionada.fechaProceso = null;\n      this.recuperacionSeleccionada.pago = null;\n    } else {\n      this.recuperacionSeleccionada.fechaProceso = this.recuperacionSeleccionada.fechaProceso ? new Date(this.recuperacionSeleccionada.fechaProceso) : null;\n      this.recuperacionSeleccionada.pago = new Date(this.recuperacionSeleccionada.pago);\n      this.recuperacionSeleccionada.salida = new Date(this.recuperacionSeleccionada.salida);\n      this.recuperacionSeleccionada.fechaAdicionado = new Date(this.recuperacionSeleccionada.fechaAdicionado);\n      this.recuperacionSeleccionada.fechaModificado = new Date(this.recuperacionSeleccionada.fechaModificado);\n      //await this.cargarDatos(this.recuperacionSeleccionada.etapaRecupera);\n      await this.validaciones(this.recuperacionSeleccionada.etapaRecupera);\n\n      this.fase1 = true;\n    }\n    if (this.empleado.contrato != null) {\n      this.recuperacionSeleccionada.snombre = (this.empleado.primerApellido ? this.empleado.primerApellido : '') + ' ' + (this.empleado.segundoApellido ? this.empleado.segundoApellido : '') + ' ' + this.empleado.nombres;;\n      this.recuperacionSeleccionada.hojavida = this.empleado.cedula;\n      this.recuperacionSeleccionada.identifica = this.empleado.contrato;\n      this.fase1 = true;\n    }\n\n    this.recuperacionSeleccionada.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n    if (this.llaveAusencia != null && this.isNewIncapacidad) {\n      let novedad: AusenciaModel = new AusenciaModel();\n      novedad.llaveTabla = this.llaveAusencia;\n      let objetoFiltro: GeneralModel = new GeneralModel('AusenciaDTO', null, false, novedad);\n      novedad = await this.generalService.queryForObject(objetoFiltro).toPromise();\n\n      if (novedad != null) {\n        this.recuperacionSeleccionada.entidad = novedad.entidad;\n      }\n      this.incapacidad = true;\n    } else {\n      this.incapacidad = false;\n    }\n    this.formRecuperarIncapacidad.patchValue(this.recuperacionSeleccionada);\n\n    await this.cargarListas();\n    await this.llenarSelectItemLibroausencia(this.recuperacionSeleccionada);\n    await this.llenarSelectItementidades();\n\n  }\n\n  async cargarDatos(llaveEtapa: String) {\n\n    if (llaveEtapa == null) {\n      return;\n    }\n\n    this.datosNoReconocida = false;\n    this.datosTramite = false;\n    this.mostrarDatos = true;\n\n    let etapaRecupera: CodigoBaseTiempoModel = new CodigoBaseTiempoModel();\n    etapaRecupera.llaveTabla = String(llaveEtapa);\n    etapaRecupera.tipo = 'INCRE'\n    let objetoFiltro: GeneralModel = new GeneralModel('CodigoBaseTiempoDTO', null, false, etapaRecupera);\n    etapaRecupera = await this.generalService.queryForObject(objetoFiltro).toPromise();\n    this.formRecuperarIncapacidad.get('documento').setValue(this.empleado.documento);\n    if (etapaRecupera.temporal == 'T' || etapaRecupera.temporal == 'S' || etapaRecupera.temporal == 'L') {\n      this.datosTramite = true;\n      this.formRecuperarIncapacidad.get('estado').setValue(etapaRecupera.temporal);\n      this.formRecuperarIncapacidad.get('reconocida').setValue(etapaRecupera.temporal);\n      this.formRecuperarIncapacidad.get('autorizacion').setValue(0);\n      this.formRecuperarIncapacidad.get('valor').setValue(0);\n      this.formRecuperarIncapacidad.get('observacionNoRecono').setValue('.');\n      if (etapaRecupera.temporal == 'T') {\n        this.formRecuperarIncapacidad.get('tipo').setValue('.');\n      }\n    } else if (etapaRecupera.temporal == 'R') {\n      this.formRecuperarIncapacidad.get('reconocida').setValue('R');\n      this.formRecuperarIncapacidad.get('observacionNoRecono').setValue('.');\n    } else if (etapaRecupera.temporal == 'N') {\n      this.datosNoReconocida = true;\n      this.formRecuperarIncapacidad.get('estado').setValue('X');\n      this.formRecuperarIncapacidad.get('reconocida').setValue('N');\n      this.formRecuperarIncapacidad.get('autorizacion').setValue(0);\n    }\n\n  }\n\n  async cargarListas() {\n\n    let filtroEtapa = new CodigoBaseTiempoModel();\n    filtroEtapa.tipo = 'INCRE';\n    filtroEtapa.estado = 'S';\n    let objetoFiltroPeriodo: GeneralModel = new GeneralModel('CodigoBaseTiempoDTO', null, false, filtroEtapa);\n    const listaEtapa = await this.generalService.queryForList(objetoFiltroPeriodo).toPromise();\n\n    if (listaEtapa != null) {\n\n      let mapa: Map<string, string> = new Map<string, string>();\n      listaEtapa.forEach((item) => {\n        mapa.set(item.llaveTabla, item.descripcion);\n      });\n      this.listaEtapaRecuperacion = Array.from(mapa, ([key, label]) => ({ key, label }));\n    }\n  }\n\n  async llenarSelectItemLibroausencia(incapacidad: IncapacidadRecuperaModel) {\n\n    incapacidad.fechaProceso = new Date(incapacidad.fechaProceso);\n    incapacidad.pago = new Date(incapacidad.pago);\n    incapacidad.salida = new Date(incapacidad.salida);\n    incapacidad.fechaAdicionado = new Date(incapacidad.fechaAdicionado);\n    let objetoFiltroPeriodo: GeneralModel = new GeneralModel('IncapacidadRecuperaDTO', 'IncapacidadRecupera.listaAusencia', false, incapacidad);\n    const lista = await this.generalService.queryForList(objetoFiltroPeriodo).toPromise();\n\n    if (lista != null) {\n\n      let mapa: Map<string, string> = new Map<string, string>();\n      lista.forEach((item) => {\n        mapa.set(item.llavetia, this.datePipe.transform(new Date(item.salida), 'yyyy-MM-dd') + '-' + item.descripciontia);\n\n      });\n      this.listaLibroAusencia = Array.from(mapa, ([key, label]) => ({ key, label }));\n    }\n  }\n\n  async llenarSelectItementidades() {\n    let objetoFiltroPeriodo: GeneralModel = new GeneralModel('EntidadDTO', 'Entidad.listaEntidadesIncapacidad', false, new EntidadModel());\n    const lista = await this.generalService.queryForList(objetoFiltroPeriodo).toPromise();\n\n    if (lista != null) {\n\n      let mapa: Map<string, string> = new Map<string, string>();\n      lista.forEach((item) => {\n        mapa.set(item.llave, item.descripcion);\n      });\n      this.listaEntidad = Array.from(mapa, ([key, label]) => ({ key, label }));\n    }\n  }\n\n  isMostrarDatosGeneral(): boolean {\n    return this.mostrarDatos && !this.datosTramite;\n  }\n\n  async onChange(evento) {\n\n    this.formRecuperarIncapacidad.get('tipo').setValue(null);\n    this.formRecuperarIncapacidad.get('autorizacion').setValue(null);\n    this.formRecuperarIncapacidad.get('valor').setValue(null);\n    this.formRecuperarIncapacidad.get('estado').setValue(null);\n\n    this.formRecuperarIncapacidad.get('estado').setValue(null);\n    this.formRecuperarIncapacidad.get('reconocida').setValue(null);\n\n    await this.validaciones(evento.value);\n  }\n\n  async validaciones(evento){\n\n     //Limpiar validaciones\n     this.formRecuperarIncapacidad.get('ausencia')?.clearValidators();\n     this.formRecuperarIncapacidad.get('entidad')?.clearValidators();\n     this.formRecuperarIncapacidad.get('tipo')?.clearValidators();\n     this.formRecuperarIncapacidad.get('autorizacion')?.clearValidators();\n     this.formRecuperarIncapacidad.get('valor')?.clearValidators();\n     this.formRecuperarIncapacidad.get('estado')?.clearValidators();\n     this.formRecuperarIncapacidad.get('pago')?.clearValidators();\n \n     await this.cargarDatos(evento);\n \n     if (this.mostrarDatos) {\n       this.formRecuperarIncapacidad.get('fechaProceso')?.setValidators([Validators.required]);\n       this.formRecuperarIncapacidad.get('entidad')?.setValidators([Validators.required]);\n     }\n \n     if (this.incapacidad && this.isMostrarDatosGeneral()) {\n       this.formRecuperarIncapacidad.get('pago')?.setValidators([Validators.required]);\n     }\n \n     if (!this.incapacidad && this.isMostrarDatosGeneral()) {\n       this.formRecuperarIncapacidad.get('ausencia')?.setValidators([Validators.required]);\n     }\n \n     if (this.isMostrarDatosGeneral()) {\n       this.formRecuperarIncapacidad.get('tipo')?.setValidators([Validators.required]);\n       this.formRecuperarIncapacidad.get('valor')?.setValidators([Validators.required]);\n     }\n \n     if (this.isMostrarDatosGeneral() && !this.datosNoReconocida) {\n       this.formRecuperarIncapacidad.get('autorizacion')?.setValidators([Validators.required]);\n       this.formRecuperarIncapacidad.get('estado')?.setValidators([Validators.required]);\n     }\n \n     Object.keys(this.formRecuperarIncapacidad.controls).forEach((key) => {\n       this.formRecuperarIncapacidad.get(key).updateValueAndValidity();\n     });\n  }\n\n  abrirPopupEmpleado() {\n    this.isPopupEmpleado = true;\n    this.popUpEmpleado.buscar();\n\n  }\n\n  regresarPopupEmpleado() {\n    this.isPopupEmpleado = false;\n  }\n\n  async cargarEmpleadoSeleccionado(evento) {\n    let empleadoSeleccionado: EmpleadoModel = evento;\n    this.empleado = evento;\n    this.isPopupEmpleado = false;\n    this.formRecuperarIncapacidad.get('documento').setValue(empleadoSeleccionado.documento);\n    this.formRecuperarIncapacidad.get('snombre').setValue(empleadoSeleccionado.nombreCompleto);\n    this.formRecuperarIncapacidad.get('identifica').setValue(empleadoSeleccionado.contrato);\n    this.formRecuperarIncapacidad.get('hojavida').setValue(empleadoSeleccionado.cedula);\n    this.formRecuperarIncapacidad.get('empresa').setValue(parseInt(this.authService.getTokenKey('numeroEmpresa')));\n    this.formRecuperarIncapacidad.get('pago').setValue(this.seguridadSeleccionada.fechaAplicacion);\n\n    if (empleadoSeleccionado.fechaRetiro != null) {\n      if (new Date(empleadoSeleccionado.fechaRetiro) < new Date(this.seguridadSeleccionada.fechaAplicacion)) {\n\n        this.confirmationService.confirm({\n          target: event.target as EventTarget,\n          message: 'Empleado con fecha de retiro inferior al mes de liquidación. ¿Desea recuperar la incapacidad?',\n          header: 'Confirmacion',\n          acceptLabel: 'Si',\n          key: 'validar_empleado',\n          accept: () => {\n            this.setRespuesta();\n          },\n          reject: () => {\n            this.regresarAccion.emit();\n            this.mostrar = false;\n          }\n        });\n        return;\n      }\n    }\n\n    this.fase1 = true;\n    await this.llenarSelectItemLibroausencia(this.formRecuperarIncapacidad.getRawValue());\n    await this.llenarSelectItementidades();\n\n  }\n\n  async setRespuesta() {\n    this.fase1 = true;\n    await this.llenarSelectItemLibroausencia(this.formRecuperarIncapacidad.getRawValue());\n    await this.llenarSelectItementidades();\n    this.formRecuperarIncapacidad.get('estado').setValue('D');\n    this.estado = true;\n    this.formRecuperarIncapacidad.get('descripcionEstado').setValue(this.seguridadSocialPipe.DESAUTOLIQUIDACION);\n  }\n\n  guardar() {\n    \n    if (this.formRecuperarIncapacidad.valid) {\n\n      const objetoFiltro = { nombreDTO: 'IncapacidadRecuperaDTO', nombreConsulta: null, seguridad: false, objeto: this.formRecuperarIncapacidad.getRawValue(), };\n\n      if (this.isNewIncapacidad) {\n\n        this.generalService.crearRegistro(objetoFiltro).subscribe({\n          next: (data) => {\n            if (data != null) {\n              this.toastService.showSuccess('Se agregó exitosamente');\n              this.isNewIncapacidad = false;\n              this.regresarAccion.emit();\n              this.mostrar = false;\n            } else {\n              this.toastService.showError('Error al ingregar Incapacidad');\n            }\n          },\n          error: (err) => {\n            this.toastService.showError('Error al ingresar en el servicio Incapacidad');\n          },\n        });\n\n      } else {\n\n        this.generalService.update(objetoFiltro).subscribe((data) => {\n          if (data == 1) {\n            this.toastService.showSuccess('Se guardó exitosamente');\n          } else {\n            this.toastService.showError('Error en el método de actualizar Entidad');\n          }\n\n          this.isNewIncapacidad = false;\n          this.regresarAccion.emit();\n          this.mostrar = false;\n        });\n\n      }\n\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formRecuperarIncapacidad.controls).forEach((key) => {\n        if (this.formRecuperarIncapacidad.get(key).errors) {\n          this.formRecuperarIncapacidad.get(key).markAsDirty();\n        }\n      });\n    }\n\n  }\n\n  eliminarRegistro() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      key: 'eliminar_general',\n      accept: () => {\n        this.setEliminar();\n      }\n    });\n  }\n\n  setEliminar() {\n    const objetoFiltro = {\n      nombreDTO: 'IncapacidadRecuperaDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: this.formRecuperarIncapacidad.getRawValue(),\n    };\n\n    this.generalService.delete(objetoFiltro).subscribe({\n      next: (data) => {\n        if (data == 1) {\n          this.toastService.showSuccess('Se eliminó exitosamente');\n          this.isNewIncapacidad = false;\n          this.regresarAccion.emit();\n          this.mostrar = false;\n        } else {\n          this.toastService.showError('Error en el método de eliminar incapacidad');\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        if (data.includes('ORA-02292')) {\n          this.toastService.showError('El regitro se utiliza en otros tareas, No es posible eliminarlo');\n        }\n      },\n    });\n  }\n\n  isEmpleadoActivo(): boolean {\n\n    let validador = false;\n\n    if (this.empleado.estadoLaboral == null || this.empleado.estadoLaboralPeriodo == null) {\n      validador = false;\n    } else {\n      if (this.empleado.estadoLaboral == this.empleado.estadoLaboralPeriodo) {\n        validador = true;\n      }\n    }\n    return this.empleado != null && validador;\n  }\n\n\n}\n","<p-confirmPopup key=\"eliminar_general\"></p-confirmPopup>\n<p-confirmDialog #cd key=\"validar_empleado\">\n    <ng-template pTemplate=\"footer\">\n        <div class=\"mt-3\">\n            <button type=\"button\" class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\"\n                pButton icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n            <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                (click)=\"cd.accept()\"></button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n<p-dialog id=\"popupSeguridadSocial\" header=\"{{ 'recuperar' | translate }} {{ 'incapacidad' | translate }}\"\n    [(visible)]=\"mostrar\" [breakpoints]=\"{ '960px': '50vw', '640px': '100vw' }\" [style]=\"{ width: '50vw' }\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" (onShow)=\"mostrarPopup()\">\n\n    <form [formGroup]=\"formRecuperarIncapacidad\">\n        <div class=\"col-md-12 Inputgroup mt-3\">\n            <div class=\"p-fluid p-formgrid grid\" *ngIf=\"!incapacidad\">\n\n                <!-- Identificacion -->\n                <div class=\"field col-12 md:col-4 lg:col-4\">\n\n                    <div class=\"p-inputgroup\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_documento\" formControlName=\"documento\" type=\"text\" readonly\n                                [required]=\"true\">\n                            <button pButton pRipple (click)=\"abrirPopupEmpleado()\" class=\"p-button-icon-only\"\n                                [disabled]=\"!isNewIncapacidad\">\n                                <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n                            </button>\n                            <label htmlFor=\"descripcion\">{{'documento' | translate}} * </label>\n                        </span>\n                    </div>\n                </div>\n                <!-- Nombre -->\n                <div class=\"field col-12 md:col-4 lg:col-4\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_snombre\" formControlName=\"snombre\" [readOnly]=\"true\" maxlength=\"30\">\n                        <label htmlFor=\"snombre\">{{'nombre' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!-- Contrato -->\n                <div class=\"field col-12 md:col-4 lg:col-4\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_contrato\" formControlName=\"identifica\" [readOnly]=\"true\"\n                            maxlength=\"20\">\n                        <label htmlFor=\"contrato\">{{'contrato' | translate}} * </label>\n                    </span>\n                </div>\n            </div>\n            <div class=\"p-fluid p-formgrid grid mt-1\" *ngIf=\"fase1\">\n                <!--  Salida  -->\n                <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"!incapacidad && isMostrarDatosGeneral()\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaLibroAusencia\" [autoDisplayFirst]=\"false\" id=\"id_salida\"\n                            optionLabel=\"label\" optionValue=\"key\" formControlName=\"ausencia\" appendTo=\"body\">\n                        </p-dropdown>\n                        <label htmlFor=\"id_mes\">{{'salida' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!--  Etapa Recuperacion  -->\n                <div class=\"field col-12 md:col-4 lg:col-4\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaEtapaRecuperacion\" [autoDisplayFirst]=\"false\"\n                            id=\"id_etapaRecuperacion\" optionLabel=\"label\" optionValue=\"key\"\n                            formControlName=\"etapaRecupera\" [disabled]=\"!isNewIncapacidad\" (onChange)=\"onChange($event)\"\n                            appendTo=\"body\">\n                        </p-dropdown>\n                        <label htmlFor=\"id_etapaRecuperacion\">{{'etaparecuperacion' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!--  Tipo  -->\n                <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isMostrarDatosGeneral()\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"seguridadSocialPipe.TIPO\" [autoDisplayFirst]=\"false\"\n                            id=\"id_tipo_tipo_periodo\" optionLabel=\"nombre\" optionValue=\"codigo\" formControlName=\"tipo\"\n                            appendTo=\"body\">\n                        </p-dropdown>\n                        <label htmlFor=\"id_mes\">{{'tipo' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!--  Entidad  -->\n                <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrarDatos\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaEntidad\" [autoDisplayFirst]=\"false\" id=\"id_entidad\"\n                            optionLabel=\"label\" optionValue=\"key\" formControlName=\"entidad\" appendTo=\"body\">\n                        </p-dropdown>\n                        <label htmlFor=\"id_mes\">{{'entidad' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!-- Fecha Proceso -->\n                <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrarDatos\">\n                    <span class=\"p-float-label\">\n                        <p-calendar id=\"id_fechaProceso_desc\" formControlName=\"fechaProceso\" dateFormat=\"dd/mm/yy\"\n                            appendTo=\"body\"\n                            [required]=\"formRecuperarIncapacidad.get('fechaProceso').hasError('required')\" [showIcon]=\"true\"></p-calendar>\n                        <label htmlFor=\"id_fechaRegistro\">{{'fechaproceso' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!-- Autorizacion -->\n                <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarDatosGeneral() && !datosNoReconocida\">\n                    <span class=\"p-float-label\">\n                        <p-inputNumber formControlName=\"autorizacion\" [min]=\"0\" [max]=\"999999999\"\n                            *ngIf=\"isMostrarDatosGeneral() && !datosNoReconocida\">\n                        </p-inputNumber>\n                        <label htmlFor=\"descripcion\">{{'no' | translate}} {{'de' | translate}} {{'autorizacion' |\n                            translate}} * </label>\n                    </span>\n                </div>\n\n                <!-- Valor -->\n                <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarDatosGeneral()\">\n                    <span class=\"p-float-label\">\n                        <p-inputNumber mode=\"decimal\" formControlName=\"valor\" [min]=\"0\" [max]=\"999999999\">\n                        </p-inputNumber>\n                        <label htmlFor=\"descripcion\">{{'valor' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!-- Fecha Aplicacion -->\n                <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"incapacidad && isMostrarDatosGeneral()\">\n                    <span class=\"p-float-label\">\n                        <p-calendar id=\"id_fechaProceso_desc\" formControlName=\"pago\" dateFormat=\"dd/mm/yy\"\n                            appendTo=\"body\"\n                            [required]=\"formRecuperarIncapacidad.get('pago').hasError('required')\" [showIcon]=\"true\"></p-calendar>\n                        <label htmlFor=\"id_fechaRegistro\">{{'fechaaplicacion' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!--  Estado  -->\n                <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isMostrarDatosGeneral() && !datosNoReconocida\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"seguridadSocialPipe.ESTADOGENEREAL\"\n                            *ngIf=\"!isNewIncapacidad && isMostrarDatosGeneral() && !datosNoReconocida\"\n                            [autoDisplayFirst]=\"false\" id=\"id_tipo_tipo_periodo\" optionLabel=\"nombre\"\n                            optionValue=\"codigo\" formControlName=\"estado\" appendTo=\"body\">\n                        </p-dropdown>\n                        <p-dropdown [options]=\"seguridadSocialPipe.ESTADOGENERALSINAUTOLIQ\"\n                            *ngIf=\"isNewIncapacidad && isMostrarDatosGeneral() && !datosNoReconocida\"\n                            [autoDisplayFirst]=\"false\" id=\"id_tipo_tipo_periodo\" optionLabel=\"nombre\"\n                            optionValue=\"codigo\" formControlName=\"estado\" appendTo=\"body\">\n                        </p-dropdown>\n                        <label htmlFor=\"id_mes\">{{'estado' | translate}} * </label>\n                    </span>\n                </div>\n\n                <!-- Cargo EPS -->\n                <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarDatosGeneral()\">\n                    <span class=\"p-float-label\">\n                        <p-inputNumber mode=\"decimal\" formControlName=\"valorEps\" [min]=\"0\" [max]=\"999999999\">\n                        </p-inputNumber>\n                        <label htmlFor=\"eps\">{{'cargo' | translate}} {{'eps' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Cargo Fp -->\n                <div class=\"field col-12 md:col-4\" *ngIf=\"isMostrarDatosGeneral()\">\n                    <span class=\"p-float-label\">\n                        <p-inputNumber mode=\"decimal\" formControlName=\"valorFp\" [min]=\"0\" [max]=\"999999999\">\n                        </p-inputNumber>\n                        <label htmlFor=\"fp\">{{'cargo' | translate}} {{'fp' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Observaciones-->\n                <div class=\"field col-12 md:col-12\" *ngIf=\"isMostrarDatosGeneral() && datosNoReconocida\">\n                    <span class=\"p-float-label\">\n                        <textarea pInputTextarea class=\"min-h-100 max-h-100 w-full\" [rows]=\"5\" [cols]=\"30\"\n                            formControlName=\"observacionNoRecono\"></textarea>\n                        <label htmlFor=\"observacion\">{{'observacion' | translate}} * </label>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </form>\n\n    <!--botones-->\n    <div class=\"flex justify-content-end mt-2\">\n        <button pButton pRipple class=\"ml-2 mb-4 p-button p-button-raised\"\n            *ngIf=\"fase1 && mostrarDatos && mostrarFuncionalidad && (isEmpleadoActivo() || isMostrarRetirado)\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n        </button>\n\n        <button pButton pRipple class=\"ml-2 mb-4 p-button-outlined\"\n            *ngIf=\"!isNewIncapacidad && mostrarFuncionalidad && (isEmpleadoActivo() || isMostrarRetirado)\"\n            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarRegistro()\">\n        </button>\n    </div>\n</p-dialog>\n\n<app-input-helper-empleado (regresar)=\"regresarPopupEmpleado()\" [mostrar]=\"isPopupEmpleado\"\n    (onSelected)=\"cargarEmpleadoSeleccionado($event)\"></app-input-helper-empleado>","import { UnionModel } from 'general-library-union'\n\nexport class ServicioEntidadExternaModel extends UnionModel{\n\n\tentidad: string;\n\tsucursal: number;\n\ttipoServicio: string;\n\tbeneficiario: string;\n\tformula: number;\n\tnumeroPILA: string;\n\testado: string;\n\ttipo: string;\n\tnombreEntidad: string;\n\tnombreSucursal: string;\n\tnombreTipoServicio: string;\n\torigenLiquidacion: string;\n\tgenerada: string;\n\tunico: string;\n\tseleccion: string;\n    interfaz: string;\n    descripcioninterfaz: string;\n\tfechaAfiliacion: Date;\n\treferencia: string;\n\tfechaRetiro: Date;\n\tempresa: number;\n\tsucursalReferencia: string;\n\tvalor: number;\n\tvalorTipo: number;\n\tvalorTotal: number;\n\tcedulaBeneficiario: number;\n\tcontrato: number;\n\tusuario: string;\n\tfechaPago: Date;\n    fechaabono: Date;\n\tllaveTemporal: number;\n    fechaliquidacion: Date;\n    fechacorte: Date;\n    numero: string;\n    descripcion: string;\n    nombreFormula: string;\n    unicoTipo: string;\n    capital: number;\n    abono: number;\n    interes: number;\n    abonointeres: number;\n    entidadAuxiliar: string;\n    ciclo: number;\n    valorModificar: number;\n    orderBy: string;\n    cedulaEspecifica: string;\n    clave: string;\n    tipoPeriodo: number;\n    nombreTipoPeriodo: string;\n    noTraerInterfaz: string;\n    parametroBusqueda: string;\n    opcionPeriodo: string;\n    nit: number;\n    numeroTipoPeriodo: number;\n    aliasRol: string;\n    codigoMedioPago: string;\n\n    descripcionPopup: string;\n\tvalorPopup: string;\n  filtroTipoServicio : string;\n\n}\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ServicioEntidadExternaModel } from '../../../modules/compensacion/models/ServicioEntidadExternaModel';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../pipes/general.pipe';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CommonModule, NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-input-helper-seleccion-sucursal-entidad',\n    templateUrl: './input-helper-seleccion-sucursal-entidad.component.html',\n    styleUrls: ['./input-helper-seleccion-sucursal-entidad.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionSucursalEntidadComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        NgIf,\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        GeneralPipe,\n        FiltroGeneralComponent,\n        CommonModule,\n    ],\n})\nexport class InputHelperSeleccionSucursalEntidadComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() boolean: boolean;\n\n  @Input() mostrarX: boolean = true;\n\n  @Input() tipoServicio: string;\n\n  @Input() tipoPeriodo: number;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() header: string = '';\n\n  @Input() ocultarInput: boolean;\n\n  filters = [];\n\n  listaEntidad: ServicioEntidadExternaModel[] = [];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: ServicioEntidadExternaModel;\n\n  paginator={rows:10, totalRecords:0}\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private notificacionesBusService: ToastService,\n    private authService: AuthService) { }\n\n  ngOnInit(): void {\n    this.crearFiltros();\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n\n  openDataTable() {\n    this.showDialog = true;\n    this.loadData();\n  }\n\n  crearFiltros() {\n    this.filters = [\n      {\n        field: 'entidad',\n        header: this.translateService.instant('Entidad'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nombreEntidad',\n        header: this.translateService.instant('Descripcion'),\n        matchMode: 'contains',\n      }]\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.entidad;\n    this.label = `${this.dataSelected.entidad.trim()} - ${this.dataSelected.nombreEntidad}`;\n    this.onChange(this.value);\n    this.dataSelected.valorPopup = this.dataSelected.entidad;\n    this.dataSelected.descripcionPopup = this.dataSelected.nombreEntidad;\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  deleteSelection(){\n    this.showDialog = false;\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({})\n  }\n\n  loadData() {\n    if (this.tipoServicio != null) {\n      let objeto: ServicioEntidadExternaModel = new ServicioEntidadExternaModel();\n      objeto.estado = Constantes.CONSTANTE_SI;\n      objeto.tipoServicio = this.tipoServicio;\n      objeto.tipoPeriodo = this.tipoPeriodo;\n      objeto.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      objeto.aliasRol = this.authService.getTokenKey('aliasRol')\n      objeto.usuario = this.authService.getTokenKey('usuario')\n      let general = new GeneralModel('ServicioEntidadExternaDTO', null, false, objeto);\n      this.generalService.queryForList(general).subscribe((data) => {\n        this.listaEntidad = data;\n        this.paginator.totalRecords = this.listaEntidad.length;\n      });\n    } else {\n      this.notificacionesBusService.showWarning('Debe seleccionar un tipo de servicio');\n      this.showDialog = false;\n    }\n  };\n\n\n}\n","<div #field *ngIf=\"!ocultarInput\" [class]=\"boolean  ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"boolean\" [disabled]=\"readonly\" />\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\"\n            [class]=\"!mostrarX ? 'clear' : ''\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label>{{header}}</label>\n    </span>\n</div>\n\n<p-dialog header=\"{{'sucursalentidad' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" (onShow)=\"openDataTable()\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '50vw' }\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"entidad\" formControlName=\"entidad\"\n                                autocomplete=\"off\" />\n                            <label for=\"entidad\">{{'entidad' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"nombreEntidad\" formControlName=\"nombreEntidad\"\n                                autocomplete=\"off\" />\n                            <label for=\"nombreEntidad\">{{'descripcion' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"entidad\" [value]=\"listaEntidad\" selectionMode=\"single\" [rows]=\"paginator.rows\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n        [(selection)]=\"dataSelected\" responsiveLayout=\"scroll\" [scrollable]=\"true\" (onRowSelect)=\"onRowSelect()\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width:20%\">{{\"entidad\" | translate}} {{\"externa\" | translate}}</th>\n                <th style=\"width:40%\">{{\"nombre\" | translate}} {{\"entidad\" | translate}}</th>\n                <th style=\"width:20%\">{{\"sucursal\" | translate}}</th>\n                <th style=\"width:20%\">{{\"nombre\" | translate}} {{\"sucursal\" | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-entidad>\n            <tr [pSelectableRow]=\"entidad\">\n                <td style=\"width:20%\">{{entidad.entidad}}</td>\n                <td style=\"width:40%\">{{entidad.nombreEntidad | generalPipe : 'capitallizeFully'}}</td>\n                <td style=\"width:20%\">{{entidad.sucursal}}</td>\n                <td style=\"width:20%\">{{entidad.nombreSucursal | generalPipe : 'capitallizeFully'}}</td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'periodoPipe'\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class PeriodoPipe implements PipeTransform {\n\n    /*AUSENCIAS = \"L\";\n    INCAPACIDAD_DESC = \"Incapacidad\";\n    AUSENCIAS_DESC = \"Ausencias\";\n    AUSENCIA_DESC = \"Ausencia\";\n    COMPENSACION_DESC = \"Compensacion\";\n    MODO_COMPENSACION_DESC = \"ModoCompensacion\";\n\n    mapaAusentismoAusencia = [\n        { codigo: this. this.INCAPACIDAD, nombre: this.INCAPACIDAD_DESC },\n        { codigo: this. this.AUSENCIAS, nombre: this.AUSENCIA_DESC }\n    ]*/\n\n    PERIODO_ABONADO = \"A\";\n    PERIODO_PROCESO = \"P\";\n    PERIODO_CERRADO = \"C\";\n    PERIODO_NO_GENERADO = \"N\";\n    PERIODO_APROBADO = \"D\";\n    PERIODO_EXTRA = \"X\";\n\n    DESCPERIODO_PROCESO = \"Periodo en Proceso\";\n    DESCPERIODO_CERRADO = \"Periodo Cerrado\";\n    DESCPERIODO_NO_GENERADO = \"Periodo no Generado\";\n    DESCPERIODO_ABONADO = \"Periodo Abonado\";\n\n    MapaProceso =\n        [\n            { codigo: this.PERIODO_PROCESO, nombre: this.DESCPERIODO_PROCESO },\n            { codigo: this.PERIODO_CERRADO, nombre: this.DESCPERIODO_CERRADO },\n            { codigo: this.PERIODO_NO_GENERADO, nombre: this.DESCPERIODO_NO_GENERADO },\n            { codigo: this.PERIODO_ABONADO, nombre: this.DESCPERIODO_ABONADO },\n        ]\n\n    lista_proceso =\n        [\n            { codigo: this.PERIODO_PROCESO, nombre: this.DESCPERIODO_PROCESO },\n            { codigo: this.PERIODO_CERRADO, nombre: this.DESCPERIODO_CERRADO }\n\n        ]\n\n    //asd\n    PROCESO_ABIERTO = \"A\";\n    PROCESO_MANUAL = \"M\";\n    PROCESO_ADICIONAL = \"AA\";\n\n    DESPROCESO_ABIETO = \"Periodo Proceso\";\n    DESPROCESO_MANUAL = \"Periodo Cerrado\";\n    DESPROCESO_ADICIONAL = \"Periodo Proceso Adicional\";\n\n    lista_generacion =\n        [\n            { codigo: this.PROCESO_ABIERTO, nombre: this.DESPROCESO_ABIETO },\n            { codigo: this.PROCESO_MANUAL, nombre: this.DESPROCESO_MANUAL }\n\n        ]\n\n    mapa_generacion =\n        [\n            { codigo: this.PROCESO_ABIERTO, nombre: this.DESPROCESO_ABIETO },\n            { codigo: this.PROCESO_MANUAL, nombre: this.DESPROCESO_MANUAL }\n\n        ]\n\n    lista_generacionViaticos =\n        [\n            { codigo: this.PROCESO_MANUAL, nombre: this.DESPROCESO_MANUAL }\n        ]\n\n    VALIDO = \"V\";\n    NOVALIDO = \"N\";\n\n    DESVALIDO = \"Valido\";\n    DESNOVALIDO = \"No valido\";\n\n    Lista_correo =\n        [\n            { codigo: this.VALIDO, nombre: this.DESVALIDO },\n            { codigo: this.NOVALIDO, nombre: this.DESNOVALIDO }\n        ]\n\n\n\n    PERIODO_FUERA_NOMINA = \"FN\";\n    VIATICOS = \"V\";\n\n    DESCPERIODO_FUERA_NOMINA = \"Periodo Fuera De Nomina\";\n    DESCPERIODO_VIATICOS = \"Viaticos\";\n\n    MapaProcesoPagoEntidad =\n        [\n            { codigo: this.PERIODO_PROCESO, nombre: this.DESCPERIODO_PROCESO },\n            { codigo: this.PERIODO_CERRADO, nombre: this.DESCPERIODO_CERRADO },\n            { codigo: this.PERIODO_NO_GENERADO, nombre: this.DESCPERIODO_NO_GENERADO },\n            { codigo: this.PERIODO_FUERA_NOMINA, nombre: this.DESCPERIODO_FUERA_NOMINA },\n            { codigo: this.VIATICOS, nombre: this.DESCPERIODO_VIATICOS }\n        ]\n\n    lista_proceso_pago_entidad =\n        [\n            { codigo: this.PERIODO_PROCESO, nombre: this.DESCPERIODO_PROCESO },\n            { codigo: this.PERIODO_CERRADO, nombre: this.DESCPERIODO_CERRADO },\n            { codigo: this.PERIODO_FUERA_NOMINA, nombre: this.DESCPERIODO_FUERA_NOMINA },\n            { codigo: this.VIATICOS, nombre: this.DESCPERIODO_VIATICOS }\n\n        ]\n\n\n    PROCESO_FUERA_NOMINA = \"F\";\n    PROCESO_VIATICOS = \"V\";\n\n    DESPROCESO_FUERA_NOMINA = \"Periodo Fuera de Nomina\";\n    DESPROCESO_VIATICOS = \"Viaticos\";\n\n    lista_generacion_pago_entidad =\n        [\n            { codigo: this.PROCESO_ABIERTO, nombre: this.DESPROCESO_ABIETO },\n            { codigo: this.PROCESO_MANUAL, nombre: this.DESPROCESO_MANUAL },\n            { codigo: this.PROCESO_FUERA_NOMINA, nombre: this.DESPROCESO_FUERA_NOMINA },\n            { codigo: this.PROCESO_VIATICOS, nombre: this.DESPROCESO_VIATICOS },\n            { codigo: this.PROCESO_ADICIONAL, nombre: this.DESPROCESO_ADICIONAL },\n        ]\n\n    mapa_generacion_pago_entidad =\n\n        [\n            { codigo: this.PROCESO_ABIERTO, nombre: this.DESPROCESO_ABIETO },\n            { codigo: this.PROCESO_MANUAL, nombre: this.DESPROCESO_MANUAL },\n            { codigo: this.PROCESO_FUERA_NOMINA, nombre: this.DESPROCESO_FUERA_NOMINA },\n            { codigo: this.PROCESO_VIATICOS, nombre: this.DESPROCESO_VIATICOS },\n            { codigo: this.PROCESO_ADICIONAL, nombre: this.DESPROCESO_ADICIONAL },\n\n        ]\n\n    PUBLICADO = \"S\";\n    NOEFECTUADO = \"N\";\n\n    PUBLICADODESC = \"Publicado\";\n    NOEFECTUADODESC = \"No Efectuado\";\n\n    ESTADOPUBLICACION =\n        [\n            { codigo: this.PUBLICADO, nombre: this.PUBLICADODESC },\n            { codigo: this.NOEFECTUADO, nombre: this.NOEFECTUADODESC }\n        ]\n\n    DEFINITIVA = \"D\";\n    INFORMATIVA = \"I\";\n\n    DEFINITIVADESC = \"Definitiva\";\n    INFORMATIVADESC = \"Informativa\";\n\n    MAPA_PROCESO =\n        [\n            { codigo: this.DEFINITIVA, nombre: this.DEFINITIVADESC },\n            { codigo: this.INFORMATIVA, nombre: this.INFORMATIVADESC }\n        ]\n        \n    REEMPLAZAR = \"R\";\n    ACUMULAR = \"A\";\n    NOAFECTAR = \"N\";\n\n    ACCIONVARIABLE =\n        [\n            { codigo: this.REEMPLAZAR, nombre: this.REEMPLAZAR },\n            { codigo: this.ACUMULAR, nombre: this.ACUMULAR },\n            { codigo: this.NOAFECTAR, nombre: this.NOAFECTAR }\n        ]\n\n    TIPOLIQUIDACIONTODOS = \"T\";\n    TIPOLIQUIDACIONEXISTENTES = \"E\";\n\n    DESTIPOLIQUIDACIONTODOS = \"Liquidar todas las personas\";\n    DESTIPOLIQUIDACIONEXISTENTES = \"Liquidar personas existentes en el periodo\";\n\n    MAPATIPOLIQUIDACION =\n        [\n            { codigo: this.TIPOLIQUIDACIONTODOS, nombre: this.DESTIPOLIQUIDACIONTODOS },\n            { codigo: this.TIPOLIQUIDACIONEXISTENTES, nombre: this.DESTIPOLIQUIDACIONEXISTENTES }\n        ]\n\n\n        ESTADO_CERRADO = \"C\";\n        ESTADO_ACTIVO = \"A\";\n\n        DES_ESTADO_CERRADO = \"Cerrado\";\n        DES_ESTADO_ACTIVO = \"Activo\";\n\n        MAPAESTADO =\n        [\n            { codigo: this.ESTADO_CERRADO, nombre: this.DES_ESTADO_CERRADO },\n            { codigo: this.ESTADO_ACTIVO, nombre: this.DES_ESTADO_ACTIVO }\n        ]\n\n\n    transform(value: any, ...args: any[]): any {\n        let result = value;   \n        if (args[0] == 'mapaProceso') { this.MapaProceso.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }     \n        return result;\n    }\n\n}\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../constantes/Constantes';\nimport { PeriodoPipe } from '../../pipes/periodo.pipe';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { EmpresaModel } from '../../../modules/compensacion/models/EmpresaModel';\nimport { PeriodoModel } from '../../../modules/compensacion/models/PeriodoModel';\nimport { LiquidacionPerPipe } from '../../../modules/compensacion/pipes/liquidacionper.pipe';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-periodo',\n    templateUrl: './input-helper-periodo.component.html',\n    styleUrls: ['./input-helper-periodo.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperPeriodoComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        FormsModule,\n        ReactiveFormsModule,\n        DropdownModule,\n        TranslateModule,\n        LiquidacionPerPipe,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperPeriodoComponent implements ControlValueAccessor, OnInit{\n\n  @ViewChild('inputText') inputText: ElementRef;\n  @ViewChild('filtro') filtro: FiltroGeneralComponent;\n\n  @Input() value: string | number;\n  @Input() label: string = '';\n  @Input() header: string;\n  @Input() labelInput: string;\n  @Input() readonly: boolean = false;\n  @Input() ocultarBoton: boolean = false;\n  @Input() generada: string = null;\n  @Input() requerido: boolean = false;\n  @Input() mostrarX: boolean;\n  dataSelected: PeriodoModel;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  showDialog: boolean = false;\n  onChange: Function = () => { };\n  onTouched: Function = () => { };\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  public listaPeriodo: PeriodoModel[] = []\n  public estadoPeriodo = 'P';\n  public listaEstado = [\n    {key: 'C', label: 'Periodo Cerrado'},\n    {key: 'P', label: 'Periodo en Proceso'},\n  ]\n\n\n  constructor(private generalService: GeneralService,\n              private authService: AuthService,\n              private translateService: TranslateService,\n              private periodoPipe : PeriodoPipe) {}\n\n  ngOnInit(): void {\n    this.filters = [\n      {\n        field: 'estadoPeriodo',\n        header: this.translateService.instant('estado'),\n        values: (key) => (key === 'C' ? 'Periodo Cerrado' : 'Periodo en Proceso'),\n      },\n      {\n        field: 'filtro',\n        header: this.translateService.instant('periodo'),\n        matchMode: 'equal'\n      }\n    ];\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    this.mostrar();\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.periodo;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async cargarLista(event) {\n    this.estadoPeriodo =event.estadoPeriodo?.value\n    if (this.estadoPeriodo == null && this.generada == null){\n      this.listaPeriodo = null;\n      this.paginator = {rows: 10, totalRecords: 0}\n      return;\n    }\n    let estado = this.generada;\n    if ( this.generada == null) {\n      estado = this.estadoPeriodo;\n    }\n    let empresa: EmpresaModel = new EmpresaModel();\n    empresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    let objeto2 = new GeneralModel('EmpresaDTO', null, false, empresa);\n    empresa = await this.generalService.queryForObject(objeto2).toPromise();\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      generada: this.periodoPipe.PERIODO_PROCESO == estado ? null : this.generada,\n      estadoProceso: this.periodoPipe.PERIODO_PROCESO == estado ? 'Proceso' : null,\n      comodinBusqueda: event.filtro?.value ? Constantes.PORCENTAJE + event.filtro?.value + Constantes.PORCENTAJE : null,\n      modo: empresa.modoCompensacion,\n      empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      usuario: this.authService.getTokenKey('usuario'),\n      aliasRol: this.authService.getTokenKey('aliasRol')\n    };\n\n    let objPeriodo = new GeneralModel('PeriodoDTO', null, false, objeto);\n    this.listaPeriodo = await this.generalService.queryForList(objPeriodo).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objPeriodo).toPromise();\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  mostrar() {\n    this.estadoPeriodo = 'P';\n    this.filtro.aplicarFiltros();\n    this.cargarLista({estadoPeriodo: {value: 'P'}})\n  }\n}\n","<div #field [class]=\"requerido  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n  <span class=\"p-float-label\">\n      <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"requerido\">\n      <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n          <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n      </button>\n      <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n          (click)=\"deleteSelection()\">\n          <span class=\"glyphicons glyphicons-remove\"></span>\n      </button>        \n      <label>{{labelInput}}</label>\n  </span>\n</div>\n \n  <p-dialog header=\"{{'periodonomina' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" (onShow)=\"mostrar()\"\n    [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\" appendTo=\"body\" id=\"PeriodoNominaPopup\">\n\n\n    <p-table #tablaGeneral id=\"tablaPeriodoNominaPopup\" [value]=\"listaPeriodo\" responsiveLayout=\"scroll\"\n    [paginator]=\"paginator.totalRecords > paginator.rows\" [scrollable]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n    styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" \n    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" (onLazyLoad)=\"cargarLista($event)\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\"\n    dataKey=\"llaveTabla\">\n    \n      <ng-template pTemplate=\"caption\">\n        <div class=\"p-fluid grid flex justify-content-between align-items-center\">\n          <app-filtro-general #filtro [filtros]=\"filters\" (metodoRegresar)=\"cargarLista($event)\">\n            <ng-template let-form>\n              <ng-container [formGroup]=\"form\">\n                <div class=\"flex mt-3\">\n                  <div class=\"w-full\">\n                    <span class=\"p-float-label\">\n                      <input autofocus pInputText type=\"text\" formControlName=\"filtro\" autocomplete=\"off\"\n                        maxlength=\"25\" />\n                      <label>{{'periodo' | translate}}</label>\n                    </span>\n                  </div>\n                </div>\n                <div class=\"flex mt-3\">\n                  <div class=\"w-full\" *ngIf=\"generada == null\">\n                    <span class=\"p-float-label\">\n                      <p-dropdown [autoDisplayFirst]=\"false\" [options]=\"listaEstado\" [(ngModel)]=\"estadoPeriodo\"\n                        formControlName=\"estadoPeriodo\" [showClear]=\"true\"  \n                        optionLabel=\"label\" optionValue=\"key\">\n                      </p-dropdown>\n                      <label>{{'estado' | translate}}</label>\n                    </span>\n                  </div>\n                </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n</div>\n</ng-template>\n<ng-template pTemplate=\"header\">\n  <tr>\n    <th>{{ 'periodonomina' | translate }}</th>\n    <th>{{ 'descripcion' | translate }}</th>\n    <th>{{ 'liquidacion' | translate }}</th>\n  </tr>\n</ng-template>\n<ng-template pTemplate=\"body\" let-periodo>\n  <tr [pSelectableRow]=\"periodo\">\n    <td>{{periodo.periodo}}</td>\n    <td>{{periodo.descripcion}}</td>\n    <td>{{periodo.liquidacion | liquidacionPerPipe : 'listaLiquidacion'}}</td>\n  </tr>\n</ng-template>\n<ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n</p-dialog>\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { EmpresaModel } from '../../../modules/compensacion/models/EmpresaModel';\nimport { VariableFechaModel } from '../../..//modules/compensacion/models/VariableFechaModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-variable-fecha',\n    templateUrl: './input-helper-variable-fecha.component.html',\n    styleUrls: ['./input-helper-variable-fecha.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperVariableFechaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperVariableFechaComponent implements ControlValueAccessor, OnInit{\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() ocultarBoton: boolean = false;\n\n  @Input() generada: string = null;\n  \n  dataSelected: any;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  public empresa: EmpresaModel;\n  public lista: VariableFechaModel[] = []\n\n  constructor(private generalService: GeneralService, \n              private authService: AuthService,\n              public translateService: TranslateService) {}\n\n  ngOnInit(): void {\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'equal'\n      }\n    ];\n  }\n\n  ocultar(){\n    this.showDialog = false;\n    if (!this.dataSelected){\n      this.regresar.emit(false)\n    }\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.dataSelected = null\n    this.showDialog = true;\n  }\n\n  onRowSelect(event) {\n    this.showDialog = false;\n    this.dataSelected = event.data;\n    this.value = this.dataSelected;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async cargarLista(event) {\n    this.empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))})).toPromise();\n    this.lista = await this.generalService.queryForList(new GeneralModel('VariableFechaDTO', null, false, {\n      modo: this.empresa.modoCompensacion,\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      busqueda: event.filters.parametroBusqueda?.value ? '%' +event.filters.parametroBusqueda?.value +'%' : null\n    })).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('VariableFechaDTO', null, false, {\n      modo: this.empresa.modoCompensacion,\n      busqueda: event.filters.parametroBusqueda?.value ? '%' +event.filters.parametroBusqueda?.value+'%' : null\n    })).toPromise();\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n    <label *ngIf=\"booleano\">{{'variable' | translate}} *</label>\n    <label *ngIf=\"!booleano\">{{'variable' | translate}}</label>\n  </span>\n  <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n  </button>\n  <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n    (click)=\"deleteSelection()\">\n    <span class=\"glyphicons glyphicons-remove\"></span>\n  </button>\n</div>\n \n<div id=\"varFechaPeriodoPopUp\">\n  <p-dialog header=\"{{'novedad' | translate}} {{'fecha' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\"\n    [contentStyle]=\"{width: '800px'}\" (onShow)=\"openDataTable()\" (onHide)=\"ocultar()\" appendTo=\"body\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'busqueda' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"lista\" selectionMode=\"single\" [scrollable]=\"true\"\n      [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n      [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\"\n      [lazy]=\"true\" (onLazyLoad)=\"cargarLista($event)\">\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      <ng-template pTemplate=\"header\">\n        <tr>\n          <th>{{'codigo'| translate}}</th>\n          <th>{{'descripcion'| translate}}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-variable>\n        <tr [pSelectableRow]=\"variable\">\n          <td>{{variable.codigo}}</td>\n          <td>{{variable.descripcion}}</td>\n        </tr>\n      </ng-template>\n    </p-table>\n  </p-dialog>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class VariableModel extends UnionModel{\n\t\n\tvariable: string;\n\tdescripcion: string;\n\tunidad: string;\n\tnovedad: string;\n\ttipo: string;\n\tacumula: string;\n\talterna: number;\n\tplanilla: string;\n\tfiltro: string;\n\torigen: string;\n\ttipoVigencia: string;\n\tnoHistorico: string;\n\tanteriorExista: string;\n\tvalidador: string; \n\tmodo: string;\n\tbusqueda: string;\n\ttipoVariable: string;\n\tformula: number;\n\tcondicionEspecial: string;\n\tvigente: string;\n\t\n\t//DATOS NO PERSISTENTES\n\tdescripcionModo: string\n\tdescripcionPopup: string;\n\tvalorPopup: string;\n}\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { VariableModel } from '../../../modules/compensacion/models/VariableModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n\n@Component({\n    selector: 'app-input-helper-seleccion-variable',\n    templateUrl: './input-helper-seleccion-variable.component.html',\n    styleUrls: ['./input-helper-seleccion-variable.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionVariableComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperSeleccionVariableComponent implements ControlValueAccessor, OnInit {\n  \n  @ViewChild('inputText') inputText: ElementRef;\n  \n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() labelIntput: string;\n\n  filters = [];\n\n  listaVariable: VariableModel[] = [];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: VariableModel;\n\n  paginator = { rows: 10, totalRecords: 0 };\n\n  variableFiltro;\n\n  descripcionFiltro;\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    public translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.crearFiltros();\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n\n  openDataTable() {\n    this.dataSelected = null\n    this.showDialog = true;\n    this.loadData();\n    if (this.labelIntput == null) {\n      this.labelIntput = 'variable'\n    }\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n  }\n\n  crearFiltros() {\n    this.filters = [\n      {\n        field: 'variable',\n        header: this.translateService.instant('variable'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      }]\n  }\n\n  onRowSelect(event) {\n    this.showDialog = false;\n    this.dataSelected = new VariableModel();\n    this.dataSelected = event.data;\n    this.value = this.dataSelected.variable;\n    this.label = this.dataSelected.variable + ' - ' + this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.dataSelected.valorPopup = this.dataSelected.variable;\n    this.dataSelected.descripcionPopup = this.dataSelected.variable + ' - ' + this.dataSelected.descripcion;\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  loadData() {\n    let objeto: VariableModel = new VariableModel();\n    objeto.variable = this.variableFiltro ? this.variableFiltro : null;\n    objeto.descripcion = this.descripcionFiltro ? '%' + this.descripcionFiltro + '%': null;\n    let general = new GeneralModel('VariableDTO', null, false, objeto);\n    this.generalService.queryForList(general).subscribe((data) => {\n      this.listaVariable = data;\n      this.paginator.totalRecords = this.listaVariable.length;\n    });\n\n  }\n\n  cargarListaFiltros(event) {\n    this.variableFiltro = event['variable'] ? event['variable']['value'] : null;\n    this.descripcionFiltro = event['descripcion'] ? event['descripcion']['value'] : null;\n    this.loadData();\n  }\n\n}\n","<div #field [class]=\"booleano ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\n            class=\"p-button-icon-only clear unico\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <label>{{labelIntput | translate}}</label>\n    </span>\n</div>\n<div id=\"variablePeriodoPopUp\">\n    <p-dialog header=\"{{'variable' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n        [contentStyle]=\"{width: '800px'}\" (onShow)=\"openDataTable()\">\n\n        <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n            <!-- Filtro-->\n            <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" id=\"variable\" formControlName=\"variable\"\n                                    autocomplete=\"off\" />\n                                <label for=\"variable\">{{'variable' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n                                    autocomplete=\"off\" />\n                                <label for=\"descripcion\">{{'descripcion' | translate}}</label>\n                            </span>\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n        </div>\n\n        <p-table #tablaGeneral dataKey=\"variable\" [value]=\"listaVariable\" selectionMode=\"single\"\n            responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"paginator.rows\"\n            [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n            styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 20%;\">{{'variable' | translate}}</th>\n                    <th style=\"width: 80%;\">{{'descripcion' | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-variable>\n                <tr [pSelectableRow]=\"variable\">\n                    <td style=\"width: 20%;\">{{variable.variable}}</td>\n                    <td style=\"width: 80%;\">{{variable.descripcion}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </p-dialog>\n</div>","import { UnionModel } from 'general-library-union'\n\n\nexport class FaseGestionModel extends UnionModel {\n\n\t\n    descripcionHerramienta: string;\n\tllave: string;\n\tgestionPeriodo: string;\n\tdescripcion: string;\n\torden: number;\n\tseguimiento: number;\n\tconcertada: string;\n\tdiasAviso: number;\n\tpeso: number;\n\taccion: string;\n\tmensajeFinal: string;\n\tmensajeInicial: string;\n\tnotificacion: string;\n\ttipoReprogramacion: string;\n\tnotificacionFinal: string;\n\tcodigo: string;\n\trolUsuario: string;\n\testadoHerramienta: string;\n\tautomatica: string;\n\tllaveactor: string;\n\t//atributos para filtrar por permisos organizacion/empresa \n\t//en la herramienta\n\tempresaFiltro: number;\n\tactores: string;\n\thistorico: string;\n\tnivelAnterior: number;\n\tnivelSiguiente: number;\n\ttipoEvaluador: string;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class PlanillaGestionModel extends UnionModel {\n\n\t\n    llavePlanillaGestion: string;\n\tgestionPeriodo: string;\n\tnombreGestionPeriodo: string;\n\tdescripcion: string;\n\torden: number;\n\tpeso: number;\n\ttipo: string;\n\torganizacion: number;\n\tnivelCargo: string;\n\tclasificaCargo: string;\n\ttipoEvaluador: string;\n\tdescripcionNivelCargo: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tselect: boolean;\n\tinstructivo: string;\n\tcodigo: string;\n\tnoPersona: string;\n\tindividual: string;\n\tformularioCapacitacion: string;\n\ttipoListado: string;\n\tmensaje: string;\n\tbotonNuevo: string;\n\n\t}\n","import { UnionModel } from 'general-library-union'\nimport { FaseGestionModel } from './FaseGestionModel';\nimport { PlafacFasgesModel } from './PlafacFasgesModel';\nimport { PlanillaGestionModel } from './PlanillaGestionModel';\n\nexport class GestionPeriodoModel extends UnionModel {\n\n\tllaveGestionPeriodo: string;\n\tgestion: string;\n\tdescripcion: string;\n\tvigencia: Date;\n\tfechaVigenciaDesde: Date;\n\tfechaVigenciaHasta: Date;\n\testado: string;\n\tformato: string;\n\tevalTotal: string;\n\ttipoCalifica: string;\n\tformula: number;\n\tplanillaReporte: string;\n\tnoPersona: string;\n\trolUsuario: string;\n\t//atributos para filtrar por permisos organizacion/empresa \n\t//en la herramienta\n\tempresaFiltro: number;\n\torganizacionFiltro: number;\t\n\tlistaFaseGestion: FaseGestionModel[];\n\tlistaPlanillagestionTerceraCarpeta: PlanillaGestionModel [];\n\tlistaPlanillagestionCuartaCarpeta: PlanillaGestionModel [];\n\tlistaPlanillagestionQuintaCarpeta: PlanillaGestionModel [];\n\tlistaPlanillagestionSextaCarpeta: PlanillaGestionModel [];\n\tlistaTipoEvaluadorQuintaCarpeta: PlafacFasgesModel [];\n\tlistaPlafacFasgesDTO: PlafacFasgesModel [];\n\tlistaFactorItemFormulario: PlafacFasgesModel [];\n\tlistaPlanillagestionProceso: PlanillaGestionModel [];\n\n\t\n}","import { UnionModel } from 'general-library-union'\n\n\nexport class TipoPuestoTrabajoModel extends UnionModel {\n\n\ttipoPuesto: string;\n\tdescripcion: string;\n\tautomatico: string;\n\tclase: string;\n\tusuarioRol: string;\n\t  \n}","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { GeneralModel, UtilsService } from \"general-library-union\";\nimport { GeneralService } from \"./general.service\";\nimport { firstValueFrom } from \"rxjs\";\n\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class cargarmapasGlobal {\n    listatempString: any[];\n    listaTempNumberString: any[];\n    constructor(private httpClient: HttpClient,\n        private generalService: GeneralService,\n        private utilsService: UtilsService,\n    ) { }\n    //mejora de los cargar mapas por Henry GTP\n    async cargarSelectItemString(nombrekey: string, nombreLabel: string, filtro: GeneralModel, nombreLabel2?: string): Promise<any[]> {\n        // Obtener y transformar datos en una sola operación\n        this.listatempString = (await firstValueFrom(this.generalService.queryForList(filtro))).map(element => ({\n            key: element[nombrekey],\n            label: this.utilsService.capitalizeFully(element[nombreLabel]),\n            label2: nombreLabel2 ? element[nombreLabel2] : null\n        }));\n    \n        // Ordenar la lista por 'label'\n        this.listatempString = this.ordenarLista(this.listatempString, 'label');\n    \n        return this.listatempString;\n    }\n    \n    async cargarSelectItemConNumberString(nombrekey: string, nombreLabel: string, filtro: GeneralModel, nombreLabel2?: string): Promise<any[]> {\n        // Obtener y transformar datos en una sola operación\n        this.listaTempNumberString = (await firstValueFrom(this.generalService.queryForList(filtro))).map(element => ({\n            key: parseInt(element[nombrekey], 10), // Convertir clave a número\n            label: this.utilsService.capitalizeFully(element[nombreLabel]), // Capitalizar el primer label\n            label2: nombreLabel2 ? element[nombreLabel2] : null // Agregar el segundo label si existe\n        }));\n    \n        // Ordenar la lista por 'label'\n        this.listaTempNumberString = this.ordenarLista(this.listaTempNumberString, 'label');\n    \n        return this.listaTempNumberString;\n    }\n    \n    //este metodo ordena la lista alfabeticamente \n    ordenarLista(lista: any[], propiedad: string): any[] {\n        if (!lista || lista.length === 0) {\n            return [];\n        }\n\n        return lista.sort((a, b) =>\n            (a[propiedad]?.toLowerCase() || '').localeCompare(b[propiedad]?.toLowerCase() || '')\n        );\n    }\n\n\n}","import { Constantes } from './../../../shared/constantes/Constantes';\nimport { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, Observable, throwError } from 'rxjs';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { ValorCalificaModel } from '../models/ValorCalificaModel';\nimport { DimensionModel } from '../models/DimensionModel';\nimport { CargoModel } from '../models/CargoModel';\nimport { UnidadOrganizacionalModel } from '../models/UnidadOrganizacionalModel';\nimport { MotivoRequerimientoModel } from '../models/MotivoRequerimientoModel';\nimport { cargarmapasGlobal } from '../../../shared/servicios/cargar-mapas.service';\nimport { FaseGestionModel } from '../models/FaseGestionModel';\nimport { SelectItem } from 'primeng/api';\nimport { PlanillaGestionModel } from '../models/PlanillaGestionModel';\nimport { GestionPeriodoModel } from '../models/GestionPeriodoModel';\nimport { TipoPuestoTrabajoModel } from '../models/TipoPuestoTrabajoModel';\nimport { PuestoTrabajoModel } from '../models/PuestoTrabajoModel'; \nimport { PuestoTrabajoService } from './puesto-trabajo.service';\n\ninterface FormulaItem {\n  codigo: string;\n  nombre: string;\n};\n\ninterface FormulaArrayItem {\n  key: any;\n  label: string;\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SelectListEvaluacionesService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService, private authService: AuthService, private utilsService: UtilsService,\n    private cargarMapas: cargarmapasGlobal, private puestoTrabajoService: PuestoTrabajoService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n                \n    \n  async selectListObjetivos( empresa: number, unidad: string ){\n    let lista = await this.generalService.queryForList(new GeneralModel('ObjetivoDTO', null, false, {empresa: empresa, unidad: unidad})).toPromise();\n    let listaRetorno = [];\n    lista.forEach(data => {\n      listaRetorno.push({value: data.llave, label: data.descripcion});\n    })\n    return listaRetorno;\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async getLista1GestionPeriodo( llaveGestion: string, tipoLista: string ){\n    let lista = await this.generalService.queryForList(new GeneralModel('CaracteristicaOpcionDTO', 'CaracteristicaOpcion.consultarCaracteristicaOpcion', false, {lista: tipoLista, tabla: llaveGestion, tipo: 'GP'})).toPromise();\n    let listaRetorno = [];\n    lista.forEach(data => {\n      listaRetorno.push({value: data.cadena, label: data.cadena});\n    })\n    return listaRetorno;\n  }\n\n  async consultarCursos(){\n    let lista = await this.generalService.queryForList(new GeneralModel('CursoDTO', null, false, {})).toPromise();\n    let listaRetorno = [];\n    lista.forEach(data => {\n      listaRetorno.push({value: data.curso, label: data.descripcion});\n    })\n    return listaRetorno;\n  }\n\n  async consultarTemas(){\n    let lista = await this.generalService.queryForList(new GeneralModel('TemaDTO', null, false, {origen: 'C'})).toPromise();\n    let listaRetorno = [];\n    lista.forEach(data => {\n      listaRetorno.push({value: data.tema, label: data.descripcion});\n    })\n    return listaRetorno;\n  }\n\n  async CalificacionToSelectItem(listaValores: ValorCalificaModel[]){\n    var respuesta = []\n    listaValores.forEach(async valor => {\n      respuesta.push({label: valor.etiqueta + \" : \" + valor.descripcion, value: valor.llaveValor})\n    });\n    return respuesta;\n  }\n\n  async getListaCompetencias() {\n\t\tvar listaCompetencias = [];\n\t\tlistaCompetencias.push({value:'', label: '--- Seleccione Herramienta ---'});\n\t\tvar lista: DimensionModel[] = await this.generalService.queryForList(new GeneralModel('DimensionDTO', null, false, {})).toPromise();\n\t\tlista.forEach(dimensionDTO =>  {\n\t\t\tlistaCompetencias.push({value: dimensionDTO.dimension, label: dimensionDTO.descripcion});\n\t\t})\n\t\treturn listaCompetencias;\n\t}\n\n  getSelectListPrioridad(){\n    return [\n      {value: '.', label: '.'},\n      {value: 'A', label: 'Alta'},\n      {value: 'M', label: 'Media'},\n      {value: 'B', label: 'Baja'},\n    ]\n  }\n\n  listaTipoPuestoN(): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/selectListEvaluaciones/listaTipoPuestoN`,null).pipe(\n      catchError(this.handleError)\n    );\n  }\n  listaTipoPuestoS(): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/selectListEvaluaciones/listaTipoPuestoS`,null).pipe(\n      catchError(this.handleError)\n    );\n  }\n\nasync listaEmpresa(){\n    let lista: any[] = await this.cargarMapas.cargarSelectItemConNumberString('empresa','nombre',new GeneralModel('EmpresaDTO',null,false,{organizacion: parseInt(this.authService.getTokenKey('llaveEmpresa')) }));\n    return lista\n  }\n\n  async getListaCargoActivoSinSeleccione(empresa: number){\n    let listaCargo = [];\n    let lista: CargoModel[] = await this.generalService.queryForList(new GeneralModel('CargoDTO',null,false, {empresa: empresa, estado: 'S'} )).toPromise();\n    for (const iterator of lista) {\n      if(iterator.cargo.trim() == '.'){\n        continue;\n      }\n      let llave: string = this.utilsService.rightpad(iterator.cargo,8,null);\n      listaCargo.push({codigo: llave, nombre: this.capitalizarTexto(iterator.descripcion + ' ('+llave.trim()+ ')')  });\n    }\n    return listaCargo.sort(this.compararPorNombre);\n  }\n\n  async getListaUnidadOrganizacional(filtroUnidad : UnidadOrganizacionalModel){\n    let listaUnidad: any[] = [];\n    let lista : UnidadOrganizacionalModel[] = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO','UnidadOrganizacional.consultarUnidadesDisponiblesRolAcceso',false,filtroUnidad)).toPromise();\n    lista.forEach(element => {\n      listaUnidad.push({codigo: element.unidad, nombre: this.capitalizarTexto(element.nombreUnidad)})\n    });\n    return listaUnidad.sort(this.compararPorNombre);\n  }\n\n  async listaMotivoReque(){\n    let listaMotivoReque: any[] = [];\n    let listaTemp: MotivoRequerimientoModel[] = await this.generalService.queryForList(new GeneralModel('MotivoRequerimientoDTO',null,false,{})).toPromise();\n    listaTemp.forEach(element => {\n      let llave = this.utilsService.rightpad(element.motivo,2, null);\n      listaMotivoReque.push({codigo:llave, nombre: this.capitalizarTexto(element.descripcion+ \" (\"+element.descripcion+ \")\")});\n    });\n    return listaMotivoReque.sort(this.compararPorNombre);\n  }\n\n  async consultarLineaCosto(empresa: number){\n    if(empresa == null){\n      return [{key:'error',label:'el valor de la empresa es nulo'}];\n    }\n    let listaLinea: any[] = []\n    let lineaCosto = await this.generalService.queryForList(new GeneralModel('LineaCostoDTO',null,false,{ empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    lineaCosto.forEach(element => {\n      listaLinea.push({key: element.lineaCosto, label: element.descripcion + ' -- ' + element.lineaCosto});\n    });\n    return listaLinea;\n  }\n\n  public async listaCargoSinSeleccione() {\n    let listaCargoActivo: any[] = []\n    if (listaCargoActivo == null) {\n      listaCargoActivo = [];\n      try {\n        let comodin: CargoModel = new CargoModel();\n        comodin.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        let lista: CargoModel[] = await this.generalService.queryForList(new GeneralModel('CargoDTO', null, false, comodin)).toPromise();\n        for (const uno of lista) {\n          let llave = this.utilsService.rightpad(uno.cargo, 8, null);\n          listaCargoActivo.push({ key: llave, label: llave + '-' + Constantes.ESPACIO_BLANCO });\n        }\n      } catch (e) {\n        console.log(e);\n      }\n    }\n    return listaCargoActivo;\n  }\n\n  public async getListaFase(gestionPeriodo: string,fasegGestion: string,filtroRol:  boolean): Promise<any[]> {\n\t\tlet listaFase = [];\n\t\ttry {\n\t\t\t// FaseGestionDTO\n       let comodin = new FaseGestionModel();\n\t\t\t//TODO: Rol actual\n\t\t\tif ( filtroRol ) {\n\t\t\t\tcomodin.rolUsuario = ( this.authService.getTokenKey('aliasRol'));\n\t\t\t\tcomodin.empresaFiltro = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t}\n\t\t\tcomodin.llave = (fasegGestion);\n\t\t\tcomodin.gestionPeriodo =(gestionPeriodo);\n\t\t\t// List<>\n      let lista = await this.generalService.queryForList(new GeneralModel('FaseGestionDTO',null,false,comodin)).toPromise();\n\t\t\tfor (const uno of lista) {\n\t\t\t\tlet llave =  this.utilsService.rightpad(uno.llave,32,null);\n\t\t\t\tif(llave !=  (this.utilsService.rightpad(Constantes.PUNTO,32,null))){\n\t\t\t\t\tlistaFase.push({key: llave, label: (uno.descripcionHerramienta+ '('+ uno.descripcion +')')});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Collections.sort(listaFase, new SelectItemAlphabeticalComparator());\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn listaFase.sort(this.compararPorLabel);\n\t}\n\n  public async getListaFaseFiltro(llave: string) {\n\t\tlet listaFase = [];\n\t\ttry {\n\t\t\t// FaseGestionDTO \n      let comodin = new FaseGestionModel();\n\t\t\tcomodin.gestionPeriodo = (llave);\n\t\t\tlet lista = await this.generalService.queryForList(new GeneralModel('FaseGestionDTO',null,false,comodin)).toPromise();\n\t\t\tfor (const uno of lista) {\n\t\t\t\tllave = this.utilsService.rightpad(uno.llave,32,null);\n\t\t\t\tif( llave != (this.utilsService.rightpad(Constantes.PUNTO,32,null))){\n\t\t\t\t\tlistaFase.push({key:llave,label:uno.descripcionHerramienta+ '('+uno.descripcion+')'});\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn listaFase;\n\t}\n\n  public async getListaPeriodo(tipo: string,gestionPeriodo: string): Promise<string[]> {\n    \tlet listaPeriodo = [];\n\t\t\tlistaPeriodo.push({key:Constantes.ESPACIO_NULO,label:\"--- Seleccione Per\\u00EDodo ---\"});\n\t\t\ttry {\n\t\t\t\t// PlanillaGestionDTO\n        let comodin = new PlanillaGestionModel();\n\t\t\t\tcomodin.tipo = (tipo);\n\t\t\t\tcomodin.gestionPeriodo = (gestionPeriodo);\n\t\t\t\tlet lista = await this.generalService.queryForList(new GeneralModel('PlanillaGestionDTO',null,false,comodin)).toPromise();\n\t\t\t\tfor (const uno of lista) {\n\t\t\t\t\tlet llave = uno.llavePlanillaGestion;\n\t\t\t\t\tif(llave != (this.utilsService.rightpad(Constantes.PUNTO,32,null))){\n\t\t\t\t\t\tlistaPeriodo.push({key:llave,label:uno.descripcion});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t\n\t\treturn listaPeriodo;\n\t}\n\n  public async getListaTipoEvaluadorFiltro(llave: string,tipo: string) {\n\t\tlet listaTipoEvaluador = [];\n\t\tlistaTipoEvaluador.push({value:Constantes.ESPACIO_NULO,label:\"--- Seleccione Tipo Evaluador ---\"});\n\t\ttry {\n\t\t\t// PlanillaGestionDTO \n      let comodin = new PlanillaGestionModel();\n\t\t\tcomodin.gestionPeriodo = (llave);\n\t\t\tcomodin.tipo = (tipo);\n\t\t\t// List<PlanillaGestionDTO> \n      let lista: PlanillaGestionModel[] = await this.generalService.queryForList(new GeneralModel('PlanillaGestionDTO',null,false,comodin)).toPromise();\n\t\t\tfor (let uno of lista) {\n\t\t\t\tif ( \"O\" == (uno.tipoEvaluador)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tllave = this.utilsService.rightpad(uno.llavePlanillaGestion,32,null);\n\t\t\t\tif(llave != (this.utilsService.rightpad(Constantes.PUNTO,32,null))){\n\t\t\t\t\tlistaTipoEvaluador.push({value:llave,label:uno.descripcion});\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn listaTipoEvaluador;\n\t}\n\n  public async getListaGestionHerramientas(): Promise<any> {\n\t\tlet listaGestionHerramientas = [];\n\t\tlistaGestionHerramientas.push({codigo: Constantes.ESPACIO_NULO, nombre:\"--- Seleccione Herramienta ---\" });\n\t\ttry {\n\t\t\t//TODO: Obtener rol actual del usuario que inició sesión\n\t\t\t// GestionPeriodoDTO \n      let gp = new GestionPeriodoModel();\n\t\t\tgp.rolUsuario = (this.authService.getTokenKey('aliasRol'));\n\t\t\tlet lista : GestionPeriodoModel[] = await this.generalService.queryForList(new GeneralModel('GestionPeriodoDTO','GestionPeriodo.consultarGestionPeriodoRolListaHerramientas',false,gp)).toPromise() ;\t\t\t\n\t\t\tfor (let gestionPeriodoDTO of lista) {\n\t\t\t\tlistaGestionHerramientas.push({codigo: gestionPeriodoDTO.llaveGestionPeriodo, nombre:gestionPeriodoDTO.descripcion});\n\t\t\t}\n\t\t}\n\t\tcatch (e) {\n\t\t\tconsole.log(e);\t\t\t\t\t\n\t\t}\n\t\treturn listaGestionHerramientas;\n\t}\n\n  public async getListaTipoPuestoS(): Promise<any[]>{\n    try {\n\t\t  let comodin = new TipoPuestoTrabajoModel();\n\t\t\tcomodin.clase = (Constantes.CONSTANTE_SI);\t\t\t\n\t\t\treturn this.armarListasPuesto(comodin);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\t\n\n  public async getListaTipoPuestoN(): Promise<any[]>{\n    try {\n\t\t  let comodin = new TipoPuestoTrabajoModel();\n\t\t\tcomodin.clase = (Constantes.CONSTANTE_NO);\t\t\t\n\t\t\treturn this.armarListasPuesto(comodin);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n  private async armarListasPuesto(comodin: TipoPuestoTrabajoModel): Promise<any[]>{\n\t\tlet listaAux = [];\n\t\ttry {\n\t\t\tlet listaTipoPuesto: TipoPuestoTrabajoModel[] = await this.generalService.queryForList(new GeneralModel('TipoPuestoTrabajoDTO',null,false,comodin)).toPromise();\n\n\t\t\tif (listaTipoPuesto != null && listaTipoPuesto.length > 0) {\n        listaAux = listaTipoPuesto.map((element) => ({value: element.tipoPuesto, label: this.capitalizarTexto(element.descripcion) + '(' + element.tipoPuesto.trim() + ')'}))\n\t\t\t}\n\t\t\tlistaAux.sort(this.compararPorLabel);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\t\t\n\t\treturn listaAux;\n\t}\n\n  public async selectListPosibleJefe(empresa: number,unidad: string,llavePuesto: string,estado: string) {\n\t\ttry {\n\t\t\t//PuestoTrabajoDTO \n      let comodinPuesto = new PuestoTrabajoModel();\n\t\t\tcomodinPuesto = new PuestoTrabajoModel();\n\t\t\tcomodinPuesto.empresa = (empresa);\n\t\t\tcomodinPuesto.unidad = (unidad);\n\t\t\tcomodinPuesto.puestoAtraer = (estado);\n\n\t\t\t//List<SelectItem> \n      let listaJefes = [];\n\t\t\t//List<PuestoTrabajoDTO> \n      let lista: PuestoTrabajoModel[] = await this.puestoTrabajoService.obtenerPuestosUnidad(comodinPuesto).toPromise();\n\t\t\tfor (let unPuesto of lista) {\n\t\t\t\tif ( llavePuesto != null) {\n\t\t\t\t\tif ( unPuesto.llave == (llavePuesto)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t//String \n        let descripcion = unPuesto.nombreOcupa;\n\t\t\t\tif ( descripcion == null) {\n\t\t\t\t\tdescripcion = unPuesto.nombreCargo;\n\t\t\t\t}\n\t\t\t\tlistaJefes.push({key: unPuesto.llave, label: unPuesto.nombreOcupa+\" : \"+unPuesto.nombreCargo });\n\t\t\t}\n\t\t\treturn listaJefes;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\n  \n\n  compararPorNombre(a: FormulaItem, b: FormulaItem): number {\n    return a.nombre.localeCompare(b.nombre);\n  }\n\n  compararPorLabel(a: FormulaArrayItem, b: FormulaArrayItem): number {\n    return a.label.localeCompare(b.label);\n  }\n\n  capitalizarTexto(texto: string): string {\n    return texto.charAt(0).toUpperCase() + texto.slice(1);\n  }\n\n\n  \n\n  \n\n\n}","import { Component, Input, Output, EventEmitter, OnInit, ElementRef, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService,  EncriptadoBasicoService,  FiltroGeneralComponent,  GeneralModel, TableColumn, ToastService, UtilsService } from 'general-library-union';\nimport { PuestoTrabajoModel } from '../../../modules/talento/models/PuestoTrabajoModel';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { ListaConstantesPipe } from '../../../shared/pipes/listaConstantes.pipe';\nimport { CargarArchivosService } from '../../../shared/servicios/cargar-archivos.service';\nimport { CargoModel } from '../../../modules/talento/models/CargoModel';\nimport { UnidadOrganizacionalModel } from '../../../modules/talento/models/UnidadOrganizacionalModel';\nimport { SelectListEvaluacionesService } from '../../../modules/talento/services/select-list-evaluaciones.service';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PrimeTemplate } from 'primeng/api';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-planta-lider',\n    templateUrl: './input-helper-planta-lider.component.html',\n    styleUrls: ['./input-helper-planta-lider.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperPlantaLiderComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        FieldsetModule,\n        PrimeTemplate,\n        DropdownModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        TranslateModule,\n\t\tFiltroGeneralComponent,\n    ],\n})\nexport class InputHelperPlantaLiderComponent implements ControlValueAccessor, OnInit {\n  \n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() ocultarBoton: boolean = false;\n\n  @Input() mostrarX: boolean = true;\n\n  @Input() booleano: boolean;\n\n  dataSelected: PuestoTrabajoModel;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  onChange: Function = () => { };\n  onCambio: Function = () => { };\n\n  onTouched: Function = () => { };\n  public filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  columns: TableColumn[] = []\n\n  public listaPuestoTrabajoOcupa: PuestoTrabajoModel[] ;\n\tpublic tipoDepende: string;\n\tpublic unidad: string;\n  public cargo: string;\n\tpublic empresa: number;\n\tpublic puestoActual: PuestoTrabajoModel;\n\tpublic mostrarAplicar: boolean;\n\tpublic listaCargo: any[];\n\tpublic unidadesSeleccionar: any[];\n\tpublic listaUnidades: any[];\n  public listaEmpresa: any[];\n\tpublic opcion_unidad: any[];\n\tpublic parametroBusqueda: string;\n\tpublic verFiltro: boolean;\n  @Input() public llaveUnidad: string;\n  @Input() public llavePuestoActual: string;\n\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private listaConstantesPipe: ListaConstantesPipe,\n    private cargarArchivo: CargarArchivosService, \n    private encriptadoBasico: EncriptadoBasicoService,\n    private generalPipe: GeneralPipe,\n    private utilsService: UtilsService,\n    private notificacionesService: ToastService,\n    public selectListEvaluaciones: SelectListEvaluacionesService,\n    private translateService: TranslateService) { }\n\n  async ngOnInit() {\n    this.filters = [\n      {\n        field: 'comodinBusqueda',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'equal',\n      }\n    ];\n    this.verFiltro=false;\n    this.opcion_unidad = [];\n    this.opcion_unidad.push({value: this.listaConstantesPipe.PLANTA_PERSONAL_UNIDAD_EXTERNA, label: this.listaConstantesPipe.PLANTA_PERSONAL_UNIDAD_EXTERNA_DEFINICION});\n    if(this.llaveUnidad != null){\n      this.opcion_unidad.push({value: this.listaConstantesPipe.PLANTA_PERSONAL_DENTRO_UNIDAD, label: this.listaConstantesPipe.PLANTA_PERSONAL_DENTRO_UNIDAD_DEFINICION});\n      \n    }else{\n      this.tipoDepende = this.listaConstantesPipe.PLANTA_PERSONAL_UNIDAD_EXTERNA;\n    }\n    this.unidadesSeleccionar = this.opcion_unidad;\n    this.mostrarAplicar = false;\n    this.unidad = null;\n    this.cargo = null;\n    this.tipoDepende = null;\n    this.listaPuestoTrabajoOcupa = [];\n    this.puestoActual = null;\n    if(this.llavePuestoActual != null && this.llavePuestoActual.trim() != this.generalPipe.PUNTO){\n      this.puestoActual = new PuestoTrabajoModel();\n      this.puestoActual.llave = this.llavePuestoActual;\n      this.puestoActual = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, this.puestoActual)).toPromise();\n      if(this.puestoActual != null){\n        var caminoFoto = null;\n\t\t\t\tif (this.puestoActual.cedulaOcupa != null) {\n\t\t\t\t  if (this.puestoActual.caminoFotoOcupa != null && this.puestoActual.caminoFotoOcupa != this.generalPipe.ESPACIO_BLANCO) {\n\t\t\n\t\t\t\t\tlet propiedad = 'ruta_fotos';\n\t\t\t\t\tlet aplicacion = this.authService.getTokenKey('aplicacion')\n\t\t\t\t\ttry {\n\t\t\t\t\t  this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.puestoActual.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n\t\t\t\t\t\tconst reader = new FileReader();\n\t\t\t\t\t\treader.onload = () => {\n\t\t\t\t\t\t  const dataUrl = reader.result as string;\n\t\t\t\t\t\t  const base64 = dataUrl.split(',')[1];\n\t\t\t\t\t\t  this.puestoActual.caminoFotoOcupa = 'data:image/png;base64,' + base64\n\t\t\t\t\t\t};\n\t\t\t\t\t\treader.readAsDataURL(blob)\n\t\t\t\t\t  });\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t  this.puestoActual.caminoFotoOcupa = null;\n\t\t\t\t\t}\n\t\t\t\t  }\n\t\t\t\t}\n        this.puestoActual.caminoFotoOcupa = caminoFoto;\n        this.label = this.puestoActual.nombreOcupa;\n      }\n    }\n    this.listaCargo = [];\n    this.listaEmpresa = await this.selectListEvaluaciones.listaEmpresa();\n  }\n\n  public async filtrarLider() {\n\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\tthis.dataSelected = null;\n\t\tif (this.tipoDepende == this.listaConstantesPipe.PLANTA_PERSONAL_DENTRO_UNIDAD || (this.unidad!=null && this.cargo!=null)) {\n\t\t\tawait this.continuar();\n\t\t\tthis.mostrarAplicar = true;\n\t\t} else {\n\t\t\tthis.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\tthis.mostrarAplicar = false;\n\t\t\tthis.listaUnidades = await this.listaSelectUnidad(this.empresa);\n\n\t\t\tthis.unidad = null;\n\t\t\tthis.cargo = null;\n\t\t}\n\t}\n\n\tpublic validar(){\n\t\tvar valida: boolean = true;\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.unidad);\n\t\t//valida &= Validador.validarTexto(cargo, \"popupUnidadLider:cargolider\", true, 8);\n\t\tvalida  = valida && this.utilsService.validarCampoObligatorio(this.empresa);\n\t\treturn valida;\n\t}\n\t\n\tpublic aplicar(){\n\t\tif(this.dataSelected == null){\n\t\t\tthis.notificacionesService.showWarning(\"Seleccione un puesto de trabajo\");\n\t\t\treturn null;\n\t\t}\n\t\tthis.onSelected.emit(this.dataSelected);\n\t\tthis.ocultar();\n    return null;\n\t}\n\t\n\t/**\n\t * Consulta los puestos de trabajo de acuerdo con los datos de empresa, unidad y cargo seleccionados\n\t * @return null\n\t */\n\tpublic async continuar(){\n\t\tif(this.tipoDepende == null){\n\t\t\tthis.notificacionesService.showWarning(\"Seleccione una opcion\");\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tif(this.tipoDepende.trim() == this.listaConstantesPipe.PLANTA_PERSONAL_DENTRO_UNIDAD){\n\t\t\tthis.unidad = null;\n\t\t\tthis.cargo = null;\n\t\t\tthis.empresa = null;\n\t\t\tawait this.cargarPuestoTrabajo(this.llaveUnidad,null,parseInt(this.authService.getTokenKey('numeroEmpresa')));\n\t\t}\n\t\telse{\t\t\t\n\t\t\tif(!this.validar()){\n\t\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n        return null;\n\t\t\t}\n\t\t\tawait this.cargarPuestoTrabajo(this.unidad, this.cargo, this.empresa);\n\t\t}\t\t\t\t\n\t\t\n\t\treturn null;\n\t}\n\t\n\t/**\n\t * Carga la lista de los puestos de trabajo para la empresa, unidad y cargo seleccionados\n\t * @param unidad La unidad organizacional seleccionada\n\t * @param cargo El cargo seleccionado\n\t * @param empresa La empresa seleccionada\n\t */\n\tpublic async cargarPuestoTrabajo(unidad: string, cargo: string, empresa: number){\n\t\t\tvar puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\tpuestoTrabajoDTO.unidad = this.utilsService.rightpad(unidad, 12, ' ');\n\t\t\tpuestoTrabajoDTO.cargo = cargo;\n\t\t\tpuestoTrabajoDTO.empresa = empresa;\t\n\t\t\tpuestoTrabajoDTO.puestoAtraer = \"NoEliminado\";\n\t\t\tif (this.utilsService.isNotBlank(this.parametroBusqueda)) {\n\t\t\t\tif (!isNaN(Number(this.parametroBusqueda))) {\n\t\t\t\t\tpuestoTrabajoDTO.comodinBuscarNumero = parseInt(this.parametroBusqueda);\n\t\t\t\t} else {\n\t\t\t\t\tpuestoTrabajoDTO.comodinBuscarNombre = this.generalPipe.PORCENTAJE + this.parametroBusqueda + this.generalPipe.PORCENTAJE;\n\t\t\t\t}\n\t\t\t\tpuestoTrabajoDTO.comodinBuscarDocumento  = this.generalPipe.PORCENTAJE + this.parametroBusqueda + this.generalPipe.PORCENTAJE;\n\t\t\t}\n\t\t\tthis.listaPuestoTrabajoOcupa = await this.generalService.queryForList(new GeneralModel('PuestoTrabajoDTO', 'PuestoTrabajo.obtenerPuestosUnidad', false, puestoTrabajoDTO)).toPromise();\n\t\t\tvar puestoEliminar = -1;\n      var contador = -1;\n\t\t\tvar caminoFoto;\n      for (const data of this.listaPuestoTrabajoOcupa) {\n\t\t\t\tcontador ++;\n\t\t\t\tif(this.puestoActual != null && data.llave == this.puestoActual.llave){\n\t\t\t\t\tpuestoEliminar = contador;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcaminoFoto = null;\n        console.log(data.caminoFotoOcupa)\n        if (data.cedulaOcupa != null ) {\n\t\t\t\t\tif (data.caminoFotoOcupa != null && data.caminoFotoOcupa != this.generalPipe.ESPACIO_BLANCO) {\n\t\t\t\t\t\tconsole.log('pasa if')\n            let propiedad = 'ruta_fotos';\n\t\t\t\t\t  let aplicacion = this.authService.getTokenKey('aplicacion')\n            try {\n              console.log('entra al try')\n              this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(data.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n                console.log(blob)\n                const reader = new FileReader();\n                reader.onload = () => {\n                  const dataUrl = reader.result as string;\n                  const base64 = dataUrl.split(',')[1];\n                  console.log(base64)\n                  data.caminoFotoOcupa = 'data:image/png;base64,' + base64\n                };\n                reader.readAsDataURL(blob)\n              });\n            } catch (error) {\n              console.log('entra al error')\n              data.caminoFotoOcupa = null;\n            }\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.mostrarAplicar = true;\n\t\t\tif(this.listaPuestoTrabajoOcupa.length == 0){\n\t\t\t\tthis.notificacionesService.showWarning(\"NO EXISTEN PUESTO DE TRABAJO EN ESTA UNIDAD Y CARGO SELECCIONADO\");\t\t\t\t\t\t\t\t\n\t\t\t\tthis.mostrarAplicar = false;\n\t\t\t}else{\n\t\t\t\tif(puestoEliminar != -1){\n\t\t\t\t\tthis.listaPuestoTrabajoOcupa.splice(puestoEliminar, 1);\n\t\t\t\t}\n\t\t\t}\n\t}\t\t\n\t\n\t/**\n\t * Listener del cambio en la seleccion de empresa\n\t * @param event El evento que encapsula la seleccion de empresa realizada\n\t */\n\tpublic async cambioEmpresa(event){\n    console.log(event)\n\t\tvar valor = event.value//.NewValue();\n\t\tconsole.log(valor);\n    console.log(this.empresa);\n\t\tif(valor != null){\n\t\t\tthis.dataSelected = null;\n\t\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\t\tthis.mostrarAplicar = false;\n\t\t\tthis.empresa = parseInt(event.value)// (Integer)event.NewValue();\n\t\t\tthis.listaCargo = [];\n\t\t\tthis.listaUnidades = [];\n\t\t\tthis.listaUnidades = await this.listaSelectUnidad(this.empresa);\n\t\t\t\n\t\t\tthis.cargo = null;\n\t\t\tthis.unidad = null;\n\t\t}\t\t\t\n\t}\n\t\n\t/**\n\t * Listener del evento de cambio en la seleccion de unidad organizacional\n\t * @param event El evento que encapsula la seleccion de unidad organizacional\n\t */\n\tpublic async cambioUnidad(event){\n\t\tthis.unidad = event.value//(String)event.NewValue();\n\t\t\tif (this.unidad != null){\n\t\t\t\tthis.dataSelected = null;\n\t\t\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\t\t\tthis.mostrarAplicar = false;\n\t\t\t\tthis.cargo  = null;\n\t\t\t\tvar comodin = new CargoModel();\n\t\t\t\tcomodin.empresa = this.empresa;\n\t\t\t\tcomodin.unidad = this.utilsService.rightpad(this.unidad, 12, ' ');\n\t\t\t\tvar lista = await this.generalService.queryForList(new GeneralModel('CargoDTO', 'Cargo.consultaCargoRelacionadosConUnidad', false, comodin)).toPromise();\n\t\t\t\tthis.listaCargo = [];\n\t\t\t\tlista.forEach(cargo => {\n\t\t\t\t\tvar llave = this.utilsService.rightpad(cargo.cargo, 8, ' ');\n\t\t\t\t\tvar nombreCargo = cargo.descripcion;\n\t\t\t\t\tif(llave != this.utilsService.rightpad(this.generalPipe.PUNTO, 8, ' ')) {\n\t\t\t\t\t\tthis.listaCargo.push({value: llave, label: nombreCargo + \"(\"+llave.trim()+\")\"});\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t}\n\t\n\t/**\n\t * Listener del evento de cambio en la seleccion de cargo\n\t * @param event El evento que encapsula la seleccion de cargo\n\t */\n\tpublic cambioCargo(event){\n\t\tvar valor = this.cargo;\n\t\tthis.cargo = event.value;//(String)event.NewValue();\n\t\t\n\t\tif (this.cargo != null && valor!=null && valor != this.cargo){\n\t\t\tthis.dataSelected = null;\n\t\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\t\tthis.mostrarAplicar = false;\n\t\t}\n\t}\n\t\n\t/**\n\t * Listener del evento de cambio en la seleccion del (tipo) puesto Trabajo\n\t * @param event El evento que encapsula la seleccion de puesto trabajo \n\t */\n\tpublic async cambio(event){\n    console.log(event)\n\t\tthis.unidad = null;\n\t\tthis.cargo = null;\n\t\tthis.verFiltro=true;\n\t\tthis.parametroBusqueda=null;\n\t\tthis.tipoDepende = event.value //(String)event.NewValue();\n\t\tawait this.filtrarLider();\n\t}\n\t\n\t/**\n\t * Metodo que selecciona un puesto trabajo \n\t * @param ActionEvent Objeto para obtener el objeto seleccionado\n\t */\n\tpublic seleccionarPuestoTrabajo(event){\n\t\tthis.dataSelected = event.data;\n\t\t\n\t\tif(this.dataSelected != null){\n\t\t\tthis.cambiarEstadoSeleccion(this.dataSelected.llave);\t\t\t\n\t\t}\n    this.aplicar()\n\t}\n\t\n\tpublic cambiarEstadoSeleccion(llave: string){\n\t\tif(this.listaPuestoTrabajoOcupa != null){\t\t\t\n\t\t\tthis.listaPuestoTrabajoOcupa.forEach(pt => {\t\t\t\n\t\t\t\tpt.check = pt.llave == llave;\t\t\t\t\n\t\t\t})\n\t\t}\n\t}\n\t\n\t/**\n\t * trae la lista de unidades de la empresa que selecciono\n\t * @param empresa\n\t * @return\n\t */\n\tpublic async listaSelectUnidad(empresa: number): Promise<any[]> {\n\t\t var listaUnidadesItem = [];\n\t\t\tvar listaUnidadesOrganizacionales: UnidadOrganizacionalModel[] = [];\n\t\t\tvar unidadOrganizacionalDTO = new UnidadOrganizacionalModel();\n\t\t\tunidadOrganizacionalDTO.empresa = empresa;\n\t\t\tunidadOrganizacionalDTO.estado = this.listaConstantesPipe.VIGENTE;\n\t\t\tlistaUnidadesOrganizacionales = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, unidadOrganizacionalDTO)).toPromise();\n\t\t\tif(listaUnidadesOrganizacionales.length > 0){\n\t\t\t\tlistaUnidadesOrganizacionales.forEach(element => {\n\t\t\t\t\tvar llave = element.unidad;\n\t\t\t\t\tvar nombreUnidad = element.nombreUnidad;\n\t\t\t\t\tlistaUnidadesItem.push({value: llave, label: nombreUnidad+\" (\"+llave.trim()+\")\"});\n\t\t\t\t})\n\t\t\t}\n\t\treturn listaUnidadesItem;\n\t}\n\t\n\t/**\n\t * Mensaje que se debe presentar en el menú de seleccion de unidad\n\t * @return El mensaje \"Seleccione\" en caso de que el listado de unidades tenga elementos.\n\t * <br> El mensaje \"No hay unidades para seleccionar\" en caso de que el listado de unidades este vacio \n\t */\n\tpublic getMensajeSeleccionUnidad(){\n\t\treturn this.listaUnidades.length == 0 ? \"No hay unidades para seleccionar\" : \"Seleccione\";\n\t}\n\t\n\t\n\t/**\n\t * Mensaje que se debe presentar en el menú de seleccion de cargo\n\t * @return El mensaje \"Seleccione\" en caso de que el listado de cargos tenga elementos.\n\t * <br> El mensaje \"No hay unidades para seleccionar\" en caso de que el listado de cargos este vacio \n\t */\n\tpublic getMensajeSeleccionCargo(){\n\t\treturn this.listaCargo.length == 0 ? \"No hay cargos para seleccionar\" : \"Seleccione\";\n\t}\n\t\n  ocultar() {\n    this.showDialog = false;\n  }\n\n  async mostrar(){\n    this.showDialog = true;\n    this.empresa = null;\n    this.unidad = null;\n    this.cargo = null;\n    this.tipoDepende = null;\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.dataSelected = new PuestoTrabajoModel();\n    this.dataSelected.unidad = null;\n    this.dataSelected.nombreUnidad = null;\n    this.onChange(this.value)\n    this.onCambio(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  openDataTable() {\n\n      this.cargarListado(event)\n    \n    \n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;    \n    this.showDialog = false;\n    this.value = this.dataSelected.unidad;\n    this.label = this.dataSelected.nombreUnidad;\n    this.onChange(this.value);\n    this.onCambio(this.value);\n    this.onSelected.emit(this.dataSelected);\n    \n  }\n\n  async cargarListado(event) {\n    \n  }      \n\n  async regresoFiltro(event) {\n    this.parametroBusqueda = event?.comodinBusqueda?.value\n    await this.filtrarLider();\n  }\n \n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \" >\n    <span class=\"p-float-label\">\n        <input pInputText  [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" \n         />\n      <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\" >\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n      </button>\n      <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\"  icon=\" pi pi-times\">\n      </button>\n      <label>{{'lider'  | translate}}</label>\n    </span>\n</div>\n  \n<p-dialog header=\"{{'lider' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw' }\" (onHide)=\"ocultar()\" (onShow)=\"mostrar()\">\n\n    <p-fieldset  *ngIf=\"puestoActual\">\n        <ng-template pTemplate=\"header\">\n            <div class=\"flex align-items-center\">\n                <span class=\"font-bold\">{{'lider' | translate}} {{'actual' | translate}}</span>\n            </div>\n        </ng-template>\n    \n        <div style=\"display: flex; justify-content: center; align-items: center;\" >\n            <div class=\"avatar-container\">\n                <img  [src]=\"puestoActual.caminoFotoOcupa\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"puestoActual.caminoFotoOcupa\">\n                <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"!puestoActual.caminoFotoOcupa\">\n            </div>\n        </div>\n        <div style=\"display: flex; justify-content: center; align-items: center;\" >\n            <label class=\"font-semibold\">{{puestoActual.nombreOcupa}}</label>\n        </div>\n    </p-fieldset>\n\n    <div *ngIf=\"!mostrarAplicar\">\n        <!-- PUESTO TRABAJO -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" >\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"unidadesSeleccionar\" appendTo=\"body\" [autoZIndex]=\"false\" (onChange)=\"cambio($event)\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                    [(ngModel)]=\"tipoDepende\" ></p-dropdown>\n                <label>{{'buscar' | translate}} {{'puestotrabajo' | translate}}*</label>\n            </span>\n        </div>\n    </div>\n\n    <div class=\"p-fluid grid\" *ngIf=\"tipoDepende == 'UE'\">\n        <div class=\"field col-12 md:col-4 lg:col-4\" >\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listaEmpresa\" appendTo=\"body\" [autoZIndex]=\"false\" (onChange)=\"cambioEmpresa($event)\"\n                    optionLabel=\"label\" optionValue=\"key\" [autoDisplayFirst]=\"false\"\n                    [(ngModel)]=\"empresa\" ></p-dropdown>\n                <label>{{'empresa' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-4 lg:col-4\" >\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listaUnidades\" appendTo=\"body\" [autoZIndex]=\"false\" (onChange)=\"cambioUnidad($event)\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                    [(ngModel)]=\"unidad\" ></p-dropdown>\n                <label>{{'unidad' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-4 lg:col-4\" >\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listaCargo\" appendTo=\"body\" [autoZIndex]=\"false\" (onChange)=\"cambioCargo($event)\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                    [(ngModel)]=\"cargo\" ></p-dropdown>\n                <label>{{'cargo' | translate}}</label>\n            </span>\n        </div>\n    </div>\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\" *ngIf=\"verFiltro && mostrarAplicar\">\n        <!-- Filtro-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"regresoFiltro($event)\" >\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" formControlName=\"comodinBusqueda\" autocomplete=\"off\" />\n                            <label>{{'busqueda' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table [value]=\"listaPuestoTrabajoOcupa\" responsiveLayout=\"scroll\" [rows]=\"5\" [totalRecords]=\"listaPuestoTrabajoOcupa.length\"\n        [paginator]=\"listaPuestoTrabajoOcupa.length > 5\" *ngIf=\"listaPuestoTrabajoOcupa.length > 0\"\n        [scrollable]=\"true\" selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n        dataKey=\"llave\" (onRowSelect)=\"seleccionarPuestoTrabajo($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'foto' | translate}}</th>\n                <th>{{'puesto' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-puesto>\n            <tr [pSelectableRow]=\"puesto\" >\n                <td>\n                    <div class=\"flex\" >\n                        <img [src]=\"puesto?.caminoFotoOcupa\" alt=\"Foto\" class=\"avatar-container\" *ngIf=\"puesto?.caminoFotoOcupa && puesto?.caminoFotoOcupa.includes('data:image/png;base64')\">\n                        <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-container\" *ngIf=\"!puesto?.caminoFotoOcupa?.includes('data:image/png;base64')\">\n                    </div>\n                </td>\n                <td>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: center\">\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <label>{{puesto.nombreOcupa ? puesto.nombreOcupa : ''}}</label>\n                        </div>\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <label>{{puesto.nombreCargo ? puesto.nombreCargo : ''}}</label>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"!mostrarAplicar\"\n            label=\"{{'link_continuar' | translate}}\" (click)=\"continuar()\" icon=\"glyphicons glyphicons-chevron-right\">\n        </button>\n        <!--<button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"glyphicons glyphicons-check\" *ngIf=\"mostrarAplicar\"\n            label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicar()\">\n        </button>-->\n    </div>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class UbicacionFisicaModel extends UnionModel {\n\n\t\n\tubicacionFisica: string;\n\tdescripcion: string;\n\tubicacionGeo: string;\n\torigen: string;\n\testado: string;\n\ttipo: string;\n\tcapacidad: number;\n\tareaTalento: string;\n\tdescripcionUbicacionGeo: string;\n\tcomodinBusqueda: string;\n\tnombreUbicacion: string;\n\t// Variable Utilizada para cargar la ubicacion\n\t// segun el asistente\n\n\tgrupo: string;\n\tmodoParametro: string;\n\tdescripcionModo: string;\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'ubicacionFisicaPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UbicacionFisicaPipe implements PipeTransform {\n\n    ORIGENNOMINA = \"E\";\n    ACTIVO = \"A\";\n    INACTIVO = \"I\";\n\n    ACTIVO_DESC = \"Activo\";\n    INACTIVO_DESC = \"Inactivo\";\n\n    ESTADOS =\n        [\n            { codigo: this.ACTIVO, nombre: this.ACTIVO_DESC },\n            { codigo: this.INACTIVO, nombre: this.INACTIVO_DESC },\n        ]\n    transform(value: any, ...args: any[]): any {\n        let result = value;\n        return result;\n    }\n}","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, CampoFormularioModel, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { UbicacionFisicaModel } from '../../../modules/compensacion/models/UbicacionFisicaModel';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgClass, NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { UbicacionFisicaPipe } from '../../../modules/compensacion/pipes/ubicacionFisica.pipe';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Component({\n  selector: 'app-input-helper-seleccion-ubicacion-fisica',\n  templateUrl: './input-helper-seleccion-ubicacion-fisica.component.html',\n  styleUrls: ['./input-helper-seleccion-ubicacion-fisica.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperSeleccionUbicacionFisicaComponent),\n      multi: true,\n    },\n  ],\n  standalone: true,\n  imports: [\n    InputTextModule,\n    ButtonDirective,\n    ReactiveFormsModule,\n    Ripple,\n    NgClass,\n    NgIf,\n    DialogModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FormsModule,\n    FiltroGeneralComponent\n  ],\n})\nexport class InputHelperSeleccionUbicacionFisicaComponent implements OnInit {\n\n  @ViewChild('inputText') inputText: ElementRef;\n  @Input() value: string | number;\n  @Input() label: string = '';\n  @Input() header: string;\n  @Input() readonly: boolean = false;\n  @Input() showDialog: boolean = false;\n  @Input() mostrarX: boolean;\n  @Input() booleano: boolean;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  public listaUbicacionFisica: UbicacionFisicaModel[] = [];\n  public dataSelected: UbicacionFisicaModel;\n  public filters = [];\n\n  onChange: Function = () => { };\n  onTouched: Function = () => { };\n\n\n  constructor(private generalService: GeneralService, private ubicacionFisicaPipe: UbicacionFisicaPipe,\n    private authService: AuthService, private utilsService: UtilsService,\n    private translateService: TranslateService, private saraAplicacionService: SaraAplicacionService) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar(){\n    this.crearFiltro();\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'busqueda',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'contains'\n      },\n    ];\n  }\n\n  openDataTable() {\n    this.showDialog = true;\n    this.cargarLista(null);\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onSelected.emit({});\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.ubicacionFisica;\n    this.label = this.dataSelected.ubicacionGeo + \" - \" + this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async cargarLista(event) {\n    let objetoFiltro = {\n      origen: this.ubicacionFisicaPipe.ORIGENNOMINA,\n      modoParametro : (await this.saraAplicacionService.getEmpresa()).modoCompensacion,\n      comodinBusqueda : event?.busqueda?.value != null ?  Constantes.PORCENTAJE + event?.busqueda?.value + Constantes.PORCENTAJE : null\n    };\n    let objeto = new GeneralModel('UbicacionFisicaDTO', null, false, objetoFiltro);\n    this.listaUbicacionFisica = await this.generalService.queryForList(objeto).toPromise();\n  }\n\n  cargarListaFiltro(event) {\n    this.cargarLista(event);\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new UbicacionFisicaModel();\n      filtro.ubicacionFisica = llave.padEnd(32, ' ');\n      let objeto = new GeneralModel('UbicacionFisicaDTO', null, false, filtro);\n      let respuesta: UbicacionFisicaModel = await generalService.queryForObject(objeto).toPromise();\n      return `${respuesta.descripcion.trim()}`\n    } else {\n      return null;\n    }\n  }\n\n}\n","<div #field [class]=\"booleano ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText disabled [value]=\"label\" [required]=\"booleano\" />\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n    <label>{{('ubicacionfisica') | translate}}</label>\n    <label *ngIf=\"booleano\">{{header | translate}} *</label>\n    <label *ngIf=\"!booleano\">{{header | translate}} </label>\n  </span>\n</div>\n\n\n<p-dialog header=\"{{'ubicacionfisica' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n  (onShow)=\"openDataTable()\">\n\n  <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n    <app-filtro-general #filtroUbicacion [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltro($event)\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText type=\"text\" id=\"busqueda\" formControlName=\"busqueda\" maxlength=\"30\">\n              <label for=\"busqueda\">{{'busqueda' | translate}} </label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n\n  <p-table dataKey=\"llaveTabla\" [value]=\"listaUbicacionFisica\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n    [scrollable]=\"true\" [rows]=\"10\" [paginator]=\"listaUbicacionFisica.length > 10\"\n    [totalRecords]=\"listaUbicacionFisica.length\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" (onRowSelect)=\"onRowSelect()\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{\"nombre\" | translate}} {{\"ubicacion\" | translate}}</th>\n        <th>{{\"codigo\" | translate}} {{\"ubicaciongeografica\" | translate}}</th>\n        <th>{{\"ubicaciongeografica\" | translate}}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-ubicacion>\n      <tr [pSelectableRow]=\"ubicacion\">\n        <td>{{ubicacion.descripcion}}</td>\n        <td>{{ubicacion.ubicacionGeo}}</td>\n        <td>{{ubicacion.descripcionUbicacionGeo}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>\n","import { UnionModel } from 'general-library-union'\n\nexport class GrupoAsignaturaModel extends UnionModel {\n\n\tllave: string;\n\tasignatura: string;\n\tsemestre: string;\n\tdescripcionSemestre: string;\n\tcodigoSemestre: string;\n\tcodigo: string;\n\tdescripcionAsignatura: string;\n\tcodigoAsignatura: string;\n\tparametroBusqueda: string;\n\tmensaje: string;\n\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GrupoAsignaturaModel } from '../../../modules/jornadadocente/models/GrupoAsignaturaModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgClass, NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-grupo-asignatura',\n    templateUrl: './input-helper-grupo-asignatura.component.html',\n    styleUrls: ['./input-helper-grupo-asignatura.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperGrupoAsignaturaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgClass,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperGrupoAsignaturaComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() header: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() mostrarX: boolean = true;\n\n  @Input() booleano: boolean;\n\n  @Input() semestre: string;\n\n  dataSelected: GrupoAsignaturaModel;\n\n  listado: GrupoAsignaturaModel[] = [];\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(private generalService: GeneralService, \n    private utilsService: UtilsService,\n    private notificacionesService: ToastService,\n    private translateService: TranslateService,) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n\n    this.filters = [\n      {\n        field: 'filtro',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  \n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.listado=[];\n    if (this.utilsService.isBlank(this.semestre)){\n      this.notificacionesService.showWarning('Debe seleccionar un semestre, para asignar el grupo')\n      return;\n    }\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    this.dataSelected = null;\n    this.showDialog = true;\n    this.loadData({first: 0, rows: 10, filters: {}}).then(data =>{})\n  }\n\n  cleanData(){\n    this.label = '';\n    this.dataSelected = new GrupoAsignaturaModel();\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.codigo;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n    this.booleano = false;\n  }\n\n  async loadData(event) {\n    if (!this.showDialog){\n      return;\n    }\n    let objeto = {\n      paginacionRegistroFinal: event.rows,\n      paginacionRegistroInicial: event.first,\n      semestre: this.semestre,\n      parametroBusqueda: event.filters?.filtro?.value ? `%${event.filters?.filtro?.value}%` : null,\n    }\n    this.listado = await this.generalService.queryForList(new GeneralModel('GrupoAsignaturaDTO',null,false,objeto)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('GrupoAsignaturaDTO',null,false,objeto)).toPromise();\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n    if (llave != null) {\n      let filtro = new GrupoAsignaturaModel();\n      filtro.llaveTabla =llave;\n      let objeto = new GeneralModel('GrupoAsignaturaDTO', null, false, filtro);\n      let respuesta: GrupoAsignaturaModel = await generalService.queryForObject(objeto).toPromise();\n      return respuesta.codigo;\n    }\n    return null;\n  }\n\n  \n\n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \" >\n    <span class=\"p-float-label\">\n      <input pInputText #inputText readonly=\"true\" [value]=\"label\" disabled [required]=\"booleano\"\n       />\n      <label>{{header}}</label>\n    </span>\n    <button  pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\"\n      [ngClass]=\"{ 'clear': !mostrarX }\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button pButton pRipple *ngIf=\"mostrarX\" (click)=\"cleanData()\"\n      class=\"p-button-icon-only unico\" icon=\" pi pi-times\" [ngClass]=\"{ 'clear': true}\">\n    </button>\n  </div>\n  \n  <p-dialog header=\"{{'grupo' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\" [draggable]=\"true\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '50vw' }\">\n  \n    <div>\n      <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n          <ng-template let-form>\n            <ng-container [formGroup]=\"form\">\n              <div class=\"field\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" formControlName=\"filtro\" autocomplete=\"off\" />\n                  <label>{{'filtro' | translate}}</label>\n                </span>\n              </div>\n            </ng-container>\n          </ng-template>\n        </app-filtro-general>\n      </div>\n  \n      <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listado\" selectionMode=\"single\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\"  [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\"\n        [lazy]=\"true\" (onLazyLoad)=\"loadData($event)\">\n        <ng-template pTemplate=\"header\">\n          <tr>\n            <th>{{\"codigosemestre\" | translate }}</th>\n            <th>{{\"semestre\" | translate }}</th>\n            <th>{{\"codigoasignatura\" | translate }}</th>\n            <th>{{\"asignatura\" | translate }}</th>\n            <th>{{\"grupo\" | translate }}</th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-grupoAsignatura>\n          <tr [pSelectableRow]=\"grupoAsignatura\">\n            <td>{{grupoAsignatura.codigoSemestre}}</td>\n            <td>{{grupoAsignatura.descripcionSemestre}}</td>\n            <td>{{grupoAsignatura.codigoAsignatura}}</td>\n            <td>{{grupoAsignatura.descripcionAsignatura}}</td>\n            <td>{{grupoAsignatura.codigo}}</td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n    </div>\n  </p-dialog>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'tipoNovedadCons',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class TipoNovedadCons implements PipeTransform {\n\n    /**\n     * Comienzo De Lista TIPOS_TIPONOVEDAD\n     */\n    VARIABLE_PERIODO = \"A\";\n    CONCEPTO_EMPLEADO = \"C\";\n    EMBARGO = \"E\";\n    CAMBIOTURNO = \"T\";\n    VARIABLE_PERIODO_FECHAS = \"F\";\n    VARIABLE_EMPLEADO_FECHAS = \"L\";\n    NO_JUDICIAL = Constantes.CONSTANTE_NO;\n    CONCEPTO_PERIODO = \"O\";\n    UNICA_EMPRESA = \"U\";\n    CADA_EMPRESA =\"C\";\n    LIQUIDACION_PERIODICA = \"P\";\n    VARIABLE_EMPLEADO = \"V\";\n    JUDICIAL = Constantes.CONSTANTE_SI;\n    CAMBIOENTIDAD = \"X\";\n    TERMINACION_CONTRATO = \"R\";\n    PRORROGA = \"PR\";\n    CAMBIO_EMPLEADO = \"CE\";\n    NOVEDAD_FIJA = \"F\";\n    NOVEDAD_OCASIONAL = \"O\";\n    SOLICITUD_MARCADOR = \"B\";\n    VARIABLE_LIQUIDACION_MARCADOR = \"V\";\n    IMAGEN_MARCADOR = \"I\";\n    CARACTERISTICAS_MARCADOR = \"C\";\n    CARACTERISTICAS_ADICIONALES=\"B\";\n\n    DES_UNICA_EMPRESA = \"Unica\";\n    DES_CADA_EMPRESA = \"Cada Empresa\";\n    DES_SOLICITUD_MARCADOR = \"Solicitud\";\n    DES_IMAGEN_MARCADOR = \"Imagen\";\n    DES_VARIABLE_LIQUIDACION_MARCADOR = \"Variable\";\n    DES_CARACTERISTICAS_MARCADOR = \"Caracteristicas\";\n    NOMBRE_CONCEPTO_EMPLEADO = \"Concepto del Empleado\";\n    NOMBRE_CONCEPTO_PERIODO = \"Concepto Periodo\";\n    NOMBRE_EMBARGO = \"Embargo\";\n    NOMBRE_CAMBIOTURNO = \"Cambio de Horario\";\n    NOMBRE_LIQUIDACION_PERIODICA = \"Liquidacion Periodica\";\n    NOMBRE_VARIABLE_EMPLEADO = \"Variable del Empleado\";\n    NOMBRE_VARIABLE_PERIODO = \"Variable del Periodo\";\n    NOMBRE_VARIABLE_PERIODO_FECHAS = \"Variable del Periodo por Fechas\";\n    NOMBRE_VARIABLE_EMPLEADO_FECHAS = \"Variable del Empleado por Fechas\";\n    DESCAMBIOENTIDAD = \"Cambio Entidad\";\n    TERMINACION_CONTRATO_DESC = \"Terminacion de Contrato\";\n    PRORROGA_DESC = \"Prorroga de Contrato\";\n    CAMBIO_EMPLEADO_DESC = \"Cambios Empleado\";\n\n    TEXTO=\"T\"; \n    COMBO=\"C\"; \n    NUMERO=\"N\";\n    DECIMAL=\"D\";\n    FECHA=\"F\"; \n    HORA=\"X\"; \n    FECHAHORA=\"E\"; \n    RADIO=\"R\";\n    POPUP=\"P\";\n    CHECK=\"H\";\n    LOGICO=\"L\";\n    TITULO=\"I\";\n    SUBTITULO=\"B\";\n    MENSAJE=\"M\";\n    TEXTOAREA=\"A\";\n    SECRET=\"S\";\n    VALORHORA=\"Z\";\n    AUTOCOMPLETAR=\"Y\";\n    AUTOCOMPLETAR_AREA=\"O\";\n    COMBOSQL=\"Q\";\n\n    TEXTO_DES=\"Texto\"; \n    COMBO_DES=\"Lista\"; \n    NUMERO_DES=\"Entero\";\n    DECIMAL_DES=\"Decimal\";\n    FECHA_DES=\"Fecha\"; \n    RADIO_DES=\"Alternativa\";\n    POPUP_DES=\"Popup\";\n    CHECK_DES=\"Marca\";\n    LOGICO_DES=\"Logico\";\n    TITULO_DES=\"Titulo\";\n    TEXTOAREA_DES=\"Texto Area\";\n    SECRET_DES=\"Secret\";\n    VALORHORA_DES=\"ValorHora\";\n    SUBTITULO_DES=\"Subtitulo\";\n    MENSAJE_DES=\"Mensaje\";\n    COMBOSQL_DES=\"Lista Sql\";\n\n    TIPOS_TIPONOVEDAD = [\n        { codigo: this.CAMBIO_EMPLEADO, nombre: this.CAMBIO_EMPLEADO_DESC },\n        { codigo: this.CAMBIOENTIDAD, nombre: this.DESCAMBIOENTIDAD },\n        { codigo: this.CAMBIOTURNO, nombre: this.NOMBRE_CAMBIOTURNO },\n        { codigo: this.CONCEPTO_EMPLEADO, nombre: this.NOMBRE_CONCEPTO_EMPLEADO },\n        { codigo: this.CONCEPTO_PERIODO, nombre: this.NOMBRE_CONCEPTO_PERIODO },\n        { codigo: this.EMBARGO, nombre: this.NOMBRE_EMBARGO },\n        //{ codigo: this.IMAGEN_MARCADOR, nombre: this.DES_IMAGEN_MARCADOR },\n        { codigo: this.LIQUIDACION_PERIODICA, nombre: this.NOMBRE_LIQUIDACION_PERIODICA },\n        { codigo: this.PRORROGA, nombre: this.PRORROGA_DESC },\n        //{ codigo: this.SOLICITUD_MARCADOR, nombre: this.DES_SOLICITUD_MARCADOR },\n        { codigo: this.TERMINACION_CONTRATO, nombre: this.TERMINACION_CONTRATO_DESC },\n        //{ codigo: this.UNICA_EMPRESA, nombre: this.DES_UNICA_EMPRESA },\n        { codigo: this.VARIABLE_EMPLEADO, nombre: this.NOMBRE_VARIABLE_EMPLEADO },\n        { codigo: this.VARIABLE_EMPLEADO_FECHAS, nombre: this.NOMBRE_VARIABLE_EMPLEADO_FECHAS },\n        //{ codigo: this.VARIABLE_LIQUIDACION_MARCADOR, nombre: this.DES_VARIABLE_LIQUIDACION_MARCADOR },\n        { codigo: this.VARIABLE_PERIODO, nombre: this.NOMBRE_VARIABLE_PERIODO },\n        { codigo: this.VARIABLE_PERIODO_FECHAS, nombre: this.NOMBRE_VARIABLE_PERIODO_FECHAS },\n    ];\n\n    TIPO_MARCADORTIPO = [\n        { codigo: this.SOLICITUD_MARCADOR, nombre: this.DES_SOLICITUD_MARCADOR },\n        { codigo: this.IMAGEN_MARCADOR, nombre: this.DES_IMAGEN_MARCADOR },\n        { codigo: this.CARACTERISTICAS_MARCADOR, nombre: this.DES_CARACTERISTICAS_MARCADOR },\n        { codigo: this.VARIABLE_LIQUIDACION_MARCADOR, nombre: this.DES_VARIABLE_LIQUIDACION_MARCADOR },\n    ]\n    ORIGEN_RUTA_EMPRESA = [\n        { codigo: this.UNICA_EMPRESA, nombre: this.DES_UNICA_EMPRESA },\n        { codigo: this.CADA_EMPRESA, nombre: this.DES_CADA_EMPRESA },\n    ]\n    /**\n     * Fin De Lista TIPOS_TIPONOVEDAD\n     */\n\n\n    /**\n    * Comienzo De Lista TIPOACCIONNOVEDAD\n    */\n    NUEVA_CAMBIO_ENTIDAD = \"NU\";\n    BORRAR_CAMBIO_ENTIDAD = \"BO\";\n    MODIFICAR_CAMBIO_ENTIDAD = \"MO\";\n\n    NUEVA_CAMBIO_ENTIDAD_DESC = \"Nuevo\";\n    BORRAR_CAMBIO_ENTIDAD_DESC = \"Borrar\";\n    MODIFICAR_CAMBIO_ENTIDAD_DESC = \"Modificar\";\n\n    TIPOACCIONNOVEDAD = [\n        { codigo: this.NUEVA_CAMBIO_ENTIDAD, nombre: this.NUEVA_CAMBIO_ENTIDAD_DESC },\n        { codigo: this.BORRAR_CAMBIO_ENTIDAD, nombre: this.BORRAR_CAMBIO_ENTIDAD_DESC },\n        { codigo: this.MODIFICAR_CAMBIO_ENTIDAD, nombre: this.MODIFICAR_CAMBIO_ENTIDAD_DESC }\n    ]\n\n    /**\n     * Fin De Lista TIPOACCIONNOVEDAD\n     */\n\n\n    /**\n     * Comienzo De Lista TIPOACCIONVARIABLE\n     */\n    TIPOACCIONVARIABLE = [\n        { codigo: \"NU\", nombre: \"Registro Independiente\" },\n        { codigo: \"AC\", nombre: \"Actualizar Si Existe -Unico - Segun Cantidad\" }\n    ]\n    /**\n    * Fin De Lista TIPOACCIONVARIABLE\n    */\n\n\n    /**\n     * Comienzo De Lista ORIGENNOVEDAD\n     */\n    TOKEN = \"|\";\n\n    REPOSO = \"I\";\n    VACACION = \"V\";\n    AUSENTISMO = \"L\";\n    FLEXIBLE = \"F\";\n    TERMINACION = \"T\";\n    SOLICITUD = \"O\";\n\n    DESCREPOSO = \"Reposo\";\n    DESCVACACION = \"Vacaciones\";\n    DESCAUSENTISMO = \"Ausentismo\";\n    DESCFLEXIBLE = \"Flexible\";\n    DESCTERMINACION = \"Terminaci\\u00F3n Contrato\";\n    DESCSOLICITUD = \"Solicitudes\";\n\n    ORIGENNOVEDAD = [\n        \n        { codigo: this.REPOSO, nombre: this.DESCREPOSO },\n        { codigo: this.VACACION, nombre: this.DESCVACACION },\n        { codigo: this.AUSENTISMO, nombre: this.DESCAUSENTISMO },\n        { codigo: this.FLEXIBLE, nombre: this.DESCFLEXIBLE },\n        { codigo: this.TERMINACION, nombre: this.DESCTERMINACION },\n        { codigo: this.SOLICITUD, nombre: this.DESCSOLICITUD }\n    ]\n    /*\n     *\n     * Fin De Lista ORIGENNOVEDAD\n     */\n\n\n    /**\n     * Comienzo De Lista MOMENTO_FORMULACION\n     */\n    PARCIAL_CESANTIAS = \"P\";\n    CERTIFICACIONES = \"C\";\n    SIMULACIONES = \"S\";\n\n    DESCPARCIAL_CESANTIAS = \"Otras\";\n    DESCCERTIFICACIONES = \"Certificaciones\";\n    DESCSIMULACIONES = \"Simulaciones\";\n\n    FORMULACION_INICIAL = \"I\";\n    FORMULACION_FINAL = \"F\";\n    FORMULACION_NOAPLICA = Constantes.CONSTANTE_NO;\n\n    MOMENTO_FORMULACION = [\n        { codigo: this.FORMULACION_INICIAL, nombre: \"Inicio y Final\" },\n        { codigo: this.FORMULACION_FINAL, nombre: \"Final\" },\n        { codigo: this.FORMULACION_NOAPLICA, nombre: \"No Aplica\" }\n    ]\n    /**\n     * Fin De Lista MOMENTO_FORMULACION\n     */\n\n\n    /**\n     * Comienzo De Lista INDICADORES_TIPOSOLICITUD\n     */\n\n    ENTRADA_TIPOSOLICITUD = \"E\";\n    VISUALIZAR_TIPOSOLICITUD = \"V\";\n    NOAPLICA_TIPOSOLICITUD = Constantes.CONSTANTE_NO;\n    ENTRADALEGALIAR = \"P\";\n\n    DESCENTRADA_TIPOSOLICITUD = \"Entrada\";\n    DESCVISUALIZAR_TIPOSOLICITUD = \"Visualizar\";\n    DESCNOAPLICA_TIPOSOLICITUD = \"No Aplica\";\n    DESENTRADALEGALIAR = \"Entrada Legalizar\";\n\n    INDICADORES_TIPOSOLICITUD = [\n        \n        { codigo: this.ENTRADA_TIPOSOLICITUD, nombre: this.DESCENTRADA_TIPOSOLICITUD },\n        { codigo: this.VISUALIZAR_TIPOSOLICITUD, nombre: this.DESCVISUALIZAR_TIPOSOLICITUD },\n        { codigo: this.NOAPLICA_TIPOSOLICITUD, nombre: this.DESCNOAPLICA_TIPOSOLICITUD },\n        { codigo: this.ENTRADALEGALIAR, nombre: this.DESENTRADALEGALIAR }\n    ]\n\n    OTROS_INDICADORES_TIPOSOLICITUD = [\n        \n        { codigo: this.ENTRADA_TIPOSOLICITUD, nombre: this.DESCENTRADA_TIPOSOLICITUD },\n        { codigo: this.NOAPLICA_TIPOSOLICITUD, nombre: this.DESCNOAPLICA_TIPOSOLICITUD },\n        { codigo: this.ENTRADALEGALIAR, nombre: this.DESENTRADALEGALIAR }\n    ]\n    /**\n     * Fin De Lista INDICADORES_TIPOSOLICITUD\n     */\n\n    /**\n     * Comienzo De Lista TIPOS_SOLICITUDES\n     */\n    TIPOS_SOLICITUDES = [\n        \n        { codigo: this.PARCIAL_CESANTIAS, nombre: this.DESCPARCIAL_CESANTIAS },\n        { codigo: this.CERTIFICACIONES, nombre: this.DESCCERTIFICACIONES },\n        { codigo: this.SIMULACIONES, nombre: this.DESCSIMULACIONES }\n    ]\n    /**\n    * Fin De Lista TIPOS_SOLICITUDES\n    */\n\n\n\n    /**\n     * Comienzo De Lista TIPOS_SOLICITUDES\n     */\n    DEPOSITOSJUDICIALES = \"1\";\n    ENTESCOACTIVOS = \"2\";\n    CAUSIONES = \"3\";\n    REMATES = \"4\";\n    PROCESOSLABORALES = \"5\";\n    CUOTASALIMENTARIAS = \"6\";\n\n    DESDEPOSITOSJUDICIALES = \"DEPOSITOS JUDICIALES\";\n    DESENTESCOACTIVOS = \"ENTES COACTIVOS Y/O AUTORIDADES\";\n    DESCAUSIONES = \"CAUSACIONES /EXCARCELACIONES\";\n    DESREMATES = \"REMATES /POSTURA DE BIENES\";\n    DESPROCESOSLABORALES = \"PROCESOS LABORALES\";\n    DESCUOTASALIMENTARIAS = \"CUOTAS ALIMENTARIAS\";\n\n    TIPOS_EMBARGOS = [\n        \n        { codigo: this.DEPOSITOSJUDICIALES, nombre: this.DESDEPOSITOSJUDICIALES },\n        { codigo: this.ENTESCOACTIVOS, nombre: this.DESENTESCOACTIVOS },\n        { codigo: this.CAUSIONES, nombre: this.DESCAUSIONES },\n        { codigo: this.REMATES, nombre: this.DESREMATES },\n        { codigo: this.PROCESOSLABORALES, nombre: this.DESPROCESOSLABORALES },\n        { codigo: this.CUOTASALIMENTARIAS, nombre: this.DESCUOTASALIMENTARIAS }\n    ]\n\n    /**\n    * Fin De Lista TIPOS_SOLICITUDES\n    */\n\n    /**\n     * ctnv_tipotermina y ctnv_tiposolicitud [P] Plantilla [A] Archivo [N] No aplica\n     * \n     * */\n    PLANTILLASOLICITUD = \"S\";\n    PLANTILLA = \"P\";\n    ARCHIVO = \"A\";\n    NO_APLICA = 'N';\n\n    NOMBNRE_PLANTILLASOLICITUD = \"Plantilla - LlaveSolicitud\";\n    NOMBRE_PLANTILLA = \"Plantilla\";\n    NOMBRE_ARCHIVO = \"Archivo\";\n    NOMBRE_NO_APLICA = \"No aplica\";\n    /**\n     * esta son paraa el tipo de solicitud\n     * **/\n    LISTA_SOLICITUD = [\n        \n        { codigo: this.PLANTILLA, nombre: this.NOMBRE_PLANTILLA },\n        { codigo: this.PLANTILLASOLICITUD, nombre: this.NOMBNRE_PLANTILLASOLICITUD },\n        { codigo: this.ARCHIVO, nombre: this.NOMBRE_ARCHIVO },\n        { codigo: this.NO_APLICA, nombre: this.NOMBRE_NO_APLICA }\n    ]\n\n\n    /**\n     * en esatas variables son para el tipo de generacion que se va realiozar en el tipo de genracion\n     * */\n    AUTOMATICA = \"A\";\n    MANUAL = \"M\";\n    AUTOMATICA_STRING = \"Automatica\";\n    MANUAL_STRING = \"Manual\";\n\n\n    LISTA_TIPO_GENERACION_MAP = [\n        \n        { codigo: this.AUTOMATICA, nombre: this.AUTOMATICA_STRING },\n        { codigo: this.MANUAL, nombre: this.MANUAL_STRING }\n    ]\n\n    PLANILLAS_EXTENSION_CORREO = [\n        { codigo: Constantes.ARCHIVO_HTML }\n    ]\n    PLANILLAS_EXTENSION_ARCHIVOS = [\n        { codigo: Constantes.ARCHIVO_XLS },\n        { codigo: Constantes.ARCHIVO_DOC },\n        { codigo: Constantes.ARCHIVO_ODS },\n        { codigo: Constantes.ARCHIVO_XLSX },\n        { codigo: Constantes.ARCHIVO_DOCX },\n    ]\n    PLANILLAS_EXTENSION = [\n        { codigo: Constantes.ARCHIVO_HTML }]\n\n\n\n   \n\n    EMPLEADO = \"EM\";\n    FUNCIONAL = \"UF\";\n    /**\n     * esta son paraa el tipo de solicitud\n     * **/\n    LISTA_DIRIGIDO = [\n        { codigo: this.EMPLEADO, nombre: Constantes.SI_STRING },\n        { codigo: this.FUNCIONAL, nombre: Constantes.NO_STRING }\n    ]\n\n\n    NOVEDAD_PRESTAMO_NUEVO = \"NU\";\n    NOVEDAD_PRESTAMO_NUEVO_COMPRA = \"NC\";\n    NOVEDAD_PRESTAMO_ABONO_FUERA = \"AB\";\n    NOVEDAD_PRESTAMO_CAMBIO_CUOTA = \"CC\";\n    NOVEDAD_PRESTAMO_CANCELACION = \"CA\";\n    NOVEDAD_PRESTAMO_ABONO_EXTRA = \"AX\";\n\n    NOVEDAD_PRESTAMO_NUEVO_DESC = \"Nuevo Registro\";\n    NOVEDAD_PRESTAMO_NUEVO_COMPRA_DESC = \"Nuevo Registro - Cancelar Otros\";\n    NOVEDAD_PRESTAMO_ABONO_FUERA_DESC = \"Abono Fuera\";\n    NOVEDAD_PRESTAMO_CAMBIO_CUOTA_DESC = \"Cambio Cuota\";\n    NOVEDAD_PRESTAMO_CANCELACION_DESC = \"Cancelacion\";\n    NOVEDAD_PRESTAMO_ABONO_EXTRA_DESC = \"Abono Extra\";\n\n    LISTA_ACCIONES_PRESTAMO = [\n        \n        { codigo: this.NOVEDAD_PRESTAMO_NUEVO, nombre: this.NOVEDAD_PRESTAMO_NUEVO_DESC },\n        { codigo: this.NOVEDAD_PRESTAMO_NUEVO_COMPRA, nombre: this.NOVEDAD_PRESTAMO_NUEVO_COMPRA_DESC },\n        { codigo: this.NOVEDAD_PRESTAMO_ABONO_FUERA, nombre: this.NOVEDAD_PRESTAMO_ABONO_FUERA_DESC },\n        { codigo: this.NOVEDAD_PRESTAMO_CAMBIO_CUOTA, nombre: this.NOVEDAD_PRESTAMO_CAMBIO_CUOTA_DESC },\n        { codigo: this.NOVEDAD_PRESTAMO_CANCELACION, nombre: this.NOVEDAD_PRESTAMO_CANCELACION_DESC },\n        { codigo: this.NOVEDAD_PRESTAMO_ABONO_EXTRA, nombre: this.NOVEDAD_PRESTAMO_ABONO_EXTRA_DESC }\n    ]\n\n    ITEM = \"I\";\n    PRINCIPAL = Constantes.CONSTANTE_SI;\n    BASE = \"B\";\n    ITEMDESC = \"ITEM\";\n    PRINCIPALDESC = \"PRINCIPAL\";\n    BASEDESC = \"BASE\";\n\n    LISTA_ESTILOS = [\n        \n        { codigo: this.ITEM, nombre: this.ITEMDESC },\n        { codigo: this.PRINCIPAL, nombre: this.PRINCIPALDESC },\n        { codigo: this.BASE, nombre: this.BASEDESC }\n    ]\n\n\n    FORMA_DESEMBOLSO_NOMINA = \"N\";\n    FORMA_DESEMBOLSO_NOMINA_DESC = \"Nomina\";\n    FORMA_DESEMBOLSO_FUERA_NOMINA = \"C\";\n    FORMA_DESEMBOLSO_FUERA_NOMINA_DESC = \"Fuera de Nomina\";\n\n    LISTA_FORMA_DESEMBOLSO = [\n        \n        { codigo: this.FORMA_DESEMBOLSO_NOMINA, nombre: this.FORMA_DESEMBOLSO_NOMINA_DESC },\n        { codigo: this.FORMA_DESEMBOLSO_FUERA_NOMINA, nombre: this.FORMA_DESEMBOLSO_FUERA_NOMINA_DESC }\n    ]\n\n\n    CODIGO_BASE_TERMINACION_CONTRATO = \"RETIR\";\n\n    DOCUMENTO_VIGENTE = \"V\";\n\n    TIPO_NOVEDAD_UNICO = \"U\";\n    TIPO_NOVEDAD_MULTIPLE = \"M\";\n    TIPO_NOVEDAD_MULTIPLE_MASIVO = \"X\";\n\n    TIPO_NOVEDAD_UNICO_DESC = \"Unica\";\n    TIPO_NOVEDAD_MULTIPLE_DESC = \"Multiple\";\n    TIPO_NOVEDAD_MULTIPLE_MASIVO_DESC = \"Registro Masivo - Multiple\";\n\n    LISTA_RELACION_TIPO_NOVEDAD = [\n        \n        { codigo: this.TIPO_NOVEDAD_UNICO, nombre: this.TIPO_NOVEDAD_UNICO_DESC },\n        { codigo: this.TIPO_NOVEDAD_MULTIPLE, nombre: this.TIPO_NOVEDAD_MULTIPLE_DESC },\n        { codigo: this.TIPO_NOVEDAD_MULTIPLE_MASIVO, nombre: this.TIPO_NOVEDAD_MULTIPLE_MASIVO_DESC }\n    ]\n\n\n    NOVEDAD_PERIODO_REEMPLAZAR = \"RE\";\n    NOVEDAD_PERIODO_ACUMULAR = \"AC\";\n\n    NOVEDAD_PERIODO_REEMPLAZAR_DESC = \"Reemplazar\";\n    NOVEDAD_PERIODO_ACUMULAR_DESC = \"Acumular\";\n\n    LISTA_ACCIONES_PERIODO = [\n        \n        { codigo: this.NOVEDAD_PERIODO_REEMPLAZAR, nombre: this.NOVEDAD_PERIODO_REEMPLAZAR_DESC },\n        { codigo: this.NOVEDAD_PERIODO_ACUMULAR, nombre: this.NOVEDAD_PERIODO_ACUMULAR_DESC }\n    ]\n\n\n    FORMULA_GENERAL = \"G\";\n    FORMULA_PROPIA = \"P\";\n\n    FORMULA_GENERAL_DESC = \"Formula General\";\n    FORMULA_PROPIA_DESC = \"Formula Propia\";\n\n    LISTA_TIPO_FORMULA = [\n        \n        { codigo: this.FORMULA_GENERAL, nombre: this.FORMULA_GENERAL_DESC },\n        { codigo: this.FORMULA_PROPIA, nombre: this.FORMULA_PROPIA_DESC }\n    ]\n\n    MAPA_TIPO_CAMPOS = [\n        { codigo: this.TEXTO, nombre: this.TEXTO_DES },\n        { codigo: this.COMBO, nombre: this.COMBO_DES },\n        { codigo: this.NUMERO, nombre: this.NUMERO_DES },\n        { codigo: this.DECIMAL, nombre: this.DECIMAL_DES },\n        { codigo: this.FECHA, nombre: this.FECHA_DES },\n        { codigo: this.RADIO, nombre: this.RADIO_DES },\n        { codigo: this.POPUP, nombre: this.POPUP_DES },\n        { codigo: this.CHECK, nombre: this.CHECK_DES },\n        { codigo: this.LOGICO, nombre: this.LOGICO_DES },\n        { codigo: this.TITULO, nombre: this.TITULO_DES },\n        { codigo: this.TEXTOAREA, nombre: this.TEXTOAREA_DES },\n        { codigo: this.SECRET, nombre: this.SECRET_DES },\n        { codigo: this.SUBTITULO, nombre: this.SUBTITULO_DES },\n        { codigo: this.MENSAJE, nombre: this.MENSAJE_DES },\n        { codigo: this.COMBOSQL, nombre: this.COMBOSQL_DES },\n    ]\n    \n    transform(value: any, ...args: any[]) {\n        let result = value;\n        if (args[0] == 'Tipos_TipoNovedad') { this.TIPOS_TIPONOVEDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'TipoAccionNovedad') { this.TIPOACCIONNOVEDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'TipoAccionVariable') { this.TIPOACCIONVARIABLE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'OrigenNovedad') { this.ORIGENNOVEDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Momento_Formulacion') { this.MOMENTO_FORMULACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Indicadores_TipoSolicitud') { this.INDICADORES_TIPOSOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Otros_Indicadores_Tiposolicitud') { this.OTROS_INDICADORES_TIPOSOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Tipos_Solicitudes') { this.TIPOS_SOLICITUDES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Tipos_Embargos') { this.TIPOS_EMBARGOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Solicitud') { this.LISTA_SOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Tipo_Generacion_Map') { this.LISTA_TIPO_GENERACION_MAP.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Planillas_Extension_Correo') { this.PLANILLAS_EXTENSION_CORREO.forEach(data => { if (data.codigo === value) { result = data.codigo } }); }\n        if (args[0] == 'Planillas_Extension_Archivos') { this.PLANILLAS_EXTENSION_ARCHIVOS.forEach(data => { if (data.codigo === value) { result = data.codigo } }); }\n        if (args[0] == 'Lista_Dirigidos') { this.LISTA_DIRIGIDO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Estilos') { this.LISTA_ESTILOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Forma_Desembolso') { this.LISTA_FORMA_DESEMBOLSO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Relacion_Tipo_Novedad') { this.LISTA_RELACION_TIPO_NOVEDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Acciones_Periodo') { this.LISTA_ACCIONES_PERIODO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Tipo_Formula') { this.LISTA_TIPO_FORMULA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_Tipo_Campos') { this.MAPA_TIPO_CAMPOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n\n\n    }\n} ","import { AfterViewInit, Component, ComponentRef, Input, OnChanges, OnInit, QueryList, Type, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { CampoFormularioNuevoModel } from 'general-library-union';\nimport { HashDirective } from 'general-library-union';\nimport { UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PasswordModule } from 'primeng/password';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf, NgClass, NgFor } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\n\n@Component({\n    selector: 'formulario-nuevo',\n    templateUrl: './formulario-nuevo.component.html',\n    styleUrls: ['./formulario-nuevo.component.scss'],\n    standalone: true,\n    imports: [TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, NgClass, CalendarModule, FormsModule, TooltipModule, InputTextModule, InputTextareaModule, InputNumberModule, PasswordModule, DropdownModule, NgFor, RadioButtonModule, CheckboxModule, HashDirective, AutoCompleteModule]\n})\nexport class FormularioNuevoComponent implements OnInit, AfterViewInit, OnChanges {\n\n  @Input() campos: CampoFormularioNuevoModel[];\n  listaSiNoRadioButton: any[] = [{ name: 'Si', key: 'S' }, { name: 'No', key: 'N' }];\n  @ViewChild ('popup', { read: ViewContainerRef }) vcr: ViewContainerRef;\n  @ViewChildren(HashDirective) private hashes: QueryList<HashDirective>;\n  @Input() editable: boolean;\n  @Input() isNovedadHojaVida: boolean = false;\n  @Input() verMensajeFuncion: boolean = false;\n  public validando: boolean = false;  \n\n  constructor(public utilsService: UtilsService, private generalService: GeneralService) { }\n\n  ngOnChanges(){\n   \n  }\n\n  ngAfterViewInit(): void {\n    \n\n    this.campos.forEach(campo => {\n      if (campo.tipo == 'P'){\n        if (campo.popupComponent){\n          this.mostrarPopupFormulario(campo).then(data => {});\n        }\n      }\n    })\n  }\n\n  ngOnInit(): void {\n  }\n\n  modificar(objeto: any, editable: boolean) {\n\t\tthis.limpiar();\n\t\t//this.objeto = objeto;\n\t\tthis.editable = editable;\n\t\t/*if (objeto instanceof Map) {\n\t\t\tMap datos = (Map) objeto;\n\t\t\tfor (GrupoFormulario grupo : grupos) {\n\t\t\t\tfor (CampoFormulario campo : grupo.getCampos()) {\n\t\t\t\t\tcampo.cargar(datos.get(campo.getCampo()));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {*/\n    let atributos = Object.keys(objeto);\n    this.campos.forEach(campo => {\n      if (!campo.caracteristica){\n        for (let atributo in objeto) {\n          let valor = objeto[atributo];\n          if (atributo == campo.campo){\n            this.cargarValor(campo.campo, valor, null);\n          }\n        }\n      }\n    })\n\n\t}\n\n  guardar(){\n    this.campos.forEach(data => {\n    })\n  }\n\n  setValorPopup(objeto){\n  }\n\n  async loadComponentDynamic<T>(campo: CampoFormularioNuevoModel, component: Type<T>, props: Partial<T>) {\n    var container =   this.getContainerFor(campo.popup)\n    container.clear();\n    const hasProps: boolean = !!Object.keys(props).length;\n    const compRef: ComponentRef<any> = container.createComponent( component );\n    \n    if (hasProps) {\n      for (let key of Object.keys(props)) {\n        compRef.instance[key] = props[key];\n      }\n    }\n    const componente = new campo.popupComponent();\n    if('getDescripcionLlave' in componente ){\n      compRef.instance['label'] = await componente.getDescripcionLlave(this.generalService, campo.valorNuevo, campo)\n    }\n\n  }\n\n  getContainerFor(name: string) {\n    return this.hashes.find(x => x.hash === name).vcRef;\n  }\n\n  async mostrarPopupFormulario(campo: CampoFormularioNuevoModel){\n    await this.loadComponentDynamic(campo, campo.popupComponent, campo.propiedadesPopupComponent)\n      \n  }\n\n  validar(): boolean{\n    this.validando = true;\n    var validador = true;\n    this.campos.forEach(campo => {\n      if (campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valorNuevo)  ){\n        validador = validador && false;\n      }\n    })\n    return validador;\n  }\n\n  getObjecto(alias?: string): any{\n    var camposAlias = alias ? this.campos.filter(element => element.objeto?.alias == alias) : this.campos;\n    var objeto = camposAlias[0].objeto;\n    camposAlias.forEach(campo => {\n      if (alias){\n        if (campo.objeto?.alias == alias){\n          objeto[campo.campo] = campo.valorNuevo;\n        }\n      } else {\n        objeto[campo.campo] = campo.valorNuevo;\n      }\n      \n    })\n    return objeto;\n  }\n\n  getListaObjecto(alias?: string): any[]{\n    var camposAlias = alias ? this.campos.filter(element => element.objeto?.alias == alias) : this.campos;\n    var listaObjecto: any[] = [];\n    camposAlias.forEach(data => {\n      data.objeto[data.campo] = data.valorNuevo;\n      listaObjecto.push(data.objeto);\n    })\n    return listaObjecto;\n  }\n\n  camposCaracteristicaClear(){\n    for (let i = 0; i < this.campos.length; i++){\n      if (this.campos[i].caracteristica){\n        this.campos.splice(i, 1)\n      }\n    }\n  }\n\n  cargarValor(campo: string, valor: any, dato: any) {\n    this.campos.forEach(campoF => {\n      if (campoF.campo == campo) {\n        //campoF.cargar(valor);\n        campoF.valorNuevo = valor;\n        //campoF.dato = dato;\n      }\n\t\t})\n\t}\n  \n  getCamposCaracteristica() {\n\t\tvar camposReturn: CampoFormularioNuevoModel[] = [];\n\t\tthis.campos.forEach(campo => {\n      if (campo.caracteristica) {\n        camposReturn.push(campo);\n      }\n\t\t})\n\t\treturn camposReturn;\n  }\n\n  obtenerCampo(campo: string){\n    var retorno = null\n    this.campos.forEach(cam => {\n      if(cam.campo != null && cam.campo == campo){\n          retorno = cam;\n      }\n    })\n\t\treturn retorno;\n\t}\n\n  limpiar() {\n    if (this.campos != null && this.campos.length > 0){\n      this.campos.forEach(campo => {\n        campo.valorNuevo = null;\n        campo.resaltado = false;\n        //campo.mensajeFuncion = null;\n      })\n    }\n  }\n  \n  validarVisibilidadCampos(campo: CampoFormularioNuevoModel): boolean {\n\n    if ((campo.tipo == 'N' && !campo.editable)) {\n      return false;\n    }\n\n    return true;\n  }\n\n}\n\n","<p-table [value]=\"campos\">\n    <ng-template pTemplate=\"body\" let-campo>\n      <tr [pSelectableRow]=\"campo\" *ngIf=\"validarVisibilidadCampos(campo)\">\n        <td style=\"width: 20%;\">\n          <label *ngIf=\"campo.mostrar\" [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\">\n              {{ campo.descripcion }}\n              <ng-container *ngIf=\"campo.mostrar && campo.obligatorio\">*</ng-container>\n          </label>\n        </td>\n        <td style=\"width: 80%\">\n          <div class=\"p-fluid p-formgrid grid\">\n          <div [ngClass]=\"campo.ayuda && campo.mostrar ? 'col-11' : 'col-12'\">\n          <!--campo tipo FECHA-->\n          <p-calendar\n            class=\"w-full\"\n            appendTo=\"body\" \n            [autoZIndex]=\"false\"\n            type=\"text\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [disabled]=\"!editable || !campo.editable\"\n            dateFormat=\"dd/mm/yy\"\n            [tabIndex]=\"campo.orden + 1\"\n            *ngIf=\"campo.tipo == 'F' && campo.mostrar\"\n            [showIcon]=\"true\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                                      \n          ></p-calendar>\n          <!--campo tipo FECHA-->\n          <p-calendar\n            class=\"w-full\"\n            appendTo=\"body\" \n            [autoZIndex]=\"false\"\n            type=\"text\" [showTime]=\"true\" [showSeconds]=\"false\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [disabled]=\"!editable || !campo.editable\"\n            dateFormat=\"dd/mm/yy\"\n            [tabIndex]=\"campo.orden + 1\"\n            *ngIf=\"campo.tipo == 'E' && campo.mostrar\"\n            [showIcon]=\"true\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                                      \n          ></p-calendar>\n  \n          <!--campo tipo HORA-->\n          <p-calendar\n            class=\"w-full\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [disabled]=\"!editable || !campo.editable\"\n            [tabIndex]=\"campo.orden + 1\"\n            *ngIf=\"campo.tipo == 'X' && campo.mostrar\"\n            [showTime]=\"true\"\n            [showSeconds]=\"true\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          ></p-calendar>\n  \n          <!--campo tipo HORA VALOR-->\n          <input\n            pInputText\n            type=\"time\"\n            [readonly]=\"!editable || !campo.editable\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [tabIndex]=\"campo.orden + 1\"\n            *ngIf=\"campo.tipo == 'Z' && campo.mostrar\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          />\n  \n          <!--campo tipo TEXTO-->\n          <input\n            pInputText\n            [readonly]=\"!editable || !campo.editable\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [tabIndex]=\"campo.orden + 1\"\n            *ngIf=\"campo.tipo == 'T' && campo.mostrar\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          />\n  \n          <!--campo tipo AREA TEXTO-->\n          <textarea\n            pInputTextarea\n            [(ngModel)]=\"campo.valorNuevo\"\n            rows=\"5\"\n            cols=\"5\"\n            [tabIndex]=\"campo.orden + 1\"\n            [readonly]=\"!editable || !campo.editable\"\n            *ngIf=\"campo.tipo == 'A' && campo.mostrar\"\n            class=\"w-full min-h-100 max-h-250\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          >\n          </textarea>\n  \n          <!--campo tipo NUMERO-->\n          <p-inputNumber\n            [readonly]=\"!editable || !campo.editable\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [tabIndex]=\"campo.orden + 1\"\n            [maxlength]=\"campo.longitud\"\n            *ngIf=\"campo.tipo == 'N' && campo.mostrar\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          >\n          </p-inputNumber>\n  \n          <!--campo tipo DECIMAL-->\n          <p-inputNumber\n            [readonly]=\"!editable || !campo.editable\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            mode=\"decimal\"\n            [minFractionDigits]=\"2\"\n            *ngIf=\"campo.tipo == 'D' && campo.mostrar\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          >\n          </p-inputNumber>\n  \n          <!--campo tipo SECRET-->\n          <p-password\n            [feedback]=\"false\"\n            [disabled]=\"!editable || !campo.editable\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [tabIndex]=\"campo.orden + 1\"\n            *ngIf=\"campo.tipo == 'S' && campo.mostrar\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          ></p-password>\n  \n          <!--campo tipo COMBO-->\n          <p-dropdown\n            class=\"w-full\"\n            appendTo=\"body\" \n            [autoZIndex]=\"false\"\n            [options]=\"campo.lista\"\n            [autoDisplayFirst]=\"false\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [disabled]=\"!editable || !campo.editable\"\n            *ngIf=\"campo.tipo == 'C' && campo.mostrar\"\n            [showClear]=\"!campo.obligatorio\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          >\n          </p-dropdown>\n  \n          <!--campo tipo LOGICO-->\n          <div *ngIf=\"campo.tipo == 'L' && campo.mostrar\">\n            <div class=\"col-md-12\">\n              <div class=\"p-fluid p-formgrid grid\">\n                <div *ngFor=\"let valor of listaSiNoRadioButton\" class=\"col-12 md:col-2 field-checkbox\">\n                  <p-radioButton\n                    [inputId]=\"valor.key\"\n                    name=\"valor\"\n                    [value]=\"valor.key\"\n                    [label]=\"valor.name\"\n                    [(ngModel)]=\"campo.valorNuevo\"\n                    [disabled]=\"!editable || !campo.editable\"\n                    [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                    [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                  ></p-radioButton>\n                  <label>    </label>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!--campo tipo RADIO-->\n          <div *ngIf=\"campo.tipo == 'R' && campo.mostrar\">\n            <div class=\"col-md-12\">\n              <div class=\"p-fluid p-formgrid grid\">\n                <div *ngFor=\"let valor of campo.lista\" class=\"col-12 md:col-2 field-checkbox\">\n                <p-radioButton\n                  [inputId]=\"valor.value\"\n                  name=\"valor\"\n                  [value]=\"valor.value\"\n                  [label]=\"valor.label\"\n                  [(ngModel)]=\"campo.valorNuevo\"\n                  [disabled]=\"!editable || !campo.editable\"\n                  [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                  [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                ></p-radioButton>\n              </div>\n              </div>\n            </div>\n          </div>\n  \n          <!--campo tipo CHECKBOX-->\n          <div *ngIf=\"campo.tipo == 'H' && campo.mostrar\">\n            <div class=\"col-md-12\">\n              <div class=\"p-fluid p-formgrid grid\">\n                <div *ngFor=\"let valor of campo.lista\" class=\"col-12 md:col-3 field-checkbox\">\n                      <p-checkbox\n                        [inputId]=\"valor.value\"\n                        name=\"valor\"\n                        [value]=\"valor\"\n                        [(ngModel)]=\"campo.valorNuevo\"\n                        [disabled]=\"!editable || !campo.editable\"\n                        [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                        [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n                      ></p-checkbox>\n                      <label [for]=\"valor.value\">{{ valor.label }}</label>\n                  </div>\n                </div>\n            </div>\n          </div>\n  \n          <!--campo tipo AUTOCOMPLETAR-->\n          <p-autoComplete\n            *ngIf=\"\n              (campo.tipo == 'O' || campo.tipo == 'Y') && campo.mostrar\n            \"\n            [disabled]=\"!editable || !campo.editable\"\n            [(ngModel)]=\"campo.valorNuevo\"\n            [suggestions]=\"campo.listaAutocompleteFiltrada\"\n            (completeMethod)=\"campo.filtrarAutocomplete($event)\"\n            field=\"label\"\n            [dropdown]=\"true\"\n            [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n            [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n            [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n            [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valorNuevo) && validando) : false\"\n          >\n            <ng-template let-valor pTemplate=\"item\">\n              <div>\n                <div>{{ valor.label }}</div>\n              </div>\n            </ng-template>\n          </p-autoComplete>\n  \n          <!--campo tipo POPUP-->\n          <div class=\"w-full\" *ngIf=\"campo.tipo == 'P' && campo.mostrar\" >\n            <ng-container   *ngFor=\"let item of campo.listaPopups\" [hash]=\"item\"></ng-container>\n          </div>\n          <div *ngIf=\"verMensajeFuncion\" class=\"text-center w-1\">\n            <label>{{ campo.mensajeFuncion }}</label>\n          </div>\n          <div *ngIf=\"isNovedadHojaVida\">\n            <label *ngIf=\"campo.mensaje\">{{ campo.mensaje }}</label>\n          </div>\n          </div>\n  \n          <div *ngIf=\"campo.ayuda && campo.mostrar\" class=\"col-1 contenedor\"  >\n            <span\n            class=\"w-1rem\"\n            style=\"color: var(--color-400)\"\n            tooltipStyleClass=\"tw-250\"\n            [hideDelay]=\"1800\"\n            pTooltip=\"{{ campo.ayuda }}\"\n            tooltipPosition=\"top\"\n            *ngIf=\"campo.ayuda && campo.mostrar\"\n            ><i class=\"pi pi-question-circle\"></i\n          ></span>\n            </div>\n          </div>\n      </td>\n      </tr>\n    </ng-template>\n  </p-table>","import { UnionModel } from 'general-library-union'\n\nexport class ConceptoModel extends UnionModel{\n\n\tconcepto: number;\n\tdescripcion: string;\n\tnivel: number;\n\ttipo: string;\n\tredondeo: string;\n    codigo: string;\n\tesFormula: string;\n\tnivelAjuste: number;\n\ttipoAjuste: string;\n\tretro: string;\n\tmodalidad: string;\n\tformula: string;\n\tformula2: string;\n\tformula3: string;\n\tunidad: string;\n\tflexible: string;\n\ttipoServicio: string;\n    unico: string;\n    estado: string;\n    numeroFormula: number;\n    modo: string;\n    parametroBusqueda: string;\n    parametroCodigo: string;\n    empresa: number;\n    regresion: string;\n    filtro: string;\n    funcionalidad: string;\n    origen: string;\n    codigoBase: string;\n\n\t//DATOS NO PERSISTENTES\t\n\tformulaTotal: string;\n\tdescripcionPopup: string;\n\tvalorPopup: number;\n\t\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConceptoService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n    \n    obtenerConceptoConValidacionFiltro( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/concepto/obtenerConceptoConValidacionFiltro`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n}","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ConceptoModel } from '../../../modules/compensacion/models/ConceptoModel';\nimport { ConceptoService } from '../../../modules/compensacion/services/concepto.service';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\n\n@Component({\n  selector: 'app-input-helper-seleccion-concepto',\n  templateUrl: './input-helper-seleccion-concepto.component.html',\n  styleUrls: ['./input-helper-seleccion-concepto.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperSeleccionConceptoComponent),\n      multi: true,\n    },\n  ],\n  standalone: true,\n  imports: [\n    NgIf,\n    InputTextModule,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent\n  ],\n})\nexport class InputHelperSeleccionConceptoComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n\n  @Input() ocultarBoton: boolean = true;\n  @Input() contrato: number;\n  @Input() empresa: number;\n  @Input() concepto: ConceptoModel;\n\n  @Input() booleano: boolean;\n\n  filters = [];\n\n  listaConcepto: ConceptoModel[] = [];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: ConceptoModel;\n\n  conceptoFiltro;\n\n  descripcionFiltro;\n\n  paginator = { rows: 10, totalRecords: 0 }\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private conceptoService: ConceptoService,\n    private translateService: TranslateService,\n    private saraAplicacionService: SaraAplicacionService,\n    public controlFuncionService: CargarControlFuncionalidadService,\n    private generalPipe: GeneralPipe) { }\n\n  ngOnInit(): void {\n    this.crearFiltros();\n    if (this.showDialog) {\n      this.openDataTable()\n    }\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n  }\n\n  ocultar() {\n    this.showDialog = false;\n    if (!this.dataSelected) {\n      this.regresar.emit(false)\n    }\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n\n  openDataTable() {\n    this.dataSelected = null\n    this.showDialog = true;\n    this.loadData();\n  }\n\n  crearFiltros() {\n    this.filters = [\n      {\n        field: 'concepto',\n        header: this.translateService.instant('concepto'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      }]\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.value = this.dataSelected.concepto;\n    this.label = this.dataSelected.concepto.toString() + ' - ' + this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.dataSelected.valorPopup = this.dataSelected.concepto;\n    this.dataSelected.descripcionPopup = this.dataSelected.concepto.toString() + ' - ' + this.dataSelected.descripcion;\n    this.onSelected.emit(this.dataSelected);\n    this.ocultar();\n\n  }\n\n  async loadData() {\n    if (this.empresa && this.concepto) {\n      let objeto = {\n        concepto: this.concepto,\n        empresa: this.empresa,\n        contrato: this.contrato,\n        modo: (await this.saraAplicacionService.getEmpresa()).modoCompensacion,\n        estado: this.generalPipe.SI\n      }\n      this.conceptoService.obtenerConceptoConValidacionFiltro(objeto).subscribe(data => {\n        this.listaConcepto = data;\n        this.paginator.totalRecords = this.listaConcepto.length;\n      })\n    } else {\n      let objeto: ConceptoModel = new ConceptoModel();\n      objeto.concepto = this.conceptoFiltro ? this.conceptoFiltro : null;\n      objeto.descripcion = this.descripcionFiltro ? '%' + this.descripcionFiltro + '%' : null;\n      objeto.modo = (await this.saraAplicacionService.getEmpresa()).modoCompensacion;\n      objeto.estado = this.generalPipe.SI;\n      let general = new GeneralModel('ConceptoDTO', null, false, objeto);\n      this.generalService.queryForList(general).subscribe((data) => {\n        this.listaConcepto = data;\n        this.paginator.totalRecords = this.listaConcepto.length;\n      });\n    }\n  }\n\n  cargarListaFiltros(event) {\n    this.conceptoFiltro = event['concepto'] ? event['concepto']['value'] : null;\n    this.descripcionFiltro = event['descripcion'] ? event['descripcion']['value'] : null;\n    this.loadData();\n  }\n\n}\n","<div #field [class]=\"booleano ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\" *ngIf=\"!ocultarBoton\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico clear\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <label for=\"recursos\">{{'concepto'| translate}} *</label>\n    </span>\n</div>\n<div id=\"conceptoPeriodoPopUp\">\n    <p-dialog header=\"{{'concepto' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n        [contentStyle]=\"{width: '800px'}\" (onShow)=\"openDataTable()\" (onHide)=\"ocultar()\">\n\n        <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n            <!-- Filtro-->\n            <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" id=\"concepto\" formControlName=\"concepto\"\n                                    [maxlength]=\"5\"\n                                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                                    autocomplete=\"off\" />\n                                <label for=\"concepto\">{{'concepto' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n                                    autocomplete=\"off\" />\n                                <label for=\"descripcion\">{{'descripcion' | translate}}</label>\n                            </span>\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n        </div>\n        <p-table #tablaGeneral dataKey=\"concepto\" [value]=\"listaConcepto\" selectionMode=\"single\"\n            responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"paginator.rows\"\n            [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n            styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\"\n            (onRowUnselect)=\"onRowSelect($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 20%;\">{{\"concepto\" | translate}}</th>\n                    <th style=\"width: 20%;\" *ngIf=\"controlFuncionService.getControlFuncionalidad('calnom:codconcepto')\">{{\"codigo\" | translate}}</th>\n                    <th style=\"width: 60%;\">{{\"descripcion\" | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-concepto>\n                <tr [pSelectableRow]=\"concepto\">\n                    <td style=\"width: 20%;\">{{concepto.concepto}}</td>\n                    <td style=\"width: 20%;\" *ngIf=\"controlFuncionService.getControlFuncionalidad('calnom:codconcepto')\">{{concepto.codigo}}</td>\n                    <td style=\"width: 60%;\">{{concepto.descripcion}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </p-dialog>\n</div>","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../servicios/general.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { MateriaModel } from '../../../modules/compensacion/models/MateriaModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FiltroGeneralComponent } from 'general-library-union';\n\n@Component({\n    selector: 'app-input-helper-seleccion-materia',\n    templateUrl: './input-helper-seleccion-materia.component.html',\n    styleUrls: ['./input-helper-seleccion-materia.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionMateriaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperSeleccionMateriaComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: number|string ;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() mostrarX: boolean;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  listaMateria: any[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: MateriaModel;\n  \n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(\n    private generalService: GeneralService,    \n    private translateService: TranslateService\n  ) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;    \n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.materia;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    \n    let objetoConsulta = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      parametroBusqueda: event.filters.parametroBusqueda?.value ? '%' + event.filters.parametroBusqueda?.value + '%' : null,\n    }\n    const objetoFiltro = {\n      nombreDTO: 'MateriaDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objetoConsulta\n    };\n    this.generalService.queryForList(objetoFiltro).subscribe((data) => {\n      this.listaMateria = data;\n      this.generalService.cantidadRegistros(objetoFiltro).subscribe(data => {\n        this.paginator.totalRecords = data;\n      })\n      \n    });\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = '';\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n}\n","<div #field class=\"p-inputgroup\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" />\n        <label htmlfor=\"actividad\">{{'actividad' | translate}} </label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\">\n        <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n</div>\n<p-dialog header=\"{{'actividad'| translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n    (onShow)=\"openDataTable()\" [contentStyle]=\"{width: '720px'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_parametroBusqueda\" formControlName=\"parametroBusqueda\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_busqueda\">{{'busqueda' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral [value]=\"listaMateria\" selectionMode=\"single\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" \n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect()\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 13%;\">{{\"actividad\" | translate}} </th>\n                <th style=\"width: 30%;\">{{\"descripcion\" | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-materia>\n            <tr [pSelectableRow]=\"materia\">\n                <td style=\"width: 13%;\">{{materia.materia}}</td>\n                <td style=\"width: 30%;\">{{materia.descripcion}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class CoAutoresModel extends UnionModel{\n\n\t\n\tllave: string;\n\thojaIntelecto: string;\n\tidentificacion: number;\n\tnombre: string;\n\ttipo: string;\n\tseleccionado: boolean;\n\t\n}","import { Pipe, Injectable, PipeTransform } from \"@angular/core\";\nimport { Constantes } from \"../../shared/constantes/Constantes\";\n\n@Pipe({\n    name: 'solicitudPuntajeDocente',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\nexport class SolicitudPuntajeDocentePipe implements PipeTransform {\n\n    \t// Estapas Solicitud\n\t\t\n\t\tFUERACOMITE = \"0\";\n\t\tENREVISION = \"1\";\n\t\tENREVISIONCORRECCION = \"2\";\n\t\tASIGNACIONPAR  = \"3\";\n\t\tCONTACTOSDEPARES = \"4\";\n\t\tENVIOPARES = \"5\";\n\t\tRESPUESTAPARES = \"6\";\n\t\tPRECOMITE = \"7\";\n\t\tPRODUCTOEVALUADO = \"8\";\n\t\tENELABORACION = \"9\";\n\t\tENSOLICITUD = \"10\";\n\t\tAEVALUAR = \"11\";\n\t\tPOREVALUAR = \"12\";\n\t\tAUTORIZADO = \"14\";\n\t\tPRECOMITEDEFACULTAD = \"15\";\n\t\tPOREVALUARUNIVERSIDAD = \"16\";\n\t\t\n\t\tENREVISIONDESC = \"En revisi\"+Constantes.O_TIDLE_MIN+\"n\";\n\t\tENREVISIONCORRECCIONDESC = \"En revisi\"+Constantes.O_TIDLE_MIN+\"n (correcci\"+Constantes.O_TIDLE_MIN+\"n)\";\n\t\tASIGNACIONPARDESC  = \"Asignaci\"+Constantes.O_TIDLE_MIN+\"n PAR\";\n\t\tCONTACTOSDEPARESDESC = \"Proceso de Pares\";\n\t\tENVIOPARESDESC  = \"Envia a par acad\"+Constantes.E_TILDE_MIN+\"mico\";\n\t\tRESPUESTAPARESDESC = \"Respuesta de par acad\"+Constantes.E_TILDE_MIN+\"mico\";\n\t\tPRECOMITEDESC = \"Precomite\";\n\t\tPRODUCTOEVALUADODESC = \"Producto Evaluado\";\n\t\tENELABORACIONDESC = \"En elaboraci\"+Constantes.O_TIDLE_MIN+\"n\";\n\t\tENSOLICITUDDESC = \"EN solicitud\";\n\t\tAEVALUARDESC = \"A evaluar\";\n\t\tPOREVALUADRDESC = \"Por evaluar\";\n\t\tAUTORIZADODESC = \"Autorizado\";\n\t\tPRECOMITEDEFACULTADDESC = \"Precomite de Facultad\";\n\t\tPOREVALUARUNIVERSIDADDESC = \"Por evaluar-Universidad\";\n\t\t\n//Tipo solicitud Tabla\n\t\tTIPOACTAFACULTAD = \"F\";\n\t\tTIPOACTAUNIVERSIDAD = \"U\";\n\t\t\n\t\tTIPOACTAFACULTADDESC = \"Facultad\";\n\t\tTIPOACTAUNIVERSIDADDESC = \"Universidad\";\n\t\n\tESTADOS_SOLICITUD =\n\t[\n\t\t{codigo: this.ENREVISION, nombre: this. ENREVISIONDESC},\n\t\t{codigo: this.ENREVISIONCORRECCION, nombre: this. ENREVISIONCORRECCIONDESC},\n\t\t{codigo: this.CONTACTOSDEPARES, nombre: this. CONTACTOSDEPARESDESC},\n\t\t{codigo: this.PRECOMITE, nombre: this. PRECOMITEDESC},\n\t\t{codigo: this.PRODUCTOEVALUADO, nombre: this. PRODUCTOEVALUADODESC},\n\t\t{codigo: this.ENELABORACION, nombre: this. ENELABORACIONDESC},\n\t\t{codigo: this.ENSOLICITUD, nombre: this. ENSOLICITUDDESC},\n\t\t{codigo: this.AEVALUAR, nombre: this. AEVALUARDESC},\n\t\t{codigo: this.POREVALUAR, nombre: this. POREVALUADRDESC},\n\t\t{codigo: this.AUTORIZADO, nombre: this. AUTORIZADODESC},\n\t\t{codigo: this.PRECOMITEDEFACULTAD, nombre: this. PRECOMITEDEFACULTADDESC},\n\t\t{codigo: this.POREVALUARUNIVERSIDAD, nombre: this. POREVALUARUNIVERSIDADDESC},\n\t]\n\t\n\tESTADOS_SOLICITUD_UNICA = \n\t[\n\t\t{codigo: this.ENREVISION, nombre: this.ENREVISIONDESC},\n\t\t{codigo: this.ENREVISIONCORRECCION, nombre: this.ENREVISIONCORRECCIONDESC},\n\t\t{codigo: this.CONTACTOSDEPARES, nombre: this.CONTACTOSDEPARESDESC},\n\t\t{codigo: this.PRECOMITE, nombre: this.PRECOMITEDESC},\n\t\t{codigo: this.PRODUCTOEVALUADO, nombre: this.PRODUCTOEVALUADODESC},\n\t]\n\n\t\n\t\n\tNUEVO_SOLICITUD= \"N\";\n\tRECLAMACION = \"R\";\n\t\n\tNUEVO_SOLICITUD_DESC = \"Nuevo Registro\";\n\tRECLAMACION_DESC = \"Reclamaci\\u00F3n\";\n\t\n\tTIPOS_SOLICITUD =\n\t[\n\t\t{codigo: this.NUEVO_SOLICITUD, nombre: this.NUEVO_SOLICITUD_DESC},\n\t\t{codigo: this.RECLAMACION, nombre: this. RECLAMACION_DESC},\n\t]\n\t\n\tRESOLUCION = \"R\";\n\tRESOLUCION_DESC = \"Resolución\";\n\t\n\tNO_APLICA = \".\";\n\tNO_APLICA_DESC = \"No Aplica\";\n\t\n\tTIPOS_ACTO =\n\t[\n\t\t{codigo: this.RESOLUCION, nombre: this.RESOLUCION_DESC},\n\t\t{codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC},\n\t]\n\t\n\tUNICO_REGISTRO = \"U\";\n\tMULTIPLE_REGISTRO = \"M\";\n\tMULTIPLE_REGISTRO_UNIVERSIDAD = \"X\";\n\t\n\tUNICO_REGISTRO_DESC = \"Unico Registro Solicitud Punto\";\n\tMULTIPLE_REGISTRO_DESC = \"Multiple Registro Proceso Comite Facultad\";\n\tMULTIPLE_UNIVERSIDAD_REGISTRO_DESC = \"Multiple Registro Un Proceso Comite\";\n\n\tTIPOS_REGISTRO_SOLICITUD =\n\t[\n\t\t{codigo: this.UNICO_REGISTRO, nombre: this.UNICO_REGISTRO_DESC},\n\t\t{codigo: this.MULTIPLE_REGISTRO, nombre: this.MULTIPLE_REGISTRO_DESC},\n\t]\n\t\n\tDETALLE_SOLICITUD_PUNTAJE = \"DETALLE_SOLICITUD_PUNTAJE\";\n\tDETALLE_PRODUCTO_PUNTAJE = \"DETALLE_PRODUCTO_PUNTAJE\";\n\tREGRESAR_SOLICITUD_PUNTAJE = \"REGRESAR_SOLICITUD_PUNTAJE\";\n\tREGRESAR_DETALLE_SOLICITUD_PUNTAJE = \"REGRESAR_DETALLE_SOLICITUD_PUNTAJE\";\n\tREGRESAR_SOLICITUD_PUNTAJE_ACTIVIDAD= \"REGRESAR_SOLICITUD_PUNTAJE_ACTIVIDAD\";\n\tSOLICITUD_CPUN = \"SOLICITUD_CPUN\";\n\t\n\tTIPO_ORIGEN_HOJA = \"HOJA\";\n\tTIPO_ORIGEN_EMPLEADO = \"EMPLEADO\";\n\n    \n    transform(value: any, ...args: any): any {\n        let result = value;\n\t\tif (args[0] == 'listaEstadoSolicitud') { this.ESTADOS_SOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n\t\tif (args[0] == 'listaTipo') { this.TIPOS_SOLICITUD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n        return result;\n    }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CoAutoresModel } from '../../models/CoAutoresModel';\nimport { GeneralPipe } from  '../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { SolicitudPuntajeDocentePipe } from '../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { HojaVidaModel } from '../../models/HojaVidaModel';\nimport { ConfirmationService } from 'primeng/api';\nimport { HojaVidaPipe } from '../../../../shared/pipes/hojavida.pipe';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n    selector: 'app-coautor',\n    templateUrl: './coautor.component.html',\n    styleUrls: ['./coautor.component.scss'],\n    standalone: true,\n    imports: [\n      ButtonModule,\n      RippleModule,\n      TableModule, TemplateTablaVaciaComponent,\n      InputTextModule,\n      DropdownModule,\n      CommonModule,\n      TranslateModule,\n      HojaVidaPipe,\n      FormsModule,\n      ReactiveFormsModule,\n    ]\n})\nexport class CoautorComponent implements OnInit {\n\n  public coAutoresDTO: CoAutoresModel = new CoAutoresModel();;\n\tpublic listadocoautores: CoAutoresModel[];\n\tpublic seleccionado: CoAutoresModel[];\n\tpublic boton_coautor: boolean;\n  public boton_coautorActualizar: boolean;\n  public nuevoscoautores: boolean;\n  public boton_nuevo: boolean = true;\n  public clickGuardar: boolean = false;\n\t@Input() public llave: string;\n\t@Input() public estadoCoautor: string;\n\n  constructor(private generalPipe: GeneralPipe,\n              private generalService: GeneralService,\n              public utilsService: UtilsService,\n              private authService: AuthService,\n              private notificacionesService: ToastService,\n              public hojaVidaPipe: HojaVidaPipe,\n              private confirmationService: ConfirmationService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              private solicitudPuntajeDocentePipe: SolicitudPuntajeDocentePipe) { }\n\n  ngOnInit(): void {\n    this.nuevoscoautores = false;\n    this.clickGuardar = false;\n    this.estado(this.estadoCoautor);\n    this.construirCoautor(this.llave).then(data => {});\n  }\n\n  async construirCoautor(llave: string) {\n    this.llave=llave;\n    await this.traerCoautor();\n\t}\n\t\n\testado(estado: string){\n    if (!estado) {\n      return;\n    }\n \t\tif(estado == this.solicitudPuntajeDocentePipe.PRODUCTOEVALUADO) {\n\t\t\tthis.boton_nuevo=false;\n\t\t\treturn;\n\t\t}\n\t\tif(estado == this.solicitudPuntajeDocentePipe.ENREVISION || estado == this.solicitudPuntajeDocentePipe.ENREVISIONCORRECCION) {\n\t\t\tthis.boton_nuevo=true;\n\t\t}else{\n\t\t\tif(this.authService.getTokenKey('isCliente')) {\n\t\t\t\tthis.boton_nuevo=false;\n\t\t\t}else{\n\t\t\t\tthis.boton_nuevo=true;\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\t\n  async traerCoautor() {\n\t\tthis.listadocoautores= [];\n\t\tif (!this.llave) {\n\t\t\treturn;\n\t\t}\n    var listaCoautor: CoAutoresModel[] = await this.generalService.queryForList(new GeneralModel('CoAutoresDTO', null, false, {hojaIntelecto: this.llave})).toPromise();\n    listaCoautor.forEach(couator => {\n      couator.nombre = couator.nombre.replace(/[^\\w\\s]/gi, '');\n      this.listadocoautores.push(couator);\n    })\n\t\t\n\t}\n\t\n\tasync guardarCoautor() {\n\t\tthis.clickGuardar = true;\n    if (!this.validarCoautor()) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      return;\n    }\n    this.clickGuardar = false;\n    this.coAutoresDTO.hojaIntelecto = this.llave;\n    this.coAutoresDTO.llave = this.utilsService.generarLlave();\n    if (this.coAutoresDTO.llave != null) {\n      this.coAutoresDTO.nombre = this.coAutoresDTO.nombre.replace(/[^\\w\\s]/gi, '');\n      this.coAutoresDTO = await this.generalService.crearRegistro(new GeneralModel('CoAutoresDTO', null, false, this.coAutoresDTO)).toPromise();\n      this.notificacionesService.showInfo('Se Adiciono coautor exitosamente');\n      await this.traerCoautor();\n      this.nuevoscoautores = false;\n    } else {\n      this.notificacionesService.showWarning('No se pudo adicionar el registro');\n    }\n\t}\n\n\tcargarCoautor(eve) {\n    this.coAutoresDTO = eve;\n    this.coAutoresDTO.nombre = this.coAutoresDTO.nombre.replace(/[^\\w\\s]/gi, '');\n    this.nuevoscoautores = true;\n    this.boton_coautor = false;\n    this.boton_coautorActualizar = true;\n\t}\n\t\n\tasync cambioCedula() {\n\t\tif ( this.coAutoresDTO.identificacion != null && this.coAutoresDTO.identificacion !=0) {\n      var hojaVerifica: HojaVidaModel = new HojaVidaModel();;\n      hojaVerifica.identifica = this.coAutoresDTO.identificacion;\n      hojaVerifica = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, hojaVerifica)).toPromise();\n      if ( hojaVerifica != null) {\n        console.log(hojaVerifica)\n        this.coAutoresDTO.nombre = (`${hojaVerifica.segundoapelli} ${hojaVerifica.primerapellid} ${hojaVerifica.nombres}`).substring(0, 80)\n      }\n\t\t}\n\t}\n\n\tnuevoCoautor() {\n    this.nuevoscoautores = true;\n    this.boton_coautorActualizar = false;\n    this.boton_coautor = true;\n    this.coAutoresDTO = new CoAutoresModel();;\n\t}\n\n\tcancelarCoautor() {\n\t\tthis.nuevoscoautores = false;\n\t}\n\n\tasync actualizarCoautor() {\n    this.clickGuardar = true;\n    if (!this.validarCoautor()) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      return;\n    }\n    this.clickGuardar = false;\n    if (this.coAutoresDTO.llave != null) {\n      this.coAutoresDTO.nombre = this.coAutoresDTO.nombre.replace(/[^\\w\\s]/gi, '');\n      await this.generalService.update(new GeneralModel('CoAutoresDTO', null, false, this.coAutoresDTO)).toPromise();\n      this.notificacionesService.showInfo('Se actualizó coautor exitosamente');\n      await this.traerCoautor();\n      this.coAutoresDTO = new CoAutoresModel();;\n      this.nuevoscoautores = false;\n    } else {\n      this.notificacionesService.showWarning('No se pudo adicionar el registro');\n    }\n\t}\n\n\teliminarCoautor(event) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: this.generalPipe.SI_DESC,\n      accept: async () => {\n        if (this.seleccionado.length == 0){\n          this.notificacionesService.showWarning('No se seleccionaron registros para eliminar');\n          return;\n        }\n        for (let i = 0; i < this.seleccionado.length; i++){\n          let coa = this.seleccionado[i];\n          await this.generalService.delete(new GeneralModel('CoAutoresDTO', null, false, coa)).toPromise();\n        }\n        await this.traerCoautor();\n        this.notificacionesService.showInfo('Se eliminaron los coautores exitosamente');\n        this.coAutoresDTO = new CoAutoresModel();\n  }\n    });\n\t\n\t}\n\n\tvalidarCoautor() {\n\t\tvar validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.coAutoresDTO.nombre);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.coAutoresDTO.tipo);\n\t\t\n\t\treturn validador;\n\t}\n\n}\n","<div class=\"flex justify-content-between align-items-center mb-2 mt-3\">\n    <h1>{{'couautores' | translate}}</h1>\n    <div class=\"flex justify-content-end\" *ngIf=\"!nuevoscoautores\">\n        <button pButton pRipple (click)=\"nuevoCoautor()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"controlFuncionService.getControlFuncionalidad('coautor:crear') && boton_nuevo\"\n            icon=\"pi pi-plus\" class=\"p-button-secondary font-semibold flex-shrink-0 ml-4 mr-2\"></button>\n        <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_eliminar' | translate}}\" *ngIf=\"controlFuncionService.getControlFuncionalidad('coautor:eliminar')\"\n            (click)=\"eliminarCoautor($event)\"><i class=\"glyphicons glyphicons-bin\"></i></button>\n    </div>\n    <div class=\"flex justify-content-end\" *ngIf=\"nuevoscoautores\">\n        <button pButton pRipple (click)=\"nuevoscoautores = false; seleccionado = []\" label= \"{{'listado' | translate}} {{'coautor' | translate}}\" \n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n    </div>\n</div>\n<p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listadocoautores\" [rows]=\"10\" *ngIf=\"!nuevoscoautores\"\n    [totalRecords]=\"listadocoautores.length\" [paginator]=\"listadocoautores.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    [(selection)]=\"seleccionado\">\n    <ng-template pTemplate=\"header\">\n\n        <tr class=\"fondoTablaPincipal\">\n            <th [style.width.px]=\"60\" [style.flex]=\"'0 1 auto'\">\n                <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n            </th>\n            <th>{{'nombre' | translate}}</th>\n            <th>{{'identificacion' | translate}}</th>\n            <th>{{'tipo' | translate}} {{'coautor' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-bean>\n        <tr>\n            <td [style.width.px]=\"60\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n                <p-tableCheckbox [value]=\"bean\"></p-tableCheckbox>\n            </td>\n            <td [pSelectableRow]=\"bean\" (click)=\"cargarCoautor(bean)\">\n                {{bean.nombre}}</td>\n            <td [pSelectableRow]=\"bean\" (click)=\"cargarCoautor(bean)\">\n                {{bean.identificacion}}</td>\n            <td [pSelectableRow]=\"bean\" (click)=\"cargarCoautor(bean)\">\n                {{bean.tipo | hojaVidaPipe : 'tipoCoautor'}}</td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n<div class=\"card mt-3\" *ngIf=\"nuevoscoautores\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n    <div class=\"col-md-12\">\n        <div class=\"Detallereporte mt-2\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <div class=\"field col-12 md:col-4\">\n                    <span class=\"p-float-label\">\n                        <span class=\"p-float-label\">\n                            <input pInputText type=\"text\" [(ngModel)]=\"coAutoresDTO.identificacion\" size=\"14\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 14);\" \n                                (change)=\"cambioCedula()\" [class]=\"!utilsService.validarCampoObligatorio(coAutoresDTO.identificacion) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" >\n                            <label>{{'identificacion' | translate}} *</label>\n                        </span>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-4\">\n                    <span class=\"p-float-label\">\n                        <span class=\"p-float-label\">\n                            <input pInputText type=\"text\" [(ngModel)]=\"coAutoresDTO.nombre\" size=\"80\" [class]=\"!utilsService.validarCampoObligatorio(coAutoresDTO.nombre) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" >\n                            <label>{{'nombre' | translate}} *</label>\n                        </span>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-4\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"hojaVidaPipe.COAUTORES\" [autoDisplayFirst]=\"false\" [(ngModel)]=\"coAutoresDTO.tipo\"\n                            optionLabel=\"nombre\" optionValue=\"codigo\" [class]=\"!utilsService.validarCampoObligatorio(coAutoresDTO.tipo) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"></p-dropdown>\n                        <label>{{'tipo' | translate}} {{'coautor' | translate}} *</label>\n                    </span>\n                </div>\n            </div>\n            <div class=\"flex justify-content-end mb-3\">\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"guardarCoautor()\" *ngIf=\"boton_coautor && controlFuncionService.getControlFuncionalidad('coautor:guardar')\"\n                    icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" >\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizarCoautor()\" *ngIf=\"boton_coautorActualizar && controlFuncionService.getControlFuncionalidad('coautor:guardar')\"\n                    icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" >\n                </button>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { HojaVidaModel } from '../../models/HojaVidaModel';\nimport { VinculacionModel } from '../../models/VinculacionModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-cambiar-tipo-hoja',\n    templateUrl: './cambiar-tipo-hoja.component.html',\n    styleUrls: ['./cambiar-tipo-hoja.component.scss'],\n    standalone: true,\n    imports: [DialogModule, DropdownModule, FormsModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class CambiarTipoHojaComponent implements OnInit {\n\n  @Input() mostrar: boolean;\n  @Input() hojaVidaInsert;\n  @Output() regresar = new EventEmitter();\n  @Output() retorno = new EventEmitter();\n  public hojaVida: HojaVidaModel = new  HojaVidaModel();\n  public clickGuardar: boolean = false;\n  public listaTipoVincula: VinculacionModel[] = [];\n\n  constructor(private authService: AuthService,\n              private generalPipe: GeneralPipe,\n              private notificacionService: ToastService,\n              public utilsService: UtilsService,\n              private generalService: GeneralService) { }\n\n  ngOnInit(): void {\n    this.clickGuardar = false;\n    this.hojaVida = new HojaVidaModel();\n    let objeto2 = new GeneralModel('EmpresaDTO', null, false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))});\n    this.generalService.queryForObject(objeto2).subscribe(data => {\n      this.hojaVida.organizacion = data.organizacion;\n      this.generalService.queryForList(new GeneralModel('VinculacionDTO', null, false, {origen: 'F', modo: data.modoHojavida})).subscribe (data => {\n        this.listaTipoVincula = data;\n      })\n    })\n  }\n\n  openDataTable() {\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  public ocultar() {\n    this.regresar.emit();\n    this.mostrar = false;\n  }\n\n  validar() {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.hojaVida.tipohoja)\n    return validador;\n  }\n\n  consultar() {\n    this.clickGuardar = true;\n    if (!this.validar()) {\n      this.notificacionService.showError('Faltan campos obligatorios');\n      return;\n    }\n    this.clickGuardar = false;\n    if (this.hojaVidaInsert.tipohoja != this.hojaVida.tipohoja){\n      this.hojaVidaInsert.tipohoja = this.hojaVida.tipohoja\n      this.generalService.update(new GeneralModel('HojaVidaDTO', null, false, this.hojaVidaInsert)).subscribe({\n        next: (data) => {\n          this.notificacionService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR)\n          window.top.location.href = this.utilsService.obtenerBase() + '/hojavida/listadoHojaVida/US_editar/'+this.hojaVidaInsert.identifica\n        },\n      })\n    } else {\n      this.notificacionService.showWarning('El valor seleccionado debe ser diferente al actual')\n    }\n  }\n\n}\n","<p-dialog id='popupCambiarTipoHoja' header=\"{{'cambiar' | translate}} {{'tipo' | translate}} {{'hoja' | translate}}\"\n    [(visible)]=\"mostrar\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onShow)=\"openDataTable()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <div class=\"col-md-12\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <!-- ESTADO -->\n            <div class=\"field col-12 md:col-12\">\n                <span class=\"p-float-label\">\n                    <p-dropdown [options]=\"listaTipoVincula\" id=\"id_tipohoja\" [autoDisplayFirst]=\"false\" appendTo=\"body\" \n                        [class]=\"!utilsService.validarCampoObligatorio(hojaVida.tipohoja) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"\n                        [(ngModel)]=\"hojaVida.tipohoja\" optionLabel=\"descripcion\" optionValue=\"vinculacion\"></p-dropdown>\n                    <label htmlFor=\"id_tipohoja\">{{'tipohoja' | translate}} * </label>\n                </span>\n            </div>\n\n        </div>\n    </div>\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-check\"\n            label=\"{{'link_aplicar' | translate}}\" (click)=\"consultar()\">\n        </button>\n    </div>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class PlanillaModel extends UnionModel {\n\n\tplanilla: string;\n\tdescripcionPlanilla: string;\n\ttipoCambio: string;\n\testado: string;\n\tincluirFactor: string;\n\tincluirBasico: string;\n\tincluirCupo: string;\n\ttitulo1: string;\n\ttitulo2: string;\n\ttitulo3: string;\n\ttitulo4: string;\n\trutaArchivo: string;\n\tnombreVista: string;\n\treporte: string;\n\tperiodo: string;\n\tvinculacion: string;\n\tvinculacionEmpleado: number;\n\tfiltro: string;\n\tseleccion: string;\n\tempresa: number;\n\trenderTipoPlantilla: boolean;\n\tobjeto: string;\n\ttipo: string;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tlineaCosto: string;\n\ttipoPeriodo: number;\n\tpiePagina: string;\n\tpublicacionWeb: string;\n\tnivelCargo: string;\n\tfiltroAdicional: string;\n\tplanillaImpresion: string;\n\tplanillaOtroSi: string;\n\torganizacion: number;\n\ttipoServicioUno: string;\n\ttipoServicioDos: string;\n\ttipoServicioTres: string;\n\ttipoServicioCuatro: string;\n\tmodo: string;\n\tdescripcionModo: string;\n\tnumeroLineasEncabezado: number;\n\tnumeroLineasdetalle: number;\n\tnumeroLineasFinal: number;\n\torden: string;\n\ttipoPlanilla: string;\n\tmostrarValor3: string;\n\ttipoHoja: string;\n\tdestino: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class VinculacionModel extends UnionModel {\n\n\tvinculacion: string;\n\tdescripcion: string;\n\tnovedaddirecta: string;\n\tcreahoja: string;\n\tgrupo: string;\n\tversion: number;\n\tseleccion: string;\n\torigen: string;\n\tformulario: string;\n\tformularioCambiar: string;\n\temailNovedadAprobada: string;\n\temailNovedadRechazada: string;\n\tgestionPeriodo: string;\n\tmodo: string;\n\tdescripcionModo: string;\n\n\t\n\t\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class OrganizacionModel extends UnionModel {\n\n    organizacion: number;\n\tdescripcion: string;\n\tverContrato: string;\n\tdibujo: string;\n\tasignarContrato: string;\n\tnumeroDuplica: string;\n\tactualizacion: string;\n\tversion: string;\n\tversionFile: string;\n\tempresa: number;\n\tdiasreclamacion: number;\n\thojaNumero: string;\n\tfinalActualiza: string;\n    numeroPunto: number;\n\tnombreArchivo: string;\n\tunidadesTransversales: string;\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { AreaConocimientoModel } from '../models/AreaConocimientoModel';\nimport { HojaVidaModel } from '../models/HojaVidaModel';\nimport { OrganizacionModel } from '../../talento/models/OrganizacionModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class HojaVidaService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService,\n    private generalService: GeneralService, private generalPipe: GeneralPipe\n  ) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    console.log(JSON.stringify(error.error))\n    console.log(error.status)\n\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarHojaVida(objeto): Observable<any> {\n    let aspirante = false;\n    if (window.location.href.includes(\"listadoHojaVidaAspirante\")){\n      aspirante = true;\n    }\n    objeto['aspirante'] = aspirante;\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/cargarHojaVida`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarSeccion(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/cargarSeccion`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  modificarObjeto(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/modificarObjeto`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardar(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/guardar`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarAnexo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/guardarAnexo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarAnexo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/eliminarAnexo`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  nuevaHojaVida(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/nuevaHojaVida`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerListaAnexos(objeto): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/obtenerListaAnexos`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarHojaVida(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/eliminarHojaVida`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminar(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/eliminar`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cambiarHojaVida(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/cambiarHojaVida`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  insertAdjuntoTabla(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/insertAdjuntoTabla`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarValor(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/cargarValor`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerPlanillaSQL(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/obtenerPlanillaSQL`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerUnidadCargo(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/obtenerUnidadCargo`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarProcesoSeleccionCandidato(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/actualizarProcesoSeleccionCandidato`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  selecionPerfilRequerimiento(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/selecionPerfilRequerimiento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  imprimirHojaPublica(parametroGeneral: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/imprimirHojaPublica`, parametroGeneral,).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  imprimirPlanilla(parametroGeneral: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/imprimirPlanilla`, parametroGeneral, {\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  activarNovedad(parametroGeneral: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/activarNovedad`, parametroGeneral, {\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  respuestasUsuario(parametroGeneral: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/respuestasUsuario`, parametroGeneral, {\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  validaIngresoCedula(parametroGeneral: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/validaIngresoCedula`, parametroGeneral, {\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerListaAreaConocimiento(): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/traerListaAreaConocimiento`, null).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  camposAnotacionImpresionHoja(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/camposAnotacionImpresionHoja`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  crearInstitucion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/crearInstitucion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  getNombreCompleto(hojaVida: HojaVidaModel): string {\n\n    if (hojaVida.segundoapelli != null || hojaVida.segundoapelli != undefined) {\n      if (hojaVida.primerapellid != null || hojaVida.primerapellid != undefined) {\n        if (hojaVida.nombres != null || hojaVida.nombres != undefined) {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ' + hojaVida.segundoapelli + ' ' + hojaVida.nombres;\n        } else {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ' + hojaVida.segundoapelli + ' ';\n        }\n      } else {\n        hojaVida.nombreCompleto = ' ' + hojaVida.segundoapelli + ' ' + hojaVida.nombres;\n      }\n    } else {\n      if (hojaVida.primerapellid != null || hojaVida.primerapellid != undefined) {\n        if (hojaVida.nombres != null || hojaVida.nombres != undefined) {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ' + hojaVida.nombres;\n        } else {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ';\n        }\n      } else {\n        hojaVida.nombreCompleto = ' ';\n      }\n    }\n    return hojaVida.nombreCompleto\n  }\n\n  async isDocumentoNumerico(llaveOrganizacion: number): Promise<boolean> {\n    let organizacionDTO = new OrganizacionModel();\n    organizacionDTO.organizacion = llaveOrganizacion;\n    let objetoOrganizacion = new GeneralModel('OrganizacionDTO', null, false, organizacionDTO);\n    organizacionDTO = await this.generalService.queryForObject(objetoOrganizacion).toPromise();\n    \n    return organizacionDTO == null || !(this.generalPipe.NO == organizacionDTO.hojaNumero);\n  }\n\n}\n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { HojaVidaModel } from '../../models/HojaVidaModel';\nimport { PlanillaModel } from '../../../../modules/compensacion/models/PlanillaModel';\nimport { VinculacionModel } from '../../models/VinculacionModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { HojaVidaService } from '../../services/hojavida.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-hojavida-impresion',\n    templateUrl: './popup-hojavida-impresion.component.html',\n    styleUrls: ['./popup-hojavida-impresion.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule]\n})\nexport class PopupHojavidaImpresionComponent implements OnInit {\n\n  @Input() mostrar: boolean;\n  @Input() hojaVida: HojaVidaModel;\n  @Output() regresar = new EventEmitter();\n  public listaPlanilla: PlanillaModel[] = [];\n\n  constructor(private generalService: GeneralService,\n              private notificacionesService: ToastService,\n              private listaConstantesPipe: ListaConstantesPipe,\n              private hojaVidaService: HojaVidaService,\n              private utilsService: UtilsService,\n              private authService: AuthService,\n  ) { }\n\n  ngOnInit(): void {\n    this.cargarPlanilla().then(data => {this.utilsService.resizeWindowIFrame()});\n  }\n\n  openDataTable() {\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  async cargarPlanilla(){\n    var filtroPlanilla = new PlanillaModel();\n\t\tvar vinculacion = new VinculacionModel();\n\t\tif (this.hojaVida.tipohoja == null) {\n\t\t\tthis.hojaVida = new HojaVidaModel();\n\t\t\tthis.notificacionesService.showWarning(\"El usuario no tiene tipo de hoja asociado.\");\n\t\t\treturn;\n\t\t}\n\t\tvinculacion.vinculacion = this.hojaVida.tipohoja;\n\t\tvinculacion = await this.generalService.queryForObject(new GeneralModel('VinculacionDTO', null, false, vinculacion)).toPromise();\n\t\tif (vinculacion == null || vinculacion.formulario == null || vinculacion.formulario == '.') {\n\t\t\tthis.notificacionesService.showWarning(\"El usuario no tiene tipo de hoja asociado.\");\n\t\t\treturn;\n\t\t}\n\t\tthis.listaPlanilla = [];\n\t\tfiltroPlanilla.modo = vinculacion.modo;\n\t\tfiltroPlanilla.periodo = this.listaConstantesPipe.IMPRESION_PERIODO;\n\t\tfiltroPlanilla.tipo = this.listaConstantesPipe.IMPRESION_HOJAINTERNA;\n\t\tfiltroPlanilla.tipoHoja = this.hojaVida.tipohoja;\n\t\tthis.listaPlanilla = await this.generalService.queryForList(new GeneralModel('PlanillaDTO', null, false, filtroPlanilla)).toPromise();\n  }\n\n  ver(event) {\n    var planilla = event.data;\n    this.hojaVidaService.imprimirPlanilla({identifica: this.hojaVida.identifica, planilla: planilla, aspirante: false}).subscribe(async data => {\n      const decodedData = atob(data.archivo);\n      const byteNumbers = new Array(decodedData.length);\n      for (let i = 0; i < decodedData.length; i++) {\n        byteNumbers[i] = decodedData.charCodeAt(i);\n      }\n      const byteArray = new Uint8Array(byteNumbers);\n      const blob = new Blob([byteArray], { type: data.mime });\n      const url = URL.createObjectURL(blob);\n      const link = document.createElement('a');\n      link.href = url;\n      link.download = 'Hoja Vida.pdf';\n      document.body.appendChild(link);\n      link.click();\n      URL.revokeObjectURL(url);\n      this.notificacionesService.showSuccess('Reporte generado correctamente');\n      this.ocultar();\n    });\n  }\n\n  public ocultar() {\n    this.regresar.emit();\n    this.mostrar = false;\n  }\n}\n","<p-dialog header=\"{{'imprimir' | translate}}\" [(visible)]=\"mostrar\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" \n    [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" (onShow)=\"openDataTable()\" [modal]=\"true\" [draggable]=\"true\" appendTo=\"body\">\n\n    <p-table [value]=\"listaPlanilla\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\" dataKey=\"planilla\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"   styleClass=\"p-datatable-striped input-helper-datatable\"\n        (onRowSelect)=\"ver($event)\" (onRowUnselect)=\"ver($event)\" [rows]=\"10\" [totalRecords]=\"listaPlanilla.length\" [paginator]=\"listaPlanilla.length > 10\" >\n\n        <ng-template pTemplate=\"header\">\n\n            <tr class=\"fondoTablaPincipal\">\n                <th>{{'descripcion' | translate }}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n                <td>{{bean.descripcionPlanilla}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class EquipoIntegranteModel extends UnionModel{\n\n\t\n\t\n\tllave: string;\n\tseccion: string;\n\tidentifica: number;\n\thojaVidaCandidato: number;\n\tequipotrabajo: string;\n\tnombreEquipotrabajo: string;\n\tparticipacion: string;\n\tnombreParticipacion: string;\n\tprogramaacademico: string;\n\tnombreProgramaacademico: string;\n\tinicio: Date;\n\ttermina: Date;\n\tobjetivo: string;\n\taprobada: string;\n\tpublica: string;\n\tnombrePublica: string;\n\tlistaCodigos: string;\n\tnombreListaCodigos: string;\n\tmodificaPuntaje: string;\n\tcomodin: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class HojaIntelectoDTO  extends UnionModel  {\n\n\t\n\t\n\tllave: string;\n\tseccion: string;\n\tidentifica: number;\n\thojaVidaCandidato: number;\n\tpublicacion: Date;\n\tllaveRevista: string;\n\tnombreLlaveRevista: string;\n\tisbn: string;\n\tnombre: string;\n\tnuevoNombre: string;\n\tllaveInstitucion: number;\n\tnombreLlaveInstitucion: string;\n\tllaveInstitucion2: number;\n\tnombreLlaveInstitucion2: string;\n\ttipoPublicacion: string;\n\tnombreTipoPublicacion: string;\n\ttipoProduccion: string;\n\tnombreTipoProduccion: string;\n\tnumero: number;\n\ttiraje: number;\n\tvolumen: number;\n\tpaginaInicial: number;\n\tpaginaFinal: number;\n\tfacultad: string;\n\tnombreFacultad: string;\n\tllaveProgramaAcademico: string;\n\tnombreLlaveProgramaAcademico: string;\n\tdistincion: string;\n\tnombreDistincion: string;\n\tmaterial: string;\n\tnombreMaterial: string;\n\tparticipacion: string;\n\tnombreParticipacion: string;\n\tlugar: string;\n\tmedioEdicion: string;\n\tnombreMedioEdicion: string;\n\tmedioDifusion: string;\n\tnombreMedioDifusion: string;\n\tduracion: number;\n\tmotivoReconocimiento: string;\n\tnombreMotivoReconocimiento: string;\n\ttrabajoPremiado: string;\n\tllaveNuevoIdioma: string;\n\tnombreLlaveNuevoIdioma: string;\n\texperiencia: string;\n\tnombreExperiencia: string;\n\tinicial: Date;\n\tfechaFinal: Date;\n\tnivelFormativo: string;\n\tnombreNivelFormativo: string;\n\tactividad: string;\n\thorasSemana: number;\n\thorasSemestre: number;\n\thorasTotales: number;\n\testudiantes: number;\n\tentidadFinancia: string;\n\ttipoCapacitacion: string;\n\tnombreTipoCapacitacion: string;\n\tentidad: string;\n\tllaveProfesionOficio: string;\n\tnombreLlaveProfesionOficio: string;\n\tperiodoCursado: string;\n\ttitulo: string;\n\tllaveNivelAcademico: string;\n\tnombreLlaveNivelAcademico: string;\n\tterminado: string;\n\tnombreTerminado: string;\n\tobservacion: string;\n\tgrado: Date;\n\tactaGrado: string;\n\ttarjeta: string;\n\tmodalidadGrado: string;\n\tnombreModalidadGrado: string;\n\ttrabajoGrado: string;\n\ttipoPeriodo: string;\n\tnombreTipoPeriodo: string;\n\tcertificacion: string;\n\tareaCapacitacion: string;\n\tnombreAreaCapacitacion: string;\n\tsoporte: string;\n\tnombreSoporte: string;\n\ttiempoEmpresa: number;\n\tfechaHomologacion: Date;\n\thomologacion: string;\n\ttipoEscalafon: string;\n\tnombreTipoEscalafon: string;\n\tnumeroActa: string;\n\texpedida: string;\n\tjefe: string;\n\tdireccion: string;\n\ttelefono: string;\n\tcargo: string;\n\tsalario: number;\n\tmotivoRetiro: string;\n\tconfirmado: string;\n\tnombreConfirmado: string;\n\tverifica: Date;\n\tdedicacion: string;\n\tnombreDedicacion: string;\n\ttrabajoActual: string;\n\ttipoAreaExperiencia: string;\n\tnombreTipoAreaExperiencia: string;\n\tpuntaje: string;\n\tnombrePuntaje: string;\n\taprobada: string;\n\tpublica: string;\n\tnombrePublica: string;\n\tmodificaPuntaje: string;\n\tnombreModificaPuntaje: string;\n\tactaComite: string;\n\tfichaTecnica: string;\n\tambito: string;\n\tnombreAmbito: string;\n\tllaveIdioma: string;\n\tnombreLlaveIdioma: string;\n\tcaracteristicaIdioma: string;\n\tnombreCaracteristicaIdioma: string;\n\tciudad: string;\n\tnombreCiudad: string;\n\tpais: string;\n\tnombrePais: string;\n\tareaconocimiento: string;\n\tnombreAreaconocimiento: string;\n\tperiodos: number;\n\thorascertificadas: number;\n\tunidadtiempo: string;\n\tnombreUnidadTiempo: string;\n\tmodalidadMemoria: string;\n\tnombreModalidadMemoria: string;\n\ttitulonuevo: string;\n\ttipodocumento: \tstring;\n\tnombreTipoDocumento: string;\n\ttipopatente: string;\n\tnombreTipoPatente: string;\n\tlistaCodigos: string;\n\tnombreListaCodigos: string; \n\tubicacionFisica: string;\n\tnombreUbicacionFisica: string;\n\tresumen: string;\n\tcomodin: string;\n\thomologado: boolean;\n\tnombreSeccion: string;\n\taprobadabool: string;\n\tllaveHojaVida: number;\n\tnombreHojaVida: string;\n\tnivelAcademico: string;\n\tdocumento: string;\n\tnroCoautores: number;\n\tproyecto: string;\n\tnombreProyecto: string;\n\tcodigoCargo: string;\n\tnombreCodigoCargo: string;\n\t\n\t//campos cpun\n\tcontrato: number;\n\tempresa: number;\n\tdescripcion: string;\n\ttipoOrigen: string;\n\tregistroHistorico: string;\n\tllaveOrigen: string;\n\tllaveBase:string;\n\t}\n","import { UnionModel } from 'general-library-union'\n\nexport class HojaParienteModel extends UnionModel{\n\n\tllave: string;\n\tseccion: string;\n\tidentifica: number;\n\ttipodocumento: string;\n\tnombreTipodocumento: string;\n\tdocumentopariente: string;\n\thojaVidaCandidato: number;\n\tcedula: number;\n\tparentesco: string;\n\tparentescoTipo: string;\n\tnombreParentesco: string;\n\tnombres: string;\n\tprimerapellid: string;\n\tsegundoapellid: string;\n\tnacimiento: Date;\n\tocupacion: string;\n\tentidad: string;\n\tcargo: string;\n\tnivelacadem: string;\n\tnombreNivelacadem: string;\n\tdireccion: string;\n\tbarrio: string;\n\ttelefono: string;\n\tsexo: string;\n\tdepende: string;\n\tingresomes: number;\n\tobservacion: string;\n\taprobada: string;\n\tpublica: string;\n\tlistaCodigos: string;\n\tnombreListaCodigos: string;\n\tdiscapacidad: string;\n\tprofecionOficio: string;    \n\tnombreProfecionOficio: string;\n\tubicacionGeografica: string;\n\tciudad2: string;\n\tnombreCiudad2: string;\n\tplantilla: \tstring;\n\tmodificaPuntaje: string;\n\tcomodin: string;\n\tnombreUbicacionGeografica: string;\n\tnombreSexo: string;\n\texterno: string;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class HojaPatrimonioModel extends UnionModel{\n\n    \n\t\n\tllave: string;\n\tseccion: string;\n\tidentifica: number;\n    hojaVidaCandidato: number;\n\tdireccion: string;\n    barrio: string;\n    telefono: string;\n    tipoinmueble: string;\n    nombreTipoinmueble: string;\n    valorcomercial: number;\n    hipoteca: string;\n    nombreHipoteca: string;\n    tipobien: string;\n    nombreTipobien: string;\n    descripcion: string;\n    marca: string;\n    valor: number;\n    reserva: string;\n    nombreReserva: string;\n    tiporeferencia: string;\n    nombreTiporeferencia: string;\n    entidad: string;\n    observacion: string;\n    agencia: string;\n    tipocuenta: string;\n    nombreTipocuenta: string;\n    cuenta: string;\n    apertura: Date;\n    asociacion: string;\n    ambito: string;\n    nombreAmbito: string;\n    tiempo: number;\n    retiro: Date;\n    pais: string;\n    nombrePais: string;\n    ciudad: string;\n    nombreCiudad: string;\n    aprobada: string;\n    publica: string;\n    nombrePublica: string;\n    tipovinculacion: string;\n    listaCodigos: string;\n    nombreListaCodigos: string;\n\tmodificaPuntaje: string;\n    comodin: string;\n    \n }\n","import { UnionModel } from 'general-library-union'\n\n\nexport class SeccionModel extends UnionModel {\n\n\t\n\tllave: string;\n\t/** La llave de la categoría dentro de la cual se encuentra esta seccion*/\n\tcategoria: string; \n\tdescripcion: string;\n\t/** La posicion en la cual se presenta esta seccion dentro de la categoría*/\n\torden: number;\n\tplantilla: string;\n\tmensaje: string;\n\tmensajeFinal: string;\n\tformulario: string;\n\tcategoriaDescripcion: string;\n\tpuntaje: string;\n\texterno: string;\n\tmensajeAutor: string;\n\tcoautores: string;\n\tpuntajeArchivo: string;\n\tpuntajeArchivoencriptado: string;\n\tplantillaImpresion: string;\n\tanexo: string;\n\tdiferente: string;\n\tnovedadIngreso: string;\n\ttextoConfirma: string;\n\t\n\t//no persistente\n\tvinculacion:number ;\n\tfuenteOrigen:string ;\n\tcontrato:number ;\n\tcedula:number ;\n\thojaVidaCandidato:number ;\n\tempresa:number ;\n\t/** Usado para consultar las secciones de hoja de vida asociadas/noAsociadas a un rol (loginAcceso)*/\n\taliasRol: string;\n\tcantidadHoja: number;\n\tacreditaInfo: string;\n\tdescripcionIdioma: string;\n\ttextoConfirmaIdioma: string;\n\tmensajeFinalIdioma: string;\n\tmensajeIdioma: string;\n\tidioma: string;\n\tfechaSolicitud: Date;\n\tcontrolFecha: number;\n\textensionArchivo: string;\n\n\t\n    \n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class HojaNotaSeccionModel extends UnionModel {\n\n\thojavida: number;\n\ttipo: string;\n\tnombrecreo: string;\n\ttexto: string;\n\tseccion: string;\n\tacreditaInfo: string;\n\thojaVidaCandidato: number;\n\t\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { HojaVidaModel } from '../../models/HojaVidaModel';\nimport { AuthService, GeneralModel, GeneralService, StorageService, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { EmpresaModel } from '../../models/EmpresaModel';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { TipoDocumentoModel } from '../../models/TipoDocumentoModel';\nimport { HojaVidaService } from '../../services/hojavida.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n  selector: 'app-popup-cambiar-cedula',\n  templateUrl: './popup-cambiar-cedula.component.html',\n  styleUrls: ['./popup-cambiar-cedula.component.scss'],\n  standalone: true,\n  imports: [DialogModule, FormsModule, InputTextModule, NgIf, InputNumberModule, DropdownModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupCambiarCedulaComponent implements OnInit {\n\n  @Input() mostrar: boolean = false;\n  @Input() hojaVida: HojaVidaModel;\n  @Output() regresar = new EventEmitter();\n\n  empresa: EmpresaModel;\n  organizacion;\n  documentoNumerico: boolean;\n  listaTipoDocumento: TipoDocumentoModel[] = [];\n  clickGuardar: boolean = false;\n  cambioAplicado: boolean = false;\n  hojaVidaCambia: HojaVidaModel = new HojaVidaModel();\n\n  constructor(\n    private generalService: GeneralService,\n    private storage: StorageService,\n    private cargarMapas: cargarmapasGlobal,\n    private hojaVidaService: HojaVidaService,\n    private notificacionesService: ToastService,\n    public utilService: UtilsService,\n    private authService: AuthService,\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.hojaVidaCambia = { ...this.hojaVida };\n    this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: this.storage.getDecodedJWT().numeroEmpresa })).subscribe(data => {\n      this.empresa = data;\n      this.generalService.queryForObject(new GeneralModel('OrganizacionDTO', null, false, { organizacion: this.empresa.organizacion })).subscribe(data => {\n        this.organizacion = data;\n        if (this.organizacion == null || this.organizacion.hojaNumero == Constantes.CONSTANTE_SI) {\n          this.documentoNumerico = true;\n        } else {\n          this.documentoNumerico = false;\n        }\n      })\n    });\n    this.listaTipoDocumento = await this.cargarMapas.cargarSelectItemString('documento', 'descripcion', new GeneralModel('TipoDocumentoDTO', null, false, { origen: 'H' }));\n  }\n\n  openDataTable() {\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  /*Metodo cambia hoja vida */\n  async cambioCedula(p_cedula, p_cedulaNuevo, p_tipoNuevo, p_organizacion) {\n    await this.hojaVidaService.cambiarHojaVida({ cedula: p_cedula, cedulaNuevo: p_cedulaNuevo, tipoNuevo: p_tipoNuevo, organizacion: p_organizacion }).toPromise();\n    this.cambioAplicado = true;\n  }\n\n  validar(): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilService.validarCampoObligatorio(this.hojaVidaCambia.documento);\n    validador = validador && this.utilService.validarCampoObligatorio(this.hojaVidaCambia.tipodocumento);\n    return validador;\n  }\n\n  /*metodo Validacion */\n  async validarAction() {\n    this.clickGuardar = false;\n    if (!this.validar()) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    if (this.documentoNumerico) {\n      await this.cambioCedula(this.hojaVidaCambia.identifica, this.hojaVidaCambia.documento, this.hojaVidaCambia.tipodocumento, this.empresa.organizacion);\n    } else {\n      let hojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, { identifica: this.hojaVidaCambia.identifica })).toPromise();\n      let cedulaAntes: Number = null;\n      if (Number(this.hojaVidaCambia.documento.trim())) {\n        if (hojaVidaDTO.documento == null || Number(hojaVidaDTO.documento)) {\n          cedulaAntes = Number(hojaVidaDTO.documento)\n        }\n      }\n      if (cedulaAntes != null && cedulaAntes == hojaVidaDTO.identifica) {\n        await this.cambioCedula(this.hojaVidaCambia.identifica, Number(this.hojaVidaCambia.documento), this.hojaVidaCambia.tipodocumento, this.empresa.organizacion);\n      } else {\n        let objetoConsulta: HojaVidaModel = hojaVidaDTO;\n        objetoConsulta.documento = this.hojaVidaCambia.documento;\n        objetoConsulta.tipodocumento = this.hojaVidaCambia.tipodocumento;\n        objetoConsulta.fechaAdicionado = new Date(objetoConsulta.fechaAdicionado);\n        objetoConsulta.fechaModificado = new Date();\n        objetoConsulta.nacimiento = new Date(objetoConsulta.nacimiento);\n        objetoConsulta.fechaExpedicion = new Date(objetoConsulta.fechaExpedicion);\n        if ((await this.generalService.update(new GeneralModel('HojaVidaDTO', null, false, objetoConsulta)).toPromise()) <= 0) {\n          this.notificacionesService.showWarning(Constantes.MENSAJE_ACTUALIZAR_NO);\n          return\n        }\n        this.cambioAplicado = true;\n      }\n    }\n    if (this.cambioAplicado) {      \n      this.notificacionesService.showSuccess('Proceso de cambio de cédula realizado correctamente');      \n    }\n    await this.utilService.sleep(500);\n    this.ocultar();\n  }\n\n  async ocultar() {\n    let consultaHV: HojaVidaModel = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, { documento: this.hojaVidaCambia.documento })).toPromise();\n    this.regresar.emit({ aplicado: this.cambioAplicado, hojavida: consultaHV });\n  }\n\n}\n","<p-dialog id='popupCambiarCedula' header=\"{{'cambiar' | translate}} {{'cedula' | translate}}\" [(visible)]=\"mostrar\"\n    [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onHide)=\"ocultar()\" (onShow)=\"openDataTable()\" [modal]=\"true\">\n\n    <div class=\"contenedor p-fluid grid\">\n        <!-- NOMBRES -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"documento\" maxlength=\"20\" [(ngModel)]=\"hojaVidaCambia.nombreCompleto\" autocomplete=\"off\"\n                    [disabled]=\"true\">\n                <label htmlFor=\"documento\">{{'Nombres' | translate}}</label>\n            </span>\n        </div>\n        <!-- DOCUMENTO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"documentoNumerico\">\n            <span class=\"p-float-label\">\n                <p-inputNumber mode=\"decimal\" inputId=\"withoutgrouping\" [useGrouping]=\"false\" [maxlength]=\"16\"\n                    autocomplete=\"off\" [(ngModel)]=\"hojaVidaCambia.documento\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(hojaVidaCambia.documento) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(hojaVidaCambia.documento) && clickGuardar\"></p-inputNumber>\n                <label htmlFor=\"documento\">{{'Documento' | translate}} *</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!documentoNumerico\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"documento\" maxlength=\"20\" autocomplete=\"off\" [(ngModel)]=\"hojaVidaCambia.documento\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(hojaVidaCambia.documento) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(hojaVidaCambia.documento) && clickGuardar\">\n                <label htmlFor=\"documento\">{{'Documento' | translate}} *</label>\n            </span>\n        </div>\n        <!-- TIPO DOCUMENTO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipodocumento\" [options]=\"listaTipoDocumento\" [autoDisplayFirst]=\"false\"\n                    optionLabel=\"label\" optionValue=\"key\" appendTo=\"body\"\n                    [(ngModel)]=\"hojaVidaCambia.tipodocumento\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(hojaVidaCambia.tipodocumento) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(hojaVidaCambia.tipodocumento) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"tipodocumento\">{{'tipodocumento' | translate}} *</label>\n            </span>\n        </div>\n    </div>\n    <!-- CRUD BOTONES -->\n    <div class=\"flex justify-content-end mt-1\">\n        <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-check\"\n            label=\"{{'link_aplicar' | translate}}\" (click)=\"validarAction()\">\n        </button>\n    </div>\n</p-dialog>","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EncriptadoBasicoService {\n\n  tam: any[] = ['e', 'a', 'c', 'd'];\n\n  constructor() { }\n\n  encriptar(original: string): string {\n\n    if (original == null) {\n      return null;\n    }\n\n    let res: string = '';\n\n    for (let index = 0; index < original.length; index++) {\n      let cod: string = Number(original.charCodeAt(index)).toString(16);\n      res = res.concat(this.tam[cod.length] + cod);\n    }\n    return res;\n\n  }\n\n  desencriptar(encriptado: string): string {\n    if (encriptado == null) {\n      return null;\n    }\n    let res: string = '';\n    let i: number = 0;\n    while (i < encriptado.length) {\n      let largo = this.binarySearch(this.tam, encriptado.charAt(i));\n      let letra = String.fromCharCode( parseInt(encriptado.substring(i + 1, i + 1 + largo),16));\n      res = res.concat(letra);\n      i += 1 + largo;\n    }\n    return res.toString();\n  }\n\n  binarySearch(arr, value): any {\n    var low  = 0 , high = arr.length -1 ,mid ;      \n    while (low <= high){\n        mid = Math.floor((low+high)/2);     \n        if(arr[mid]==value) return mid ; \n        else if (arr[mid]<value) low = mid+1;\n        else high = mid-1;          \n    }\n    return -1 ;\n  }\n\n}\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, UtilsService } from 'general-library-union';\nimport { EntidadModel } from '../../../modules/compensacion/models/EntidadModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n\n@Component({\n    selector: 'app-input-helper-seleccion-entidad',\n    templateUrl: './input-helper-seleccion-entidad.component.html',\n    styleUrls: ['./input-helper-seleccion-entidad.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionEntidadComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n    ],\n})\nexport class InputHelperSeleccionEntidadComponent implements ControlValueAccessor, OnInit {  \n  \n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n  @Input() label: string = '';\n  @Input() labelInput: string;\n  @Input() readonly: boolean = false;\n  @Input() showDialog: boolean;\n  @Input() ocultarBoton: boolean = true;  \n  @Input() mostrarX: boolean;\n  @Input() tipoServicio: string;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n  @Input() campoReferencia : any;\n  @Input() campoReferenciaDos : any;\n\n  filters = [];\n  onChange: Function = () => { };\n  onTouched: Function = () => { };\n  dataSelected: EntidadModel;\n  listaEntidad: any[];\n  parametroBusqueda:  string;\n  paginator = { rows: 9, totalRecords: 0 }\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private utilsService: UtilsService,\n    private translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.crearFiltros();\n    if (this.showDialog) {\n      this.openDataTable()\n    }\n  }\n\n  ocultar() {\n    this.showDialog = false;    \n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n\n  openDataTable() {\n    this.dataSelected = null;\n    this.showDialog = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  crearFiltros() {\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('Busqueda'),\n        matchMode: 'contains',\n      }]\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;    \n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  onRowSelect() {\n    this.value = this.dataSelected.llave;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);    \n    this.onSelected.emit(this.dataSelected);\n    this.showDialog = false;\n\n  }\n\n  loadData(event) {\n    this.tipoServicio = this.tipoServicio ? this.tipoServicio : this.campoReferencia;\n    if (this.tipoServicio != null) {\n      let objetoFiltro = {\n        paginacionRegistroInicial: event.first,\n        paginacionRegistroFinal: event.rows,\n        parametroBusqueda: this.parametroBusqueda ? '%' + this.parametroBusqueda + '%' : null,\n        unico: this.tipoServicio\n      };\n      this.generalService.queryForList({\n        nombreConsulta: 'Entidad.consultarEntidadTipoServicio',\n        nombreDTO: 'EntidadDTO',\n        seguridad: false,\n        objeto: objetoFiltro\n      }).subscribe((data) => {\n        this.listaEntidad = data;\n        this.generalService.cantidadRegistros({\n          nombreConsulta: 'Entidad.cantidadEntidadTipoServicio',\n          nombreDTO: 'EntidadDTO',\n          seguridad: false,\n          objeto: objetoFiltro\n        }).subscribe((data) => {\n          this.paginator.totalRecords = data;\n        });\n      });\n    }\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n    if (llave != null) {\n      let filtro = new EntidadModel();\n      filtro.llave = llave;\n      let objeto = new GeneralModel('EntidadDTO', null, false, filtro);\n      let respuesta: EntidadModel = await generalService.queryForObject(objeto).toPromise();\n      return respuesta?.descripcion ? respuesta?.descripcion : '';\n    }\n\n    return null;\n  }\n\n}\n","<div #field class=\"p-inputgroup\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" />\n        <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\n            class=\"p-button-icon-only clear unico\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label>{{labelInput | translate}} </label>\n    </span>\n</div>\n<div id=\"entidadPopUp\">\n    <p-dialog header=\"{{'entidad' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" (onShow)=\"openDataTable()\"\n        [contentStyle]=\"{width: '800px'}\" (onHide)=\"ocultar()\">\n        <!--<span class=\"p-input-icon-left buscardor mb-3\">\n            <i class=\"pi pi-search\"></i>\n            <input type=\"text\" pInputText [(ngModel)]=\"parametroBusqueda\"\n                (keyup.enter)=\"loadData({first: 0, rows: 10})\" />\n        </span>-->\n        <p-table #tablaGeneral dataKey=\"llave\" [value]=\"listaEntidad\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n            [scrollable]=\"true\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"  \n            [paginator]=\"paginator.totalRecords > paginator.rows\" [showCurrentPageReport]=\"true\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [(selection)]=\"dataSelected\"\n            (onRowSelect)=\"onRowSelect()\" [lazy]=\"true\" (onLazyLoad)=\"loadData($event)\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"min-width: 50%\">{{\"codigo\" | translate}}</th>\n                    <th style=\"min-width: 50%\">{{\"descripcion\" | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-entidad>\n                <tr [pSelectableRow]=\"entidad\">\n                    <td style=\"min-width: 50%\">{{entidad.llave}}</td>\n                    <td style=\"min-width: 50%\">{{entidad.descripcion}}</td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </p-dialog>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class TemaModel extends UnionModel {\n\n\ttema: string;\n\torigen: string;\n\tdescripcion: string;\n\tcursoCapacitacion: string;\n\n}","import { EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { Component, ElementRef, forwardRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR,FormsModule ,ReactiveFormsModule} from '@angular/forms';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService,FiltroGeneralComponent,GeneralModel, UtilsService } from 'general-library-union';\nimport { TranslateModule ,TranslateService} from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TemaModel } from '../../../modules/talento/models/TemaModel';\nimport { GeneralPipe } from '../../pipes/general.pipe';\nimport { CursoModel } from '../../../modules/talento/models/CursoModel';\n@Component({\n    selector: 'app-input-helper-temas',\n    templateUrl: './input-helper-temas.component.html',\n    styleUrls: ['./input-helper-temas.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperTemasComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n        FormsModule,\n        ReactiveFormsModule\n    ],\n})\nexport class  InputHelperTemasComponent implements ControlValueAccessor,  OnInit{\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() cantidadConsulta: string = '';\n\n  @Input() consulta: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  dataSelected: TemaModel;\n  listaTema: any[];\n  public tema :TemaModel = new TemaModel(); \n  @Input() showDialog: boolean = false;\n  public  origen: string;\n  private filtroTema :TemaModel;\n  private cursoDTO: CursoModel;\n  onChange: Function = () => {};\n  descripcionFiltro;\n  onTouched: Function = () => {};\n  filters = [];\n  paginator={rows:10, totalRecords:0};\n  @Input() filtroForm: boolean = false;\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private utilsService: UtilsService,\n    public translateService: TranslateService,\n    public generalPipe:GeneralPipe) {}\n  \n  ngOnInit(): void {\n     \n    this.origen= this.generalPipe.CAPACITACION;\n    this.showDialog = false;\n  \n    this.filters = [\n      {\n        field: 'descripcion',\n        header:  this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    try {\n       ;  \n      let objeto = {\n        paginacionRegistroInicial: event.first,\n        paginacionRegistroFinal: event.rows,\n       /*  origen: this.origen, */\n        descripcion: event.filters.descripcion?.value ? '%' + event.filters.descripcion?.value + '%' : null,\n      };\n  \n      let general = new GeneralModel('TemaDTO', null, false, objeto);\n  \n      this.generalService.queryForList(general).subscribe(data => {\n         ;\n        this.listaTema = data;\n        this.generalService.cantidadRegistros(general).subscribe(data => {\n          this.paginator.totalRecords = data;\n        });\n  \n        }, error => {\n          console.error('Error al obtener la lista de temas', error);\n      });\n    } catch (err) {\n      console.error('Error en loadData', err);\n    }\n  }\n  \n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n    if (llave != null) {\n      let filtro = new TemaModel();\n      filtro.tema = llave.padEnd(32, ' ');\n      let objeto = new GeneralModel('TemaDTO', null, false, filtro);\n      let respuesta: TemaModel = await generalService.queryForObject(objeto).toPromise();\n      return respuesta?.descripcion ? respuesta?.descripcion : '';\n    }\n\n    return null;\n  }\n\n}\n","<div #field class=\"p-inputgroup\">\n\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" />\n      <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n      </button>\n      \n  </div>\n  \n  \n  <p-dialog header=\"{{'Temas' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\" [draggable]=\"true\"\n    [breakpoints]=\"{ '2000px': '40vw','1500px': '45vw','960px': '75vw','800px': '80vw', '700px': '100vw' }\"\n    [style]=\"{ width: '50vw' }\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n                  autocomplete=\"off\" />\n                <label for=\"descripcion\">{{'descripcion'}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table\n      #tablaGeneral\n      dataKey=\"llaveTabla\"\n      [value]=\"listaTema\"\n      selectionMode=\"single\"\n      responsiveLayout=\"scroll\"\n      [scrollable]=\"true\"\n      [lazy]=\"true\"\n      [rows]=\"paginator.rows\"\n      [paginator]=\"paginator.totalRecords > paginator.rows\"\n      [totalRecords]=\"paginator.totalRecords\"\n      [showCurrentPageReport]=\"true\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped input-helper-datatable\"\n      [(selection)]=\"dataSelected\"\n      (onLazyLoad)=\"loadData($event)\"\n      (onRowSelect)=\"onRowSelect()\">\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th>{{ \"descripcion\" | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-temas>\n        <tr [pSelectableRow]=\"temas\">\n          <td>{{ temas.descripcion }}</td>\n        </tr>\n      </ng-template>\n    </p-table>\n  </p-dialog>\n  ","import { UnionModel } from 'general-library-union'\n\nexport class EstadoCivilModel extends UnionModel {\n\n\t\n\testado: string;\n\tdescripcion: string;\n\tversion: number;\n\tseleccion: string;\n\n}\n","import { Component,EventEmitter,Input,OnInit,Output,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { EstadoCivilModel } from '../../../modules/hojavida/models/EstadoCivilModel';\n@Component({\n  selector: 'app-input-helper-estado-civil',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperEstadoCivilComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-estado-civil.component.html',\n  styleUrl: './input-helper-estado-civil.component.scss',\n})\nexport class InputHelperEstadoCivilComponent\n  implements ControlValueAccessor, OnInit\n{\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaEstadoCivil: EstadoCivilModel[];\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: EstadoCivilModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n  ) {}\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n    if (this.labelInput == null) {\n      this.labelInput = this.translateService.instant('idioma');\n    }\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.estado;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      descripcion: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n    };\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'EstadoCivilDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaEstadoCivil = await this.generalService\n      .queryForList(objetoFiltro)\n      .toPromise();\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltro)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new EstadoCivilModel();\n      filtro.estado = llave;\n      let objeto = new GeneralModel('EstadoCivilDTO', null, false, filtro);\n      let respuesta: EstadoCivilModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n      return `${respuesta.descripcion.trim()}`;\n    } else {\n      return null;\n    }\n  }\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog id=\"dialog_popUpEstadoCivilBean\" header=\"{{'estadocivil' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"estado\" [value]=\"listaEstadoCivil\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.estado}}</td>\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class NivelAcademicoModel extends UnionModel {\n\n\t\n\t\n\tnivel: string;\n\tdescripcion: string;\n\tgrado: number;\n\tversion: number;\n\tseleccion: string;\n\t\n\t\n}\n","import { Component,EventEmitter,Input,OnInit,Output,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NivelAcademicoModel } from '../../../modules/hojavida/models/NivelAcademicoModel';\n\n@Component({\n  selector: 'app-input-helper-nivel-academico',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperNivelAcademicoComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-nivel-academico.component.html',\n  styleUrl: './input-helper-nivel-academico.component.scss'\n})\nexport class InputHelperNivelAcademicoComponent implements ControlValueAccessor, OnInit {\n    @Input() value: string | number;\n  \n    @Input() label: string = '';\n  \n    @Input() readonly: boolean = false;\n  \n    @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  \n    @Input() showDialog: boolean = false;\n  \n    @Input() booleano: boolean;\n  \n    @Input() mostrarX: boolean;\n  \n    @Input() labelInput: string;\n  \n    listaNivelAcademico: NivelAcademicoModel[];\n  \n    onChange: Function = () => {};\n  \n    onTouched: Function = () => {};\n  \n    dataSelected: NivelAcademicoModel;\n    filters = [];\n    paginator = {\n      rows: 10,\n      totalRecords: 0,\n    };\n    constructor(\n      private generalService: GeneralService,\n      private translateService: TranslateService,\n      private utilsService: UtilsService,\n      private authService: AuthService,\n    ) {}\n  \n    ngOnInit(): void {\n      this.showDialog = false;\n      this.filters = [\n        {\n          field: 'parametroBusqueda',\n          header: this.translateService.instant('filtro'),\n          matchMode: 'contains',\n        },\n      ];\n    }\n  \n    writeValue(value: any): void {\n      this.value = value;\n    }\n  \n    registerOnChange(fn: any): void {\n      this.onChange = fn;\n    }\n  \n    registerOnTouched(fn: any): void {\n      this.onTouched = fn;\n    }\n  \n    setDisabledState(isDisabled: boolean): void {}\n  \n    openDataTable() {\n      this.showDialog = true;\n      if (this.booleano == null) {\n        this.booleano = false;\n      }\n      if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n        setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n      }\n    }\n  \n    onRowSelect(event) {\n      this.dataSelected = event.data;\n      this.showDialog = false;\n      this.value = this.dataSelected.nivel;\n      this.label = this.dataSelected.descripcion;\n      this.onChange(this.value);\n      this.onSelected.emit(this.dataSelected);\n    }\n  \n    async loadData(event) {\n      let objeto = {\n        paginacionRegistroInicial: event.first,\n        paginacionRegistroFinal: event.rows,\n        descripcion: event.filters.parametroBusqueda?.value\n          ? '%' + event.filters.parametroBusqueda?.value + '%'\n          : null,\n      };\n      const objetoFiltro: GeneralModel = {\n        nombreDTO: 'NivelAcademicoDTO',\n        nombreConsulta: null,\n        seguridad: false,\n        objeto: objeto,\n      };\n      this.listaNivelAcademico = await this.generalService\n        .queryForList(objetoFiltro)\n        .toPromise();\n      this.paginator.totalRecords = await this.generalService\n        .cantidadRegistros(objetoFiltro)\n        .toPromise();\n    }\n  \n    deleteSelection() {\n      this.value = null;\n      this.label = null;\n      this.onChange(this.value);\n      this.onSelected.emit({});\n    }\n  \n    async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n      if (llave != null) {\n        let filtro = new NivelAcademicoModel();\n        filtro.nivel = llave.padEnd(2, ' ');\n        let objeto = new GeneralModel('NivelAcademicoDTO', null, false, filtro);\n        let respuesta: NivelAcademicoModel = await generalService\n          .queryForObject(objeto)\n          .toPromise();\n        return `${respuesta.descripcion.trim()}`;\n      } else {\n        return null;\n      }\n    }\n  }\n  ","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog id=\"dialog_popUpEstadoCivilBean\" header=\"{{'nivel' | translate}} {{'academico' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"idioma\" [value]=\"listaNivelAcademico\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.nivel}}</td>\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class CodigoBaseHovModel extends UnionModel {\n\n\tcodigo: string;\n\ttipo: string;\n\tdescripcion: string;\n\tseccion: string;\n\testado: string;\n\taccion: string;\n\torden: number;\n\t\n}","import { Component,EventEmitter,Injector,Input,OnInit,Output,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CodigoBaseHovModel } from '../../../modules/hojavida/models/CodigoBaseHovModel';\n\n@Component({\n  selector: 'app-input-helper-codigo-base-hov',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperCodigoBaseHovComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-codigo-base-hov.component.html',\n  styleUrl: './input-helper-codigo-base-hov.component.scss'\n})\nexport class InputHelperCodigoBaseHovComponent implements ControlValueAccessor, OnInit {\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaCodigoBaseHov: CodigoBaseHovModel[];\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: CodigoBaseHovModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  descripcion: string; \n  tipo: string; \n  @Input() campoReferencia : any;\n  \n  //tipos codigobasehov\n  DESNIEDU = \"Nivel Educativo o formativo\";\n\tDESTIPRO = \"Tipo Programa\";\n\tDESMODGR = \"Modalidad de Grado\";\n\tDESTIESC = \"Tipo Escalaf\\u00F3n\";\n\tDESDEDIC = \"Tiempo Dedicaci\\u00F3n\";\n\tDESTICAP = \"Tipo Capacitaci\\u00F3n\";\n\tDESARCAP = \"Area Capacitaci\\u00F3n\";\n\tDESCARAC = \"Ambito o Car\\u00E1cter de la Publicaci\\u00F3n\";\n\tDESPARTI = \"Participaci\\u00F3n\";\n\tDESDIFUS = \"Medio Difusi\\u00F3n\";\n\tDESEDICI = \"Medio Edici\\u00F3n\";\n\tDESMEMOR = \"Modalidad Memoria\";\n\tDESTIPPR = \"Tipo Producci\\u00F3n\";\n\tDESTIPDO = \"Tipo Documento\";\n\tDESTIPPU = \"Tipo Publicaci\\u00F3n\";\n\tDESMATER = \"Material Entregado\";\n\tDESMOREC = \"Motivo Reconocimiento\";\n\tDESDISTI = \"Distinci\\u00F3n\";\n\tDESTIASC = \"Tipo Asociaci\\u00F3n\";\n\tDESTIPPA = \"Tipo Patente\";\n\tDESINDEX = \"Indexada\";\n\tDESTIPPE = \"Tipo Periodo\";\n\tDESFACUL = \"Facultad\";\n\tDESEQTRA = \"Tipos de Equipo de Trabajo\";\n\tDESCARID = \"Caracter\\u00EDstica Idioma\";\n\tDESTIPIN = \"Tipo Inmueble\";\n\tDESTIPBI = \"Tipo Bien\";\n\tDESTIPRE = \"Tipo Referencia\";\n\tDESTIPEX = \"Tipo Experiencia\";\n\tDESCONOC = \"Area de experiencia\";\n\tDESTIPCU = \"Tipo Cuenta Bancaria\";\n\tDESPROHV = \"Procedencia Hoja Vida\";\n\tDESTIPAR = \"Tipo de Parentesco\";\n\tDESTIEMP = \"Unidad de Tiempo\";\n\tDESASUNT = \"Tipo de Asunto\";\n\tDESTIPGE = \"Tipo Género\";\n  \n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n    this.cargarTipo()\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n    this.cargarTipo()\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      descripcion: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n      tipo: this.tipo\n    };\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'CodigoBaseHovDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaCodigoBaseHov = await this.generalService\n      .queryForList(objetoFiltro)\n      .toPromise();\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltro)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  cargarTipo(){\n\t\tthis.descripcion=null;\n    this.tipo = null;\n\t\tif(this.campoReferencia == (\"CHOV_PROCEDENCIA\")){\n\t\t\tthis.tipo=\"PROHV\";\n\t\t\tthis.descripcion=this.DESPROHV;\n\t\t}else if(this.campoReferencia == (\"CHIN_TIPOPUBLICACION\")){\n\t\t\tthis.tipo=\"TIPPU\";\n\t\t\tthis.descripcion=this.DESTIPPU;\n\t\t}else if(this.campoReferencia == (\"CHIN_TIPOPRODUCCION\")){\n\t\t\tthis.tipo=\"TIPPR\";\n\t\t\tthis.descripcion=this.DESTIPPR;\n\t\t}else if(this.campoReferencia == (\"CHIN_FACULTAD\")){\n\t\t\tthis.tipo=\"FACUL\";\n\t\t\tthis.descripcion=this.DESFACUL;\n\t\t}else if(this.campoReferencia == (\"CHIN_DISTINCION\")){\n\t\t\tthis.tipo=\"DISTI\";\n\t\t\tthis.descripcion=this.DESDISTI;\n\t\t}else if(this.campoReferencia == (\"CHIN_MATERIAL\")){\n\t\t\tthis.tipo=\"MATER\";\n\t\t\tthis.descripcion=this.DESMATER;\n\t\t}else if(this.campoReferencia == (\"CHIN_PARTICIPACION\") || this.campoReferencia == (\"CEQI_PARTICIPACION\")){\n\t\t\tthis.tipo=\"PARTI\";\n\t\t\tthis.descripcion=this.DESPARTI;\n\t\t}else if(this.campoReferencia == (\"CHIN_MEDIOEDICION\")){\n\t\t\tthis.tipo=\"EDICI\";\n\t\t\tthis.descripcion=this.DESEDICI;\n\t\t}else if(this.campoReferencia == (\"CHIN_MEDIODIFUSION\")){\n\t\t\tthis.tipo=\"DIFUS\";\n\t\t\tthis.descripcion=this.DESDIFUS;\n\t\t}else if(this.campoReferencia == (\"CHIN_MOTIVORECONOC\")){\n\t\t\tthis.tipo=\"MOREC\";\n\t\t\tthis.descripcion=this.DESMOREC;\n\t\t}else if(this.campoReferencia == (\"CHIN_EXPERIENCIA\")){\n\t\t\tthis.tipo=\"TIPEX\";\n\t\t\tthis.descripcion=this.DESTIPEX;\n\t\t}else if(this.campoReferencia == (\"CHIN_NIVELFORMATIVO\")){\n\t\t\tthis.tipo=\"NIEDU\";\n\t\t\tthis.descripcion=this.DESNIEDU;\n\t\t}else if(this.campoReferencia == (\"CHIN_TIPOCAPACITACION\")){\n\t\t\tthis.tipo=\"TICAP\";\n\t\t\tthis.descripcion=this.DESTICAP;\n\t\t}else if(this.campoReferencia == (\"CHIN_MODALIDADGRADO\")){\n\t\t\tthis.tipo=\"MODGR\";\n\t\t\tthis.descripcion=this.DESMODGR;\n\t\t}else if(this.campoReferencia == (\"CHIN_TIPOPERIODO\")){\n\t\t\tthis.tipo=\"TIPPE\";\n\t\t\tthis.descripcion=this.DESTIPPE;\n\t\t}else if(this.campoReferencia == (\"CHIN_AREACAPACITACION\")){\n\t\t\tthis.tipo=\"ARCAP\";\n\t\t\tthis.descripcion=this.DESARCAP;\n\t\t}else if(this.campoReferencia == (\"CHIN_TIPOESCALAFON\")){\n\t\t\tthis.tipo=\"TIESC\";\n\t\t\tthis.descripcion=this.DESTIESC;\n\t\t}else if(this.campoReferencia == (\"CHIN_DEDICACION\")){\n\t\t\tthis.tipo=\"DEDIC\";\n\t\t\tthis.descripcion=this.DESDEDIC;\n\t\t}else if(this.campoReferencia == (\"CHIN_TIPOAREAEXP\")){\n\t\t\tthis.tipo=\"CONOC\";\n\t\t\tthis.descripcion=this.DESCONOC;\n\t\t}else if(this.campoReferencia == (\"CHIN_AMBITO\") || this.campoReferencia == (\"CHPA_AMBITO\")){\n\t\t\tthis.tipo=\"CARAC\";\n\t\t\tthis.descripcion=this.DESCARAC;\n\t\t}else if(this.campoReferencia == (\"CHIN_CARACTERISTICAIDIOMA\")){\n\t\t\tthis.tipo=\"CARID;\"\n\t\t\tthis.descripcion=this.DESCARID;\n\t\t}else if(this.campoReferencia == (\"CHIN_UNIDADTIEMPO\")){\n\t\t\tthis.tipo=\"TIEMP\";\n\t\t\tthis.descripcion=this.DESTIEMP;\n\t\t}else if(this.campoReferencia == (\"CHIN_MODALIDADMEMORIA\")){\n\t\t\tthis.tipo=\"MEMOR\";\n\t\t\tthis.descripcion=this.DESMEMOR;\n\t\t}else if(this.campoReferencia == (\"CHIN_TIPODOCUMENTO\")){\n\t\t\tthis.tipo=\"TIPDO\";\n\t\t\tthis.descripcion=this.DESTIPDO;\n\t\t}else if(this.campoReferencia == (\"CHIN_CLASETEMATICA\")){\n\t\t\tthis.tipo=\"TIPPA\";\n\t\t\tthis.descripcion=this.DESTIPPA;\n\t\t}else if(this.campoReferencia == (\"CHPA_TIPOINMUEBLE\")){\n\t\t\tthis.tipo=\"TIPIN\";\n\t\t\tthis.descripcion=this.DESTIPIN;\n\t\t}else if(this.campoReferencia == (\"CHPA_TIPOBIEN\")){\n\t\t\tthis.tipo=\"TIPBI\";\n\t\t\tthis.descripcion=this.DESTIPBI;\n\t\t}else if(this.campoReferencia == (\"CHOV_SEXO\") || this.campoReferencia == (\"CHOP_SEXO\")){\n\t\t\tthis.tipo=\"TIPGE\";\n\t\t\tthis.descripcion=this.DESTIPGE;\n\t\t}else if(this.campoReferencia == (\"CHPA_TIPOREFERENCIA\")){\n\t\t\tthis.tipo=\"TIPRE\";\n\t\t\tthis.descripcion=this.DESTIPRE;\n\t\t}else if(this.campoReferencia == (\"CHPA_TIPOCUENTA\")){\n\t\t\tthis.tipo=\"TIPCU\";\n\t\t\tthis.descripcion=this.DESTIPCU;\n\t\t}else if(this.campoReferencia == (\"CHOP_PARENTESCO\")){\n\t\t\tthis.tipo=\"TIPAR\";\n\t\t\tthis.descripcion=this.DESTIPAR;\n\t\t}\n\t}\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    this.campoReferencia = campo.campoTabla;\n    this.cargarTipo()\n    if (llave != null) {\n      let filtro = new CodigoBaseHovModel();\n      filtro.codigo = llave;\n      filtro.tipo = this.tipo;\n      let objeto = new GeneralModel('CodigoBaseHovDTO', null, false, filtro);\n      let respuesta: CodigoBaseHovModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n      \n      if(!respuesta){\n        return llave;\n      }\n      return `${respuesta.descripcion.trim()}`;\n    } else {\n      return null;\n    }\n  }\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog  header=\"{{descripcion}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"llaveTabla\" [value]=\"listaCodigoBaseHov\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.codigo}}</td>\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\n\nexport class TipoDocumentoModel extends UnionModel {\n\n\tdocumento: string;\n\tdescripcion: string;\n\tversion: number;\n\tseleccion: string;\n\tcodigo: string;\n\tmodo: string;\n\tdescripcionModo: string;\n\torigen: string;\n\ttipoDocumento: string;\n\tpais: string;\n\tnombrePais: string;\n\t\n\t\n}\n","import { Component,EventEmitter,Input,OnInit,Output,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TipoDocumentoModel } from '../../../modules/hojavida/models/TipoDocumentoModel';\nimport { SaraAplicacionService } from '../../servicios/sara-aplicacion.service';\nimport { HojaVidaPipe } from '../../pipes/hojavida.pipe';\n\n@Component({\n  selector: 'app-input-helper-tipo-documento',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperTipoDocumentoComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-tipo-documento.component.html',\n  styleUrl: './input-helper-tipo-documento.component.scss'\n})\nexport class InputHelperTipoDocumentoComponent implements ControlValueAccessor, OnInit {\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaTipoDocumento: TipoDocumentoModel[];\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: TipoDocumentoModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  modoHojavida: string;\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n    private hojaVidaPipe: HojaVidaPipe,\n    private saraAplicacionService: SaraAplicacionService,\n  ) {}\n\n  ngOnInit() {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n    \n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.documento;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    if (!this.modoHojavida) {\n      let data = await this.saraAplicacionService.getEmpresa();\n      this.modoHojavida = data.modoHojavida;\n    }\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      modo: this.modoHojavida,\n      origen: this.hojaVidaPipe.TIO_HOJAVIDA,\n      descripcion: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n    };\n    console.log(objeto)\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'TipoDocumentoDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaTipoDocumento = await this.generalService\n      .queryForList(objetoFiltro)\n      .toPromise();\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltro)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new TipoDocumentoModel();\n      filtro.documento = llave.padEnd(8, ' ');\n      let objeto = new GeneralModel('TipoDocumentoDTO', null, false, filtro);\n      let respuesta: TipoDocumentoModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n      return `${respuesta.descripcion.trim()}`;\n    } else {\n      return null;\n    }\n  }\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog id=\"dialog_popUpEstadoCivilBean\" header=\"{{'tipodocumento' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"idioma\" [value]=\"listaTipoDocumento\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.documento}}</td>\n            <td>{{bean.descripcion}} {{bean.nombrePais ? '(' + bean.nombrePais + ')' : ''}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component,EventEmitter,Injector,Input,OnInit,Output,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { VinculacionModel } from '../../../modules/hojavida/models/VinculacionModel';\n\n@Component({\n  selector: 'app-input-helper-tipo-vinculacion',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperTipoVinculacionComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-tipo-vinculacion.component.html',\n  styleUrl: './input-helper-tipo-vinculacion.component.scss'\n})\nexport class InputHelperTipoVinculacionComponent  implements ControlValueAccessor, OnInit {\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaVinculacion: VinculacionModel[];\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: VinculacionModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  origen: string; \n  @Input() campoReferencia : any;\n  \n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n    this.cargarTipo()\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n    this.cargarTipo()\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      descripcion: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n      origen: this.origen\n    };\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'VinculacionDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaVinculacion = await this.generalService\n      .queryForList(objetoFiltro)\n      .toPromise();\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltro)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  cargarTipo(){\n\t\tif(this.campoReferencia == \"CHOV_TIPOVINCULA\"){\n\t\t\tthis.origen=\"H\";\n\t\t}else if(this.campoReferencia == \"CHOV_TIPOHOJA\"){\n\t\t\tthis.origen=\"F\";\n\t\t}\n\t}\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new VinculacionModel();\n      filtro.vinculacion = llave.padEnd(2, ' ');\n      let objeto = new GeneralModel('VinculacionDTO', null, false, filtro);\n      let respuesta: VinculacionModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n      return `${respuesta.descripcion.trim()}`;\n    } else {\n      return null;\n    }\n  }\n}\n\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog  header=\"{{'tipo' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"llaveTabla\" [value]=\"listaVinculacion\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.vinculacion}}</td>\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class SucursalGesModel extends UnionModel {\n\n\torganizacion: number;\n\tllave: string;\n\tdescripcion: string;\n\taliasRol: string;\n\tusuarioLogin: string;\n\tfiltroSucursal: string;\n\t\n\n}","import { Component,EventEmitter,Input,OnInit,Output,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SaraAplicacionService } from '../../servicios/sara-aplicacion.service';\nimport { SucursalGesModel } from '../../../modules/saludocupacional/models/SucursalGesModel';\n\n@Component({\n  selector: 'app-input-helper-sucursal-ges',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperSucursalGesComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-sucursal-ges.component.html',\n  styleUrl: './input-helper-sucursal-ges.component.scss'\n})\nexport class InputHelperSucursalGesComponent  implements ControlValueAccessor, OnInit {\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaSucursalGes: SucursalGesModel[];\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: SucursalGesModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  organizacion: number;\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n    private saraAplicacionService: SaraAplicacionService,\n  ) {}\n\n  ngOnInit() {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n    \n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    if (!this.organizacion) {\n      let data = await this.saraAplicacionService.getEmpresa();\n      this.organizacion = data.organizacion;\n    }\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      organizacion: this.organizacion,\n      descripcion: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n    };\n    console.log(objeto)\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'SucursalGesDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaSucursalGes = await this.generalService\n      .queryForList(objetoFiltro)\n      .toPromise();\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltro)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new SucursalGesModel();\n      filtro.llaveTabla = llave;\n      let objeto = new GeneralModel('SucursalGesDTO', null, false, filtro);\n      let respuesta: SucursalGesModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n\n      if(!respuesta){\n        return llave;\n      }\n\n      return `${respuesta.descripcion.trim()}`;\n    } else {\n      return null;\n    }\n  }\n}\n\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n\n  <p-dialog id=\"dialog_popUpEstadoCivilBean\" header=\"{{'gestionsucursales' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"idioma\" [value]=\"listaSucursalGes\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'descripcion' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { InputHelperAreaConocimientoComponent } from '../../shared/componentes/input-helper-area-conocimiento/input-helper-area-conocimiento.component';\nimport { InputHelperHojaVidaComponent } from '../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputHelperIdiomaComponent } from '../../shared/componentes/input-helper-idioma/input-helper-idioma.component';\nimport { InputHelperSeleccionNacionalidadComponent } from '../../shared/componentes/input-helper-nacionalidad/input-helper-nacionalidad.component';\nimport { InputHelperProfesionOficioComponent } from '../../shared/componentes/input-helper-profesion-oficio/input-helper-profesion-oficio.component';\nimport { InputHelperSeleccionInstitucionComponent } from '../../shared/componentes/input-helper-seleccion-institucion/input-helper-seleccion-institucion.component';\nimport { InputHelperSeleccionPlanInversionComponent } from '../../shared/componentes/input-helper-seleccion-plan-inversion/input-helper-seleccion-plan-inversion.component';\nimport { InputHelperUbicacionComponent } from '../../shared/componentes/input-helper-ubicacion/input-helper-ubicacion.component';\nimport { InputHelperUnidadComponent } from '../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperCargoComponent } from '../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { InputHelperHorarioBienestarEventosComponent } from '../../modules/bienestar/popup/input-helper-horario-bienestar-eventos/input-helper-horario-bienestar-eventos.component';\nimport { InputHelperInstructorEventoComponent } from '../../shared/componentes/input-helper-instructor-evento/input-helper-instructor-evento.component';\nimport { InputHelperSemestreComponent } from '../../shared/componentes/input-helper-semestre/input-helper-semestre.component';\nimport { InputHelperEmpleadoBotonComponent } from '../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { InputHelperSeleccionEntidadComponent } from '../../shared/componentes/input-helper-seleccion-entidad/input-helper-seleccion-entidad.component';\nimport { InputHelperTemasComponent } from '../../shared/componentes/input-helper-temas/input-helper-temas.component';\nimport { InputHelperEstadoCivilComponent } from '../../shared/componentes/input-helper-estado-civil/input-helper-estado-civil.component';\nimport { InputHelperNivelAcademicoComponent } from '../../shared/componentes/input-helper-nivel-academico/input-helper-nivel-academico.component';\nimport { InputHelperCodigoBaseHovComponent } from '../../shared/componentes/input-helper-codigo-base-hov/input-helper-codigo-base-hov.component';\nimport { InputHelperTipoDocumentoComponent } from '../../shared/componentes/input-helper-tipo-documento/input-helper-tipo-documento.component';\nimport { InputHelperTipoVinculacionComponent } from '../../shared/componentes/input-helper-tipo-vinculacion/input-helper-tipo-vinculacion.component';\nimport { InputHelperSucursalGesComponent } from '../../shared/componentes/input-helper-sucursal-ges/input-helper-sucursal-ges.component';\nimport { InputHelperDiagnosticoComponent } from '../../shared/componentes/input-helper-diagnostico/input-helper-diagnostico.component';\nimport { InputHelperSeleccionUbicacionFisicaComponent } from '../../shared/componentes/input-helper-seleccion-ubicacion-fisica/input-helper-seleccion-ubicacion-fisica.component';\n\n@Pipe({\n    name: 'popupsDinamicosPipe'\n})\n@Injectable({\n    providedIn: 'root'\n})\nexport class PopupsDinamicosPipe implements PipeTransform {\n\n\tLISTA_POPUPS = [\n\t\t{id: 'popUpNacionalidadBean', popup: InputHelperSeleccionNacionalidadComponent},\n        {id: 'popUpUbicacion', popup: InputHelperUbicacionComponent},\n        {id: 'popupHojaVida', popup: InputHelperHojaVidaComponent},\n        {id: 'popupSeleccionPlanInversionBean', popup: InputHelperSeleccionPlanInversionComponent},\n        {id: 'popUpIdiomaBean', popup: InputHelperIdiomaComponent},\n        {id: 'popUpProfesionOficioBean', popup: InputHelperProfesionOficioComponent},\n        {id: 'listadoAreaConocimientoBean', popup: InputHelperAreaConocimientoComponent},\n        {id: 'institucionBean', popup: InputHelperSeleccionInstitucionComponent},\n        {id: 'popupUnidadUsuarioBean', popup: InputHelperUnidadComponent},\n        {id: 'popupCargo', popup: InputHelperCargoComponent},\n        {id: 'popupHorarioEventosBean', popup: InputHelperHorarioBienestarEventosComponent},\n        {id: 'popupInstructorEventoBean', popup: InputHelperInstructorEventoComponent},\n        {id: 'popupSemestreBean', popup: InputHelperSemestreComponent},\n        {id: 'popupEmpleado', popup: InputHelperEmpleadoBotonComponent},\n        {id: 'popupUnidad', popup: InputHelperUnidadComponent},\n        {id: 'popupTipoServicioEntidadBean', popup: InputHelperSeleccionEntidadComponent},\n        {id: 'popupTemasBean', popup: InputHelperTemasComponent},\n        {id: 'popUpEstadoCivilBean', popup: InputHelperEstadoCivilComponent},\n        {id: 'popUpNivelAcademicoBean', popup: InputHelperNivelAcademicoComponent},\n        {id: 'popUpCodigoBaseHovBean', popup: InputHelperCodigoBaseHovComponent},\n        {id: 'popUpTipoDocumentoBean', popup: InputHelperTipoDocumentoComponent},\n        {id: 'popUpTipoVinculacionBean', popup: InputHelperTipoVinculacionComponent},\n        {id: 'popUpSucursalGesBean', popup: InputHelperSucursalGesComponent},\n        {id: 'popUpUbicacion2', popup: InputHelperUbicacionComponent},\n        {id: 'popUpUbicacion3', popup: InputHelperUbicacionComponent},\n        {id: 'popupDiagnosticoBean', popup: InputHelperDiagnosticoComponent},\n        {id: 'popupUbicacionFisica', popup: InputHelperSeleccionUbicacionFisicaComponent},\n        \n\t]\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        return result;\n    }\n\n}","import { Component, EventEmitter, Input, OnInit, Output, Type, ViewChild } from '@angular/core';\n/*import { ConfirmationService, MenuItem } from 'primeng/api';*/\nimport { EquipoIntegranteModel } from '../../../models/EquipoIntegranteModel';\nimport { HojaIntelectoDTO } from '../../../models/HojaIntelectoModel';\nimport { HojaParienteModel } from '../../../models/HojaParienteModel';\nimport { HojaPatrimonioModel } from '../../../models/HojaPatrimonioModel';\nimport { HojaVidaModel } from '../../../models/HojaVidaModel';\nimport { NovedadHojaVidaModel } from '../../../models/NovedadHojaVidaModel';\nimport { SeccionModel } from '../../../models/SeccionModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { HojaVidaPipe } from '../../../../../shared/pipes/hojavida.pipe';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, MenuService, StorageService, TablaGeneralComponent, TableColumn, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\n\nimport { HojaVidaService } from '../../../services/hojavida.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { ArchivoModel } from '../../../models/ArchivoModel';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { ArchivoAnexoHojaVidaService } from '../../../services/archivo-anexo-hoja-vida.service';\nimport { HojaNotaSeccionModel } from '../../../models/HojaNotaSeccionModel';\nimport { CoautorComponent } from '../../coautor/coautor.component';\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport Swal from 'sweetalert2';\nimport { PopupCambiarCedulaComponent } from '../../../popups/popup-cambiar-cedula/popup-cambiar-cedula.component';\nimport { PopupHojavidaImpresionComponent } from '../../../popups/popup-hojavida-impresion/popup-hojavida-impresion.component';\nimport { InputHelperCargarArchivoHojaVidaComponent } from '../../../../../shared/componentes/input-helper-cargar-archivo-hoja-vida/input-helper-cargar-archivo-hoja-vida.component';\nimport { CambiarTipoHojaComponent } from '../../../popups/cambiar-tipo-hoja/cambiar-tipo-hoja.component';\nimport { TabViewModule } from 'primeng/tabview';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { MenubarModule } from 'primeng/menubar';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { AccordionModule } from 'primeng/accordion';\nimport { TimelineModule } from 'primeng/timeline';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { NgIf, NgFor, NgClass, DatePipe, CommonModule } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { TooltipModule } from 'primeng/tooltip';\n\n@Component({\n  selector: 'app-detalle-hoja-vida',\n  templateUrl: './detalle-hoja-vida.page.html',\n  styleUrls: ['./detalle-hoja-vida.page.scss'],\n  standalone: true,\n  imports: [\n    ConfirmPopupModule,\n    NgIf,\n    FileUploadModule,\n    ProgressBarModule,\n    TimelineModule,\n    PrimeTemplate,\n    AccordionModule,\n    NgFor,\n    TableModule, TemplateTablaVaciaComponent,\n    NgClass,\n    ButtonDirective,\n    Ripple,\n    MenubarModule,\n    InputSwitchModule,\n    FormsModule,\n    CalendarModule,\n    InputTextModule,\n    TabViewModule,\n    CoautorComponent,\n    CambiarTipoHojaComponent,\n    InputHelperCargarArchivoHojaVidaComponent,\n    PopupHojavidaImpresionComponent,\n    PopupCambiarCedulaComponent,\n    DatePipe,\n    TranslateModule,\n    FormulariodinamicoComponent,\n    TablaGeneralComponent,\n    ButtonModule,\n    GeneralPipe,\n    CommonModule,\n    TooltipModule,\n  ],\n  providers: [ConfirmationService, ToastService]\n})\nexport class DetalleHojaVidaPage implements OnInit {\n\n  @Input() public identificacion: number;\n  @Input() public navegacion: string;\n  @Input() public navBuscadorHV: boolean;\n  @Input() public empleado: EmpleadoModel;\n  @Output() regresaEmpleado = new EventEmitter();\n  @Output() regresaBuscadorHV = new EventEmitter();\n\n  public hojaVida: HojaVidaModel = new HojaVidaModel();\n  public anexoModel: ArchivoModel = new ArchivoModel();\n  public unicoAdjunto: ArchivoModel = new ArchivoModel();\n  public archivoSeleccionadoAnexoUnico: File;\n  public identifica: number;\n  public items: MenuItem[];\n  public itemsNuevaHoja: MenuItem[];\n  public menuLateral: MenuItem[];\n  public avance: number = 0;\n  public seccion: SeccionModel = new SeccionModel();\n  public campos: CampoFormularioModel[] = []\n  public novedades: NovedadHojaVidaModel[] = []\n  public listaAnexos: ArchivoModel[] = []\n  public listado: any[] = [];\n  public titulos: any[];\n  public columnas: any[];\n  public coautor: boolean;\n  public estadoCoautor: string;\n  public esSeccionHoja: boolean;\n  public nuevaHoja: boolean;\n  public anexo: boolean;\n  public datosBasicos: boolean = false;\n  public verDetalle: boolean = false;\n  public insertando: boolean = false;\n  public objeto: any;\n  public llaveObjeto: string;\n  public llaveUltimaSeccion: string = null;\n  public cargarSiguiente: boolean = false;\n  public verTablaSeccion: boolean = false;\n  public urlFoto: string = '';\n  public acredita: boolean;\n  public verComentarios: boolean = false;\n\n  //foto\n  public archivoSeleccionado: File;\n  public archivoSeleccionadoAnexo: File;\n\n  //trayectoria\n  public objetoTrayectoria: any;\n  public listadoTrayectoria: any[] = []\n  public listaColumnaTrayectoriaPresentacion: any[] = []\n  public listaColumnaTrayectoriaTabla: any[] = []\n\n  //tipo hoja\n  public mostrarPopupCambiarTipoHoja: boolean = false;\n\n  //tipo hoja\n  public mostrarPopupImpresion: boolean = false;\n\n  //anexos\n  public nuevoAnexo: boolean = false;\n\n  public isSmallScreen: boolean;\n\n  //notas\n  public vistaVisualizar: string;\n  public usuario: string;\n  public listadoNotas: HojaNotaSeccionModel[] = [];\n  public nuevaNotaHoja: HojaNotaSeccionModel;\n  public notaEliminar: HojaNotaSeccionModel;\n\n  //cambio cedula\n  public mostrarPopupCambiarCedula: boolean = false;\n\n  //coautor\n  @ViewChild('coautorComponent') coautorComponent: CoautorComponent;\n  @ViewChild('formularioDinamico') formularioDinamico: FormulariodinamicoComponent;\n\n  public loadingSeccion = false;\n  public clickGuardar: boolean = false;\n\n  constructor(\n    private activeRoute: ActivatedRoute,\n    private authService: AuthService,\n    private cargarArchivo: CargarArchivosService,\n    private generalService: GeneralService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private hojaVidaService: HojaVidaService,\n    private hojaVidaPipe: HojaVidaPipe,\n    private storage: StorageService,\n    private translateService: TranslateService,\n    private notificacionesService: ToastService,\n    private router: Router, public utilsService: UtilsService,\n    private confirmationService: ConfirmationService,\n    private utils: UtilsService,\n    private popupsDinamicosPipe: PopupsDinamicosPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private archivoAnexoHojaVidaService: ArchivoAnexoHojaVidaService,\n    private generalPipe: GeneralPipe,\n    private breakpointObserver: BreakpointObserver,\n    private menuService: MenuService,\n  ) { }\n\n  async ngOnInit() {\n    this.menuService.setBreadcrumb([{ label: `${this.translateService.instant('listado')} ${this.translateService.instant('hojavida')}`, command: (event) => this.regresar() },\n    { label: `${this.translateService.instant('detalle')} ${this.translateService.instant('hojavida')}` }\n    ]);\n\n    this.loadingSeccion = false;\n    this.breakpointObserver.observe([Breakpoints.Small, Breakpoints.XSmall]).subscribe(result => {\n      this.isSmallScreen = result.matches;\n    });\n    let identificaFiltro = this.activeRoute.snapshot.paramMap.get('identifica')\n    if (this.identificacion != null) {\n      identificaFiltro = String(this.identificacion);\n    }\n    if (identificaFiltro) {\n      this.identifica = parseInt(\n        identificaFiltro\n      );\n      if (this.identifica) {\n        let cache = this.storage.getItem('hojaCache')\n        if (cache) {\n          let dataCache = JSON.parse(cache)\n          let data = await this.hojaVidaService\n            .cargarHojaVida({ hojaVida: dataCache.hojaVida, nuevaHoja: true })\n            .toPromise()\n          this.novedades = data?.novedades ? data?.novedades : [];\n          this.coautor = data?.coautor\n          this.estadoCoautor = data?.estadoCoautor\n          this.nuevaHoja = true;\n          this.insertando = true;\n          this.hojaVida = data.hojaVida;\n          this.objeto = data.hojaVida;\n          this.items = data.listaCategoriaSeccion;\n          this.esSeccionHoja = data.esSeccionHoja;\n          this.itemsNuevaHoja = []\n          this.items.forEach(sec => {\n            this.itemsNuevaHoja.push(sec);\n            sec.items.forEach(secDetalle => {\n              this.itemsNuevaHoja.push(secDetalle);\n              this.llaveUltimaSeccion = secDetalle.id;\n              secDetalle.command = async () => await this.cargarSeccion(secDetalle.id, secDetalle.queryParams['acreditaInfo'])\n            })\n          })\n          this.avance = 0;\n          this.campos = data.listaCampos;\n          await this.setValorCampos();\n          //this.cargarMenuLateral();\n          //this.cargarCampos();\n          await this.traerHojaVida()\n          this.storage.removeItem('hojaCache')\n          this.loadingSeccion = true;\n          await this.utilsService.sleep(200)\n          this.utilsService.resizeWindowIFrame()\n        } else {\n          this.insertando = false;\n          if (this.controlFuncionalidad.getControlFuncionalidad('inghov:vernotas') && this.authService.getTokenKey('tipoLogin') == 'U') {\n            this.verComentarios = true;\n          }\n          await this.cargarHojaVida();\n        }\n      }\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarHojaVida() {\n    let data = await this.hojaVidaService\n      .cargarHojaVida({ hojaVida: { identifica: this.identifica }, nuevaHoja: false })\n      .toPromise();\n      console.log('cargarhojavida')\n      console.log(data)\n    this.novedades = data?.novedades ? data?.novedades : [];\n    this.coautor = data?.coautor\n    this.estadoCoautor = data?.estadoCoautor\n    this.nuevaHoja = false;\n    this.hojaVida = data.hojaVida;\n    this.objeto = data.hojaVida;\n    this.items = data.listaCategoriaSeccion;\n    this.esSeccionHoja = data.esSeccionHoja;\n    this.unicoAdjunto = data.unicoAdjunto != null && data.unicoAdjunto != undefined ? data.unicoAdjunto : new ArchivoModel();\n    this.items.forEach(sec => {\n      sec.styleClass = 'color: #a94f08 !important'\n      sec.items.forEach(secDetalle => {\n        this.llaveUltimaSeccion = secDetalle.id;\n        secDetalle.command = async () => await this.cargarSeccion(secDetalle.id, secDetalle.queryParams['acreditaInfo'])\n      })\n    })\n    this.avance = data.avance;\n    this.campos = data.listaCampos;\n    this.cargarMenuLateral();\n    //this.cargarCampos();\n    await this.traerHojaVida()\n    this.verTablaSeccion = false;\n    this.cargarImagenFoto();\n    await this.setValorCampos();\n    this.loadingSeccion = true;\n    await this.utilsService.sleep(200)\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  async setValorCampos() {\n    await this.utilsService.sleep(500)\n    this.campos.forEach(async element => {\n      if (typeof element.valor === \"string\") {\n        element.valor = element.valor.trim()\n      }\n      if (element.tipo === 'F') {\n        element.valor = element.valor ? new Date(element.valor) : null;\n      } else if (element.tipo === 'H') {\n        if (element.valor) {\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';')\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 })\n          })\n          element.valor = listaValortemp\n        }\n      } else if (element.tipo === 'P') {\n        console.log('popup: ' + element.popup)\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n          if (element.popup == pop.id) {\n            var ev = new EventEmitter();\n            element.popupComponent = pop.popup;\n            element['cargarValorPopup'] = (event) => { element.valor = event; this.setValorCampos().then(data => {}) };\n            element.propiedadesPopupComponent = {\n              readonly: element.editable == 'L',\n              showDialog: false,\n              //label: element.valor,\n              campoReferencia: element.campoTabla,\n              mostrarX: !element.obligatorio,\n              booleano: this.clickGuardar && element.obligatorio && !element.valor ? true : false,\n              onChange: (event) => element.cargarValorPopup(event)\n            }\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup)\n          }\n        });\n\n      }\n    });\n    await this.utilsService.sleep(500)\n\n    this.formularioDinamico?.ngAfterViewInit();\n    this.utilsService.resizeWindowIFrame();\n\n    //this.formularioDinamico.campos = this.campos;\n  }\n\n  async traerHojaVida() {\n    this.traerNotasHoja();\n    const itemsA = this.items.map(itemListaA => itemListaA.items);\n    const itemsB = [].concat(...itemsA);\n    const resultados = itemsB.filter(itemListaB => itemListaB.queryParams['plantilla'] === 'DATO_BASICO');\n\n    let data = await this.generalService.queryForObject(new GeneralModel('SeccionDTO', null, false, { llave: resultados[0].id })).toPromise();\n    this.seccion = data;\n    this.seccion.acreditaInfo = resultados[0].queryParams['acreditaInfo']\n    this.anexo = this.seccion.anexo === 'S'\n    this.verDetalle = true;\n    this.datosBasicos = true;\n    if (this.anexo) {\n      await this.cargarListaAnexos();\n    }\n  }\n\n  async cargarListaAnexos() {\n    this.hojaVidaService.obtenerListaAnexos({ seccion: this.seccion, objeto: this.objeto }).subscribe(data => {\n      this.listaAnexos = data;\n    })\n  }\n\n  async cambioAcredita(event) {\n    this.acredita = event.checked;\n    if (this.acredita) {\n      this.seccion.acreditaInfo = this.generalPipe.NO;\n    }\n    else {\n      this.seccion.acreditaInfo = this.generalPipe.SI;\n    }\n\n    if (this.isAspirante()) {\n      this.seccion.hojaVidaCandidato = this.hojaVida.identifica;\n    } else {\n      this.seccion.cedula = this.hojaVida.identifica;\n    }\n    await this.acreditaSeccion();\n    if (!this.acredita) {\n      this.seccion.fuenteOrigen = this.hojaVidaPipe.NOAPLICADATOS;\n    }\n    else {\n      this.seccion.fuenteOrigen = this.hojaVidaPipe.NOHAYDATOS;\n    }\n    this.objeto = null;\n    await this.calculaAvance();\n    await this.actualizarAvance();\n  }\n\n  async actualizarAvance() {\n    if (this.hojaVida.identifica != null) {\n      if (this.hojaVida.avance == null || this.hojaVida.avance != this.avance) {\n        this.hojaVida.avance = this.avance;\n        await this.generalService.update(new GeneralModel('HojaVidaDTO', 'HojaVida.actualizarAvance', false, { identifica: this.hojaVida.identifica, avance: this.avance })).toPromise();\n      }\n    }\n  }\n\n  async calculaAvance() {\n    var data = await this.hojaVidaService.cargarHojaVida({ hojaVida: { identifica: this.identifica }, nuevaHoja: false }).toPromise();\n    this.hojaVida = data.hojaVida;\n    this.avance = data.avance;\n    this.items = data.listaCategoriaSeccion;\n  }\n\n  async acreditaSeccion() {\n    if (this.seccion.acreditaInfo == null) {\n      this.seccion.acreditaInfo = this.generalPipe.NO;\n    }\n    var hojaNotaSeccionDTO = new HojaNotaSeccionModel();\n    hojaNotaSeccionDTO.hojavida = this.seccion.cedula;\n    hojaNotaSeccionDTO.hojaVidaCandidato = this.seccion.hojaVidaCandidato;\n    hojaNotaSeccionDTO.seccion = this.seccion.llave;\n    hojaNotaSeccionDTO.tipo = \"S\";\n    hojaNotaSeccionDTO = await this.generalService.queryForObject(new GeneralModel('HojaNotaSeccionDTO', null, false, hojaNotaSeccionDTO)).toPromise();\n    if (hojaNotaSeccionDTO == null) {\n      if (\"E\" == this.seccion.acreditaInfo) {\n        return;\n      }\n      hojaNotaSeccionDTO = new HojaNotaSeccionModel();\n      hojaNotaSeccionDTO.hojavida = this.seccion.cedula;\n      hojaNotaSeccionDTO.hojaVidaCandidato = this.seccion.hojaVidaCandidato;\n      hojaNotaSeccionDTO.seccion = this.seccion.llave;\n      hojaNotaSeccionDTO.tipo = \"S\";\n      hojaNotaSeccionDTO.acreditaInfo = this.seccion.acreditaInfo;\n      await this.generalService.crearRegistro(new GeneralModel('HojaNotaSeccionDTO', null, false, hojaNotaSeccionDTO)).toPromise();\n      return;\n    }\n    if (\"E\" == this.seccion.acreditaInfo) {\n      this.generalService.delete(new GeneralModel('HojaNotaSeccionDTO', null, false, hojaNotaSeccionDTO)).toPromise();\n    } else {\n      hojaNotaSeccionDTO.acreditaInfo = this.seccion.acreditaInfo;\n      this.generalService.update(new GeneralModel('HojaNotaSeccionDTO', null, false, hojaNotaSeccionDTO)).toPromise();\n\n    }\n  }\n\n  async cargarSeccion(llaveSeccion, acreditaInfo) {\n    this.loadingSeccion = false;\n    this.objeto = null;\n    this.objetoTrayectoria = null;\n    this.verDetalle = false;\n    this.insertando = false;\n    let data2 = await this.generalService.queryForObject(new GeneralModel('SeccionDTO', null, false, { llave: llaveSeccion })).toPromise();\n    this.seccion = data2;\n    this.seccion.acreditaInfo = acreditaInfo;\n    this.acredita = false;\n    if ('S' != this.seccion.acreditaInfo) {\n      this.acredita = true;\n    }\n    this.formatearFechasHojaVida();\n    let mapa = {\n      'llaveSeccion': llaveSeccion,\n      'hojaVida': this.hojaVida,\n      'rol': this.storage.getDecodedJWT().aliasRol,\n      'nuevaHoja': 'false',\n      'acreditaInfo': acreditaInfo\n    }\n    let data = await this.hojaVidaService.cargarSeccion(mapa).toPromise();\n    this.novedades = data?.novedades ? data?.novedades : [];\n    this.coautor = data?.coautor\n    this.estadoCoautor = data?.estadoCoautor\n    if (data.esTrayectoria) {\n      this.listadoTrayectoria = data.listadoTrayectoria;\n      this.listaColumnaTrayectoriaPresentacion = data.listaColumnaTrayectoriaPresentacion;\n      this.listaColumnaTrayectoriaTabla = data.listaColumnaTrayectoriaTabla\n      this.verTablaSeccion = false;\n      this.esSeccionHoja = false;\n      this.columnas = [];\n      this.listaColumnaTrayectoriaTabla.forEach(async element => {\n        let columna: TableColumn = {\n          field: element.campo,\n          header: element.titulo,\n          formatDate: element.tipo === 'F',\n          //width: 200,\n          canOrder: true,\n        }\n        this.columnas.push(columna)\n        this.anexo = this.seccion.anexo === 'S'\n      });\n    } else {\n      this.campos = data.listaCampos;\n      this.verTablaSeccion = 'DATO_BASICO' !== this.seccion.plantilla;\n      await this.setValorCampos();\n      this.titulos = data.titulos;\n      this.columnas = [];\n      this.titulos.forEach(element => {\n        let columna: TableColumn = {\n          field: element.propiedad,\n          header: element.titulo,\n          formatDate: element.cf.tipo === 'F',\n          //width: 200,\n          canOrder: true,\n        }\n        this.columnas.push(columna)\n        this.anexo = this.seccion.anexo === 'S'\n      });\n      this.listado = data.listado ? data.listado : [];\n      this.esSeccionHoja = data.esSeccionHoja\n\n      this.verDetalle = 'DATO_BASICO' === this.seccion.plantilla\n      this.objeto = 'DATO_BASICO' === this.seccion.plantilla ? this.hojaVida : null\n      this.datosBasicos = 'DATO_BASICO' === this.seccion.plantilla;\n    }\n    this.loadingSeccion = true;\n    await this.utilsService.sleep(200)\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  cargarMenuLateral() {\n    if (this.isAspirante()) {\n      return;\n    }\n    this.menuLateral = [\n      { label: this.translateService.instant('generar'), styleClass: 'btn-descarga-masiva', icon: 'glyphicons glyphicons-engineering-networks', command: (event) => { this.imprimirPlanilla() } },\n      { label: this.translateService.instant('link_imprimir'), styleClass: 'btn-descarga-masiva', icon: 'glyphicons glyphicons-print', command: (event) => { this.imprimir() } },\n      { label: this.translateService.instant('cambiar') + ' ' + this.translateService.instant('tipo') + ' ' + this.translateService.instant('hoja'), styleClass: 'btn-descarga-masiva', icon: 'glyphicons glyphicons-refresh', command: (event) => { this.mostrarPopupCambiarTipoHoja = true }, visible: this.controlFuncionalidad.getControlFuncionalidad('inghov:cambiarHoja') && this.authService.getTokenKey('isCliente') == 'false' && (this.navegacion == null || this.navegacion != this.hojaVidaPipe.FILTRO_DINAMICO_EXTERNO) },\n      { label: this.translateService.instant('cambio') + ' de ' + this.translateService.instant('cedula'), styleClass: 'btn-descarga-masiva', icon: 'glyphicons glyphicons-roundabout', command: (event) => { this.mostrarPopupCambiarCedula = true }, visible: this.controlFuncionalidad.getControlFuncionalidad('inghov:cambioCedula') },\n      // { label: this.translateService.instant('regresar'), icon: 'glyphicons glyphicons-list-numbered', command: (event) => }\n    ]\n  }\n\n  imprimirPlanilla() {\n    this.mostrarPopupImpresion = true;\n  }\n\n  imprimir() {\n    this.utilsService.resizeWindowIFrame();\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'imprimirUnico',\n      message: '¿Desea descargar el formato único de hoja de vida?',\n      header: 'Confirmar',\n      acceptLabel: this.generalPipe.SI_DESC,\n      accept: () => {\n      //this.generalService.queryForList(new GeneralModel('ASDASDAS', null, false, {})).subscribe(async data => {})\n        this.hojaVidaService.imprimirHojaPublica({ hojaVida: this.hojaVida }).subscribe(data => {\n          const a = document.createElement('a')\n          var blob =  this.base64ABlob(data.archivo, 'application/pdf');\n          const objectUrl = URL.createObjectURL(blob)\n          a.href = objectUrl\n          a.download = 'Hoja Vida Publica' + '.pdf';\n          a.click();\n          URL.revokeObjectURL(objectUrl);\n          this.notificacionesService.showSuccess('Reporte generado correctamente');\n        });\n      }\n    })\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  base64ABlob(base64: string, contentType: string): Blob {\n    const byteCharacters = atob(base64);\n    const byteNumbers = new Array(byteCharacters.length);\n\n    for (let i = 0; i < byteCharacters.length; i++) {\n      byteNumbers[i] = byteCharacters.charCodeAt(i);\n    }\n\n    const byteArray = new Uint8Array(byteNumbers);\n    return new Blob([byteArray], { type: contentType });\n  }\n\n  regresarCambiarTipoHoja() {\n    this.mostrarPopupCambiarTipoHoja = false\n  }\n\n  regresarImpresion() {\n    this.mostrarPopupImpresion = false\n  }\n\n  async regresarCambioCedula(evento) {\n    this.mostrarPopupCambiarCedula = false;\n    if (evento.aplicado) {\n      if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n        window.top.location.href = this.utilsService.obtenerBase() + '/portalEmpleados/hojadevida'\n      } else {\n        if (window.location.href.includes(\"listadoHojaVidaAspirante\")) {\n          window.top.location.href = this.utilsService.obtenerBase() + '/hojavida/listadoHojaVidaAspirante/US_editar/' + evento.hojavida.identifica\n        } else {\n          window.top.location.href = this.utilsService.obtenerBase() + '/hojavida/listadoHojaVida/US_editar/' + evento.hojavida.identifica\n        }\n      }\n    }\n  }\n\n  regresar() {\n    if (this.empleado) {\n      this.regresaEmpleado.emit(false);\n    } else if(this.navBuscadorHV){\n      this.regresaBuscadorHV.emit();\n    }else {\n      if (window.location.href.includes(\"listadoHojaVidaAspirante\")) {\n        this.router.navigate([this.utilsService.obtenerBase() + '/hojavida/listadoHojaVidaAspirante/'])\n      } else {\n        this.router.navigate([this.utilsService.obtenerBase() + '/hojavida/listadoHojaVida/'])\n      }\n    }\n  }\n\n  modificarObjetoTrayectoria(event) {\n    this.objetoTrayectoria = event;\n    this.insertando = false;\n  }\n\n  async onRowSelect(data2) {\n    this.llaveObjeto = null;\n    this.verDetalle = true;\n    this.objeto = data2.data;\n    this.insertando = false;\n    let objeto = {\n      objeto: data2.data,\n      hojaVida: this.hojaVida,\n      seccion: this.seccion,\n      verAdjunto: this.seccion.anexo === 'U',\n      listaCamposWS: this.campos\n    }\n    this.campos = []\n    let data = await this.hojaVidaService.modificarObjeto(objeto).toPromise();\n    console.log(data)\n    this.novedades = data?.novedades ? data?.novedades : [];\n    this.coautor = data?.coautor\n    this.estadoCoautor = data?.estadoCoautor\n    this.campos = data.listaCampos;\n    this.objeto = data.objeto;\n    this.llaveObjeto = this.objeto['llave']\n    this.unicoAdjunto = data.unicoAdjunto != null && data.unicoAdjunto != undefined ? data.unicoAdjunto : new ArchivoModel();\n    await this.setValorCampos();\n    if (this.anexo) {\n      await this.cargarListaAnexos();\n    }\n  }\n\n  validarFuncionalidad(funcionalidad) {\n    return this.controlFuncionalidad.getControlFuncionalidad(funcionalidad);\n  }\n\n  async nuevo() {\n    this.insertando = true;\n    this.coautor = false;\n    this.anexo = false;\n    this.datosBasicos = false;\n    this.verDetalle = true;\n    this.objeto = null;\n    let plantillasFiltro = this.hojaVidaPipe.LISTA_PLANTILLAS.filter(element => element.codigo === this.seccion.plantilla);\n    let plantilla = plantillasFiltro[0].nombre\n    if (plantilla === this.hojaVidaPipe.HOJAINTELECTO) {\n      this.objeto = new HojaIntelectoDTO();\n      if (this.isAspirante()) {\n        this.objeto.hojaVidaCandidato = this.hojaVida.identifica;\n        this.objeto.identifica = 0;\n      } else {\n        this.objeto.identifica = this.hojaVida.identifica;\n      }\n      this.objeto.seccion = this.seccion.llave;\n    } else if (plantilla === this.hojaVidaPipe.HOJAPARIENTE) {\n      this.objeto = new HojaParienteModel();\n      if (this.isAspirante()) {\n        this.objeto.hojaVidaCandidato = this.hojaVida.identifica;\n        this.objeto.identifica = 0;\n      } else {\n        this.objeto.identifica = this.hojaVida.identifica;\n      }\n      this.objeto.seccion = this.seccion.llave;\n    } else if (plantilla === this.hojaVidaPipe.HOJAPATRIMONIO) {\n      this.objeto = new HojaPatrimonioModel();\n      if (this.isAspirante()) {\n        this.objeto.hojaVidaCandidato = this.hojaVida.identifica;\n        this.objeto.identifica = 0;\n      } else {\n        this.objeto.identifica = this.hojaVida.identifica;\n      }\n      this.objeto.seccion = this.seccion.llave;\n    } else if (plantilla === this.hojaVidaPipe.EQUIPOINTEGRANTE) {\n      this.objeto = new EquipoIntegranteModel();\n      if (this.isAspirante()) {\n        this.objeto.hojaVidaCandidato = this.hojaVida.identifica;\n        this.objeto.identifica = 0;\n      } else {\n        this.objeto.identifica = this.hojaVida.identifica;\n      }\n      this.objeto.seccion = this.seccion.llave;\n    }\n    let objeto = {\n      objeto: this.objeto,\n      hojaVida: this.hojaVida,\n      seccion: this.seccion,\n      verAdjunto: this.seccion.anexo === 'U',\n      listaCamposWS: this.campos\n    }\n    this.campos = []\n    let data = await this.hojaVidaService.modificarObjeto(objeto).toPromise();\n    console.log(data)\n    this.novedades = data?.novedades ? data?.novedades : [];\n    this.coautor = data?.coautor\n    this.estadoCoautor = data?.estadoCoautor\n    this.campos = data.listaCampos;\n    this.objeto = data.objeto;\n    this.unicoAdjunto = data.unicoAdjunto != null || data.unicoAdjunto != undefined ? data.unicoAdjunto : new ArchivoModel();\n    await this.setValorCampos();\n    //this.formularioDinamico.ngAfterViewInit();\n  }\n\n  async siguienteLista() {\n    let breakExterno = false;\n    for (let i = 0; i < this.items.length; i++) {\n      for (let j = 0; j < this.items[i].items.length; j++) {\n        if (this.seccion.llave === this.items[i].items[j].id) {\n          if (this.items[i].items.length === j + 1) {\n            await this.cargarSeccion(this.items[i + 1].items[0].id, this.items[i + 1].items[0].queryParams['acreditaInfo'])\n            breakExterno = true;\n            break;\n          } else {\n            await this.cargarSeccion(this.items[i].items[j + 1].id, this.items[i].items[j + 1].queryParams['acreditaInfo'])\n            breakExterno = true;\n            break;\n          }\n        }\n      }\n      if (breakExterno) {\n        break;\n      }\n    }\n\n    this.items.forEach(sec => {\n      sec.items.forEach(secDetalle => {\n        this.llaveUltimaSeccion = secDetalle.id;\n        secDetalle.command = async () => await this.cargarSeccion(secDetalle.id, secDetalle.queryParams['acreditaInfo'])\n      })\n    })\n  }\n\n  async siguiente() {\n    this.cargarSiguiente = true;\n    await this.guardar();\n    //await this.siguienteLista();\n  }\n\n  async guardar() {\n    this.clickGuardar = true;\n    if (!this.formularioDinamico.validar()) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      return;\n    }\n    this.clickGuardar = false;\n    let objeto = {\n      objeto: this.construirObjeto(),\n      hojaVida: this.hojaVida,\n      seccion: this.seccion,\n      verAdjunto: this.seccion.anexo === 'U',\n      listaCamposWS: this.campos,\n      listaCaracteristicasWS: this.campos.filter(data => data.caracteristica),\n      nuevaHoja: this.nuevaHoja,\n      insertando: this.insertando,\n      hojaExterna: this.isAspirante() ? 'S' : null,\n    }\n    let data = await this.hojaVidaService.guardar(objeto).toPromise();\n      console.log('sale al guardar hv')\n      console.log(data)\n      if (data.correoInvalido == true) {\n        this.formularioDinamico.isMensaje = true;\n        this.campos = data.listaCampos;\n        this.notificacionesService.showError('Error al validar formato campos');\n        return;\n      }\n      if (this.nuevaHoja) {\n        this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, { identifica: this.hojaVida.identifica,hojaExterna: this.isAspirante() ? 'S' : null })).subscribe(data => {\n          this.hojaVida = data;\n          console.log(data)\n          this.formatearFechasHojaVida();\n          this.cargarMenuLateral();\n          this.calculaAvance().then(data => { });\n        })\n      }\n      if (data?.llaveTabla) {\n        this.llaveObjeto = data.llaveTabla;\n      }\n      if (this.seccion.anexo == 'U' && this.archivoSeleccionadoAnexoUnico) {\n        this.guardarAdjuntoUnico();\n      }\n\n      if (data?.mensaje) {\n        this.nuevaHoja = false;\n        this.insertando = false;\n        if (!data.mensaje.includes('el registro exitosamente')) {\n          this.notificacionesService.showWarningPopup(data.mensaje)\n        } else {\n          this.notificacionesService.showInfo(data.mensaje)\n        }\n\n\n        if (this.cargarSiguiente) {\n          await this.siguienteLista();\n          this.cargarSiguiente = false;\n        } else {\n          if (this.seccion.plantilla == 'DATO_BASICO') {\n            await this.cargarHojaVida();\n          } else {\n            await this.cargarSeccion(this.seccion.llave, this.seccion.acreditaInfo);\n          }\n        }\n      }\n      await this.utilsService.sleep(200);\n      this.utilsService.resizeWindowIFrame();\n      //this.campos = data.listaCampos;\n      //this.objeto = data.objeto;\n      //await this.setValorCampos();\n\n  }\n\n  construirObjeto() {\n    let objetoRetorno = {}\n    console.log('construirObjeto')\n    console.log(this.campos)\n    this.campos.forEach(campo => {\n      if (!campo.caracteristica) {\n        objetoRetorno[campo.campo] = campo.valor\n      }\n    })\n    objetoRetorno['identifica'] = this.hojaVida.identifica\n    if (!this.datosBasicos) {\n      objetoRetorno['llave'] = this.objeto.llave\n      objetoRetorno['seccion'] = this.seccion.llave\n      objetoRetorno['identifica'] = this.isAspirante() ? 0 : this.hojaVida.identifica;\n      objetoRetorno['hojaVidaCandidato'] = this.isAspirante() ? this.hojaVida.identifica : null;\n    } else {\n      objetoRetorno['documento'] = this.hojaVida.documento\n      objetoRetorno['tipohoja'] = this.hojaVida.tipohoja\n      objetoRetorno['nombrefoto'] = this.hojaVida.nombrefoto\n    }\n    return objetoRetorno;\n  }\n\n  eliminar() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      header: 'Confirmar',\n      acceptLabel: this.generalPipe.SI_DESC,\n      accept: () => {\n        this.hojaVidaService.eliminar({ hojaVida: this.hojaVida, seccion: this.seccion, objeto: this.objeto }).subscribe({\n          next: async (data) => {\n            this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n            await this.cargarSeccion(this.seccion.llave, this.seccion.acreditaInfo)\n          }\n        })\n      }\n    })\n  }\n\n  eliminarHojaVida() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea eliminar la hoja de vida?',\n      header: 'Confirmar',\n      acceptLabel: this.generalPipe.SI_DESC,\n      accept: async () => {\n        await this.eliminarFoto();\n        this.hojaVidaService.eliminarHojaVida(this.hojaVida).subscribe({\n          next: (data) => {\n            this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n            this.regresar()\n          }\n        })\n      }\n    })\n\n  }\n\n  cargarAnexo(data: any, fubauto) {\n    this.archivoSeleccionadoAnexo = data.files[0];\n    this.readFile(this.archivoSeleccionadoAnexo);\n    this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n    fubauto.clear();\n  }\n\n  async cargarDocumento(data, fubauto) {\n    const element = document.querySelector('.UploadFoto-btn span.p-ripple.p-element.p-button.p-component.p-fileupload-choose.p-button-icon-only');\n    if (data.currentFiles.length == 0) {\n      if (element) {\n        (element as HTMLElement).style.bottom = '160px';\n      }\n    } else {\n      if (element) {\n        (element as HTMLElement).style.bottom = '40px';\n      }\n    }\n\n    await this.eliminarFoto();\n    this.archivoSeleccionado = data.currentFiles[0];\n    this.readFile(this.archivoSeleccionado);\n    this.subirArchivo();\n    fubauto.clear();\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    //this.filename = file.name;\n  }\n\n  actualizarPreguntasRespuestasHoja() {\n    this.hojaVidaService.respuestasUsuario({ identifica: this.hojaVida.identifica, timer: false }).subscribe(data => {\n      this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n    })\n  }\n\n  subirArchivo() {\n\n    let propiedad = 'ruta_fotos' //PropiedadesAplicativo.RUTA_ANEXOSHOJAVIDA;\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n\n    let llaveNuevoReg = this.hojaVida.nombrefoto ? this.hojaVida.nombrefoto : this.hojaVida.documento;//this.utils.generarLlave();\n    let fileExtension: string = 'jpg'//this.archivoSeleccionado.name.split('?')[0].split('.').pop();\n    this.archivoSeleccionado = new File([this.archivoSeleccionado], llaveNuevoReg + '.' + fileExtension);\n    this.cargarArchivo.cargarArchivo(this.archivoSeleccionado, '/', propiedad, codigoAplicacion).subscribe({\n      next: (event) => {\n        if (event.type === HttpEventType.Response) {\n          if (this.isAspirante()) {\n            this.generalService.update(new GeneralModel('HojaVidaDTO', 'HojaVidaCandidato.actualizarArchivoFoto', false, { nombrefoto: this.hojaVida.identifica, identifica: this.hojaVida.identifica })).subscribe(data => {\n              this.hojaVida.nombrefoto = this.hojaVida.identifica.toString();\n              this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n              this.cargarImagenFoto();\n            })\n          } else {\n            this.generalService.update(new GeneralModel('HojaVidaDTO', 'HojaVida.actualizarArchivoFoto', false, { nombrefoto: this.hojaVida.identifica, identifica: this.hojaVida.identifica })).subscribe(data => {\n              this.hojaVida.nombrefoto = this.hojaVida.identifica.toString();\n              this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n              this.cargarImagenFoto();\n            })\n          }\n          \n        }\n      },\n    });\n  }\n\n  cargarImagenFoto() {\n\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.hojaVida.nombrefoto + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n      this.blobToBase64(blob)\n\n    });\n\n  }\n\n  activarNovedad(event, novedad) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea volver a activar la novedad?',\n      acceptLabel: this.generalPipe.SI_DESC,\n      header: 'Confirmar',\n      accept: async () => {\n        let data = await this.hojaVidaService.activarNovedad({ novedad: novedad, seccion: this.seccion, cedula: this.hojaVida.identifica }).toPromise();\n        this.novedades = data.novedades;\n        this.notificacionesService.showInfo(\"Novedad activada\");\n      }\n    })\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  async eliminarFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    if (!this.hojaVida.nombrefoto) {\n      return;\n    }\n    await this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(this.hojaVida.nombrefoto + '.jpg'), propiedad, aplicacion).toPromise();\n  }\n\n  //ANEXOS\n\n\n  verNuevoAnexo() {\n    this.nuevoAnexo = true;\n  }\n\n  async regresarPopupArchivo() {\n    this.nuevoAnexo = false;\n    await this.cargarListaAnexos();\n  }\n\n  descargarAnexo(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    //Ruta archivo\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.rutaFisica), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.archivoorigen;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n  eliminarAnexo(event, documento) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea eliminar?',\n      acceptLabel: this.generalPipe.SI_DESC,\n      header: 'Confirmar',\n      accept: async () => {\n\n        let propiedad = 'ruta_anexosHojaVida'\n        let aplicacion = this.authService.getTokenKey('aplicacion');\n\n        let data = await this.archivoAnexoHojaVidaService.eliminarAnexo(documento).toPromise();\n        if (data == 1) {\n          this.notificacionesService.showSuccess('Se eliminó el registro exitosamente');\n\n          //Ruta archivo\n\n          let rutaSeg = data;\n          await this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(documento.rutaFisica), propiedad, aplicacion).toPromise();\n\n          await this.cargarListaAnexos()\n\n        } else {\n          this.notificacionesService.showError('Error en el método de eliminar recurso');\n          //this.isLoading = false;\n        }\n      },\n    });\n\n  }\n\n  guardarAnexo() {\n\n    if (this.anexoModel.descripcion) {\n      //this.encriptarRuta();\n      this.subirAnexo();\n    } else {\n      this.notificacionesService.showError('Debe diligenciar una descripcion')\n    }\n  }\n\n  subirAnexo() {\n\n    let propiedad = 'ruta_anexosHojaVida'\n    let plantillasFiltro = this.hojaVidaPipe.LISTA_PLANTILLAS.filter(element => element.codigo === this.seccion.plantilla);\n    let rutaCarpeta = this.crearEstructuraAnexo(plantillasFiltro[0].nombre.toLowerCase())\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n\n    let llaveNuevoReg = this.utils.generarLlave();\n    let fileExtension: string = this.archivoSeleccionadoAnexo.name.split('?')[0].split('.').pop();\n    this.archivoSeleccionadoAnexo = new File([this.archivoSeleccionadoAnexo], llaveNuevoReg + '.' + fileExtension);\n\n    this.cargarArchivo.cargarArchivo(this.archivoSeleccionadoAnexo, rutaCarpeta, propiedad, codigoAplicacion).subscribe({\n      next: async (event) => {\n        if (event.type === HttpEventType.Response) {\n\n          let response: any = event.body;\n          this.anexoModel.archivoorigen = response.nombreArchivo;\n          this.anexoModel.llaveTabla = llaveNuevoReg;\n\n          let data = await this.hojaVidaService.guardarAnexo({ archivoDTO: this.anexoModel, seccion: this.seccion, objeto: this.objeto }).toPromise();\n          if (data != null) {\n            this.notificacionesService.showSuccess('Se agregó exitosamente');\n            await this.cargarListaAnexos();\n\n          } else {\n            this.notificacionesService.showError('Error en el método de agregar anexo');\n          }\n        }\n\n      },\n    });\n  }\n\n  crearEstructuraAnexo(tabla: string): string {\n\n    const fecha = new Date();\n\n    let anio = fecha.getFullYear();\n    let mes = fecha.getMonth() + 1;\n    let ruta = \"\";\n    ruta = '/' + tabla + '/' + anio + '/' + mes + '/';\n    return ruta;\n  }\n\n  buscarPosicionItem(idBuscado): (number | undefined) {\n    return (this.itemsNuevaHoja.findIndex(objeto => objeto.id === idBuscado) + 1)\n  }\n\n  //notas\n  traerNotasHoja() {\n    this.usuario = this.authService.getTokenKey('usuario');\n\n    this.nuevaNotaHoja = new HojaNotaSeccionModel();\n\n    var hojaNotaSeccionDTO = new HojaNotaSeccionModel();\n    if (this.isAspirante()) {\n      hojaNotaSeccionDTO.hojaVidaCandidato = this.hojaVida.identifica;\n    }\n    else {\n      hojaNotaSeccionDTO.hojavida = this.hojaVida.identifica;\n    }\n    hojaNotaSeccionDTO.tipo = 'N'\n    this.generalService.queryForList(new GeneralModel('HojaNotaSeccionDTO', null, false, hojaNotaSeccionDTO)).subscribe(data => {\n      this.listadoNotas = data;\n    });\n  }\n\n  cancelarNuevaNota() {\n    this.vistaVisualizar = null;\n    this.nuevaNotaHoja = new HojaNotaSeccionModel()\n  }\n\n  async crearNota() {\n    if (this.isAspirante()) {\n      this.nuevaNotaHoja.hojaVidaCandidato = this.hojaVida.identifica;\n    } else {\n      this.nuevaNotaHoja.hojavida = this.hojaVida.identifica;\n    }\n    this.nuevaNotaHoja.tipo = 'N';\n    this.nuevaNotaHoja.nombrecreo = this.authService.getTokenKey('nombreUsuario')\n    this.nuevaNotaHoja = await this.generalService.crearRegistro(new GeneralModel('HojaNotaSeccionDTO', null, false, this.nuevaNotaHoja)).toPromise();\n    this.listadoNotas.unshift(this.nuevaNotaHoja);\n    this.nuevaNotaHoja = new HojaNotaSeccionModel();\n    this.cancelarNuevaNota();\n    this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_GUARDAR)\n  }\n\n  nuevaNota() {\n    this.vistaVisualizar = 'nuevo'\n    this.nuevaNotaHoja = new HojaNotaSeccionModel();\n    this.nuevaNotaHoja.nombrecreo = this.authService.getTokenKey('nombreUsuario')\n    this.nuevaNotaHoja.fechaAdicionado = new Date();\n  }\n\n  actualizarNota(bean) {\n\n  }\n\n  eliminarNota(event: Event, dato: HojaNotaSeccionModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: this.generalPipe.SI_DESC,\n      accept: async () => {\n        await this.generalService.delete(new GeneralModel('HojaNotaSeccionDTO', null, false, dato)).toPromise();\n        this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n        this.traerNotasHoja();\n      }\n    })\n  }\n\n  formatearFechasHojaVida() {\n    this.hojaVida.nacimiento = this.hojaVida.nacimiento ? new Date(this.hojaVida.nacimiento) : null;\n    this.hojaVida.fechaExpedicion = this.hojaVida.fechaExpedicion ? new Date(this.hojaVida.fechaExpedicion) : null;\n    this.hojaVida.fechaFallecimiento = this.hojaVida.fechaFallecimiento ? new Date(this.hojaVida.fechaFallecimiento) : null;\n    this.hojaVida.ingreso = this.hojaVida.ingreso ? new Date(this.hojaVida.ingreso) : null;\n    this.hojaVida.fechaInicial = this.hojaVida.fechaInicial ? new Date(this.hojaVida.fechaInicial) : null;\n    this.hojaVida.fechaFinal = this.hojaVida.fechaFinal ? new Date(this.hojaVida.fechaFinal) : null;\n    this.hojaVida.fechaAdicionado = this.hojaVida.fechaAdicionado ? new Date(this.hojaVida.fechaAdicionado) : null;\n    this.hojaVida.fechaModificado = this.hojaVida.fechaModificado ? new Date(this.hojaVida.fechaModificado) : null;\n  }\n\n  deshacerEliminacion() {\n\n  }\n\n  private readFileUnico(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.unicoAdjunto.archivoorigen = file.name;\n  }\n\n  setAdjuntoUnico(data: any, fubauto) {\n    let extPermitidas: string[] = this.seccion.extensionArchivo ? this.seccion.extensionArchivo.split(',') : ['pdf'];\n    this.archivoSeleccionadoAnexoUnico = data.files[0];\n    let extArchivo = this.archivoSeleccionadoAnexoUnico.name.split('.')[1];\n    extPermitidas = extPermitidas.map(ext => ext.trim().toLowerCase());\n    if (extPermitidas.includes('.' + extArchivo.toLowerCase())) {\n      this.readFileUnico(this.archivoSeleccionadoAnexoUnico);\n      this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n      fubauto.clear();\n    } else {\n      fubauto.clear();\n      this.unicoAdjunto = new ArchivoModel();\n      this.notificacionesService.showError('Solo son permitidas las extensiones '+(this.seccion.extensionArchivo ? this.seccion.extensionArchivo : 'pdf'));\n      return;\n    }\n  }\n\n  guardarAdjuntoUnico() {\n    let propiedad = 'ruta_anexosHojaVida'\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n    let plantillasFiltro = this.hojaVidaPipe.LISTA_PLANTILLAS.filter(element => element.codigo === this.seccion.plantilla);\n    let nombreTabla = plantillasFiltro[0].nombre.toLowerCase();\n    let rutaCarpeta = this.crearEstructuraAnexo(nombreTabla);\n    let existeUnicoAnexo = this.utilsService.isNotBlank(this.unicoAdjunto.llaveTabla);\n    let llaveNuevoReg = this.unicoAdjunto.llaveTabla ? this.unicoAdjunto.llaveTabla : this.utilsService.generarLlave();\n    let fileExtension: string = this.archivoSeleccionadoAnexoUnico.name.split('?')[0].split('.').pop();\n    this.archivoSeleccionadoAnexoUnico = new File([this.archivoSeleccionadoAnexoUnico], llaveNuevoReg + '.' + fileExtension);\n    this.cargarArchivo.cargarArchivo(this.archivoSeleccionadoAnexoUnico, rutaCarpeta, propiedad, codigoAplicacion).subscribe({\n      next: (event) => {\n        if (event.type === HttpEventType.Response) {\n          this.defineUnicoAdjunto(nombreTabla);\n          //his.unicoAdjunto.archivoorigen = this.filename;\n          this.unicoAdjunto.llaveTabla = llaveNuevoReg;\n          this.unicoAdjunto.carpeta = rutaCarpeta;\n          //this.unicoAdjunto.llaveTablaArchivo = this.llaveTablaAnexo;\n          //this.unicoAdjunto.nombreTabla = this.tabla;\n          console.log(this.unicoAdjunto)\n          if (existeUnicoAnexo) {\n            this.archivoAnexoHojaVidaService.actualizarAnexo(this.unicoAdjunto).subscribe(data => {\n              let dataFile =  { files: File }\n              this.archivoSeleccionadoAnexoUnico = dataFile.files[0];\n            })\n          } else {\n            this.archivoAnexoHojaVidaService.insertarAnexo(this.unicoAdjunto).subscribe(data => {\n              let dataFile =  { files: File }\n              this.archivoSeleccionadoAnexoUnico = dataFile.files[0];\n            })\n          }\n        }\n      }\n    })\n  }\n\n  defineUnicoAdjunto(tabla: string) {\n    console.log('defineUnicoAdjunto: ' + tabla)\n    console.log(this.objeto)\n\t\tif (tabla == (this.hojaVidaPipe.HOJAINTELECTO.toLowerCase())) {\n\t\t\tthis.unicoAdjunto.hojaintelecto = this.llaveObjeto;\n\t\t\tthis.unicoAdjunto.identifica = this.hojaVida.identifica;\n\t\t\tthis.unicoAdjunto.hojaVidaCandidato =  this.isAspirante() ? this.hojaVida.identifica : null;\n\t\t} else if (tabla == (this.hojaVidaPipe.HOJAPARIENTE.toLowerCase())) {\n\t\t\tthis.unicoAdjunto.hojapariente = this.llaveObjeto;\n\t\t\tthis.unicoAdjunto.identifica = this.hojaVida.identifica;\n\t\t\tthis.unicoAdjunto.hojaVidaCandidato =   this.isAspirante() ? this.hojaVida.identifica : null;;\n\t\t} else if (tabla == (this.hojaVidaPipe.HOJAPATRIMONIO.toLowerCase())) {\n\t\t\tthis.unicoAdjunto.hojapatrimonio = this.llaveObjeto;\n\t\t\tthis.unicoAdjunto.identifica = this.hojaVida.identifica;\n\t\t\tthis.unicoAdjunto.hojaVidaCandidato =   this.isAspirante() ? this.hojaVida.identifica : null;;\n\t\t} else if (tabla == (this.hojaVidaPipe.EQUIPOINTEGRANTE.toLowerCase())) {\n\t\t\tthis.unicoAdjunto.equipointegrante = this.llaveObjeto;\n\t\t\tthis.unicoAdjunto.identifica = this.hojaVida.identifica;\n\t\t\tthis.unicoAdjunto.hojaVidaCandidato =   this.isAspirante() ? this.hojaVida.identifica : null;;\n\t\t} else {\n\t\t\tif ( this.isAspirante()) {\n\t\t\t\tthis.unicoAdjunto.hojaVidaCandidato = this.hojaVida.identifica;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.unicoAdjunto.identifica = this.hojaVida.identifica;\n\t\t\t}\n\t\t\tthis.unicoAdjunto.tipoActo = \"HO\";\n      console.log(this.unicoAdjunto)\n\t\t}\n  }\n\n  descargarAnexoUnico(){\n\n  }\n\n  public validarExtensiones(): string {\n    let extensionesPermitidas: string[] = this.seccion.extensionArchivo ? this.seccion.extensionArchivo.split(',') : ['pdf'];\n    return extensionesPermitidas.map(ext => `.${ext}`).join(',');\n  }\n\n  isAutoServicio() {\n    return this.authService.getTokenKey('aplicacion') == '10'\n  }\n\n  isAspirante() {\n    return this.hojaVida.hojaExterna != null;\n  }\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-confirmPopup key=\"imprimirUnico\"></p-confirmPopup>\n<div class=\"Inputgroup-borde mt-0\">\n    <div class=\"p-fluid grid\">\n        \n\n        <div class=\"hojavida\" *ngIf=\"!loadingSeccion\">\n            <div class=\"flex justify-content-end align-items-center\" *ngIf=\"!isAutoServicio()\">\n                <div class=\"flex justify-content-end  mb-1\" >\n                    <button pButton pRipple (click)=\"regresar()\" label= \"{{'link_regresar' | translate}}\"  \n                        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n                </div>\n            </div>\n            <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\" ></p-progressBar>\n        </div>\n        <div class=\"hojavida\" *ngIf=\"seccion != null && loadingSeccion\">\n                \n\n            <div class=\"flex justify-content-between align-items-center \">\n                <h1 class=\"mt-2\">{{seccion.descripcion}}</h1>\n                <div class=\"flex justify-content-end  mb-1\" *ngIf=\"!isAutoServicio()\" >\n                    <button pButton pRipple (click)=\"regresar()\" label= \"{{'link_regresar' | translate}}\" \n                        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n                </div>\n            </div>\n            \n            <p-menubar class=\"menu-accion-sara mt-4 mb-4\" [model]=\"menuLateral\" separator=\"true\" *ngIf=\"!isAspirante()\"></p-menubar>\n          \n\n\n            <div class=\"cardInstrucciones mt-4 mb-3\" *ngIf=\"(seccion.mensajeIdioma ? seccion.mensajeIdioma : seccion.mensaje)\">\n                <div class=\"flex\">\n                    <div class=\"icono\">\n                        <i class=\"pi pi-bell\"></i>\n                    </div>\n                    <div class=\"contenedor\">\n                        <label>{{seccion.mensajeIdioma ? seccion.mensajeIdioma : seccion.mensaje}}</label>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"flex justify-content-end mb-3\">\n                <button pButton pRipple class=\"p-button-outlined\"\n                    *ngIf=\"(objeto != null && objeto != undefined) && objeto?.aprobada != 'B' && validarFuncionalidad('inghov:guardar') && objeto?.modificaPuntaje != 'S' && datosBasicos\"\n                    icon=\"glyphicons glyphicons-chevron-right\" label=\"{{'link_continuar' | translate}}\"\n                    (click)=\"siguiente()\"></button>\n                <div class=\"mb-1\" *ngIf=\"objetoTrayectoria\">\n                    <button pButton pRipple (click)=\"objetoTrayectoria = null; insertando = false;\" label= \"{{'listado' | translate}} {{seccion.descripcion}}\" \n                        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n                </div>\n            </div> \n\n            <div *ngIf=\"objetoTrayectoria == null && objetoTrayectoria == undefined && listadoTrayectoria != null && !esSeccionHoja\">\n                <div class=\"flex justify-content-end align-items-center mb-3\">\n                    <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_continuar' | translate}}\" *ngIf=\"seccion.llave != llaveUltimaSeccion || nuevaHoja\"\n                        (click)=\"siguienteLista()\"><i class=\"glyphicons glyphicons-chevron-right\"></i></button>\n                </div>\n                <app-tabla-general #tablaGeneral dataKey=\"llaveTabla\" [columns]=\"columnas\" [value]=\"listadoTrayectoria\"\n                    [rows]=\"10\" [totalRecords]=\"listadoTrayectoria.length\"\n                    (onRowSelect)=\"modificarObjetoTrayectoria($event)\"></app-tabla-general>\n            </div>\n\n            <div *ngIf=\" verTablaSeccion && esSeccionHoja\">\n                <div class=\"flex justify-content-between align-items-center mb-3\">\n                    <div *ngIf=\"listado.length == 0\" >\n                        <label class=\"font-medium mb-1\" style=\"font-size: 1rem !important\">{{'acreditainformacion' | translate}}</label>\n                        <p-inputSwitch class=\"ml-2 mt-2\" [(ngModel)]=\"acredita\" (onChange)=\"cambioAcredita($event)\"></p-inputSwitch>\n                    </div>\n                    <div *ngIf=\"listado.length > 0\"></div>\n                    <div *ngIf=\"!objeto\">\n                        <button pButton pRipple (click)=\"nuevo()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"validarFuncionalidad('inghov:guardar') && seccion.acreditaInfo == 'S' &&  !insertando\"\n                            icon=\"pi pi-plus\" class=\"p-button-secondary font-semibold flex-shrink-0 ml-4 mr-2\"></button>\n                        <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_continuar' | translate}}\" *ngIf=\"seccion.llave != llaveUltimaSeccion || nuevaHoja\"\n                            (click)=\"siguienteLista()\"><i class=\"glyphicons glyphicons-chevron-right\"></i></button>\n                    </div>\n                    <div class=\"mb-1\" *ngIf=\"objeto && seccion.acreditaInfo == 'S'\">\n                        <button pButton pRipple (click)=\"objeto = null; insertando = false;\" label= \"{{'listado' | translate}} {{seccion.descripcion}}\" \n                            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n                    </div>\n                </div>\n\n                <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listado\" [rows]=\"10\"   [tableStyle]=\"{ 'min-width': '100rem' }\"\n                    [totalRecords]=\"listado.length\" [paginator]=\"listado.length > 10\" *ngIf=\"!objeto && seccion.acreditaInfo == 'S'\"\n                    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [columns]=\"columnas\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" (onRowSelect)=\"onRowSelect($event)\">\n\n                    <ng-template pTemplate=\"header\" let-columns=\"columnas\">\n                        <tr>\n                            <th *ngFor=\"let col of columnas\">{{col.header | generalPipe : 'capitallizeFully'}}</th>\n                            <th>\n                            </th>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-item let-columns=\"columnas\">\n                        <tr>\n                            <td [pSelectableRow]=\"item\" *ngFor=\"let col of columnas\">{{col.formatDate ? (item[col.field] | date : ('formatofecha' |translate)) : item[col.field]}}</td>\n                            <td>\n                                @if (item.nuevoRender) {\n                                    <i class=\"pi pi-star\"></i>\n                                }\n                                @if (item.creadoRechazadoRender) {\n                                    <i class=\"pi pi-ban\"></i>\n                                }\n                                @if (item.borradoRender) {\n                                    <i class=\"pi pi-minus-circle\"></i>\n                                }\n                            </td>\n                        </tr>\n                    </ng-template>\n                    \n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                </p-table>\n\n                <!--<app-tabla-general #tablaGeneral dataKey=\"llaveTabla\" [columns]=\"columnas\" [value]=\"listado\" [rows]=\"10\" *ngIf=\"!objeto && seccion.acreditaInfo == 'S'\"\n                    [totalRecords]=\"listado.length\" (onRowSelect)=\"onRowSelect($event)\"></app-tabla-general>-->\n            </div>\n         <div class=\"contenidoDatosBasicos\">\n            <div *ngIf=\"objetoTrayectoria != null && objetoTrayectoria != undefined && !esSeccionHoja\">\n                <div class=\"card\">\n                    <p-table [value]=\"listaColumnaTrayectoriaPresentacion\">\n                        <ng-template pTemplate=\"body\" let-campo>\n                            <tr>\n                                <td style=\"width: 20%;\">\n                                    <label>{{campo.titulo}}</label>\n                                </td>\n                                <td style=\"width: 80%\">\n                                    <div class=\"p-fluid p-formgrid grid\">\n                                        <p-calendar class=\"w-full\" appendTo=\"body\"  [autoZIndex]=\"false\" type=\"text\"\n                                            [(ngModel)]=\"objetoTrayectoria[campo.campo]\" [disabled]=\"true\" dateFormat=\"dd/mm/yy\"\n                                            *ngIf=\"campo.tipo == 'F'\" [showIcon]=\"true\"\n                                        ></p-calendar>\n                                        <input pInputText [disabled]=\"true\" [(ngModel)]=\"objetoTrayectoria[campo.campo]\" \n                                            *ngIf=\"campo.campo != 'F'\" />\n                                    </div>\n                                </td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                </div>\n            </div>\n            <!--NOTAS-->\n            <p-accordion>\n                <p-accordionTab *ngIf=\"verComentarios && objeto && esSeccionHoja && datosBasicos\">\n                    <ng-template pTemplate=\"header\">\n                        <i class=\"glyphicons glyphicons-notes-2\"></i>{{'comentario' | translate}}\n                    </ng-template>\n                    <ng-template pTemplate=\"content\">\n                        <div class=\"field col-12 md:col-12 lg:col-12\">\n                            <div class=\"flex justify-content-end align-items-center mb-3\">\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevaNota()\"\n                                    label=\"{{'link_nuevo' | translate}}\">\n                                </button>\n                            </div>\n                            <p-table #tablaGeneral [value]=\"listadoNotas\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                                [totalRecords]=\"listadoNotas.length\" [paginator]=\"listadoNotas.length > 10\"\n                                scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                                dataKey=\"llaveTabla\" [showCurrentPageReport]=\"true\" \n                                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" editMode=\"row\">\n                                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                <ng-template pTemplate=\"header\">\n                                    <tr>\n                                        <th style=\"width: 20%\">{{'usuario' | translate}}</th>\n                                        <th style=\"width: 20%\">{{'fechaadicionado' | translate}}</th>\n                                        <th style=\"width: 60%\">{{'observacion' | translate}}</th>\n                                        <th style=\"width: 10%\" *ngIf=\"controlFuncionalidad.getControlFuncionalidad('inghov:crearnotas')\"></th>\n                                    </tr>\n                                    <tr *ngIf=\"vistaVisualizar == 'nuevo' \" class=\"TablaNuevoRegistro\">\n                                        <td style=\"width: 20%\">\n                                            <label class=\"ml-1\">{{nuevaNotaHoja.nombrecreo}}</label>\n                                        </td>\n                                        <td style=\"width: 20%\">\n                                            <label class=\"ml-1\">{{nuevaNotaHoja.fechaAdicionado | date : ('formatofecha' | translate)}}</label>\n                                        </td>\n                                        <td style=\"width: 60%\">\n                                            <input class=\"ml-1\" #idTexto=\"ngModel\" pInputText type=\"text\" \n                                                [(ngModel)]=\"nuevaNotaHoja.texto\" required [maxlength]=\"100\" />\n                                        </td>\n                                        <td style=\"width: 10%;\"  *ngIf=\"controlFuncionalidad.getControlFuncionalidad('inghov:crearnotas')\">\n                                            <div class=\"flex justify-content-end\">\n                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\" *ngIf=\"idTexto.valid\"\n                                                    class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                    (click)=\"crearNota()\"></button>\n                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevaNota()\"\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>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                                <ng-template pTemplate=\"body\" let-bean let-editing=\"editing\" let-ri=\"rowIndex\">\n                                    <tr [pEditableRow]=\"bean\">\n                                        <td style=\"width: 20%\">\n                                            <p-cellEditor>\n                                                <ng-template pTemplate=\"input\">\n                                                    <label class=\"ml-1\">{{bean.nombrecreo}}</label>\n                                                </ng-template>\n                                                <ng-template pTemplate=\"output\">\n                                                    <label class=\"ml-1\">{{bean.nombrecreo}}</label>\n                                                </ng-template>\n                                            </p-cellEditor>\n                                        </td>\n                                        <td style=\"width: 20%\">\n                                            <p-cellEditor>\n                                                <ng-template pTemplate=\"input\">\n                                                    <label class=\"ml-1\">{{bean.fechaAdicionado | date : ('formatofecha' | translate)}}</label>\n                                                </ng-template>\n                                                <ng-template pTemplate=\"output\">\n                                                    <label class=\"ml-1\">{{bean.fechaAdicionado | date : ('formatofecha' | translate)}}</label>\n                                                </ng-template>\n                                            </p-cellEditor>\n                                        </td>\n                                        <td style=\"width: 60%\">\n                                            <p-cellEditor>\n                                                <ng-template pTemplate=\"input\">\n                                                    <input class=\"ml-1\" pInputText type=\"text\" [(ngModel)]=\"bean.texto\">\n                                                </ng-template>\n                                                <ng-template pTemplate=\"output\">\n                                                    <label class=\"ml-1\">{{bean.texto}}</label>\n                                                </ng-template>\n                                            </p-cellEditor>\n                                        </td>\n                                        <td style=\"width: 10%;\">\n                                            <div class=\"flex justify-content-end\">\n                                                <button *ngIf=\"editing && false\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                                                    (click)=\"actualizarNota(bean)\"\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>\n                                                <button *ngIf=\"editing && false\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\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>\n                                                <button *ngIf=\"!editing && false\" pButton pRipple type=\"button\" pInitEditableRow\n                                                    icon=\"glyphicons glyphicons-pencil\"\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>\n                                                <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                    (click)=\"eliminarNota($event, bean)\"\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>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                            </p-table>\n                        </div>\n                    </ng-template>\n                </p-accordionTab>\n            </p-accordion>\n            <br/>\n            <p-tabView *ngIf=\"objeto && esSeccionHoja && verDetalle && seccion.acreditaInfo == 'S'\">\n                <p-tabPanel header=\"{{seccion.descripcion}}\" *ngIf=\"objeto && esSeccionHoja && verDetalle\">\n                    <div class=\"card mt-2 mb-2\">\n                        <formulario-dinamico #formularioDinamico [editable]=\"true\" [campos]=\"campos\" ></formulario-dinamico>\n\n                        <p-table [value]=\"[1]\" *ngIf=\"seccion.anexo === 'U'\">\n                            <ng-template pTemplate=\"body\" let-campo>\n                                <tr>\n                                    <td style=\"width: 20%;\">\n                                        <label>{{'nombre' | translate}}</label>\n                                    </td>\n                                    <td style=\"width: 80%\">\n                                        <div class=\"col-12 md:col-12 lg:col-12\">\n\n                                            <div class=\"p-fluid p-formgrid grid\">\n                                                <div class=\"col-12 md:col-4\">\n                                                    <input pInputText #inputText [(ngModel)]=\"unicoAdjunto.descripcion\" /> \n                                                </div>\n                                                <div class=\"col-12 md:col-8\" id=\"btn-cargar-popup\" >\n                                                    <div [class]=\"'p-inputgroup' \">\n                                                        <span class=\"p-float-label\">\n                                                            <input pInputText #inputText [readonly]=\"true\" [value]=\"unicoAdjunto.archivoorigen ? unicoAdjunto.archivoorigen : ''\"   />\n                                                            <label htmlFor=\"detalle\">{{'adjunto' | translate}}</label>\n                                                            <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n                                                                (onSelect)=\"setAdjuntoUnico($event, fubauto)\"  [invalidFileTypeMessageSummary]=\"'Formato del archivo {0} no válido, únicamente se acepta '+seccion.extensionArchivo\" [invalidFileTypeMessageDetail]=\"''\" ></p-fileUpload>\n                                                            <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\" *ngIf=\"!insertando && unicoAdjunto.archivoorigen && unicoAdjunto.rutaFisica\"\n                                                                (click)=\"descargarAnexo(unicoAdjunto)\" type=\"file\"></button>\n                                                        </span>\n                                                    </div>\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </td>\n                                </tr>\n                            </ng-template>\n                        </p-table>\n                    </div>\n                    <div class=\"flex justify-content-end\">\n                        \n                        <button pButton pRipple class=\"m-2 mt-4 p-button-outlined background-100\" \n                            *ngIf=\"validarFuncionalidad('inghov:guarres') && hojaVida.login\"\n                            icon=\"glyphicons glyphicons-refresh\" label=\"Actualizar Respuestas\"\n                            (click)=\"actualizarPreguntasRespuestasHoja()\"></button>\n                        <button pButton pRipple class=\"m-2 mt-4 p-button-raised\"\n                            *ngIf=\"objeto.aprobada != 'B' && validarFuncionalidad('inghov:guardar') && objeto.modificaPuntaje != 'S' && !( datosBasicos && nuevaHoja) \"\n                            icon=\"glyphicons {{!nuevaHoja ? 'glyphicons-refresh' : 'glyphicons-floppy-save'}}\" \n                            label=\"{{!nuevaHoja ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\n                            (click)=\"guardar()\"></button>\n                        <button pButton pRipple class=\"m-2 mt-4 p-button-raised\"\n                            *ngIf=\"objeto.aprobada != 'B' && validarFuncionalidad('inghov:acta') && objeto.modificaPuntaje == 'S'\"\n                            icon=\"glyphicons glyphicons-floppy-save\"\n                            label=\"{{'link_guardar' | translate}} {{'acta' | translate}}\" (click)=\"guardar()\"></button>\n                        <button pButton pRipple class=\"m-2 mt-4 p-button-outlined\"\n                            *ngIf=\"!insertando && datosBasicos && validarFuncionalidad('inghov:eliminar')\"\n                            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n                            (click)=\"eliminarHojaVida()\"></button>\n                        <button pButton pRipple class=\"m-2 mt-4 p-button-outlined\"\n                            *ngIf=\"!insertando && listado.length > 0 && objeto.aprobada != 'B' &&  validarFuncionalidad('inghov:guardar') && objeto.modificaPuntaje != 'S'\"\n                            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n                            (click)=\"eliminar()\"></button>\n                        <button pButton pRipple class=\"m-2 mt-4 p-button-raised\"\n                            *ngIf=\"objeto.aprobada == 'B' &&  validarFuncionalidad('inghov:deshacer') && esSeccionHoja\"\n                            icon=\"glyphicons glyphicons-bin\" label=\"Deshacer Eliminacion\"\n                            (click)=\"deshacerEliminacion()\"></button>\n                    </div>\n                </p-tabPanel>\n                <p-tabPanel header=\"Historico de Novedades\" *ngIf=\"novedades.length > 0 && esSeccionHoja\">\n                    <p-table #tablaNovedades responsiveLayout=\"scroll\" [value]=\"novedades\" [rows]=\"10\" [totalRecords]=\"novedades.length\"\n                        [paginator]=\"novedades.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                        [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"  styleClass=\"p-datatable-striped\"\n                        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                        <ng-template pTemplate=\"header\">\n                            <tr class=\"fondoTablaPincipal\">\n                                <th>{{'tipo' | translate}}</th>\n                                <th>{{'campo' | translate}}</th>\n                                <th>{{'anterior' | translate}}</th>\n                                <th>{{'link_nuevo' | translate}}</th>\n                                <th>{{'estado' | translate}}</th>\n                                <th>{{'observacion' | translate}}</th>\n                                <th>{{'activar' | translate}}</th>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-bean>\n                            <tr>\n                                <td>{{bean.nombreTipo}}</td>\n                                <td>{{bean.descripcionCampo}}</td>\n                                <td class=\"ui-g-nowrap\">{{bean.anterior}}</td>\n                                <td class=\"ui-g-nowrap\">{{bean.nuevo}}</td>\n                                <td>{{bean.nombreRechazada}}</td>\n                                <td>{{bean.observaciones}}</td>\n                                <td>\n                                    <button pButton pRipple class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\" \n                                        icon=\"glyphicons glyphicons-check\" (click)=\"activarNovedad($event, bean)\" *ngIf=\"bean.estado == 'R'\"></button>\n                                </td>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    </p-table>\n                </p-tabPanel>\n                <p-tabPanel header=\"{{seccion.mensajeAutor}}\" *ngIf=\"coautor && esSeccionHoja\">\n                    <app-coautor #coautorComponent [llave]=\"objeto.llave\" [estadoCoautor]=\"estadoCoautor\"></app-coautor>\n                </p-tabPanel>\n                <p-tabPanel header=\"{{'adjuntararchivo' | translate}}\"\n                    *ngIf=\"!nuevaHoja && anexo && esSeccionHoja && verDetalle\">\n                        <div class=\"flex justify-content-end align-items-center mt-2 mb-3\" >\n                            <button pButton pRipple class=\"p-button-secondary font-semibold flex-shrink-0 ml-4\" icon=\"pi pi-plus\"\n                                label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevoAnexo()\"></button>\n                        </div>\n            \n                        <p-table #tablaGeneralDoc [value]=\"listaAnexos\" responsiveLayout=\"scroll\" [rows]=\"10\" *ngIf=\"listaAnexos.length > 0\"\n                            [paginator]=\"listaAnexos.length > 10\" [totalRecords]=\"listaAnexos.length\"\n                            selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n                            [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\">\n                            <ng-template pTemplate=\"header\">\n                                <tr class=\"fondoTablaPincipal\">\n                                    <th>{{'descripcion' | translate}}</th>\n                                    <th>{{'nombre' | translate}}</th>\n                                    <th class=\"w-6rem\" style=\"text-align: center\">{{'ver' | translate}}</th>\n                                    <th class=\"w-1rem\">{{'info' | translate}}</th>\n                                </tr>\n                                <th>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-documento>\n                                <tr [pSelectableRow]=\"documento\">\n                                    <td>{{documento.descripcion}}</td>\n                                    <td>{{documento.archivoorigen}}</td>\n                                    <td class=\"flex justify-content-end w-6rem\">\n                                        <button pButton pRipple\n                                            class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                            icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(documento)\" type=\"file\"></button>\n                                        <button pButton pRipple\n                                            class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                            icon=\"pi pi-trash\" (click)=\"eliminarAnexo($event, documento)\" ></button>\n                                    </td>\n                                    <td class=\"w-1rem\">\n                                        <span class=\"w-1rem\" style=\"color: var(--color-400)\" \n                                            pTooltip=\"{{(documento.adicionado ? 'Adicionado: ' + documento.adicionado : '') + '\\n' + (documento.fechaAdicionado ? (documento.fechaAdicionado | date : 'yyyy-MM-dd HH:mm:ss.S') : '')}}\" tooltipPosition=\"top\">\n                                            <i class=\"glyphicons glyphicons-nearby-square\"></i>\n                                        </span>\n                                    </td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>\n\n                        <div class=\"centrar-contenedor-imagen-sin-datos mt-3\" *ngIf=\"listaAnexos.length <= 0\">\n                            <img src=\"/assets/images/no-info.webp\" alt=\"No se encontraron datos\" height=\"30%\" width=\"30%\">\n                        </div>\n\n                </p-tabPanel>\n            </p-tabView>\n        </div>\n\n        </div>\n\n        <div class=\"UploadFoto-btn\" [ngStyle]=\"{\n            'position': isAutoServicio() ? 'relative' : 'fixed',\n            'height': isAutoServicio() ? 'auto' : '100vh',\n            'margin-left': isAutoServicio() ? '180px' : '60px'\n          }\">\n            <div style=\"display: flex; justify-content: center; align-items: center; \">\n                <div class=\"avatar-container\">\n                    <img  [src]=\"urlFoto\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"urlFoto\">\n                    <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"!urlFoto\">\n                </div>\n            </div>\n            <p-fileUpload #fubauto1 mode=\"basic\" class=\"upload-button\"  *ngIf=\"!isSmallScreen\" [class.borderradio50] = \"true\" [invalidFileTypeMessageSummary]=\"'Formato del archivo {0} no válido, únicamente se acepta image/jpeg'\" [invalidFileTypeMessageDetail]=\"''\"\n                [customUpload]=\"true\" accept=\"image/jpeg\" (onSelect)=\"cargarDocumento($event, fubauto1)\" chooseIcon=\"pi pi-image\" ></p-fileUpload>\n            \n            <p-fileUpload #fubauto2 chooseLabel=\"{{'cambiar' | translate}} {{'foto' | translate}}\" mode=\"basic\" *ngIf=\"isSmallScreen\" chooseIcon=\"pi pi-image\"\n                [customUpload]=\"true\" accept=\"image/jpeg\" (onSelect)=\"cargarDocumento($event, fubauto2)\"></p-fileUpload>\n            <div class=\"datos\">\n\n                <label class=\"font-medium text-gray-500 text-center text-xs mbottom\" style=\"display:table; margin:0 auto\">{{'ultima' | translate}} {{'actualizacion' | translate}}:\n                    {{hojaVida.fechaModificado | date: ('formatofechahora' | translate)}}</label>\n\n\n                <div class=\"text-center\" >\n                    <h1 class=\"mt-2 text-xl mb-2 pl-2 pr-2\" style=\"color: #7a7a7a\">{{hojaVida.nombres}} {{hojaVida.primerapellid}} {{hojaVida.segundoapelli}}\n                    </h1>\n                    <h1 class=\"text-xl mt-0 text-xl\" style=\"color: var(--color-700)\">{{hojaVida.documento}}</h1>\n                </div>\n                <div class=\"card text-center\" >\n                    <h5 style=\"color: var(--color-400)\">{{'avance' | translate}}</h5>\n                    @if(avance > 0) {\n                        <p-progressBar [value]=\"avance\" ></p-progressBar>\n                    } @else {\n                        <p-progressBar [value]=\"avance\" [showValue]=\"false\"></p-progressBar>\n                        <div class=\"custom-progress-bar-label\">{{ avance }}%</div>\n                    }\n                </div>\n                <div class=\"menu-accordeon\" style=\" overflow-y: auto; height: 200px\">\n                    <!--Timeline secciones para nueva hoja de vida-->\n                    <p-timeline [value]=\"itemsNuevaHoja\" class=\"w-full md:w-20rem\" *ngIf=\"nuevaHoja\" >\n                        <ng-template pTemplate=\"marker\" let-event>\n                            <span class=\"align-items-center border-circle contenedor\" \n                                [style.backgroundColor]=\"seccion.llave == event.id ? 'var(--color-500)' : 'var(--color-50)'\"\n                                (click)=\"event.items ? cargarSeccion(event.id, event.queryParams['acreditaInfo']) : null\">\n                                <label  [style.fontWeight]=\"event.items ? '700' : ''\" [style.color]=\"seccion.llave == event.id ? 'var(--color-50)' : 'var(--color-500)'\"\n                                   >{{buscarPosicionItem(event.id)}}</label>\n                            </span>\n                        </ng-template>\n                        <ng-template pTemplate=\"content\" let-item>\n                            <div class=\"align-items-center mt-1\" >\n                                <label [style.fontWeight]=\"item.items ? '700' : ''\">{{item.label}}</label>\n                            </div>\n                        </ng-template>\n                    </p-timeline>\n                    <!--Accordion secciones para hoja existente-->\n                    <p-accordion [activeIndex]=\"[0]\" *ngIf=\"!nuevaHoja\" [multiple]=\"false\">\n                        <p-accordionTab *ngFor=\"let item of items\" style=\"padding: unset\" >\n                            <ng-template pTemplate=\"header\">\n                               <i class=\"glyphicons glyphicons-menu-hamburger\"></i> {{item.label}}\n                            </ng-template>\n                            <p-table [value]=\"item.items\">\n                                <ng-template pTemplate=\"body\" let-sec>\n                                    <tr>\n                                        <td style=\"width: 100%;\">\n                                            <div [ngClass]=\"seccion.llave == sec.id ? 'hijo-seleccionado' : 'hijo-noseleccionado'\" (click)=\"cargarSeccion(sec.id, sec.queryParams['acreditaInfo'])\">\n                                                <label class=\"text-yellow-400 mr-2 border-1 border-circle border-yellow-500 text-center mb-3\" *ngIf=\"sec.queryParams['fuenteOrigen'] == 'noaplica'\" [style.fontWeight]=\"300\" style=\"padding:0px 5px; float:left;\">...</label>\n                                                <i class=\"pi pi menu-align-left\"></i>\n                                                <i *ngIf=\"sec.queryParams['fuenteOrigen'] == 'nohaydatos'\" [style.color]=\"'var(--color-500)'\" class=\"glyphicons glyphicons-star-empty\"></i>    \n                                                <label class=\"mt-1\">{{sec.label}}</label>\n                                                    \n                                                    \n                                            </div>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                            </p-table>\n                            \n                        </p-accordionTab>\n                    </p-accordion>\n                    \n                    \n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n<div *ngIf=\"mostrarPopupCambiarTipoHoja\">\n    <app-cambiar-tipo-hoja [mostrar]=\"mostrarPopupCambiarTipoHoja\" [hojaVidaInsert]=\"hojaVida\" (regresar)=\"regresarCambiarTipoHoja()\" ></app-cambiar-tipo-hoja>\n</div>\n<div *ngIf=\"nuevoAnexo\">\n    <app-input-helper-cargar-archivo-hoja-vida [isMostrarPopup]=\"nuevoAnexo\" [objetoSeccion]=\"seccion\" [aspirante]=\"isAspirante()\"\n        [hojaVidaModel]=\"objeto\" (regresar)=\"regresarPopupArchivo()\"></app-input-helper-cargar-archivo-hoja-vida>\n</div>\n<div *ngIf=\"mostrarPopupImpresion\">\n    <app-popup-hojavida-impresion [mostrar]=\"mostrarPopupImpresion\" [hojaVida]=\"hojaVida\" (regresar)=\"regresarImpresion()\" ></app-popup-hojavida-impresion>\n</div>\n<div *ngIf=\"mostrarPopupCambiarCedula\">\n    <app-popup-cambiar-cedula [mostrar]=\"mostrarPopupCambiarCedula\" [hojaVida]=\"hojaVida\" (regresar)=\"regresarCambioCedula($event)\"></app-popup-cambiar-cedula>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { DataExporter } from 'general-library-union';\nimport { GeneralModel } from 'general-library-union';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { SeguimientoCompensacionModel } from '../../../modules/compensacion/models/SeguimientoCompensacionModel';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Ripple, RippleModule } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-seguimiento',\n    templateUrl: './popup-seguimiento.component.html',\n    styleUrls: ['./popup-seguimiento.component.scss'],\n    providers: [DataExporter],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, ButtonDirective, Ripple, TooltipModule, TranslateModule, ButtonModule, RippleModule]\n})\nexport class PopupSeguimientoComponent implements OnInit {\n\n  @ViewChild('tablaGeneral') tabla: Table;\n  public listaSeguimiento: SeguimientoCompensacionModel[] = [];\n  @Input() public llave: string;\n  @Input() public mostrarPopup: boolean;\n  @Output()\n  regresar = new EventEmitter();\n  nombreArchivo = 'tabla';\n  columnas = [\"tipo\", \"linea\", \"resultado\", \"transforma\"];\n\n  paginator={rows:15, totalRecords:0}\n\n  constructor(private generalService: GeneralService, private translateService: TranslateService, public dataExporter: DataExporter,) { }\n\n  ngOnInit(): void {\n  }\n\n  mostrar(llave?) {\n    console.log(llave)\n    this.listaSeguimiento = [];\n    this.paginator.totalRecords = 0;\n    if(llave != null){\n      this.llave = llave;\n    }\n    console.log(this.llave)\n    if (!this.llave) {\n      return;\n    }\n    this.mostrarPopup = true;\n    this.generalService.queryForList(new GeneralModel('SeguimientoCompensacionDTO', null, false, { proceso: this.llave })).subscribe(data => {\n      this.listaSeguimiento = data;\n      this.paginator.totalRecords = this.listaSeguimiento.length\n    })\n  }\n\n  ocultar() {\n    this.regresar.emit();\n    this.mostrarPopup = false;\n  }\n}\n","<p-dialog id=\"popupSeguimiento\" header=\"{{ 'seguimiento' | translate }}\" [(visible)]=\"mostrarPopup\" autoZIndex=\"true\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '50vw' }\" (onShow)=\"mostrar()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    @if(listaSeguimiento.length > 0){\n    <div class=\"flex justify-content-end mb-2\" style=\"margin-right:10px\">\n        <button pButton pRipple icon=\"glyphicons glyphicons-print\"\n            (click)=\"dataExporter.exportExcelColumnas(tabla.filteredValue == null ? tabla.value : tabla.filteredValue, nombreArchivo, columnas)\"\n            class=\"p-button p-button-secondary\" style=\"margin-right: -8px;\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"\n            label=\"{{'imprimir' | translate}}\"></button>\n    </div>\n    }\n\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" scrollDirection=\"horizontal\" [value]=\"listaSeguimiento\"\n        [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" styleClass=\"p-datatable-striped\"\n        [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>\n        <ng-template pTemplate=\"header\">\n            <tr class=\"fondoTablaPincipal\">\n                <th class=\"w-20rem\">{{'linea' | translate}}</th>\n                <th class=\"w-23rem\">{{'resultado' | translate}}</th>\n                <th class=\"w-23rem\">{{'resultado' | translate}} {{'funcion' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-resultado>\n            <tr>\n                <td class=\"w-20rem\">{{resultado.linea}}</td>\n                <td class=\"w-23rem\">{{resultado.resultado}}</td>\n                <td class=\"w-23rem\">{{resultado.transforma}}</td>\n            </tr>\n        </ng-template>\n\n    </p-table>\n</p-dialog>","import { Component, OnInit, Input } from '@angular/core';\nimport { CargarArchivosService } from '../../servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../servicios/encriptado-basico.service';\nimport { EmpleadoModel } from '../../../modules/compensacion/models/EmpleadoModel';\nimport { AuthService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-cabecera-empleado',\n    templateUrl: './cabecera-empleado.component.html',\n    styleUrls: ['./cabecera-empleado.component.scss'],\n    standalone: true,\n    imports: [NgIf, DatePipe, TranslateModule]\n})\nexport class CabeceraEmpleadoComponent implements OnInit {\n\n  @Input() public empleado: EmpleadoModel;\n  @Input() public conContrato: boolean = true;\n  @Input() public adicional: boolean = false;\n  public urlFoto: string;\n  public mostrarDatosEncargo: boolean;\n\n  constructor(private encriptadoBasico: EncriptadoBasicoService,\n              private authService: AuthService,\n              private cargarArchivo: CargarArchivosService) { }\n\n  ngOnInit(): void {    \n    if (this.empleado !== undefined && this.empleado !== null){ \n      this.mostrarDatosEncargo = false;\n      this.cargarImagenFoto();\n      if (this.empleado.unidadFuncion != null && this.empleado.cargoFuncion != null && this.empleado.turnoFuncion != null){\n        if (this.empleado.unidadFuncion.trim() != '.' && this.empleado.cargoFuncion.trim() != '.' && this.empleado.turnoFuncion != 0){\n          this.mostrarDatosEncargo = true;\n        }\n      }\n    }\n  }\n\n  cargarImagenFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n      this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.empleado.nombreFoto + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n        this.blobToBase64(blob)        \n      });\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  getNombreCompleto() {\n\t\t\tif (this.empleado.segundoApellido != null || this.empleado.segundoApellido != undefined) {\n\t\t\t\tif (this.empleado.primerApellido != null || this.empleado.primerApellido != undefined) {\n\t\t\t\t\tif (this.empleado.nombres != null || this.empleado.nombres != undefined) {\n\t\t\t\t\t\tthis.empleado.nombreCompleto = this.empleado.primerApellido + ' ' + this.empleado.segundoApellido + ' ' + this.empleado.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.empleado.nombreCompleto = this.empleado.primerApellido + ' ' + this.empleado.segundoApellido + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.empleado.nombreCompleto = ' ' + this.empleado.segundoApellido + ' ' + this.empleado.nombres;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.empleado.primerApellido != null || this.empleado.primerApellido != undefined) {\n\t\t\t\t\tif (this.empleado.nombres != null || this.empleado.nombres != undefined) {\n\t\t\t\t\t\tthis.empleado.nombreCompleto = this.empleado.primerApellido + ' ' + this.empleado.nombres;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.empleado.nombreCompleto = this.empleado.primerApellido + ' ';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.empleado.nombreCompleto = ' ';\n\t\t\t\t}\n\t\t\t}\n    return this.empleado.nombreCompleto\n\t}\n\t\n\n}\n","<div class=\"\">\n  <div [class]=\"adicional ? 'col-12 md:col-6 lg:col-6' : 'col-12 md:col-12 lg:col-12'\">\n    <div [class]=\"conContrato ? 'empleado' : 'empleado hv-sin-contrato'\" style=\"justify-content: center; align-items: center\">\n\n        <div class=\"flex\" >\n\n          <div style=\"display: flex; justify-content: center; align-items: center; \">\n              <div class=\"avatar-container\">\n                  <img  [src]=\"urlFoto\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"urlFoto\">\n                  <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"!urlFoto\">\n              </div>\n          </div>\n            <div class=\"field\">\n                <div>\n                    <div >\n                        <div class=\"col-md-12 ml-3\">\n                            <div class=\"p-fluid p-formgrid grid col-12\" *ngIf=\"conContrato\">\n                              <h1 class=\"w-full mb-3\">{{empleado.documento}} : {{getNombreCompleto()}}</h1>\n\n                              <!--CONTRATO-->\n                                <div class=\"col-6 md:col-4 lg:col-4\">\n                                    <p><span class=\"font-medium\">{{('contrato') | translate}}: </span><br> <span>{{empleado.contrato}}</span></p>\n                                </div>\n\n                                <!--FECHA INGRESO-->\n                                <div class=\"col-6 md:col-4 lg:col-4\">\n                                    <p><span class=\"font-medium\">{{('fechaingreso') | translate}}: </span><br> <span> {{empleado.fechaIngreso | date : ('formatofecha' | translate)}}</span></p>\n                                </div>\n\n                                <!--FECHA ANTIGUEDAD-->\n                                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"empleado.fechaEngache\">\n                                    <p> <span class=\"font-medium\">{{('fechaantiguedad') | translate}}:</span> <br><span *ngIf=\"empleado.fechaEngache\">{{empleado.fechaEngache | date : ('formatofecha' | translate)}}</span></p>\n                                </div>\n\n\n                                <!--CARGO-->\n                                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"!mostrarDatosEncargo\">\n                                    <p> <span class=\"font-medium\">{{('cargo') | translate}}:</span> <br> <span> <p>{{empleado.cargo}} : {{empleado.cargoNombreTitular}}</p></span></p>\n                                </div>\n\n\n                                <!--CARGO FUNCION-->\n                                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"mostrarDatosEncargo\">\n                                    <p>\n                                      <span class=\"font-weight\">\n                                        {{('cargofuncion') | translate}}:\n                                      </span> <br>\n                                      <span *ngIf=\"mostrarDatosEncargo\">\n                                        {{empleado.cargoFuncion}} : {{empleado.cargoNombreEncargo}}\n                                      </span>\n                                    </p>\n                                </div>\n\n\n                                <!--UNIDAD-->\n                                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"!mostrarDatosEncargo\">\n                                    <p>\n                                      <span class=\"font-medium\">{{('unidadorganizacional') | translate}}:</span><br>\n                                      <span *ngIf=\"!mostrarDatosEncargo\">{{empleado.unidad}} : {{empleado.unidadNombreTitular}}</span>\n                                    </p>\n                                </div>\n\n\n                                <!--UNIDAD FUNCION-->\n                                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"mostrarDatosEncargo\">\n                                    <p>\n                                      <span class=\"font-medium\"> {{('unidadfuncion') | translate}}:</span>\n                                      <span *ngIf=\"mostrarDatosEncargo\"> {{empleado.unidadFuncion}} : {{empleado.unidadNombreEncargo}}</span>\n                                    </p>\n                                </div>\n\n\n                                <!--ESTADO-->\n                                  <div class=\"col-4\">\n                                    <p class=\"chip\">{{empleado.estadoLaboralNombre}}</p>\n                                  </div>\n\n                            </div>\n                            <div class=\"p-fluid p-formgrid grid col-12\" *ngIf=\"!conContrato\">\n                              <h1 class=\"w-full mb-3\">{{getNombreCompleto()}}</h1>\n\n                              <!--CEDULA-->\n                                <div class=\"col-6 md:col-4 lg:col-4\">\n                                    <p><span class=\"font-medium\">{{('identifica') | translate}}: </span> <span>{{empleado.documento}}</span></p>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n  </div>\n  @if (adicional) {\n    <div class=\"col-12 md:col-6 lg:col-6\">\n      <!--CABECERA EMPLEADO ADICIONAL cabeceraEmpleadoAdicional-->\n        <div class=\"empleado\" style=\"justify-content: center; align-items: center\">\n\n          <div class=\"flex\" >\n\n              <div class=\"field\">\n                  <div>\n                      <div >\n                          <div class=\"col-md-12 ml-3\">\n                              <div class=\"p-fluid p-formgrid grid col-12\"  >\n\n                                @if (empleado.vinculacion) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p><span class=\"font-medium\">{{('vinculacion') | translate}}: </span><br> <span>{{empleado.vinculacion}} : {{empleado.vinculacionNombre}}</span></p>\n                                  </div>\n                                }\n\n                                @if (empleado.fechaTermina) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p><span class=\"font-medium\">{{('fechaterminacion') | translate}}: </span><br> <span> {{empleado.fechaTermina | date : ('formatofecha' | translate)}}</span></p>\n                                  </div>\n                                }\n\n                                @if (empleado.numeroProrroga) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p> <span class=\"font-medium\">{{('numeroprorroga') | translate}}:</span> <br> <span> <p>{{empleado.numeroProrroga}}</p></span></p>\n                                  </div>\n                                }\n\n                                @if (empleado.turnoFuncion) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p>\n                                        <span class=\"font-medium\">{{('turnofuncion') | translate}}:</span><br>\n                                        <span>{{empleado.turnoFuncion}} : {{empleado.turnoFuncionNombre}}</span>\n                                      </p>\n                                  </div>\n                                }\n\n                                @if (empleado.tipoPeriodo) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p><span class=\"font-medium\">{{('tipoperiodo') | translate}}: </span><br> <span>{{empleado.tipoPeriodo}} : {{empleado.tipoPeriodoNombre}}</span></p>\n                                  </div>\n                                }\n\n                                @if (empleado.fechaEngache) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p><span class=\"font-medium\">{{('fechaantiguedad') | translate}}: </span><br> <span> {{empleado.fechaEngache | date : ('formatofecha' | translate)}}</span></p>\n                                  </div>\n                                }\n\n                                @if (empleado.clasificacion) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p><span class=\"font-medium\">{{('clasificacion') | translate}}: </span><br> <span>{{empleado.clasificacion}} : {{empleado.nombreClasificacion}}</span></p>\n                                  </div>\n                                }\n\n                                @if (empleado.clasificacionFuncion) {\n                                  <div class=\"col-6 md:col-4 lg:col-4\">\n                                      <p><span class=\"font-medium\">{{('rolfuncion') | translate}}: </span><br> <span>{{empleado.clasificacionFuncion}} : {{empleado.nombreClasificacionFuncion}}</span></p>\n                                  </div>\n                                }\n                              </div>\n                          </div>\n                      </div>\n                  </div>\n              </div>\n          </div>\n      </div>\n  </div>\n}","import { UnionModel } from \"general-library-union\";\n\n\nexport class AusenciaNovedadModel extends UnionModel {\n\n\tempresa: number;\n\tnombreEmpresa: string;\n\tcontrato: number;\n    cedulaEmpleado: number;\n\tcodigoAlternoEmpleado: string;\n\ttipoRegistro: string;\n\ttipoAusencia: string;\n\ttipoAusenciaCopia: string;\n\tnombreTipoAusencia: string;\n\tnombreClienteTipoAusencia: string;\n\tcodigoTipoAusencia: number;\n\tinterrupcion: string;\n\tiniPeriodo: Date;\n\tfinPeriodo: Date;\n\tdiasPendiente: number;\n\tdiasDisponible: number;\n\tdepende: string;\n\t/** Empleado para ausencias de tipo vacaciones e incapacidades : \n\t * <br> (Incapacidad) llave del registro de ausencia de la incapacidad legalizada */\n\tprogramado: string;\n\tsalida: Date;\n\tsalidaNomina: Date;\n\ttermina: Date;\n\tregreso: Date;\n\tregresoNomina: Date;\n\tdiasDisfrute: number;\n\tdiasCompesa: number;\n\tobservacion: string;\n\tmensaje: string;\n\tsolicitados: number;\n\tsolicita: number;\n\testado: string;\n\torigen: string;\n\tfechaOrigen: Date;\n\thorasDisfrute: number;\n\tdiagnostico: string;\n\tprorroga: string;\n\tentidad: string;\n\tformaPago: string;\n\tfechaPago: Date;\n\tcomodinBuscarEstado: string;\n\tgrupo: number;\n    formato: number;\n    vinculacion: number;\n    origenVacacionTemporal: string;\n    horaSalida: Date;\n\thoraRegresa: Date;\n\trecupera: Date;\n\treinicio: Date;\n\tcadena1: string;\n\tcadena2: string;\n\tcadena3: string;\n\tvalor3: number;\n\tvalor4: number;\n\tactoAusencia: string;\n    accionDisfrute: string;\n\taccionCompensa: string;\n\tnombreCompleto: string;\n\ttipoRol: string;\n\tproceso: string;\n\taccionFormato: string;\n\tautoriza: number;\n\tloginAutoriza: string;\n\tloginSolicita: string;\n\tllaveActividad: string;\n\tnombreSolicita: string;\n\tanticipoNomina: Date;\n\taplicadoPor: string;\n\tunidad: string;\n\tnombreUnidad: string;\n\tfechaIngreso: Date;\n\tfechaAntiguedad: Date;\n\tdescripcionSolicitud: string;\n\ttipoUnidad: string;\n\tnombreCargo: string;\n\tcargo: string;\n\tcentroCosto: string;\n\tnombreCentroCosto: string;\n\tfecha1: Date;\n\tfecha2: Date;\n\thora1: Date;\n\thora2: Date;\n\tarea1: string;\n\testadoMensaje: number;\n\tsucursal: string;\n\tdocumento: string;\n\tsoporteTipoAusencia: string;\n\tsoporteAusencia: string;\n\tsoporteAusenciaOrigen: string;\n\tradicado: string;\n\tnumeroVeces: number;\n\tfechaALegalizar: Date;\n\tbloqueo: string;\n\tfechaBloqueo: Date;\n\tloginUsuario: string;\n\taliasRol: string;\n\tmensajeControl: string;\n\tmodificaObservacion: boolean;\n\t\n\tlimiteAviso:Date;\n\t//general\n\tautorizadorBPM: number;\n    nombreAutorizadorBPM: string;\n}\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { AusentismoPipe } from '../../../../../../shared/pipes/ausentismo.pipe';\nimport { GeneralModel, GeneralService, StorageService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { AusenciaNovedadModel } from '../../../../../compensacion/models/AusenciaNovedadModel';\nimport { EmpleadoModel } from '../../../../../compensacion/models/EmpleadoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-editar-pasivo-ausencia',\n    templateUrl: './editar-pasivo-ausencia.component.html',\n    styleUrls: ['./editar-pasivo-ausencia.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, ButtonDirective, Ripple, FormsModule, ReactiveFormsModule, DropdownModule, CalendarModule, InputTextModule, NgIf, TranslateModule]\n})\nexport class EditarPasivoAusenciaComponent implements OnInit {\n\n  @Input() public listaTipoAusentismo = [];\n  @Input() public isNew: boolean;\n  @Input() public ausenciaNovedad: AusenciaNovedadModel;\n  @Input() public puedeActualizar: boolean = false;\n  @Input() public empleadoDTO: EmpleadoModel;\n  @Output() regresar = new EventEmitter();\n\n\n  public mostrarEditar: boolean;\n  public formularioPasivo: FormGroup;\n  @Input() public origen: string;\n  public listaOrigen;\n\n  constructor(\n    private generalService: GeneralService,\n    private formBuilder: FormBuilder,\n    private ausentismoPipe: AusentismoPipe,\n    private notificacionesBusService: ToastService,\n    private confirmationService: ConfirmationService,\n    private utilService: UtilsService,\n    private storageService: StorageService\n  ) { }\n\n  ngOnInit(): void {\n    this.listaOrigen = this.ausentismoPipe.ORIGENPASIVO;\n    if (this.isNew) {\n      this.ausenciaNovedad = new AusenciaNovedadModel();\n      this.ausenciaNovedad.iniPeriodo = null;\n      this.ausenciaNovedad.finPeriodo = null;\n      this.ausenciaNovedad.fechaOrigen = null;\n      this.mostrarEditar = false;\n    } else {\n      this.consultarRegistro();\n    }\n    this.cargarFormulario();\n  }\n\n  async consultarRegistro() {\n    let respuesta = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, {\n      llaveTabla: this.ausenciaNovedad.llaveTabla ? this.ausenciaNovedad.llaveTabla : this.formularioPasivo.get('llaveTabla').value\n    })).toPromise();\n    if (respuesta) {\n      this.ausenciaNovedad = respuesta;\n      this.ausenciaNovedad.iniPeriodo = this.ausenciaNovedad.iniPeriodo ? new Date(this.ausenciaNovedad.iniPeriodo) : null;\n      this.ausenciaNovedad.finPeriodo = this.ausenciaNovedad.finPeriodo ? new Date(this.ausenciaNovedad.finPeriodo) : null;\n      this.ausenciaNovedad.fechaOrigen = this.ausenciaNovedad.fechaOrigen ? new Date(this.ausenciaNovedad.fechaOrigen) : null;\n      this.formularioPasivo.patchValue(this.ausenciaNovedad);\n      this.mostrarEditar = true;\n      this.isNew = false;\n      this.utilService.resizeWindowIFrame()\n    }\n  }\n\n  cargarFormulario() {\n    this.formularioPasivo = this.formBuilder.group({\n      llaveTabla: new FormControl(this.ausenciaNovedad.llaveTabla ? this.ausenciaNovedad.llaveTabla : this.utilService.generarLlave()),\n      contrato: new FormControl(this.ausenciaNovedad.contrato),\n      tipoRegistro: new FormControl(this.ausenciaNovedad.tipoRegistro),\n      origen: new FormControl(this.ausenciaNovedad.origen),\n      empresa: new FormControl(this.ausenciaNovedad.empresa),\n      tipoAusencia: new FormControl(this.ausenciaNovedad.tipoAusencia, [Validators.required]),\n      interrupcion: new FormControl(this.ausenciaNovedad.interrupcion, [Validators.required]),\n      iniPeriodo: new FormControl(this.ausenciaNovedad.iniPeriodo, [Validators.required]),\n      finPeriodo: new FormControl(this.ausenciaNovedad.finPeriodo, [Validators.required]),\n      diasPendiente: new FormControl(this.ausenciaNovedad.diasPendiente, [Validators.required]),\n      fechaOrigen: new FormControl(this.ausenciaNovedad.fechaOrigen)\n    });\n  }\n\n  /*Metodo actualizar registro */\n  actualizarRegistro() {\n    if (this.formularioPasivo.valid) {\n      let objetoActualiza: GeneralModel = new GeneralModel('AusenciaNovedadDTO', null, false, this.formularioPasivo.value);\n      let result: number;\n      this.generalService.update(objetoActualiza).subscribe((data) => {\n        result = data;\n        if (result == 1) {\n          this.notificacionesBusService.showSuccess('Se actualizó el registro exitosamente');\n          this.consultarRegistro();\n        } else {\n          this.notificacionesBusService.showError('Error en el método de actualizar recurso');\n        };\n      });\n    } else {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      Object.keys(this.formularioPasivo.controls).forEach((key) => {\n        if (this.formularioPasivo.get(key).errors) {\n          this.formularioPasivo.get(key).markAsDirty();\n        };\n      });\n    };\n  }\n\n  /*Metodo eliminar registro */\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarRegistro() {\n    let objetoElimina: GeneralModel = new GeneralModel('AusenciaNovedadDTO', null, false, this.formularioPasivo.value);\n    let result: number;\n    this.generalService.delete(objetoElimina).subscribe({\n      next: (data) => {\n        result = data;\n        if (result == 1) {\n          this.notificacionesBusService.showSuccess('Se eliminó el registro exitosamente');\n          this.regresarPrincipal();\n        } else {\n          this.notificacionesBusService.showError('Error en el método de eliminar recurso');\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesBusService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      },\n    });\n  }\n\n  /*Metodo crear registro */\n  crearRegistro() {\n    let result: number;\n    if (this.formularioPasivo.valid) {\n      let objetoFiltro = this.formularioPasivo.value;\n      objetoFiltro.empresa = this.storageService.getDecodedJWT().numeroEmpresa;\n      objetoFiltro.tipoRegistro = this.ausentismoPipe.PASIVO;\n      objetoFiltro.contrato = this.empleadoDTO.contrato;\n      objetoFiltro.origen = this.origen;\n      let objetoCrea: GeneralModel = new GeneralModel('AusenciaNovedadDTO', null, false, objetoFiltro);\n      this.generalService.crearRegistro(objetoCrea).subscribe({\n        next: (data) => {\n          result = data;\n          if (result != null) {\n            this.notificacionesBusService.showSuccess('Se creó el registro exitosamente');\n            this.consultarRegistro();\n          } else {\n            this.notificacionesBusService.showError('Error en el método de agregar recurso');\n          }\n        },\n      });\n    } else {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      Object.keys(this.formularioPasivo.controls).forEach((key) => {\n        if (this.formularioPasivo.get(key).errors) {\n          this.formularioPasivo.get(key).markAsDirty();\n        };\n      });\n    };\n  }\n\n  regresarPrincipal() {\n    this.regresar.emit();\n  }\n  \n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mb-1\">\n    <h4>{{'pasivo' | translate}}</h4>\n    <button pButton pRipple (click)=\"regresarPrincipal()\" label=\"{{'listadopasivo' | translate}}\"\n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 mb-3\"></button>\n</div>\n<div class=\"card contenedor p-4\">\n    <form [formGroup]=\"formularioPasivo\">\n        <div class=\"Inputgroup mt-3\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <!-- TIPO AUSENCIA -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_tipoausencia\" [options]=\"listaTipoAusentismo\" [autoDisplayFirst]=\"false\"\n                            optionLabel=\"label\" optionValue=\"key\" formControlName=\"tipoAusencia\">\n                        </p-dropdown>\n                        <label htmlFor=\"tipoausencia\">{{'tipoausencia' | translate}} * </label>\n                    </span>\n                </div>\n                <!-- ORIGEN -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_origen\" [options]=\"listaOrigen\" [autoDisplayFirst]=\"false\"\n                            optionLabel=\"nombre\" optionValue=\"codigo\" formControlName=\"interrupcion\">\n                        </p-dropdown>\n                        <label htmlFor=\"origen\">{{'origen' | translate}} * </label>\n                    </span>\n                </div>\n                <!-- PERIODO SERVICIO -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [showIcon]=\"true\" id=\"id_periodoservicio\" formControlName=\"iniPeriodo\"\n                            dateFormat=\"dd/mm/yy\"></p-calendar>\n                        <label htmlFor=\"periodoservicio\">{{'fechainicial' | translate}} *</label>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [showIcon]=\"true\" id=\"id_periodoservicio\" formControlName=\"finPeriodo\"\n                            dateFormat=\"dd/mm/yy\"></p-calendar>\n                        <label htmlFor=\"periodoservicio\">{{'fechafinal' | translate}} *</label>\n                    </span>\n                </div>\n                <!-- DIAS -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_diaspendientes\" type=\"text\" formControlName=\"diasPendiente\"\n                            maxlength=\"16\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 16);\">\n                        <label htmlFor=\"diaspendientes\">{{'dias' | translate}} * </label>\n                    </span>\n                </div>\n                <!-- FECHA ORIGEN -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [showIcon]=\"true\" id=\"id_fechaOrigen\" formControlName=\"fechaOrigen\"\n                            dateFormat=\"dd/mm/yy\"></p-calendar>\n                        <label htmlFor=\"fechaOrigen\">{{'fechaorigen' | translate}}</label>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </form>\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"mostrarEditar\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n            (click)=\"actualizarRegistro()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"mostrarEditar\" icon=\"glyphicons glyphicons-bin\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"showEliminarConfirmDialog()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"!mostrarEditar\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"crearRegistro()\">\n        </button>\n    </div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class ActividadFuenteTareaModel extends UnionModel {\n\n  tabla: string;\n  llaveTablaBase: string;\n  estado: string;\n  fuenteTarea: string;\n  valor: string;\n  responsable: number;\n  nombreResponsable: string;\n  inicio: Date;\n  fin: Date;\n  cedula: number;\n  contrato: number;\n  empresa: number;\n  observacion: string;\n  solicitante: string;\n  codigoFuenteTarea: string;\n  orden: number;\n  respuesta: string;\n  fuenteServicio: string;\n  correo: string;\n  origen: string;\n  descripcion: string;\n  descripcionTarea: string;\n  llaveFuente: string;\n  fechaLimite: Date;\n  proximoAviso: Date;\n  diasAvisoServicio: number;\n  origenPortal: string;\n  estadoInactivo: string;\n  tipoTarea: string;\n  autorizado: string;\n  motivo: string;\n  proceso: Date;\n  sortInicio: string;\n  adjuntosAnterior: string;\n  plantillaCorreo: string;\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * Pipe encargado de sanitizar html y permitir mostrar con escape = false\n */\n\n@Pipe({\n    name: 'safeHTML',\n    standalone: true\n})\nexport class SafeHTMLPipe implements PipeTransform {\n\n constructor(private sanitizer:DomSanitizer){}\n\n  transform(style) {\n    return this.sanitizer.bypassSecurityTrustHtml(style);\n  }\n\n}","import { HttpClient, HttpRequest, HttpEvent,HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n  })\n  export class ActividadFuenteTareaService {\n\n\n    listProcedure(objetoFiltro: GeneralModel) {\n      throw new Error('Method not implemented.');\n    }\n\n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n      this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n\n    cargarAtributos(general: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/cargarAtributos`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    consultarFiltrosActividad(objeto: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/consultarFiltrosActividad`, objeto).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    guardarRespuestaListado(objeto: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/guardarRespuestaListado`, objeto).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    verActividad(objeto: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/verActividad`, objeto).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    guardarRespuestaAutorizacion(objeto: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/guardarRespuestaAutorizacion`, objeto).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    establecerEvaluacionBPM(objeto: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/establecerEvaluacionBPM`, objeto).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    cambioRespuesta(objeto: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/cambioRespuesta`, objeto).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    guardarBPM(objeto: any): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/guardarBPM`, objeto).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    aplicarDocumentoContratacion(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/actividadFuenteTarea/aplicarDocumentoContratacion`, parametroGeneral).pipe(\n        catchError(this.handleError)\n      );\n    }\n  }\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { EncuestaHojaModel } from '../../models/EncuestaHojaModel';\nimport { RespuestaEncuestaModel } from '../../models/RespuestaEncuestaModel';\nimport { EncuestaWrapper } from '../../wrapper/EncuestaWrapper';\nimport { ActividadFuenteTareaService } from '../../services/actividadFuenteTarea.service';\nimport { ActividadFuenteTareaModel } from '../../../talento/models/ActividadFuenteTareaModel';\nimport { ColumnaWrapper } from '../../wrapper/ColumnaWrapper';\nimport { CeldaWrapper } from '../../wrapper/CeldaWrapper';\nimport { FilaEncuestaModel } from '../../models/FilaEncuestaModel';\nimport { AuthService, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { SafeHTMLPipe } from '../../../../shared/pipes/safe-html.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgFor, NgIf, NgClass } from '@angular/common';\n\n@Component({\n    selector: 'app-ejecucion-encuesta',\n    templateUrl: './ejecucion-encuesta.component.html',\n    styleUrls: ['./ejecucion-encuesta.component.scss'],\n    standalone: true,\n    imports: [NgFor, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, NgClass, FormsModule, InputTextModule, InputTextareaModule, CalendarModule, InputNumberModule, DropdownModule, RadioButtonModule, CheckboxModule, FileUploadModule, ButtonDirective, Ripple, TooltipModule, TranslateModule, SafeHTMLPipe]\n})\nexport class EjecucionEncuestaComponent implements OnInit {\n\n\tpublic evaluacionHoja: EncuestaHojaModel;\n\tpublic respuestaBPM: RespuestaEncuestaModel;\n\tpublic listaPreguntas: EncuestaWrapper[];\n\tpublic objeto: any;\n\n\tpublic documentosPendientes: string[];\n\n\tpublic paginadorPreguntas: any[] = [];\n\tpublic mensajeEntrada: string;\n\tpublic mensajeSalida: string;\n\tpublic nombreOrigenEval: string;\n\tpublic llaveActividad: string;\n\n  public contratacion: boolean;\n\tpublic permiteParcial: boolean;\n\tpublic mostrarPrograma: boolean;\n\tpublic mostrarEvento: boolean;\n\tpublic bpm: boolean;\n\tpublic bpmActividad: boolean;\n\tpublic listaAnexo: RespuestaEncuestaModel[];\n\n\tpublic preguntaLanzaPopup: EncuestaWrapper;\n\n\tpublic soloVer = false;\n\tpublic validando = false;\n\tpublic actividadFuenteTareaDTO: ActividadFuenteTareaModel;\n\tpublic archivoSeleccionado: File;\n\t@Output() public regresar = new EventEmitter;\n\n\tconstructor(private actividadFuenteTareaService: ActividadFuenteTareaService,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tprivate authService: AuthService,\n\t\t\t\tprivate generalPipe: GeneralPipe,\n\t\t\t\tpublic utilsService: UtilsService,\n\t\t\t\tprivate cargarArchivo: CargarArchivosService,\n\t\t\t\tprivate encriptadoBasico: EncriptadoBasicoService,\n\t) { }\n\n\tngOnInit(): void {\n\t}\n\n\tobtenerDescripcion(descripcion: string, obligatorio: boolean): string{\n\t\treturn `${descripcion} ${obligatorio ? '*' : ''}`\n\t}\n\n\tcelda(fil: FilaEncuestaModel, col: ColumnaWrapper, celdas: Map<string, CeldaWrapper> ): CeldaWrapper {\n\t\tif (!celdas) {\n\t\t\treturn null;\n\t\t}\n\t\tvar llave = \"\";\n\t\tif (fil != null && col != null) {\n\t\t\tllave = fil.codigo + col.columna.codigo;\n\t\t}\n\t\tvar tipo = celdas instanceof Map;\n\t\tif (!tipo){\n\t\t\tvar celdas2 = new Map<string, CeldaWrapper>();\n\t\t\tfor (const [key, value] of Object.entries(celdas)) {\n\t\t\t\tceldas2.set(key, value);\n\t\t\t}\n\t\t\treturn celdas2.get(llave);\n\t\t} else {\n\t\t\treturn celdas.get(llave)\n\t\t}\n\n\t}\n\n\tpublic getCelda(codigoFila: string, codigoColumna: string, celdas: Map<string, CeldaWrapper>): CeldaWrapper {\n\t\tif (!celdas) {\n\t\t\treturn null;\n\t\t}\n\t\tvar llave = codigoFila + codigoColumna;\n\t\tvar tipo = celdas instanceof Map;\n\t\tif (!tipo){\n\t\t\tvar celdas2 = new Map<string, CeldaWrapper>();\n\t\t\tfor (const [key, value] of Object.entries(celdas)) {\n\t\t\t\tceldas2.set(key, value);\n\t\t\t}\n\t\t\treturn celdas2.get(llave);\n\t\t} else {\n\t\t\treturn celdas.get(llave)\n\t\t}\n\t}\n\n\n\tasync establecerEvaluacionBPM(actividadFuenteTareaDTO: ActividadFuenteTareaModel, llaveEncuesta: string, object: any, contratacion?: boolean ){\n\t\tthis.actividadFuenteTareaDTO = actividadFuenteTareaDTO;\n    if(contratacion){\n      this.contratacion = contratacion;\n    }\n\t\tthis.evaluacionHoja = null;\n\t\tthis.respuestaBPM = null;\n\t\tthis.listaPreguntas = [];\n\t\tthis.listaAnexo = [];\n\t\tthis.soloVer=false;\n\t\tthis.objeto = object;\n\t\tthis.llaveActividad=actividadFuenteTareaDTO.llaveTabla;\n\t\tlet data = await this.actividadFuenteTareaService.establecerEvaluacionBPM({actividadFuenteTareaDTO: actividadFuenteTareaDTO,\n\t\t\tllaveEncuesta: llaveEncuesta, contratacion: contratacion}).toPromise();\n\t\tthis.soloVer = data.soloVer;\n\t\tthis.bpm = data.bpm;\n\t\tthis.bpmActividad = data.bpmActividad;\n\t\tthis.mensajeSalida = data.mensajeSalida;\n\t\tthis.listaPreguntas = data.listaPreguntas;\n\t\tthis.listaAnexo = data.listaAnexo;\n\t\tif (this.listaAnexo){\n\t\t\tfor (let anexo of this.listaAnexo) {\n\t\t\t\tif (anexo.valorTexto) {\n\t\t\t\t\tconst match = anexo.valorTexto.match(/[^\\\\/]+$/);\n\t\t\t\t\tanexo.valorPopup =  match ? match[0] : ''\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.evaluacionHoja = data.evaluacionHoja;\n\t\tfor (let pregunta of this.listaPreguntas) {\n\t\t\tif (this.listaPreguntas.indexOf(pregunta) == 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!pregunta.pregunta.mostrar || pregunta.pregunta.pregunta.visible == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar tipo = pregunta.celdas instanceof Map;\n\t\t\tif (!tipo){\n\t\t\t\tfor (const [key, value] of Object.entries(pregunta.celdas)) {\n\t\t\t\t\tif (pregunta.colModel[0].columna.tipo == 'A' && value.respuesta.respuesta.valorTexto) {\n\t\t\t\t\t\tconst match = value.respuesta.respuesta.valorTexto.match(/[^\\\\/]+$/);\n\t\t\t\t\t\tvalue.respuesta.respuesta.valorPopup =  match ? match[0] : ''\n\t\t\t\t\t}\n\t\t\t\t\tvalue.respuesta.respuesta.valorFecha = value.respuesta.respuesta.valorFecha ? new Date(value.respuesta.respuesta.valorFecha) : null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [key, value] of pregunta.celdas) {\n\t\t\t\t\tif (pregunta.colModel[0].columna.tipo == 'A' && value.respuesta.respuesta.valorTexto) {\n\t\t\t\t\t\tconst match = value.respuesta.respuesta.valorTexto.match(/[^\\\\/]+$/);\n\t\t\t\t\t\tvalue.respuesta.respuesta.valorPopup =  match ? match[0] : ''\n\t\t\t\t\t}\n\t\t\t\t\tvalue.respuesta.respuesta.valorFecha = value.respuesta.respuesta.valorFecha ? new Date(value.respuesta.respuesta.valorFecha) : null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tcambioRespuesta(valorCambio: any, encuesta: EncuestaWrapper) {\n\t\tthis.validando = false;\n\t\tvar lista = [];\n\t\tvar encuestaWrapper = Object.assign({}, encuesta);\n\t\tfor (var [key, value] of Object.entries(encuestaWrapper.celdas)) {\n\t\t\tdelete value['validador']\n\t\t\tvalue.id = key;\n\t\t\tlista.push(value);\n\t\t}\n\t\tdelete encuestaWrapper['celdas']\n\t\tencuestaWrapper.listaCeldas = lista;;\n\t\tthis.actividadFuenteTareaService.cambioRespuesta({valorCambio: valorCambio.value, encuestaWrapper: encuestaWrapper}).subscribe(data => {\n\t\t\tencuesta = data;\n\t\t\tfor (let enc of encuesta.pregunta.preguntasHijas) {\n\t\t\t\tfor (let det of this.listaPreguntas) {\n\t\t\t\t\tlet celda = this.getCelda(enc.pregunta.codigoFila, enc.pregunta.codigoColumna, det.celdas)\n\t\t\t\t\tif (celda) {\n\t\t\t\t\t\tvar celdas2 = new Map<string, CeldaWrapper>();\n\t\t\t\t\t\tfor (const [key, value] of Object.entries(det.celdas)) {\n\t\t\t\t\t\t\tceldas2.set(key, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdet.celdas = celdas2;\n\t\t\t\t\t\tdet.celdas.set(enc.pregunta.codigoFila + enc.pregunta.codigoColumna, celda);\n\t\t\t\t\t\tdet.pregunta.mostrar = enc.mostrar;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tvalidar(): boolean {\n\t\tvar validador = true;\n\t\tfor (let pregunta of this.listaPreguntas) {\n\t\t\tif (this.listaPreguntas.indexOf(pregunta) == 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!pregunta.pregunta.mostrar || pregunta.pregunta.pregunta.visible == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar tipo = pregunta.celdas instanceof Map;\n\t\t\tif (!tipo){\n\t\t\t\tfor (const [key, value] of Object.entries(pregunta.celdas)) {\n\t\t\t\t\tif ( value['celda'].obligatorio == this.generalPipe.SI ) {\n\t\t\t\t\t\tvalidador = validador && (this.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorTexto) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorDecimal) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorEntero) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorFecha) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorPopup)||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuestaMultiple) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [key, value] of pregunta.celdas) {\n\t\t\t\t\tif ( value['celda'].obligatorio == this.generalPipe.SI ) {\n\t\t\t\t\t\tvalidador = validador && (this.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorTexto) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorDecimal) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorEntero) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorFecha) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuesta.valorPopup) ||\n\t\t\t\t\t\t\tthis.utilsService.validarCampoObligatorio(value.respuesta.respuestaMultiple) )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn validador;\n\t}\n\n\tguardarBPM() {\n\t\tthis.validando = true;\n\t\tif (!this.validar()){\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.validando = false;\n\t\tfor (let pregunta of this.listaPreguntas) {\n\t\t\tif (this.listaPreguntas.indexOf(pregunta) == 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar tipo = pregunta.celdas instanceof Map;\n\t\t\tvar lista = [];\n\t\t\tif (!tipo){\n\t\t\t\tfor (var [key, value] of Object.entries(pregunta.celdas)) {\n\t\t\t\t\tdelete value['validador']\n\t\t\t\t\tvalue.id = key;\n\t\t\t\t\tlista.push(value);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [key, value] of pregunta.celdas) {\n\t\t\t\t\tdelete value['validador']\n\t\t\t\t\tvalue.id = key;\n\t\t\t\t\tlista.push(value);\n\t\t\t\t}\n\t\t\t}\n\t\t\tdelete pregunta['celdas']\n\t\t\tpregunta.listaCeldas = lista;;\n\t\t}\n\t\tthis.actividadFuenteTareaService.guardarBPM({\n\t\t\tevaluacionHoja: this.evaluacionHoja,\n\t\t\tlistaPreguntas: this.listaPreguntas,\n\t\t\tactividadFuenteTareaDTO: this.actividadFuenteTareaDTO\n\t\t}).subscribe(data => {\n\t\t\tthis.notificacionesService.showInfo(this.mensajeSalida ? this.mensajeSalida : 'Proceso terminó');\n\t\t\tthis.regresar.emit();\n\t\t})\n\t}\n\n\tcargarArchivoEvent(data: any, fubauto, pregunta: CeldaWrapper) {\n\t\tthis.archivoSeleccionado =  data.files[0];\n\t\tpregunta.respuesta.respuesta.valorPopup = this.archivoSeleccionado.name;\n\t\tthis.readFile(this.archivoSeleccionado);\n\t\tthis.subirArchivo(pregunta);\n\t\tfubauto.clear();\n\t}\n\n\tprivate readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n\t\t//this.filename = file.name;\n\t  }\n\n\tsubirArchivo(pregunta: CeldaWrapper) {\n\t\tlet propiedad = 'ruta_anexosHojaVida' //PropiedadesAplicativo.RUTA_ANEXOSHOJAVIDA;\n\t\tlet codigoAplicacion = this.authService.getTokenKey('aplicacion');\n\t\tpregunta.respuesta.respuesta.valorTexto = this.utilsService.generarLlave();\n\t\tlet fileExtension: string = this.archivoSeleccionado.name.split('?')[0].split('.').pop();\n\t\tthis.archivoSeleccionado = new File([this.archivoSeleccionado], pregunta.respuesta.respuesta.valorTexto + '.' + fileExtension);\n\t\tthis.cargarArchivo.cargarArchivo(this.archivoSeleccionado, '/', propiedad, codigoAplicacion).subscribe({\n\t\t\tnext: (event) => {\n\t\t\t\tif (event.type === HttpEventType.Response) {\n\t\t\t\t\tlet response: any = event.body;\n\t\t\t\t\tpregunta.respuesta.respuesta.valorTexto = this.encriptadoBasico.desencriptar(response.rutaCarga);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\tdescargarArchivo(ruta, nombre) {\n\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(ruta) ).subscribe({\n\t\tnext: (data) => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(data)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = nombre;\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t}\n\t\t})\n\t}\n\n\n  regresarListadoActContratacion(){\n    this.regresar.emit();\n  }\n}\n","@if (contratacion) {\n  <div class=\"flex align-items-center justify-content-between mb-3\">\n    <h2 class=\"mb-0\">{{'contratacion' | translate}}</h2>\n    <button pButton pRipple label=\"{{'listado' | translate}} {{'actividad' | translate}}\" (click)=\"regresarListadoActContratacion()\"\n      icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-0\"></button>\n  </div>\n}\n@if (!contratacion) {\n  <h2 class=\"mt-3\">{{'encuesta' | translate}}</h2>\n}\n\n<div *ngFor=\"let pregunta of listaPreguntas\">\n    <p-table [value]=\"pregunta.rowModel\">\n        <ng-template pTemplate=\"body\" let-fila>\n            <tr *ngIf=\"pregunta.pregunta.mostrar\">\n                <td style=\"width: 20%;\">\n                    <div class=\"card-notificacion\" [innerHTML]=\"obtenerDescripcion(fila.descripcion, pregunta.pregunta.pregunta.obligatorio == 'S')  | safeHTML\" ></div>\n                </td>\n                <td style=\"width: 80%\">\n                    <div *ngFor=\"let columna of pregunta.colModel\" class=\"p-fluid p-formgrid grid\">\n                        <div [ngClass]=\"pregunta.pregunta.pregunta.ayuda ? 'col-11' : 'col-12'\">\n                            <label>{{columna.columna.descripcion}}</label>\n                            <!-- Texto Corto -->\n                            <div *ngIf=\"columna.textoCorto && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\">\n                                <input pInputText\n                                    [maxlength]=\"celda(fila, columna, pregunta.celdas).validador?.longitudMaxima\"\n                                    [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                    [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto\"\n                                    [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                            </div>\n\n                            <!-- Texto Largo -->\n                            <div *ngIf=\"columna.textoLargo && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\">\n                                <textarea pInputTextarea\n                                    [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto\"\n                                    [maxlength]=\"celda(fila, columna, pregunta.celdas).validador?.longitudMaxima\"\n                                    [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                    class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                    [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' && !utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto) && validando) ? 'ng-invalid ng-dirty' : ''\">\n                                </textarea>\n                            </div>\n\n                            <!-- Tipo Mensaje html -->\n                            <div *ngIf=\"columna.mensaje && pregunta.pregunta.mostrar\"  [innerHTML]=\"pregunta.pregunta.pregunta.mensaje | safeHTML\" >\n                            </div>\n\n                            <!-- Fecha -->\n                            <div *ngIf=\"columna.fecha && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\">\n                                <p-calendar class=\"w-full\" appendTo=\"body\" type=\"text\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                    [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorFecha\"\n                                    [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                    [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorFecha) && validando) : false) ? 'ng-invalid ng-dirty' : ''\">\n                                </p-calendar>\n                            </div>\n\n                            <!-- Numero Entero -->\n                            <div *ngIf=\"columna.numeroEntero && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\">\n                                <p-inputNumber\n                                    [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorEntero\"\n                                    [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                    [min]=\"celda(fila, columna, pregunta.celdas).validador?.valorMinimo\"\n                                    [max]=\"celda(fila, columna, pregunta.celdas).validador?.valorMaximo\"\n                                    [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorEntero) && validando) : false) ? 'ng-invalid ng-dirty' : ''\">\n                                </p-inputNumber>\n                            </div>\n\n                            <!-- Numero Decimal -->\n                            <div *ngIf=\"columna.numeroDecimal && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\">\n                                <p-inputNumber mode=\"decimal\"\n                                    [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorDecimal\"\n                                    [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                    [min]=\"celda(fila, columna, pregunta.celdas).validador?.valorMinimo\"\n                                    [max]=\"celda(fila, columna, pregunta.celdas).validador?.valorMaximo\"\n                                    [minFractionDigits]=\"0\"\n                                    [maxFractionDigits]=\"celda(fila, columna, pregunta.celdas).validador?.cantidadDecimales\"\n                                    [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorDecimal) && validando) : false) ? 'ng-invalid ng-dirty' : ''\">\n                                </p-inputNumber>\n                            </div>\n\n                            <!-- Lista Valor/Texto -->\n                            <div *ngIf=\"(columna.listaDesplegable || columna.listaDesplegableTexto) && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\">\n                                <p-dropdown class=\"w-full\" appendTo=\"body\"\n                                    [options]=\"columna.opciones\"\n                                    [autoDisplayFirst]=\"false\"\n                                    (onChange)=\"cambioRespuesta($event, pregunta)\"\n                                    [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto\"\n                                    [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                    [showClear]=\"pregunta.pregunta.pregunta.obligatorio != 'S'\"\n                                    [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto) && validando) : false) ? 'ng-invalid ng-dirty' : ''\">\n                                </p-dropdown>\n                            </div>\n\n                            <!-- Radio -->\n                            <div *ngIf=\"columna.radio && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\" class=\"col-md-12\">\n                                <div class=\"mt-3 p-fluid p-formgrid grid\">\n                                    <div *ngFor=\"let valor of columna.opciones\" class=\"col-12 md:col-2 field-checkbox\">\n                                        <p-radioButton\n                                            [inputId]=\"valor.value\"\n                                            name=\"valor\"\n                                            [value]=\"valor.value\"\n                                            [label]=\"valor.label\"\n                                            [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto\"\n                                            [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                            [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto) && validando) : false) ? 'ng-invalid ng-dirty' : ''\">\n                                        </p-radioButton>\n                                    </div>\n                                </div>\n                            </div>\n\n                            <!-- Seleccion Multiple-->\n                            <div *ngIf=\"columna.marcaSeleccionMultiple && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\" class=\"col-md-12\">\n                                <div class=\"mt-3 p-fluid p-formgrid grid\">\n                                    <div *ngFor=\"let valor of columna.opciones\" class=\"col-12 md:col-3 field-checkbox\">\n                                        <p-checkbox\n                                            [inputId]=\"valor.value\"\n                                            name=\"valor\"\n                                            [value]=\"valor\"\n                                            [(ngModel)]=\"celda(fila, columna, pregunta.celdas).respuesta.respuestaMultiple\"\n                                            [disabled]=\"!celda(fila, columna, pregunta.celdas).modificable || soloVer\"\n                                            [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuestaMultiple) && validando) : false) ? 'ng-invalid ng-dirty' : ''\">\n                                        </p-checkbox>\n                                        <label [for]=\"valor.value\">{{ valor.label }}</label>\n                                    </div>\n                                </div>\n                            </div>\n\n                            <!-- Adjunto -->\n                            <div *ngIf=\"columna.adjunto && pregunta.pregunta.mostrar && celda(fila, columna, pregunta.celdas).visible\">\n                                <div id=\"btn-cargar-popup\" [class]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto) && validando) : false) ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n                                    <span class=\"p-float-label\">\n                                        <input pInputText #inputText [readonly]=\"true\" [value]=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorPopup\" disabled />\n                                        <p-fileUpload #fubauto  mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n                                            [class.invalid-upload]=\"(pregunta.pregunta.pregunta.obligatorio == 'S' ? (!utilsService.validarCampoObligatorio(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto) && validando) : false)\"\n                                            [accept]=\"'.pdf'\" (onSelect)=\"cargarArchivoEvent($event, fubauto, celda(fila, columna, pregunta.celdas))\"></p-fileUpload>\n                                        <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\"\n                                            (click)=\"descargarArchivo(celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto, celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorPopup)\" type=\"file\" *ngIf=\"celda(fila, columna, pregunta.celdas).respuesta.respuesta.valorTexto\"></button>\n                                    </span>\n                                </div>\n                            </div>\n                            <label [style.color]=\"'var(--color-500) !important'\">{{celda(fila, columna, pregunta.celdas)?.validador?.mensaje}}</label>\n\n                        </div>\n\n                        <div *ngIf=\"pregunta.pregunta.pregunta.ayuda\" class=\"col-1 contenedor\"  >\n                            <span class=\"w-1rem\" style=\"color: var(--color-400)\" tooltipStyleClass=\"tw-200\"\n                                [hideDelay]=\"1800\" pTooltip=\"{{ pregunta.pregunta.pregunta.ayuda }}\" tooltipPosition=\"top\"\n                                *ngIf=\"pregunta.pregunta.pregunta.ayuda\"><i class=\"pi pi-question-circle\"></i></span>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n    </p-table>\n</div>\n\n<div class=\"cardInstrucciones mt-4 mb-3\" *ngIf=\"listaAnexo?.length > 0\">\n    <div class=\"flex\">\n        <div class=\"icono\">\n            <i class=\"pi pi-bell\"></i>\n        </div>\n        <div class=\"contenedor\">\n            <label>{{'anexos' | translate}}</label>\n        </div>\n    </div>\n</div>\n\n<div class=\"p-fluid p-formgrid grid\" *ngIf=\"listaAnexo?.length > 0\" >\n    <p-table [value]=\"listaAnexo\" class=\"col-3\">\n        <ng-template pTemplate=\"body\" let-anexo>\n            <tr>\n                <td>\n                    <label>{{anexo.descripcion}}</label>\n                </td>\n                <td>\n                    <button pButton pRipple class=\"m-2 p-button p-button-secondary p-button-rounded\" icon=\"glyphicons glyphicons-paperclip\"\n                        (click)=\"descargarArchivo(anexo.valorTexto, anexo.valorPopup)\" type=\"file\" *ngIf=\"anexo.valorTexto\"></button>\n                </td>\n            </tr>\n        </ng-template>\n    </p-table>\n</div>\n\n<!--BOTONES-->\n<div class=\"flex justify-content-end mb-3 mt-2\">\n    <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"guardarBPM()\" *ngIf=\"!soloVer && bpm\"\n        icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_enviar' | translate}}\" >\n    </button>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { ToastService, UtilsService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-motivo-no-autoriza',\n    templateUrl: './popup-motivo-no-autoriza.component.html',\n    styleUrls: ['./popup-motivo-no-autoriza.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, InputTextareaModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupMotivoNoAutorizaComponent implements OnInit {\n\n  public motivo: string = null;\n  public clickGuardar: boolean = false;\n  @Input() mostrarPopup: boolean;\n  @Output() regresar = new EventEmitter();\n\n  constructor(public utilsService: UtilsService,\n              private generalPipe: GeneralPipe,\n              private notificacionesService: ToastService,\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  validar(): boolean {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.motivo);\n    return validador;\n  }\n\n  guardar(){\n    this.clickGuardar = true;\n    if (!this.validar()) {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      return;\n    }\n    this.clickGuardar = false;\n    this.mostrarPopup = false;\n    this.regresar.emit(this.motivo)\n  }\n\n  regresarVista() {\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n}\n","<p-dialog header=\"{{'motivo' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '40vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <div class=\"col-12 md:col-12 lg:col-12\">\n        <div class=\"Inputgroup\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <!-- MOTIVO -->\n                <div class=\"col-12 md:col-12 lg:col-12\" >\n                    <span class=\"p-float-label\">\n                        <textarea class=\"w-full min-h-150 max-h-200\" pInputTextarea [(ngModel)]=\"motivo\"\n                            [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(motivo) ? 'ng-invalid ng-dirty' : ''\"></textarea>\n                        <label>{{'motivo' | translate}} *</label>\n                    </span>\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" (click)=\"guardar()\"\n                icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar'| translate}}\" >\n            </button>\n        </div>\n    </div>\n</p-dialog>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { FuenteServicioModel, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ActividadFuenteTareaService } from '../../services/actividadFuenteTarea.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ConfirmationService } from 'primeng/api';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { PopupMotivoNoAutorizaComponent } from '../../popups/popup-motivo-no-autoriza/popup-motivo-no-autoriza.component';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\n\n@Component({\n    selector: 'app-ejecucion-autorizacion',\n    templateUrl: './ejecucion-autorizacion.component.html',\n    styleUrls: ['./ejecucion-autorizacion.component.scss'],\n    standalone: true,\n    imports: [ButtonDirective, Ripple, NgIf, PopupMotivoNoAutorizaComponent]\n})\nexport class EjecucionAutorizacionComponent implements OnInit {\n\n \tpublic labelAutoriza: string;\n\tpublic labelNoAutoriza: string;\n\tpublic modelo: string;\n\tpublic llaveActividad: string;\n\tpublic objeto: any;\n\tpublic navegacion: string;\n\n\tpublic nombreDTO: string;\n  \tpublic mostrarMotivoNoAutoriza: boolean = false;\n\t@Output() public regresar = new EventEmitter;\n\t\n\tconstructor(private generalService: GeneralService,\n\t\t\t\tprivate utilsService: UtilsService,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tprivate translateService: TranslateService,\n\t\t\t\tprivate generalPipe: GeneralPipe,\n\t\t\t\tprivate confirmationService: ConfirmationService,\n\t\t\t\tprivate actividadFuenteTareaService: ActividadFuenteTareaService,\n\t) { }\n\n\tngOnInit(): void {\n\t}\n\n\tasync inicializar(llaveActividad: string, llaveFuenteServicio: string, modelo: string, objeto: any) {\n\t\tthis.modelo = modelo;\n\t\tthis.llaveActividad = llaveActividad;\n\t\tthis.objeto = objeto;\n\t\t\n\t\tvar fuenteServicioDTO = await this.cargarFuenteServicio(llaveFuenteServicio);\n\t\t\n\t\tif(fuenteServicioDTO != null){\n\t\t\tthis.cargarLabel(fuenteServicioDTO);\n\t\t}\n\t}\n\t\n\tprivate async cargarFuenteServicio(llaveFuenteServicio: string) {\n\t\tvar fuenteServicioDTO = new FuenteServicioModel();\n\t\tfuenteServicioDTO.llaveTabla = llaveFuenteServicio;\n\t\treturn await this.generalService.queryForObject(new GeneralModel('FuenteServicioDTO', null, false, fuenteServicioDTO)).toPromise();\n\t}\n\t\n\tprivate cargarLabel(fuenteServicioDTO: FuenteServicioModel){\n\t\tthis.labelAutoriza = this.utilsService.isNotBlank(fuenteServicioDTO.labelAutoriza) ? fuenteServicioDTO.labelAutoriza : this.translateService.instant('autorizar');\n\t\tthis.labelNoAutoriza = this.utilsService.isNotBlank(fuenteServicioDTO.labelNoAutoriza) ? fuenteServicioDTO.labelNoAutoriza : this.translateService.instant('noautorizar');\n\t}\n\t\n\tpublic autorizar(event){\n\t\tthis.confirmationService.confirm({\n\t\ttarget: event.target,\n\t\tmessage:  this.translateService.instant('mensajeconfirmarbpm'),\n\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\theader: this.translateService.instant('confirmar'),\n\t\taccept: () => {\n\t\t\tthis.guardarRespuesta(true, null);\n\t\t\t\tthis.notificacionesService.showInfo('La respuesta se ha guardado correctamente. Autorizar.');\n\t\t\t}\n\t\t})\n\t}\n\t\n\tpublic noAutorizar(){\n    \tthis.mostrarMotivoNoAutoriza = true;\n\t}\n\t\n\tpublic setNoAutorizacion(motivo: string){\n    this.mostrarMotivoNoAutoriza = false;\n\t\tif (motivo) {\n\t\tthis.guardarRespuesta(false, motivo);\n\t\tthis.notificacionesService.showInfo('La respuesta se ha guardado correctamente. No Autorizar.');\n   \t }\n\t}\n\t\n\tprivate guardarRespuesta(respuesta: boolean, motivo: string) {\n\t\tthis.actividadFuenteTareaService.guardarRespuestaAutorizacion({respuesta: respuesta, motivo: motivo, objeto: this.objeto, modelo: this.modelo, llaveActividad: this.llaveActividad}).subscribe(data => {\n\t\t\tthis.regresar.emit();\n    \t})\n\t}\n\n}\n","<div class=\"flex justify-content-end\" >\n    <button pButton pRipple (click)=\"autorizar($event)\" label=\"{{labelAutoriza}}\"\n        icon=\"glyphicons glyphicons-check\" class=\"p-button-secondary font-semibold flex-shrink-0 ml-4 mr-2\"></button>\n    <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{labelNoAutoriza}}\"\n        (click)=\"noAutorizar()\"><i class=\"glyphicons glyphicons-remove\"></i></button>\n</div>\n<app-popup-motivo-no-autoriza *ngIf=\"mostrarMotivoNoAutoriza\" [mostrarPopup]=\"mostrarMotivoNoAutoriza\" \n    (regresar)=\"setNoAutorizacion($event)\"></app-popup-motivo-no-autoriza>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'workflowPipe',\n    standalone: true\n})\n@Injectable({\n   providedIn: 'root'\n})\n\nexport class WorkflowPipe implements PipeTransform {\n\n  constructor(\n  ) { }\n\n  ESTADOPROCESO = 'P';\n  ESTADOEJECUTADO = 'E';\n  ESTADOCERRADO = 'C';\n  ESTADOANULADO = 'A';\n  ESTADOCERRADOANULADO = 'D';\n  ESTADOBLOQUEADO = 'B';\n\n  ESTADOPROCESO_DESC='Proceso';\n\tESTADOEJECUTADO_DESC='Ejecutado';\n\tESTADOCERRADO_DESC='Cerrado';\n\tESTADOANULADO_DESC='Anulado';\n\tESTADOCERRADOANULADO_DESC='Cerrado Anulado';\n\tESTADOBLOQUEADO_DESC='Bloqueado';\n\n  ESTADOS = [\n\t\t{codigo: this.ESTADOPROCESO, nombre: this.ESTADOPROCESO_DESC},\n\t\t{codigo: this.ESTADOEJECUTADO, nombre: this.ESTADOEJECUTADO_DESC},\n\t\t{codigo: this.ESTADOCERRADO, nombre: this.ESTADOCERRADO_DESC},\n\t\t{codigo: this.ESTADOANULADO, nombre: this.ESTADOANULADO_DESC},\n\t\t{codigo: this.ESTADOCERRADOANULADO, nombre: this.ESTADOCERRADOANULADO_DESC},\n\t\t{codigo: this.ESTADOBLOQUEADO, nombre: this.ESTADOBLOQUEADO_DESC},\n  ]\n\n  PROCESOREQUERIMIENTO = 'R';\n  PROCESOCONTRATACION = 'C';\n  PROCESOSELECCION = 'S';\n  PROCESOSELECCIONCANDIDATO = 'X';\n  PROCESOVACACIONES = 'V';\n  PROCESOINTERRUPCION = 'T';\n  PROCESOINCAPACIDAD = 'I';\n  PROCESOLICENCIA = 'L';\n  PROCESOGENERAL = 'G';\n  PROCESONOVEDAD = 'N';\n  PROCESOBIENESTAR = 'E';\n  PROCESOBENEFICIO = 'B';\n  PROCESO_CARGUE_FUENTE = 'A';\n  PROCESOCAPACITACION = 'P';\n  PROCESOHOJAVIDA = 'H';\n  PROCESOSOLICITUDES = 'O';\n  PROCESODESCRIPCIONCARGO = 'D';\n  PROCESOPUNTAJEDOCENTE = 'U';\n  PROCESOCONVOCATORIA = 'Z';\n  PROCESOVIATICO = 'Y';\n  PROCESOELEMENTO = 'F';\n  PROCESOFASEGESTION = 'M';\n\n  PROCESOREQUERIMIENTO_DESC = 'Requerimiento';\n  PROCESOCONTRATACION_DESC = 'Contratación';\n  PROCESOSELECCION_DESC = 'Selección';\n  PROCESOSELECCIONCANDIDATO_DESC = 'Selección Candidato';\n  PROCESOVACACIONES_DESC = 'Vacaciones';\n  PROCESOINTERRUPCION_DESC = 'Interrupción';\n  PROCESOINCAPACIDAD_DESC = 'Incapacidad';\n  PROCESOLICENCIA_DESC = 'Licencia';\n  PROCESOGENERAL_DESC = 'General';\n  PROCESOBENEFICIO_DESC = 'Beneficio';\n  PROCESONOVEDAD_DESC = 'Novedad';\n  PROCESOBIENESTAR_DESC = 'Bienestar';\n  PROCESOCAPACITACION_DESC = 'Capacitación';\n  PROCESOHOJAVIDA_DESC = 'Hoja Vida';\n  PROCESOSOLICITUDES_DESC = 'Solicitudes';\n  PROCESODESCRIPCIONCARGO_DESC = 'Descripción Cargo';\n  PROCESOPUNTAJEDOCENTE_DESC = 'Puntaje Docente';\n  PROCESOCONVOCATORIA_DESC = 'Convocatoria';\n  PROCESOVIATICO_DESC = 'Viatico';\n  PROCESOELEMENTO_DESC = 'Elemento';\n  PROCESOFASEGESTION_DESC = 'Fase Evaluación';\n\n\n  PROCESOS = [\n    { codigo: this.PROCESOREQUERIMIENTO, nombre: this.PROCESOREQUERIMIENTO_DESC },\n    { codigo: this.PROCESOSELECCION, nombre: this.PROCESOSELECCION_DESC },\n    { codigo: this.PROCESOSELECCIONCANDIDATO, nombre: this.PROCESOSELECCIONCANDIDATO_DESC },\n    { codigo: this.PROCESOVACACIONES, nombre: this.PROCESOVACACIONES_DESC },\n    { codigo: this.PROCESOINTERRUPCION, nombre: this.PROCESOINTERRUPCION_DESC },\n    { codigo: this.PROCESOLICENCIA, nombre: this.PROCESOLICENCIA_DESC },\n    { codigo: this.PROCESOINCAPACIDAD, nombre: this.PROCESOINCAPACIDAD_DESC },\n    { codigo: this.PROCESOGENERAL, nombre: this.PROCESOGENERAL_DESC },\n    { codigo: this.PROCESOCONTRATACION, nombre: this.PROCESOCONTRATACION_DESC },\n    { codigo: this.PROCESOBENEFICIO, nombre: this.PROCESOBENEFICIO_DESC },\n    { codigo: this.PROCESONOVEDAD, nombre: this.PROCESONOVEDAD_DESC },\n    { codigo: this.PROCESOBIENESTAR, nombre: this.PROCESOBIENESTAR_DESC },\n    { codigo: this.PROCESOCAPACITACION, nombre: this.PROCESOCAPACITACION_DESC },\n    { codigo: this.PROCESOSOLICITUDES, nombre: this.PROCESOSOLICITUDES_DESC },\n    { codigo: this.PROCESODESCRIPCIONCARGO, nombre: this.PROCESODESCRIPCIONCARGO_DESC },\n    { codigo: this.PROCESOPUNTAJEDOCENTE, nombre: this.PROCESOPUNTAJEDOCENTE_DESC },\n    { codigo: this.PROCESOCONVOCATORIA, nombre: this.PROCESOCONVOCATORIA_DESC },\n    { codigo: this.PROCESOVIATICO, nombre: this.PROCESOVIATICO_DESC },\n    { codigo: this.PROCESOELEMENTO, nombre: this.PROCESOELEMENTO_DESC },\n    { codigo: this.PROCESOFASEGESTION, nombre: this.PROCESOFASEGESTION_DESC },\n  ];\n\n\n  VALIDO = 'V';\n  INVALIDO = 'I';\n\n  VALIDO_DESC = 'Valido';\n  INVALIDO_DESC = 'No Valido';\n\n  VALIDOLISTA = [\n    { codigo: this.VALIDO, nombre: this.VALIDO_DESC },\n    { codigo: this.INVALIDO, nombre: this.INVALIDO_DESC },\n  ];\n\n  DOCUMENTO = 'D';\n  HTML = 'H';\n\n  DOCUMENTO_DES = 'Documento';\n  HTML_DES = 'HTML';\n\n  TIPORECURSO = [\n    { codigo: this.DOCUMENTO, nombre: this.DOCUMENTO_DES },\n    { codigo: this.HTML, nombre: this.HTML_DES },\n  ];\n\n  SOLICITUD = 'SOLICITUD';\n\tFORMALIZAR = 'FORMALIZAR';\n\tELIMINACION = 'ELIMINACION';\n\tLEGALIZACION = 'LEGALIZACION';\n\tNOLEGALIZACION = 'NOLEGALIZACION';\n\tLIQUIDACION = 'LIQUIDACION';\n\tPROCESO = 'PROCESO';\n\tBLOQUEADO = 'BLOQUEO';\n\tCERRADO = 'CERRADO';\n\tANULADO = 'ANULADO';\n\tINFORMEFINALSEL = 'INFORMEFINAL';\n\tRECHAZO = 'RECHAZO';\n\tPORFORMALIZAR = 'PORFORMALIZAR';\n\tNOCONDONACION = 'NOCONDONACION';\n\tSOLFORMALIZAR = 'SOLFORMALIZAR';\n\tNOFORMALIZADO = 'NOFORMALIZADO';\n\tSOLCONDONAR = 'SOLCONDONAR';\n\n\n  MAPARAMACONTRATACION = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION },\n    { codigo: this.ANULADO, nombre: this.ANULADO }\n  ];\n\n  MAPARAMABENEFICIO = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n    { codigo: this.NOLEGALIZACION, nombre: this.NOLEGALIZACION },\n    { codigo: this.PORFORMALIZAR, nombre: this.PORFORMALIZAR },\n    { codigo: this.SOLFORMALIZAR, nombre: this.SOLFORMALIZAR },\n    { codigo: this.SOLCONDONAR, nombre: this.SOLCONDONAR },\n    { codigo: this.NOFORMALIZADO, nombre: this.NOFORMALIZADO },\n    { codigo: this.FORMALIZAR, nombre: this.FORMALIZAR },\n    { codigo: this.NOCONDONACION, nombre: this.NOCONDONACION }\n  ];\n\n  MAPARAMAREQUERIMIENTO = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION }\n  ];\n\n  MAPARAMASELECCION = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION },\n    { codigo: this.PROCESO, nombre: this.PROCESO },\n    { codigo: this.BLOQUEADO, nombre: this.BLOQUEADO },\n    { codigo: this.CERRADO, nombre: this.CERRADO },\n    { codigo: this.ANULADO, nombre: this.ANULADO },\n    { codigo: this.INFORMEFINALSEL, nombre: this.INFORMEFINALSEL }\n  ];\n\n  MAPARAMAVACACION = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n    { codigo: this.NOLEGALIZACION, nombre: this.NOLEGALIZACION },\n    { codigo: this.LIQUIDACION, nombre: this.LIQUIDACION },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION }\n  ];\n\n  MAPARAMANOVEDAD = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n    { codigo: this.NOLEGALIZACION, nombre: this.NOLEGALIZACION },\n    { codigo: this.LIQUIDACION, nombre: this.LIQUIDACION },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION },\n    { codigo: this.RECHAZO, nombre: this.RECHAZO },\n  ];\n\n  MAPARAMAINCAPACIDAD = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n    { codigo: this.NOLEGALIZACION, nombre: this.NOLEGALIZACION },\n    { codigo: this.LIQUIDACION, nombre: this.LIQUIDACION },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION },\n  ];\n\n  MAPARAMAINTERRUPCION = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n    { codigo: this.NOLEGALIZACION, nombre: this.NOLEGALIZACION },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION },\n  ];\n\n  MAPARAMABIENESTAR = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n    { codigo: this.NOLEGALIZACION, nombre: this.NOLEGALIZACION },\n  ];\n\n  MAPARAMALICENCIA = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n    { codigo: this.NOLEGALIZACION, nombre: this.NOLEGALIZACION },\n    { codigo: this.LIQUIDACION, nombre: this.LIQUIDACION },\n    { codigo: this.ELIMINACION, nombre: this.ELIMINACION },\n  ];\n\n\n  EJECUTADO = 'EJECUTADO';\n  SOLICITADO = 'SOLICITADO';\n  NOACEPTADO = 'NOACEPTADO';\n  AUTORIZADO = 'AUTORIZADO';\n  NOAUTORIZADO = 'NOAUTORIZADO';\n\n\n  MAPARAMACAPACITACION = [\n    { codigo: this.EJECUTADO, nombre: this.EJECUTADO },\n    { codigo: this.SOLICITADO, nombre: this.SOLICITADO },\n    { codigo: this.NOACEPTADO, nombre: this.NOACEPTADO },\n    { codigo: this.AUTORIZADO, nombre: this.AUTORIZADO },\n    { codigo: this.NOAUTORIZADO, nombre: this.NOAUTORIZADO },\n  ];\n\n  PROCESOCAN = 'A';\n\tNOADMITIDOS = Constantes.CONSTANTE_NO;\n\tENGANCHE = 'E';\n\tINSCRIPCION = 'I';\n\tINFORMEFINAL = 'F';\n\tPREINSCRIPCION = 'P';\n\n\tDESPROCESOCAN = 'Proceso';\n\tDESNOADMITIDOS = 'No Admitidos';\n\tDESENGANCHE = 'Enganche';\n\tDESINSCRIPCION = 'Inscripcion';\n\tDESINFORMEFINAL = 'Informe final';\n\tDESPREINSCRIPCION = 'PreInscripcion';\n\n  MAPARAMASELECCIONCANDIDATO = [\n    { codigo: this.PROCESOCAN, nombre: this.PROCESOCAN },\n    { codigo: this.NOADMITIDOS, nombre: this.NOADMITIDOS },\n    { codigo: this.ENGANCHE, nombre: this.ENGANCHE },\n    { codigo: this.INSCRIPCION, nombre: this.INSCRIPCION },\n    { codigo: this.INFORMEFINAL, nombre: this.INFORMEFINAL },\n    { codigo: this.PREINSCRIPCION, nombre: this.PREINSCRIPCION },\n  ];\n\n  MAPARAMAHOJAVIDA = [\n    { codigo: this.PROCESO, nombre: this.PROCESO },\n  ];\n\n  MAPARAMASOLICITUDES = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n    { codigo: this.AUTORIZADO, nombre: this.AUTORIZADO },\n    { codigo: this.NOAUTORIZADO, nombre: this.NOAUTORIZADO },\n    { codigo: this.LEGALIZACION, nombre: this.LEGALIZACION },\n  ];\n\n  MAPARAMADESCRIPCIONCARGO = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n  ];\n\n  MAPARAMAPUNTAJEDOCENTE = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n  ];\n\n  PROCESOEXTERNO = 'E';\n\tCONCURSOINTERNO = 'P';\n\tMIXTO = 'M';\n\tNOAPLICA = 'NA';\n\n\tPROCESOEXTERNODESC = 'Proceso Externo';\n\tCONCURSOINTERNODESC = 'Concurso Interno';\n\tMIXTODESC = 'Mixto';\n\tNOAPLICADESC = 'No Aplica';\n\n  MAPARAMACONVOCATORIA = [\n    { codigo: this.NOAPLICA, nombre: this.NOAPLICADESC },\n    { codigo: this.CONCURSOINTERNO, nombre: this.CONCURSOINTERNODESC },\n    { codigo: this.PROCESOEXTERNO, nombre: this.PROCESOEXTERNODESC },\n    { codigo: this.MIXTO, nombre: this.MIXTODESC },\n  ];\n\n  MAPARAMAVIATICO = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n  ];\n\n  MAPARAMAELEMENTO = [\n    { codigo: this.SOLICITUD, nombre: this.SOLICITUD },\n  ];\n\n  MAPARAMA = [\n    { codigo: this.PROCESOCONTRATACION, nombre: this.MAPARAMACONTRATACION },\n    { codigo: this.PROCESOREQUERIMIENTO, nombre: this.MAPARAMAREQUERIMIENTO },\n    { codigo: this.PROCESOSELECCION, nombre: this.MAPARAMASELECCION },\n    { codigo: this.PROCESOSELECCIONCANDIDATO, nombre: this.MAPARAMASELECCIONCANDIDATO },\n    { codigo: this.PROCESOVACACIONES, nombre: this.MAPARAMAVACACION },\n    { codigo: this.PROCESOLICENCIA, nombre: this.MAPARAMALICENCIA },\n    { codigo: this.PROCESOINCAPACIDAD, nombre: this.MAPARAMAINCAPACIDAD },\n    { codigo: this.PROCESOINTERRUPCION, nombre: this.MAPARAMAINTERRUPCION },\n    { codigo: this.PROCESOBENEFICIO, nombre: this.MAPARAMABENEFICIO },\n    { codigo: this.PROCESONOVEDAD, nombre: this.MAPARAMANOVEDAD },\n    { codigo: this.PROCESOBIENESTAR, nombre: this.MAPARAMABIENESTAR },\n    { codigo: this.PROCESOCAPACITACION, nombre: this.MAPARAMACAPACITACION },\n    { codigo: this.PROCESOHOJAVIDA, nombre: this.MAPARAMAHOJAVIDA },\n    { codigo: this.PROCESOSOLICITUDES, nombre: this.MAPARAMASOLICITUDES },\n    { codigo: this.PROCESODESCRIPCIONCARGO, nombre: this.MAPARAMADESCRIPCIONCARGO },\n    { codigo: this.PROCESOPUNTAJEDOCENTE, nombre: this.MAPARAMAPUNTAJEDOCENTE },\n    { codigo: this.PROCESOCONVOCATORIA, nombre: this.MAPARAMACONVOCATORIA },\n    { codigo: this.PROCESOVIATICO, nombre: this.MAPARAMAVIATICO },\n    { codigo: this.PROCESOELEMENTO, nombre: this.MAPARAMAELEMENTO }\n  ];\n\n  TIPOPREGUNTA = 'P';\n\tTIPOEVENTO = 'E';\n\n\tTIPOPREGUNTA_DESC = 'Pregunta';\n\tTIPOEVENTO_DESC = 'Evento';\n\n  MAPATIPOTAREAS = [\n    { codigo: this.TIPOPREGUNTA, nombre: this.TIPOPREGUNTA_DESC },\n    { codigo: this.TIPOEVENTO, nombre: this.TIPOEVENTO_DESC },\n  ];\n\n\n  TIPOEVENTOINTERACCION = 'I';\n\tTIPOEVENTOHUMANOENCUESTA = 'E';\n\tTIPOEVENTOSERVICIO = 'S';\n\tTIPOEVENTOHUMANOAUTORIZA = 'A';\n\tTIPOEVENTOINTEGRACION = 'X';\n\n\tTIPOEVENTOINTERACCION_DESC = 'Humana predefinida';\n\tTIPOEVENTOHUMANOENCUESTA_DESC = 'Humana Encuesta';\n\tTIPOEVENTOSERVICIO_DESC = 'Servicio';\n\tTIPOEVENTOHUMANOAUTORIZA_DESC = 'Humana Autoriza';\n\tTIPOEVENTOINTEGRACION_DESC = 'Integración Externa';\n\n  MAPATIPOEVENTOS = [\n    { codigo: this.TIPOEVENTOINTERACCION, nombre: this.TIPOEVENTOINTERACCION_DESC },\n    { codigo: this.TIPOEVENTOHUMANOENCUESTA, nombre: this.TIPOEVENTOHUMANOENCUESTA_DESC },\n    { codigo: this.TIPOEVENTOSERVICIO, nombre: this.TIPOEVENTOSERVICIO_DESC },\n    { codigo: this.TIPOEVENTOHUMANOAUTORIZA, nombre: this.TIPOEVENTOHUMANOAUTORIZA_DESC },\n    { codigo: this.TIPOEVENTOINTEGRACION, nombre: this.TIPOEVENTOINTEGRACION_DESC },\n  ];\n\n\n  VERADJUNTOS_DESC = 'Ver adjuntos anteriores';\n\tNOVERADJUNTOS_DESC = 'No relacionar adjuntos';\n\n  MAPATIPOADJUNTO = [\n    { codigo: Constantes.CONSTANTE_SI, nombre: this.VERADJUNTOS_DESC },\n    { codigo: Constantes.CONSTANTE_NO, nombre: this.NOVERADJUNTOS_DESC },\n  ];\n\n\n  INTERRUPCION_REGLA_DES = 'Vacacion';\n  VACACION_REGLA_DES = 'Vacacion';\n  NOVEDAD_REGLA_DES = 'Novedad';\n  LICENCIA_REGLA_DES = 'Licencia';\n  INCAPACIDAD_REGLA_DES = 'Incapacidad';\n  SOLICITUD_REGLA_DES = 'Solicitud';\n\tCONTRATACION_REGLA_DES = 'Contratacion';\n\tREQUERIMIENTO_REGLA_DES = 'Requerimiento';\n\tSELECCION_REGLA_DES = 'Seleccion';\n\tSELECCION_CANDIDATO_REGLA_DES = 'Seleccion Candidato';\n\tBIENESTAR_REGLA_DES = 'Bienestar';\n\tBENEFICIO_REGLA_DES = 'Beneficio';\n\tCAPACITACION_REGLA_DES = 'Capacitacion';\n\tPUNTAJEDOCENTE_REGLA_DES = 'Puntaje Docente';\n\tDESCRIPCION_CARGO_REGLA_DES = 'Descripcion Cargo';\n\tCONVOCATORIA_REGLA_DES = 'Convocatoria';\n\tVIATICO_REGLA_DES = 'Viatico';\n\tELEMENTO_REGLA_DES = 'Elemento';\n\n  CONTRATACION_REGLA = 'CONTRATACION';\n  VACACION_REGLA = 'VACACION';\n  INTERRUPCION_REGLA = 'INTERRUPCION';\n  NOVEDAD_REGLA = 'NOVEDAD';\n  SOLICITUD_REGLA = 'SOLICITUD_EMPLEADO';\n  LICENCIA_REGLA = 'LICENCIA';\n  INCAPACIDAD_REGLA = 'INCAPACIDAD';\n  REQUERIMIENTO_REGLA = 'REQUERIMIENTO';\n  SELECCION_REGLA = 'SELECCION';\n  SELECCIONCANDIDATO_REGLA = 'SELECCION_CANDIDATO';\n  BIENESTAR_REGLA = 'BIENESTAR';\n  BENEFICIO_REGLA = 'BENEFICIO';\n  CAPACITACION_REGLA = 'CAPACITACION';\n  PUNTAJEDOCENTE_REGLA = 'PUNTAJE_DOCENTE';\n  DESCRIPCION_CARGO_REGLA = 'DESCRIPCION_CARGO';\n  CONVOCATORIA_REGLA = 'CONVOCATORIA';\n  VIATICO_REGLA = 'VIATICO';\n  ELEMENTO_REGLA = 'ELEMENTO';\n\n\n  MAPAEVENTOSPREDEFINIDOORIGEN = [\n    { codigo: this.PROCESOINTERRUPCION, nombre: this.INTERRUPCION_REGLA },\n    { codigo: this.PROCESONOVEDAD, nombre: this.NOVEDAD_REGLA },\n    { codigo: this.PROCESOVACACIONES, nombre: this.VACACION_REGLA },\n    { codigo: this.PROCESOLICENCIA, nombre: this.LICENCIA_REGLA },\n    { codigo: this.PROCESOINCAPACIDAD, nombre: this.INCAPACIDAD_REGLA },\n    { codigo: this.PROCESOSOLICITUDES, nombre: this.SOLICITUD_REGLA },\n    { codigo: this.PROCESOCONTRATACION, nombre: this.CONTRATACION_REGLA },\n    { codigo: this.PROCESOREQUERIMIENTO, nombre: this.REQUERIMIENTO_REGLA },\n    { codigo: this.PROCESOSELECCION, nombre: this.SELECCION_REGLA },\n    { codigo: this.PROCESOSELECCIONCANDIDATO, nombre: this.SELECCIONCANDIDATO_REGLA },\n    { codigo: this.PROCESOBIENESTAR, nombre: this.BIENESTAR_REGLA },\n    { codigo: this.PROCESOBENEFICIO, nombre: this.BENEFICIO_REGLA },\n    { codigo: this.PROCESOCAPACITACION, nombre: this.CAPACITACION_REGLA },\n    { codigo: this.PROCESOPUNTAJEDOCENTE, nombre: this.PUNTAJEDOCENTE_REGLA },\n    { codigo: this.PROCESODESCRIPCIONCARGO, nombre: this.DESCRIPCION_CARGO_REGLA },\n    { codigo: this.PROCESOCONVOCATORIA, nombre: this.CONVOCATORIA_REGLA },\n    { codigo: this.PROCESOVIATICO, nombre: this.VIATICO_REGLA },\n    { codigo: this.PROCESOELEMENTO, nombre: this.ELEMENTO_REGLA },\n  ];\n\n  PROCESOS_RECURSO_CONTRATACION = [\n    { codigo: this.PROCESOREQUERIMIENTO, nombre: this.PROCESOREQUERIMIENTO_DESC },\n    { codigo: this.PROCESOGENERAL, nombre: this.PROCESOGENERAL_DESC },\n    { codigo: this.PROCESOCONTRATACION, nombre: this.PROCESOCONTRATACION_DESC },\n    { codigo: this.PROCESOSELECCION, nombre: this.PROCESOSELECCION_DESC },\n    { codigo: this.PROCESOVACACIONES, nombre: this.PROCESOVACACIONES_DESC },\n    { codigo: this.PROCESOINTERRUPCION, nombre: this.PROCESOINTERRUPCION_DESC },\n    { codigo: this.PROCESOLICENCIA, nombre: this.PROCESOLICENCIA_DESC },\n    { codigo: this.PROCESOINCAPACIDAD, nombre: this.PROCESOINCAPACIDAD_DESC },\n    { codigo: this.PROCESOSELECCIONCANDIDATO, nombre: this.PROCESOSELECCIONCANDIDATO_DESC },\n    { codigo: this.PROCESONOVEDAD, nombre: this.PROCESONOVEDAD_DESC },\n    { codigo: this.PROCESOBIENESTAR, nombre: this.PROCESOBIENESTAR_DESC },\n    { codigo: this.PROCESOBENEFICIO, nombre: this.PROCESOBENEFICIO_DESC },\n    { codigo: this.PROCESOCAPACITACION, nombre: this.PROCESOCAPACITACION_DESC },\n    { codigo: this.PROCESOCONVOCATORIA, nombre: this.PROCESOCONVOCATORIA_DESC },\n    { codigo: this.PROCESOVIATICO, nombre: this.PROCESOVIATICO_DESC },\n    { codigo: this.PROCESOELEMENTO, nombre: this.PROCESOELEMENTO_DESC },\n  ];\n\n  DIARIO = 'DI';\n  HORA = 'HO';\n  DIARIO_DESC = 'Dia';\n  HORA_DESC = 'Hora';\n\n  MAPAPERIODOS = [\n    { codigo: this.DIARIO, nombre: this.DIARIO_DESC },\n    { codigo: this.HORA, nombre: this.HORA_DESC },\n  ];\n\n\n\n  transform(value: unknown, ...args: unknown[]): unknown {\n    let result = value;\n    if (args[0] == 'validolista') { this.VALIDOLISTA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'tiporecurso') { this.TIPORECURSO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'tipoTareas') { this.MAPATIPOTAREAS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'tipoEventos') { this.MAPATIPOEVENTOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'procesos') { this.PROCESOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'estados') { this.ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport Swal from 'sweetalert2';\nimport { AusenciaModel } from '../models/AusenciaModel';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AusentismoService {\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n  this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  traerProgamacionPasivoAusencia(objeto): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/traerProgamacionPasivoAusencia`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n  \n  cargarCamposLicencia(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/cargarCamposLicencia`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  cargarCamposLicenciaHistorico(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/cargarCamposLicenciaHistorico`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  cargarCamposIncapacidad(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/cargarCamposIncapacidad`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  cargarCamposIncapacidadHistorico(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/cargarCamposIncapacidadHistorico`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  crearLicencia(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/crearLicencia`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  insertarLegalizarAusentismoAusencia(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/insertarLegalizarAusentismoAusencia`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  eliminarRegistro(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/eliminarRegistro`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  cambiarEstadoLegalizado(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/cambiarEstadoLegalizado`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  cambiarEstadoNoLegalizado(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/cambiarEstadoNoLegalizado`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n  \n  eliminarAusentismoAusencia(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/eliminarAusentismoAusencia`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  consultarAusenciaNovedad(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/consultarAusenciaNovedad`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  crearAusencia(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/crearAusencia`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  llenarPasivo(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/llenarPasivo`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  verificarVacaciones(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/verificarVacaciones`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  crearVacaciones(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/crearVacaciones`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  crearVacacionesLegalizar(objeto): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/crearVacacionesLegalizar`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  traerListadoAusenciaNovedad(objeto): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/traerListadoAusenciaNovedad`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  traerListadoAusenciaNovedadProgramadas(objeto): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/traerListadoAusenciaNovedadProgramadas`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  traerListadoHistoricoAusencia(objeto): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/traerListadoHistoricoAusencia`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  //Interrupcion Vacaciones\n\n  legalizarInterrupcion(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/legalizarInterrupcion`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  noLegalizarInterrupcion(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/noLegalizarInterrupcion`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  crearInterrupcion(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/crearInterrupcion`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  crearInterrupcionDirecto(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/crearInterrupcionDirecto`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  eliminarRegistroInterrupcion(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/eliminarRegistroInterrupcion`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  autorizarAusentismoVacacion(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/autorizarAusentismoVacacion`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  calendarioAusentismo(objeto): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ausencia/calendarioAusentismo`, objeto).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  formatearAusencia(ausencia: AusenciaModel): AusenciaModel {\n    ausencia.salida = ausencia.salida ? new Date(ausencia.salida) : null;\n    ausencia.salidaNomina = ausencia.salidaNomina ? new Date(ausencia.salidaNomina) : null;\n    ausencia.termina = ausencia.termina ? new Date(ausencia.termina) : null;\n    ausencia.regreso = ausencia.regreso ? new Date(ausencia.regreso) : null;\n    ausencia.regresoNomina = ausencia.regresoNomina ? new Date(ausencia.regresoNomina) : null;\n    ausencia.origen = ausencia.origen ? new Date(ausencia.origen) : null;\n    ausencia.inicial = ausencia.inicial ? new Date(ausencia.inicial) : null;\n    ausencia.fechaFinal = ausencia.fechaFinal ? new Date(ausencia.fechaFinal) : null;\n    ausencia.pago = ausencia.pago ? new Date(ausencia.pago) : null;\n    ausencia.antecesor = ausencia.antecesor ? new Date(ausencia.antecesor) : null;\n    ausencia.salidaPrincipal = ausencia.salidaPrincipal ? new Date(ausencia.salidaPrincipal) : null;\n    ausencia.fechaInterrupcion = ausencia.fechaInterrupcion ? new Date(ausencia.fechaInterrupcion) : null;\n    ausencia.aplicacion = ausencia.aplicacion ? new Date(ausencia.aplicacion) : null;\n    ausencia.horaSalida = ausencia.horaSalida ? new Date(ausencia.horaSalida) : null;\n    ausencia.horaRegresa = ausencia.horaRegresa ? new Date(ausencia.horaRegresa) : null;\n    ausencia.fechaActual = ausencia.fechaActual ? new Date(ausencia.fechaActual) : null;\n    ausencia.fechaAccidente = ausencia.fechaAccidente ? new Date(ausencia.fechaAccidente) : null;\n    ausencia.filtroFecha = ausencia.filtroFecha ? new Date(ausencia.filtroFecha) : null;\n    ausencia.anticipoNomina = ausencia.anticipoNomina ? new Date(ausencia.anticipoNomina) : null;\n    ausencia.fecha1 = ausencia.fecha1 ? new Date(ausencia.fecha1) : null;\n    ausencia.fecha2 = ausencia.fecha2 ? new Date(ausencia.fecha2) : null;\n    ausencia.hora1 = ausencia.hora1 ? new Date(ausencia.hora1) : null;\n    ausencia.hora2 = ausencia.hora2 ? new Date(ausencia.hora2) : null;\n    ausencia.filtroFechaInicial = ausencia.filtroFechaInicial ? new Date(ausencia.filtroFechaInicial) : null;\n    ausencia.filtroFechaFinal = ausencia.filtroFechaFinal ? new Date(ausencia.filtroFechaFinal) : null;\n    return ausencia;\n  }\n}\n\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { AusentismoPipe } from '../../../../../shared/pipes/ausentismo.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService, CargarControlFuncionalidadService } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { ActividadFuenteTareaModel } from '../../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { AusenciaNovedadModel } from '../../../models/AusenciaNovedadModel';\nimport { DatosBasicosEmpresaModel } from '../../../models/DatosBasicosEmpresaModel';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { AusentismoService } from '../../../services/ausentismo.service';\nimport { DatosBasicosEmpresaCons } from '../../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent } from '../../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\nimport { EjecucionEncuestaComponent as EjecucionEncuestaComponent_1 } from '../../../../sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent as EjecucionAutorizacionComponent_1 } from '../../../../sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { Ripple } from 'primeng/ripple';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\n\n@Component({\n    selector: 'app-vacacion-ausencia-interrupcion',\n    templateUrl: './vacacion-ausencia-interrupcion.component.html',\n    styleUrls: ['./vacacion-ausencia-interrupcion.component.scss'],\n    standalone: true,\n    imports: [ConfirmDialogModule, PrimeTemplate, ButtonDirective, NgIf, CabeceraEmpleadoComponent, Ripple, CalendarModule, FormsModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, CheckboxModule, SplitButtonModule, EjecucionAutorizacionComponent_1, EjecucionEncuestaComponent_1, DatePipe, TranslateModule, NovedadPipe]\n})\nexport class VacacionAusenciaInterrupcionComponent implements OnInit {\n\n  public encuesta: boolean;\n  public procesoAutorizacion: boolean;\n  public bpmLegalizar: boolean;\n  public soyYo: boolean;\n  public controles: Map<string, boolean>;\n  public mapaEstados;\n  public form: string;\n\tpublic origenTarea: string;\n\tpublic seguimiento: boolean = false;\n  public listaInterrupcion: AusenciaNovedadModel[] = [];\n\n  public empleado: EmpleadoModel;\n  public novedad: AusenciaNovedadModel;\n  public nuevoRegistro: boolean ;\t\n  public clickGuardar: boolean = false;\n  public itemsBotonAcciones: MenuItem[];\n  @Output() public regresar = new EventEmitter;\n  @ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n\t@ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  constructor(private novedadPipe: NovedadPipe,\n              private authService: AuthService,\n              private generalPipe: GeneralPipe,\n              public utilsService: UtilsService,\n              private workFlowPipe: WorkflowPipe,\n              private generalService: GeneralService,\n              private ausentismosPipe: AusentismoPipe,\n              private translateService: TranslateService,\n              private notificacionesService: ToastService,\n              private ausentismoService: AusentismoService,\n              private confirmationService: ConfirmationService,\n              private saraAplicacionService: SaraAplicacionService,\n              private datosBasicosEmpresaPipe: DatosBasicosEmpresaCons,\n              public controlFuncionService: CargarControlFuncionalidadService) { }\n\n  ngOnInit(): void {\n    this.mapaEstados = this.novedadPipe.ESTADONOVEDAD;\n  }\n\n  public async buscar(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleadoDTO: EmpleadoModel)  {\n    this.empleado= empleadoDTO;\n    this.origenTarea = origenTarea;\n    this.form = form;\n    this.encuesta = false;\n    this.procesoAutorizacion=false;\n    this.bpmLegalizar = false;\n    if (novedad == null) {\n      this.nuevoRegistro=true;\n        novedad = new AusenciaNovedadModel();\n        novedad.estado=this.novedadPipe.NUEVA;\n        this.listaInterrupcion = [];\n        this.novedad = novedad;\n        this.novedad = this.formatearNovedad(this.novedad)\n    } else {\n      this.nuevoRegistro=false;\n      this.novedad = novedad;\n      this.novedad = this.formatearNovedad(this.novedad)\n      this.cargarListaInterrupcion();\n    }\n    await this.ControlBotones();\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  formatearNovedad(novedad:AusenciaNovedadModel): AusenciaNovedadModel{\n\t\tif (!novedad) {\n\t\t\treturn novedad;\n\t\t}\n\t\tnovedad.iniPeriodo = novedad.iniPeriodo ? new Date(novedad.iniPeriodo) : null;\n\t\tnovedad.finPeriodo = novedad.finPeriodo ? new Date(novedad.finPeriodo) : null;\n\t\tnovedad.salida = novedad.salida ? new Date(novedad.salida) : null;\n\t\tnovedad.salidaNomina = novedad.salidaNomina ? new Date(novedad.salidaNomina) : null;\n\t\tnovedad.termina = novedad.termina ? new Date(novedad.termina) : null;\n\t\tnovedad.regreso = novedad.regreso ? new Date(novedad.regreso) : null;\n\t\tnovedad.regresoNomina = novedad.regresoNomina ? new Date(novedad.regresoNomina) : null;\n\t\tnovedad.fechaOrigen = novedad.fechaOrigen ? new Date(novedad.fechaOrigen) : null;\n\t\tnovedad.fechaPago = novedad.fechaPago ? new Date(novedad.fechaPago) : null;\n\t\tnovedad.horaSalida = novedad.horaSalida ? new Date(novedad.horaSalida) : null;\n\t\tnovedad.horaRegresa = novedad.horaRegresa ? new Date(novedad.horaRegresa) : null;\n\t\tnovedad.recupera = novedad.recupera ? new Date(novedad.recupera) : null;\n\t\tnovedad.reinicio = novedad.reinicio ? new Date(novedad.reinicio) : null;\n\t\tnovedad.anticipoNomina = novedad.anticipoNomina ? new Date(novedad.anticipoNomina) : null;\n\t\tnovedad.fechaIngreso = novedad.fechaIngreso ? new Date(novedad.fechaIngreso) : null;\n\t\tnovedad.fechaAntiguedad = novedad.fechaAntiguedad ? new Date(novedad.fechaAntiguedad) : null;\n\t\tnovedad.fecha1 = novedad.fecha1 ? new Date(novedad.fecha1) : null;\n\t\tnovedad.fecha2 = novedad.fecha2 ? new Date(novedad.fecha2) : null;\n\t\tnovedad.hora1 = novedad.hora1 ? new Date(novedad.hora1) : null;\n\t\tnovedad.hora2 = novedad.hora2 ? new Date(novedad.hora2) : null;\n\t\tnovedad.fechaALegalizar = novedad.fechaALegalizar ? new Date(novedad.fechaALegalizar) : null;\n\t\tnovedad.fechaBloqueo = novedad.fechaBloqueo ? new Date(novedad.fechaBloqueo) : null;\n\t\treturn novedad;\n\t}\n  \n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string)  {\n      var actividad = new ActividadFuenteTareaModel();\n      actividad.llaveTabla = llaveActividad;\n      actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n\n      var ausencia = new AusenciaNovedadModel();\n      ausencia.llaveTabla = actividad.llaveTablaBase;\n      ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();\n      if ( ausencia == null ) { \n        this.notificacionesService.showError('Objeto no existe');\n      }\n\n      this.encuesta = true;\n      this.procesoAutorizacion=false;\n\n      await this.utilsService.sleep(30)\n      await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, ausencia);\n      \n      var empleado = new EmpleadoModel();\n      empleado.contrato = ausencia.contrato;\n      empleado.empresa = ausencia.empresa;\n      empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleado)).toPromise();\n\n      await this.buscarBPM(this.ausentismosPipe.ORIGEN_ACTIVIDAD_VACACION_INTERRUPCION, this.ausentismosPipe.FORM_ACTIVIDAD_INTERRUPCION, ausencia, empleado);\n  }\n\n  public async verAutorizacion(llaveActividad: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n  \n    var ausencia = new AusenciaNovedadModel();\n    ausencia.llaveTabla = actividad.llaveTablaBase;\n    ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();\n       if ( ausencia == null ) { \n      this.notificacionesService.showError('Objeto no existe');\n    }\n\n    this.encuesta = false;\n    this.procesoAutorizacion = true; \n    await this.utilsService.sleep(30)\n    this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOINTERRUPCION, ausencia);\n        \n    var empleado = new EmpleadoModel();\n    empleado.contrato = ausencia.contrato;\n    empleado.empresa = ausencia.empresa;\n    empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleado)).toPromise();\n\n    await this.buscarBPM(this.ausentismosPipe.ORIGEN_ACTIVIDAD_VACACION_INTERRUPCION, this.ausentismosPipe.FORM_ACTIVIDAD_INTERRUPCION, ausencia, empleado);\n  }\n\n  public async buscarBPM(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleadoDTO: EmpleadoModel)  {\n    this.origenTarea = origenTarea;\n    this.empleado= empleadoDTO;\n    this.bpmLegalizar = false;\n    if (novedad == null) {\n      this.nuevoRegistro=true;\n        novedad = new AusenciaNovedadModel();\n        novedad.estado=this.novedadPipe.NUEVA;\n        this.novedad = novedad;\n    } else {\n      this.nuevoRegistro=false;\n      this.novedad = novedad;\n    }\n    this.novedad = this.formatearNovedad(this.novedad)\n    await this.ControlBotones();\n  }\n\n  public async buscarLegalizacion(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleadoDTO: EmpleadoModel)  {\n    this.empleado= empleadoDTO;\n    this.encuesta = false;\n    this.procesoAutorizacion=false;\n    this.bpmLegalizar = true;\n    this.nuevoRegistro=false;\n    this.novedad = novedad;\n    await this.ControlBotones();\n  }\n\n  public async legalizarInterrupcion() {      \n    this.novedad = await this.ausentismoService.legalizarInterrupcion({llaveAusencia: this.novedad.llaveTabla, usuario: this.authService.getTokenKey('usuario'), empleado: this.empleado}).toPromise();\n    this.notificacionesService.showSuccess('Se legalizó la interrupción correctamente');\n    await this.ControlBotones();\n    this.regresarAction();\n  }\n  \npublic async nolegalizarInterrupcion() {\n  this.novedad = await this.ausentismoService.noLegalizarInterrupcion({ausencia: this.novedad, empleado: this.empleado}).toPromise();\n  this.notificacionesService.showSuccess('No se legalizó la interrupción correctamente');\n  await this.ControlBotones();\n  this.regresarAction();\n}\n\n  public regresarAction() {\n    this.regresar.emit();\n    /*if(this.ausentismosPipe.ORIGEN_EMPLEADO_INTERRUPCION.equals(origenTarea)){\n      ListadoVacacionAusenciaBean listadoVacacionAusenciaBean = Bean(ListadoVacacionAusenciaBean.class);\n      listadoVacacionAusenciaBean.TraerListado(this.empleado=());\n    }else if (this.ausentismosPipe.ORIGEN_ACTIVIDAD_VACACION_INTERRUPCION.equals(origenTarea)){\n      navegar(ReglaNavegacion());\n    }else if (this.ausentismosPipe.ORIGEN_APLICAR_NOVEDAD_VACACION_INTERRUPCION.equals(origenTarea)){\n      FacesUtils.ValorEL('listadoAplicarNovedadProcesoEmpleadoBean.mostrarListadoNovedades', null);\n    }*/\n  }\n\n  public validarSolicitud() {\n    var validador: boolean   = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.novedad.regreso)\n    validador = validador && this.utilsService.validarCampoObligatorio(this.novedad.termina)\n    return validador;\n  }\n\n  public async actualizarSolicitud(nuevo: boolean) {\n    this.clickGuardar = true;\n    if (!this.validarSolicitud()) {\n      this.notificacionesService.showError('Faltan campos obligatorios')\n      return\n    }\n    this.clickGuardar = false;\n    await this.actualizarSolicitudLogica(nuevo, this.authService.getTokenKey('usuario'), this.seguimiento);\n    \n    this.notificacionesService.showInfo('Se modificó exitosamente su solicitud');\n    if (this.seguimiento) {\n      //Bean(PopUpSeguimiento.class).buscar(this.novedad = ).llaveTabla = ));\n    } \n  }\n\n  public async actualizarSolicitudDirecto(nuevo: boolean) {\n    this.clickGuardar = true;\n    if (!this.validarSolicitud()) {\n      this.notificacionesService.showError('Faltan campos obligatorios')\n      return\n    }\n    this.clickGuardar = false;\n    await this.actualizarSolicitudDirectoLogica(nuevo, this.authService.getTokenKey('usuario'), this.authService.getTokenKey('informacionActiva'), this.seguimiento);\n    this.notificacionesService.showInfo('Se modificó exitosamente su solicitud');\n    if (this.seguimiento) {\n      //Bean(PopUpSeguimiento.class).buscar(this.novedad = ).llaveTabla = ));\n    }\n  }\n\n  public async solicitarInterrupcionDirecto() {\n    if (this.nuevoRegistro) {\n      await this.actualizarSolicitudDirecto(true);\n    } else {\n      await this.actualizarSolicitudDirecto(false);\n    }\n    await this.ControlBotones();\n  }\n\n  public async solicitarInterrupcion() {\n      \n    if (this.nuevoRegistro) {\n        await this.actualizarSolicitud(true);\n    } else {\n        await this.actualizarSolicitud(false);\n    }\n    await this.ControlBotones();\n  }\n\n  public async eliminarSolicitud() {\n    let data = await this.ausentismoService.eliminarAusentismoAusencia({novedad: this.novedad,  empleado: this.empleado, origen: 'T'}).toPromise();\n    this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n    this.regresarAction();\n  }\n  \n  public eliminarSolicitudDirecto(){\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      header: 'Confirmar',\n      key: 'eliminar',\n      acceptLabel: this.generalPipe.SI_DESC,\n      accept: async () => {\n        console.log(this.novedad.llaveTabla)\n        await this.ausentismoService.eliminarRegistroInterrupcion({llaveTabla: this.novedad.llaveTabla}).toPromise();\n        this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n        this.regresarAction();\n      }\n    })\n  }\n  \n  public async ControlBotones()  {\n      this.controles = new Map<string, boolean>();\n      var valor = '';\n      await this.validaCredencial();\n\n      if (this.authService.getTokenKey('tipoLogin') == 'U') {\n        this.controles.set('empRetirado', this.controlFuncionService.getControlFuncionalidad('vacint:empRetirado'));\n          if (this.novedad.estado != this.novedadPipe.LEGALIZADA) {\n             if(this.controlFuncionService.getControlFuncionalidad('vacint:guardar') != null && this.controlFuncionService.getControlFuncionalidad('vacint:guardar') == true){\n                  this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('vacint:guardar'));\n               }else{\n                this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('vacint:guardarLegalizar'));\n               }\n          }\n      } else {\n          if (this.novedad.estado == this.novedadPipe.SOLICITUD) {\n              if (this.soyYo) {\n                  this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('vacint:guardar_mio'));\n              } else {\n                  this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('vacint:guardar'));\n              }\n          }\n\n      }\n\n      if (this.soyYo) {\n        this.controles.set('eliminar', this.controlFuncionService.getControlFuncionalidad('vacint:eliminar_mio'));\n      } else {\n        this.controles.set('eliminar', this.controlFuncionService.getControlFuncionalidad('vacint:eliminar'));\n      }\n      this.controles.set('eliminarDirecto', this.controlFuncionService.getControlFuncionalidad('vacint:eliminarDirecto'));\n      \n      if (this.novedad.estado == this.novedadPipe.SOLICITUDINCONSISTENCIA || this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA\n              || this.novedad.estado == this.novedadPipe.NOAUTORIZADA || this.novedad.estado == this.novedadPipe.NUEVA) {\n          this.controles.set('guardarLegalizar', this.controlFuncionService.getControlFuncionalidad('vacint:guardarLegalizar'));\n          valor = 'guardar';\n      }\n\n  if (valor == '') {\n    var datosEmpresa = new DatosBasicosEmpresaModel();\n    datosEmpresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    datosEmpresa = await this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, datosEmpresa)).toPromise();\n    if (datosEmpresa.tipoInterrumpe == this.datosBasicosEmpresaPipe.DIRECTO) {\n      if (this.novedad.estado == this.novedadPipe.AUTORIZADA) {\n        valor = 'legalizar';\n  \n      }\n    } else {\n      if (this.novedad.estado == this.novedadPipe.AUTORIZADA && this.authService.getTokenKey('informacionActiva') == 'U') {\n        valor = 'crearacto';\n      }\n    }\n  \n  }\n  console.log(valor)\n  if (this.soyYo) {\n    this.controles.set(valor, this.controlFuncionService.getControlFuncionalidad('vacint:' + valor + '_mio'));\n  } else {\n    this.controles.set(valor, this.controlFuncionService.getControlFuncionalidad('vacint:' + valor));\n  }\n  this.cargarBotones();\n\n  }\n\n  public async cambiarDatos() {    \n    this.novedad.estado = this.novedadPipe.NUEVA ;\n    this.novedad.mensaje = null;\n    await this.ControlBotones();\n  }\n\n  public async validaCredencial() {\n    this.soyYo = await this.saraAplicacionService.isSoyYo(this.empleado.documento, this.authService.getTokenKey('informacionActiva'));\n  }\n  \n  public isEmpleadoActivo(){\n    if (this.empleado != null && this.empleado.estadoLaboral == null || this.empleado.estadoLaboralPeriodo == null) {\n        return false;\n      }\n      return this.empleado.estadoLaboral == this.empleado.estadoLaboralPeriodo;;\n  }\n\n\tpublic async actualizarSolicitudLogica(nuevo: boolean, usuario: string, seguimiento: boolean) {\n\t\tthis.novedad.solicita = await this.saraAplicacionService.getCedula();\n    this.novedad.contrato = this.empleado.contrato;\n    this.novedad.empresa = this.empleado.empresa;\n\t\tthis.novedad.tipoRegistro = 'PI';\n\t\tthis.novedad.origen = 'V';\n    try {\n      this.novedad = await this.ausentismoService.crearInterrupcion({ausencia: this.novedad, empleado: this.empleado, nuevo: nuevo, seguimiento: seguimiento}).toPromise();  \n      console.log('respuesta')\n      console.log(this.novedad)\n      await this.ControlBotones();\n    } catch (error) {\n      console.log(error)\n      console.log(this.novedad)\n      if (this.novedad.llaveTabla) {\n        this.novedad = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, {llaveTabla: this.novedad.llaveTabla})).toPromise()\n        console.log(this.novedad)\n        this.novedad = this.formatearNovedad(this.novedad)\n        if (this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA) {\n          await this.ausentismoService.eliminarRegistroInterrupcion({llaveTabla: this.novedad.llaveTabla}).toPromise();\n          this.nuevoRegistro=true;\n        } else {\n          this.cargarListaInterrupcion();\n          this.nuevoRegistro=false;\n        }\n      }\n    }\n    this.novedad = this.formatearNovedad(this.novedad)\n    if (this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA) {\n      await this.ausentismoService.eliminarRegistroInterrupcion({llaveTabla: this.novedad.llaveTabla}).toPromise();\n      this.nuevoRegistro=true;\n    } else {\n      this.cargarListaInterrupcion();\n      this.nuevoRegistro=false;\n    }\n\t}\n\t\n\tpublic async actualizarSolicitudDirectoLogica(nuevo: boolean, usuario: string, tipoRol: string, seguimiento: boolean) {\n\t\tthis.novedad.solicita = await this.saraAplicacionService.getCedula();\n    this.novedad.contrato = this.empleado.contrato;\n    this.novedad.empresa = this.empleado.empresa;\n\t\tthis.novedad.tipoRegistro = 'PI';\n\t\tthis.novedad.origen = 'V';\n\t\tthis.novedad.tipoRol = tipoRol;\n    this.novedad = await this.ausentismoService.crearInterrupcionDirecto({ausencia: this.novedad, empleado: this.empleado, nuevo: nuevo, seguimiento: seguimiento}).toPromise();\n    this.novedad = this.formatearNovedad(this.novedad)\n    if (this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA) {\n      await this.ausentismoService.eliminarRegistroInterrupcion({llaveTabla: this.novedad.llaveTabla}).toPromise();\n      this.nuevoRegistro=true;\n    } else {\n      this.cargarListaInterrupcion();\n      this.nuevoRegistro=false;\n    }\n    await this.ControlBotones();\n\t}\n\t\n\tpublic cargarListaInterrupcion() {\n\t\tvar ausenciaNovedadDTO=new AusenciaNovedadModel();\n\t\tausenciaNovedadDTO.programado = this.novedad.llaveTabla;\n\t\tausenciaNovedadDTO.tipoRegistro = 'VI';\n\t\tthis.generalService.queryForList(new GeneralModel('AusenciaNovedadDTO', null, false, ausenciaNovedadDTO)).subscribe(data => {\n      this.listaInterrupcion = data;\n    });\n\t}\n\n  public async elaborarActo(){\n\n  }\n\n  cargarBotones() {\n    this.itemsBotonAcciones = [\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_guardar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t  \tvisible: (this.novedad.estado == 'O' || this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA) && this.validarControl(this.controles.get('guardar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            await this.solicitarInterrupcion();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n      {\n\t\t\t\tlabel: this.translateService.instant('link_guardarlegalizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t  \tvisible: (this.novedad.estado == 'O' || this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA) && this.validarControl(this.controles.get('guardarLegalizar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            await this.solicitarInterrupcionDirecto();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n      {\n\t\t\t\tlabel: this.translateService.instant('link_legalizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-check\",\n\t\t\t  \tvisible: this.validarControl(this.controles.get('legalizar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            await this.legalizarInterrupcion();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n      {\n\t\t\t\tlabel: this.translateService.instant('elaboraracto'), \n\t\t\t  \ticon: \"glyphicons glyphicons-book\",\n\t\t\t  \tvisible: this.validarControl(this.controles.get('crearacto')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            await this.elaborarActo();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n      {\n\t\t\t\tlabel: this.translateService.instant('nolegalizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-remove\",\n\t\t\t  \tvisible: this.validarControl(this.controles.get('legalizar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            await this.nolegalizarInterrupcion();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n      {\n\t\t\t\tlabel: this.translateService.instant('link_cambiardato'), \n\t\t\t  \ticon: \"glyphicons glyphicons-random\",\n\t\t\t  \tvisible: this.novedad.estado != 'E' && this.novedad.estado != 'O' && this.novedad.estado != this.novedadPipe.PROGRAMADAINCONSISTENCIA && this.validarControl(this.controles.get('cambioDato')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            await this.cambiarDatos();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n      {\n\t\t\t\tlabel: this.translateService.instant('link_eliminar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-bin\",\n\t\t\t  \tvisible: !this.nuevoRegistro && this.validarControl(this.controles.get('eliminar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            await this.eliminarSolicitud();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n      {\n\t\t\t\tlabel: this.translateService.instant('link_eliminar') + ' ' + this.translateService.instant('directo'), \n\t\t\t  \ticon: \"glyphicons glyphicons-bin\",\n\t\t\t  \tvisible: !this.nuevoRegistro && this.validarControl(this.controles.get('eliminarDirecto')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t  \tcommand: async (event) => {\n            this.eliminarSolicitudDirecto();\n            await this.ControlBotones();\n\t\t\t\t}\n\t\t\t},\n    ]\n  }\n\n  public validarControl(control){\n    if (control === null || control === undefined) {\n      return false;\n    }\n    return control;\n\t}\n\n\n\n}\n","<p-confirmDialog #cd key=\"eliminar\">\n    <ng-template pTemplate=\"footer\">\n        <div class=\"mt-3\">\n            <button type=\"button\"\n                class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\" pButton\n                icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n            <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                (click)=\"cd.accept()\"></button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n<app-cabecera-empleado [empleado]=\"empleado\" *ngIf=\"empleado != null && (origenTarea == 'APLICAR_NOVEDAD_VACACION_INTERRUPCION' || origenTarea == 'ACTIVIDAD_INTERRUPCION_VACACION')\"></app-cabecera-empleado>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n    <h1 class=\"text-xl mb-1\">{{'interrupcion' | translate}}</h1>\n    <button pButton pRipple (click)=\"regresarAction()\" label= \"{{'listado' | translate}} {{'interrupcion' | translate}}\" \n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n</div>\n<div class=\"card\" *ngIf=\"novedad\">\n    <div class=\"p-fluid p-formgrid grid mt-2\">\n        <!-- Detalle -->\n        <!-- Regreso -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.regreso\" dateFormat=\"dd/mm/yy\" \n                    [class]=\"!utilsService.validarCampoObligatorio(novedad.regreso) && clickGuardar  ? 'ng-invalid ng-dirty' : ''\"\n                    [showIcon]=\"true\" [disabled]=\"(novedad.estado != 'O' && novedad.estado != 'I') || encuesta || procesoAutorizacion || !validarControl(controles.get('guardar'))\" ></p-calendar>\n                <label>{{'regreso' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Termina -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.termina\" dateFormat=\"dd/mm/yy\" \n                    [class]=\"!utilsService.validarCampoObligatorio(novedad.termina) && clickGuardar  ? 'ng-invalid ng-dirty' : ''\"\n                    [showIcon]=\"true\" [disabled]=\"(novedad.estado != 'O' && novedad.estado != 'I') || encuesta || procesoAutorizacion || !validarControl(controles.get('guardar'))\" ></p-calendar>\n                <label>{{'termina' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Observacion -->\n        <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n            <span class=\"p-float-label\">\n                <textarea pInputTextarea [(ngModel)]=\"novedad.observacion\" class=\"w-full min-h-100 max-h-250\"\n                    [disabled]=\"(novedad.estado != 'O' && novedad.estado != 'I') || encuesta || procesoAutorizacion || !(validarControl(controles.get('guardar')) || validarControl(controles.get('guardarLegalizar')))\"> </textarea>\n                <label>{{'observacion' | translate}}</label>\n            </span>\n        </div>\n        <!-- Estado -->\n        <div class=\"field col-12 md:col-1 lg:col-1\">\n            <label>{{'estado' | translate}}</label>\n        </div>\n        <div class=\"field col-11 md:col-11 lg:col-11\">\n            <h5>{{novedad.estado | novedadPipe : 'listaEstado'}}</h5>\n        </div>\n        <!-- Mensaje -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"novedad.mensaje != null\">\n            <span class=\"p-float-label\">\n                <textarea pInputTextarea [(ngModel)]=\"novedad.mensaje\" rows=\"5\" cols=\"30\" [disabled]=\"true\" class=\"w-full min-h-100 max-h-250\">\n                </textarea>\n                <label>{{'mensaje' | translate}}</label>\n            </span>\n        </div>\n    </div>\n</div>\n\n<p-table #tablalistaInterrupcion responsiveLayout=\"scroll\" [value]=\"listaInterrupcion\" [rows]=\"5\"\n    [totalRecords]=\"listaInterrupcion.length\" [paginator]=\"listaInterrupcion.length > 5\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n\n        <tr class=\"fondoTablaPincipal\">\n            <th>{{'periodo' | translate}} {{'servicio' | translate}} {{'pendiente' | translate}}</th>\n            <th>{{'regreso' | translate}}</th>\n            <th>{{'termina' | translate}}</th>\n            <th>{{'dias' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-bean>\n        <tr>\n            <td>\n                <label>{{bean.iniPeriodo | date : ( 'formatofecha' | translate)}}</label>\n                <label> - </label>\n                <label>{{bean.finPeriodo | date : ( 'formatofecha' | translate)}}</label>\n            </td>\n            <td>\n                <label>{{bean.regreso | date : ('formatofecha' | translate)}}</label>\n            </td>\n            <td>\n                <label>{{bean.termina | date : ('formatofecha' | translate)}}</label>\n            </td>\n            <td>\n                <label>{{bean.diasPendiente}}</label>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n<!--pte encuestas bpm-->\n<div class=\"flex justify-content-end mt-3 mb-2\">\n    <div class=\"flex justify-content-end\">\n        <div class=\"flex gap-1\" *ngIf=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento')\">\n            <p-checkbox class=\"ml-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n            <label style=\"margin: 3px 8px;\"> {{'seguimiento' | translate}}</label>\n        </div>\n    </div>\n</div>\n<div class=\"flex justify-content-end mt-3\">\n    <div class=\"flex justify-content-end \" >\n        <div class=\"splitbuttonOscuro\">\n            <!--CRUD BOTONES-->\n            <p-splitButton label=\"Acciones interrupción\" icon=\"glyphicons glyphicons-list\"\n                [model]=\"itemsBotonAcciones\"></p-splitButton>\n        </div>\n    </div>\n</div>\n\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"regresarAction()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarAction()\"></app-ejecucion-encuesta>\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\nimport { Constantes } from \"../../../shared/constantes/Constantes\";\n\n@Pipe({\n    name: 'ausentismosConsPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AusentismoPipe implements PipeTransform {\n\n    CHEQUE = \"C\";\n    ENTIDADAPAGO = \"E\";\n    PAGONOMINA = Constantes.CONSTANTE_NO;\n\n    DESCCHEQUE = \"Cheque\";\n    DESCENTIDADAPAGO = \"Entidad de Pago\";\n    DESCPAGONOMINA = \"Periodo de Nomina\";\n\n    PASIVO = \"PA\";\n\n    COMPENSADA = \"C\";\n    AUSENTISMO = \"A\";\n    VACACION = \"V\";\n    INCAPACIDAD = \"I\";\n    LICENCIA = \"L\";\n    TERMINARCONTRATO = \"T\";\n\n    DESCVACACION = \"Vacacion\";\n    DESCINCAPACIDAD = \"Incapacidad\";\n    DESCLICENCIA = \"Licencia\";\n    DESTERMINARCONTRATO = \"TERMINACION CONTRATO\";\n\n    INTERRUPCION = \"I\";\n    DESCINTERRUPCION = \"Interrupci\\u00F3n\";\n\n    SI = Constantes.CONSTANTE_SI;\n    NO = Constantes.CONSTANTE_NO;\n\n    DESCSI = \"SI\";\n    DESCNO = \"NO\";\n    DESCNO_APLICA = \"No Aplica\";\n\n    TIPOHISTORICO = [\n        { codigo: this.COMPENSADA, nombre: 'COMPENSADA' },\n        { codigo: this.AUSENTISMO, nombre: 'AUSENTISMO' },\n    ]\n\n    FORMAPAGO = [\n        { codigo: this.CHEQUE, nombre: this.DESCCHEQUE },\n        { codigo: this.ENTIDADAPAGO, nombre: this.DESCENTIDADAPAGO },\n        { codigo: this.PAGONOMINA, nombre: this.DESCPAGONOMINA },\n    ]\n\n    ORIGENPASIVO = [\n        { codigo: this.INTERRUPCION, nombre: this.DESCINTERRUPCION },\n        { codigo: this.NO, nombre: this.DESCNO_APLICA },\n    ]\n\n    TIPOINTERRUPCION = [\n        { codigo: this.SI, nombre: this.DESCINTERRUPCION },\n        { codigo: this.NO, nombre: this.DESCNO_APLICA },\n    ]\n\n    MAPA_PASIVO = [\n        { codigo: this.SI, nombre: this.DESCSI },\n        { codigo: this.NO, nombre: this.DESCNO },\n    ]\n\n    ORIGENAUSENCIA = [\n        { codigo: this.VACACION, nombre: this.DESCVACACION },\n        { codigo: this.INCAPACIDAD, nombre: this.DESCINCAPACIDAD },\n        { codigo: this.LICENCIA, nombre: this.DESCLICENCIA },\n        { codigo: this.TERMINARCONTRATO, nombre: this.DESTERMINARCONTRATO },\n        \n    ]\n\n    AUSENCIAS = \"L\";\n\n\tINCAPACIDAD_DESC = \"Incapacidad\";\n\tAUSENCIAS_DESC = \"Ausencias\";\n\tAUSENCIA_DESC = \"Ausencia\";\n\tCOMPENSACION_DESC = \"Compensacion\";\n\tMODO_COMPENSACION_DESC = \"ModoCompensacion\";\n\n    mapaAusentismoAusencia = [\n        { codigo: this.INCAPACIDAD, nombre: this.INCAPACIDAD_DESC },\n        { codigo: this.AUSENCIAS, nombre: this.AUSENCIA_DESC },\n    ]\n\n\n    CODIGO_DIAGNOSTICO = \"codigodiagnostico\";\n\tLISTA_DIAGNOSTICO = \"listadiagnostico\";\n\tHORA_SALIDA = \"horasalida\";\n\tHORA_REGRESA = \"horaregresa\";\n\tCADENA1 = \"cadena1\";\n\tCADENA2 = \"cadena2\";\n\tCADENA3 = \"cadena3\";\n\tVALOR3 = \"valor3\";\n\tVALOR4 = \"valor4\";\n\tFECHA1 = \"fecha1\";\n\tFECHA2 = \"fecha2\";\n\tHORA1 = \"hora1\";\n\tHORA2 = \"hora2\";\n\tAREA1 = \"area1\";\n\tDIAS_AUSENTISMO = \"diasausentismo\";\n\tHORAS_ADICIONALES = \"horasadicionales\";\n\tOBSERVACION = \"observacion\";\n\tINDICADORPRORROGA = \"prorroga\";\n\n    mapaAusentismoCampos = [\n        { codigo: this.CODIGO_DIAGNOSTICO, nombre: this.CODIGO_DIAGNOSTICO },\n        { codigo: this.LISTA_DIAGNOSTICO, nombre: this.LISTA_DIAGNOSTICO },\n        { codigo: this.HORA_SALIDA, nombre: this.HORA_SALIDA },\n        { codigo: this.HORA_REGRESA, nombre: this.HORA_REGRESA },\n        { codigo: this.CADENA1, nombre: this.CADENA1 },\n        { codigo: this.CADENA2, nombre: this.CADENA2 },\n        { codigo: this.CADENA3, nombre: this.CADENA3 },\n        { codigo: this.VALOR3, nombre: this.VALOR3 },\n        { codigo: this.VALOR4, nombre: this.VALOR4 },\n        { codigo: this.FECHA1, nombre: this.FECHA1 },\n        { codigo: this.FECHA2, nombre: this.FECHA2 },\n        { codigo: this.HORA1, nombre: this.HORA1 },\n        { codigo: this.HORA2, nombre: this.HORA2 },\n        { codigo: this.AREA1, nombre: this.AREA1 },\n        { codigo: this.DIAS_AUSENTISMO, nombre: this.DIAS_AUSENTISMO },\n        { codigo: this.HORAS_ADICIONALES, nombre: this.HORAS_ADICIONALES },\n        { codigo: this.OBSERVACION, nombre: this.OBSERVACION },\n        { codigo: this.INDICADORPRORROGA, nombre: this.INDICADORPRORROGA },\n    ]\n\n    ORIGEN_AUSENTISMOS = [\n        { codigo: this.VACACION, nombre: this.DESCVACACION },\n        { codigo: this.INCAPACIDAD, nombre: this.DESCINCAPACIDAD },\n        { codigo: this.LICENCIA, nombre: this.DESCLICENCIA },\n    ]\n\n    VACACION_CERRADA = \"CE\";\n\tVACACION_NO_CERRADA = \"NC\";\n\t\n\tVACACION_CERRADA_DESC = \"Cerrada\";\n\tVACACION_NO_CERRADA_DESC = \"No Cerrada\";\n\n    MAP_VACACION_TIPOCIERRE = [\n        { codigo: this.VACACION_CERRADA, nombre: this.VACACION_CERRADA_DESC },\n        { codigo: this.VACACION_NO_CERRADA, nombre: this.VACACION_NO_CERRADA_DESC },\n    ]\n\n    DETALLE_MANTENIMIENTO_VACACION = \"DETALLE_MANTENIMIENTO_VACACION\";\n\tMANTENIMIENTO_VACACION = \"MANTENIMIENTO_VACACION\";\n\t\n\tORIGEN_EMPLEADO_VACACION = \"listadoVacacionAusenciaBean.mostrarListadoHistorico\";\n\tORIGEN_APLICAR_NOVEDAD_VACACION = \"APLICAR_NOVEDAD_VACACION\";\n\tORIGEN_ACTIVIDAD_VACACION = \"ACTIVIDAD_VACACION\";\n\t\n\tORIGEN_EMPLEADO_INTERRUPCION = \"VACACION_INTERRUPCION_EMPLEADO\";\n\tORIGEN_ACTIVIDAD_VACACION_INTERRUPCION = \"ACTIVIDAD_INTERRUPCION_VACACION\";\n\tORIGEN_APLICAR_NOVEDAD_VACACION_INTERRUPCION  = \"APLICAR_NOVEDAD_VACACION_INTERRUPCION\";\n\tORIGEN_POPUP_HIST_VACACION  = \"popupDetalleVacacionHistoricoBean.cerrarPopup\";\n\t\n\tFORM_ACTIVIDAD_INTERRUPCION = \"form_actividadInterrupcionVacacionEmpleado:\";\n\t\n\tFORM_EMPLEADO_VACACION = \"form_vacacionesEmpleado:tabsVacaciones:\";\n\tFORM_EMPLEADO_VACACION_HISTORICO = \"form_vacacionesEmpleado:\";\n\tFORM_APLICAR_NOV_EMPLEADO_VACACION = \"aplicaNovedadProceso:\";\n\tFORM_ACTIVIDAD_VACACION = \"form_actividadVacacionEmpleado:\";\n\tFORM_POPUP_HISTORICO_VACACIONES= \"form_detalleHistoricoVacaciones:\";\n\tFORM_EMPLEADO_VACACION_INTERRUPCION=\"form_vacacionesEmpleado:regresoInterrupcion\";\n\t\n\tFORM_EMPLEADO_LICENCIA = \"form_licenciaEmpleado:tabsLicencias:panelLicencia:\";\t\n\tFORM_EMPLEADO_PASIVO_LICENCIA = \"form_licenciaEmpleado:\";\n\tFORM_EMPLEADO_LICENCIA_HISTORICO = \"form_licenciaEmpleado:\";\t\n\tFORM_APLICAR_NOV_EMPLEADO_LICENCIA = \"aplicaNovedadProceso:\";\n\tFORM_ACTIVIDAD_LICENCIA = \"form_actividadLicenciaEmpleado:\";\n\tFORM_POPUP_HISTORICO_LICENCIA= \"form_detalleHistoricoLicencias:\";\n\t\n\t\n\tORIGEN_EMPLEADO_LICENCIA = \"LICENCIA_EMPLEADO\";\n\tORIGEN_APLICAR_NOVEDAD_LICENCIA = \"APLICAR_NOVEDAD_LICENCIA\";\n\tORIGEN_ACTIVIDAD_LICENCIA = \"ACTIVIDAD_LICENCIA\";\n\tORIGEN_POPUP_HIST_LICENCIA  = \"ORIGEN_POPUP_HIST_LICENCIA\";\n\t\n\tORIGEN_EMPLEADO_INCAPACIDAD = \"INCAPACIDAD_EMPLEADO\";\n\tORIGEN_POPUP_HIST_INCAPACIDAD = \"ORIGEN_POPUP_HIST_INCAPACIDAD\";\n\tORIGEN_APLICAR_NOVEDAD_INCAPACIDAD = \"APLICAR_NOVEDAD_INCAPACIDAD\";\n\tORIGEN_ACTIVIDAD_INCAPACIDAD = \"ACTIVIDAD_INCAPACIDAD\";\n\t\n\tFORM_EMPLEADO_INCAPACIDAD = \"form_incapacidadesEmpleado:\";\n\tFORM_POPUP_HISTORICO_INCAPACIDAD= \"form_detalleHistoricoIncapacidades:\";\n\tFORM_EMPLEADO_INCAPACIDAD_HISTORICO = \"form_incapacidadesEmpleado:\";\t\n\tFORM_APLICAR_NOV_EMPLEADO_INCAPACIDAD = \"aplicaNovedadProceso:\";\n\tFORM_ACTIVIDAD_INCAPACIDAD = \"form_actividadIncapacidadEmpleado:\";\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listaFormaPago') { this.FORMAPAGO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaEstado') { this.MAP_VACACION_TIPOCIERRE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        // if (args[0] == 'listaEstadoProyecto') { this.LISTAESTADOPROYECTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        // if (args[0] == 'listaReportesPlanilla') { this.TIPOS_TEPORTES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        // if (args[0] == 'listaNominaTipo') { this.LISTA_NOMINA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n}","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { AusenciaNovedadModel } from '../../models/AusenciaNovedadModel';\nimport { AusenciaModel } from '../../models/AusenciaModel';\nimport { EmpleadoModel } from '../../models/EmpleadoModel';\nimport { AusentismoPipe } from '../../pipes/ausentismo.pipe';\nimport { NovedadPipe } from '../../pipes/novedad.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AusentismoService } from '../../services/ausentismo.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { DatosBasicosEmpresaModel } from '../../models/DatosBasicosEmpresaModel';\nimport { DatosBasicosEmpresaCons } from '../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { PopupSeguimientoComponent } from '../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { ActividadFuenteTareaModel } from '../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { EjecucionAutorizacionComponent } from '../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { EjecucionEncuestaComponent } from '../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { WorkflowPipe } from '../../../../shared/pipes/workflow.pipe';\nimport { EjecucionEncuestaComponent as EjecucionEncuestaComponent_1 } from '../../../sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent as EjecucionAutorizacionComponent_1 } from '../../../sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { CabeceraEmpleadoComponent } from '../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { FieldsetModule } from 'primeng/fieldset';\n\n@Component({\n    selector: 'app-vacacion-ausencia-programadas',\n    templateUrl: './vacacion-ausencia-programadas.component.html',\n    styleUrls: ['./vacacion-ausencia-programadas.component.scss'],\n    standalone: true,\n    imports: [ConfirmDialogModule, PrimeTemplate, ButtonDirective, NgIf, CabeceraEmpleadoComponent, Ripple, DropdownModule, FormsModule, CalendarModule, InputNumberModule, TableModule, TemplateTablaVaciaComponent, InputTextareaModule, InputTextModule, CheckboxModule, SplitButtonModule, EjecucionAutorizacionComponent_1, EjecucionEncuestaComponent_1, PopupSeguimientoComponent, DatePipe, TranslateModule, FieldsetModule]\n})\nexport class VacacionAusenciaProgramadasComponent implements OnInit {\n\n\tpublic encuesta: boolean;\n\tpublic procesoAutorizacion: boolean;\n\tpublic bpmLegalizar: boolean;\n\tpublic soyYo: boolean;\n\tpublic estadoNovedad: string;\n\tpublic origenTarea: string;\n\tpublic form: string;\n\tpublic controles: Map<string, boolean> = new Map<string, boolean>() ;\n\tpublic mapaEstados: any[];\n\tpublic deshabilitarTipoAusencia: boolean;\n\n  //\n  \n\tpublic listaPasivoRegistro: AusenciaNovedadModel[];\n\tpublic listaPasivoGeneral: AusenciaNovedadModel[] = [];\n\tpublic listaPasivo: AusenciaNovedadModel[];\n\tpublic listaProgramadas: AusenciaNovedadModel[];\n\tpublic listahistorico: AusenciaModel[] = [];\n\n\tpublic listaTipoVacacionAusencia: any[];\n\n\tpublic empleado: EmpleadoModel;\n\tpublic novedad: AusenciaNovedadModel = new AusenciaNovedadModel;\n\n\tpublic disfruteNormales: number;\n\tpublic disfruteCompensados: number;\n\tpublic interrupcionNormales: number;\n\tpublic interrupcionCompensados: number;\n\n\tpublic total: boolean;\n\tpublic tipo: boolean;\n\tpublic registro: boolean;\n\tpublic unico: boolean;\n\tpublic nuevoRegistro: boolean;\n\tpublic unicoRegistro: boolean = false;\n\n\tpublic listaFormaPago: any[];\n\tpublic mapaOrigenPasivo: any[];\n\n\tpublic verProcesoVerificar: boolean;\n\tpublic verCambiarDatosVerificacion: boolean;\n\tpublic deshabilitaCamposVerificar: boolean;\n\tpublic solicita: number;\n\tpublic seguimiento: boolean = false;\n\n\tpublic datosEmpresa: DatosBasicosEmpresaModel;\n\t@Output() public regresar = new EventEmitter;\n\tpublic clickGuardar: boolean = false;\n\tpublic clickGuardarLegalizar: boolean = false;\n\tpublic mostrarPopupSeguimiento: boolean;\n    public llaveSeguimiento: string;\n\tpublic menuAcciones: MenuItem[];\n\t@ViewChild(PopupSeguimientoComponent) popupSeguimiento: PopupSeguimientoComponent;\n\t@ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n\t@ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  \tconstructor(private ausentismoPipe: AusentismoPipe,\n\t\t\t\tprivate translateService: TranslateService,\n\t\t\t\tprivate generalPipe: GeneralPipe,\n\t\t\t\tprivate novedadPipe: NovedadPipe,\n\t\t\t\tprivate authService: AuthService,\n\t\t\t\tpublic utilsService: UtilsService,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tpublic controlFuncionService: CargarControlFuncionalidadService,\n\t\t\t\tprivate datosBasicosEmpresaPipe: DatosBasicosEmpresaCons,\n\t\t\t\tprivate confirmationService: ConfirmationService,\n\t\t\t  \tprivate generalService: GeneralService,\n\t\t\t\tprivate workFlowPipe: WorkflowPipe,\n\t\t\t  \tprivate ausentismoService: AusentismoService,) { }\n\n\tngOnInit(): void {\n\t\tthis.listaFormaPago = this.ausentismoPipe.FORMAPAGO;\n\t\tthis.mapaOrigenPasivo = this.ausentismoPipe.ORIGENPASIVO;\n\t\tthis.mapaEstados = this.novedadPipe.ESTADONOVEDAD;\n\t\tthis.deshabilitarTipoAusencia = false;\n\t}\n\n\tasync buscar(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleadoDTO: EmpleadoModel, unicoRegistro?: boolean) {\n\t\tnovedad = this.formatearNovedad(novedad);\n\t\tthis.empleado = empleadoDTO;\n\t\tthis.form = form;\n\t\tthis.origenTarea = origenTarea;\n\t\tthis.unicoRegistro = unicoRegistro;\n\t\tthis.limpiarDias();\n\t\tthis.encuesta = false;\n\t\tthis.bpmLegalizar = false;\n\t\tthis.verProcesoVerificar = false;\n\t\tthis.datosEmpresa = new DatosBasicosEmpresaModel();\n\t\tthis.datosEmpresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tthis.datosEmpresa = await this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, this.datosEmpresa)).toPromise();\n\t\t\t\n\t\tif (novedad == null || this.utilsService.isBlank(novedad.llaveTabla)) {\n\t\t\tthis.nuevoRegistro = true;\n\t\t\tif(novedad == null || novedad == undefined){\n\t\t\t\tnovedad = new AusenciaNovedadModel();\n\t\t\t}else{\n\t\t\t\tthis.deshabilitarTipoAusencia = true;\n\t\t\t}\n\t\t\tnovedad.estado = this.novedadPipe.NUEVA;\n\t\t\tthis.novedad = novedad;\n\t\t\tthis.verCambiarDatosVerificacion = false;\n\t\t\tthis.deshabilitaCamposVerificar = false;\n\t\t\tif(this.isControlProcesoVerificar()){\n\t\t\t\tthis.verProcesoVerificar = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.nuevoRegistro = false;\n\t\t\tthis.novedad = novedad;\n\t\t}\n\t\tconsole.log(this.nuevoRegistro)\n\t\tawait this.cargarRegistros();\n\t\tthis.ControlBotones();\n\t\tthis.utilsService.resizeWindowIFrame()\n\t}\n\n\tControlBotones() {\n\t\tconsole.log('debug controlbotones');\n\t\tthis.controles = new Map<string, boolean>();\n\t\tvar valor: string = '';\n\t\t//validaCredencial();\n\n\t\tif (this.novedad.estado == this.novedadPipe.ACTOELABORADA) {\n\t\t\treturn;\n\t\t}\n\t\tthis.controles.set(\"empRetirado\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:empRetirado\"));\n\t\tthis.controles.set(\"periodoCerrado\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:periodoCerrado\"));\n\t\tif (this.isFuncional()) {\n\t\t\tif (this.novedad.estado == this.novedadPipe.SOLICITUD || this.novedad.estado == this.novedadPipe.AUTORIZADA\n\t\t\t\t\t|| this.novedad.estado == this.novedadPipe.SOLICITUDINCONSISTENCIA\n\t\t\t\t\t|| this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA || this.novedad.estado == this.novedadPipe.VERIFICADA) {\n\t\t\t\tif (this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardar\") != null && this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardar\") == true) {\n\t\t\t\t\tthis.controles.set(\"cambioDato\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardar\"));\n\t\t\t\t} else {\n\t\t\t\t\tthis.controles.set(\"cambioDato\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardarLegalizar\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.controles.set(\"fechaAnticipo\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:fechaAnticipo\"));\n\t\t} else {\n\t\t\tif (this.novedad.estado == this.novedadPipe.SOLICITUD || \n\t\t\t\t\tthis.novedad.estado == this.novedadPipe.SOLICITUDINCONSISTENCIA || \n\t\t\t\t\tthis.novedad.estado == this.novedadPipe.AUTORIZADA || \n\t\t\t\t\tthis.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA || \n\t\t\t\t\tthis.novedad.estado == this.novedadPipe.VERIFICADA) {\n\t\t\t\tif (this.soyYo) {\n\t\t\t\t\tthis.controles.set(\"cambioDato\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardar_mio\"));\n\t\t\t\t} else {\n\t\t\t\t\tthis.controles.set(\"cambioDato\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardar\"));\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tthis.controles.set(\"eliminarDirecto\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:eliminarDirecto\"));\n\t\tif (this.soyYo) {\n\t\t\tthis.controles.set(\"eliminar\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:eliminar_mio\"));\n\t\t} else {\n\t\t\tthis.controles.set(\"eliminar\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:eliminar\"));\n\t\t}\n\n\t\tif (this.novedad.estado == this.novedadPipe.SOLICITUDINCONSISTENCIA || this.novedad.estado == this.novedadPipe.NOAUTORIZADA\n\t\t\t\t|| this.novedad.estado == this.novedadPipe.NUEVA) {\n\t\t\tthis.controles.set(\"guardarLegalizar\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardarLegalizar\"));\n\t\t\tthis.deshabilitaCamposVerificar = false;\n\t\t\tvalor = \"guardar\";\n\t\t}else if(this.isControlProcesoVerificar() && !this.verProcesoVerificar && this.novedad.estado == this.novedadPipe.VERIFICADA){\n\t\t\tthis.deshabilitaCamposVerificar = true;\n\t\t\tthis.controles.set(\"guardarLegalizar\", this.controlFuncionService.getControlFuncionalidad(\"vacsol:guardarLegalizar\"));\n\t\t\tvalor = \"guardar\";\n\t\t}\n\t\tconsole.log('valor ' + valor)\n\t\tconsole.log(this.datosEmpresa.tipoVacaciones )\n\t\tif (this.utilsService.isBlank(valor)) {\n\t\t\tif (this.datosEmpresa.tipoVacaciones == this.datosBasicosEmpresaPipe.DIRECTO) {\n\t\t\t\tif (this.novedad.estado == this.novedadPipe.AUTORIZADA) {\n\t\t\t\t\tvalor = \"legalizar\";\n\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.novedad.estado == this.novedadPipe.AUTORIZADA) {\n\t\t\t\t\tvalor = \"crearacto\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.soyYo) {\n\t\t\tthis.controles.set(valor, this.controlFuncionService.getControlFuncionalidad(\"vacsol:\" + valor + \"_mio\"));\n\t\t} else {\n\t\t\tthis.controles.set(valor, this.controlFuncionService.getControlFuncionalidad(\"vacsol:\" + valor));\n\t\t}\n\t\tconsole.log(this.controles)\n\t\tthis.cargarAccionBotones();\n\t}\n\n\tcargarAccionBotones(){\n\t\tif (this.nuevoRegistro && this.verProcesoVerificar && !this.isProcesoBPM()) {\n\t\t\tthis.menuAcciones = [\n\t\t\t\t//<!-- VERIFICAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('verificar'), icon: \"glyphicons glyphicons-check\",\n\t\t\t\t\tvisible: (this.validarControl(this.controles.get('guardar')) || this.validarControl(this.controles.get('guardarLegalizar'))) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))) && !this.verCambiarDatosVerificacion,\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.procesoVerificar();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!-- CAMBIAR DATO VERIFICACION -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_cambiardato'), icon: \"glyphicons glyphicons-random\",\n\t\t\t\t\tvisible:(this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))) && this.validarControl(this.controles.get('periodoCerrado')) && this.verCambiarDatosVerificacion,\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.cambiarDatosVerificacion();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!-- GUARDAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('permitir'), icon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t\t\tvisible: (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))) && this.verCambiarDatosVerificacion && this.isPeriodoCerrado(),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.permitirVacaciones();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!-- GUARDAR LEGALIZAR PERMITIR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('permitir') + ' ' + this.translateService.instant('link_legalizar'), icon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t\t\tvisible: (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))) && this.verCambiarDatosVerificacion && this.isPeriodoCerrado() && this.validarControl(this.controles.get('guardarLegalizar')),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.solicitarLegalizarPermitir();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\t\tif (!this.isProcesoBPM() && !this.verProcesoVerificar) {\n\t\t\tthis.menuAcciones = [\n\t\t\t\t//<!-- GUARDAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_guardar'), icon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t\t\tvisible: this.validarControl(this.controles.get('guardar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.solicitarVacaciones();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!-- GUARDAR LEGALIZAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_guardarlegalizar'), icon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t\t\tvisible: this.validarControl(this.controles.get('guardarLegalizar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.solicitarLegalizarVacacion();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!-- LEGALIZAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_legalizar'), icon: \"glyphicons glyphicons-check\",\n\t\t\t\t\tvisible: this.validarControl(this.controles.get('legalizar')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.legalizarVacaciones();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!--NO LEGALIZAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('nolegalizar'), icon: \"glyphicons glyphicons-remove\",\n\t\t\t\t\tvisible: (this.validarControl(this.controles.get('legalizar')) || this.validarControl(this.controles.get('crearacto'))) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.noLegalizarVacaciones();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!--ELABORAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_elaborar'), icon: \"glyphicons glyphicons-book\",\n\t\t\t\t\tvisible: this.validarControl(this.controles.get('crearacto')) && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.elaborarActo();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!--CAMBIAR DATO -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_cambiardato'), icon: \"glyphicons glyphicons-random\",\n\t\t\t\t\tvisible: (((this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))) && this.isVerBtnCambiarDatos()) || this.isControlProcesoVerificar) && this.validarControl(this.controles.get('cambioDato')),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.cambiarDatos();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!--ELIMINAR -->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_eliminar'), icon: \"glyphicons glyphicons-bin\",\n\t\t\t\t\tvisible: this.validarControl(this.controles.get('eliminar')) && !this.nuevoRegistro && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.eliminarSolicitud();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t//<!--ELIMINAR DIRECTO-->\n\t\t\t\t{\n\t\t\t\t\tlabel: this.translateService.instant('link_eliminar') + ' ' + this.translateService.instant('directo'), icon: \"glyphicons glyphicons-bin\",\n\t\t\t\t\tvisible: this.validarControl(this.controles.get('eliminarDirecto')) && !this.nuevoRegistro && (this.isEmpleadoActivo() || this.validarControl(this.controles.get('empRetirado'))),\n\t\t\t\t\tcommand: (event) => {\n\t\t\t\t\t\tthis.eliminarSolicitudDirecto();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t]\t\n\t\t}\n\t}\n\n\tprivate validarControl(control){\n\t\tif (control === null || control === undefined) {\n\t\t\treturn false;\n\t\t}\n\t\treturn control;\n\t}\n\t\n\tasync cargarRegistros() {\n\t\tawait this.llenarPasivo();\n\t\tawait this.cargarTipo();\n\t}\n\n\tasync cargarTipo() {\n\t\tthis.total = false;\n\t\tthis.tipo = false;\n\t\tthis.registro = false;\n\t\tif (this.datosEmpresa  != null) {\n\t\t\tif (this.datosEmpresa.formaVaciones != null) {\n\t\t\t\tif (this.datosEmpresa.formaVaciones == this.datosBasicosEmpresaPipe.TOTAL) {\n\t\t\t\t\tthis.total = true;\n\t\t\t\t\tthis.tipo = false;\n\t\t\t\t\tthis.registro = false;\n\t\t\t\t\tthis.unico = false;\n\t\t\t\t} else if (this.datosEmpresa.formaVaciones == this.datosBasicosEmpresaPipe.POR_CADA_REGISTRO_AUSENTISMO) {\n\t\t\t\t\tthis.total = false;\n\t\t\t\t\tthis.tipo = true;\n\t\t\t\t\tthis.registro = false;\n\t\t\t\t\tthis.unico = false;\n\t\t\t\t} else if (this.datosEmpresa.formaVaciones == this.datosBasicosEmpresaPipe.POR_CADA_TIPO_AUSENTISMO) {\n\t\t\t\t\tthis.total = false;\n\t\t\t\t\tthis.tipo = false;\n\t\t\t\t\tthis.registro = true;\n\t\t\t\t\tthis.unico = false;\n\t\t\t\t\tawait this.cargarListaRegistro();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tasync cargarListaRegistro() {\n\t\tthis.listaPasivoRegistro = [];\n\t\tvar entro: boolean = true;\n\t\tvar ausencianueva: AusenciaNovedadModel;\n\t\tvar diasCompensa: number = 0;\n\t\tvar diasDisfrute: number = 0;\n\t\tfor (var j = 0; j < this.listaPasivoGeneral.length; j++){\n\t\t\tvar ausencia = this.listaPasivoGeneral[j]\n\t\t\tentro = true;\n\t\t\tausencianueva = {...ausencia}\n\t\t\tdiasCompensa = 0;\n\t\t\tdiasDisfrute = 0;\n\t\t\tif (!this.nuevoRegistro) {\n\t\t\t\tvar registros: AusenciaNovedadModel = new AusenciaNovedadModel();\n\t\t\t\tregistros.depende = ausencia.llaveTabla;\n\t\t\t\tregistros.programado = this.novedad.llaveTabla;\n\t\t\t\tvar lista: AusenciaNovedadModel[] = await this.generalService.queryForList(new GeneralModel('AusenciaNovedadDTO', null, false, registros)).toPromise();\n\t\t\t\tlista.forEach(unRegistro => {\n\t\t\t\t\tdiasCompensa = diasCompensa + unRegistro.diasCompesa;\n\t\t\t\t\tdiasDisfrute = diasDisfrute + unRegistro.diasDisfrute;\n\t\t\t\t})\n\t\t\t}\n\t\t\tfor (var i = 0; i < this.listaPasivoRegistro.length; i++){\n\t\t\t\tvar ausenciaRegistro = this.listaPasivoRegistro[i]\n\t\t\t\tif (ausencia.tipoAusencia == ausenciaRegistro.tipoAusencia  && ausencia.interrupcion == ausenciaRegistro.interrupcion) {\n\t\t\t\t\tif (!this.nuevoRegistro) {\n\t\t\t\t\t\tausenciaRegistro.diasCompesa = ausenciaRegistro.diasCompesa + diasCompensa;\n\t\t\t\t\t\tausenciaRegistro.diasDisfrute = ausenciaRegistro.diasDisfrute + diasDisfrute;\n\t\t\t\t\t}\n\t\t\t\t\tausenciaRegistro.diasDisponible = ausenciaRegistro.diasDisponible + ausencia.diasDisponible;\n\t\t\t\t\tentro = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (entro) {\n\t\t\t\tif (!this.nuevoRegistro) {\n\t\t\t\t\tausencianueva.diasCompesa = diasCompensa;\n\t\t\t\t\tausencianueva.diasDisfrute = diasDisfrute;\n\t\t\t\t}\n\t\t\t\tthis.listaPasivoRegistro.push(ausencianueva);\n\t\t\t}\n\t\t}\n\t\tthis.utilsService.resizeWindowIFrame()\n\t}\n\n\tasync llenarPasivo()  {\n\t\tvar data = await this.ausentismoService.llenarPasivo({nuevoRegistro: this.nuevoRegistro, empleado: this.empleado, novedad: this.novedad}).toPromise();\n\t\tconsole.log(data)\n\t\tthis.listaPasivoGeneral = data.listaPasivoGeneral ? data.listaPasivoGeneral : [];\n\t\tthis.disfruteNormales = data.disfruteNormales;\n\t\tthis.disfruteCompensados = data.disfruteCompensados;\n\t\tthis.interrupcionNormales = data.interrupcionNormales;\n\t\tthis.interrupcionCompensados = data.interrupcionCompensados;\n\t\tthis.utilsService.resizeWindowIFrame()\n\t}\n\n\tlimpiarDias() {\n\t\tthis.disfruteNormales = 0;\n\t\tthis.disfruteCompensados = 0;\n\t\tthis.interrupcionNormales = 0;\n\t\tthis.interrupcionCompensados = 0;\n\t}\n\n\tvalidar() {\n\t\tvar validador: boolean = true;\n\t\tif (this.unico) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedad.tipoAusencia); \n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedad.diasDisfrute); \n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedad.diasCompesa); \n\t\t}\n\t\treturn validador;\n\t}\n\n\tvalidarSolicitud() {\n\t\tvar validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedad.salida); \n\t\treturn validador;\n\t}\n\n\tvalidarLegalizacion() {\n\t\tvar validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedad.formaPago); \n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedad.fechaPago); \n\t\treturn validador;\n\t}\n\n\n\tcambiarDatos(){\n\t\tif (this.novedadPipe.AUTORIZADA == this.novedad.estado) {\n\t\t\tthis.confirmationService.confirm({\n\t\t\t\ttarget: event.target,\n\t\t\t\tkey: 'eliminar',\n\t\t\t\tmessage: this.translateService.instant('cambiarvacacionaprobada'),\n\t\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\t\taccept: () => {\n\t\t\t\t\tthis.setIniciaCambiarDatos(true);\n\t\t\t\t},\n\t\t\t\treject: () => {\n\t\t\t\t\tthis.setIniciaCambiarDatos(false);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t\tthis.setIniciaCambiarDatos(true);\n\t\treturn null;\n\t}\n\n\tsetIniciaCambiarDatos(respuesta : boolean) {\n\t\tif ( respuesta ) {\n\t\t\tthis.novedad.estado = this.novedadPipe.NUEVA;\n\t\t\tthis.ControlBotones();\n\t\t\tif(this.isControlProcesoVerificar()){\n\t\t\t\tthis.deshabilitaCamposVerificar = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync procesoVerificar(){\n\t\tthis.clickGuardar = true;\n\t\tif (this.validar() && this.validarSolicitud()) {\n\t\t\tthis.clickGuardar = false;\n\t\t\tvar data = await this.ausentismoService.verificarVacaciones({\n\t\t\t\tnovedad: this.novedad, \n\t\t\t\tsolicita: this.solicita, \n\t\t\t\tseguimiento: this.seguimiento, \n\t\t\t\templeado: this.empleado, \n\t\t\t\tloginUsuario: this.authService.getTokenKey('usuario'), \n\t\t\t\ttipoRol: this.authService.getTokenKey('tipoLogin'), \n\t\t\t\tlistaPasivos: this.listaPasivo, \n\t\t\t\tlistaPasivoGeneral: this.listaPasivoGeneral, \n\t\t\t\tlistaPasivoRegistro: this.listaPasivoRegistro, \n\t\t\t\tdisfruteNormales: this.disfruteNormales, \n\t\t\t\tdisfruteCompensados: this.disfruteCompensados, \n\t\t\t\tinterrupcionNormales: this.interrupcionNormales, \n\t\t\t\tinterrupcionCompensados: this.interrupcionCompensados\n\t\t\t}).toPromise();\n\t\t\tvar mensaje = data.mensaje;\n\t\t\tthis.novedad = data.novedad;\n\t\t\tthis.novedad = this.formatearNovedad(this.novedad)\n\t\t\tthis.verCambiarDatosVerificacion = data.verCambiarDatosVerificacion ? data.verCambiarDatosVerificacion : this.verCambiarDatosVerificacion;\n\t\t\tif (this.utilsService.isBlank(mensaje) || \"OK\" == mensaje) {\n\t\t\t\tthis.verProcesoVerificar = false;\n\t\t\t\tthis.novedad.estado = this.novedadPipe.VERIFICADA;\n\t\t\t\tthis.ControlBotones();\n\t\t\t\tthis.notificacionesService.showInfo(\"Se verificó exitosamente\");\n\t\t\t}else{\n\t\t\t\tthis.notificacionesService.showWarning(mensaje);\n\t\t\t}\n\t\t\tthis.deshabilitaCamposVerificar = true;\n\t\t\tif (this.seguimiento) {\n\t\t\t\tthis.seguimiento = false;\n\t\t\t\tthis.llaveSeguimiento = this.novedad.llaveTabla;\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t\t\n\t\t\t\tthis.popupSeguimiento.mostrar(this.llaveSeguimiento)\n\t\t\t}\n\t\t} else {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t}\n\t}\n\n\tcambiarDatosVerificacion (){\n\t\tthis.novedad.estado = this.novedadPipe.NUEVA;\n\t\tthis.verCambiarDatosVerificacion = false;\n\t\tthis.ControlBotones();\n\t}\n\n\tasync permitirVacaciones() {\n\t\tthis.clickGuardar = true;\n\t\tif (this.validar() && this.validarSolicitud()) {\n\t\t\tthis.clickGuardar = false;\n\t\t\tthis.novedad.solicita = this.empleado.cedula;\n\t\t\tthis.novedad.loginSolicita = this.authService.getTokenKey('usuario');\n\t\t\tthis.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n\t\t\tif ( true && this.novedad.estadoMensaje != null && (this.novedad.estadoMensaje == 1 || this.novedad.estadoMensaje == 100)) {\n\t\t\t\tthis.novedad.estadoMensaje = 100;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.novedad.estadoMensaje = 0;\n\t\t\t}\n\t\t\t this.novedad = await this.ausentismoService.crearVacaciones({\n\t\t\t\tnovedad: this.novedad, \n\t\t\t\tseguimiento: this.seguimiento, \n\t\t\t\tnuevo: this.nuevoRegistro,\n\t\t\t\templeado: this.empleado, \n\t\t\t\tusuario: this.authService.getTokenKey('usuario'), \n\t\t\t\tlistaPasivoGeneral: this.listaPasivoGeneral, \n\t\t\t\tlistaPasivoRegistro: this.listaPasivoRegistro, \n\t\t\t\tdisfruteNormales: this.disfruteNormales, \n\t\t\t\tdisfruteCompensados: this.disfruteCompensados, \n\t\t\t\tinterrupcionNormales: this.interrupcionNormales, \n\t\t\t\tinterrupcionCompensados: this.interrupcionCompensados\n\t\t\t}).toPromise();\n\t\t\tthis.nuevoRegistro = false;\n\t\t\tawait this.cargarRegistros();\n\t\t\tvar mensaje = this.novedad.mensaje;\n\t\t\tif (this.utilsService.isBlank(mensaje) || \"OK\" == mensaje) {\n\t\t\t\tthis.notificacionesService.showInfo(\"Se modificó exitosamente su solicitud\");\n\t\t\t}else{\n\t\t\t\tawait this.eliminarRegistroConMensaje();\n\t\t\t\tthis.notificacionesService.showWarning(mensaje);\n\t\t\t}\n\t\t\tthis.ControlBotones();\n\t\t\tif (this.seguimiento) {\n\t\t\t\tthis.seguimiento = false;\n\t\t\t\tthis.llaveSeguimiento = this.novedad.llaveTabla;\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t\t\n\t\t\t\tthis.popupSeguimiento.mostrar(this.llaveSeguimiento)\n\t\t\t}\n\t\t} else {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t}\n\t}\n\n\tasync eliminarRegistroConMensaje(){\n\t\tawait this.ausentismoService.eliminarRegistro({\n\t\t\tllaveVacacion: this.novedad.llaveTabla\n\t\t}).toPromise();\n\t\tthis.nuevoRegistro = true;\n\t\tthis.novedad.estado = this.novedadPipe.NUEVA;\n\t\tthis.novedad.llaveTabla = null;\n\t}\n\n\tsolicitarLegalizarVacacion() {\n\t\tthis.guardarLegalizar(false).then(data =>{});\n\t}\n\t\n\tsolicitarLegalizarPermitir() {\n\t\tthis.guardarLegalizar(true).then(data =>{});\n\t}\n\t\n\tasync guardarLegalizar(procesoCerrado: boolean) {\n\t\tthis.clickGuardarLegalizar = true;\n\t\tthis.clickGuardar = true;\n\t\tif (this.validar() && this.validarLegalizacion()) {\n\t\t\tthis.clickGuardar = false;\n\t\t\tthis.clickGuardarLegalizar = false;\n\t\t\tthis.seguimiento = false;\n\t\t\tif (this.nuevoRegistro) {\n\t\t\t\tawait this.actualizarSolicitudLegalizacion(true, procesoCerrado);\n\t\t\t} else {\n\t\t\t\tawait this.actualizarSolicitudLegalizacion(false, procesoCerrado);\n\t\t\t}\n\t\t\tthis.cargarRegistros();\n\t\t\tif (this.novedad.mensaje != null) {\n\t\t\t\tif ( procesoCerrado && this.novedad.estadoMensaje == 100) {\n\t\t\t\t\tthis.notificacionesService.showInfo(\"Se modificó exitosamente su solicitud, en proceso cerrado\");\n\t\t\t\t\tthis.verProcesoVerificar = false;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.eliminarRegistroConMensaje();\n\t\t\t\t\tthis.notificacionesService.showWarning(this.novedad.mensaje);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.notificacionesService.showInfo(\"Se modificó exitosamente su solicitud\");\n\t\t\t}\n\t\t\tthis.ControlBotones();\n\t\t} else {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t}\n\t}\n\n\tasync actualizarSolicitudLegalizacion(nuevo: boolean, procesoCerrado: boolean) {\n\t\tthis.novedad.solicita = this.solicita;\n\t\tthis.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n\t\tconsole.log(procesoCerrado)\n\t\tthis.novedad = await this.ausentismoService.crearVacacionesLegalizar({\n\t\t\tnovedad: this.novedad, \n\t\t\tprocesoCerrado: procesoCerrado, \n\t\t\tnuevo: nuevo,\n\t\t\templeado: this.empleado, \n\t\t\tusuario: this.authService.getTokenKey('usuario'), \n\t\t\tlistaPasivoGeneral: this.listaPasivoGeneral, \n\t\t\tlistaPasivoRegistro: this.listaPasivoRegistro, \n\t\t\tdisfruteNormales: this.disfruteNormales, \n\t\t\tdisfruteCompensados: this.disfruteCompensados, \n\t\t\tinterrupcionNormales: this.interrupcionNormales, \n\t\t\tinterrupcionCompensados: this.interrupcionCompensados\n\t\t}).toPromise();\n\t\tthis.novedad = this.formatearNovedad(this.novedad)\n\t\tthis.nuevoRegistro = false;\n\t}\n\n\tregresarAction(){\n\t\tthis.regresar.emit()\n\t}\n\n\tasync solicitarVacaciones(){\n\t\tthis.clickGuardar = true;\n\t\tif (this.validar() && this.validarSolicitud()) {\n\t\t\tthis.clickGuardar = false;\n\t\t\tthis.novedad.solicita = this.empleado.cedula;\n\t\t\tthis.novedad.loginSolicita = this.authService.getTokenKey('usuario');\n\t\t\tthis.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n\t\t\tif ( false && this.novedad.estadoMensaje != null && (this.novedad.estadoMensaje == 1 || this.novedad.estadoMensaje == 100)) {\n\t\t\t\tthis.novedad.estadoMensaje = 100;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.novedad.estadoMensaje = 0;\n\t\t\t}\n\t\t\t this.novedad = await this.ausentismoService.crearVacaciones({\n\t\t\t\tnovedad: this.novedad, \n\t\t\t\tseguimiento: this.seguimiento, \n\t\t\t\tnuevo: this.nuevoRegistro,\n\t\t\t\templeado: this.empleado, \n\t\t\t\tusuario: this.authService.getTokenKey('usuario'), \n\t\t\t\tlistaPasivoGeneral: this.listaPasivoGeneral, \n\t\t\t\tlistaPasivoRegistro: this.listaPasivoRegistro, \n\t\t\t\tdisfruteNormales: this.disfruteNormales, \n\t\t\t\tdisfruteCompensados: this.disfruteCompensados, \n\t\t\t\tinterrupcionNormales: this.interrupcionNormales, \n\t\t\t\tinterrupcionCompensados: this.interrupcionCompensados\n\t\t\t}).toPromise();\n\t\t\tthis.novedad = this.formatearNovedad(this.novedad)\n\t\t\tthis.nuevoRegistro = false;\n\t\t\tawait this.cargarRegistros();\n\t\t\tvar mensaje = this.novedad.mensaje;\n\t\t\tif (this.utilsService.isBlank(mensaje) || \"OK\" == mensaje) {\n\t\t\t\tthis.notificacionesService.showInfo(\"Se modificó exitosamente su solicitud\");\n\t\t\t}else{\n\t\t\t\tawait this.eliminarRegistroConMensaje();\n\t\t\t\tthis.notificacionesService.showWarning(mensaje);\n\t\t\t}\n\t\t\tthis.ControlBotones();\n\t\t\tif (this.seguimiento) {\n\t\t\t\tthis.seguimiento = false;\n\t\t\t\tthis.llaveSeguimiento = this.novedad.llaveTabla;\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t\t\n\t\t\t\tthis.popupSeguimiento.mostrar(this.llaveSeguimiento)\n\t\t\t}\n\t\t} else {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios')\n\t\t}\n\t}\n\n\tlegalizarVacaciones() {\n\t\tthis.ausentismoService.cambiarEstadoLegalizado({\n\t\t  ausencia: this.novedad,\n\t\t  empleado: this.empleado,\n\t\t  origen: 'V',\n\t\t  usuario: this.authService.getTokenKey('usuario')\n\t\t}).subscribe(data =>{\n\t\t  this.novedad = data;\n\t\t  this.notificacionesService.showSuccess('Se ha legalizado el registro')\n\t\t  this.ControlBotones();\n\t\t  this.regresar.emit();\n\t\t}); \n\t  }\n\t\n\t  noLegalizarVacaciones(){\n\t\tthis.ausentismoService.cambiarEstadoNoLegalizado({\n\t\t  ausencia: this.novedad,\n\t\t  empleado: this.empleado,\n\t\t  origen: 'V',\n\t\t  usuario: this.authService.getTokenKey('usuario')\n\t\t}).subscribe(data =>{\n\t\t  this.novedad = data\n\t\t  this.ControlBotones();\n\t\t  this.regresar.emit();\n\t\t}); \n\t  }\n\n\telaborarActo(){\n\n\t}\n\n\teliminarSolicitud(){\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tkey: 'eliminar',\n\t\t\tmessage:  this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\taccept: () => {\n\t\t\t\tthis.ausentismoService.eliminarAusentismoAusencia({\n\t\t\t\tnovedad: this.novedad,\n\t\t\t\templeado: this.empleado,\n\t\t\t\torigen: 'V'\n\t\t\t\t}).subscribe(data => {\n\t\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\t\t\t\tthis.regresar.emit();\n\t\t\t\t});\n\t\t  \t},\n\t\t\treject: () => {\n\t\t\t}\n\t\t});\n\t  }\n\t\n\t  eliminarSolicitudDirecto(){\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tkey: 'eliminar',\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\taccept: () => {\n\t\t\t\tthis.ausentismoService.eliminarRegistro({llaveVacacion: this.novedad.llaveTabla}).subscribe(data => {\n\t\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\t\t\t\tthis.regresar.emit();\n\t\t\t\t});\n\t\t  \t}\t,\n\t\t\treject: () => {\n\t\t\t\t}\n\t\t\t});\n\t  }\n\n\t  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n        var actividad = new ActividadFuenteTareaModel();\n        actividad.llaveTabla = llaveActividad;\n        actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n        var ausencia = new AusenciaNovedadModel();\n        ausencia.llaveTabla = actividad.llaveTablaBase;\n        ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();;\n\n\t\tif (ausencia == null) {\n\t\t\tthis.notificacionesService.showError(\"Objeto no existe\");\n\t\t\tthis.regresarAction();\n\t\t\treturn;\n\t\t}\n\t\tthis.encuesta = true;\n        await this.utilsService.sleep(300);\n        //bean.setReglaNavegacion(getReglaNavegacion());\n        await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, ausencia);\n        this.empleado = new EmpleadoModel();\n        this.empleado.contrato = ausencia.contrato;\n        this.empleado.empresa = ausencia.empresa;\n        this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleado)).toPromise();\n        this.datosEmpresa = new DatosBasicosEmpresaModel();\n\t\tthis.datosEmpresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tthis.datosEmpresa = await this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, this.datosEmpresa)).toPromise();\n       \tawait this.buscarBPM(this.ausentismoPipe.ORIGEN_ACTIVIDAD_VACACION, this.ausentismoPipe.FORM_ACTIVIDAD_VACACION, ausencia, this.empleado);\n    }\n\t\n\tpublic async verAutorizacion(llaveActividad: string) {\n        var actividad = new ActividadFuenteTareaModel();\n        actividad.llaveTabla = llaveActividad;\n        actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n        var ausencia = new AusenciaNovedadModel();\n        ausencia.llaveTabla = actividad.llaveTablaBase;\n        ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();;\n\n\t\tif (ausencia == null) {\n\t\t\tthis.notificacionesService.showError(\"Objeto no existe\");\n\t\t\tthis.regresarAction();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.procesoAutorizacion = true;\n\t\tawait this.utilsService.sleep(300);\n        await this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOVACACIONES, ausencia);\n        \n        this.empleado = new EmpleadoModel();\n        this.empleado.contrato = ausencia.contrato;\n        this.empleado.empresa = ausencia.empresa;\n        this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleado)).toPromise();\n        \n\t\tawait this.buscarBPM(this.ausentismoPipe.ORIGEN_ACTIVIDAD_VACACION, this.ausentismoPipe.FORM_ACTIVIDAD_VACACION, ausencia, this.empleado);\n    }\n\t\n\tpublic async buscarBPM(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleadoDTO:  EmpleadoModel) {\n\t\tnovedad = this.formatearNovedad(novedad);\n\t\tthis.empleado = empleadoDTO;\n\t\tthis.form = form;\n\t\tthis.origenTarea = origenTarea;\n\t\tthis.limpiarDias();\n\t\tthis.bpmLegalizar = false;\n\t\tif (novedad == null) {\n\t\t\tthis.nuevoRegistro = true;\n\t\t\tnovedad = new AusenciaNovedadModel();\n\t\t\tnovedad.estado = this.novedadPipe.NUEVA;\n\t\t\tthis.novedad = novedad;\n\t\t} else {\n\t\t\tthis.nuevoRegistro = false;\n\t\t\tthis.novedad = novedad;\n\t\t}\n\n\t\tawait this.cargarRegistros();\n\t\tthis.ControlBotones();\n\t}\n\n\tformatearNovedad(novedad:AusenciaNovedadModel): AusenciaNovedadModel{\n\t\tif (!novedad) {\n\t\t\treturn novedad;\n\t\t}\n\t\tnovedad.iniPeriodo = novedad.iniPeriodo ? new Date(novedad.iniPeriodo) : null;\n\t\tnovedad.finPeriodo = novedad.finPeriodo ? new Date(novedad.finPeriodo) : null;\n\t\tnovedad.salida = novedad.salida ? new Date(novedad.salida) : null;\n\t\tnovedad.salidaNomina = novedad.salidaNomina ? new Date(novedad.salidaNomina) : null;\n\t\tnovedad.termina = novedad.termina ? new Date(novedad.termina) : null;\n\t\tnovedad.regreso = novedad.regreso ? new Date(novedad.regreso) : null;\n\t\tnovedad.regresoNomina = novedad.regresoNomina ? new Date(novedad.regresoNomina) : null;\n\t\tnovedad.fechaOrigen = novedad.fechaOrigen ? new Date(novedad.fechaOrigen) : null;\n\t\tnovedad.fechaPago = novedad.fechaPago ? new Date(novedad.fechaPago) : null;\n\t\tnovedad.horaSalida = novedad.horaSalida ? new Date(novedad.horaSalida) : null;\n\t\tnovedad.horaRegresa = novedad.horaRegresa ? new Date(novedad.horaRegresa) : null;\n\t\tnovedad.recupera = novedad.recupera ? new Date(novedad.recupera) : null;\n\t\tnovedad.reinicio = novedad.reinicio ? new Date(novedad.reinicio) : null;\n\t\tnovedad.anticipoNomina = novedad.anticipoNomina ? new Date(novedad.anticipoNomina) : null;\n\t\tnovedad.fechaIngreso = novedad.fechaIngreso ? new Date(novedad.fechaIngreso) : null;\n\t\tnovedad.fechaAntiguedad = novedad.fechaAntiguedad ? new Date(novedad.fechaAntiguedad) : null;\n\t\tnovedad.fecha1 = novedad.fecha1 ? new Date(novedad.fecha1) : null;\n\t\tnovedad.fecha2 = novedad.fecha2 ? new Date(novedad.fecha2) : null;\n\t\tnovedad.hora1 = novedad.hora1 ? new Date(novedad.hora1) : null;\n\t\tnovedad.hora2 = novedad.hora2 ? new Date(novedad.hora2) : null;\n\t\tnovedad.fechaALegalizar = novedad.fechaALegalizar ? new Date(novedad.fechaALegalizar) : null;\n\t\tnovedad.fechaBloqueo = novedad.fechaBloqueo ? new Date(novedad.fechaBloqueo) : null;\n\t\treturn novedad;\n\t}\n\n\tregresarPopupSeguimiento(){\n\t\tthis.mostrarPopupSeguimiento = false;\n\t}\n\n\tobtenerEstado(estado){\n\t\tvar estadoRetorno= '';\n\t\t\tvar retorno = this.mapaEstados.filter(element => element.codigo == estado)\n\t\t\tif (retorno?.length > 0){\n\t\t\t\testadoRetorno = retorno[0].nombre\n\t\t\t}\n\t\t\treturn estadoRetorno;\n\t  }\n\n\tobtenerOrigenPasivo(estado):string{\n\t\tvar estadoRetorno= '';\n\t\tvar retorno = this.mapaOrigenPasivo.filter(element => element.codigo == estado)\n\t\tif (retorno?.length > 0){\n\t\t\testadoRetorno = retorno[0].nombre\n\t\t}\n\t\treturn estadoRetorno;\n\t}\n\n\tisControlProcesoVerificar(): boolean {\n\t\treturn this.controlFuncionService.getControlFuncionalidad('vacsol:procesoVerificar')\n\t}\n\n\tisFuncional() : boolean{\n\t\treturn this.authService.getTokenKey('tipoLogin') == 'U';\n\t}\n\n\tisPorLegalizar(): boolean {\n\t\treturn this.novedadPipe.NOVEDAD_POR_LEGALIZAR == this.estadoNovedad;\n\t}\n\n\tisPorAutorizar(): boolean {\n\t\treturn this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estadoNovedad;\n\t}\n\n\tisPorSolicitar(): boolean {\n\t\treturn this.novedadPipe.NOVEDAD_POR_SOLICITAR == this.estadoNovedad;\n\t}\n\n\tisProcesoBPM(){\n\t\treturn this.encuesta || this.procesoAutorizacion;\n\t}\n\n\tisVerBtnCambiarDatos(){\n\t\treturn !this.isPorAutorizar() && !this.isPorLegalizar(); \n\t}\n\n\tisPeriodoCerrado () {\n\t\tif ( this.novedad != null && this.novedad.estadoMensaje != null && this.novedad.estadoMensaje == 1) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisEmpleadoActivo(): boolean {\n\t\treturn this.empleado != null && this.empleadoActivo();\n\t}\n\n    empleadoActivo() {\n\t\tif (this.empleado.estadoLaboral == null || this.empleado.estadoLaboralPeriodo == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.empleado.estadoLaboral == this.empleado.estadoLaboralPeriodo;\n\t}\n\n}\n","<p-confirmDialog #cd key=\"eliminar\">\n    <ng-template pTemplate=\"footer\">\n        <div class=\"mt-3\">\n            <button type=\"button\"\n                class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\" pButton\n                icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n            <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                (click)=\"cd.accept()\"></button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n<app-cabecera-empleado [empleado]=\"empleado\" *ngIf=\"empleado != null && (origenTarea == 'APLICAR_NOVEDAD_VACACION' || origenTarea == 'ACTIVIDAD_VACACION')\"></app-cabecera-empleado>\n<div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\n    <button pButton pRipple *ngIf=\"!unicoRegistro\" (click)=\"regresarAction()\" label= \"{{'listadosolicitudes' | translate}}\" \n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n</div>\n<div class=\"card\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{ origenTarea == 'APLICAR_NOVEDAD_VACACION' ? ('vacacion' | translate) : ('solicitud' | translate)}}</h5>\n    <div class=\"p-fluid p-formgrid grid mt-2\">\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"unico\">\n            <span class=\"p-float-label\"> \n                <p-dropdown [options]=\"listaTipoVacacionAusencia\" [(ngModel)]=\"novedad.tipoAusencia\" [disabled]=\"isProcesoBPM()\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedad.tipoAusencia) && clickGuardar\" \n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedad.tipoAusencia) && clickGuardar\"  \n                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                </p-dropdown>\n                <label>{{'tipovacacion' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Detalles programación -->\n        <!-- Salida Nomina -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.salida\" dateFormat=\"dd/mm/yy\" \n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\" \n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\"  \n                    [showIcon]=\"true\" [disabled]=\"isProcesoBPM() || !(controles.get('guardar') || controles.get('guardarLegalizar') || deshabilitaCamposVerificar)\" ></p-calendar>\n                <label>{{'salida' | translate}} {{'nomina' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Termina -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.termina\" dateFormat=\"dd/mm/yy\" \n                    [showIcon]=\"true\" [disabled]=\"true\" ></p-calendar>\n                <label>{{'termina' | translate}}</label>\n            </span>\n        </div>\n        <!-- Regreso -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.regreso\" dateFormat=\"dd/mm/yy\" \n                    [showIcon]=\"true\" [disabled]=\"true\" ></p-calendar>\n                <label>{{'regreso' | translate}}</label>\n            </span>\n        </div>\n        <!-- Forma de Pago -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isFuncional()\">\n            <span class=\"p-float-label\"> \n                <p-dropdown [options]=\"listaFormaPago\" [(ngModel)]=\"novedad.formaPago\"\n                    [class]=\"!utilsService.validarCampoObligatorio(novedad.formaPago) && clickGuardarLegalizar ? 'ng-invalid ng-dirty' : ''\" \n                    [disabled]=\"isProcesoBPM() || ((!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar) && !controles.get('legalizar'))\"\n                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                </p-dropdown>\n                <label>{{'formadepago' | translate}}</label>\n            </span>\n        </div>\n        <!-- Pago -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isFuncional()\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.fechaPago\" dateFormat=\"dd/mm/yy\" \n                    [class]=\"!utilsService.validarCampoObligatorio(novedad.fechaPago) && clickGuardarLegalizar ? 'ng-invalid ng-dirty' : ''\" \n                    [showIcon]=\"true\" [disabled]=\"isProcesoBPM() || ((!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar) && !controles.get('legalizar'))\" ></p-calendar>\n                <label>{{'pago' | translate}}</label>\n            </span>\n        </div>\n        <!-- Anticipo de Nomina -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isFuncional() && controles.get('fechaAnticipo')\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.anticipoNomina\" dateFormat=\"dd/mm/yy\" \n                    [showIcon]=\"true\" [disabled]=\"isProcesoBPM() || ((!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar) && !controles.get('legalizar'))\" ></p-calendar>\n                <label>{{'anticiponomina' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"unico\">\n            <span class=\"p-float-label\">\n                <p-inputNumber [(ngModel)]=\"novedad.diasDisfrute\" [disabled]=\"isProcesoBPM() || ((!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar))\" ></p-inputNumber>\n                <label>{{'disfrute' | translate}}*</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"unico\">\n            <span class=\"p-float-label\">\n                <p-inputNumber [(ngModel)]=\"novedad.diasCompesa\" [disabled]=\"isProcesoBPM() || ((!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar))\" ></p-inputNumber>\n                <label>{{'compensa' | translate}}*</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"unico\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.iniPeriodo\" dateFormat=\"dd/mm/yy\" \n                    [showIcon]=\"true\" [disabled]=\"true\" ></p-calendar>\n                <label>{{'periodoinicial' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"unico\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"novedad.finPeriodo\" dateFormat=\"dd/mm/yy\" \n                    [showIcon]=\"true\" [disabled]=\"true\" ></p-calendar>\n                <label>{{'periodofinal' | translate}}</label>\n            </span>\n        </div>\n        \n    </div>\n</div>\n\n<p-table #tablalistaPasivoRegistro responsiveLayout=\"scroll\" [value]=\"listaPasivoRegistro\" [rows]=\"30\"\n    [totalRecords]=\"listaPasivoRegistro.length\" [paginator]=\"listaPasivoRegistro.length > 30\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" [scrollable]=\"true\" *ngIf=\"registro\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n\n        <tr class=\"fondoTablaPincipal\">\n            <th>{{'tipo' | translate}}</th>\n            <th>{{'dias' | translate}} {{'disponible' | translate}}</th>\n            <th>{{'disfrute' | translate}}</th>\n            <th>{{'compensados' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-bean>\n        <tr>\n            <td>\n                <label *ngIf=\"isFuncional()\">{{bean.nombreTipoAusenciaInterrupcion}}</label>\n                <label *ngIf=\"!isFuncional()\">{{bean.nombreClienteTipoAusencia}}</label>\n                <label *ngIf=\"bean.interrupcion == 'I'\"> - </label>\n                <label *ngIf=\"bean.interrupcion == 'I'\">{{obtenerOrigenPasivo(bean.interrupcion)}}</label>\n            </td>\n            <td>\n                <label>{{bean.diasDisponible}}</label>\n            </td>\n            <td>\n                <p-inputNumber [(ngModel)]=\"bean.diasDisfrute\" \n                *ngIf=\"bean.accionDisfrute == 'V' || bean.accionDisfrute == 'E' || (bean.accionDisfrute == 'F' && isFuncional())\"\n                [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar || bean.accionDisfrute == 'V')\"></p-inputNumber>\n            </td>\n            <td>\n                <p-inputNumber [(ngModel)]=\"bean.diasCompesa\" \n                *ngIf=\"bean.accionCompensa == 'V' || bean.accionCompensa == 'E' || bean.accionCompensa == 'F'\"\n                [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) ||  deshabilitaCamposVerificar) || bean.accionCompensa == 'V' || (bean.accionCompensa == 'F' && !isFuncional())\"></p-inputNumber>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n<div class=\"col-md-12\" *ngIf=\"total\">\n    <p-fieldset class=\"fieltsintitulo\">\n        <div class=\"p-fluid grid\">\n            <div class=\"field col-12 md:col-2 lg:col-2 mb-0\"> </div>\n            <div class=\"field col-12 md:col-5 lg:col-5 mb-0\">\n                <label class=\"font-semibold text-gray-900 text-base ml-1\">{{'disfrute' | translate}}</label>\n            </div>\n            <div class=\"field col-12 md:col-5 lg:col-5 mb-0\">\n                <label class=\"font-semibold text-gray-900 text-base ml-1\">{{'compensados' | translate}}</label>\n            </div>\n\n            <div class=\"field col-12 md:col-2 lg:col-2 mb-0\">\n                <label class=\"font-semibold text-gray-900 text-base ml-1\">{{'normales' | translate}}</label>\n            </div>\n            <div class=\"field col-12 md:col-5 lg:col-5\">\n                <p-inputNumber [(ngModel)]=\"disfruteNormales\" \n                    [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar)\"></p-inputNumber>\n            </div>\n            <div class=\"field col-12 md:col-5 lg:col-5\">\n                <p-inputNumber [(ngModel)]=\"disfruteCompensados\" \n                    [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar)\"></p-inputNumber>\n            </div>\n\n            <div class=\"field col-12 md:col-2 lg:col-2 mb-0\">\n                <label class=\"font-semibold text-gray-900 text-base ml-1\">{{'interrupcion' | translate}}</label>\n            </div>\n            <div class=\"field col-12 md:col-5 lg:col-5\">\n                <p-inputNumber [(ngModel)]=\"interrupcionNormales\" \n                    [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar)\"></p-inputNumber>\n            </div>\n            <div class=\"field col-12 md:col-5 lg:col-5\">\n                <p-inputNumber [(ngModel)]=\"interrupcionCompensados\" \n                    [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar)\"></p-inputNumber>\n            </div>\n        </div>\n    </p-fieldset>\n\n</div>\n\n<div class=\"mt-3\">\n    <p-table #tablalistaPasivoGeneral responsiveLayout=\"scroll\" [value]=\"listaPasivoGeneral\" [rows]=\"30\" \n        [totalRecords]=\"listaPasivoGeneral.length\" [paginator]=\"listaPasivoGeneral.length > 30\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\" [scrollable]=\"true\" *ngIf=\"listaPasivoGeneral.length > 0\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n        <ng-template pTemplate=\"header\">\n\n            <tr class=\"fondoTablaPincipal\">\n                <th>{{'tipo' | translate}}</th>\n                <th>{{'periodo' | translate}} {{'servicio' | translate}} {{'pendiente' | translate}}</th>\n                <th>{{'dias' | translate}} {{'disponible' | translate}}</th>\n                <th *ngIf=\"tipo\">{{'disfrute' | translate}}</th>\n                <th *ngIf=\"tipo\">{{'compensados' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr>\n                <td>\n                    <label *ngIf=\"isFuncional()\">{{bean.nombreTipoAusenciaInterrupcion}}</label>\n                    <label *ngIf=\"!isFuncional()\">{{bean.nombreClienteTipoAusencia}}</label>\n                    <label *ngIf=\"bean.interrupcion == 'I'\"> - </label>\n                    <label *ngIf=\"bean.interrupcion == 'I'\">{{obtenerOrigenPasivo(bean.interrupcion)}}</label>\n                </td>\n                <td>\n                    <label>{{bean.iniPeriodo | date : ( 'formatofecha' | translate)}}</label>\n                    <label> - </label>\n                    <label>{{bean.finPeriodo | date : ( 'formatofecha' | translate)}}</label>\n                </td>\n                <td>\n                    <label>{{bean.diasDisponible}}</label>\n                </td>\n                <td *ngIf=\"tipo\">\n                    <p-inputNumber [(ngModel)]=\"bean.diasDisfrute\" \n                    *ngIf=\"bean.accionDisfrute == 'V' || bean.accionDisfrute == 'E'\"\n                    [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar || bean.accionDisfrute == 'V')\"></p-inputNumber>\n                </td>\n                <td *ngIf=\"tipo\">\n                    <p-inputNumber [(ngModel)]=\"bean.diasCompesa\" \n                    *ngIf=\"bean.accionCompensa == 'V' || bean.accionCompensa == 'E'\"\n                    [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar || bean.accionCompensa == 'V')\"></p-inputNumber>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<div class=\"card mt-3\">\n    <div class=\"p-fluid p-formgrid grid mt-2\">\n\n        <div class=\"field col-12 md:col-1 lg:col-1\">\n            <label>{{'estado' | translate}}</label>\n        </div>\n        \n        <div class=\"field col-12 md:col-11 lg:col-11\">\n            <h5>{{obtenerEstado(novedad.estado)}}</h5>\n        </div>\n\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n                <textarea pInputTextarea [(ngModel)]=\"novedad.observacion\" rows=\"5\" cols=\"30\" [disabled]=\"isProcesoBPM() || (!(controles.get('guardar') || controles.get('guardarLegalizar')) || deshabilitaCamposVerificar)\"\n                    class=\"max-h-100 min-h-60 w-full\">\n                </textarea>\n                <label>{{'observacion' | translate}}</label>\n            </span>\n        </div>\n\n        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"novedad.autorizadorBPM != null\">\n            <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\" [(ngModel)]=\"novedad.autorizadorBPM\" autocomplete=\"off\" />\n                <label>{{'autorizadorbpm' | translate}}</label>\n            </span>\n        </div>\n\n        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"novedad.autorizadorBPM != null\">\n            <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\" [(ngModel)]=\"novedad.nombreAutorizadorBPM\" autocomplete=\"off\" />\n                <label>{{'nombre' | translate}} {{'autorizadorbpm' | translate}}</label>\n            </span>\n        </div>\n\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"novedad.mensaje != null\">\n            <span class=\"p-float-label\">\n                <textarea pInputTextarea [(ngModel)]=\"novedad.mensaje\" rows=\"5\" cols=\"30\" [disabled]=\"true\"\n                    class=\"max-h-100 min-h-60 w-full\">\n                </textarea>\n                <label>{{'mensaje' | translate}}</label>\n            </span>\n        </div>\n\n    </div>\n</div>\n\n\n<!--botones-->\n\n<div class=\"flex justify-content-end align-items-center gap-1 mb-2\" *ngIf=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento') \">\n    <p-checkbox class=\"ml-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n    <label class=\"ml-1\">{{'seguimiento' | translate}}</label>\n</div>\n<!--botones-->\n<div class=\"flex justify-content-end mt-3\" *ngIf=\"nuevoRegistro && verProcesoVerificar && !isProcesoBPM()\">\n    <div class=\"splitbuttonOscuro\" >\n        <!--CRUD BOTONES-->\n        <p-splitButton label=\"Acciones Vacación\" icon=\"glyphicons glyphicons-list\" \n            [model]=\"menuAcciones\"></p-splitButton>\n    </div>\n</div>\n\n<div class=\"flex justify-content-end mt-3\" *ngIf=\"!isProcesoBPM() && !verProcesoVerificar\">\n    <div class=\"splitbuttonOscuro\" >\n        <!--CRUD BOTONES-->\n        <p-splitButton label=\"Acciones Vacación\" icon=\"glyphicons glyphicons-list\" \n            [model]=\"menuAcciones\"></p-splitButton>\n    </div>\n</div>\n\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"regresarAction()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarAction()\"></app-ejecucion-encuesta>\n\n<app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\" (regresar)=\"regresarPopupSeguimiento()\"></app-popup-seguimiento>","import { UnionModel } from 'general-library-union'\n\nexport class AusenciaDatoModel extends UnionModel {\n\n\tllave: string;\n\tausencia: string;\n\ttipo: string;\n\tvariableLiq: string;\n\tperiodo: string;\n\tconcepto: number;\n\tnumeroLip: number;\n\tvalor: number;\n\tvalor2: number;\n\tnivel: number;\n\tentidad: string;\n\tlistaCuotas: string;\n\tnombreEntidad: string;\n    nombreConcepto: string;\n    tipoConcepto: string;\n    formulaConcepto: string;\n    descripcionTipo: string;\n    tipoLiquidacion: string;\n    tipoServicio: string;\n    descripcionVariables: string;\n    mostrarVariables: string;\n    formatoVariables: string;\n    liquidacion: string;\n    presupuestal: string;\n    zonaEconomica: string;\n    centroCosto: string;\n    lineaCosto: string;\n    contratoLip: number;\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class VariableLiquidacionModel extends UnionModel {\n\n\tliquidacion: string;\n\tvariableLiquidacion: string;\n\ttipoLiquida: number;\n\ttipoLiquidaDescripcion: string;\n\tdescripcion: string;\n\tvariable: string;\n\tformula: string;\n\tnivel: number;\n\tmostrar: string;\n\tformato: string;\n\tmodalidad: string;\n\tformulaDos: string;\n\tformulaTres: string;\n\tproceso: string;\n\ttipo: string;\n\ttipoNovedad: string;\n\tvalor: number;\n\torigen: string;\n\torden: number;\n\tmodo: string;\n\tbusqueda: string;\n\n\t//DATOS NO PERSISTENTES\n\tdescripcionModo: string;\n\tformulaTotal: string;\n\tcampoMensaje: any;\n\n}","import { UnionModel } from \"general-library-union\";\n\n\nexport class NominaAusenciaModel extends UnionModel {\n\n\tllaveAusencia: String;\n\tempresa: number;\n\tcontrato: number;\n\tconcepto: number;\n\tperiodo: String;\n\tperiodoOri: String;\n\tpago: String;\n\tvalor1: number;\n\tvalor2: number;\n\tvalor3: number;\n\tfuera1: number;\n\tfuera2: number;\n\tfuera3: number;\n\t\n}","import { UnionModel } from 'general-library-union'\nimport { EmpleadoModel } from '../../compensacion/models/EmpleadoModel'\nimport { DatoActoAdmonModel } from './DatoActoAdmonModel'\nimport { FormatoModel } from './FormatoModel'\nimport { Observable } from 'rxjs'\n\nexport class ActoAusenciaModel extends UnionModel {\n\t getIdentifica(): any {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t getGrupoVincula(): any {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t setUnidad(arg0: any) {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t getListaprogramada() {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t setListaprogramada(arg0: Observable<any>) {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t setVincula(arg0: any) {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t setMensaje(arg0: null) {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t getAnioServicio() {\n\t\t throw new Error('Method not implemented.')\n\t }\n\t setFechaServicio(arg0: any) {\n\t\t throw new Error('Method not implemented.')\n\t }\n\n\t\n\t llave:string\n\t consecutivo:number\n\t estadoNumero:number\n\n\t formato:number\n\t empresa:number\n\t identifica:number\n\t grupoVincula:number\n\t vincula:number\n\t documento:string\n\t numero:\tstring\n\t fechaDocumento:\tDate\n\t firmaDocumento:\tnumber\n\t unidadDocumento:\tstring\n\t sucursal:\tstring\n\t tipoAusencia:\tstring\n\t origenAusencia:\tstring\n\t oficio:\tstring\n\t fechaOficio:\tDate\n\t sesion:\tstring\n\t fechasesion:\tDate\n\t comunicado:\tDate\n\t comite:\tDate\n\t objeto:\tstring\n\t fechaSalida:\tDate\n\t fechaTermina:\tDate\n\t fechaReal:\tDate\n\t ciudad:\tstring\n\t institucion:\tstring\n\t duracion:\tnumber\n\t duracionHijos:\tnumber\n\t pendienteBase:\tnumber\n\t horas:\tnumber\n\t horario:\tstring\n\t nivelAcademico:\tstring\n\t programa:\tstring\n\t rol:\tstring\n\t convenio:\tstring\n\t compromiso:\tstring\n\t baseDisfrute:\tstring\n\t baseDisfruteNumero:\tnumber\n\t antecesor:\tstring\n\t descripcionAntecesor:\tstring\n\t antecesorNumero:\tnumber\n\t derogacion:\tstring\n\t elaboracion:\tstring\n\t estado:\tstring\n\t fechaInicial:\tDate\n\t fechaFinal:\tDate\n\t fechaServicio:\tDate\n\t anioServicio:\tnumber\n\t fechaRegreso:\tDate\n\t periodo:\tnumber\n\t disfrute:\tnumber\n\t fechaOrigen:\tDate\n\t postLegaliza:\tstring\n\t valor1:\tnumber\n\t valor2:\tnumber\n\t valor3:\tnumber\n\t valor4:\tnumber\n\t valor5:\tnumber\n\t valor6:\tnumber\n\t valor7:\tnumber\n\t valor8:\tnumber\n\t valor9:\tnumber\n\t valor10:\tnumber\n\t valor11:\tnumber\n\t valor12:\tnumber\n\t valor13:\tnumber\n\t valor14:\tnumber\n\t valor15:\tnumber\n\t valor16:\tnumber\n\t valor17:\tnumber\n\t valor18:\tnumber\n\t valor19:\tnumber\n\t valor20:\tnumber\n\t pago:\tDate\n\t factor:\tnumber\n\t unidad:\tstring\n\t vigencia:\tDate\n\t puesto:\tstring\n\t unidadTmp:\tstring\n\t puestoAntes:\tstring\n\t soporte:\tstring\n\t compensada:\tnumber\n\t compensadaHijos:\tnumber\n\t terminaFinal:\tDate\n\t adicional:\tstring\n\t ingreso:\tstring\n\t nombreFormato:\tstring\n\t nombreTipoAusencia:\tstring\n\t nombreEmpleado:\tstring\n\t cedula:\tnumber\n\t formatoPago:\tstring\n\t formatoDTO:\tFormatoModel\n\t empleadoDTO:\tEmpleadoModel\n\t mensaje:\tstring\n\t listaprogramada:\tActoAusenciaModel[]\n\t proceso:\tstring\n\t llaveActoNovedad:\tstring\n\t llaveTipoNovedad:\tstring\n\t\t \n\t fechaRangoMenor:\tDate\n\t fechaRangoMayor:\tDate\n\t tipoPeriodo:\tnumber\n\t vacacion:\tstring\n\t inconsistencia:\tstring\n\t pasivo:\tstring\n\t nombreCompleto:\tstring\n\t tipo:\tstring\n\t descripcionFormato:\tstring\n\t accionFormato:\tstring\n\t llaveNombreArchivoAnexo:\tstring\n\t llaveRegistroProceso:\tstring\n\t nroDocumento:\tstring\n\t\t \n\t ausenciaNovedad:\tstring\n\t contrato:\t number\n\t\t \n\t login:\tstring\n\t periodoPago:\tstring\n\t documentoEmpleado:\tstring\n\t fechaSalidaRangoMenor:\tDate\n\t fechaSalidaRangoMayor:\tDate\n\t nombreTipoPeriodo:\tstring\n\t nombreUnidad:\tstring\n\t zonaEconomica:\tstring\n\t nombreZonaEconomica:\tstring\n\t\t \n\t entidad:\tstring\n\t estadoNumeroDiferenteUno:\tnumber\n\t codigoDiagnostico:\tstring\n\t alternoHojaVida:\tstring\n\t documentoHojaVida:\tstring\n\t variablesActo:\tDatoActoAdmonModel[]\n\t llaveActoBase:\tstring\n\t traerRegistroHijos:\tstring\n\t horaSalida:\tDate\n\t horaTermina:\tDate\n\t aliasRol:\tstring\n\t fechaLegaliza:\tDate\n\t \n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class ProcesarPagoVacacionModel extends UnionModel {\n\n\t\n\tllaveLibro: String;\n\tcontrato: number;\n\ttipoPeriodo: number;\n\tturno: number;\n\tvinculacion: number;\n\tzonaEconomica: String;\n\tcentroCosto: String;\n\tlineaCosto: String;\n\tunidad: String;\n\tcargo: String;\n\tperiodoPago: String;\n\tperiodoOrigen: String;\n\tregreso: Date;\n\tsalida: Date;\n\tfechaPago: Date;\n\tdesde: Date;\n\ttipoPago: String;\n\tusuario: String;\n\tempresa: number;\n\tseguimiento: String;\n\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class DocumentoSoporteModel extends UnionModel {\n\n\ttablaPadre: string;\n\tllavePadre: string;\n\tplanillaReporte: string;\n\tdescripcionPlanillaReporte: string;\n\tdescripcion: string;\n\trutaArchivo: string;\n\tclasificacion: string;\n\ttipo: string;\n\tplanillaWeb: string;\n\tasunto: string;\n\tsobre: string;\n\tvinculacion: number;\n\tdescripcionVinculacion: string;\n\tempresa: number;\n\tnombreArchivo: string;\n\thtmlPublicacion: string;\n\taplicaReporte: string;\n\tfaseGestion: string;\n\tcopiaOculta: string;\n\tmomento: string;\n\tfiltroVinculacion: number;\n\n\t\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ParametrosGeneralModel } from \"../models/ParametrosGeneralModel\";\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class GeneracionVacacionesService {\n\n    listProcedure(objetoFiltro: GeneralModel) {\n        throw new Error('Method not implemented.');\n      }\n    \n      constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService : UtilsService) {\n        this.handleError = this.handleError.bind(this);\n      }\n    \n      private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          // A client-side or network error occurred. Handle it accordingly.\n          console.error('An error occurred:', error.error);\n        } else {\n          // The backend returned an unsuccessful response code.\n          // The response body may contain clues as to what went wrong.\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n    traerVacacionesProgramadas(actoAusencia: any): Observable<any[]>{\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/traerVacacionesProgramadas`, actoAusencia).pipe(\n            catchError(this.handleError)\n          );\n    }\n    cantidadTraerVacacionesProgramadas(actoAusencia: any): Observable<number>{\n      return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/cantidadTraerVacacionesProgramadas`, actoAusencia).pipe(\n          catchError(this.handleError)\n        );\n  }\n\n    procesarVacaciones(parametros : ParametrosGeneralModel): Observable<any>{\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ProcesarVacaciones`, parametros).pipe(\n            catchError(this.handleError)\n          );\n    }\n    ActualizarVacacionGrupal(parametros : ParametrosGeneralModel): Observable<any>{\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ActualizarVacacionGrupal`, parametros).pipe(\n            catchError(this.handleError)\n          );\n    }\n    ActualizarVacacion(parametros : ParametrosGeneralModel): Observable<any>{\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ActualizarVacacion`, parametros).pipe(\n            catchError(this.handleError)\n          );\n    }\n    enviarComprobanteVacaciones(parametros : ParametrosGeneralModel): Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/enviarComprobanteVacaciones`, parametros).pipe(\n          catchError(this.handleError)\n        );\n  }\n  publicarComprobanteVacaciones(parametros : ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/publicarComprobanteVacaciones`, parametros).pipe(\n        catchError(this.handleError)\n      );\n}\n    generarComprobanteVacaciones(parametroGeneral: any): Observable<Blob>{\n        return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/generarComprobanteVacaciones`, parametroGeneral,{\n          responseType: 'blob'\n        });\n      }\n\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../constantes/Constantes';\n\n\n@Pipe({\n    name: 'planillaPipe'\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class PlanillaPipe implements PipeTransform {\n\n    disenoRe = \"D\";\n    desDisenoRe = \"Dise\\u00f1o Reporteador\";\n\n    vista = \"V\";\n    desVista = \"Vista\";\n\n    TIPOPLATILLA =\n        [\n            { codigo: this.disenoRe, nombre: this.desDisenoRe },\n            { codigo: this.vista, nombre: this.desVista },\n        ]\n\n    VISTA_LIQ_CONT_TRABAJO = \"vu_lct%\";\n    VISTA_LIQ_CONT_TRABAJOTMP = \"vu_tmplct%\";\n    LIQUIDACION_CONT_TRABAJO = \"L\";\n    COMPROBANTE_NOMINA = \"N\";\n    COMPROBANTE_DOCUMENTO = \"D\";\n    COMPROBANTE_VACACION = \"V\";\n\n    LIQUIDACION_CONT_TRABAJO_DES = \"Liquidacion Contrato Trabajo\";\n    COMPROBANTE_NOMINA_DES = \"Comprobante Nomina\";\n    COMPROBANTE_VACACION_DES = \"Comprobante Vacacion\";\n\n    TIPOPLANTILLACOMPROBANTE =\n        [\n            { codigo: this.LIQUIDACION_CONT_TRABAJO, nombre: this.LIQUIDACION_CONT_TRABAJO_DES },\n            { codigo: this.COMPROBANTE_NOMINA, nombre: this.COMPROBANTE_NOMINA_DES },\n            { codigo: this.COMPROBANTE_VACACION, nombre: this.COMPROBANTE_VACACION_DES },\n\n        ]\n\n    COMPROBANTE_1 = \"1\";\n    COMPROBANTE_2 = \"2\";\n    COMPROBANTE_3 = \"3\";\n    COMPROBANTE_4 = \"4\";\n    COMPROBANTE_5 = \"5\";\n    COMPROBANTE_6 = \"6\";\n    COMPROBANTE_7 = \"7\";\n    COMPROBANTE_8 = \"8\";\n    COMPROBANTE_9 = \"9\";\n    COMPROBANTE_10 = \"0\";\n    COMPROBANTE_11 = \"R\";\n    COMPROBANTE_12 = \"D\";\n    COMPROBANTE_13 = \"S\";\n    COMPROBANTE_14 = \"I\";\n    COMPROBANTE_15 = \"P\";\n    COMPROBANTE_16 = \"V\";\n    COMPROBANTE_17 = \"B\";\n    COMPROBANTE_FIJO = \"F\";\n\n    COMPROBANTE_1_DES = \"Una columna\";\n    COMPROBANTE_2_DES = \"Dos Columna(Devengo y Deduccion)\";\n    COMPROBANTE_3_DES = \"Registro Prestamo\";\n    COMPROBANTE_4_DES = \"Una columna origen pago\";\n    COMPROBANTE_5_DES = \"Sobre flex una columna\";\n    COMPROBANTE_6_DES = \"Sobre flex dos columnas\";\n    COMPROBANTE_7_DES = \"Registro Prestamo origen pago\";\n    COMPROBANTE_8_DES = \"Una columna Beneficio\";\n    COMPROBANTE_9_DES = \"Dos Columna(Unificado)\";\n    COMPROBANTE_10_DES = \"Media Carta\";\n    COMPROBANTE_11_DES = \"Una columna Regresion\";\n    COMPROBANTE_12_DES = \"Dos Columna(Unificado - Media Carta)\";\n    COMPROBANTE_13_DES = \"Una Columna Saldo Prestamo\";\n    COMPROBANTE_14_DES = \"Una Columna Variable Por Fecha\";\n    COMPROBANTE_15_DES = \"Registro Prestamo Sin Cuotas\";\n    COMPROBANTE_16_DES = \"Registro Prestamo Vacaciones\";\n    COMPROBANTE_FIJO_DES = \"Reporte Fijo\";\n    COMPROBANTE_17_DES = \"Una columna Separado beneficios\";\n\n    COMPROBANTE_1_REPORTE = \"comprobantePagoUnaColumna.jrxml\";\n    COMPROBANTE_2_REPORTE = \"comprobantePagoDosColumnas.jrxml\";\n    COMPROBANTE_3_REPORTE = \"comprobantePagoUnaColumnaPrestamo.jrxml\";\n    COMPROBANTE_4_REPORTE = \"ComprobanteUnaColumnaOrigenPago.jrxml\";\n    COMPROBANTE_7_REPORTE = \"comprobantePrestamoOrigenPago.jrxml\";\n    COMPROBANTE_8_REPORTE = \"comprobantePagoUnaColumnaBeneficios.jrxml\";\n    COMPROBANTE_9_REPORTE = \"comprobantePagoDosColumnasUnificado.jrxml\";\n    COMPROBANTE_10_REPORTE = \"comprobantePagoUnaColumnaHorizontal.jrxml\";\n    COMPROBANTE_11_REPORTE = \"comprobantePagoUnaColumnaRegresion.jrxml\";\n    COMPROBANTE_12_REPORTE = \"comprobantePagoDosColumnasUnificadoMediaCarta.jrxml\";\n    COMPROBANTE_13_REPORTE = \"comprobantePagoUnaColumnaSaldoPrestamo.jrxml\";\n    COMPROBANTE_14_REPORTE = \"comprobantePagoUnaColumnaVariable.jrxml\";\n    COMPROBANTE_15_REPORTE = \"comprobantePagoUnaColumnaPrestamoSinCuotas.jrxml\";\n    COMPROBANTE_16_REPORTE = \"comprobantePrestamoOrigenPagoVacaciones.jrxml\";\n    COMPROBANTE_17_REPORTE = \"comprobantePagoUnaColumnaOtroConcepto.jrxml\";\n\n\n    LISTA_MODULOS =\n        [\n            { codigo: this.COMPROBANTE_1, nombre: this.COMPROBANTE_1_DES },\n            { codigo: this.COMPROBANTE_2, nombre: this.COMPROBANTE_2_DES },\n            { codigo: this.COMPROBANTE_3, nombre: this.COMPROBANTE_3_DES },\n            { codigo: this.COMPROBANTE_4, nombre: this.COMPROBANTE_4_DES },\n            { codigo: this.COMPROBANTE_5, nombre: this.COMPROBANTE_5_DES },\n            { codigo: this.COMPROBANTE_6, nombre: this.COMPROBANTE_6_DES },\n            { codigo: this.COMPROBANTE_7, nombre: this.COMPROBANTE_7_DES },\n            { codigo: this.COMPROBANTE_8, nombre: this.COMPROBANTE_8_DES },\n            { codigo: this.COMPROBANTE_9, nombre: this.COMPROBANTE_9_DES },\n            { codigo: this.COMPROBANTE_10, nombre: this.COMPROBANTE_10_DES },\n            { codigo: this.COMPROBANTE_11, nombre: this.COMPROBANTE_11_DES },\n            { codigo: this.COMPROBANTE_12, nombre: this.COMPROBANTE_12_DES },\n            { codigo: this.COMPROBANTE_13, nombre: this.COMPROBANTE_13_DES },\n            { codigo: this.COMPROBANTE_14, nombre: this.COMPROBANTE_14_DES },\n            { codigo: this.COMPROBANTE_15, nombre: this.COMPROBANTE_15_DES },\n            { codigo: this.COMPROBANTE_16, nombre: this.COMPROBANTE_16_DES },\n            { codigo: this.COMPROBANTE_17, nombre: this.COMPROBANTE_17_DES },\n            { codigo: this.COMPROBANTE_FIJO, nombre: this.COMPROBANTE_FIJO_DES }\n        ]\n\n\n    LISTA_REPORTE =\n        [\n            { codigo: this.COMPROBANTE_1, nombre: this.COMPROBANTE_1_REPORTE },\n            { codigo: this.COMPROBANTE_2, nombre: this.COMPROBANTE_2_REPORTE },\n            { codigo: this.COMPROBANTE_3, nombre: this.COMPROBANTE_3_REPORTE },\n            { codigo: this.COMPROBANTE_4, nombre: this.COMPROBANTE_4_REPORTE },\n            { codigo: this.COMPROBANTE_7, nombre: this.COMPROBANTE_7_REPORTE },\n            { codigo: this.COMPROBANTE_8, nombre: this.COMPROBANTE_8_REPORTE },\n            { codigo: this.COMPROBANTE_9, nombre: this.COMPROBANTE_9_REPORTE },\n            { codigo: this.COMPROBANTE_10, nombre: this.COMPROBANTE_10_REPORTE },\n            { codigo: this.COMPROBANTE_11, nombre: this.COMPROBANTE_11_REPORTE },\n            { codigo: this.COMPROBANTE_12, nombre: this.COMPROBANTE_12_REPORTE },\n            { codigo: this.COMPROBANTE_13, nombre: this.COMPROBANTE_13_REPORTE },\n            { codigo: this.COMPROBANTE_14, nombre: this.COMPROBANTE_14_REPORTE },\n            { codigo: this.COMPROBANTE_15, nombre: this.COMPROBANTE_15_REPORTE },\n            { codigo: this.COMPROBANTE_16, nombre: this.COMPROBANTE_16_REPORTE },\n            { codigo: this.COMPROBANTE_17, nombre: this.COMPROBANTE_17_REPORTE },\n        ]\n\n    REPORTE_UNIBAN = \"UNIBAN\";\n    REPORTE_UNIBAN_DES = \"UNIBAN\";\n\n    LISTA_REPORTES_FIJOS =\n        [\n            { codigo: this.REPORTE_UNIBAN, nombre: this.REPORTE_UNIBAN_DES }\n        ]\n\n    VACACIONES_D = \"P\";\n    VACACIONES_R = \"R\";\n    VACACIONES_S = \"S\";\n\n    VACACIONES_D_DES = \"Por Periodo de Nomina\";\n    VACACIONES_R_DES = \"Resumido\";\n    VACACIONES_S_DES = \"Por Periodo Nomina(Sin Ausencias)\";\n\n    LISTA_COMPROBANTE_VACACIONES =\n        [\n            { codigo: this.VACACIONES_D, nombre: this.VACACIONES_D_DES },\n            { codigo: this.VACACIONES_R, nombre: this.VACACIONES_R_DES },\n            { codigo: this.VACACIONES_S, nombre: this.VACACIONES_S_DES },\n\n        ]\n\n\n    LIQUIDACION_DEFECTO = \"E\";\n    LIQUIDACION_DEFECTO_VARIABLE = \"F\";\n    LIQUIDACION_PLANTILLA = \"A\";\n    LIQUIDACION_PLANTILLA_TMP = \"T\";\n    LIQUIDACION_VISTA = \"V\";\n\n    LIQUIDACION_DEFECTO_DES = \"Defecto\";\n    LIQUIDACION_DEFECTO_VARIABLE_DES = \"Defecto- Variable Fecha\";\n    LIQUIDACION_PLANTILLA_DES = \"Plantilla\";\n    LIQUIDACION_PLANTILLA_TMP_DES = \"Plantilla-Tabla Temporal\";\n    LIQUIDACION_VISTA_DES = \"Vista\";\n\n    LISTA_COMPROBANTE_LIQUIDACION =\n        [\n            { codigo: this.LIQUIDACION_DEFECTO, nombre: this.LIQUIDACION_DEFECTO_DES },\n            { codigo: this.LIQUIDACION_DEFECTO_VARIABLE, nombre: this.LIQUIDACION_DEFECTO_VARIABLE_DES },\n            { codigo: this.LIQUIDACION_VISTA, nombre: this.LIQUIDACION_VISTA_DES },\n            { codigo: this.LIQUIDACION_PLANTILLA, nombre: this.LIQUIDACION_PLANTILLA_DES },\n            { codigo: this.LIQUIDACION_PLANTILLA_TMP, nombre: this.LIQUIDACION_PLANTILLA_TMP_DES },\n\n        ]\n\n\n    lETRACPI8 = \"P\";\n    lETRACPI10 = \"N\";\n    LETRACPI12 = \"G\";\n\n    DESC_lETRACPI8 = \"CPI 8\";\n    DESC_lETRACPI10 = \"CPI 10\";\n    DESC_LETRACPI12 = \"CPI 12\";\n\n    LISTA_TAMANO_LETRAS =\n        [\n            { codigo: this.lETRACPI8, nombre: this.DESC_lETRACPI8 },\n            { codigo: this.lETRACPI10, nombre: this.DESC_lETRACPI10 },\n            { codigo: this.LETRACPI12, nombre: this.DESC_LETRACPI12 },\n\n        ]\n\n    VACACIONES_D_REPORTE = \"comprobanteVacacionesDiscriminado.jrxml\";\n    VACACIONES_R_REPORTE = \"comprobanteVacacionesResumido.jrxml\";\n    VACACIONES_S_REPORTE = \"comprobanteVacacionesDiscriminadoSinAusencia.jrxml\";\n\n\n    LISTA_REPORTE_VACACIONES =\n        [\n            { codigo: this.VACACIONES_D, nombre: this.VACACIONES_D_REPORTE },\n            { codigo: this.VACACIONES_R, nombre: this.VACACIONES_R_REPORTE },\n            { codigo: this.VACACIONES_S, nombre: this.VACACIONES_S_REPORTE },\n        ]\n\n    NOMINA_ENCABEZADO = \"E\";\n    NOMINA_FINAL = \"F\";\n    NOMINA_DETALLE = \"D\";\n    NOMINA_TITULO = \"T\";\n    NOMINA_ENCABEZADOPAG = \"H\";\n    NOMINA_FINALPAG = \"I\";\n\n\n    NOMINA_ENCABEZADO_DES = \"Encabezado\";\n    NOMINA_FINAL_DES = \"Final\";\n    NOMINA_DETALLE_DES = \"Detalle\";\n    NOMINA_TITULO_DES = \"Titulo\";\n    NOMINA_ENCABEZADOPAG_DES = \"Encabezado Pagina\";\n    NOMINA_FINALPAG_DES = \"Final Pagina\";\n\n    LISTA_NOMINA_SECCION =\n        [\n            { codigo: this.NOMINA_ENCABEZADO, nombre: this.NOMINA_ENCABEZADO_DES },\n            { codigo: this.NOMINA_FINAL, nombre: this.NOMINA_FINAL_DES },\n        ]\n\n    LISTA_NOMINA_SECCION_LIQ =\n        [\n            { codigo: this.NOMINA_ENCABEZADO, nombre: this.NOMINA_ENCABEZADO_DES },\n            { codigo: this.NOMINA_FINAL, nombre: this.NOMINA_FINAL_DES },\n            { codigo: this.NOMINA_TITULO, nombre: this.NOMINA_TITULO_DES },\n            { codigo: this.NOMINA_ENCABEZADOPAG, nombre: this.NOMINA_ENCABEZADOPAG_DES },\n            { codigo: this.NOMINA_FINALPAG, nombre: this.NOMINA_FINALPAG_DES },\n        ]\n\n    LISTA_NOMINA_SECCION_SOBRE =\n        [\n            { codigo: this.NOMINA_ENCABEZADO, nombre: this.NOMINA_ENCABEZADO_DES },\n            { codigo: this.NOMINA_FINAL, nombre: this.NOMINA_FINAL_DES },\n            { codigo: this.NOMINA_DETALLE, nombre: this.NOMINA_DETALLE_DES },\n        ]\n\n    NOMINA_TEXTO = \"T\";\n    NOMINA_FIJO = \"F\";\n    NOMINA_COLUMNA = \"C\";\n    NOMINA_SUBCAMPO = \"S\";\n    NOMINA_IMAGEN = \"M\";\n    NOMINA_TITULO_FIJO = \"X\";\n\n    NOMINA_TEXTO_DES = \"Texto\";\n    NOMINA_FIJO_DES = \"Marcador Fijo\";\n    NOMINA_COLUMNA_DES = \"Columna\";\n    NOMINA_SUBCAMPO_DES = \"Subcampo\";\n    NOMINA_IMAGEN_DES = \"Imagen\";\n\n    LISTA_NOMINA_TIPO =\n        [\n            { codigo: this.NOMINA_TEXTO, nombre: this.NOMINA_TEXTO_DES },\n            { codigo: this.NOMINA_COLUMNA, nombre: this.NOMINA_COLUMNA_DES },\n            { codigo: this.NOMINA_IMAGEN, nombre: this.NOMINA_IMAGEN_DES },\n            { codigo: this.NOMINA_SUBCAMPO, nombre: this.NOMINA_SUBCAMPO_DES },\n            { codigo: this.NOMINA_FIJO, nombre: this.NOMINA_FIJO_DES },\n            { codigo: this.NOMINA_TITULO_FIJO, nombre: this.NOMINA_TITULO_DES },\n        ]\n\n    LISTA_NOMINA_SOBRE_FLEX =\n        [\n            { codigo: this.NOMINA_TEXTO, nombre: this.NOMINA_TEXTO_DES },\n            { codigo: this.NOMINA_COLUMNA, nombre: this.NOMINA_COLUMNA_DES },\n            { codigo: this.NOMINA_SUBCAMPO, nombre: this.NOMINA_SUBCAMPO_DES },\n\n        ]\n    RECURSOS_EXTENSION =\n    [\n        {codigo: Constantes.ARCHIVO_JPG},\n        {codigo: Constantes.ARCHIVO_PNG}\n    ]\n\n    UNICA_EMPRESA = \"U \";\n    CADA_EMPRESA = \"C \";\n\n    DES_UNICA_EMPRESA = \"Unica\";\n    DES_CADA_EMPRESA = \"Cada Empresa\";\n\n    IMAGEN_EMPRESA =\n        [\n            { codigo: this.UNICA_EMPRESA, nombre: this.DES_UNICA_EMPRESA },\n            { codigo: this.CADA_EMPRESA, nombre: this.DES_CADA_EMPRESA },\n\n        ]\n\n    NEGRILLA = Constantes.CONSTANTE_NO;\n    NORMAL = \"O\";\n\n    DES_NEGRILLA = \"Negrilla\";\n    DES_NORMAL = \"Normal\";\n\n\n    ESTILO_TEXTO =\n        [\n            { codigo: this.NEGRILLA, nombre: this.DES_NEGRILLA },\n            { codigo: this.NORMAL, nombre: this.DES_NORMAL },\n        ]\n\n    IZQUIERDA = \"I\";\n    DERECHA = \"D\";\n\n\n    DES_IZQUIERDA = \"Izquierda\";\n    DES_DERECHA = \"Derecha\";\n\n\n\n\n    JUSTIFICACION_SOBREFLEX =\n        [\n            { codigo: this.IZQUIERDA, nombre: this.DES_IZQUIERDA },\n            { codigo: this.DERECHA, nombre: this.DES_DERECHA },\n        ]\n\n    CENTRADO = \"C\";\n    DES_CENTRADO = \"Centrada\";\n\n    JUSTIFICACION =\n        [\n            { codigo: this.CENTRADO, nombre: this.DES_CENTRADO },\n            { codigo: this.IZQUIERDA, nombre: this.DES_IZQUIERDA },\n            { codigo: this.DERECHA, nombre: this.DES_DERECHA },\n        ]\n    /**\n     * esta constante se multiplicara por la dada por el usuario la conversion\n     * es asi 1000 pt = 1 cm en tonces al usuario se pedira el tama�o de la\n     * imagen en milimetros y se multiplicara por 100 para dar la medida que\n     * pide en open office\n     */\n    CONSTANTE_MEDIDA_IMAGEN = 100;\n\n    /***\n     *\n     */\n\n    DATO = \"D\";\n    CAMPO = \"C\";\n    CAMPO_STRING = \"Campo\";\n    DATO_STRING = \"Dato\";\n\n    TIPO_CAMPO =\n        [\n            { codigo: this.CAMPO, nombre: this.CAMPO_STRING },\n            { codigo: this.DATO, nombre: this.DATO_STRING },\n        ]\n\n\n    SERIE = \"S\";\n    CATEGORIA = \"C\";\n    VALOR = \"V\";\n    SERIE_STRING = \"Serie\";\n    CATEGORIA_STRING = \"Categoria\";\n    VALOR_STRING = \"Valor\";\n    NO_APLICA_STRING = \"No aplica\";\n\n    RECURSO_GRAFICA =\n        [\n            { codigo: this.SERIE, nombre: this.SERIE_STRING },\n            { codigo: this.CATEGORIA, nombre: this.CATEGORIA_STRING },\n            { codigo: this.VALOR, nombre: this.VALOR_STRING },\n            { codigo: Constantes.CONSTANTE_NO, nombre: this.NO_APLICA_STRING },\n\n        ]\n\n    DIAGRAMA_BARRAS = \"B\";\n    DIAGRAMA_TORTA = \"T\";\n    DIAGRAMA_AREA = \"A\";\n    DIAGRAMA_BARRAS_STRING = \"Diagrama  de barras\";\n    DIAGRAMA_TORTA_STRING = \"Diagrama de Torta\";\n    DIAGRAMA_AREA_STRING = \"Diagrama de Area\";\n    DIAGRAMA_LINEA = \"L\";\n    DIAGRAMA_HISTOGRAMA = \"H\";\n    DIAGRAMA_DIFERENCIA = \"D\";\n    DIAGRAMA_BARRA_HORIZONTAL = \"Z\";\n    DIAGRAMA_LINEA_STRING = \"Diagrama de linea\";\n    DIAGRAMA_HISTOGRAMA_STRING = \"Diagrama de Histograma\";\n    DIAGRAMA_DIFERENCIA_STRING = \"Diagrama de Diferencia\";\n    DIAGRAMA_BARRA_HORIZONTAL_STRING = \"Diagrama de Barras Horizontal\";\n    DIAGRAMA_BARRA_ESCALA_HORIZONTAL = \"E\";\n    DIAGRAMA_BARRA_ESCALA_STRING = \"Diagrama horizontal de Barras con escala\";\n    DIAGRAMA_BARRA_ESCALA_VERTICAL = \"V\";\n    DIAGRAMA_BARRA_ESCALA_VERTICAL_STRING = \"Diagrama vertical de Barras con escala\";\n\n    TIPO_FUENTE =\n        [\n            { codigo: this.DIAGRAMA_BARRAS, nombre: this.DIAGRAMA_BARRAS_STRING },\n            { codigo: this.DIAGRAMA_TORTA, nombre: this.DIAGRAMA_TORTA_STRING },\n            { codigo: this.DIAGRAMA_AREA, nombre: this.DIAGRAMA_AREA_STRING },\n            { codigo: this.DIAGRAMA_LINEA, nombre: this.DIAGRAMA_LINEA_STRING },\n            { codigo: this.DIAGRAMA_HISTOGRAMA, nombre: this.DIAGRAMA_HISTOGRAMA_STRING },\n            { codigo: this.DIAGRAMA_DIFERENCIA, nombre: this.DIAGRAMA_DIFERENCIA_STRING },\n            { codigo: this.DIAGRAMA_BARRA_HORIZONTAL, nombre: this.DIAGRAMA_BARRA_HORIZONTAL_STRING },\n            { codigo: this.DIAGRAMA_BARRA_ESCALA_HORIZONTAL, nombre: this.DIAGRAMA_BARRA_ESCALA_STRING },\n            { codigo: this.DIAGRAMA_BARRA_ESCALA_VERTICAL, nombre: this.DIAGRAMA_BARRA_ESCALA_VERTICAL_STRING },\n        ]\n\n    CODIGO_CONCEPTO = \"CODIGO_CONCEPTO\";\n    CODIGO_CONCEPTO_DES = \"Codigo Concepto\";\n    NOMBRE_CONCEPTO = \"NOMBRE_CONCEPTO\";\n    NOMBRE_CONCEPTO_DES = \"Nombre Concepto\";\n    VALOR_DEVENGO = \"VALOR_DEVENGO\";\n    VALOR_DEVENGO_DES = \"Valor Devengo\";\n    VALOR_DEDUCCCION = \"VALOR_DEDUCCCION\";\n    VALOR_DEDUCCCION_DES = \"Valor Deduccion\";\n    VALOR_BASE = \"VALOR_BASE\";\n    VALOR_BASE_DES = \"Valor base\";\n\n    LISTA_SOBRE_UNA_COL =\n        [\n            { codigo: this.CODIGO_CONCEPTO, nombre: this.CODIGO_CONCEPTO_DES },\n            { codigo: this.NOMBRE_CONCEPTO, nombre: this.NOMBRE_CONCEPTO_DES },\n            { codigo: this.VALOR_DEVENGO, nombre: this.VALOR_DEVENGO_DES },\n            { codigo: this.VALOR_DEDUCCCION, nombre: this.VALOR_DEDUCCCION_DES },\n            { codigo: this.VALOR_BASE, nombre: this.VALOR_BASE_DES },\n        ]\n\n    CODIGO_CONCEPTO_UNA = \"CODIGO_CONCEPTO_UNA\";\n    CODIGO_CONCEPTO_UNA_DES = \"Codigo Concepto 1\";\n    NOMBRE_CONCEPTO_UNA = \"NOMBRE_CONCEPTO_UNA\";\n    NOMBRE_CONCEPTO_UNA_DES = \"Nombre Concepto 1\";\n    VALOR_UNA = \"VALOR_UNA\";\n    VALOR_UNA_DES = \"Valor 1\";\n    VALOR_BASE_UNA = \"VALOR_BASE_UNA\";\n    VALOR_BASE_UNA_DES = \"Valor base 1\";\n\n    CODIGO_CONCEPTO_DOS = \"CODIGO_CONCEPTO_DOS\";\n    CODIGO_CONCEPTO_DOS_DES = \"Codigo Concepto 2\";\n    NOMBRE_CONCEPTO_DOS = \"NOMBRE_CONCEPTO_DOS\";\n    NOMBRE_CONCEPTO_DOS_DES = \"Nombre Concepto 2\";\n    VALOR_DOS = \"VALOR_DOS\";\n    VALOR_DEVENGO_DOS_DES = \"Valor 2\";\n    VALOR_BASE_DOS = \"VALOR_BASE_DOS\";\n    VALOR_BASE_DOS_DES = \"Valor base 2\";\n\n    LISTA_SOBRE_DOS_COL =\n        [\n            { codigo: this.CODIGO_CONCEPTO_UNA, nombre: this.CODIGO_CONCEPTO_UNA_DES },\n            { codigo: this.NOMBRE_CONCEPTO_UNA, nombre: this.NOMBRE_CONCEPTO_UNA_DES },\n            { codigo: this.VALOR_UNA, nombre: this.VALOR_UNA_DES },\n            { codigo: this.VALOR_BASE_UNA, nombre: this.VALOR_BASE_UNA_DES },\n            { codigo: this.CODIGO_CONCEPTO_DOS, nombre: this.CODIGO_CONCEPTO_DOS_DES },\n            { codigo: this.NOMBRE_CONCEPTO_DOS, nombre: this.NOMBRE_CONCEPTO_DOS_DES },\n            { codigo: this.VALOR_DOS, nombre: this.VALOR_DEVENGO_DOS_DES },\n            { codigo: this.VALOR_BASE_DOS, nombre: this.VALOR_BASE_DOS_DES },\n        ]\n\n    OFICIO = \"O\";\n    CARTA = \"C\";\n    MEDIA_CARTA = \"M\";\n\n    OFICIO_DES = \"Oficio\";\n    CARTA_DOS = \"Carta\";\n    MEDIA_CARTA_DOS_DES = \"Media Carta\";\n\n    TAMANIO_HOJA =\n        [\n            { codigo: this.OFICIO, nombre: this.OFICIO_DES },\n            { codigo: this.CARTA, nombre: this.CARTA_DOS },\n            { codigo: this.MEDIA_CARTA, nombre: this.MEDIA_CARTA_DOS_DES },\n        ]\n\n    TIPO_COMPROBANTE = \"COMPR\";\n\n    /*** Listado Transformar de Reporte Planilla***/\n    MOSTRARSIGNOS = \"N\";\n    MOSTRARSIGNOS_DES = \"Mostrar Signos\";\n    OCULTARSIGNOS = \"S\";\n    OCULTARSIGNOS_DES = \"Ocultar Signos\";\n\n    TRANFORMAR =\n        [\n            { codigo: this.MOSTRARSIGNOS, nombre: this.MOSTRARSIGNOS_DES },\n            { codigo: this.OCULTARSIGNOS, nombre: this.OCULTARSIGNOS_DES },\n        ]\n\n    /*** Listado Tipo concepto de Reporte Planilla***/\n    TODOS = \"T\";\n    TODOS_DES = \"Todos\";\n    SINBENEFICIOCRUCE = \"C\";\n    SINBENEFICIOCRUCE_DES = \"Sin Beneficio Cruce\";\n\n    TIPOCONCEPTO =\n        [\n            { codigo: this.TODOS, nombre: this.TODOS_DES },\n            { codigo: this.SINBENEFICIOCRUCE, nombre: this.SINBENEFICIOCRUCE_DES },\n        ]\n\n\n    MARCADOR_PIN = \"PIN\";\n    MARCADOR_PIN_DESC = \"Pin\";\n\n    MAPA_MARCADOR_FIJO =\n        [\n            { codigo: this.MARCADOR_PIN, nombre: this.MARCADOR_PIN_DESC }\n        ]\n\n    MARCADOR = \"MA\";\n    MARCADORREGISTRO = \"MR\";\n    MARCADORTABLA = \"TB\";\n    MARCADORIMAGEN = \"IM\";\n    MARCADORVARIABLE = \"MV\";\n\n    DESMARCADOR = \"Marcador\";\n    DESMARCADORREGISTRO = \"Marcador Registro\";\n    DESMARCADORTABLA = \"Tabla\";\n    DESMARCADORIMAGEN = \"Imagen\";\n    DESMARCADORVARIABLE = \"Marcador Variable\";\n\n    MARCADORES =\n        [\n            { codigo: this.MARCADOR, nombre: this.DESMARCADOR },\n            { codigo: this.MARCADORREGISTRO, nombre: this.DESMARCADORREGISTRO },\n            { codigo: this.MARCADORTABLA, nombre: this.DESMARCADORTABLA },\n            { codigo: this.MARCADORIMAGEN, nombre: this.DESMARCADORIMAGEN },\n            { codigo: this.NOMINA_SUBCAMPO, nombre: this.NOMINA_SUBCAMPO_DES },\n        ]\n\n    SEGURIDADSALUDTRABAJO = \"SO\";\n    NORELACIONADO = \"NR\";\n\n    DESSEGURIDADSALUDTRABAJO = \"Seguridad y Salud en el Trabajo\";\n    DESNORELACIONADO = \"No relacionado\";\n\n    DESTINO =\n        [\n            { codigo: this.SEGURIDADSALUDTRABAJO, nombre: this.DESSEGURIDADSALUDTRABAJO },\n            { codigo: this.NORELACIONADO, nombre: this.DESNORELACIONADO },\n\n        ]\n\n    TITULO_DEVENGO = \"IN\";\n    TITULO_DEDUCCION = \"EG\";\n    TITULO_NETO = \"NE\";\n\n    TITULO_DEVENGO_DES = \"Devengo\";\n    TITULO_DEDUCCION_DES = \"Descuento\";\n    TITULO_NETO_DES = \"Neto\";\n\n    LISTA_TITULOS =\n        [\n            { codigo: this.TITULO_DEVENGO, nombre: this.TITULO_DEVENGO_DES },\n            { codigo: this.TITULO_DEDUCCION, nombre: this.TITULO_DEDUCCION_DES },\n            { codigo: this.TITULO_NETO, nombre: this.TITULO_NETO_DES },\n        ]\n\n\n    JORNADA = \"J\";\n    DESCJORNADA = \"Jornada\";\n\n\n    transform(value: any, ...args: any): any {\n      let result = value;\n      if (args[0] == 'listaNominaTipo') { this.LISTA_NOMINA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n      return result;\n     }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { PlanillaPipe } from '../../../../../../shared/pipes/planilla.pipe';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ActoAusenciaModel } from '../../../../../actos/models/ActoAusenciaModel';\nimport { EmpresaModel } from '../../../../../compensacion/models/EmpresaModel';\nimport { LiquidacionPerPipe } from '../../../../../compensacion/pipes/liquidacionper.pipe';\nimport { GeneracionVacacionesService } from '../../../../../compensacion/services/generacionVacaciones.service';\nimport { DocumentoSoporteModel } from '../../../../../sarageneral/models/DocumentoSoporteModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { NgFor, NgIf } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { SaraAplicacionService } from '../../../../../../shared/servicios/sara-aplicacion.service';\n\n\n@Component({\n    selector: 'app-comprobante-vacaciones',\n    templateUrl: './comprobante-vacaciones.component.html',\n    styleUrls: ['./comprobante-vacaciones.component.scss'],\n    standalone: true,\n    imports: [DialogModule, NgFor, RadioButtonModule, FormsModule, NgIf, DropdownModule, ButtonDirective, Ripple, TranslateModule, ButtonModule]\n})\nexport class ComprobanteVacacionesComponent implements OnInit {\n\n  @Input() public ausenciaDTO;\n  @Input() public periodoActivo;\n  @Input() public showDialog: boolean;\n  @Output() public regresar = new EventEmitter();\n\n  public listaAccion ;\n  public listaActos: ActoAusenciaModel[] = [];\n  public tipoComprobante: any[] = [];\n  public listaReporte: any[] = [];\n  public accion: string;\n  public llavecomprobante: string;\n  public tipo: string = 'pdf';\n  public esTodos: boolean;\n  public esCorreo: boolean;\n  public esPublicacion: boolean;\n  public llaveRegistro = '';\n  loading: boolean = false;\n  empresa: EmpresaModel = new EmpresaModel();\n  clickGuardar: boolean = false;\n\n  constructor(\n    private generalService: GeneralService,\n    private notificacionesService: ToastService,\n    private generacionvService: GeneracionVacacionesService,\n    private liquidacionPipe: LiquidacionPerPipe,\n    private planillaPipe: PlanillaPipe,\n    private authService: AuthService,\n    public utilsService: UtilsService,\n    private saraappservice: SaraAplicacionService\n  ) { }\n\n  ngOnInit(): void {\n    this.listaAccion = this.liquidacionPipe.LISTAACCIONCOMPROBANTE;\n    this.cargarEmpresa();    \n  }\n\n  async cargarEmpresa() {\n    try {\n      this.empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n  ocultar() {\n    this.showDialog = false;\n    this.llavecomprobante = null;\n    this.accion = null;\n    this.regresar.emit();\n  }\n\n  async mostrar() {\n    this.showDialog = true;\n    this.llavecomprobante = null;\n    this.accion = null;\n    this.generalService.queryForList(new GeneralModel('DocumentoSoporteDTO', null, false, {\n      empresa: (await this.saraappservice.getEmpresa()).empresa,\n      tipo: this.planillaPipe.COMPROBANTE_VACACION\n    })).subscribe(data => {\n      this.tipoComprobante = data;\n    })\n  }\n\n  async generarComprobante() {\n    try {\n      this.clickGuardar = false;\n      if (this.llavecomprobante == null) {\n        this.notificacionesService.showWarning('Debe seleccionar un tipo de comprobante.')\n        this.clickGuardar = true;\n        return;\n      }\n      this.loading = true;\n      let documentoSoporteDTO: DocumentoSoporteModel = await this.traerRegistroProceso(this.llavecomprobante);\n      this.generacionvService.generarComprobanteVacaciones(new ParametrosGeneralModel(null, null, null, {\n        empresa: this.empresa,\n        login: this.authService.getTokenKey('usuario'),\n        codigoEmpresa: this.authService.getTokenKey('numeroEmpresa').toString(),\n        docSoporteDTO: documentoSoporteDTO.llaveTabla,\n        llaveRegistro: this.llaveRegistro,\n        actoAusencia: this.ausenciaDTO\n      })).subscribe({\n        next: (data) => {\n          const a = document.createElement('a')\n          const objectUrl = URL.createObjectURL(data)\n          a.href = objectUrl\n          a.download = 'Comprobante Pago Vacaciones' + '.' + this.tipo;\n          a.click();\n          URL.revokeObjectURL(objectUrl);\n          this.loading = false;\n          this.notificacionesService.showInfo('Archivo generado correctamente');\n        },\n        error: (err) => {\n          this.loading = false;\n          if (err.status == '500') {\n            this.notificacionesService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema para que se configure correctamente las rutas.')\n          } else {\n            this.notificacionesService.showError('Error en el servicio')\n          }\n        }\n      });\n    } catch (error) {\n\n    }\n  }\n\n  async enviarCorreo() {\n    try {\n      if (this.llavecomprobante == null) {\n        this.notificacionesService.showInfo('Debe seleccionar un tipo comprobante');\n        return;\n      }\n      this.loading = true;\n      let docSoporteDTO = await this.traerRegistroProceso(this.llavecomprobante);\n      let respuesta = await this.generacionvService.enviarComprobanteVacaciones(new ParametrosGeneralModel(null, null, this.ausenciaDTO, {\n        empresa: this.empresa,\n        actoAusencia: this.ausenciaDTO,\n        login: this.authService.getTokenKey('usuario'),\n        codigoEmpresa: this.authService.getTokenKey('numeroEmpresa').toString(),\n        docSoporteDTO: docSoporteDTO,\n        llaveRegistro: this.llaveRegistro,\n        llaveRol: this.authService.getTokenKey('llaveRol'),\n      }\n      )).toPromise();\n      if (respuesta.estado == '500') {\n        this.notificacionesService.showWarning(respuesta.mensaje);\n        this.loading = false;\n        return\n      }\n      this.notificacionesService.showSuccess(respuesta.mensaje);\n      this.loading = false;\n    } catch (error) {\n\n    }\n  }\n\n  async publicar() {\n    try {\n      if (this.llavecomprobante == null) {\n        this.notificacionesService.showWarning('Debe seleccionar un tipo de comprobante');\n        return;\n      }\n      this.loading = true;\n      this.listaActos = [];\n      let actoAusenciaDTO = new ActoAusenciaModel;\n      actoAusenciaDTO.identifica = this.ausenciaDTO.identifica;\n      actoAusenciaDTO.cedula = this.ausenciaDTO.cedula;\n      actoAusenciaDTO.fechaSalida = this.ausenciaDTO.fechaSalida;\n      actoAusenciaDTO.fechaRegreso = this.ausenciaDTO.fechaRegreso;\n      actoAusenciaDTO.periodoPago = this.periodoActivo.periodo;\n      this.listaActos.push(actoAusenciaDTO);\n      let docSoporteDTO = await this.traerRegistroProceso(this.llavecomprobante);\n      let respuesta = await this.generacionvService.publicarComprobanteVacaciones(new ParametrosGeneralModel(null, null, this.listaActos, {\n        empresa: this.empresa,\n        actoAusencia: actoAusenciaDTO,\n        login: this.authService.getTokenKey('usuario'),\n        codigoEmpresa: this.authService.getTokenKey('numeroEmpresa').toString(),\n        docSoporteDTO: docSoporteDTO,\n        llaveRegistro: this.llaveRegistro,\n        llaveRol: this.authService.getTokenKey('llaveRol'),\n      }\n      )).toPromise();\n      if(respuesta != null){\n        this.loading = false;        \n      }      \n      if(respuesta.estado == '500'){\n        this.notificacionesService.showWarning(respuesta.mensaje);\n        return\n      } else {\n        this.notificacionesService.showSuccess(respuesta.mensaje);\n      }  \n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n\n  mostrarBotonGenerar() {\n    return this.esTodos && this.tipo != null;\n  }\n\n\n  isEsTodos() {\n    if (this.accion != null && this.accion == 'T') {\n      this.esTodos = true;\n    } else {\n      this.esTodos = false;\n    }\n    return this.esTodos;\n  }\n\n\n  isEsCorreo() {\n    if (this.accion != null && this.accion == 'C') {\n      this.esCorreo = true;\n    } else {\n      this.esCorreo = false;\n    }\n    return this.esCorreo;\n  }\n\n  isEsPublicacion() {\n    if (this.accion != null && this.accion == 'P') {\n      this.esPublicacion = true;\n    } else {\n      this.esPublicacion = false;\n    }\n    return this.esPublicacion;\n  }\n\n\n  async traerRegistroProceso(llaveComprobante) {\n    let documentoSoporteDTO: DocumentoSoporteModel = new DocumentoSoporteModel();\n    documentoSoporteDTO.llaveTabla = llaveComprobante;\n    documentoSoporteDTO = await this.generalService.queryForObject(new GeneralModel('DocumentoSoporteDTO', null, false, documentoSoporteDTO)).toPromise();\n    return documentoSoporteDTO\n  }\n\n\n}\n","<p-dialog header=\"{{ 'comprobantevacaciones' | translate }}\" [(visible)]=\"showDialog\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '30vw'}\" (onShow)=\"mostrar()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n    <div class=\"checkbox-container mb-3\">\n        <div *ngFor=\"let valor of listaAccion\" class=\"field-checkbox\">\n            <p-radioButton [inputId]=\"valor.codigo\" name=\"valor\" [value]=\"valor.codigo\"\n                [(ngModel)]=\"accion\"></p-radioButton>\n            <label [for]=\"valor.codigo\">{{ valor.nombre }}</label>\n        </div>\n    </div>\n    <div>\n        <!-- TIPO COMPROBANTE -->\n        <div class=\"col-md-12\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"isEsTodos() || isEsCorreo() || isEsPublicacion()\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown class=\"w-full\" [options]=\"tipoComprobante\" [(ngModel)]=\"llavecomprobante\"\n                                optionLabel=\"descripcion\" optionValue=\"llaveTabla\" [autoDisplayFirst]=\"false\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(llavecomprobante) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(llavecomprobante) && clickGuardar\"\n                                appendTo=\"body\" ></p-dropdown>\n                            <label>{{'tipo' | translate}}*</label>\n                        </span>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <!-- CRUD BOTONES -->\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"p-button p-button-raised\" *ngIf=\"mostrarBotonGenerar()\" icon=\"glyphicons glyphicons-print\"\n            label=\"{{'generar' | translate}}\" (click)=\"generarComprobante()\" [loading]=\"loading\">\n        </button>\n        <button pButton pRipple class=\"p-button p-button-raised\" *ngIf=\"isEsCorreo()\" icon=\"glyphicons glyphicons-envelope\"\n            label=\"{{'enviarCorreo' | translate}}\" (click)=\"enviarCorreo()\" [loading]=\"loading\">\n        </button>\n        <button pButton pRipple class=\"p-button p-button-raised\" *ngIf=\"isEsPublicacion()\" icon=\"glyphicons glyphicons-new-window\"\n            label=\"{{'publicar' | translate}}\" (click)=\"publicar()\" [loading]=\"loading\">\n        </button>\n    </div>\n</p-dialog>\n","import { UnionModel } from 'general-library-union'\n\nexport class VariablePeriodoFechaModel extends UnionModel {\n\n\t\n\tidentificacion: number;\n\tperiodo: String;\n\tvariableFecha: String;\n\tzonaEconomica: String;\n\tcentroCosto: String;\n\tlineaCosto: String;\n\tmateria: String;\n\tsuceso: Date;\n\tcantidad: number;\n\tcantidadMostrar: Object;\n\tvalor: number;\n\tfechaCantidad: Date;\n\tempresa: number;\n\tpago: String;\n\tperiodoori: String;\n\tvalor1: number;\n\tobservacion: String;\n\tvariableNombre: String;\n\tnombreZona: String;\n\tnombreCentro: String;\n\tnombreLinea: String;\n\tnombreMateria: String;\n\ttipo: String;\n\tnomina1: number;\n\tnomina2: number;\n\tfuera: number;\n\tfuera2: number;\n\tconcepto: number;\n\tcodigoVariable: String;\n\tentidad: String;\n\tnombreEntidad: String;\n\tproceso: String;\n\tpresupuestal: String;\n\tdocumento: String;\n\tnombreCompleto: String;\n\thoraInicial: Date;\n\thoraFinal: Date;\n\n\t\n}\n","import { HttpClient, HttpRequest, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport Swal from 'sweetalert2';\nimport { NovedadModel } from '../models/NovedadModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LiquidacionNominaService {\n\n    listProcedure(objetoFiltro: GeneralModel) {\n      throw new Error('Method not implemented.');\n    }\n\n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n      this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    \n    validarHabilitarModificacion( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/validarHabilitarModificacion`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    calculoTotal( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/calculoTotal`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    traerPeriodoEmpleado( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/traerPeriodoEmpleado`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    inicializaConcepto( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/inicializaConcepto`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    actulizarConceptoLista( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/actulizarConceptoLista`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n    actualizarVariableLista( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/actualizarVariableLista`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    actualizarVariableFechaLista( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/actualizarVariableFechaLista`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    aplicarPlanillaVariablePeriodo( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/aplicarPlanillaVariablePeriodo`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    consultarNovedades( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/consultarNovedades`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    aplicarNovedadesNomina( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/aplicarNovedadesNomina`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    eliminarMasivaVariableFecha( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/eliminarMasivaVariableFecha`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    generarRegresiones( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/generarRegresiones`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n    crearRegresionesPeriodo( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/crearRegresionesPeriodo`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    ejecutarDistribucionLineaCosto( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/ejecutarDistribucionLineaCosto`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n    generarReportePlanilla( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/generarReportePlanilla`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n    generarComprobante( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/generarComprobante`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n    publicarComprobante( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/publicarComprobante`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    guardarArchivoPlano( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/guardarArchivoPlano`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n    cargarArchivoPlanoLectura(archivo: File, separador: string, formatoFecha: string) : Observable<any>{\n      let formData = new FormData();\n      formData.append(\"archivo\", archivo);\n      formData.append(\"separador\", separador);\n      formData.append(\"formatoFecha\", formatoFecha);\n      const req = new HttpRequest('POST', `${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/cargarArchivoPlanoLectura`, formData, {\n        reportProgress: true,\n      });\n      return this.httpClient.request(req).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    generarReporteJasperLiquidacionHistoricoEmpleado(general: any): Observable<any> {\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/generarReporteJasperLiquidacionHistoricoEmpleado`, general,{\n        responseType: 'blob'\n      }).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    cargarListaNominaEmpleado(general: any): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/cargarListaNominaEmpleado`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    liquidacionMasivaTemporal(listadoEmpleado,datosLiquidacion) : Observable<any>{\n      let formData = new FormData();\n      formData.append(\"datosLiquidacion\", JSON.stringify(datosLiquidacion));\n      formData.append(\"listadoEmpleado\",JSON.stringify(listadoEmpleado))\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/liquidacionMasivaTemporal`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    eliminarTmpMasiva(lista): Observable<any> {\n      let formData = new FormData();\n      formData.append(\"listaEliminar\", JSON.stringify(lista));\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/eliminarTmpMasiva`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    liquidacionMasivaNovedad(listaNovedad: NovedadModel[], usuario: string, empresa: number, proceso: string){\n      let formData = new FormData();\n      formData.append(\"listaNovedad\", JSON.stringify(listaNovedad));\n      formData.append(\"usuario\",usuario);\n      formData.append(\"empresa\", empresa.toString());\n      formData.append(\"proceso\",proceso);\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/liquidacionMasivaNovedad`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    reversarMasivaNovedad(seleccionados: NovedadModel[],usuario: string): Observable<any> {\n      let formData = new FormData();\n      formData.append(\"seleccionados\", JSON.stringify(seleccionados));\n      formData.append(\"usuario\",usuario);\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/reversarMasivaNovedad`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    eliminarTemporalMasivaNovedad(seleccionados): Observable<any> {\n      let formData = new FormData();\n      formData.append(\"seleccionados\", JSON.stringify(seleccionados));\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/eliminarTemporalMasivaNovedad`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    reversarTemporalMasivaNovedad(seleccionados: NovedadModel[]): Observable<any> {\n      let formData = new FormData();\n      formData.append(\"seleccionados\", JSON.stringify(seleccionados));\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/reversarTemporalMasivaNovedad`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    reversarTodaNomina( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/reversarTodaNomina`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    enviarCorreoComprobante( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/enviarCorreoComprobante`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ToastService, CargarControlFuncionalidadService, GeneralModel, AuthService, UtilsService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { PeriodoEmpleadoModel } from '../../../..//models/PeriodoEmpleadoModel';\nimport { PeriodoModel } from '../../../..//models/PeriodoModel';\nimport { VariablePeriodoFechaModel } from '../../../..//models/VariablePeriodoFechaModel';\nimport { VariableFechaModel } from '../../../../models/VariableFechaModel';\nimport { DatoorganizacionModel } from '../../../../../talento/models/DatoorganizacionModel';\nimport { LineaCostoModel } from '../../../../models/LineaCostoModel';\nimport { EmpresaModel } from '../../../..//models/EmpresaModel';\nimport { LiquidacionNominaService } from '../../../../services/liquidacion-nomina.service';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputHelperSeleccionMateriaComponent } from '../../../../../../shared/componentes/input-helper-seleccion-materia/input-helper-seleccion-materia.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf } from '@angular/common';\nimport { InputHelperVariableFechaComponent } from '../../../../../../shared/componentes/input-helper-variable-fecha/input-helper-variable-fecha.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n\n\n@Component({\n    selector: 'app-popup-variable-fecha-vacacion',\n    templateUrl: './popup-variable-fecha-vacacion.component.html',\n    styleUrls: ['./popup-variable-fecha-vacacion.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, InputHelperVariableFechaComponent, NgIf, CalendarModule, FormsModule, InputTextModule, InputNumberModule, InputHelperSeleccionZonaCentroComponent, DropdownModule, InputHelperSeleccionMateriaComponent, InputTextareaModule, ButtonDirective, Ripple, TranslateModule, InputNumberModule]\n})\nexport class PopupVariableFechaVacacionComponent implements OnInit {\n\n  @Input() public mostrarPopup: boolean;\n  @Input() public nuevo: boolean;\n  @Input() public periodoEmpleado: PeriodoEmpleadoModel\n  @Input() public variablePeriodoFecha;\n  @Output() public regresar = new EventEmitter();\n  @Input() public modo: string;\n  @Input() public botones;\n\n  public tipo: boolean\n  public mostrarFormulario: boolean\n  public variableFecha: VariableFechaModel;\n  public listaCampos: DatoorganizacionModel[] = []\n  public listaEntidadTipoServicio: any[] = []\n  public listaLineaCosto: LineaCostoModel[] = []\n  public empresa: EmpresaModel;\n  public periodo: PeriodoModel;\n  public requerido: boolean = false;\n\n\n  constructor(private generalService: GeneralService,\n    private liqNomService: LiquidacionNominaService,\n    private authService: AuthService,\n    private notificaService: ToastService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private generalPipe: GeneralPipe,\n    private confirmationService: ConfirmationService,\n    public translateService: TranslateService,\n    public utilsService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.cargarListas();    \n  }\n\n  selectVariable(event) {\n    this.variablePeriodoFecha.variableFecha = event.llaveTabla;\n    this.variablePeriodoFecha.variableNombre = event.descripcion;\n    this.variablePeriodoFecha.tipo = event.tipo;\n    this.variablePeriodoFecha.codigoVariable = event.codigo;\n    this.consultaVariableFecha();\n    this.cargarCamposFormularioVariableFecha();\n    this.mostrarFormulario = true;\n    this.tipo = true;\n  }\n\n  async cargarListas() {\n    this.periodo = await this.generalService.queryForObject(new GeneralModel('PeriodoDTO', null, false, { empresa: this.periodoEmpleado.empresa, periodo: this.periodoEmpleado.periodo })).toPromise();\n    this.listaLineaCosto = await this.generalService.queryForList(new GeneralModel('LineaCostoDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), comodinFiltro: '.' })).toPromise();\n  }\n\n  mostrar() {\n    this.mostrarPopup = true;\n    if (this.nuevo) {\n      this.tipo = false;\n      this.mostrarFormulario = false;\n      this.variablePeriodoFecha = new VariablePeriodoFechaModel();\n      this.variablePeriodoFecha.zonaEconomica = this.periodoEmpleado.zonaPK;\n      this.variablePeriodoFecha.nombreZona = this.periodoEmpleado.zonaNombre;\n      this.variablePeriodoFecha.centroCosto = this.periodoEmpleado.centroPK;\n      this.variablePeriodoFecha.nombreCentro = this.periodoEmpleado.centroNombre;\n      this.variablePeriodoFecha.lineaCosto = this.periodoEmpleado.lineaPK;\n      this.variablePeriodoFecha.entidad = null;\n    } else {\n      this.tipo = true;\n      this.mostrarFormulario = true\n      this.variablePeriodoFecha.suceso = this.variablePeriodoFecha.suceso ? new Date(this.variablePeriodoFecha.suceso) : null\n      this.consultaVariableFecha();\n      this.cargarCamposFormularioVariableFecha();\n      this.traerDato();\n    }\n  }\n\n  cargarCamposFormularioVariableFecha() {\n    this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, {\n      llaveBase: this.variablePeriodoFecha.variableFecha,\n      tipo: 'VF',\n      tabla: 'VARIABLEFECHA_VAF'\n    })).subscribe(data => {\n      this.listaCampos = data;\n    })\n  }\n\n  async consultaVariableFecha() {\n    this.generalService.queryForObject(new GeneralModel('VariableFechaDTO', null, false, {\n      llaveTabla: this.variablePeriodoFecha.variableFecha\n    })).subscribe(async data => {\n      this.variableFecha = data;\n      this.empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n      this.generalService.queryForList(new GeneralModel('EntidadDTO', null, false, {\n        filtroTipoServicio: this.variableFecha.tipoServicio,\n        modo: this.empresa.modoCompensacion\n      })).subscribe(data => {\n        this.listaEntidadTipoServicio = data;\n      })\n    })\n  }\n\n  selectCentroCosto(event) {\n    this.variablePeriodoFecha.centroCosto = event.centroCosto\n    this.variablePeriodoFecha.zonaEconomica = event.zonaEconomica\n    this.variablePeriodoFecha.nombreCentro = event.descripcion\n    this.variablePeriodoFecha.nombreZona = event.descripcionZona\n  }\n\n  onSelectMateria(event) {\n    this.variablePeriodoFecha.materia = event.materia;\n    this.variablePeriodoFecha.nombreMateria = event.descripcion;\n  }\n\n  buscarCampo(campo: string) {\n    let objeto = this.listaCampos.find((data) => data.campo == campo);\n    return objeto != null;\n  }\n\n  guardarVariableFecha() {\n    if (this.modo != 'C') {\n      if (this.variablePeriodoFecha.cantidad == null || this.variablePeriodoFecha.cantidad == '') {\n        this.requerido = true;\n        this.notificaService.showError('Faltan campos obligatorios')\n      } else {\n        let valorFormulario = this.variablePeriodoFecha.cantidad;\n        if (this.variablePeriodoFecha.tipo === 'H') {\n          let horaEnDecimal = new Date(valorFormulario);\n          const horas = horaEnDecimal.getHours();\n          const minutos = horaEnDecimal.getMinutes();\n          this.variablePeriodoFecha.cantidad = parseFloat(`${horas.toString().padStart(2, '0')}.${minutos.toString().padStart(2, '0')}`);\n        } else if (this.variablePeriodoFecha.tipo === 'F') {\n          const year = valorFormulario.getFullYear();\n          const month = valorFormulario.getMonth() + 1;\n          const day = valorFormulario.getDate();\n          this.variablePeriodoFecha.cantidad = `${year}${this.padNumber(month)}${this.padNumber(day)}`\n        } else if (this.variablePeriodoFecha.tipo === 'N') {\n          this.variablePeriodoFecha.cantidad = valorFormulario;\n        } else {\n          this.variablePeriodoFecha.cantidad = 0;\n        }\n        if (this.variablePeriodoFecha.horaInicial != null) {\n          this.variablePeriodoFecha.horaInicial = new Date(this.variablePeriodoFecha.horaInicial);\n        }\n        if (this.variablePeriodoFecha.horaFinal != null) {\n          this.variablePeriodoFecha.horaFinal = new Date(this.variablePeriodoFecha.horaFinal);\n        }\n        this.liqNomService.actualizarVariableFechaLista({\n          periodoEmpleado: this.periodoEmpleado,\n          variablePeriodoFecha: this.variablePeriodoFecha,\n          pago: this.periodo.liquidacion\n        }).subscribe(data => {\n          this.notificaService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR)\n          this.ocultar();\n        })\n      }\n    }\n  }\n\n  padNumber(num: number): string {\n    return num.toString().padStart(2, '0');\n  }\n\n  /*Metodo para formatear campos de acuerdo al origen de la variable */\n  traerDato() {\n    if (this.variablePeriodoFecha.tipo === 'H') {\n      let valorEnDecimal = this.variablePeriodoFecha.cantidad;\n      valorEnDecimal = Number(valorEnDecimal.toFixed(2));\n      const horas = Math.floor(valorEnDecimal);\n      const minutosDecimal = (valorEnDecimal - horas) * 100;\n      const minutos = Math.round(minutosDecimal);\n      this.variablePeriodoFecha.cantidad = `${horas.toString().padStart(2, '0')}:${minutos.toString().padStart(2, '0')}`;\n    } else if (this.variablePeriodoFecha.tipo === 'F') {\n      let valorEnNumerico = this.variablePeriodoFecha.cantidad.toString();\n      const year = valorEnNumerico.substr(0, 4);\n      const month = valorEnNumerico.substr(4, 2);\n      const day = valorEnNumerico.substr(6, 2);\n      this.variablePeriodoFecha.cantidad = new Date(`${year}/${month}/${day}`);\n    }\n    if (this.variablePeriodoFecha.horaInicial != null) {\n      let horaEnDecimal = new Date(this.variablePeriodoFecha.horaInicial);\n      const horas = horaEnDecimal.getHours();\n      const minutos = horaEnDecimal.getMinutes();\n      this.variablePeriodoFecha.horaInicial = `${horas.toString().padStart(2, '0')}:${minutos.toString().padStart(2, '0')}`;\n    }\n    if (this.variablePeriodoFecha.horaFinal != null) {\n      let horaEnDecimal = new Date(this.variablePeriodoFecha.horaFinal);\n      const horas = horaEnDecimal.getHours();\n      const minutos = horaEnDecimal.getMinutes();\n      this.variablePeriodoFecha.horaFinal = `${horas.toString().padStart(2, '0')}:${minutos.toString().padStart(2, '0')}`;\n    }\n  }\n\n\n  /*Metodo eliminar registro */\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarVariableFecha();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarVariableFecha() {\n    if (this.modo != 'C') {\n      let borrar: any = this.variablePeriodoFecha;\n      delete borrar.alias\n      delete borrar.nombreTabla\n      delete borrar.cantidad\n      this.generalService.delete(new GeneralModel('VariablePeriodoFechaDTO', null, false, borrar)).subscribe(data => {\n        this.notificaService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR)\n        this.ocultar()\n      })\n    }\n  }\n\n\n\n  ocultar() {\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n  verificarControl(control) {\n    return this.controlFuncionalidad.getControlFuncionalidad(control);\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{ 'variablefecha' | translate }}\" [(visible)]=\"mostrarPopup\" appendTo=\"body\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '55vw' }\" (onShow)=\"mostrar()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n    <div class=\"Inputgroup mt-3\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <!-- VARIABLE -->\n            <div class=\"field col-12 md:col-6 lg:col-12\">\n                <app-input-helper-variable-fecha [readonly]=\"!nuevo\"\n                    [label]=\"nuevo ? '' : (variablePeriodoFecha  ? variablePeriodoFecha.variableNombre : '')\"\n                    (onSelected)=\"selectVariable($event)\">\n                </app-input-helper-variable-fecha>\n            </div>\n        </div>\n    </div>\n    <div class=\"Inputgroup mt-3\" *ngIf=\"mostrarFormulario\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <!-- SUCESO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"suceso\" [(ngModel)]=\"variablePeriodoFecha.suceso\" appendTo=\"body\"\n                        dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"suceso\">{{('suceso') | translate}}</label>\n                </span>\n            </div>\n            <!-- BASE -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"variablePeriodoFecha.tipo === 'N'\">\n                <span class=\"p-float-label\">\n                    <p-inputNumber  [(ngModel)]=\"variablePeriodoFecha.cantidad\"\n                        [maxFractionDigits]=\"5\" mode=\"decimal\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(variablePeriodoFecha.cantidad) && requerido\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(variablePeriodoFecha.cantidad) && requerido\"></p-inputNumber>\n                    <label htmlFor=\" base\">{{'base' | translate}} *</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"variablePeriodoFecha.tipo === 'F'\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"valor\" [(ngModel)]=\"variablePeriodoFecha.cantidad\" appendTo=\"body\"\n                        dateFormat=\"dd/mm/yy\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(variablePeriodoFecha.cantidad) && requerido\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(variablePeriodoFecha.cantidad) && requerido\"></p-calendar>\n                    <label htmlFor=\"base\">{{'base' | translate}} *</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"variablePeriodoFecha.tipo === 'H'\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"variablePeriodoFecha.cantidad\" [timeOnly]=\"true\" [hourFormat]=\"'24'\"\n                        inputId=\"timeonly\" DateFormat=\"HH:mm:ss\" appendTo=\"body\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(variablePeriodoFecha.cantidad) && requerido\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(variablePeriodoFecha.cantidad) && requerido\"></p-calendar>\n                    <label htmlFor=\"base\">{{'base' | translate}} *</label>\n                </span>\n            </div>\n            <!-- VALOR -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-inputNumber [(ngModel)]=\"variablePeriodoFecha.valor\" [minFractionDigits]=\"2\"></p-inputNumber>\n                    <label htmlFor=\"valor\">{{('valor') | translate}}</label>\n                </span>\n            </div>\n            <!-- ZONA ECONOMICA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('zonaeconomica')\">\n                <app-input-helper-seleccion-zona-centro [readonly]=\"!nuevo\" [showDialog]=\"false\"\n                    [label]=\"variablePeriodoFecha.nombreZona\" (onSelected)=\"selectCentroCosto($event)\"\n                    [labelIntput]=\"translateService.instant('zonaeconomica') \" [mostrarZonaLabel]=\"true\">\n                </app-input-helper-seleccion-zona-centro>\n            </div>\n            <!-- CENTRO COSTO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('zonaeconomica')\">\n                <span class=\"p-float-label\">\n                    <input pInputText [(ngModel)]=\"variablePeriodoFecha.nombreCentro\" [disabled]=\"true\" />\n                    <label htmlFor=\"centrocosto\">{{('centrocosto') | translate}}</label>\n                </span>\n            </div>\n            <!-- LINEA COSTO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('lineacosto')\">\n                <span class=\"p-float-label\">\n                    <p-dropdown [options]=\"listaLineaCosto\" [(ngModel)]=\"variablePeriodoFecha.lineaCosto\"\n                        optionLabel=\"descripcion\" optionValue=\"lineaCosto\" appendTo=\"body\"\n                        [autoZIndex]=\"false\"></p-dropdown>\n                    <label htmlFor=\"lineacosto\">{{('lineacosto') | translate}}</label>\n                </span>\n            </div>\n            <!-- ACTIVIDAD -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('materia')\">\n                <app-input-helper-seleccion-materia [readonly]=\"false\" [showDialog]=\"false\"\n                    [value]=\"variablePeriodoFecha.materia\" [label]=\"nuevo ? '' : variablePeriodoFecha.nombreMateria\"\n                    (onSelected)=\"onSelectMateria($event)\"></app-input-helper-seleccion-materia>\n            </div>\n            <!-- ENTIDAD -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('entidad')\">\n                <span class=\"p-float-label\">\n                    <p-dropdown [options]=\"listaEntidadTipoServicio\" [(ngModel)]=\"variablePeriodoFecha.entidad\"\n                        optionLabel=\"descripcion\" optionValue=\"llave\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [autoDisplayFirst]=\"false\"></p-dropdown>\n                    <label htmlFor=\"entidad\">{{('entidad') | translate}}</label>\n                </span>\n            </div>\n            <!-- PRESUPUESTAL -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('presupuestal')\">\n                <span class=\"p-float-label\">\n                    <input pInputText [maxlength]=\"30\" [(ngModel)]=\"variablePeriodoFecha.presupuestal\" />\n                    <label htmlFor=\"presupuestal\">{{('presupuestal') | translate}}</label>\n                </span>\n            </div>\n            <!-- HORA INICIAL -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('horaInicial')\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"variablePeriodoFecha.horaInicial\" [ngModelOptions]=\"{standalone: true}\"\n                        [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\" DateFormat=\"HH:mm:ss\"\n                        defaultDateValue=\"!hora ? new Date() : hora\"></p-calendar>\n                    <label htmlFor=\"hora\">{{'horainicial' | translate}}</label>\n                </span>\n            </div>\n            <!-- HORA FINAL -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"buscarCampo('horaFinal')\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"variablePeriodoFecha.horaFinal\" [ngModelOptions]=\"{standalone: true}\"\n                        [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\" DateFormat=\"HH:mm:ss\"\n                        defaultDateValue=\"!hora ? new Date() : hora\"></p-calendar>\n                    <label htmlFor=\"hora\">{{'horafinal' | translate}}</label>\n                </span>\n            </div>\n            <!-- OBSERVACION -->\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea [(ngModel)]=\"variablePeriodoFecha.observacion\" rows=\"5\" cols=\"30\"\n                        [maxlength]=\"200\" class=\"w-full min-h-100 max-h-250\">\n                    </textarea>\n                    <label htmlFor=\"observacion\">{{('observacion') | translate}}</label>\n                </span>\n            </div>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('manvac:liquidar')&& nuevo && variablePeriodoFecha && variablePeriodoFecha.variableFecha && botones\"\n            label=\"{{'link_guardar' | translate}}\" (click)=\"guardarVariableFecha()\"></button>\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('manvac:liquidar') && !nuevo && variablePeriodoFecha && variablePeriodoFecha.variableFecha && botones\"\n            label=\"{{'link_actualizar' | translate}}\" (click)=\"guardarVariableFecha()\"></button>\n        <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('manvac:liquidar') && !nuevo && botones\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"showEliminarConfirmDialog()\"></button>\n    </div>\n</p-dialog>","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\nimport { Constantes } from \"../../../shared/constantes/Constantes\";\n\n@Pipe({\n    name: 'historicosPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class HistoricoPipe implements PipeTransform {\n\n    PROGRAMADO = \"P\";\n    LIQUIDADO = \"L\";\n\n    DESPROGRAMADO = \"PROGRAMADO\";\n    DESLIQUIDADO = \"LIQUIDADO\";\n\n\n    MAPAESTADO =\n        [\n            { codigo: this.PROGRAMADO, nombre: this.DESPROGRAMADO },\n            { codigo: this.LIQUIDADO, nombre: this.DESLIQUIDADO }\n        ]\n\n    PRINCIPAL = \"P\";\n    SECUNDARIO = Constantes.CONSTANTE_SI;\n    NOAPLICA = Constantes.PUNTO;\n\n    DESPRINCIPAL = \"PRINCIPAL\";\n    DESSECUNDARIO = \"SECUNDARIO\";\n    DESNOAPLICA = \"NO APLICA\";\n\n    MAPATIPO =\n        [\n            { codigo: this.PRINCIPAL, nombre: this.DESPRINCIPAL },\n            { codigo: this.SECUNDARIO, nombre: this.DESSECUNDARIO },\n            { codigo: this.NOAPLICA, nombre: this.DESNOAPLICA },\n        ]\n\n\n    ACTOSADMINISTRATIVOS = \"A\";\n    CAMBIOSEMPLEADOS = \"C\";\n    PROGRAMACIONAUSENTISMO = \"P\";\n    PERIODONOMINA = Constantes.CONSTANTE_NO;\n\n    DESACTOSADMINISTRATIVOS = \"ACTOS ADMINISTRATIVO\";\n    DESCAMBIOSEMPLEADOS = \"CAMBIOS EMPLEADO\";\n    DESPROGRAMACIONAUSENTISMO = \"PROGRAMACION AUSENTISMO\";\n    DESPERIODONOMINA = \"PERIODO NOMINA\";\n\n    MAPAORIGEN =\n        [\n            { codigo: this.NOAPLICA, nombre: this.DESNOAPLICA },\n            { codigo: this.ACTOSADMINISTRATIVOS, nombre: this.DESACTOSADMINISTRATIVOS },\n            { codigo: this.CAMBIOSEMPLEADOS, nombre: this.DESCAMBIOSEMPLEADOS },\n            { codigo: this.PROGRAMACIONAUSENTISMO, nombre: this.DESPROGRAMACIONAUSENTISMO },\n            { codigo: this.PERIODONOMINA, nombre: this.DESPERIODONOMINA },\n        ]\n\n    Nomina = Constantes.CONSTANTE_NO;\n    FueradeNomina = \"D\";\n    NominaExtraordinaria = \"X\";\n    TerminacionContratoTrabajo = \"T\";\n    ReliquidacionContratoTrabajoCausado = \"R\";\n    RegresionPeriodoCausado = \"I\";\n    RegresionPeriodo = \"G\";\n    Vacaciones = \"W\";\n    VacacionesNomina = \"A\";\n    VacacionesEntidad = \"B\";\n    NetoTerminacionContratoTrabajo = \"K\";\n\n    TerminacionContratoTrabajo_Pago_L = \"L\";\n    TerminacionContratoTrabajo_Pago_M = \"M\";\n    TerminacionContratoTrabajo_Pago_P = \"P\";\n\n    ReliquidacionContratoTrabajo_E = \"E\";\n    ReliquidacionContratoTrabajo_O = \"O\";\n    ReliquidacionContratoTrabajo_H = \"H\";\n\n    NetoReliquidacionContratoTrabajo = \"Q\";\n    NetoLiquidacionVacaciones = \"V\";\n    VACACION_FINAL = \"F\";\n\n\n    DesNomina = \"N\" + Constantes.O_TIDLE_MIN + \"mina\";\n    DesFueradeNomina = \"Fuera de N\" + Constantes.O_TIDLE_MIN + \"mina\";\n    DesNominaExtraordinaria = \"N\" + Constantes.O_TIDLE_MIN + \"mina Extraordinaria\";\n    DesTerminacionContratoTrabajo = \"Terminaci\" + Constantes.O_TIDLE_MIN + \"n contrato trabajo\";\n    DesReliquidacionContratoTrabajoCausado = \"Reliquidacion contrato trabajo\";\n    DesRegresionPeriodoCausado = \"Regresion periodo\";\n    DesRegresionPeriodo = \"Regresion periodo\";\n    DesVacaciones = \"Vacaciones\";\n    DesVacacionesNomina = \"Vacaciones por N\" + Constantes.O_TIDLE_MIN + \"mina\";\n    DesVacacionesEntidad = \"Vacaciones Entidad Pago\";\n    DesNetoTerminacionContratoTrabajo = \"Neto terminacion contrato trabajo\";\n    DesTerminacionContratoTrabajo_Pago_L = \"Terminacion contrato trabajo pago Directo\";\n    DesTerminacionContratoTrabajo_Pago_M = \"Terminacion contrato trabajo pago por Nomina\";\n    DesTerminacionContratoTrabajo_Pago_P = \"Terminacion contrato trabajo pago por Entidad Pago\";\n\n    DesReliquidacionContratoTrabajo_H = \"Reliquidacion contrato trabajo pago por Nomina\";\n    DesReliquidacionContratoTrabajo_O = \"Reliquidacion contrato trabaj pago por Entidad Pago\";\n    DesReliquidacionContratoTrabajo_E = \"Reliquidacion contrato trabaj pago Directo\";\n\n    DesNetoReliquidacionContratoTrabajo = \"Neto reliquidacion contrato de trabajo\";\n    DesNetoLiquidacionVacaciones = \"Neto liquidacion de vacaciones\";\n    VACACION_FINAL_DESC = \"Vacaci\" + Constantes.O_TIDLE_MIN + \"n Final\";\n\n    MAPALIQUIDADO =\n        [\n            { codigo: this.Nomina, nombre: this.DesNomina },\n            { codigo: this.FueradeNomina, nombre: this.DesFueradeNomina },\n            { codigo: this.NominaExtraordinaria, nombre: this.DesNominaExtraordinaria },\n            { codigo: this.RegresionPeriodo, nombre: this.DesRegresionPeriodo },\n            { codigo: this.Vacaciones, nombre: this.DesVacaciones },\n            { codigo: this.VacacionesNomina, nombre: this.DesVacacionesNomina },\n            { codigo: this.VacacionesEntidad, nombre: this.DesVacacionesEntidad },\n            { codigo: this.NetoTerminacionContratoTrabajo, nombre: this.DesNetoTerminacionContratoTrabajo },\n            { codigo: this.TerminacionContratoTrabajo_Pago_L, nombre: this.DesTerminacionContratoTrabajo_Pago_L },\n            { codigo: this.TerminacionContratoTrabajo_Pago_M, nombre: this.DesTerminacionContratoTrabajo_Pago_M },\n            { codigo: this.TerminacionContratoTrabajo_Pago_P, nombre: this.DesTerminacionContratoTrabajo_Pago_P },\n            { codigo: this.ReliquidacionContratoTrabajo_H, nombre: this.DesReliquidacionContratoTrabajo_H },\n            { codigo: this.ReliquidacionContratoTrabajo_O, nombre: this.DesReliquidacionContratoTrabajo_O },\n            { codigo: this.ReliquidacionContratoTrabajo_E, nombre: this.DesReliquidacionContratoTrabajo_E },\n            { codigo: this.NetoReliquidacionContratoTrabajo, nombre: this.DesNetoReliquidacionContratoTrabajo },\n            { codigo: this.NetoLiquidacionVacaciones, nombre: this.DesNetoLiquidacionVacaciones },\n            { codigo: this.VACACION_FINAL, nombre: this.VACACION_FINAL_DESC },\n        ]\n\n    MAPACAUSADO =\n        [\n            { codigo: this.Nomina, nombre: this.DesNomina },\n            { codigo: this.FueradeNomina, nombre: this.DesFueradeNomina },\n            { codigo: this.NominaExtraordinaria, nombre: this.DesNominaExtraordinaria },\n            { codigo: this.TerminacionContratoTrabajo, nombre: this.DesTerminacionContratoTrabajo },\n            { codigo: this.ReliquidacionContratoTrabajoCausado, nombre: this.DesReliquidacionContratoTrabajoCausado },\n            { codigo: this.RegresionPeriodoCausado, nombre: this.DesRegresionPeriodoCausado },\n            { codigo: this.VACACION_FINAL, nombre: this.VACACION_FINAL_DESC },\n        ]\n\n    MAPATODO =\n        [\n            { codigo: this.Nomina, nombre: this.DesNomina },\n            { codigo: this.FueradeNomina, nombre: this.DesFueradeNomina },\n            { codigo: this.NominaExtraordinaria, nombre: this.DesNominaExtraordinaria },\n            { codigo: this.RegresionPeriodo, nombre: this.DesRegresionPeriodo },\n            { codigo: this.Vacaciones, nombre: this.DesVacaciones },\n            { codigo: this.VacacionesNomina, nombre: this.DesVacacionesNomina },\n            { codigo: this.VacacionesEntidad, nombre: this.DesVacacionesEntidad },\n            { codigo: this.NetoTerminacionContratoTrabajo, nombre: this.DesNetoTerminacionContratoTrabajo },\n            { codigo: this.TerminacionContratoTrabajo_Pago_L, nombre: this.DesTerminacionContratoTrabajo_Pago_L },\n            { codigo: this.TerminacionContratoTrabajo_Pago_M, nombre: this.DesTerminacionContratoTrabajo_Pago_M },\n            { codigo: this.TerminacionContratoTrabajo_Pago_P, nombre: this.DesTerminacionContratoTrabajo_Pago_P },\n            { codigo: this.ReliquidacionContratoTrabajo_H, nombre: this.DesReliquidacionContratoTrabajo_H },\n            { codigo: this.ReliquidacionContratoTrabajo_O, nombre: this.DesReliquidacionContratoTrabajo_O },\n            { codigo: this.ReliquidacionContratoTrabajo_E, nombre: this.DesReliquidacionContratoTrabajo_E },\n            { codigo: this.NetoReliquidacionContratoTrabajo, nombre: this.DesNetoReliquidacionContratoTrabajo },\n            { codigo: this.NetoLiquidacionVacaciones, nombre: this.DesNetoLiquidacionVacaciones },\n            { codigo: this.VACACION_FINAL, nombre: this.VACACION_FINAL_DESC },\n            { codigo: this.TerminacionContratoTrabajo, nombre: this.DesTerminacionContratoTrabajo },\n            { codigo: this.ReliquidacionContratoTrabajoCausado, nombre: this.DesReliquidacionContratoTrabajoCausado },\n            { codigo: this.RegresionPeriodoCausado, nombre: this.DesRegresionPeriodoCausado },\n        ]\n\n\n    AUSENTISMOS_PROCESO_VACACION = \"U\";\n    AUSENTISMO_PROCESO_NOMINA = \"A\";\n    PERIODICA_PROCESO_VACACION = \"O\";\n    PERIODICA_PROCESO_NOMINA = \"P\";\n    PROCESO_VARIABLES_FECHA = \"F\";\n    NOMINA = \"N\";\n    VACACIONESPAGADASPORCHECQUE = \"W\";\n    NOMINA_EXTRA = \"X\";\n    AJUSTE_HISTORICO = \"D\";\n    RELIQUIDACION_CONTRATO = \"R\";\n    REGRESION = \"I\";\n\n\n    DES_AUSENTISMOS_PROCESO_VACACION = \" Ausentismos Proceso Vacaci\\u00F3n\";\n    DES_AUSENTISMO_PROCESO_NOMINA = \"Ausentismo Proceso N\\u00F3mina\";\n    DES_PERIODICA_PROCESO_VACACION = \"Peri\\u00F3dica Proceso Vacaci\\u00F3n\";\n    DES_PERIODICA_PROCESO_NOMINA = \"Peri\\u00F3dica Proceso N\\u00F3mina\";\n    DES_PROCESO_VARIABLES_FECHA = \"Proceso Variables por Fecha\";\n    DES_NOMINA = \"Nomina\";\n    DES_NOMINA_EXTRA = \"X\";\n    DES_VACACIONESPAGADASPORCHECQUE = \"Vacaciones Pagadas Por Cheque\";\n    DES_AJUSTE_HISTORICO = \"Ajuste Historico\";\n    DES_RELIQUIDACION_CONTRATO = \"Reliquidacion Contrato\";\n    DES_REGRESION = \"Regresion\";\n\n\n\n    MAPA_ORIGEN_PERIODO_EMPLEADO =\n        [\n            { codigo: this.AUSENTISMOS_PROCESO_VACACION, nombre: this.DES_AUSENTISMOS_PROCESO_VACACION },\n            { codigo: this.AUSENTISMO_PROCESO_NOMINA, nombre: this.DES_AUSENTISMO_PROCESO_NOMINA },\n            { codigo: this.PERIODICA_PROCESO_VACACION, nombre: this.DES_PERIODICA_PROCESO_VACACION },\n            { codigo: this.PERIODICA_PROCESO_NOMINA, nombre: this.DES_PERIODICA_PROCESO_NOMINA },\n            { codigo: this.PROCESO_VARIABLES_FECHA, nombre: this.DES_PROCESO_VARIABLES_FECHA },\n            { codigo: this.NOMINA, nombre: this.DES_NOMINA },\n            { codigo: this.VACACIONESPAGADASPORCHECQUE, nombre: this.DES_VACACIONESPAGADASPORCHECQUE },\n            { codigo: this.NOMINA_EXTRA, nombre: this.DES_NOMINA_EXTRA },\n            { codigo: this.AJUSTE_HISTORICO, nombre: this.DES_AJUSTE_HISTORICO },\n            { codigo: this.RELIQUIDACION_CONTRATO, nombre: this.DES_RELIQUIDACION_CONTRATO },\n            { codigo: this.REGRESION, nombre: this.DES_REGRESION },\n            { codigo: this.TerminacionContratoTrabajo, nombre: this.DesTerminacionContratoTrabajo },\n            { codigo: this.RegresionPeriodo, nombre: this.DesRegresionPeriodo },\n            { codigo: this.NetoLiquidacionVacaciones, nombre: this.DesNetoLiquidacionVacaciones },\n        ]\n\n\n    MAPACONCEPTOS =\n        [\n            { codigo: this.Nomina, nombre: this.DesNomina },\n            { codigo: this.FueradeNomina, nombre: this.DesFueradeNomina },\n            { codigo: this.NominaExtraordinaria, nombre: this.DesNominaExtraordinaria },\n            { codigo: this.RegresionPeriodo, nombre: this.DesRegresionPeriodo },\n            { codigo: this.TerminacionContratoTrabajo, nombre: this.DesTerminacionContratoTrabajo },\n            { codigo: this.ReliquidacionContratoTrabajoCausado, nombre: this.DesReliquidacionContratoTrabajoCausado },\n            { codigo: this.RegresionPeriodoCausado, nombre: this.DesRegresionPeriodoCausado },\n            { codigo: this.Vacaciones, nombre: this.DesVacaciones },\n            { codigo: this.VacacionesNomina, nombre: this.DesVacacionesNomina },\n            { codigo: this.VacacionesEntidad, nombre: this.DesVacacionesEntidad },\n            { codigo: this.NetoTerminacionContratoTrabajo, nombre: this.DesNetoTerminacionContratoTrabajo },\n            { codigo: this.TerminacionContratoTrabajo_Pago_L, nombre: this.DesTerminacionContratoTrabajo_Pago_L },\n            { codigo: this.TerminacionContratoTrabajo_Pago_M, nombre: this.DesTerminacionContratoTrabajo_Pago_M },\n            { codigo: this.TerminacionContratoTrabajo_Pago_P, nombre: this.DesTerminacionContratoTrabajo_Pago_P },\n            { codigo: this.ReliquidacionContratoTrabajo_H, nombre: this.DesReliquidacionContratoTrabajo_H },\n            { codigo: this.ReliquidacionContratoTrabajo_O, nombre: this.DesReliquidacionContratoTrabajo_O },\n            { codigo: this.ReliquidacionContratoTrabajo_E, nombre: this.DesReliquidacionContratoTrabajo_E },\n            { codigo: this.NetoReliquidacionContratoTrabajo, nombre: this.DesNetoReliquidacionContratoTrabajo },\n            { codigo: this.NetoLiquidacionVacaciones, nombre: this.DesNetoLiquidacionVacaciones },\n            { codigo: this.VACACION_FINAL, nombre: this.VACACION_FINAL_DESC },\n        ]\n\n\n    transform(value: any, ...args: any): any {\n        let result = value;        \n        if (args[0] == 'mapLiquidado') { this.MAPALIQUIDADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'mapCausado') { this.MAPACAUSADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'mapOrigen') { this.MAPA_ORIGEN_PERIODO_EMPLEADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'mapTodo') { this.MAPATODO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'mapOrigenRergesion') { this.MAPAORIGEN.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'mapTipo') { this.MAPATIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] === 'mapEstado') { const estado = this.MAPAESTADO.find(data => data.codigo === value); result = estado ? estado.nombre : '';}\n        return result;\n    }\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ComprobanteVacacionService {\n\n    listProcedure(objetoFiltro: GeneralModel) {\n        throw new Error('Method not implemented.');\n    }\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n            //Llamado a interceptor\n            this.errorInterceptor.showError(JSON.stringify(error.error));\n            // A client-side or network error occurred. Handle it accordingly.\n            console.error('An error occurred:', error.error);\n        } else {\n            // The backend returned an unsuccessful response code.\n            // The response body may contain clues as to what went wrong.\n            console.error(\n                `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    traerComprobanteVacacion(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/vacaciones/traerComprobanteVacacion`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    actulizarConcepto(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/vacaciones/actulizarConcepto`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    eliminarConcepto(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/vacaciones/eliminarConcepto`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    actualizarVariableLista(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/vacaciones/actualizarVariableLista`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    borrarVariableLista(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/vacaciones/borrarVariableLista`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    generarReporteJasperGeneracionVacaciones(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/vacaciones/generarReporteJasperGeneracionVacaciones`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n}","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CargarControlFuncionalidadService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { ComprobanteVacacionService } from '../../../../services/comprobanteVacacion.service';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { HistoricoPipe } from '../../../../pipes/historicos.pipe';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputHelperSeleccionVariableComponent } from '../../../../../../shared/componentes/input-helper-seleccion-variable/input-helper-seleccion-variable.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-popup-variable-vacacion',\n    templateUrl: './popup-variable-vacacion.component.html',\n    styleUrls: ['./popup-variable-vacacion.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, FormsModule, ReactiveFormsModule, InputHelperSeleccionVariableComponent, InputHelperSeleccionZonaCentroComponent, InputTextModule, NgIf, CalendarModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupVariableVacacionComponent implements OnInit {\n\n  @Input() public ausenciaVarDTO;\n  @Input() public variablePeriodoEmpleadoDTO;\n  @Input() public mostrarPopUp: boolean;\n  @Input() public isNew: boolean;\n  @Input() public botones;\n  @Output() public regresar = new EventEmitter();\n\n  formPeriodoEmpleado: FormGroup;\n  horaFormateada;\n  fechaFormateada;\n  clickGuardar: boolean = false;\n\n  constructor(\n    private formBuilder: FormBuilder,\n    private confirmationService: ConfirmationService,\n    private notificacionesBusService: ToastService,\n    private controlFuncionalidad: CargarControlFuncionalidadService,\n    private historicosPipe: HistoricoPipe,\n    private comprobanteVacacionService: ComprobanteVacacionService,\n    public translateService: TranslateService,\n    public utilsService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.validarFormulario();\n    if (!this.isNew) {\n      this.traerDato();\n    }\n  }\n\n  validarFormulario() {\n    this.formPeriodoEmpleado = this.formBuilder.group({\n      variableLlave: new FormControl(this.ausenciaVarDTO.variableLlave, [Validators.required]),\n      variableNombre: new FormControl(this.ausenciaVarDTO.variableNombre),\n      zonaPK: new FormControl(this.ausenciaVarDTO.zonaPK, [Validators.required]),\n      centroPK: new FormControl(this.ausenciaVarDTO.centroPK),\n      nombreZona: new FormControl(this.ausenciaVarDTO.nombreZona),\n      nombreCentro: new FormControl(this.ausenciaVarDTO.nombreCentro),\n      valor: new FormControl(this.ausenciaVarDTO.valor),\n      tipo: new FormControl(this.ausenciaVarDTO.tipo)\n    })    \n  }\n\n  /*Metodo Carga Variable */\n  onSelectVariable(event) {\n    let temp = event;\n    this.ausenciaVarDTO.variableNombre = temp.descripcion;\n    this.ausenciaVarDTO.variableLlave = temp.variable;\n    this.ausenciaVarDTO.tipo = temp.tipo;\n    this.formPeriodoEmpleado.get('variableLlave').setValue(temp.variable);\n    this.formPeriodoEmpleado.get('variableNombre').setValue(temp.descripcion);\n    this.formPeriodoEmpleado.get('tipo').setValue(temp.tipo);\n    this.formPeriodoEmpleado.get('valor').setValue(null);\n  }\n\n\n  /*Metodo Carga Zona */\n  onSelectZonaEconomica(event) {\n    let temp = event;\n    this.ausenciaVarDTO.nombreCentro = temp.descripcion;\n    this.ausenciaVarDTO.centroPK = temp.centroCosto;\n    this.ausenciaVarDTO.nombreZona = temp.descripcionZona;\n    this.ausenciaVarDTO.zonaPK = temp.zonaEconomica;\n    this.formPeriodoEmpleado.get('zonaPK').setValue(temp.zonaEconomica);\n    this.formPeriodoEmpleado.get('nombreZona').setValue(temp.descripcionZona);\n    this.formPeriodoEmpleado.get('centroPK').setValue(temp.centroCosto);\n    this.formPeriodoEmpleado.get('nombreCentro').setValue(temp.descripcion);\n  }\n\n  /*metodo actualizar/crear variable */\n  async actualizar() {    \n    if (this.formPeriodoEmpleado.valid) {\n      let valorFormulario = this.formPeriodoEmpleado.get('valor').value;\n      if (this.ausenciaVarDTO.tipo === 'H') {\n        let horaEnDecimal = new Date(this.formPeriodoEmpleado.value.valor);\n        const horas = horaEnDecimal.getHours();\n        const minutos = horaEnDecimal.getMinutes();\n        this.ausenciaVarDTO.valor = parseFloat(`${horas.toString().padStart(2, '0')}.${minutos.toString().padStart(2, '0')}`);\n      } else if (this.ausenciaVarDTO.tipo === 'F') {\n        const year = valorFormulario.getFullYear();\n        const month = valorFormulario.getMonth() + 1;\n        const day = valorFormulario.getDate();\n        this.ausenciaVarDTO.valor = `${year}${this.padNumber(month)}${this.padNumber(day)}`\n      } else if (this.ausenciaVarDTO.tipo === 'N') {\n        this.ausenciaVarDTO.valor = valorFormulario;\n      } else {\n        this.ausenciaVarDTO.valor = 0;\n      }\n      await this.comprobanteVacacionService.actualizarVariableLista({\n        periodoBase: this.variablePeriodoEmpleadoDTO,\n        variablePeriodo: this.ausenciaVarDTO,\n        pago: this.historicosPipe.NOMINA\n      }).toPromise();\n      if (this.ausenciaVarDTO.empresa == null) {\n        this.notificacionesBusService.showSuccess('La variable se agreg' + Constantes.O_TIDLE_MIN + ' correctamente');\n      } else {\n        this.notificacionesBusService.showSuccess('La variable se actualiz' + Constantes.O_TIDLE_MIN + ' correctamente');\n      }\n      this.ocultar();\n    } else {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      Object.keys(this.formPeriodoEmpleado.controls).forEach((key) => {\n        if (this.formPeriodoEmpleado.get(key).errors) {\n          if(key == 'variableLlave' || key == 'zonaPK'){\n            this.clickGuardar = true;\n          }\n          this.formPeriodoEmpleado.get(key).markAsDirty();\n        };\n      });\n    }\n  }\n\n  padNumber(num: number): string {\n    return num.toString().padStart(2, '0');\n  }\n\n  /*Metodo para formatear campos de acuerdo al origen de la variable */\n  traerDato() {\n    this.horaFormateada = null;\n    this.fechaFormateada = null;    \n    if (this.ausenciaVarDTO.tipo === 'H') {\n      let valorEnDecimal = this.ausenciaVarDTO.valor;\n      valorEnDecimal = Number(valorEnDecimal.toFixed(2));\n      const horas = Math.floor(valorEnDecimal);\n      const minutosDecimal = (valorEnDecimal - horas) * 100;\n      const minutos = Math.round(minutosDecimal);\n      this.horaFormateada = `${horas.toString().padStart(2, '0')}:${minutos.toString().padStart(2, '0')}`;\n    } else if (this.ausenciaVarDTO.tipo === 'F') {\n      let valorEnNumerico = this.ausenciaVarDTO.valor.toString();\n      const year = valorEnNumerico.substr(0, 4);\n      const month = valorEnNumerico.substr(4, 2);\n      const day = valorEnNumerico.substr(6, 2);\n      this.fechaFormateada = new Date(`${year}/${month}/${day}`);\n    }\n  }\n\n\n  /*Metodo eliminar registro */\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async eliminarRegistro() {\n    await this.comprobanteVacacionService.borrarVariableLista({\n      periodoBase: this.variablePeriodoEmpleadoDTO,\n      variablePeriodo: this.ausenciaVarDTO\n    }).toPromise();\n    this.notificacionesBusService.showSuccess('La variable ha sido borrada');\n    this.ocultar();\n  }\n\n  /*Metodo mostrar popUp */\n  mostrar() {\n    this.mostrarPopUp = true;\n  }\n\n  /*Metodo cerrar popUP */\n  ocultar() {\n    this.mostrarPopUp = false;\n    this.regresar.emit();\n  }\n\n  verificarControl(control) {\n    return this.controlFuncionalidad.getControlFuncionalidad(control);\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{ 'variable' | translate }}\" [(visible)]=\"mostrarPopUp\"\n    [breakpoints]=\"{ '900px': '75vw', '890px': '100vw' }\" [style]=\"{ width: '30vw' }\" (onShow)=\"mostrar()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n    <form [formGroup]=\"formPeriodoEmpleado\">\n        <div class=\"Inputgroup mt-3\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <!-- VARIABLE -->\n                <div class=\"field col-12 md:col-6 lg:col-12\">\n                    <app-input-helper-seleccion-variable formControlName=\"variableLlave\" required\n                        [label]=\"(this.formPeriodoEmpleado.get('variableLlave').value ? this.formPeriodoEmpleado.get('variableLlave').value+ ' - ' +this.formPeriodoEmpleado.get('variableNombre').value: '')\"\n                        (onSelected)=\"onSelectVariable($event)\" [readonly]=\"!isNew ? true : false\"\n                        [booleano]=\"(clickGuardar && !(formPeriodoEmpleado.get('variableLlave').value))  ? true : false\"\n                        [labelIntput]=\"translateService.instant('variable') + ' *'\">\n                    </app-input-helper-seleccion-variable>\n                </div>\n                <!-- ZONA ECONOMICA -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <app-input-helper-seleccion-zona-centro [readonly]=\"false\" [showDialog]=\"false\"\n                            formControlName=\"zonaPK\" required\n                            [label]=\"this.formPeriodoEmpleado.get('nombreZona').value ? this.formPeriodoEmpleado.get('nombreZona').value : ''\"\n                            (onSelected)=\"onSelectZonaEconomica($event)\" [labelIntput]=\"translateService.instant('zonaeconomica') + ' *'\"\n                            [booleano]=\"(clickGuardar && !(formPeriodoEmpleado.get('zonaPK').value))  ? true : false\"\n                            [readonly]=\"!isNew ? true : false\" (keydown.enter)=\"handleEnterKey($event)\"\n                            [mostrarX]=\"true\" [mostrarZonaLabel]=\"true\" [labelHeader]=\"translateService.instant('zonaeconomica')\">\n                        </app-input-helper-seleccion-zona-centro>\n                    </span>\n                </div>\n                <!-- CENTRO COSTO -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"centrocosto\" formControlName=\"nombreCentro\" required>\n                        <label htmlFor=\"centrocosto\">{{'centrocosto' | translate}} *</label>\n                    </span>\n                </div>\n                <!-- VALOR -->\n                <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"formPeriodoEmpleado.value.tipo === 'N'\">\n                    <span class=\"p-float-label\">\n                        <input type=\"text\" pInputText id=\"id_devengo\" formControlName=\"valor\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '')\" [required]=\"true\">\n                        <label htmlFor=\" valor\">{{'valor' | translate}} * </label>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"formPeriodoEmpleado.value.tipo === 'F'\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [showIcon]=\"true\" id=\"valor\" [(ngModel)]=\"fechaFormateada\" formControlName=\"valor\"\n                            appendTo=\"body\" dateFormat=\"dd/mm/yy\" [required]=\"true\"></p-calendar>\n                        <label htmlFor=\"valor\">{{'valor' | translate}} * </label>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"formPeriodoEmpleado.value.tipo === 'H'\">\n                    <span class=\"p-float-label\">\n                        <p-calendar formControlName=\"valor\"  [(ngModel)]=\"this.horaFormateada\"\n                            [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\" DateFormat=\"HH:mm:ss\"\n                            defaultDateValue=\"!hora ? new Date() : hora\" appendTo=\"body\" [required]=\"true\"></p-calendar>\n                        <label htmlFor=\"valor\">{{'valor' | translate}} * </label>\n                    </span>\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                *ngIf=\"!isNew && verificarControl('manvac:liquidar') && botones\" icon=\"glyphicons glyphicons-refresh\"\n                label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button-outlined\"\n                *ngIf=\"!isNew && verificarControl('manvac:liquidar') && botones\" icon=\"glyphicons glyphicons-bin\"\n                label=\"{{'link_eliminar' | translate}}\" (click)=\"showEliminarConfirmDialog()\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                *ngIf=\"isNew && verificarControl('manvac:liquidar') && botones\" icon=\"glyphicons glyphicons-floppy-save\"\n                label=\"{{'link_guardar' | translate}}\" (click)=\"actualizar()\">\n            </button>\n        </div>\n    </form>\n</p-dialog>\n","import { UnionModel } from 'general-library-union'\n\nexport class TipoServicioModel extends UnionModel {\n\n\ttipoServicio: string;\n\tdescripcion: string;\n\tliquidacion: string;\n\ttituloValor1: string;\n\ttituloValor2: string;\n\ttituloValor3: string;\n\ttituloValor4: string;\n\tcodigoAlterno: number;\n\tunico: string;\n\ttituloValor5: string;\n\tpais: string;\n\tempresa: number;\n\tformatoTitulo1: string;\n\tformatoTitulo2: string;\n\tformatoTitulo3: string;\n\tformatoTitulo4: string;\n\tformatoTitulo5: string;\n    tipoServicioExterno: string;\n    filtroBusquedaPaisSustituto: string;\n    tituloReferencia: string;\n    tituloValor: string;\n    tituloTipo: string;\n    tituloSucuarsalReferencia: string;\n    tituloCiclo: string;\n    tituloBeneficiario: string;\n    tituloTipoReferencia: string;\n    busqueda: string;\n\tbeneficiario: string;\n\tnoDepende: string;\n\tnoDependeLiq: string;\n\tjasperGenerado: string;\n\ttituloMotivo: string;\n\ttipoPeriodo: string;\n\trolUsuario: string;\t\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class EntidadEmpleadoModel extends UnionModel {\n\n\t\n\ttipoServicio: string;\n\tnombreServicio: string;\n\tidentificacion: number;\n\tentidad: string;\n\tnombreEntidad: string;\n\tdocumentoBeneficiario: string;\n\tsucursal: number;\n\tfechaAfiliacion: Date;\n\treferencia: string;\n\tvalor: number;\n\ttipo: number;\n\tfechaRetiro: Date;\n\tempresa: number;\n\tsucReferencia: string;\n\tbeneficiario: number;\n\tciclo: number;\n\tentidadAux: string;\n\tdescripcionEntidadAux: string;\n\tunico: string;\n\tllave: string;\n\tnit: number;\n\tnombreBeneficiario: string;\n\tnombreSucursal: string;\n\tultimoAfiliacion: string;\n\tnombreEntidadAuxiliar: string;\n\tdigito: number;\n\tentidadNombreDescripcion: string;\n\tactivas: string;\n\ttipoReferencia: string;\n\tnombreEmpleado: string;\n\tformaRegistro: string;\n\ttraerPensionados: string;\n\tfechaCongela: Date;\n\tfechaAfiliacionBono: Date;\n\tmotivo: string;\n\tfechaAfiliacionBeneficiario: Date;\n\talterno: string;\n\tdocumento: string;\n\tcedula: number;\n\tciudad: string;\n\tnombreCiudad: string;\n\tfechaDesde: Date;\n\tfechaHasta: Date;\n\t\n\t\n\t\n}\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { ParametrosCompensacion } from '../../../../../../shared/pipes/parametrosCompensacion.pipe';\nimport { CargarControlFuncionalidadService, ToastService, GeneralModel } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { AusenciaDatoModel } from '../../../../models/AusenciaDatoModel';\nimport { TipoServicioModel } from '../../../../models/TipoServicioModel';\nimport { ComprobanteVacacionService } from '../../../../services/comprobanteVacacion.service';\nimport { EntidadEmpleadoModel } from '../../../..//models/EntidadEmpleadoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { NgIf } from '@angular/common';\nimport { InputHelperSeleccionConceptoComponent } from '../../../../../../shared/componentes/input-helper-seleccion-concepto/input-helper-seleccion-concepto.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n\n@Component({\n    selector: 'app-popup-concepto-vacacion',\n    templateUrl: './popup-concepto-vacacion.component.html',\n    styleUrls: ['./popup-concepto-vacacion.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, FormsModule, ReactiveFormsModule, InputHelperSeleccionConceptoComponent, NgIf, DropdownModule, InputTextModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupConceptoVacacionComponent implements OnInit {\n\n  @Input() public ausenciaVarDTO: AusenciaDatoModel;\n  @Input() public mostrarPopUp: boolean;\n  @Input() public isNew: boolean;\n  @Input() public periodoActivo;\n  @Input() public liquidacionVacacionDTO;\n  @Input() public botones;\n  @Output() public regresar = new EventEmitter();\n\n  bloqueo: boolean = true;\n  formAusenciaDato: FormGroup\n  listaTipoConcepto;\n  listaEntidad;\n  mostrarEntidad: boolean = false;\n\n  constructor(\n    private generalService: GeneralService,\n    private formBuilder: FormBuilder,\n    private confirmationService: ConfirmationService,\n    private notificacionesBusService: ToastService,\n    private controlFuncionalidad: CargarControlFuncionalidadService,\n    private parametrosCompensacionPipe: ParametrosCompensacion,\n    private comprobanteVacacionService: ComprobanteVacacionService\n  ) { }\n\n  ngOnInit(): void {\n    this.listaTipoConcepto = this.parametrosCompensacionPipe.LISTADO_FORMULA;\n    this.validarFormulario();\n    this.bloqueo = false;\n    if (this.ausenciaVarDTO.formulaConcepto != 'V') {\n      this.bloqueo = true;\n    }\n  }\n\n  validarFormulario() {\n    this.formAusenciaDato = this.formBuilder.group({\n      concepto: new FormControl(this.ausenciaVarDTO.concepto),\n      nombreConcepto: new FormControl(this.ausenciaVarDTO.nombreConcepto),\n      tipoConcepto: new FormControl(this.ausenciaVarDTO.tipoConcepto),\n      tipoServicio: new FormControl(this.ausenciaVarDTO.tipoServicio),\n      tipo: new FormControl(this.ausenciaVarDTO.tipo),\n      entidad: new FormControl(this.ausenciaVarDTO.entidad ? this.ausenciaVarDTO.entidad : Constantes.PUNTO),\n      formulaConcepto: new FormControl({ value: this.ausenciaVarDTO.formulaConcepto, disabled: true }),\n      valor: new FormControl(this.ausenciaVarDTO.valor),\n      valor2: new FormControl(this.ausenciaVarDTO.valor2),\n    })\n  }\n\n  /*Metodo Carga Concepto */\n  async onSelectConcepto(event) {\n    let temp = event;\n    this.ausenciaVarDTO.concepto = temp.concepto;\n    this.ausenciaVarDTO.nombreConcepto = temp.descripcion;\n    this.ausenciaVarDTO.formulaConcepto = temp.esFormula;\n    this.ausenciaVarDTO.tipoConcepto = temp.tipo;\n    this.ausenciaVarDTO.tipoServicio = temp.tipoServicio;\n    this.ausenciaVarDTO.tipo = 'C';\n    if (this.ausenciaVarDTO.tipoServicio == null || this.ausenciaVarDTO.tipoServicio.trim() == Constantes.PUNTO) {\n      this.mostrarEntidad = false;\n    } else {\n      let tipoServicio = new TipoServicioModel();\n      tipoServicio.tipoServicio = this.ausenciaVarDTO.tipoServicio;\n      let respuesta = await this.generalService.queryForObject(new GeneralModel('TipoServicioDTO', null, false, tipoServicio)).toPromise();\n      if (respuesta.unico == Constantes.CONSTANTE_NO) {\n        let entidadEmpleado = new EntidadEmpleadoModel();\n        entidadEmpleado.tipoServicio = this.ausenciaVarDTO.tipoServicio;\n        entidadEmpleado.identificacion = this.periodoActivo.contrato;\n        entidadEmpleado.empresa = this.periodoActivo.empresa;\n        entidadEmpleado.fechaRetiro = this.periodoActivo.fechaInicial;\n        let mapaRetorna: Map<string, string> = new Map<string, string>();\n        let entidades = await this.generalService.queryForList(new GeneralModel('EntidadEmpleadoDTO', 'EntidadEmpleado.entidadEmpleadoConceptoNomina', false, entidadEmpleado)).toPromise();\n        entidades.forEach(item => {\n          mapaRetorna.set(item.llave, item.llave)\n        });\n        this.listaEntidad = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n        this.mostrarEntidad = true;\n      }\n    }\n    this.bloqueo = false;\n    if (this.ausenciaVarDTO.formulaConcepto != 'V') {\n      this.bloqueo = true;\n    }\n    this.formAusenciaDato.get('concepto').setValue(temp.concepto);\n    this.formAusenciaDato.get('nombreConcepto').setValue(temp.descripcion);\n    this.formAusenciaDato.get('formulaConcepto').setValue(temp.esFormula);\n    this.formAusenciaDato.get('tipoConcepto').setValue(temp.tipo);\n    this.formAusenciaDato.get('tipoServicio').setValue(temp.tipoServicio);\n    this.formAusenciaDato.get('tipo').setValue('C');\n  }\n\n  /*Metodo eliminar registro */\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async eliminarRegistro() {\n    await this.comprobanteVacacionService.eliminarConcepto({\n      ausenciaVarDTO: this.ausenciaVarDTO,\n      periodoBase: this.periodoActivo,\n      comprobante: this.liquidacionVacacionDTO,\n    }).toPromise();\n    this.notificacionesBusService.showSuccess('Se eliminó el registro exitosamente');\n    this.ocultar();\n  }\n\n  async actualizar() {\n    this.ausenciaVarDTO.valor = this.formAusenciaDato.get('valor').value;\n    this.ausenciaVarDTO.valor2 = this.formAusenciaDato.get('valor2').value;\n    this.ausenciaVarDTO.entidad = this.formAusenciaDato.get('entidad').value;\n    if (this.ausenciaVarDTO.entidad == null) {\n      this.ausenciaVarDTO.entidad = Constantes.PUNTO;\n    }\n    if (this.ausenciaVarDTO.valor == null) {\n      this.ausenciaVarDTO.valor = 0;\n    }\n    if (this.ausenciaVarDTO.valor2 == null) {\n      this.ausenciaVarDTO.valor2 = 0;\n    }\n    let respuesta = await this.comprobanteVacacionService.actulizarConcepto({\n      ausenciaVarDTO: this.ausenciaVarDTO,\n      periodoBase: this.periodoActivo,\n      comprobante: this.liquidacionVacacionDTO,\n    }).toPromise();\n    if (respuesta.servicio == 'registroCrea') {\n      this.notificacionesBusService.showSuccess('Se creó el registro exitosamente');\n    } else if (respuesta.servicio == 'registroAcualiza') {\n      this.notificacionesBusService.showSuccess('Se actualizó el registro exitosamente');\n    }\n\n\n    this.ocultar();\n  }\n\n  /*Metodo mostrar popUp */\n  mostrar() {\n    this.mostrarPopUp = true;\n  }\n\n  /*Metodo cerrar popUP */\n  ocultar() {\n    this.mostrarPopUp = false;\n    this.regresar.emit();\n  }\n\n  verificarControl(control) {\n    return this.controlFuncionalidad.getControlFuncionalidad(control);\n  }\n\n}\n\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{ 'concepto' | translate }}\" [(visible)]=\"mostrarPopUp\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '45vw' }\" (onShow)=\"mostrar()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n    <form [formGroup]=\"formAusenciaDato\">\n        <div class=\"Inputgroup mt-3\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <!-- CONCEPTO -->\n                <div class=\"field col-12 md:col-6 lg:col-12\">\n                    <app-input-helper-seleccion-concepto formControlName=\"concepto\" [readonly]=\"!isNew ? true : false\"\n                        [label]=\"isNew ? '' :  (this.formAusenciaDato.get('concepto').value ? this.formAusenciaDato.get('concepto').value+ ' - ' +this.formAusenciaDato.get('nombreConcepto').value: '')\"\n                        [ocultarBoton]=\"false\" (onSelected)=\"onSelectConcepto($event)\">\n                    </app-input-helper-seleccion-concepto>\n                </div>\n                <!-- TIPO -->\n                <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"formAusenciaDato.value.concepto != null\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"tipo\" [options]=\"listaTipoConcepto\" optionLabel=\"nombre\"\n                            optionValue=\"codigo\" formControlName=\"formulaConcepto\"></p-dropdown>\n                        <label htmlFor=\"tipo\">{{'tipo' | translate}} * </label>\n                    </span>\n                </div>\n                <!-- DEVENGO -->\n                <div class=\"field col-12 md:col-6 lg:col-6\"\n                    *ngIf=\"formAusenciaDato.value.tipoConcepto != null && formAusenciaDato.value.tipoConcepto === '+' \">\n                    <span class=\"p-float-label\">\n                        <input type=\"text\" pInputText id=\"id_devengo\" formControlName=\"valor\"\n                            [readonly]=\"formAusenciaDato.get('formulaConcepto').value != 'V' ? true : false\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '')\">\n                        <label htmlFor=\"devengo\">{{'devengo' | translate}} * </label>\n                    </span>\n                </div>\n                <!-- DEDUCCION -->\n                <div class=\"field col-12 md:col-6 lg:col-6\"\n                    *ngIf=\"formAusenciaDato.value.tipoConcepto != null && formAusenciaDato.value.tipoConcepto === '-' \">\n                    <span class=\"p-float-label\">\n                        <input type=\"text\" pInputText id=\"id_deduccion\" formControlName=\"valor\"\n                            [readonly]=\"formAusenciaDato.get('formulaConcepto').value != 'V' ? true : false\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '')\">\n                        <label htmlFor=\"deduccion\">{{'deduccion' | translate}} * </label>\n                    </span>\n                </div>\n                <!-- BASE -->\n                <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"formAusenciaDato.value.tipoConcepto != null \">\n                    <span class=\"p-float-label\">\n                        <input type=\"text\" pInputText id=\"id_base\" formControlName=\"valor2\"\n                            [readonly]=\"formAusenciaDato.get('formulaConcepto').value != 'V' ? true : false\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '')\">\n                        <label htmlFor=\"base\">{{'base' | translate}} * </label>\n                    </span>\n                </div>\n                <!-- ENTIDAD -->\n                <div class=\"field col-12 md:col-6 lg:col-12\"\n                    *ngIf=\"formAusenciaDato.value.tipoConcepto != null && mostrarEntidad \">\n                    <div class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaEntidad\" [autoDisplayFirst]=\"false\" formControlName=\"entidad\"\n                            [showClear]=\"true\" optionLabel=\"label\" optionValue=\"key\"></p-dropdown>\n                        <label>{{'entidad' | translate}}</label>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                *ngIf=\"!isNew && verificarControl('manvac:liquidar') && botones && !bloqueo\" icon=\"glyphicons glyphicons-refresh\"\n                label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizar()\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button-outlined\"\n                *ngIf=\"!isNew && verificarControl('manvac:liquidar') && botones && !bloqueo\" icon=\"glyphicons glyphicons-bin\"\n                label=\"{{'link_eliminar' | translate}}\" (click)=\"showEliminarConfirmDialog()\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                *ngIf=\"isNew && verificarControl('manvac:liquidar') && botones && !bloqueo\" icon=\"glyphicons glyphicons-floppy-save\"\n                label=\"{{'link_guardar' | translate}}\" (click)=\"actualizar()\">\n            </button>\n        </div>\n    </form>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class ControlProcesoModel extends UnionModel {\n\n\t\n\tagrupacion: string;\n\ttipo: string;\n\torigen: string;\n\tinicial: Date;\n\ttipoPeriodo: number;\n\ttipoServicio: string;\n\ttipoLiquida: number;\n\tempresa: number;\n\tprocesoInterfaz: string;\n\ttipoPeriodoDescripcion: string;\n\ttipoServicioDescripcion: string;\n\ttipoLiquidaDescripcion: string;\n\tprocesoInterfazDescripcion: string;\n\tprocesoInterfazCodigo: string;\n\t\n\t\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel } from 'general-library-union';\nimport { ControlProcesoModel } from '../models/ControlProcesoModel';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ControlProcesoService {\n\n    listProcedure(objetoFiltro: GeneralModel) {\n      throw new Error('Method not implemented.');\n    }\n  \n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService,\n      private generalPipe: GeneralPipe, private generalService: GeneralService) {\n      this.handleError = this.handleError.bind(this);\n    }\n  \n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    async fechaControl(controlDTO: ControlProcesoModel) : Promise<Date> {\n      console.log(controlDTO)\n      console.trace()\n      var fecha: Date;\n      if (controlDTO.origen == 'E') {\n        controlDTO.tipoLiquida= null;\n        controlDTO.tipoPeriodo= null;\n      } else if (controlDTO.origen == 'A') {\n        controlDTO.tipoServicio= null;\n        if (controlDTO.tipoPeriodo != null && controlDTO.tipoPeriodo == 0) {\n          controlDTO.tipoPeriodo= null;\n        }\n      } else if (controlDTO.origen == Constantes.CONSTANTE_SI) {\n        controlDTO.tipoLiquida= null;\n        controlDTO.tipoPeriodo= null;\n      } else {\n        controlDTO.tipoServicio= null;\n        controlDTO.tipoLiquida= null;\n      }\n      fecha = await this.generalService.queryForObject(new GeneralModel('ControlProcesoDTO', 'ControlProceso.maximaFecha', false,  controlDTO)).toPromise();\n      if (fecha != null) {\n        fecha.setDate(fecha.getDate() + 1);\n      }\n      return fecha;  \n    }\n}","import { AfterViewInit, Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { ComprobanteVacacionService } from '../../../services/comprobanteVacacion.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { AusenciaModel } from '../../../models/AusenciaModel';\nimport { PeriodoPipe } from '../../../../../shared/pipes/periodo.pipe';\nimport { AusenciaDatoModel } from '../../../models/AusenciaDatoModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ActoAusenciaModel } from '../../../../actos/models/ActoAusenciaModel';\nimport { ProcesarPagoVacacionModel } from '../../../models/ProcesarPagoVacacionModel';\nimport { LiquidacionPerPipe } from '../../../pipes/liquidacionper.pipe';\nimport { PopupSeguimientoComponent } from '../../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { ComprobanteVacacionesComponent } from '../popup/comprobante-vacaciones/comprobante-vacaciones.component';\nimport { PopupVariableFechaVacacionComponent } from '../popup/popup-variable-fecha-vacacion/popup-variable-fecha-vacacion.component';\nimport { PopupVariableVacacionComponent } from '../popup/popup-variable-vacacion/popup-variable-vacacion.component';\nimport { PopupConceptoVacacionComponent } from '../popup/popup-concepto-vacacion/popup-concepto-vacacion.component';\nimport { TabViewModule } from 'primeng/tabview';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { TabMenuModule } from 'primeng/tabmenu';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf, DecimalPipe, DatePipe } from '@angular/common';\nimport { MenubarModule } from 'primeng/menubar';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PeriodoEmpleadoModel } from '../../../models/PeriodoEmpleadoModel';\nimport { ControlProcesoModel } from '../../../models/ControlProcesoModel';\nimport { ControlProcesoService } from '../../../services/control-proceso.service';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { EmpleadoService } from '../../../services/empleado.service';\n\n\n@Component({\n    selector: 'app-editar-mantenimiento-vacaciones',\n    templateUrl: './editar-mantenimiento-vacaciones.page.html',\n    styleUrls: ['./editar-mantenimiento-vacaciones.page.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, ButtonDirective, Ripple, MenubarModule, NgIf, FormsModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TabMenuModule, DropdownModule, CheckboxModule, TabViewModule, PopupConceptoVacacionComponent, PopupVariableVacacionComponent, PopupVariableFechaVacacionComponent, ComprobanteVacacionesComponent, PopupSeguimientoComponent, DecimalPipe, DatePipe, TranslateModule, ProgressBarModule]\n})\nexport class EditarMantenimientoVacacionesPage implements OnInit, AfterViewInit {\n\n  @Input() public registroVacacion: AusenciaModel;\n  @Input() public dataPeriodoSelect;\n  @Input() public tituloTarea:string ;\n  @Input() public ocultarHeader: boolean;\n  @Output() public eventoRegresar = new EventEmitter();\n\n  urlFoto: string = 'data:image/png;base64,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';\n  menu: MenuItem[];\n  menucontenido: [] = [];\n  mostrarfuncionalidad: boolean;\n  mostrarItemMenu: boolean = false;\n  empleadoDTO: EmpleadoModel = new EmpleadoModel();\n  libroAusenciaDTO: AusenciaModel = new AusenciaModel();\n  periodoEmpleadoDTO: any;\n  totalDevengo: number = 0;\n  totalDeducido: number = 0;\n  isLoadingData: boolean = false;\n  items: MenuItem[] | undefined;\n  activeItem: MenuItem | undefined;\n  botones: boolean;\n  mostrarPopUpConcepto: boolean = false;\n  mostrarPopUpVariable: boolean = false;\n  mostrarPopUpNovedad: boolean = false;\n  mostrarPopUpLiquidacion: boolean = false;\n  mostrarPopupComprobante: boolean = false;;\n  mostrarPopupSeguimiento: boolean = false;\n  isNew: boolean = false;\n  ausenciaDatoDTO;\n  ausenciaDTO;\n  comprobante;\n  constantesPipe: string;\n  periodoActivo;  \n  seguimiento: boolean;\n  llaveSeguimiento: string;\n  activeIndex: number;\n  mapaEstado\n  mapaLiquidacion\n  codConcepto;\n  loading: boolean = true;\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private controlFuncionalidad: CargarControlFuncionalidadService,\n    private comprobanteVacacionService: ComprobanteVacacionService,\n    private cargarArchivo: CargarArchivosService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private notificacionesBusService: ToastService,\n    private periodoPipe: PeriodoPipe,\n    private liquidacionPerPipe: LiquidacionPerPipe,\n    private menuService: MenuService,\n    private confirmationService: ConfirmationService,\n    private authService: AuthService,\n    private us: UtilsService,\n    private controlProcesoService: ControlProcesoService,\n    private empleadoService: EmpleadoService\n  ) { }\n\n  ngOnInit(): void {\n    this.mapaEstado = this.periodoPipe.lista_proceso;\n    this.mapaLiquidacion = this.liquidacionPerPipe.LISTA_LIQUIDACION;\n    this.menuService.setBreadcrumb([{ label: 'Mantenimiento Vacaciones', command: (event) => this.regresar() }, { label: 'Mantenimiento' }]);\n    this.mostrarfuncionalidad = this.validarControlFuncionalidad('genpro:actualizar');\n    this.items = [];\n    this.periodoEmpleadoDTO = [];\n    this.loadData();\n  }\n\n  /*Llama al método al cargarse la vista después de la inicialización*/\n  ngAfterViewInit(): void {\n    this.onTabOpenOrigen(0);\n  }\n\n  /*Metodo carga menu superior */\n  async cargarMenuSuperior() {\n    this.menu = [\n      { label: this.translateService.instant('liquidar'), styleClass: 'btn-descarga-masiva', icon: \"glyphicons glyphicons-coins\", command: (event) => { this.showLiquidaConfirmDialog() }, visible: this.botones },\n      { label: this.translateService.instant('reversar'), styleClass: 'btn-descarga-masiva', icon: \"glyphicons glyphicons-transfer\", command: (event) => { this.showReversarConfirmDialog() }, visible: this.botones},\n      { label: this.translateService.instant('imprimir'), styleClass: 'btn-descarga-masiva', icon: \"glyphicons glyphicons-print\", command: (event) => { this.generarComprobante() } }\n    ]\n  }\n\n  /*Metodo carga de informacion */\n  async loadData() {\n    const ausenciaDTO = await this.generalService.queryForObject(new GeneralModel('AusenciaDTO', null, false, { llaveTabla: this.registroVacacion.llaveTabla })).toPromise();\n    let empleado: EmpleadoModel = await this.empleadoService.obtenerEmpleadoPorContrato(ausenciaDTO.empresa, ausenciaDTO.contrato);\n    this.comprobante = await this.comprobanteVacacionService.traerComprobanteVacacion({\n      empresa: empleado.empresa,\n      contrato: empleado.contrato,\n      fechaSalida: ausenciaDTO.salidaPrincipal,\n      tipoPeriodo: empleado.tipoPeriodo\n    }).toPromise();\n    this.isLoadingData = true;\n    if (this.comprobante != null) {\n      this.isLoadingData = false;\n      this.empleadoDTO = this.comprobante.empleadoDTO;\n      this.items = this.comprobante.listaPeriodoEmpleado;\n      this.cargarImagenFoto();\n      if (this.items && this.items.length > 0) {\n        this.setActiveTab(0);        \n      }\n      this.activeItem = this.items[0];\n      this.libroAusenciaDTO = this.comprobante.listaLibroAusencia[0];\n      if (this.libroAusenciaDTO.pago == null) {\n        this.notificacionesBusService.showInfo('La fecha de pago es nula. ');\n      }\n      this.validarBotones();      \n      this.cargarMenuSuperior();\n    }\n    this.loading = false;\n  }\n\n  /*metodo carga datos de acuerdo al periodo seleccionado en el panel */\n  setActiveTab(index: number) {    \n    this.periodoEmpleadoDTO = this.items[index]\n    this.totales();\n  }\n\n  /*Metodo valida habilitacion botones */\n  async validarBotones() {\n    this.botones = false;\n    this.periodoActivo = this.activeItem;\n    if (this.periodoActivo != null) {\n      if (this.periodoPipe.PERIODO_CERRADO === this.periodoActivo.generada || this.periodoPipe.PERIODO_ABONADO === this.periodoActivo.generada) {\n        this.botones = false;\n      } else {\n        this.botones = true;\n        if (this.dataPeriodoSelect?.cerradas == null || this.dataPeriodoSelect?.cerradas > 0) {\n          this.botones = false;\n        }\n      }\n    }\n    if (this.botones) {\n      this.botones = this.validarControlFuncionalidad('manvac:liquidar');\n      this.botones = this.botones && this.validarListaPeriodo(this.comprobante.listaPeriodoEmpleado);\n      this.botones = this.botones && (await this.controlProcesoCompensacion(this.empleadoDTO.empresa, 'N', '.',0,this.comprobante.libroAusenciaDTO.tipoPeriodo, this.comprobante.libroAusenciaDTO.pago));\n    }\n    return this.botones \n  }\n\n  /*Metodo calcula neto vacaciones */\n  totales() {\n    this.totalDeducido = 0;\n    this.totalDevengo = 0;\n    this.periodoEmpleadoDTO.listaConceptoAusencia.forEach(data => {\n      if (data.tipoConcepto == '-') {\n        this.totalDeducido = this.totalDeducido + data.valor;\n      }\n      if (data.tipoConcepto == '+') {\n        this.totalDevengo = this.totalDevengo + data.valor;\n      }\n    })\n  }\n\n  /*Metodo cargar foto */\n  cargarImagenFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.empleadoDTO.nombreFoto + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n      this.blobToBase64(blob)\n    });\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  /*Metodo para inicializar la variable de origen de acuerdo al panel seleccionado */\n  onTabOpenOrigen(origen) {\n    this.activeIndex = origen.index;\n    if (origen.index == 1) {\n      this.constantesPipe = Constantes.CONSTANTE_V;\n    } else if (origen.index == 2) {\n      this.constantesPipe = Constantes.CONSTANTE_N;\n    } else if (origen.index == 3) {\n      this.constantesPipe = Constantes.CONSTANTE_L;\n    } else {\n      this.constantesPipe = Constantes.CONSTANTE_C;\n    }\n  }\n\n  /*Metodo abre popUp de acuerdo al origen seleccionado */\n  popUpAusenciaDato(dato, origen) {\n    this.ausenciaDatoDTO = dato.data;\n    this.isNew = false;\n    if (origen == Constantes.CONSTANTE_C) {\n      this.mostrarPopUpConcepto = true;\n      this.mostrarPopUpVariable = false;\n      this.mostrarPopUpNovedad = false;\n      this.mostrarPopUpLiquidacion = false;\n    } else if (origen == Constantes.CONSTANTE_V) {\n      this.mostrarPopUpConcepto = false;\n      this.mostrarPopUpVariable = true;\n      this.mostrarPopUpNovedad = false;\n      this.mostrarPopUpLiquidacion = false;\n    } else if (origen == Constantes.CONSTANTE_N) {\n      this.mostrarPopUpConcepto = false;\n      this.mostrarPopUpVariable = false;\n      this.mostrarPopUpNovedad = true;\n      this.mostrarPopUpLiquidacion = false;\n    } else if (origen == Constantes.CONSTANTE_L) {\n      this.mostrarPopUpConcepto = false;\n      this.mostrarPopUpVariable = false;\n      this.mostrarPopUpNovedad = false;\n      this.mostrarPopUpLiquidacion = true;\n    }\n  }\n\n  /*Metodo crea nuevo registro de acuerdo al origen seleccionado en el panel */\n  nuevoRegistro(origen) {\n    this.ausenciaDatoDTO = new AusenciaDatoModel;\n    this.isNew = true;\n    if (origen == Constantes.CONSTANTE_C) {\n      this.mostrarPopUpConcepto = true;\n      this.mostrarPopUpVariable = false;\n      this.mostrarPopUpNovedad = false;\n      this.mostrarPopUpLiquidacion = false;\n    } else if (origen == Constantes.CONSTANTE_V) {\n      this.mostrarPopUpConcepto = false;\n      this.mostrarPopUpVariable = true;\n      this.mostrarPopUpNovedad = false;\n      this.mostrarPopUpLiquidacion = false;\n    } else if (origen == Constantes.CONSTANTE_N) {\n      this.mostrarPopUpConcepto = false;\n      this.mostrarPopUpVariable = false;\n      this.mostrarPopUpNovedad = true;\n      this.mostrarPopUpLiquidacion = false;\n    } else if (origen == Constantes.CONSTANTE_L) {\n      this.mostrarPopUpConcepto = false;\n      this.mostrarPopUpVariable = false;\n      this.mostrarPopUpNovedad = false;\n      this.mostrarPopUpLiquidacion = true;\n    }\n  }\n\n  /*Metodo para generar comprobante de vacaciones */\n  generarComprobante() {\n    this.mostrarPopupComprobante = true;\n    this.ausenciaDTO = new ActoAusenciaModel();\n    this.ausenciaDTO.identifica = this.empleadoDTO.contrato;\n    this.ausenciaDTO.cedula = this.empleadoDTO.cedula;\n    this.ausenciaDTO.fechaSalida = this.libroAusenciaDTO.salida;\n    this.ausenciaDTO.fechaRegreso = this.libroAusenciaDTO.regreso;\n    this.ausenciaDTO.periodoPago = this.periodoActivo.periodo;\n  }\n\n  /*Metodo eliminar vacaciones */\n  showLiquidaConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿ Desea liquidar?',\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.liquidarComprobante();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  /*Metodo reliquidar vacaciones */\n  async liquidarComprobante() {    \n    let procesoPago = new ProcesarPagoVacacionModel();\n    procesoPago.llaveLibro = this.libroAusenciaDTO.llaveTabla;\n    procesoPago.usuario = this.authService.getTokenKey('usuario');    \n    if (this.seguimiento){\n      procesoPago.seguimiento = this.us.generarLlave();\n    } else {\n      procesoPago.seguimiento = null;\n    }\n    await this.generalService.procedure(new GeneralModel('ProcesarPagoVacacionDTO', 'Ausentismo.nominaVacacion', false, procesoPago)).subscribe({\n      next: (data) => {        \n        if (this.seguimiento){\n          this.llaveSeguimiento = procesoPago.seguimiento.toString();\n          this.mostrarPopupSeguimiento = true;\n        }\n        this.notificacionesBusService.showSuccess('El comprobante ha sido liquidado correctamente');\n        this.loadData();\n      },\n      error: (err) => {\n        this.notificacionesBusService.showError(JSON.stringify(err.error.mensajeEtiqueta))\n      }\n    });\n  }\n\n  /*Metodo eliminar vacaciones */\n  showReversarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿ Desea reversar?',\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.reversarComprobante();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async reversarComprobante() {\n    await this.generalService.procedure(new GeneralModel('ReversarComprobanteDTO', 'Ausentismo.reversarComprobante', false, {\n      llaveLibroAusencia: this.libroAusenciaDTO.llaveTabla,\n      usuario: this.authService.getTokenKey('usuario')\n    })).subscribe({\n      next: (data) => {\n        this.notificacionesBusService.showSuccess('El comprobante ha sido reversado correctamente');\n        this.regresar();\n      },\n      error: (err) => {\n        this.notificacionesBusService.showError(JSON.stringify(err.error.mensajeEtiqueta))\n      }\n    });\n  }\n\n  /*Metodo valida control funcionalidad seguridad */\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  validarListaPeriodo(lista: PeriodoEmpleadoModel[]): boolean{\n    for (const periodo of lista) {\n      if(periodo.generada === this.periodoPipe.PERIODO_CERRADO || periodo.generada === this.periodoPipe.PERIODO_ABONADO){\n        return false;\n      }\n    }\n    return true;\n  }\n\n  async controlProcesoCompensacion(empresa: number, origen: string, tipoServicio: string, tipoLiquidacion: number, tipoPeriodo: number, fechaBase: Date): Promise<boolean>{\n    let fecha = new Date();\n    let control: ControlProcesoModel = new ControlProcesoModel();\n    control.empresa = empresa;\n    control.origen = origen;\n    control.tipoServicio = tipoServicio;\n    control.tipoLiquida = tipoLiquidacion;\n    control.tipoPeriodo = tipoPeriodo;\n    fecha = await this.controlProcesoService.fechaControl(control);\n    if(fecha != null){\n      if(fecha > fechaBase){\n        return false;\n      }\n    }\n    return true;\n  }\n\n  /*Metodo para regresar a la tabla de mantenimiento vacaciones */\n  regresar() {\n    this.eventoRegresar.emit(false);\n  }\n\n  /*Metodo cerrar popUp's */\n  regresarPopUp() {\n    this.mostrarPopUpConcepto = false;\n    this.mostrarPopUpVariable = false;\n    this.mostrarPopUpNovedad = false;\n    this.mostrarPopUpLiquidacion = false;\n    this.mostrarPopupComprobante = false;\n    this.mostrarPopupSeguimiento = false;\n    this.seguimiento = false;\n    this.loadData();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n@if(loading){\n<p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n}\n@if(!loading){\n<div class=\"flex align-items-center justify-content-between align-items-center mt-2\">\n    <h1>{{tituloTarea ? tituloTarea : ('mantenimientovacaciones' | translate)}}</h1>\n    <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n        class=\"p-button-text font-semibold flex-shrink-0 mb-2\"></button>\n</div>\n<div class=\"field col-12 md:col-12 lg:col-12\">\n    <div>\n        <p-menubar [model]=\"menu\" class=\"menu-accion-sara flex\"></p-menubar>\n    </div>\n</div>\n<div class=\"field col-12 md:col-12 lg:col-12\">\n    <div class=\"empleado\" style=\"justify-content: center; align-items: center\" *ngIf=\"!ocultarHeader\">\n        <div class=\"flex\">\n            <div class=\"display: flex; justify-content: center; align-items: center; \">\n                <img class=\"avatar-container mb-3\" [src]=\"urlFoto\">\n            </div>\n            <div class=\"field\">\n                <div class=\"\">\n                    <div>\n                        <div class=\"col-md-12 ml-3 flex\">\n                            <div class=\"p-fluid p-formgrid grid col-12\">\n                                <h1 class=\"mb-1 w-full\">{{this.empleadoDTO.nombreCompleto}}</h1>\n                                <h4 class=\"font-medium w-full mb-3\">{{'identificacion' | translate}}\n                                    {{this.empleadoDTO.documento}}</h4>\n                                <div class=\"col-6 md:col-3 lg:col-3\">\n                                    <p><span class=\"font-medium\">{{'contrato' | translate}}</span><br>\n                                        {{this.empleadoDTO.contrato}}</p>\n                                </div>\n                                <div class=\"col-6 md:col-3 lg:col-3\">\n                                    <p><span class=\"font-medium\">{{('fechasalida') | translate}}</span><br>\n                                        {{libroAusenciaDTO.salida | date: ('formatofecha' | translate)}}</p>\n                                </div>\n                                <div class=\"col-6 md:col-3 lg:col-3\">\n                                    <p><span class=\"font-medium\">{{('fecharegreso') | translate}}</span><br>\n                                        {{libroAusenciaDTO.regreso | date: ('formatofecha' | translate)}}</p>\n                                </div>\n                                <div class=\"col-6 md:col-3 lg:col-3\">\n                                    <p><span class=\"font-medium\">{{('periodopago') | translate}}</span><br>\n                                        {{libroAusenciaDTO.periodo }}</p>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n<div class=\"field col-12 md:col-12 lg:col-12\">\n    <div class=\"card\">\n        <div class=\"mt-3\">\n            <h5><i class=\"glyphicons glyphicons-mixed-buildings \"></i>{{'periodo' | translate}}s {{'liquidados' |\n                translate}}</h5>\n        </div>\n        <div class=\"field\">\n            <div class=\"p-fluid p-formgrid grid col-12\" style=\"color: gray;\">\n                <!-- PERIODOS -->\n                <div class=\"field col-12 md:col-6 lg:col-12\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"programacion\" [(ngModel)]=\"libroAusenciaDTO.descripcionTipoAusencia\"\n                            disabled>\n                        <label htmlFor=\"programacion\">{{'programacion' | translate}} </label>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-6 lg:col-12\">\n                    <!-- TABLA PERIODOS -->\n                    <p-table responsiveLayout=\"scroll\" [value]=\"comprobante?.listaLibroAusencia\"\n                        [loading]=\"isLoadingData\" [rows]=\"10\" [totalRecords]=\"comprobante?.listaLibroAusencia.length\"\n                        [paginator]=\"comprobante?.listaLibroAusencia.length> 10\"\n                        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                        <ng-template pTemplate=\"header\">\n                            <tr class=\"fondoTablaPincipal\">\n                                <th style=\"width: 25%;\">{{'tipoausencia' | translate}}</th>\n                                <th style=\"width: 10%;\">{{'fechainicialperiodo' | translate}}</th>\n                                <th style=\"width: 10%;\">{{'fechafinalperiodo' | translate}}</th>\n                                <th style=\"width: 5cqmax;\">{{'dias' | translate}}</th>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-programacion>\n                            <tr [pSelectableRow]=\"programacion\">\n                                <td style=\"width: 25%;\">{{programacion.descripcionTipoAusencia}}</td>\n                                <td style=\"width: 10%;\">{{programacion.inicial | date: ('formatofecha' | translate) }}\n                                </td>\n                                <td style=\"width: 10%;\">{{programacion.fechaFinal | date: ('formatofecha' | translate)\n                                    }}\n                                </td>\n                                <td style=\"width: 5%;\">{{programacion.dias}}</td>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    </p-table>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n<div class=\"field col-12 md:col-12 lg:col-12\">\n    <div class=\"card\">\n        <div class=\"Inputgroup-borde mt-0 \" *ngIf=\"items.length>0\">\n            <div class=\"mt-3\">\n                <div class=\"flex justify-content-between align-items-center\">\n                    <h5><i class=\"glyphicons glyphicons-mixed-buildings\"></i>{{'datos' | translate}} {{'ausencia' |\n                        translate}}\n                    </h5>\n                </div>\n                <div class=\"mb-3\">\n                    <p-tabMenu [scrollable]=\"true\" [model]=\"items\">\n                        <ng-template pTemplate=\"item\" let-item let-i=\"index\">\n                            <a (click)=\"setActiveTab(i)\"> {{item.periodo}} </a>\n                        </ng-template>\n                    </p-tabMenu>\n                    <div class=\"field\">\n                        <div class=\"mt-3 p-fluid p-formgrid grid col-12\" style=\"color: gray;\">\n                            <!-- CODIGO PERIODO -->\n                            <div class=\"field col-12 md:col-6 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText id=\"periodonomina\" [(ngModel)]=\"periodoEmpleadoDTO.periodo\"\n                                        disabled>\n                                    <label htmlFor=\"periodonomina\">{{'periodonomina' | translate}} </label>\n                                </span>\n                            </div>\n                            <!-- DESCRIPCION TIPO PERIODO -->\n                            <div class=\"field col-12 md:col-6 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText id=\"descripcion\"\n                                        [(ngModel)]=\"periodoEmpleadoDTO.descripcionTipoPeriodo\" disabled>\n                                    <label htmlFor=\"descripcion\">{{('descripcion') | translate}} {{('tipoperiodo') |\n                                        translate}} </label>\n                                </span>\n                            </div>\n                            <!-- ESTADO -->\n                            <div class=\"field col-12 md:col-6 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown inputId=\"estado\" [options]=\"mapaEstado\" optionLabel=\"nombre\"\n                                        optionValue=\"codigo\" [(ngModel)]=\"periodoEmpleadoDTO.generada\"\n                                        [disabled]=\"true\"></p-dropdown>\n                                    <label htmlFor=\"estado\">{{('estado') | translate}} </label>\n                                </span>\n                            </div>\n                            <!-- TIPO PERIODO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText id=\"estado\" [(ngModel)]=\"periodoEmpleadoDTO.tipoPeriodo\" disabled>\n                                    <label htmlFor=\"estado\">{{('tipoperiodo') | translate}} </label>\n                                </span>\n                            </div>\n                            <!-- LIQUIDACION -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown inputId=\"estado\" [options]=\"mapaLiquidacion\" optionLabel=\"nombre\"\n                                        optionValue=\"codigo\" [(ngModel)]=\"periodoEmpleadoDTO.liquidacionPeriodo\"\n                                        [disabled]=\"true\"></p-dropdown>\n                                    <label htmlFor=\"estado\">{{('liquidacion') | translate}} </label>\n                                </span>\n                            </div>\n                            <!-- RANGO -->\n                            <div class=\"field col-12 md:col-6 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText id=\"estado\" [(ngModel)]=\"periodoEmpleadoDTO.rango\" disabled>\n                                    <label htmlFor=\"estado\">{{('rango') | translate}} </label>\n                                </span>\n                            </div>\n                            <!-- SEGUIMIENTO -->\n                            <div class=\"field col-12 md:col-6 lg:col-4\"\n                                *ngIf=\"validarControlFuncionalidad('comseg:seguimiento')\" && botones>\n                                <p-checkbox class=\"mr-2 mb-2\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                                <label> {{'seguimiento' | translate}}</label>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <p-tabView class=\"mb-0\" (onChange)=\"onTabOpenOrigen($event)\">\n                    <p-tabPanel header=\"{{'concepto' | translate}}\">\n                        <div class=\"flex justify-content-end align-items-center mt-2 mb-3\">\n                            <!--boton crear -->\n                            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                                (click)=\"nuevoRegistro(this.constantesPipe)\" label=\"{{'link_nuevo' | translate}}\"\n                                *ngIf=\"validarControlFuncionalidad('manvac:liquidar') && botones && activeIndex != 3\">\n                            </button>\n                        </div>\n                        <p-table responsiveLayout=\"scroll\" [value]=\"periodoEmpleadoDTO.listaConceptoAusencia\"\n                            selectionMode=\"single\" [loading]=\"isLoadingData\"\n                            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                            (onRowSelect)=\"popUpAusenciaDato($event, this.constantesPipe)\">\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th>{{'codigo' | translate}}</th>\n                                    <th *ngIf=\"codConcepto\">{{'codigo' | translate}}</th>\n                                    <th>{{'descripcion' | translate}}</th>\n                                    <th>{{'base' | translate}}</th>\n                                    <th>{{'devengo' | translate}}</th>\n                                    <th>{{'deduccion' | translate}}</th>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-conceptoempleado>\n                                <tr [pSelectableRow]=\"conceptoempleado\">\n                                    <td>{{conceptoempleado.concepto}}</td>\n                                    <td *ngIf=\"codConcepto\">{{conceptoempleado.codigoConcepto}}\n                                    </td>\n                                    <td>{{conceptoempleado.nombreConcepto}} {{\n                                        '['+conceptoempleado.nombreEntidad +']'}} </td>\n                                    <td>{{conceptoempleado.valor2 | number: '1.2-2'}}</td>\n                                    <td>{{(conceptoempleado.tipoConcepto == '+' ?\n                                        conceptoempleado.valor : null) | number: '1.2-2'}}</td>\n                                    <td>{{(conceptoempleado.tipoConcepto == '-' ?\n                                        conceptoempleado.valor : null)| number: '1.2-2'}}</td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"footer\">\n                                <tr style=\"text-align: left\" class=\"p-3\"\n                                    *ngIf=\"periodoEmpleadoDTO.listaConceptoAusencia?.length > 0\">\n                                    <th></th>\n                                    <th *ngIf=\"codConcepto\"></th>\n                                    <th></th>\n                                    <th></th>\n                                    <th class=\"p-2 pr-1 total font-medium\"><b>{{totalDevengo | number: '1.2-2'}}</b>\n                                    </th>\n                                    <th class=\"p-2 pr-1 total font-medium\"><b>{{totalDeducido | number: '1.2-2'}}</b>\n                                    </th>\n                                </tr>\n                                <tr style=\"text-align: left\" class=\"p-3\"\n                                    *ngIf=\"periodoEmpleadoDTO.listaConceptoAusencia?.length > 0\">\n                                    <th></th>\n                                    <th *ngIf=\"codConcepto\"></th>\n                                    <th></th>\n                                    <th class=\"p-2 pr-1 total font-medium\"><b>Neto Nomina</b></th>\n                                    <th class=\"p-2 pr-1 total font-medium\"><b>{{totalDevengo - totalDeducido |\n                                            number:'1.2-2'}}</b></th>\n                                    <th></th>\n                                </tr>\n                                <tr></tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>\n                    </p-tabPanel>\n                    <p-tabPanel header=\"{{'variable' | translate}}\">\n                        <div class=\"flex justify-content-end align-items-center mt-2 mb-3\">\n                            <!--boton crear -->\n                            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                                (click)=\"nuevoRegistro(this.constantesPipe)\" label=\"{{'link_nuevo' | translate}}\"\n                                *ngIf=\"validarControlFuncionalidad('manvac:liquidar') && botones && activeIndex != 3\">\n                            </button>\n                        </div>\n                        <p-table responsiveLayout=\"scroll\" [value]=\"periodoEmpleadoDTO.listaVariable\"\n                            selectionMode=\"single\" [loading]=\"isLoadingData\"\n                            (onRowSelect)=\"popUpAusenciaDato($event, this.constantesPipe)\"\n                            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th style=\"width: 10%;\">{{'variable' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'descripcion' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'zonaeconomica' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'centrocosto' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'valor' | translate}}</th>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-variableempleado>\n                                <tr [pSelectableRow]=\"variableempleado\">\n                                    <td style=\"width: 10%;\">{{variableempleado.variableLlave}}</td>\n                                    <td style=\"width: 10%;\">{{variableempleado.variableNombre}}</td>\n                                    <td style=\"width: 10%;\">{{variableempleado.zonaPK}}</td>\n                                    <td style=\"width: 10%;\">{{variableempleado.centroPK}}</td>\n                                    <td style=\"width: 10%;\" *ngIf=\"variableempleado.tipo != 'F'\">\n                                        {{variableempleado.valor | number: '1.2-2'}}</td>\n                                    <td style=\"width: 10%;\" *ngIf=\"variableempleado.tipo == 'F'\">{{\n                                        variableempleado.valor.toString().slice(4, 6) + '/' +\n                                        variableempleado.valor.toString().slice(6, 8) + '/' +\n                                        variableempleado.valor.toString().slice(0, 4) | date:'dd/MM/yyyy' }}</td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>\n                    </p-tabPanel>\n                    <p-tabPanel header=\"{{'variable' | translate}} {{'fecha' | translate}}\">\n                        <div class=\"flex justify-content-end align-items-center mt-2 mb-3\">\n                            <!--boton crear-->\n                            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                                (click)=\"nuevoRegistro(this.constantesPipe)\" label=\"{{'link_nuevo' | translate}}\"\n                                *ngIf=\"validarControlFuncionalidad('manvac:liquidar') && botones && activeIndex != 3\">\n                            </button>\n                        </div>\n                        <p-table responsiveLayout=\"scroll\" [value]=\"periodoEmpleadoDTO.listaVariableFecha\"\n                            selectionMode=\"single\" [loading]=\"isLoadingData\"\n                            (onRowSelect)=\"popUpAusenciaDato($event, this.constantesPipe)\"\n                            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th style=\"width: 10%;\">{{'variable' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'descripcion' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'suceso' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'cantidad' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'valor' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'zonaeconomica' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'centrocosto' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'lineacosto' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'actividad' | translate}}</th>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-variableempleado>\n                                <tr [pSelectableRow]=\"variableempleado\">\n                                    <td style=\"width: 10;\">{{variableempleado.codigoVariable}}</td>\n                                    <td style=\"width: 10;\">{{variableempleado.variableNombre}}</td>\n                                    <td style=\"width: 10;\">{{variableempleado.suceso | date: 'dd/MM/yyyy'}}</td>\n                                    <td style=\"width: 10%;\" *ngIf=\"variableempleado.tipo != 'F'\">\n                                        {{variableempleado.cantidad | number: '1.2-2'}}</td>\n                                    <td style=\"width: 10%;\" *ngIf=\"variableempleado.tipo == 'F'\">{{\n                                        variableempleado.cantidad.toString().slice(4, 6) + '/' +\n                                        variableempleado.cantidad.toString().slice(6, 8) + '/' +\n                                        variableempleado.cantidad.toString().slice(0, 4) | date:'dd/MM/yyyy' }}</td>\n                                    <td style=\"width: 10;\">{{variableempleado.valor | number: '1.2-2'}}</td>\n                                    <td style=\"width: 10;\">{{variableempleado.nombreZona}}</td>\n                                    <td style=\"width: 10;\">{{variableempleado.nombreCentro}}</td>\n                                    <td style=\"width: 10;\">{{variableempleado.nombreLinea}}</td>\n                                    <td style=\"width: 10;\">{{variableempleado.nombreMateria}}</td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>\n                    </p-tabPanel>\n                    <p-tabPanel header=\"{{'liquidacionperiodica'| translate}}\">\n                        <p-table responsiveLayout=\"scroll\" [value]=\"periodoEmpleadoDTO.listaPeriodicaAusencia\"\n                            selectionMode=\"single\" [loading]=\"isLoadingData\"\n                            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th style=\"width: 5%;\">{{'numero' | translate}}</th>\n                                    <th style=\"width: 5%;\">{{'tipo' | translate}}</th>\n                                    <th style=\"width: 20%;\">{{'liquidacionperiodica' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'valor' | translate}}</th>\n                                    <th style=\"width: 10%;\">{{'interes' | translate}}</th>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-liquidaempleado>\n                                <tr [pSelectableRow]=\"liquidaempleado\">\n                                    <td style=\"width: 5%;\">{{liquidaempleado.numeroLip}}</td>\n                                    <td style=\"width: 5%;\">{{liquidaempleado.tipoLiquidacion}}</td>\n                                    <td style=\"width: 20%;\">{{liquidaempleado.descripcionTipo}}</td>\n                                    <td style=\"width: 10%;\">{{liquidaempleado.valor | number: '1.2-2'}}</td>\n                                    <td style=\"width: 10%;\">{{liquidaempleado.valor2 | number: '1.2-2'}}</td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>\n                    </p-tabPanel>\n                </p-tabView>\n            </div>\n        </div>\n    </div>\n</div>\n}\n<div *ngIf=\"mostrarPopUpConcepto\">\n    <app-popup-concepto-vacacion [ausenciaVarDTO]=\"ausenciaDatoDTO\" [mostrarPopUp]=\"mostrarPopUpConcepto\"\n        [isNew]=\"isNew\" [periodoActivo]=\"periodoEmpleadoDTO\" [liquidacionVacacionDTO]=\"comprobante\" [botones]=\"botones\"\n        (regresar)=\"regresarPopUp()\"></app-popup-concepto-vacacion>\n</div>\n<div *ngIf=\"mostrarPopUpVariable\">\n    <app-popup-variable-vacacion [variablePeriodoEmpleadoDTO]=\"periodoEmpleadoDTO\" [ausenciaVarDTO]=\"ausenciaDatoDTO\"\n        [mostrarPopUp]=\"mostrarPopUpVariable\" [isNew]=\"isNew\" [botones]=\"botones\"\n        (regresar)=\"regresarPopUp()\"></app-popup-variable-vacacion>\n</div>\n<div *ngIf=\"mostrarPopUpNovedad\">\n    <app-popup-variable-fecha-vacacion [periodoEmpleado]=\"periodoEmpleadoDTO\" [variablePeriodoFecha]=\"ausenciaDatoDTO\"\n        [mostrarPopup]=\"mostrarPopUpNovedad\" [nuevo]=\"isNew\" [botones]=\"botones\"\n        (regresar)=\"regresarPopUp()\"></app-popup-variable-fecha-vacacion>\n</div>\n<div *ngIf=\"mostrarPopupComprobante\">\n    <app-comprobante-vacaciones [ausenciaDTO]=\"ausenciaDTO\" [showDialog]=\"mostrarPopupComprobante\"\n        [periodoActivo]=\"periodoEmpleadoDTO\" (regresar)=\"regresarPopUp()\">\n    </app-comprobante-vacaciones>\n</div>\n<app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\"\n    (regresar)=\"regresarPopUp()\"></app-popup-seguimiento>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AusenciaModel } from '../../models/AusenciaModel';\nimport { AusentismoPipe } from '../../pipes/ausentismo.pipe';\nimport { AusenciaDatoModel } from '../../models/AusenciaDatoModel';\nimport { CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { VariableLiquidacionModel } from '../../models/VariableLiquidacionModel';\nimport { PeriodoModel } from '../../models/PeriodoModel';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { NominaAusenciaModel } from '../../models/NominaAusenciaModel';\nimport { TipoAusenciaModel } from '../../models/TipoAusenciaModel';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { EmpleadoModel } from '../../models/EmpleadoModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { EditarMantenimientoVacacionesPage } from '../../pages/mantenimiento-vacaciones/editar-mantenimiento-vacaciones/editar-mantenimiento-vacaciones.page';\nimport { InputHelperPeriodoComponent } from '../../../../shared/componentes/input-helper-periodo/input-helper-periodo.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { AccordionModule } from 'primeng/accordion';\nimport { NgIf, DecimalPipe, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { AusentismoService } from '../../services/ausentismo.service';\nimport { ComprobanteVacacionService } from '../../services/comprobanteVacacion.service';\n\n\n@Component({\n\tselector: 'app-vacacion-ausencia-historico',\n\ttemplateUrl: './vacacion-ausencia-historico.component.html',\n\tstyleUrls: ['./vacacion-ausencia-historico.component.scss'],\n\tstandalone: true,\n\timports: [NgIf, AccordionModule, PrimeTemplate, DropdownModule, FormsModule, CalendarModule, InputNumberModule, FieldsetModule, InputTextModule, InputTextareaModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, InputHelperPeriodoComponent, EditarMantenimientoVacacionesPage, DecimalPipe, TranslateModule, ConfirmPopupModule, DatePipe]\n})\nexport class VacacionAusenciaHistoricoComponent implements OnInit {\n\n\tpublic ausencia: AusenciaModel;\n\tpublic listaFormaPago: any[] = [];\n\tpublic listaTipo: any[];\n\tpublic listaTipoInterrupcion: any[];\n\tpublic nuevo: boolean;\n\tpublic verFechaPago: boolean;\n\tpublic variable: AusenciaDatoModel;\n\tpublic variableAct: AusenciaDatoModel;\n\tpublic variablesLiq: any[];\n\tpublic tableVariable: any[];\n\tpublic ausenciaDatoEliminar: AusenciaDatoModel;\n\tpublic listaVariables: AusenciaDatoModel[] = [];\n\tpublic puedeActualizar: boolean = true;\n\tpublic form: string;\n\tpublic listaTipoVacacionAusencia: any[] = [];\n\n\tpublic origenTarea: string;\n\tpublic clickGuardar: boolean = false;\n\tpublic mostrar: boolean = false;\n\tpublic verComprobante: boolean = false;\n\t@Input() public empleado: EmpleadoModel;\n\t@Output() regresar = new EventEmitter()\n\n\tpublic vistaVisualizar: string = null;\n\tedicionDatosOriginales: { [key: string]: any } = {};\n\tpublic habilitaCampo: boolean = false;\n\tpublic clickGuardarVariable: boolean = false;\n\n\n\tconstructor(private ausentismoPipe: AusentismoPipe,\n\t\tpublic utilsService: UtilsService,\n\t\tprivate notificacionesService: ToastService,\n\t\tprivate confirmationService: ConfirmationService,\n\t\tprivate generalPipe: GeneralPipe,\n\t\tprivate saraAplicacionService: SaraAplicacionService,\n\t\tprivate translateService: TranslateService,\n\t\tpublic controlFuncionService: CargarControlFuncionalidadService,\n\t\tprivate generalService: GeneralService,\n\t\tprivate ausenciaService: AusentismoService,\n\t\tprivate comprobanteVacacionService: ComprobanteVacacionService) { }\n\n\tngOnInit(): void {\n\t\tthis.listaTipo = this.ausentismoPipe.TIPOHISTORICO;\n\t\tthis.listaTipoInterrupcion = this.ausentismoPipe.TIPOINTERRUPCION;\n\n\t}\n\n\tpublic async buscar2(origenTarea: string, form: string, ausenciaDTO: AusenciaModel) {\n\t\tthis.form = form;\n\t\tthis.origenTarea = origenTarea;\n\t\tthis.variable = new AusenciaDatoModel();\n\t\tif (ausenciaDTO == null) {\n\t\t\tthis.ausencia = new AusenciaModel();\n\t\t\tthis.nuevo = true;\n\t\t\tthis.ausencia.tipoInterrumpe = 'N';\n\t\t\tthis.ausencia.dias = 0;\n\t\t\tthis.ausencia.interrupcion = 0;\n\t\t} else {\n\t\t\tthis.ausencia = ausenciaDTO;\n\t\t\tthis.nuevo = false;\n\t\t\tawait this.cargarListaVariables();\n\t\t\tawait this.cargarListVariable();\n\t\t\tif (this.ausentismoPipe.PAGONOMINA == (this.ausencia.formaPago)) {\n\t\t\t\tthis.verFechaPago = false;\n\t\t\t} else {\n\t\t\t\tthis.verFechaPago = true;\n\t\t\t}\n\t\t}\n\t\tthis.listaFormaPago = this.ausentismoPipe.FORMAPAGO;\n\t\tthis.listaTipoVacacionAusencia = [];\n\t\tvar modo = (await this.saraAplicacionService.getEmpresa()).modoCompensacion;\n\t\tvar listaTipoVacacion: TipoAusenciaModel[] = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, {\n\t\t\torigen: this.ausentismoPipe.VACACION,\n\t\t\testado: this.generalPipe.SI, modoParametro: modo\n\t\t})).toPromise();\n\t\tlistaTipoVacacion.forEach(data => {\n\t\t\tthis.listaTipoVacacionAusencia.push({ value: data.llaveTabla, label: data.descripcion });\n\t\t})\n\t\tthis.ausencia = this.ausenciaService.formatearAusencia(this.ausencia)\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(200)\n\t\tthis.utilsService.resizeWindowIFrame()\n\t}\n\n\tprivate async cargarListaVariables() {\n\t\tvar variables = new AusenciaDatoModel();\n\t\tvariables.ausencia = this.ausencia.llaveTabla;\n\t\tvariables.tipo = this.ausentismoPipe.VACACION;\n\t\tthis.listaVariables = await this.generalService.queryForList(new GeneralModel('AusenciaDatoDTO', null, false, variables)).toPromise();\n\t}\n\n\tprivate async cargarListVariable() {\n\t\tvar variableLiq = new VariableLiquidacionModel();\n\t\tvariableLiq.liquidacion = this.ausentismoPipe.VACACION;\n\t\tvar variablesLiquid: VariableLiquidacionModel[] = await this.generalService.queryForList(new GeneralModel('VariableLiquidacionDTO', null, false, variableLiq)).toPromise();\n\t\tthis.variablesLiq = [];\n\t\tvariablesLiquid.forEach(variable => {\n\t\t\tthis.variablesLiq.push({ value: variable.variableLiquidacion, label: variable.variableLiquidacion + ' - ' + variable.descripcion });\n\t\t})\n\t}\n\n\tpublic async buscar(origenTarea: string, form: string, ausenciaDTO: AusenciaModel, puedeActualizar: boolean) {\n\t\tthis.tableVariable = null;\n\t\tthis.puedeActualizar = puedeActualizar;\n\t\tawait this.buscar2(origenTarea, form, ausenciaDTO);\n\t}\n\n\tpublic regresarAction() {\n\t\tthis.regresar.emit(false);\n\t\tif (this.ausentismoPipe.ORIGEN_EMPLEADO_VACACION == this.origenTarea) {\n\t\t\t//FacesUtils.ValorEL(origenTarea, null);\n\t\t} else if (this.ausentismoPipe.ORIGEN_POPUP_HIST_VACACION == this.origenTarea) {\n\t\t\t//FacesUtils.ValorEL(origenTarea, null);\n\t\t}\n\t}\n\n\tprivate validar(valor: AusenciaDatoModel): boolean {\n\t\tvar validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(valor.periodo);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(valor.valor);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(valor.variableLiq);\n\t\treturn validador;\n\t}\n\n\tpublic async guardarVariable() {\n\t\tthis.clickGuardarVariable = true;\n\t\tif (!this.validar(this.variable)) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarVariable = false;\n\t\tthis.variable.ausencia = this.ausencia.llaveTabla;\n\t\tthis.variable.tipo = this.ausentismoPipe.VACACION;\n\t\tawait this.generalService.crearRegistro(new GeneralModel('AusenciaDatoDTO', null, false, this.variable)).toPromise();\n\t\tthis.variable = new AusenciaDatoModel();\n\t\tthis.vistaVisualizar = null;\n\t\tthis.habilitaCampo = false;\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tawait this.cargarListaVariables();\n\t}\n\n\tpublic async actualizarRegistro(e) {\n\t\tthis.variableAct = e;//(AusenciaDatoDTO) e.Object();\n\t\tthis.clickGuardarVariable = true;\n\t\tif (!this.validar(e)) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarVariable = false;\n\t\tawait this.generalService.update(new GeneralModel('AusenciaDatoDTO', null, false, this.variableAct)).toPromise();\n\t\tthis.vistaVisualizar = null;\n\t\tthis.habilitaCampo = false;\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\tthis.variable = new AusenciaDatoModel();\n\t}\n\n\tpublic verPopupPeriodo() {\n\t\t//getBean(PopupPeriodo.class).buscar('#{detalleVacacionAusenciaHistoricoBean.periodo}', getCredencial().NumeroEmpresa(), null, 'form_vacacionesEmpleado');\n\t}\n\n\tpublic verPopupPeriodoEdit() {\n\t\t//variableAct = (AusenciaDatoDTO) tableVariable.RowData();\t\t\t\n\t\t//getBean(PopupPeriodo.class).buscar('#{detalleVacacionAusenciaHistoricoBean.periodoEdit}', getCredencial().NumeroEmpresa(), null, 'form_vacacionesEmpleado');\n\t}\n\n\tpublic setPeriodoEdit(periodo: PeriodoModel, vari: AusenciaDatoModel) {\n\t\tvari.periodo = periodo.periodo;\n\t}\n\n\tpublic setPeriodo(periodo: PeriodoModel) {\n\t\tthis.variable.periodo = periodo.periodo;\n\t}\n\n\tpublic eliminarVariable(event, bean) {\n\t\tthis.ausenciaDatoEliminar = bean;\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\taccept: async () => {\n\t\t\t\tawait this.setEliminar();\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic async verComprobanteVacacion() {\n\t\tlet respuesta = await this.comprobanteVacacionService.traerComprobanteVacacion({ empresa: this.empleado.empresa, contrato: this.empleado.contrato, fechaSalida: this.ausencia.salidaPrincipal, tipoPeriodo: this.empleado.tipoPeriodo }).toPromise();\n\t\tif (respuesta != null) {\n\t\t\tthis.verComprobante = true;\n\t\t\tthis.mostrar = false;\n\t\t\t//getBean(EmpleadoBean.class).VistaVisualizar('verDetalleVacaciones');\n\t\t\t//getBean(DetalleMantenimientoVacacionesBean.class).verRegistroVacaciones(ausencia, EmpleadoCons.NAVEGAR_DATOS_EMPLEADO);\n\t\t} else {\n\t\t\tconst datePipe = new DatePipe('en-US');\n\t\t\tthis.notificacionesService.showWarning('No existe ausentismo que la fecha de salida concuerde con la fecha de salida principal: ' +datePipe.transform(this.ausencia.salidaPrincipal,'dd/MM/yyyy'));\n\t\t}\n\t}\n\n\tpublic regresarComprobante(event) {\n\t\tthis.verComprobante = false;\n\t\tthis.mostrar = true;\n\t}\n\n\tpublic async setEliminar() {\n\t\tawait this.generalService.delete(new GeneralModel('AusenciaDatoDTO', null, false, this.ausenciaDatoEliminar)).toPromise();\n\t\tawait this.cargarListaVariables();\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t}\n\n\n\tpublic validarHistorico(): boolean {\n\t\tvar validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.ausencia.tipoAusencia);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.ausencia.tipo);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.ausencia.dias);\n\t\treturn validador;\n\t}\n\n\n\tpublic eliminarHistorico() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\taccept: async () => {\n\t\t\t\tawait this.setEliminarHistorico();\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic async setEliminarHistorico() {\n\t\tvar registro: NominaAusenciaModel = new NominaAusenciaModel();\n\t\tregistro.llaveAusencia = this.ausencia.llaveTabla;\n\t\tvar listadoRegistro: NominaAusenciaModel[] = [];\n\t\tlistadoRegistro = await this.generalService.queryForList(new GeneralModel('NominaAusenciaDTO', null, false, registro)).toPromise();\n\t\tlistadoRegistro.forEach(async nominaAusenciaDTO => {\n\t\t\tawait this.generalService.delete(new GeneralModel('NominaAusenciaDTO', null, false, nominaAusenciaDTO)).toPromise();\n\t\t})\n\t\tthis.generalService.delete(new GeneralModel('AusenciaDTO', null, false, this.ausencia)).subscribe(data => {\n\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\tthis.regresarAction();\n\t\t});\n\t}\n\n\tpublic async actualizarHistorico() {\n\t\tthis.clickGuardar = true;\n\t\tif (!this.validarHistorico()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardar = false;\n\t\tawait this.generalService.update(new GeneralModel('AusenciaDTO', null, false, this.ausencia)).toPromise();\n\t\tthis.ausencia = this.ausenciaService.formatearAusencia(this.ausencia)\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t}\n\n\tpublic async insertarHistorico() {\n\t\tthis.clickGuardar = true;\n\t\tif (!this.validarHistorico()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardar = false;\n\t\t//CabeceraEmpleadoBean beane = getBean(CabeceraEmpleadoBean.class);\n\t\tthis.ausencia.empresa = this.empleado.empresa;\n\t\tthis.ausencia.contrato = this.empleado.contrato;\n\t\tthis.ausencia.origenAusencia = this.ausentismoPipe.VACACION;\n\t\tthis.ausencia.tipo = this.ausentismoPipe.AUSENTISMO;\n\t\tthis.ausencia = await this.generalService.crearRegistro(new GeneralModel('AusenciaDTO', null, false, this.ausencia)).toPromise();\n\t\tthis.ausencia = this.ausenciaService.formatearAusencia(this.ausencia)\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tawait this.cargarListaVariables();\n\t\tawait this.cargarListVariable();\n\t\tthis.nuevo = false;\n\t}\n\n\tpublic cambiarTipo() {\n\t\t//String tipo =changeEvent.NewValue().toString();\n\t\tif (this.ausentismoPipe.PAGONOMINA == (this.ausencia.formaPago)) {\n\t\t\tthis.verFechaPago = false;\n\t\t\tthis.ausencia.periodo = null;\n\t\t} else {\n\t\t\tthis.verFechaPago = true;\n\t\t}\n\t}\n\n\tmostrarNuevo() {\n\t\tthis.vistaVisualizar = 'nuevo';\n\t\tthis.habilitaCampo = true;\n\t}\n\n\tcancelarNuevo() {\n\t\tthis.vistaVisualizar = '';\n\t\tthis.variable = new AusenciaDatoModel;\n\t\tthis.habilitaCampo = false;\n\t}\n\n\tiniciarEdicion(data: any) {\n\t\tthis.edicionDatosOriginales[data.llaveTabla] = { ...data };\n\t\tthis.habilitaCampo = true;\n\t}\n\n\tcancelarEdicion(data: any) {\n\t\tif (this.edicionDatosOriginales[data.llaveTabla]) {\n\t\t\tObject.assign(data, this.edicionDatosOriginales[data.llaveTabla]);\n\t\t}\n\t\tthis.habilitaCampo = false;\n\t}\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-accordion [multiple]=\"true\" *ngIf=\"mostrar\">\n    <p-accordionTab [selected]=\"true\">\n        <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\n            {{'detalle' | translate}}\n        </ng-template>\n        <div class=\"p-fluid p-formgrid grid mt-2\">\n            <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"ausencia.tipoInterrumpe == 'S'\">\n                <h5>{{'interrupcion' | translate}}</h5>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\"> \n                    <p-dropdown [options]=\"listaTipoVacacionAusencia\" [(ngModel)]=\"ausencia.tipoAusencia\" \n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausencia.tipoAusencia) && clickGuardar\" \n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausencia.tipoAusencia) && clickGuardar\"  \n                        [autoDisplayFirst]=\"false\" appendTo=\"body\" >\n                    </p-dropdown>\n                    <label>{{'tipoausencia' | translate}}*</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\"> \n                    <p-dropdown [options]=\"listaTipoInterrupcion\" [(ngModel)]=\"ausencia.tipoInterrumpe\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausencia.tipoInterrumpe) && clickGuardar\" \n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausencia.tipoInterrumpe) && clickGuardar\"  \n                        optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" appendTo=\"body\" >\n                    </p-dropdown>\n                    <label>{{'origen' | translate}}*</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\"> \n                    <p-dropdown [options]=\"listaTipo\" [(ngModel)]=\"ausencia.tipo\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausencia.tipo) && clickGuardar\" \n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausencia.tipo) && clickGuardar\"  \n                        optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" appendTo=\"body\" >\n                    </p-dropdown>\n                    <label>{{'tipo' | translate}}*</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"ausencia.salida\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                    <label>{{'periodo' | translate}} {{ausencia.tipoInterrumpe == 'N' ? ('disfrute' | translate) : ('interrupcion' | translate)}} {{'inicial' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"ausencia.termina\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                    <label>{{'periodo' | translate}} {{ausencia.tipoInterrumpe == 'N' ? ('disfrute' | translate) : ('interrupcion' | translate)}} {{'final' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"ausencia.regreso\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                    <label>{{'fecha' | translate}} {{'regreso' | translate}} {{'nomina' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-inputNumber [(ngModel)]=\"ausencia.dias\" *ngIf=\"ausencia.tipoInterrumpe == 'N'\" ></p-inputNumber>\n                    <p-inputNumber [(ngModel)]=\"ausencia.interrupcion\" *ngIf=\"ausencia.tipoInterrumpe != 'N'\" ></p-inputNumber>\n                    <label>{{'dias' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"ausencia.inicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                    <label>{{'periodo' | translate}} {{'servicio' | translate}} {{'inicial' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"ausencia.fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                    <label>{{'periodo' | translate}} {{'servicio' | translate}} {{'final' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea [(ngModel)]=\"ausencia.observacion\" rows=\"5\" cols=\"30\" class=\"max-h-100 min-h-60 w-full\">\n                    </textarea>\n                    <label>{{'observacion' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <div class=\"card mt-0\">\n                    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'adicional' | translate}}</h5>\n                    <div class=\"contenedor p-fluid grid\">\n                        <div  class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaFormaPago\" [(ngModel)]=\"ausencia.formaPago\" (onChange)=\"cambiarTipo()\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" appendTo=\"body\" >\n                                </p-dropdown>\n                                <label >{{'formadepago' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"col-12 md:col-6 lg:col-4\" *ngIf=\"verFechaPago\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"ausencia.pago\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                                <label>{{'fechapago' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"col-12 md:col-6 lg:col-4\" *ngIf=\"!verFechaPago\">\n                            <span class=\"p-float-label\">\n                                <input type=\"text\" pInputText [(ngModel)]=\"ausencia.periodo\" maxlength=\"8\">\n                                <label>{{'periodopago' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"ausencia.salidaPrincipal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                                <label>{{'salida' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"ausencia.origen\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                                <label>{{'fecha' | translate}} {{'origen' | translate}}</label>\n                            </span>\n                        </div>\n                        \n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end mb-3\" >\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"nuevo && controlFuncionService.getControlFuncionalidad('vachis:crear') && puedeActualizar\"\n                icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"insertarHistorico()\">\n            </button>\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"!nuevo && controlFuncionService.getControlFuncionalidad('vachis:guardar') && puedeActualizar\"\n                icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarHistorico()\">\n            </button>\n            <button pButton pRipple class=\"ml-2 p-button p-button-secondary \" *ngIf=\"!nuevo && controlFuncionService.getControlFuncionalidad('vachis:vercomprobante')\"\n                icon=\"glyphicons glyphicons-eye-open\" label=\"Ver comprobante\" (click)=\"verComprobanteVacacion()\">\n            </button>\n            <button pButton pRipple class=\"ml-2 p-button-outlined \" *ngIf=\"!nuevo && controlFuncionService.getControlFuncionalidad('vachis:eliminar') && puedeActualizar\" icon=\"glyphicons glyphicons-bin\"\n                label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarHistorico()\">\n            </button>\n        </div>\n    </p-accordionTab>\n    <p-accordionTab [selected]=\"true\" *ngIf=\"!nuevo\">\n        <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>\n            {{'variable' | translate}}s\n        </ng-template>\n        <div class=\"flex justify-content-end mb-3\">\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"mostrarNuevo()\"\n                label=\"{{'link_nuevo' | translate}}\" [disabled]=\"habilitaCampo\">\n            </button>\n        </div>\n        <p-table [value]=\"listaVariables\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n            styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaVariables.length\"\n            [paginator]=\"listaVariables.length > 10\" dataKey=\"llaveTabla\" [showCurrentPageReport]=\"true\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"  editMode=\"row\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 15%;\">{{'periodo' | translate}}</th>\n                    <th style=\"width: 55%;\">{{'variable' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'valor' | translate}}</th>\n                    <th style=\"width: 5%;\"></th>\n                </tr>\n                <tr *ngIf=\"vistaVisualizar == 'nuevo' \" class=\"TablaNuevoRegistro\">\n                    <td style=\"width: 15%;\">\n                        <app-input-helper-periodo [readonly]=\"false\" [label]=\"variable.periodo ? variable.periodo : ''\"\n                            [requerido]=\"!utilsService.validarCampoObligatorio(variable.periodo) && clickGuardarVariable\"  \n                            (onSelected)=\"setPeriodo($event)\" ></app-input-helper-periodo>\n                    </td>\n                    <td style=\"width: 55%;\">\n                        <p-dropdown #idNuevoVariable=\"ngModel\" [options]=\"variablesLiq\" [(ngModel)]=\"variable.variableLiq\" [autoDisplayFirst]=\"false\" appendTo=\"body\" \n                            [class]=\"!utilsService.validarCampoObligatorio(variable.variableLiq) && clickGuardarVariable ? 'ng-invalid ng-dirty' : ''\">\n                        </p-dropdown>\n                    </td>\n                    <td style=\"width: 15%;\">\n                        <p-inputNumber #idNuevoValor=\"ngModel\" [(ngModel)]=\"variable.valor\" mode=\"decimal\" [minFractionDigits]=\"2\"\n                            [class]=\"!utilsService.validarCampoObligatorio(variable.valor) && clickGuardarVariable ? 'ng-invalid ng-dirty' : ''\"></p-inputNumber>\n                    </td>\n                    <!-- BOTONES NUEVO REGISTRO -->\n                    <td style=\"width: 5%;\">\n                        <div class=\"flex justify-content-end\">\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"guardarVariable()\"\n                                class=\"p-element p-ripple p-button-rounded p-button-success mb-2 p-button p-component p-button-icon-only ng-star-inserted\"></button>\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\n                                class=\"p-element p-ripple p-button-rounded p-button-danger mb-2 p-button p-component p-button-icon-only\"></button>\n                        </div>\n                   </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean let-editing=\"editing\" let-ri=\"rowIndex\">\n                <tr [pEditableRow]=\"bean\">\n                    <td style=\"width: 15%;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <app-input-helper-periodo [readonly]=\"false\" [label]=\"bean.periodo ? bean.periodo : ''\"  \n                                [requerido]=\"!utilsService.validarCampoObligatorio(bean.periodo) && clickGuardarVariable\"\n                                (onSelected)=\"setPeriodoEdit($event, bean)\" ></app-input-helper-periodo>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{bean.periodo}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td style=\"width: 55%;\">\n                        <p-cellEditor style=\"width:100%;\">\n                            <ng-template pTemplate=\"input\">\n                                <p-dropdown #idNuevoVariable2=\"ngModel\" [options]=\"variablesLiq\" [(ngModel)]=\"bean.variableLiq\" [autoDisplayFirst]=\"false\" appendTo=\"body\" \n                                    [class]=\"!utilsService.validarCampoObligatorio(bean.variableLiq) && clickGuardarVariable ? 'ng-invalid ng-dirty' : ''\">\n                                </p-dropdown>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{bean.variableLiq}} - {{bean.descripcionVariables}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td style=\"width: 15%;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <p-inputNumber [(ngModel)]=\"bean.valor\" mode=\"decimal\" [minFractionDigits]=\"2\"\n                                    [class]=\"!utilsService.validarCampoObligatorio(bean.variableLiq) && clickGuardarVariable ? 'ng-invalid ng-dirty' : ''\"></p-inputNumber>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{bean.valor | number: '1.2-2'}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <!-- BOTONES -->\n                    <td style=\"width: 5%;\" class=\"flex justify-content-end\" style=\"padding: 0.75rem 0.6rem\">\n                        <!-- CHECK GUARDAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                            (click)=\"actualizarRegistro(bean)\"\n                            class=\"p-element p-ripple p-button-rounded p-button-success mb-2 p-button p-component p-button-icon-only\"></button>\n                        <!-- CANCELAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n                            (click)=\"cancelarEdicion(bean)\"\n                            class=\"p-element p-ripple p-button-rounded p-button-danger mb-2 p-button p-component p-button-icon-only\"></button>\n                        <!-- EDITAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                            icon=\"glyphicons glyphicons-pencil\" (click)=\"iniciarEdicion(bean)\"\n                            class=\"p-element p-ripple p-button-rounded p-button-secondary mb-2 p-button p-component p-button-icon-only\"\n                            [disabled]=\"habilitaCampo\"></button>\n                        <!-- ELIMINAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                            (click)=\"eliminarVariable($event, bean)\"\n                            class=\"p-element p-ripple p-button-rounded p-button-outlined  mb-2 p-button p-component p-button-icon-only\"\n                            [disabled]=\"habilitaCampo\"></button>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </p-accordionTab>\n</p-accordion>\n<div *ngIf=\"verComprobante\">\n    <app-editar-mantenimiento-vacaciones [tituloTarea]=\"'Comprobante de Vacaciones'\" [registroVacacion]=\"ausencia\" [ocultarHeader]=\"true\"\n        (eventoRegresar)=\"regresarComprobante($event)\"></app-editar-mantenimiento-vacaciones>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class ProyeccionaVariableModel extends UnionModel {\n\n    llaveProyeccion: String;\n\tvariable: String;\n\tdescripcion: String;\n\testadistico: String;\n\tconsilidador: number;\n\tdesConsolidador: String;\n\ttipo: number;\n\tesEstadistico: String;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class ProyeccionFilaModel extends UnionModel {\n\n    llaveProyeccion: string;\n\tfila: number;\n\tdescripcion: string;\n\tformula: string;\n\torden: number;\n\ttipo: string;\n\tformula2: string;\n\tporNovedad: string;\n\n\t//DATOS NO PERSISTENTES\t\n\tformulaTotal: string;\n\n}","import { TipoNovedadCons } from \"../../../shared/pipes/tipoNovedadCons.pipe\";\nimport { ListaModel } from \"../../sarageneral/models/ListaModel\";\n\nexport class TipoNovedadModel extends ListaModel {\n\n\tllave: string;\n\tdepende: string;\n\tdescripcion: string;\n\ttipo: string;\n\tvariable: string;\n\tconcepto: number;\n\ttipoliquidape: string;\n\tincluircc: string;\n\tincluirLinea: string;\n\tmateria: string;\n\tsolicitud: string;\n\ttipoLiquida: number;\n\tplanilla: string;\n\tplanillaSolicitud: string;\n\tpublicacionweb: string;\n\tautomatica: string;\n\tenviocorreo: string;\n\tmensaje: string;\n\ttermino: string;\n\ttipoausencia: string;\n\tentidadActual: string;\n\ttipoServicio: string;\n\tarchivo: string;\n\ttipoFormula: string;\n\tmomentoFormula: string;\n\tformula: string;\n\tformula2: string;\n\tformula3: string;\n\tformula4: string;\n\tcomodinBusqueda: string;\n\tseleccion: string;\n\tdestipoliquida: string;\n\tnotificacion: string;\n\taccion: string;\n\trequisito: string;\n\tarchivoSolicitud: string;\n\ttipoSolicitud: string;\n\ttipoTermina: string;\n\tpublicacionWeb2: string;\n\tadjuntaArchivo: string;\n\tplanillaCorreoLegaliza: string;\n\tregistroPin: string;\n\tdescargarFuente: string;\n\tunica: string;\n\tasegurado: string;\n\tseleccionado: boolean;\n\tmodo: string;\n\trolUsuario: string;\n\tdescripcionPadre: string;\n\tfiltro: string;\n\thijoPadre: string;\n\tempresa: number;\n\tidentifica: number;\n\tcorreoSolicitante: string;\n\tplanillaCorreoAutoriza: string;\n\tcodigo: number;\n\tlogin: string;\n\tregresion: string;\n\tadjuntar: string;\n\tprocedimiento: string;\n\tcodNovedades: string;\n\tcodNovedadesHijas: string;\n\tcodNovedadesPadre: string;\n\tvariableFecha: string;\n\ttipoRelacion: string;\n\tcodigoVariableFecha: string;\n\tdescripcionVariable: string;\n\tdescripcionVariableFecha: string;\n\tdescripcionTipoServicio: string;\n\tdescripcionConcepto: string;\n\tdescripcionLiquidaPeriodica: string;\n\tfiltroLoginRol: string;\n\tservicioValidador: string;\n\tformatoActo: number;\n\torigenFiltroNovedad: string;\n\tcodFormula: number;\n\tcedula: number;\n\tfiltroLogin: string;\n\tfiltroRol: string;\n\tusuarioLogin: string;\n\tdescripcionModo: string;\n\tdescripNovedad:string;\n\ttipoNovedadPipe: TipoNovedadCons;\n\tconceptoEsFormula: string;\n\tconceptoUnico: string;\n\tconceptoTipoServicio: string;\n\t\n\tget esCambioTurno() {\n\t\treturn 'T' == this.tipo;\n\t}\n\n\tget esVariable() {\n\t\treturn 'V' == this.tipo || 'A' == this.tipo;\n\t}\n\tget esVariableEmpleado() {\n\t\treturn 'V' == this.tipo;\n\t}\n\n\tget esVariablePeriodo() {\n\t\treturn 'A' == this.tipo;\n\t}\n\n\tget esVariableFecha() {\n\t\treturn 'F' == this.tipo || 'L' == this.tipo;\n\t}\n\n\tget esVariableFechaPeriodo() {\n\t\treturn 'F' == this.tipo;\n\t}\n\t\n\tget esVariableFechaEmpleado() {\n\t\treturn 'L' == this.tipo;\n\t}\n\n\tget esConcepto() {\n\t\treturn 'C' == this.tipo || 'O' == this.tipo;\n\t}\n\n\tget esConceptoEmpleado() {\n\t\treturn 'C' == this.tipo;\n\t}\n\n\tget esConceptoPeriodo() {\n\t\treturn 'O' == this.tipo;\n\t}\n\n\tget esEmbargo() {\n\t\treturn 'E' == this.tipo;\n\t}\n\n\tget esPrestamo() {\n\t\treturn 'P' == this.tipo;\n\t}\n\n\tget esCambioEntidad() {\n\t\treturn 'X' == this.tipo;\n\t}\n\t\n\tget esProrroga() {\n\t\treturn 'PR' == this.tipo;\n\t}\n\t\n\tget esTipoCambioEmpleado() {\n\t\treturn 'CE' == this.tipo;\n\t}\n\n\n\tget NuevaCambioEntidad(){\n\t\tif ( !this.esCambioEntidad) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'NU' == this.accion;\n\t}\n\n\tget BorrarCambioEntidad(){\n\t\tif ( !this.esCambioEntidad) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'BO' == this.accion;\n\t}\n\t\n\tget ModificarCambioEntidad(){\n\t\tif ( !this.esCambioEntidad) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'MO' == this.accion;\n\t}\n\n\tget esTerminacionContrato() {\n\t\treturn 'R' == this.tipo;\n\t}\n\t\n\tget PrestamoAbonoExtra() {\n\t\tif ( !this.esPrestamo && !this.esEmbargo) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'AX' == this.accion;\n\t}\n\t\n\tget PrestamoAbonoFuera() {\n\t\tif ( !this.esPrestamo && !this.esEmbargo) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'AB' == this.accion;\n\t}\n\n\tget PrestamoCancelacion() {\n\t\tif ( !this.esPrestamo && !this.esEmbargo) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'CA' == this.accion;\n\t}\n\n\tget PrestamoCambioCuota() {\n\t\tif ( !this.esPrestamo && !this.esEmbargo) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'CC' == this.accion;\n\t}\n\t\n\t\n\tget PrestamoNuevo() {\n\t\tif ( !this.esPrestamo && !this.esEmbargo) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'NU' == this.accion || 'NC' == this.accion;\n\t}\n\n\tget PrestamoCompraCartera() {\n\t\tif ( !this.esPrestamo && !this.esEmbargo) {\n\t\t\treturn false;\n\t\t}\n\t\treturn 'NC' == this.accion;\n\t}\n\n\tget PeriodoNomina() {\n\t\tif (this.tipo != null) {\n\t\t\tif (this.tipo == ('A') || this.tipo == ('O') || this.tipo == ('F')) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class MotivoLiquidaModel extends UnionModel {\n\n\ttipoLiquida: number;\n\tmotivoLiquida: number;\n\tdescripcion: string;\n\tobservacion: string;\n\n\t//DATOS NO PERSISTENTES\n    mostrarEditar?: boolean;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class SucursalEntidadModel extends UnionModel {\n\n\tsucursalEntidad: number;\n\tnumeroPatron: number;\n\tllaveSucursal: string;\n\tdireccion: string;\n\ttelefono: string;\n\tciudad: string;\n\tciudadDescripcion: string;\n\tdepartamento: string;\n\tdepartamentoDescripcion: string;\n\ttipoReporte: string;\n\tfax: string;\n\tdescripcion: string;\n\tnombreEntidad: string;\n\ttipoServicio: string;\n\tentidad: string;\n\tnombreSucursal: string;\n\tfechaPadre: Date;\n\tformularioPadre: string;\n\tfechaCorte: Date;\n\tfechaPago: Date;\n\tempresa: number;\n\tformulario: string;\n\tlogin: string;\n\taliasRol: string;\n\tporTipoPeriodo: string;\n\tpais: string;\n\tidioma: string;\n\ttipoMoneda: string;\n\tnombres: string;\n\tapellidos: string;\n\tdigito: number;\n\tnit: number;\n\ttasa: number;\n\t\n\t\n}","import { UnionModel } from 'general-library-union'\n\n\nexport class VinculacionLaboralModel extends UnionModel {\n\n\tvinculacion: number;\n\tdescripcion: string;\n\tprorroga: string;\n\ttipoGrupo: string;\n\ttipoGrupoNombre: string;\n\tarchivo: string;\n\ttemporal: string;\n\ttituloLct: string;\n\ttextoLct: string;\n\ttemporalCheck: boolean;\n\tmodo: string;\n\tplantillaLiquidacion: string;\n\t\n\t//DATOS NO PERSISTENTES\n\tdescripcionModo: string;\n\tdescripcionPopup: string;\n\tvalorPopup: any;\n}\n\n","import { UnionModel } from 'general-library-union'\n\n\nexport class TurnoModel extends UnionModel {\n\n\tturno: number;\n\tdescripcion: string;\n\tentrada: string;\n\tsalida: string;\t\n\t\n\t/** El tipo de turno (@see {@link ParametrosCompensacionCons#LISTATIPOEMPLEADO})*/\n\ttipo: string;\n\tmodo: string;\n\tfactor: number;\n\n\t//DATOS NO PERSISTENTES\n\tdescripcionModo: string\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class ClasificacionModel extends UnionModel {\n\n\t\n\t\n\tclasificacion: string;\n\t/**\n\t * parametro para buscar o por el nivel del cargo o por la descripcion\n\t */\n\tparametroBusqueda: string;\n\tcategoria: string;\n\tdescripcion: string;\n\torganizacion: number;\n\tdescripcionCategoria: string;\n\tperfilFuncion: string;\n\ttiempoServicio: number;\n\ttipo: string;\n\t\n\n}","import { UnionModel } from \"general-library-union\";\n\nexport class TipoPeriodoModel extends UnionModel{\n\t\n\ttipo: number;\n\tdescripcion: string;\n\testadoLaboral: string;\n\tseleccion: string;\n\tseleccionado: boolean;\n\tusuarioLogin: string;\n\tempresa: number;\n\tmodo: string;\n\tmodoParametro: string;\n\tcodigo: number;\n\tpunto: string;\n\tlogin: string;\n\tperiocidad: string;\n\taliasRol: string;\n\tfiltroPeriodo: string;\n\t\t\n}\n","import { UnionModel } from 'general-library-union'\n\n\nexport class LineaCostoModel extends UnionModel {\n\n\tlineaCosto: string;\n\tdescripcion: string;\n\tempresa: number;\n\testado: string;\n\tcomodinBusqueda: string;\n\tcomodinFiltro: string;\n\tvalor: number;\n\tvalorDistribuir: number;\n\tconsolidador: number;\n\tperiodo: string;\n\torden: number;\n\tfechaActual: Date;\n\tpago: string;\n\t\n\t\n}","import { UnionModel } from 'general-library-union'\nimport { PuestoTrabajoModel } from '../../talento/models/PuestoTrabajoModel';\n\n\nexport class NivelCargoModel extends UnionModel {\n\n\t\n\t/**\n\t * parametro para buscar o por el nivel del cargo o por la descripcion\n\t */\n\tnivelCargo: string;\n\tparametroBusqueda: string;\n\tdescripcion: string;\n\tpesoMinimo: number;\n\tpesoMaximo: number;\n\tsueldoMinimo: number;\n\tsueldoMaximo: number;\n\torganizacion: number;\n\tcolor: string;\n\tlistaPuesto: PuestoTrabajoModel [];\n\t\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class CentroCostoModel extends UnionModel {\n\t\n\t\n\t/** Llave de la zona economica a la que pertenece este centro de costo ({@link ZonaEconomicaDTO})*/\n\tzonaEconomica: string;\n\t/** Llave que identifica este centro de costo*/\n\tcentroCosto: string;\n\tdescripcion: string;\n\testado: string;\n\t/** Llave de la empresa a la que pertenece este centro de costo ({@link EmpresaDTO})*/\n\tempresa: number;\n\talterno: string;\n\tdescripcionZona: string;\n\tcomodin: string;\n\tbusqueda: string;\n\tnombreEstado: string;\n\tresponsable: number;\n\tnombreResponsable: string;\n\t\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class TipoCambioEmpleadoModel extends UnionModel {\n\n\n\ttipoCambioEmpleado: string;\n\tdescripcion: string;\n\ttemporal: string;\n\taccion: string;\n\tafecta: string;\n\tsoporte: string;\n\tmodo: string;\n\ttipo: string;\n\tbusqueda: string;\n\n\t//DATOS NO PERSISTENTES\n\tdescripcionModo: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class TipoActividadModel extends UnionModel {\n\n\torigen: String;\n\tdescripcion: String;\n\tbusqueda: String;\n\tetapa: String;\n\tmedio: String;\n\ttipoRango: number;\n\torden: number;\n\tmoneda: String;\n\tentrevistaPrueba: String;\n\tgestionPeriodo: String;\n\tplantillaCorreo: String;\n\tplantillaCorreoCan: String;\n\tcodigo: String;\n\tareaTalento: String;\n\testadoInicio: String;\n\testadoTermina: String;\n\torigenRegistro: String;\n\ttipoOrigenRegistro: String;\n\tasignarFecha: String;\n\ttipoActividad: String;\n\tinformativa: String;\n\t\t\n}\n","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { throwError } from 'rxjs';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel, UtilsService, AuthService } from 'general-library-union';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { ProyeccionaVariableModel } from '../models/ProyeccionaVariableModel';\nimport { ProyeccionFilaModel } from '../models/ProyeccionFilaModel';\nimport { EmpresaModel } from '../models/EmpresaModel';\nimport { TipoAusenciaModel } from '../models/TipoAusenciaModel';\nimport { TipoNovedadModel } from '../models/TipoNovedadModel';\nimport { UnidadOrganizacionalModel } from '../../talento/models/UnidadOrganizacionalModel';\nimport { ListaConstantesPipe } from '../../../shared/pipes/listaConstantes.pipe'\nimport { MotivoLiquidaModel } from '../models/MotivoLiquidaModel';\nimport { SucursalEntidadModel } from '../models/SucursalEntidadModel';\nimport { TipoDocumentoModel } from '../../hojavida/models/TipoDocumentoModel';\nimport { EntidadModel } from '../models/EntidadModel';\nimport { ConceptoModel } from '../models/ConceptoModel';\nimport { HojaVidaPipe } from '../../../shared/pipes/hojavida.pipe';\nimport { VinculacionLaboralModel } from '../models/VinculacionLaboralModel';\nimport { TurnoModel } from '../../talento/models/TurnoModel';\nimport { ClasificacionModel } from '../models/ClasificacionModel';\nimport { TipoPeriodoModel } from '../models/TipoPeriodoModel';\nimport { LineaCostoModel } from '../models/LineaCostoModel';\nimport { ServicioEntidadExternaModel } from '../models/ServicioEntidadExternaModel';\nimport { NivelCargoModel } from '../models/NivelCargoModel';\nimport { TipoServicioModel } from '../models/TipoServicioModel';\nimport { AusentismoPipe } from '../../../shared/pipes/ausentismo.pipe';\nimport { UbicacionFisicaPipe } from '../pipes/ubicacionFisica.pipe';\nimport { UbicacionFisicaModel } from '../models/UbicacionFisicaModel';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { CentroCostoModel } from '../models/CentroCostoModel';\nimport { NivelAcademicoModel } from '../../hojavida/models/NivelAcademicoModel';\nimport { SeleccionReporteModel } from '../models/SeleccionReporteModel';\nimport { TipoCambioEmpleadoModel } from '../models/TipoCambioEmpleadoModel';\nimport { CargoModel } from '../../talento/models/CargoModel';\nimport { TipoActividadModel } from '../../capacitacion/models/TipoActividadModel';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SelectListCompensa {\n\n\tconstructor(private httpClient: HttpClient,\n\t\tprivate errorInterceptor: ErrorIntecertorService,\n\t\tpublic utilsService: UtilsService,\n\t\tprivate authService: AuthService,\n\t\tprivate hojaVidaPipe: HojaVidaPipe,\n\t\tprivate listaConstantesPipe: ListaConstantesPipe,\n\t\tprivate ausentismoPipe: AusentismoPipe,\n\t\tprivate ubicacionFisicaPipe: UbicacionFisicaPipe,\n\t\tprivate saraAplicacionService: SaraAplicacionService,\n\t\tprivate generalService: GeneralService) {\n\t\tthis.handleError = this.handleError.bind(this);\n\t}\n\n\tprivate handleError(error: HttpErrorResponse) {\n\t\tif (error.status === 500) {\n\t\t\t//Llamado a interceptor\n\t\t\tthis.errorInterceptor.showError(JSON.stringify(error.error));\n\t\t\t// A client-side or network error occurred. Handle it accordingly.\n\t\t\tconsole.error('An error occurred:', error.error);\n\t\t} else {\n\t\t\t// The backend returned an unsuccessful response code.\n\t\t\t// The response body may contain clues as to what went wrong.\n\t\t\tconsole.error(\n\t\t\t\t`Backend returned code ${error.status}, body was: `, error.error);\n\t\t}\n\t\t// Return an observable with a user-facing error message.\n\t\treturn throwError(() => new Error('Something bad happened; please try again later.'));\n\t}\n\n\tasync selectListObjetivos(empresa: number, unidad: string) {\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('ObjetivoDTO', null, false, { empresa: empresa, unidad: unidad })).toPromise();\n\t\tlet listaRetorno = [];\n\t\tlista.forEach(data => {\n\t\t\tlistaRetorno.push({ value: data.llave, label: data.descripcion });\n\t\t})\n\t\treturn listaRetorno;\n\t}\n\n\tasync getListadoformula() {\n\t\tlet listadoformula = [];\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('FormulaDTO', null, false, {})).toPromise();\n\t\tlista.forEach(unFor => {\n\t\t\tlistadoformula.push({ value: unFor.formula, label: unFor.descripcion });\n\t\t})\n\t\treturn listadoformula;\n\t}\n\n\tgetListasino() {\n\t\tlet listasino = [];\n\t\tlistasino.push({ value: Constantes.CONSTANTE_SI, label: Constantes.SI_STRING });\n\t\tlistasino.push({ value: Constantes.CONSTANTE_NO, label: Constantes.NO_STRING });\n\t\treturn listasino;\n\t}\n\n\tasync getListaVariableProyeccion(llaveProyeccion: string) {\n\t\tlet listaVariableProyeccion = [];\n\t\tlet proyevar = new ProyeccionaVariableModel();\n\t\tproyevar.estadistico = Constantes.CONSTANTE_NO;\n\t\tproyevar.llaveProyeccion = llaveProyeccion;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('ProyeccionVariableDTO', null, false, proyevar)).toPromise();\n\t\tlista.forEach(element => {\n\t\t\tlistaVariableProyeccion.push({ value: element.variable, label: this.utilsService.capitalizeFully(element.descripcion) + ' (' + element.variable + ')' });\n\t\t})\n\n\t\tlistaVariableProyeccion = this.utilsService.ordenarSelectItemsAlfabeticamente(listaVariableProyeccion);\n\t\treturn listaVariableProyeccion;\n\t}\n\n\t/**\n\t * \n\t * @param llaveProyeccion\n\t * @return lista de variables donde el codigo incluye la descripcion\n\t */\n\tasync getListaVariableProyeccionDescripcion(llaveProyeccion: string) {\n\t\tlet listaVariableProyeccionDescripcion = [];\n\n\t\tlet proyevar = new ProyeccionaVariableModel();\n\t\tproyevar.estadistico = Constantes.CONSTANTE_NO;\n\t\tproyevar.llaveProyeccion = llaveProyeccion;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('ProyeccionVariableDTO', null, false, proyevar)).toPromise();\n\t\tlista.forEach(element => {\n\t\t\tlistaVariableProyeccionDescripcion.push({ value: element.variable, label: element.variable.trim() + '-' + this.utilsService.capitalizeFully(element.descripcion) });\n\t\t})\n\n\t\tlistaVariableProyeccionDescripcion = this.utilsService.ordenarSelectItemsAlfabeticamente(listaVariableProyeccionDescripcion);\n\t\treturn listaVariableProyeccionDescripcion;\n\t}\n\n\t/**\n\t * \n\t * @param llaveProyeccion\n\t * @return lista de las filas\n\t */\n\tasync getListaFilasProyeccionDescripcion(llaveProyeccion: string) {\n\t\tlet listaFilaProyeccionDescripcion = [];\n\t\tlet proyeccionFila = new ProyeccionFilaModel();\n\t\tproyeccionFila.llaveProyeccion = llaveProyeccion;\n\t\tproyeccionFila.porNovedad = 'S';\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('ProyeccionFilaDTO', null, false, proyeccionFila)).toPromise();\n\t\tlista.forEach(element => {\n\t\t\tlistaFilaProyeccionDescripcion.push({ value: element.llaveTabla, label: element.fila.toString() + '-' + this.utilsService.capitalizeFully(element.descripcion) });\n\t\t})\n\n\t\tlistaFilaProyeccionDescripcion = this.utilsService.ordenarSelectItemsAlfabeticamente(listaFilaProyeccionDescripcion);\n\t\treturn listaFilaProyeccionDescripcion;\n\t}\n\n\t/**\n\t * Retorna la lista seleccionable de motivos de retiro que tienen el origen\n\t * indicado\n\t * \n\t * @param origen\n\t *            El tipo de acto para el cual se quiere obtener la lista de\n\t *            motivos de retiro (@see AusentismoCons#ORIGENAUSENCIA)\n\t * @return La lista de objetos seleccionables que representan los tipos de\n\t *         retiro /tipos de ausentismo\n\t */\n\tasync getListaMotivoRetiro(origen: string) {\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\treturn await this.getListaMotivoRetiro2(origen, empresa.modoCompensacion);\n\t}\n\n\t/**\n\t * Obtiene y retorna la lista seleccionable de motivos de retiro de un\n\t * empleado (se crea a partir de los tipos de ausencia existentes)\n\t * \n\t * @param origen\n\t *            El tipo de acto para el cual se quiere obtener la lista de\n\t *            motivos de retiro (@see AusentismoCons#ORIGENAUSENCIA)\n\t * @param modo\n\t *            El modo definido para la aplicacion (p.e. COLOMBIA)\n\t * @return La lista de objetos seleccionables construida con base en los\n\t *         tipos de ausencia que corresponden con el origen y modo indicados\n\t */\n\tasync getListaMotivoRetiro2(origen: string, modo: string) {\n\t\tlet listaMotivoRetiro = [];\n\t\tif (origen == null) {\n\t\t\treturn listaMotivoRetiro;\n\t\t}\n\t\tlet tipo = new TipoAusenciaModel();\n\t\ttipo.origen = origen;\n\t\ttipo.modo = modo;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', 'TipoAusencia.listaMotivo', false, tipo)).toPromise();\n\t\tlista.forEach(element => {\n\t\t\tlistaMotivoRetiro.push({ value: element.llaveTabla, label: element.descripcion });\n\t\t})\n\n\t\treturn listaMotivoRetiro;\n\t}\n\n\tasync getListaTipoNovedad(modo: string) {\n\t\tlet listaTipoNovedad = [];\n\t\tif (modo == null) {\n\t\t\treturn listaTipoNovedad;\n\t\t}\n\t\tlet tipoNovedad = new TipoNovedadModel();\n\t\ttipoNovedad.depende = this.utilsService.rightpad(Constantes.PUNTO, 32, ' ');\n\t\ttipoNovedad.solicitud = Constantes.CONSTANTE_NO;\n\t\ttipoNovedad.modo = modo;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', null, false, tipoNovedad)).toPromise();\n\t\tlista.forEach(element => {\n\t\t\tlistaTipoNovedad.push({ value: element.llave, label: element.descripcion });\n\t\t})\n\n\t\treturn listaTipoNovedad;\n\t}\n\n\tasync getListaTipoNovedadNomina(){\n\t\tlet listaTipoNovedadNomina = [];\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO',null,false,{empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', 'TipoNovedad.obtenerTipoNovedadNomina', false, {modo: empresa.modoCompensacion})).toPromise();\n\t\tlista.forEach(element => {\n\t\t\tlistaTipoNovedadNomina.push({ value: element.llave, label: element.descripcion });\n\t\t})\n\t\treturn listaTipoNovedadNomina\n\t}\n\n\tasync getSelectUnidad() {\n\t\tlet listaUnidadesItem = [];\n\t\tlet unidadOrganizacionalDTO = new UnidadOrganizacionalModel();\n\t\tunidadOrganizacionalDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tunidadOrganizacionalDTO.estado = this.listaConstantesPipe.VIGENTE;\n\t\tlet listaUnidadesOrganizacionales = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, unidadOrganizacionalDTO)).toPromise();\n\t\tif (listaUnidadesOrganizacionales.length > 0) {\n\t\t\tlistaUnidadesOrganizacionales.forEach(element => {\n\t\t\t\tlet llave: string = element.unidad;\n\t\t\t\tlistaUnidadesItem.push({ value: llave, label: llave + ' - ' + element.nombreUnidad });\n\t\t\t})\n\t\t}\n\t\treturn listaUnidadesItem;\n\t}\n\n\tasync getSelectUnidadTodas() {\n\t\tlet listaUnidadesItem = [];\n\t\tlet unidadOrganizacionalDTO = new UnidadOrganizacionalModel();\n\t\tunidadOrganizacionalDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tlet listaUnidadesOrganizacionales = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, unidadOrganizacionalDTO)).toPromise();\n\t\tif (listaUnidadesOrganizacionales.length > 0) {\n\t\t\tlistaUnidadesOrganizacionales.forEach(element => {\n\t\t\t\tlet llave: string = element.unidad;\n\t\t\t\tlistaUnidadesItem.push({ value: llave, label: llave + ' - ' + this.utilsService.capitalizeFully(element.nombreUnidad) });\n\t\t\t})\n\t\t}\n\t\treturn listaUnidadesItem;\n\t}\n\n\tasync getSelectEstadosLaborales() {\n\t\tlet listaEstadosLaboralesItem = [];\n\t\tlet listaEstadosLaborales = await this.generalService.queryForList(new GeneralModel('EstadoLaboralDTO', null, false, {})).toPromise();\n\t\tif (listaEstadosLaborales.length > 0) {\n\t\t\tlistaEstadosLaborales.forEach(element => {\n\t\t\t\tlistaEstadosLaboralesItem.push({ value: element.EstadoLaboral(), label: element.descripcion });\n\t\t\t})\n\t\t}\n\t\treturn listaEstadosLaboralesItem;\n\t}\n\n\tasync getListaTipoFormato() {\n\t\tlet listaTipoFormato = [];\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('FormatoDTO', null, false, {})).toPromise();\n\t\tlista.forEach(motivo => {\n\t\t\tlistaTipoFormato.push({ value: motivo.llave, label: motivo.descripcion });\n\t\t})\n\t\treturn listaTipoFormato;\n\t}\n\n\tasync getListaMotivoLiquida(tipoLiquida: number) {\n\t\tlet listaMotivoLiquida = [];\n\t\tlet motivoLiquidacion = new MotivoLiquidaModel();\n\t\tmotivoLiquidacion.tipoLiquida = tipoLiquida;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('MotivoLiquidaDTO', null, false, motivoLiquidacion)).toPromise();\n\t\tlista.forEach(motivo => {\n\t\t\tlistaMotivoLiquida.push({ value: motivo.motivoLiquida, label: motivo.descripcion });\n\t\t})\n\t\treturn listaMotivoLiquida;\n\t}\n\n\tasync getListaSucursalUsuario() {\n\t\tlet listaSucursalEntidadUsuario = [];\n\t\tlet comodinSucursal = new SucursalEntidadModel();\n\t\tcomodinSucursal.login = this.authService.getTokenKey('usuario');\n\t\tcomodinSucursal.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tcomodinSucursal.aliasRol = this.authService.getTokenKey('aliasRol');\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('SucursalEntidadDTO', null, false, comodinSucursal)).toPromise();\n\t\tlista.forEach(unaSucursal => {\n\t\t\tlistaSucursalEntidadUsuario.push({ value: unaSucursal.sucursalEntidad, label: unaSucursal.descripcion });\n\t\t})\n\t\treturn listaSucursalEntidadUsuario;\n\t}\n\n\tasync getListatipoDocumento() {\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\tlet listatipoDocumento = [];\n\t\tvar tipoDocumentoDTO = new TipoDocumentoModel();\n\t\ttipoDocumentoDTO.origen = this.hojaVidaPipe.TIO_HOJAVIDA;\n\t\ttipoDocumentoDTO.modo = empresa.modoHojavida;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('TipoDocumentoDTO', null, false, tipoDocumentoDTO)).toPromise();\n\t\tlista.forEach(tipo => {\n\t\t\tlistatipoDocumento.push({ value: tipo.documento, label: tipo.descripcion });\n\t\t})\n\t\treturn listatipoDocumento;\n\t}\n\n\tasync getListaEntidad() {\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\tlet listaEntidad = [];\n\t\tvar entidadDTO = new EntidadModel();\n\t\tentidadDTO.modo = empresa.modoCompensacion;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('EntidadDTO', null, false, entidadDTO)).toPromise();\n\t\tlista.forEach(lis => {\n\t\t\tlistaEntidad.push({ value: lis.llave, label: lis.descripcion });\n\t\t})\n\t\treturn listaEntidad;\n\t}\n\n\tasync getListaconsolidador() {\n\t\tlet listaconsolidador = [];\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('ConsolidadorDTO', null, false, {})).toPromise();\n\t\tlista.forEach(con => {\n\t\t\tlistaconsolidador.push({ value: con.consolidador, label: con.descripcion });\n\t\t})\n\t\treturn listaconsolidador;\n\t}\n\n\tasync getListaconceptogeneral() {\n\t\tlet listaconceptogeneral = [];\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\tlet modo: string = empresa.modoCompensacion;\n\t\tlet conceptoDTO = new ConceptoModel();\n\t\tconceptoDTO.modo = modo;\n\t\t\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('ConceptoDTO', null, false, conceptoDTO)).toPromise();\n\t\tlista.forEach(con => {\n\t\t\tlistaconceptogeneral.push({ value: con.concepto, label: con.descripcion });\n\t\t})\n\t\treturn listaconceptogeneral;\n\t}\n\n\tasync getListaTipoServicio() {\n\t\tlet listaTipoServicio = [];\n\t\tlet listatipo: TipoServicioModel[] = [];\n\t\tlet tipo = new TipoServicioModel();\n\t\ttipo.liquidacion = Constantes.CONSTANTE_SI;\n\t\tlistatipo = await this.generalService.queryForList(new GeneralModel('TipoServicioDTO', null, false, tipo)).toPromise();\n\t\tlistatipo.forEach(tip => {\n\t\t\tlistaTipoServicio.push({value: tip.tipoServicio, label: tip.descripcion})\n\t\t});\n\t\treturn listaTipoServicio;\n\t}\n\t\n\n\t// async getListaTipoServicioTodas() {\n\t// \tif (listaTipoServicioTodas == null) {\n\t// \t\tlistaTipoServicioTodas = [];\n\t// \t\tList<TipoServicioDTO> listatipo = new ArrayList<TipoServicioDTO>();\n\t// \t\tTipoServicioDTO tipo = new TipoServicioDTO();\n\n\t// \t\t\tlistatipo = this.generalService.queryForList(new GeneralModel(tipo);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tlistaTipoServicioTodas.push({value: null, label: null});\n\t// \t\tfor (TipoServicioDTO tip : listatipo) {\n\t// \t\t\tlistaTipoServicioTodas.push({value: tip.TipoServicio(), tip.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn listaTipoServicioTodas;\n\t// }\n\n\t// async getListaInterfaz() {\n\t// \tif (listaInterfaz == null) {\n\t// \t\tlistaInterfaz = [];\n\t// \t\tList<InterfazDTO> listaIn = new ArrayList<InterfazDTO>();\n\t// \t\tInterfazDTO interfaz = new InterfazDTO();\n\t// \t\tinterfaz.TipoInterfaz('E');\n\t// \t\tinterfaz.estado = 'S');\n\t// \t\tinterfaz.ModoParametro(saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\n\t// \t\t\tlistaIn = this.generalService.queryForList(new GeneralModel(interfaz);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\n\t// \t\tfor (InterfazDTO tip : listaIn) {\n\t// \t\t\tlistaInterfaz.push({value: tip.Interfaz(), tip.Interfaz() + ' - ' + tip.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn listaInterfaz;\n\t// }\n\n\t// async getListaInterfazTipo(String tipo) {\n\t// \tif (listaInterfazTipo == null) {\n\t// \t\tlistaInterfazTipo = [];\n\t// \t\tList<InterfazDTO> listaIn = new ArrayList<InterfazDTO>();\n\t// \t\tInterfazDTO interfaz = new InterfazDTO();\n\t// \t\tinterfaz.TipoInterfaz(tipo);\n\t// \t\tinterfaz.ModoParametro(saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\n\t// \t\t\tlistaIn = this.generalService.queryForList(new GeneralModel(interfaz);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\n\t// \t\tfor (InterfazDTO tip : listaIn) {\n\t// \t\t\tlistaInterfazTipo.push({value: tip.Interfaz(), tip.Interfaz() + ' - ' + tip.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn listaInterfazTipo;\n\t// }\n\n\t// async getListaTiposolicitud() {\n\t// \tif (listaTiposolicitud == null) {\n\t// \t\tlistaTiposolicitud = [];\n\t// \t\tlistaTiposolicitud.push({value: null, label: null});\n\t// \t\tTipoNovedadDTO tipo = new TipoNovedadDTO();\n\t// \t\ttipo.Solicitud(Constantes.CONSTANTE_SI);\n\t// \t\tList<TipoNovedadDTO> listatipo = new ArrayList<TipoNovedadDTO>();\n\n\t// \t\t\tlistatipo = this.generalService.queryForList(new GeneralModel(tipo);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\n\t// \t\tfor (TipoNovedadDTO tip : listatipo) {\n\t// \t\t\tlistaTiposolicitud.push({value: tip.llave, tip.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn listaTiposolicitud;\n\t// }\n\n\t// async getListaMateria() {\n\t// \tif (listaMateria == null) {\n\t// \t\tlistaMateria = [];\n\t// \t\tlistaMateria.push({value: null, label: null});\n\t// \t\tList<MateriaDTO> listatipo = new ArrayList<MateriaDTO>();\n\n\t// \t\t\tlistatipo = this.generalService.queryForList(new GeneralModel(new MateriaDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (MateriaDTO element : listatipo) {\n\t// \t\t\tlistaMateria.push({value: element.Materia(), element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaMateria;\n\t// }\n\n\t// async getListaTipoNovedadNomina() {\n\t// \tSaraAplicacionBean saraAplicacionBean = (SaraAplicacionBean) FacesUtils.Bean('inicioAplicacionBean');\n\t// \tString modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion();\n\n\t// \tif (listaTipoNovedadNomina == null) {\n\t// \t\tlistaTipoNovedadNomina = [];\n\t// \t\tlistaTipoNovedadNomina.push({value: null, label: null});\n\t// \t\tList<TipoNovedadDTO> listatipo = new ArrayList<TipoNovedadDTO>();\n\n\t// \t\t\tTipoNovedadDTO tipoNovedadDTO = new TipoNovedadDTO();\n\t// \t\t\ttipoNovedadDTO.modo = modo);\n\t// \t\t\tlistatipo = tiponovedadsvc.obtenerTipoNovedadNomina(new GeneralModel(tipoNovedadDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (TipoNovedadDTO element : listatipo) {\n\t// \t\t\tlistaTipoNovedadNomina.push({value: element.llave, element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaTipoNovedadNomina;\n\t// }\n\n\t// async getListaTipoNovedadInforme() {\n\t// \tif (listaTipoNovedadInforme == null) {\n\t// \t\tlistaTipoNovedadInforme = [];\n\t// \t\tlistaTipoNovedadInforme.push({value: null, label: null});\n\t// \t\tList<TipoNovedadDTO> listatipo = new ArrayList<TipoNovedadDTO>();\n\n\t// \t\t\tTipoNovedadDTO filtro = new TipoNovedadDTO();\n\t// \t\t\tfiltro.HijoPadre(Constantes.HIJO);\n\t// \t\t\tfiltro.Solicitud(Constantes.CONSTANTE_SI);\n\t// \t\t\tlistatipo = tiponovedadsvc.obtenerTipoNovedadNomina(new GeneralModel(new TipoNovedadDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (TipoNovedadDTO element : listatipo) {\n\t// \t\t\tlistaTipoNovedadInforme.push({value: element.llave, element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaTipoNovedadInforme;\n\t// }\n\n\t// async getListaTipoCambio(String accion) {\n\t// \tif (listaTipoCambio == null) {\n\t// \t\tlistaTipoCambio = [];\n\t// \t\tlistaTipoCambio.push({value: null, label: null});\n\t// \t\tList<TipoCambioEmpleadoDTO> listatipo = new ArrayList<TipoCambioEmpleadoDTO>();\n\t// \t\tTipoCambioEmpleadoDTO tipocambio = new TipoCambioEmpleadoDTO();\n\t// \t\ttipocambio.Accion(accion);\n\n\t// \t\t\tlistatipo = this.generalService.queryForList(new GeneralModel(tipocambio);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (TipoCambioEmpleadoDTO element : listatipo) {\n\t// \t\t\tlistaTipoCambio.push({value: element.TipoCambioEmpleado(), element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaTipoCambio;\n\t// }\n\n\t// async getListaConcepto(String formula) {\n\t// \tSaraAplicacionBean saraAplicacionBean = (SaraAplicacionBean) FacesUtils.Bean('inicioAplicacionBean');\n\t// \tString modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion();\n\n\t// \tif (listaConcepto == null) {\n\t// \t\tlistaConcepto = [];\n\t// \t\tlistaConcepto.push({value: null, label: null});\n\t// \t\tList<ConceptoDTO> listaconcepto = new ArrayList<ConceptoDTO>();\n\t// \t\tConceptoDTO con = new ConceptoDTO();\n\t// \t\tcon.modo = modo);\n\t// \t\tcon.EsFormula(formula);\n\n\t// \t\t\tlistaconcepto = this.generalService.queryForList(new GeneralModel(con);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (ConceptoDTO element : listaconcepto) {\n\t// \t\t\tlistaConcepto.push({value: element.Concepto(), element.Concepto() + ' -' + element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaConcepto;\n\t// }\n\n\t// /**\n\t//  * Crear una lista de Conceptos segun el control parcom:codConcepto\n\t//  * \n\t//  * @param modo\n\t//  *            modo\n\t//  * @param codConcepto\n\t//  *            boolean true o false según el control parcom:codConcepto\n\t//  * @return lista\n\t//  */\n\tasync getListaConceptoSegunFunCod(modo: string,codConcepto: boolean) {\n\n\t\tlet listaConceptoSegunFunCod = [];\n\t\t\tlet conceptoDTO = new ConceptoModel();\n\t\t\tconceptoDTO.modo = modo;\n\t\t\tlet lista: ConceptoModel[] = await this.generalService.queryForList(new GeneralModel('ConceptoDTO',null,false,conceptoDTO)).toPromise();\n\t\t\tif (codConcepto) {\n\t\t\t\tlistaConceptoSegunFunCod= lista.map((element) => ({value: element.concepto, label:element.concepto + (element.codigo != null ? ' - ' + element.codigo : '') + ': ' + element.descripcion}))\n\t\t\t\treturn listaConceptoSegunFunCod;\n\t\t\t}\n\t\t\tlistaConceptoSegunFunCod = lista.map((element) => ({value: element.concepto, label:element.concepto + ': ' + element.descripcion}))\n\t\t\treturn listaConceptoSegunFunCod;\n\t}\n\n\tasync getListadoConcepto() {\n\t\tlet modo = (await this.saraAplicacionService.getEmpresa()).modoCompensacion;\n\t\tlet listaConcepto = [];\n\t\tlistaConcepto = [];\n\t\tlet con = new ConceptoModel();\n\t\tcon.modo = modo;\n\t\tlistaConcepto = (await this.generalService.queryForList(new GeneralModel('ConceptoDTO', null, false, con)).toPromise()).map((data) => ({ key: data.concepto, label: data.concepto + ' - ' + data.descripcion }));\n\t\treturn listaConcepto;\n\t}\n\n\t// async getListaZonaEconomica() {\n\t// \tif (listaZonaEconomica == null) {\n\t// \t\tlistaZonaEconomica = [];\n\t// \t\tlistaZonaEconomica.push({value: null, label: null});\n\t// \t\tList<ZonaEconomicaDTO> listazona = new ArrayList<ZonaEconomicaDTO>();\n\t// \t\tZonaEconomicaDTO zonaEconomicaDTO = new ZonaEconomicaDTO();\n\t// \t\tzonaEconomicaDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n\t// \t\t\tlistazona = this.generalService.queryForList(new GeneralModel(zonaEconomicaDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (ZonaEconomicaDTO element : listazona) {\n\t// \t\t\tString llave = String.valueOf(element.ZonaEconomica());\n\t// \t\t\tlistaZonaEconomica.push({value: llave, label: element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaZonaEconomica;\n\t// }\n\n\t// async getListadoCargo() {\n\t// \tif (listadoCargo == null) {\n\t// \t\tlistadoCargo = [];\n\t// \t\tlistadoCargo.push({value: null, label: null});\n\t// \t\tList<CargoDTO> listaCargo = new ArrayList<CargoDTO>();\n\t// \t\tCargoDTO cargoDTO = new CargoDTO();\n\t// \t\tcargoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n\t// \t\t\tlistaCargo = this.generalService.queryForList(new GeneralModel(cargoDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tString llave;\n\t// \t\tString descripcion;\n\t// \t\tfor (CargoDTO element : listaCargo) {\n\t// \t\t\tllave = String.valueOf(element.Cargo());\n\t// \t\t\tdescripcion = element.descripcion + '(' + llave + ')';\n\t// \t\t\tlistadoCargo.push({value: llave, label: descripcion)));\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listadoCargo;\n\t// }\n\n\tasync getListaCentroZona(zona: string ) {\n\t\tvar listaCentroZona = [];\n\t\tvar listacentro: CentroCostoModel[] = [];\n\t\tvar centroCostoDTO = new CentroCostoModel();\n\t\tcentroCostoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tcentroCostoDTO.zonaEconomica = zona;\n\t\tlistacentro = await this.generalService.queryForList(new GeneralModel('CentroCostoDTO', null, false, centroCostoDTO)).toPromise();\n\t\tlistacentro.forEach(element =>  {\n\t\t\tlistaCentroZona.push({value: element.centroCosto, label: element.descripcion});\n\t\t})\n\t\treturn listaCentroZona;\n\t}\n\n\t// async getListaEstadoLaboral() {\n\t// \tif (listaEstadoLaboral == null) {\n\t// \t\tlistaEstadoLaboral = [];\n\t// \t\tlistaEstadoLaboral.push({value: null, label: null});\n\t// \t\tList<EstadoLaboralDTO> listaestado = new ArrayList<EstadoLaboralDTO>();\n\n\t// \t\t\tlistaestado = this.generalService.queryForList(new GeneralModel(new EstadoLaboralDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (EstadoLaboralDTO element : listaestado) {\n\t// \t\t\tlistaEstadoLaboral.push({value: element.EstadoLaboral(), element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaEstadoLaboral;\n\t// }\n\n\tasync getListaUbicacionFisica() {\n\t\tlet listaUbicacionFisica = [];\n\t\tlet listaUbicacion = [];\n\t\tlet comodin = new UbicacionFisicaModel();\n\t\tcomodin.origen = this.ubicacionFisicaPipe.ORIGENNOMINA;\n\t\tlistaUbicacion = await this.generalService.queryForList(new GeneralModel('UbicacionFisicaDTO', null, false, comodin)).toPromise();\n\t\tlistaUbicacion.forEach(element => {\n\t\t\tlistaUbicacionFisica.push({value: element.ubicacionFisica, label: element.descripcion.trim()});\n\t\t})\n\t\treturn listaUbicacionFisica;\n\t}\n\n\tasync getListaLineaCosto() {\n\t\tlet listaLineaCosto = [];\n\t\tlet listaLineaCostoDTO = [];\n\t\tvar lineaCostoDTO = new LineaCostoModel();\n\t\tlineaCostoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tlineaCostoDTO.comodinFiltro = Constantes.PUNTO;\n\t\tlistaLineaCostoDTO = await this.generalService.queryForList(new GeneralModel('LineaCostoDTO', null, false, lineaCostoDTO)).toPromise();\n\t\tlistaLineaCostoDTO.forEach(element => {\n\t\t\tlistaLineaCosto.push({ value: element.lineaCosto, label: element.lineaCosto + ' - ' + element.descripcion });\n\t\t})\n\t\treturn listaLineaCosto;\n\t}\n\n\t// async getListaLineaCostoEmpresa(Integer empresa) {\n\t// \tlistaLineaCostoEmpresa = [];\n\t// \tlistaLineaCostoEmpresa.push({value: null, label: null});\n\t// \tList<LineaCostoDTO> listaLineaCostoDTO = new ArrayList<LineaCostoDTO>();\n\t// \tLineaCostoDTO lineaCostoDTO = new LineaCostoDTO();\n\t// \tlineaCostoDTO.empresa = empresa);\n\n\t// \t\tlistaLineaCostoDTO = this.generalService.queryForList(new GeneralModel(lineaCostoDTO);\n\n\t// \tfor (LineaCostoDTO element : listaLineaCostoDTO) {\n\t// \t\tlistaLineaCostoEmpresa.push({value: element.lineaCosto, (element.descripcion});\n\t// \t}\n\t// \treturn listaLineaCostoEmpresa;\n\t// }\n\n\t// async getListaLineaCostoCodigo() {\n\t// \tif (listaLineaCostoCodigo == null) {\n\t// \t\tlistaLineaCostoCodigo = [];\n\t// \t\tlistaLineaCostoCodigo.push({value: null, Constantes.ESPACIO_NULO));\n\t// \t\tList<LineaCostoDTO> listaLineaCostoDTO = new ArrayList<LineaCostoDTO>();\n\t// \t\tLineaCostoDTO lineaCostoDTO = new LineaCostoDTO();\n\t// \t\tlineaCostoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n\t// \t\t\tlistaLineaCostoDTO = this.generalService.queryForList(new GeneralModel(lineaCostoDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (LineaCostoDTO element : listaLineaCostoDTO) {\n\t// \t\t\tlistaLineaCostoCodigo.push({value: element.lineaCosto, (element.lineaCosto + ' - ' + element.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn listaLineaCostoCodigo;\n\t// }\n\n\tasync getListadoTurno() {\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\tlet modo: string = empresa.modoCompensacion;\n\t\tlet listadoTurno = [];\n    let turnoDTO = new TurnoModel();\n    turnoDTO.modo = modo;\n    let lista = await this.generalService.queryForList(new GeneralModel('TurnoDTO', null, false, turnoDTO)).toPromise();\n    lista.forEach(uno => {\n      listadoTurno.push({value: uno.turno, label: uno.turno.toString() + ':' + uno.descripcion});\n    })\n    return listadoTurno;\n\t}\n\n\t// async getListaMotivo(String accion) {\n\t// \tif (listaMotivo == null) {\n\t// \t\tlistaMotivo = [];\n\t// \t\tlistaMotivo.push({value: null, label: null});\n\t// \t\tTipoCambioEmpleadoDTO tipo = new TipoCambioEmpleadoDTO();\n\t// \t\ttipo.Accion(accion);\n\t// \t\tList<TipoCambioEmpleadoDTO> lista = new ArrayList<TipoCambioEmpleadoDTO>();\n\n\t// \t\t\tlista = this.generalService.queryForList(new GeneralModel(tipo);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (TipoCambioEmpleadoDTO element : lista) {\n\t// \t\t\tlistaMotivo.push({value: element.TipoCambioEmpleado(), element.descripcion});\n\t// \t\t}\n\t// \t\treturn listaMotivo;\n\t// \t}\n\t// \treturn listaMotivo;\n\n\t// }\n\n\t// async getListaTipoPuesto() {\n\t// \tif (listaTipoPuesto == null) {\n\t// \t\tlistaTipoPuesto = [];\n\t// \t\tlistaTipoPuesto.push({value: null, label: null});\n\t// \t\tList<TipoPuestoTrabajoDTO> lista = new ArrayList<TipoPuestoTrabajoDTO>();\n\t// \t\tTipoPuestoTrabajoDTO tipo = new TipoPuestoTrabajoDTO();\n\t// \t\ttipo.Clase(Constantes.CONSTANTE_NO);\n\n\t// \t\t\tlista = this.generalService.queryForList(new GeneralModel(tipo);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listaTipoPuesto;\n\t// \t\t}\n\t// \t\tfor (TipoPuestoTrabajoDTO uno : lista) {\n\t// \t\t\tlistaTipoPuesto.push({value: uno.TipoPuesto(), uno.descripcion});\n\t// \t\t}\n\t// \t\treturn listaTipoPuesto;\n\t// \t}\n\t// \treturn listaTipoPuesto;\n\n\t// }\n\n\t// async getListaClasePuesto() throws Exception {\n\t// \tif (listaClasePuesto == null) {\n\t// \t\tlistaClasePuesto = [];\n\t// \t\tlistaClasePuesto.push({value: null, label: null});\n\t// \t\tList<TipoPuestoTrabajoDTO> lista = new ArrayList<TipoPuestoTrabajoDTO>();\n\t// \t\tTipoPuestoTrabajoDTO tipo = new TipoPuestoTrabajoDTO();\n\t// \t\ttipo.Clase(Constantes.CONSTANTE_SI);\n\n\t// \t\t\tlista = this.generalService.queryForList(new GeneralModel(tipo);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listaClasePuesto;\n\t// \t\t}\n\t// \t\tfor (TipoPuestoTrabajoDTO uno : lista) {\n\t// \t\t\tlistaClasePuesto.push({value: uno.TipoPuesto(), uno.descripcion + ' - ' + uno.TipoPuesto()));\n\t// \t\t}\n\t// \t}\n\t// \treturn ColeccionConverter.ordenarLista(listaClasePuesto);\n\n\t// }\n\n\t// async getListaTipoUnidad() {\n\t// \tif (listaTipoUnidad == null) {\n\t// \t\tlistaTipoUnidad = [];\n\t// \t\tlistaTipoUnidad.push({value: null, label: null});\n\t// \t\tList<TipoUnidadDTO> lista = new ArrayList<TipoUnidadDTO>();\n\n\t// \t\t\tlista = this.generalService.queryForList(new GeneralModel(new TipoUnidadDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoTurno;\n\t// \t\t}\n\t// \t\tfor (TipoUnidadDTO uni : lista) {\n\t// \t\t\tlistaTipoUnidad.push({value: uni.TipoUnidad(), uni.descripcion});\n\t// \t\t}\n\t// \t\treturn listaTipoUnidad;\n\t// \t}\n\t// \treturn listaTipoUnidad;\n\t// }\n\n\tasync getListadoVinculacionLaboral() {\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\tvar modo: string = empresa.modoCompensacion;\n\t\tlet listadoVinculacionLaboral = [];\n\t\tlet vinculacionLaboralDTO = new VinculacionLaboralModel();\n\t\tvinculacionLaboralDTO.modo = modo;\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('VinculacionLaboralDTO', null, false, vinculacionLaboralDTO)).toPromise();\n\t\tlista.forEach(uno => {\n\t\t\tlistadoVinculacionLaboral.push({ value: uno.vinculacion, label: uno.vinculacion.toString() + ':' + uno.descripcion });\n\t\t})\n\t\treturn listadoVinculacionLaboral;\n\t}\n\n\t// async getListadoVinculacionLaboralAsociado() {\n\t// \tif (factorVinculacionLaboral == null) {\n\t// \t\tfactorVinculacionLaboral = [];\n\t// \t\tfactorVinculacionLaboral.push({value: null, label: null});\n\t// \t\tList<FactorVinculacionDTO> lista = new ArrayList<FactorVinculacionDTO>();\n\t// \t\tFactorVinculacionDTO factorVinculacionDTO = new FactorVinculacionDTO();\n\n\t// \t\t\tlista = this.generalService.queryForList(new GeneralModel('FactorVinculacion.consultarVinculacionLaboralAsociado', factorVinculacionDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoVinculacionLaboral;\n\t// \t\t}\n\t// \t\tfor (FactorVinculacionDTO uno : lista) {\n\t// \t\t\tfactorVinculacionLaboral.push({value: uno.vinculacion, label: uno.vinculacion.toString() + ':' + uno.descripcion});\n\t// \t\t}\n\t// \t\treturn factorVinculacionLaboral;\n\t// \t}\n\t// \treturn factorVinculacionLaboral;\n\t// }\n\n\tasync getListadoTipoPeriodo() {\n\t\tlet listadoTipoPeriodo = [];\n\t\tlet comodin = new TipoPeriodoModel();\n\t\tcomodin.aliasRol = this.authService.getTokenKey('aliasRol');\n\t\tcomodin.usuarioLogin = this.authService.getTokenKey('usuario');\n\t\tcomodin.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('TipoPeriodoDTO', null, false, comodin)).toPromise();\n\t\tlista.forEach(tipoPeriodoDTO => {\n\t\t\tlistadoTipoPeriodo.push({ value: tipoPeriodoDTO.tipo, label: tipoPeriodoDTO.descripcion });\n\n\t\t})\n\t\treturn listadoTipoPeriodo;\n\t}\n\n\tasync getListadoTipoPeriodoConRolAcceso() {\n\t\tlet listadoTipoPeriodo = [];\n\n\t\tvar comodin = new TipoPeriodoModel();\n\t\tcomodin.usuarioLogin = this.authService.getTokenKey('usuario');\n\t\tcomodin.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tcomodin.aliasRol = this.authService.getTokenKey('aliasRol');\n\n\t\tvar lista = await this.generalService.queryForList(new GeneralModel('TipoPeriodoDTO', null, false, comodin)).toPromise();\n\t\tlista.forEach(tipoPeriodoDTO => {\n\t\t\tlistadoTipoPeriodo.push({value: tipoPeriodoDTO.tipo, label: tipoPeriodoDTO.descripcion});\n\t\t})\n\t\treturn listadoTipoPeriodo;\n\t}\n\n\t// /*\n\t//  * Lista de Tipo Periodo Filtrada por modo se adiciona el modo en esta lista\n\t//  * para no afectar funcionalidad en la lista original en las tareas q aun no\n\t//  * tiene modo\n\t//  */\n\tasync getListadoTipoPeriodoPorModo() {\n\t\tvar listadoTipoPeriodo = [];\n\n\t\tvar empresa = await this.saraAplicacionService.getEmpresa();\n\t\tvar comodin = new TipoPeriodoModel();\n\t\tcomodin.modo =  empresa.modoCompensacion;\n\t\tcomodin.usuarioLogin = this.authService.getTokenKey('usuario');\n\t\tcomodin.empresa = empresa.empresa;\n\t\tcomodin.aliasRol = this.authService.getTokenKey('aliasRol');\n\n\t\tvar lista: TipoPeriodoModel[] = await this.generalService.queryForList(new GeneralModel('TipoPeriodoDTO', null, false, comodin)).toPromise();\n\t\tlista.forEach(tipoPeriodoDTO => {\n\t\t\tlistadoTipoPeriodo.push({value: tipoPeriodoDTO.tipo, label: tipoPeriodoDTO.descripcion});\n\t\t})\n\t\treturn listadoTipoPeriodo;\n\t}\n\n\tasync getListaRoles(dto: ClasificacionModel) {\n\t\tlet listaRoles = [];\n\t\tdto.organizacion = (await this.saraAplicacionService.getEmpresa()).organizacion;\n\t\tdto.tipo = 'R';\n\t\tlet clasi = await this.generalService.queryForList(new GeneralModel('ClasificacionDTO', null, false, dto)).toPromise();\n\n\t\tclasi.forEach(element => {\n\t\t\tlet llave: string = element.clasificacion;\n\t\t\tlistaRoles.push({ value: llave, label: element.descripcion });\n\t\t});\n\t\treturn listaRoles;\n\t}\n\n\tasync getListaRolesSinParametro() {\n\t\tlet listaRoles = [];\n\t\tlet dto = new ClasificacionModel();\n\t\tdto.organizacion = (await this.saraAplicacionService.getEmpresa()).organizacion;\n\t\tdto.tipo = 'R';\n\t\tlet clasi = await this.generalService.queryForList(new GeneralModel('ClasificacionDTO', null, false, dto)).toPromise();\n\n\t\tclasi.forEach(element => {\n\t\t\tlet llave: string = element.clasificacion;\n\t\t\tlistaRoles.push({ value: llave, label: this.utilsService.capitalizeFully(element.descripcion) });\n\t\t});\n\t\treturn listaRoles;\n\t}\n\n\t// async getListaClasificacion() {\n\t// \tif (listaClasificacion == null) {\n\t// \t\tlistaClasificacion = [];\n\t// \t\tlistaClasificacion.push({value: null, 'Seleccionar'));\n\n\t// \t\t\tClasificacionDTO dto = new ClasificacionDTO();\n\t// \t\t\tdto.Organizacion(this.Credencial().LlaveOrganizacion());\n\t// \t\t\tdto.Tipo('C');\n\t// \t\t\tList<ClasificacionDTO> clasi = this.generalService.queryForList(new GeneralModel(dto);\n\n\t// \t\t\tfor (ClasificacionDTO element : clasi) {\n\t// \t\t\t\tString llave = element.Clasificacion();\n\t// \t\t\t\tlistaClasificacion.push({value: llave, label: element.descripcion});\n\t// \t\t\t}\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\n\t// \t}\n\n\t// \treturn listaClasificacion;\n\t// }\n\n\t// async getListaClasificacion(ClasificacionDTO dto) {\n\n\t// \tlistaClasificacion = [];\n\t// \tlistaClasificacion.push({value: null, 'Seleccione clasificacion'));\n\n\t// \t\tdto.Organizacion(this.Credencial().LlaveOrganizacion());\n\t// \t\tdto.Tipo('C');\n\t// \t\tList<ClasificacionDTO> clasi = this.generalService.queryForList(new GeneralModel(dto);\n\n\t// \t\tfor (ClasificacionDTO element : clasi) {\n\t// \t\t\tString llave = element.Clasificacion();\n\t// \t\t\tlistaClasificacion.push({value: llave, label: element.descripcion});\n\t// \t\t}\n\n\n\t// \treturn listaClasificacion;\n\t// }\n\n\tasync getListaNivelCargo() {\n\t\tlet listaNivelCargo = []\n\t\t\ttry {\n\t\t\t\tlet dto = new NivelCargoModel();\n\t\t\t\tdto.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\tlet listacargo : NivelCargoModel[] = await this.generalService.queryForList(new GeneralModel('NivelCargoDTO',null,false,dto)).toPromise()\n\t\t\t\tlistacargo.forEach(element => {\n\t\t\t\t\tlistaNivelCargo.push({codigo: element.nivelCargo, nombre: element.descripcion});\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t\t\t\t\n\t\t\t} \n\t\treturn listaNivelCargo;\n\t}\n\t\n\t\n\n\t// async getListaCargoGenerico() {\n\t// \tif (listaCargoGenerico == null) {\n\t// \t\tlistaCargoGenerico = [];\n\t// \t\tlistaCargoGenerico.push({value: null, 'Seleccione cargo generico'));\n\n\t// \t\t\tCargoGenericoDTO dto = new CargoGenericoDTO();\n\t// \t\t\tdto.Organizacion(this.Credencial().LlaveOrganizacion());\n\t// \t\t\tList<CargoGenericoDTO> listacargogen = this.generalService.queryForList(new GeneralModel(dto);\n\t// \t\t\tfor (CargoGenericoDTO element : listacargogen) {\n\t// \t\t\t\tString llave = element.CargoGenerico();\n\t// \t\t\t\tlistaCargoGenerico.push({value: llave, label: element.descripcion});\n\t// \t\t\t}\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t}\n\t// \treturn listaCargoGenerico;\n\t// }\n\n\t// async getListaOrganizacion() {\n\t// \tif (listaOrganizacion == null) {\n\t// \t\tlistaOrganizacion = [];\n\n\t// \t\t\tList<OrganizacionDTO> listaorganizacion = this.generalService.queryForList(new GeneralModel(new OrganizacionDTO());\n\t// \t\t\tfor (OrganizacionDTO element : listaorganizacion) {\n\t// \t\t\t\tlistaOrganizacion.push({value: element.Organizacion(), label: element.descripcion});\n\t// \t\t\t}\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaOrganizacion;\n\t// }\n\n\t// async getListaCategoria() {\n\t// \tlistaCategoria = [];\n\t// \tlistaCategoria.push({value: null, 'Seleccione Categoria'));\n\n\t// \t\tList<CategoriaDTO> listacategoria = this.generalService.queryForList(new GeneralModel(new CategoriaDTO());\n\t// \t\tfor (CategoriaDTO element : listacategoria) {\n\t// \t\t\tlistaCategoria.push({value: element.Categoria(), label: element.descripcion});\n\t// \t\t}\n\n\t// \treturn listaCategoria;\n\t// }\n\n\t// async getListaCategoria(CategoriaDTO dto) {\n\t// \tlistaCategoria = [];\n\t// \tlistaCategoria.push({value: null, 'Seleccione Categoria'));\n\n\t// \t\tList<CategoriaDTO> listacategoria = this.generalService.queryForList(new GeneralModel(dto);\n\t// \t\tfor (CategoriaDTO element : listacategoria) {\n\t// \t\t\tlistaCategoria.push({value: element.Categoria(), label: element.descripcion});\n\t// \t\t}\n\n\n\t// \treturn listaCategoria;\n\t// }\n\n\t// public static List<SelectItem> getSelectListMotivoliquida(List<MotivoLiquidaDTO> listaMotivoliquida) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (MotivoLiquidaDTO motivoliquidaDTO : listaMotivoliquida) {\n\t// \t\tInteger llave = motivoliquidaDTO.MotivoLiquida();\n\t// \t\trespuesta.push({value: llave, motivoliquidaDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// async getSelectListPlanilla(List<PlanillaDTO> planillas) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (PlanillaDTO planillaDTO : planillas) {\n\t// \t\tString llave = this.utilsService.rightPad(planillaDTO.llaveTabla, 32, ' ');\n\t// \t\tif (!llave.equalsIgnoreCase(Constantes.PUNTO)) {\n\t// \t\t\trespuesta.push({value: llave, label: planillaDTO.DescripcionPlanilla())));\n\t// \t\t}\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListVinculacion(List<VinculacionLaboralDTO> vinculacion) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: 0, 'Todos'));\n\t// \tfor (VinculacionLaboralDTO vinculacionDTO : vinculacion) {\n\t// \t\tInteger llave = vinculacionDTO.vinculacion;\n\t// \t\trespuesta.push({value: llave, llave.toString() + ' : ' + label: vinculacionDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// async getSelectListPublicacion(List<PublicacionWebDTO> publicacion) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (PublicacionWebDTO publicacionWebDTO : publicacion) {\n\t// \t\tString llave = this.utilsService.rightPad(publicacionWebDTO.llave, 32);\n\t// \t\tif (!llave.equalsIgnoreCase(Constantes.PUNTO)) {\n\t// \t\t\trespuesta.push({value: llave, label: publicacionWebDTO.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListVariable(List<VariableDTO> listadoVariable) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (VariableDTO variableDTO : listadoVariable) {\n\t// \t\tString llave = variableDTO.variable;\n\t// \t\tif (!llave.equalsIgnoreCase(Constantes.PUNTO)) {\n\t// \t\t\trespuesta.push({value: llave, variableDTO.variable + ' - ' + variableDTO.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListConcepto(List<ConceptoDTO> listadoConcepto) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (ConceptoDTO conceptoDTO : listadoConcepto) {\n\t// \t\tInteger llave = conceptoDTO.Concepto();\n\t// \t\trespuesta.push({value: llave, conceptoDTO.Concepto() + ' - ' + conceptoDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListTipoNovedad(List<TipoNovedadDTO> listadoTipoNovedad) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoNovedadDTO tipoNovedadDTO : listadoTipoNovedad) {\n\t// \t\tString llave = this.utilsService.strip(tipoNovedadDTO.llave);\n\t// \t\tif (!llave.equalsIgnoreCase(Constantes.PUNTO)) {\n\t// \t\t\trespuesta.push({value: Constantes.CONSTANTE_NO + TipoNovedadCons.TOKEN + llave, label: tipoNovedadDTO.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \tfor (Map.Entry<String, String> origen : TipoNovedadCons.ORIGENNOVEDAD.entrySet()) {\n\t// \t\trespuesta.push({value: origen.Key() + TipoNovedadCons.TOKEN + '0', origen.Value()));\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getListTipoNovedad(List<TipoNovedadDTO> listadoTipoNovedad) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoNovedadDTO tipoNovedadDTO : listadoTipoNovedad) {\n\t// \t\tString llave = this.utilsService.strip(tipoNovedadDTO.llave);\n\t// \t\tif (!llave.equalsIgnoreCase(Constantes.PUNTO)) {\n\t// \t\t\trespuesta.push({value: llave, this.utilsService.capitalizeFully(label: tipoNovedadDTO.descripcion))));\n\t// \t\t}\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListTipoNovedadSolo(List<TipoNovedadDTO> listadoTipoNovedadSolo) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoNovedadDTO tipoNovedadDTO : listadoTipoNovedadSolo) {\n\t// \t\tString llave = this.utilsService.strip(tipoNovedadDTO.llave);\n\t// \t\trespuesta.push({value: llave, label: tipoNovedadDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListTipoLiquidaPer(List<TipoLiquidacionPeriodicaDTO> listadoTipoLiquidaPer) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoLiquidacionPeriodicaDTO tipoLiquidaPerDTO : listadoTipoLiquidaPer) {\n\t// \t\tString llave = tipoLiquidaPerDTO.TipoLiquidacionPeriodica();\n\t// \t\trespuesta.push({value: llave, tipoLiquidaPerDTO.TipoLiquidacionPeriodica() + ' - ' + tipoLiquidaPerDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// async getListaConceptoEmbargos() {\n\t// \tList<SelectItem> respuesta = [];\n\n\t// \t\tSaraAplicacionBean saraAplicacionBean = (SaraAplicacionBean) FacesUtils.Bean('inicioAplicacionBean');\n\t// \t\tString modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion();\n\t// \t\tTipoLiquidacionPeriodicaDTO tipoLiquidacionPeriodicaDTO = new TipoLiquidacionPeriodicaDTO();\n\t// \t\ttipoLiquidacionPeriodicaDTO.modo = modo);\n\t// \t\ttipoLiquidacionPeriodicaDTO.Judicial(TipoNovedadCons.JUDICIAL);\n\t// \t\tList<TipoLiquidacionPeriodicaDTO> listadoConceptoEmbargos = this.generalService.queryForList(new GeneralModel(tipoLiquidacionPeriodicaDTO);\n\t// \t\tfor (TipoLiquidacionPeriodicaDTO tipoLiquidaPerDTO : listadoConceptoEmbargos) {\n\t// \t\t\tString llave = tipoLiquidaPerDTO.TipoLiquidacionPeriodica();\n\t// \t\t\trespuesta.push({value: llave, tipoLiquidaPerDTO.TipoLiquidacionPeriodica() + ' - ' + tipoLiquidaPerDTO.descripcion});\n\t// \t\t}\n\n\n\t// \treturn respuesta;\n\t// }\n\n\t// async getListaTipoPrestamos() {\n\t// \tList<SelectItem> respuesta = [];\n\n\t// \t\tSaraAplicacionBean saraAplicacionBean = (SaraAplicacionBean) FacesUtils.Bean('inicioAplicacionBean');\n\t// \t\tString modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion();\n\t// \t\tTipoLiquidacionPeriodicaDTO tipoLiquidacionPeriodicaDTO = new TipoLiquidacionPeriodicaDTO();\n\t// \t\ttipoLiquidacionPeriodicaDTO.modo = modo);\n\t// \t\ttipoLiquidacionPeriodicaDTO.Judicial(TipoNovedadCons.NO_JUDICIAL);\n\t// \t\tList<TipoLiquidacionPeriodicaDTO> listadoConceptoEmbargos = this.generalService.queryForList(new GeneralModel(tipoLiquidacionPeriodicaDTO);\n\t// \t\tfor (TipoLiquidacionPeriodicaDTO tipoLiquidaPerDTO : listadoConceptoEmbargos) {\n\t// \t\t\tString llave = tipoLiquidaPerDTO.TipoLiquidacionPeriodica();\n\t// \t\t\trespuesta.push({value: llave, tipoLiquidaPerDTO.TipoLiquidacionPeriodica() + ' - ' + tipoLiquidaPerDTO.descripcion});\n\t// \t\t}\n\n\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListReporte(List<ReporteDTO> listadoReporte) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (ReporteDTO reporteDTO : listadoReporte) {\n\t// \t\tString llave = this.utilsService.strip(reporteDTO.Reporte());\n\t// \t\tif (!llave.equalsIgnoreCase(Constantes.PUNTO)) {\n\t// \t\t\trespuesta.push({value: llave, label: reporteDTO.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// async getSelectListTipoLiquida(List<TipoLiquidaDTO> listadoTipoLiquida) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoLiquidaDTO tipoLiquidaDTO : listadoTipoLiquida) {\n\t// \t\tInteger llave = tipoLiquidaDTO.Tipoliquida();\n\t// \t\trespuesta.push({value: llave, label: tipoLiquidaDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListAusentismo(List<TipoAusenciaDTO> tiposasusencia) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoAusenciaDTO tipoAusentismoDTO : tiposasusencia) {\n\t// \t\trespuesta.push({value: tipoAusentismoDTO.llaveTabla, label: tipoAusentismoDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListAusencia(List<TipoAusenciaDTO> tiposasusencia) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoAusenciaDTO tipoAusentismoDTO : tiposasusencia) {\n\t// \t\trespuesta.push({value: tipoAusentismoDTO.llaveTabla, label: tipoAusentismoDTO.descripcion});\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// async getSelectListTipoAusentismo(DataSourceIbatis db) throws Exception {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tTipoAusenciaDTO tipoAusentismo = new TipoAusenciaModel();\n\t// \tList<TipoAusenciaDTO> listaTipoAusencia;\n\t// \trespuesta.push({value: Constantes.PUNTO, label: null)));\n\t// \tlistaTipoAusencia = this.generalService.queryForList(db, tipoAusentismo);\n\t// \tfor (TipoAusenciaDTO tipoAusentismoDTO : listaTipoAusencia) {\n\t// \t\tString llave = Constantes.ESPACIO_NULO;\n\t// \t\tString descripcion = Constantes.ESPACIO_NULO;\n\t// \t\tif (tipoAusentismoDTO.origen = ).equals(AusentismoCons.VACACION)) {\n\t// \t\t\tllave = tipoAusentismoDTO.llaveTabla;\n\t// \t\t\tdescripcion = AusentismoCons.DESCVACACION + ' - ' + tipoAusentismoDTO.descripcion;\n\t// \t\t\trespuesta.push({value: llave, label: descripcion)));\n\t// \t\t}\n\t// \t\tif (tipoAusentismoDTO.origen = ).equals(AusentismoCons.INCAPACIDAD)) {\n\t// \t\t\tllave = tipoAusentismoDTO.llaveTabla;\n\t// \t\t\tdescripcion = AusentismoCons.DESCINCAPACIDAD + ' - ' + tipoAusentismoDTO.descripcion;\n\t// \t\t\trespuesta.push({value: llave, label: descripcion)));\n\t// \t\t}\n\t// \t\tif (tipoAusentismoDTO.origen = ).equals(AusentismoCons.LICENCIA)) {\n\t// \t\t\tllave = tipoAusentismoDTO.llaveTabla;\n\t// \t\t\tdescripcion = AusentismoCons.DESCLICENCIA + ' - ' + tipoAusentismoDTO.descripcion;\n\t// \t\t\trespuesta.push({value: llave, label: descripcion)));\n\t// \t\t}\n\t// \t}\n\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListFormaPagoMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(AusentismoCons.FORMAPAGO);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListEstadosProcesoMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: Constantes.PUNTO, label: null)));\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(NovedadCons.ESTADONOVEDAD);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListProrrogaMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(AusentismoCons.PRORROGA);\n\t// \treturn respuesta;\n\t// }\n\n\t// async getSelectListCamposColumnaMap(DataSourceIbatis db) throws Exception {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tList<ColumnaDirDTO> columnas = gestionReporteSvc.consultarColumnaDir(db);\n\t// \tfor (ColumnaDirDTO columna : columnas) {\n\t// \t\trespuesta.push({value: columna.Columna().trim(), columna.Columna().trim()));\n\t// \t}\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListCamposSeleccionMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(GestionReporteCons.CAMPOSSELECCION);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListCamposSeleccionVistaMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(GestionReporteCons.CAMPOSSELECCIONVISTA);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListTipoParametroMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(GestionReporteCons.TIPOPARAMETRO);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListTipoSeleccionMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(GestionReporteCons.TIPOSELECCION);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListAnidadoMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(GestionReporteCons.ANIDADO);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListTipoLetraMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(GestionReporteCons.TIPOLETRA);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectListTipoServicioMap() {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(TipoServicioCons.TIPOSERVICIO);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsEstadoLaboral(List<EstadoLaboralDTO> estadolab) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (EstadoLaboralDTO element : estadolab) {\n\t// \t\tString llave = element.EstadoLaboral();// this.utilsService.trim(element.EstadoLaboral());\n\t// \t\trespuesta.push({value: llave, label: element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsEntidadNomina(List<EntidadDTO> entidadDTO) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (EntidadDTO element : entidadDTO) {\n\t// \t\tString llave = element.llave;\n\t// \t\trespuesta.push({value: llave, label: element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsLiquidacionPeriodica(List<ControlLiquidacionPeriodicaDTO> conList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (ControlLiquidacionPeriodicaDTO element : conList) {\n\t// \t\tString llave = element.TipoLiquidaPeriodica();\n\t// \t\trespuesta.push({value: llave, label: element.TipoLiquidaDescripcion())));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsVariablePeriodo(List<VariablePeriodoEmpleadoDTO> vaList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (VariablePeriodoEmpleadoDTO element : vaList) {\n\t// \t\tString llave = element.VariableLlave();\n\t// \t\trespuesta.push({value: llave, label: element.VariableLlave() + ' - ' + element.VariableNombre())));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsVariableEmpleado(List<VariableEmpleadoDTO> vaList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (VariableEmpleadoDTO element : vaList) {\n\t// \t\tString llave = element.LlaveVariable();\n\t// \t\trespuesta.push({value: llave, label: element.LlaveVariable() + ' - ' + element.NombreVariable())));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsVariableConceptoEmpleado(List<VariableDTO> vaList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: null, label: null});\n\t// \tfor (VariableDTO element : vaList) {\n\t// \t\tString llave = element.variable;\n\t// \t\trespuesta.push({value: llave, this.utilsService.capitalizeFully(element.descripcion) + ' (' + element.variable + ')'));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsVariableFecha(List<VariableFechaDTO> vaList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: null, label: null});\n\t// \tfor (VariableFechaDTO element : vaList) {\n\t// \t\tString llave = element.llaveTabla;\n\t// \t\trespuesta.push({value: llave, this.utilsService.capitalizeFully(element.descripcion) + ' (' + element.Codigo() + ')'));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsTipoServicio(List<TipoServicioDTO> coList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (TipoServicioDTO element : coList) {\n\t// \t\tString llave = element.TipoServicio();\n\t// \t\trespuesta.push({value: llave, label: this.utilsService.capitalizeFully(element.descripcion) + '  ('+element.TipoServicio().trim()+')'  )));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsLineaCosto(List<LineaCostoDTO> coList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \tfor (LineaCostoDTO element : coList) {\n\t// \t\tString llave = element.lineaCosto;\n\t// \t\trespuesta.push({value: llave, label: element.lineaCosto + ' - ' + element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\tgetSelectItemsTipoEntidad(coList: EntidadModel[]) {\n\t \tvar respuesta = [];\n\t \tcoList.forEach(element => {\n\t \t\tlet llave = element.llave;\n\t \t\trespuesta.push({value: llave, label: element.llave + ' - ' + element.descripcion});\n\t \t})\n\t \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t \treturn respuesta;\n\t}\n\n\tgetSelectItemsTipoSucursal(coList: ServicioEntidadExternaModel[]) {\n\t \tvar respuesta = [];\n\t\t coList.forEach(element => {\n\t \t\tlet llave = element.sucursal;\n\t \t\trespuesta.push({value: llave, label: element.sucursal + ' - ' + element.nombreSucursal});\n\t \t})\n\t \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t \treturn respuesta;\n\t}\n\n\t// public static List<SelectItem> getSelectItemsCurso(List<CursoDTO> coList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: Constantes.PUNTO, null));\n\t// \tfor (CursoDTO element : coList) {\n\t// \t\tString llave = element.Curso();\n\t// \t\trespuesta.push({value: llave, label: element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsTipoPrograma(List<TipoEventoDTO> coList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: Constantes.PUNTO, null));\n\t// \tfor (TipoEventoDTO element : coList) {\n\t// \t\tString llave = element.llave;\n\t// \t\trespuesta.push({value: llave, label: element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsOrigenPrograma(List<OrigenEventoDTO> coList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: Constantes.PUNTO, null));\n\t// \tfor (OrigenEventoDTO element : coList) {\n\t// \t\tString llave = element.llaveTabla;\n\t// \t\trespuesta.push({value: llave, label: element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsModalidad(List<TipoActividadDTO> coList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: Constantes.PUNTO, null));\n\t// \tfor (TipoActividadDTO element : coList) {\n\t// \t\tString llave = element.llaveTabla;\n\t// \t\trespuesta.push({value: llave, label: element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsTipoGrupo(List<TipoGrupoDTO> coList) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: Constantes.PUNTO, null));\n\t// \tfor (TipoGrupoDTO element : coList) {\n\t// \t\tString llave = element.TipoGrupo();\n\t// \t\trespuesta.push({value: llave, label: element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getSelectItemsEntidadEmpleado(List<EntidadDTO> lista) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: Constantes.PUNTO, null));\n\t// \tfor (EntidadDTO element : lista) {\n\t// \t\tString llave = element.llave;\n\t// \t\trespuesta.push({value: llave, element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public static List<SelectItem> getListaSelectItemReporte(List<ReporteDTO> lista) {\n\t// \tList<SelectItem> respuesta = [];\n\t// \trespuesta.push({value: null, label: null});\n\t// \tfor (ReporteDTO element : lista) {\n\t// \t\tString llave = element.Reporte();\n\t// \t\trespuesta.push({value: llave, element.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\n\t// \treturn respuesta;\n\t// }\n\n\t// async getListaTipoAusencia(origen: string) {\n\t// \tSaraAplicacionBean saraAplicacionBean = (SaraAplicacionBean) FacesUtils.Bean('inicioAplicacionBean');\n\t// \tString modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion();\n\t// \tif (listaTipoAusencia == null) {\n\t// \t\tlistaTipoAusencia = [];\n\t// \t\tlistaTipoAusencia.push({value: null, label: null});\n\t// \t\tList<TipoAusenciaDTO> lista = new ArrayList<TipoAusenciaDTO>();\n\n\t// \t\t\tTipoAusenciaDTO tipoAusentismoDTO = new TipoAusenciaModel();\n\t// \t\t\ttipoAusentismoDTO.modo = modo);\n\t// \t\t\ttipoAusentismoDTO.origen = origen);\n\t// \t\t\tlista = this.generalService.queryForList(new GeneralModel(tipoAusentismoDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listaTipoAusencia;\n\t// \t\t}\n\t// \t\tfor (TipoAusenciaDTO uno : lista) {\n\t// \t\t\tlistaTipoAusencia.push({value: uno.llaveTabla, uno.descripcion});\n\t// \t\t}\n\t// \t\treturn listaTipoAusencia;\n\t// \t}\n\t// \treturn listaTipoAusencia;\n\t// }\n\n\tasync getListaAusencia(origen: string) {\n\t\tlet empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\t\tlet listaAusencia = [];\n\t\tvar lista = [];\n\t\tvar tipoAusenciaDTO = new TipoAusenciaModel();\n\t\ttipoAusenciaDTO.modoParametro = empresa.modoCompensacion;\n\t\ttipoAusenciaDTO.pasivo = this.ausentismoPipe.SI;\n\t\ttipoAusenciaDTO.origen = origen;\n\t\tlista = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, tipoAusenciaDTO)).toPromise();\n\t\tlista.forEach(uno =>  {\n\t\t\tif ( this.authService.getTokenKey('isCliente') == 'true' && uno.clienteDescripcion!= null ) {\n\t\t\t\tlistaAusencia.push({value: uno.llaveTabla, label: this.utilsService.capitalizeFully(uno.clienteDescripcion)});\n\t\t\t}\n\t\t\telse{\n\t\t\t\tlistaAusencia.push({value: uno.llaveTabla, label: this.utilsService.capitalizeFully(uno.descripcion)});\n\t\t\t}\n\t\t})\n\t\treturn listaAusencia;\n\t}\n\n\t// async getListadoActoAdmisnitrativo() {\n\t// \tif (listadoActoAdministrativo == null) {\n\t// \t\tlistadoActoAdministrativo = [];\n\t// \t\tlistadoActoAdministrativo.push({value: null, label: null});\n\t// \t\tList<ActoAusenciaDTO> lista = new ArrayList<ActoAusenciaDTO>();\n\n\t// \t\t\tActoAusenciaDTO actoAusenciaDTO = new ActoAusenciaDTO();\n\t// \t\t\tactoAusenciaDTO.OrigenAusencia(ActoAusentismoCons.SOLICITADO);\n\t// \t\t\tactoAusenciaDTO.Pasivo(Constantes.PUNTO);\n\t// \t\t\tlista = this.generalService.queryForList(new GeneralModel(actoAusenciaDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoActoAdministrativo;\n\t// \t\t}\n\t// \t\tfor (ActoAusenciaDTO uno : lista) {\n\t// \t\t\tString llave = uno.llave + '|' + uno.Consecutivo();\n\t// \t\t\tlistadoActoAdministrativo.push({value: llave, uno.NombreFormato()));\n\t// \t\t}\n\t// \t\treturn listadoActoAdministrativo;\n\t// \t}\n\t// \treturn listadoActoAdministrativo;\n\t// }\n\n\t// async getListaPublicacionWeb() {\n\t// \tif (listaPublicacionWeb == null) {\n\t// \t\tlistaPublicacionWeb = [];\n\t// \t\tlistaPublicacionWeb.push({value: null, label: null});\n\t// \t\tList<PublicacionWebDTO> listapublicacion = new ArrayList<PublicacionWebDTO>();\n\n\t// \t\t\tPublicacionWebDTO publicacion = new PublicacionWebDTO();\n\t// \t\t\tpublicacion.Diferente(Constantes.PUNTO);\n\t// \t\t\tlistapublicacion = this.generalService.queryForList(new GeneralModel(publicacion);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (PublicacionWebDTO element : listapublicacion) {\n\t// \t\t\tlistaPublicacionWeb.push({value: element.llave, element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaPublicacionWeb;\n\t// }\n\n\t// @SuppressWarnings('unchecked')\n\t// async getListaPublicacionWebConEmpresa() throws Exception {\n\t// \tList<SelectItem> lista = [];\n\t// \tlista.push({value: null, label: null});\n\n\t// \tPublicacionWebDTO dto = new PublicacionWebDTO();\n\t// \tdto.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t// \tList<PublicacionWebDTO> listaPublicacionWeb = (List<PublicacionWebDTO>) this.generalService.queryForListGeneral(new GeneralModel('PublicacionWeb.consultarHijas', dto);\n\t// \tfor (PublicacionWebDTO element : listaPublicacionWeb) {\n\t// \t\tlista.push({value: element.llave, element.descripcion});\n\t// \t}\n\t// \treturn lista;\n\t// }\n\n\t// /**\n\t//  * Retorna la lista de los tipos de documento de soporte que se encuentran\n\t//  * disponibles para la generacion de comprobante de nomina\n\t//  * \n\t//  * @return\n\t//  */\n\t// async getListaComprobantePublicacion() {\n\t// \tlistaComprobantePublicacion = [];\n\t// \tList<DocumentoSoporteDTO> listacomprobantepublicacion = new ArrayList<DocumentoSoporteDTO>();\n\n\n\t// \t\tDocumentoSoporteDTO dto = new DocumentoSoporteDTO();\n\t// \t\tdto.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t// \t\tdto.Tipo(PlanillaCons.COMPROBANTE_NOMINA);\n\t// \t\tdto.Sobre(Constantes.CONSTANTE_NO);\n\t// \t\tlistacomprobantepublicacion = this.generalService.queryForList(new GeneralModel(dto);\n\n\t// \tfor (DocumentoSoporteDTO element : listacomprobantepublicacion) {\n\t// \t\tlistaComprobantePublicacion.push({value: element.llaveTabla, element.descripcion});\n\t// \t}\n\t// \treturn listaComprobantePublicacion;\n\t// }\n\n\t// async getListaSobreFlex() {\n\t// \tif (listaSobreFlex == null) {\n\t// \t\tlistaSobreFlex = [];\n\t// \t\tList<DocumentoSoporteDTO> listacomprobantepublicacion = new ArrayList<DocumentoSoporteDTO>();\n\n\n\t// \t\t\tDocumentoSoporteDTO dto = new DocumentoSoporteDTO();\n\t// \t\t\tdto.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t// \t\t\tdto.Tipo(PlanillaCons.COMPROBANTE_NOMINA);\n\t// \t\t\tdto.Sobre(Constantes.CONSTANTE_SI);\n\t// \t\t\tlistacomprobantepublicacion = this.generalService.queryForList(new GeneralModel(dto);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t\tfor (DocumentoSoporteDTO element : listacomprobantepublicacion) {\n\t// \t\t\tlistaSobreFlex.push({value: element.llaveTabla, element.descripcion});\n\t// \t\t}\n\n\t// \t}\n\t// \treturn listaSobreFlex;\n\t// }\n\n\t// async getListaComprobanteVacacion(Integer empresa) {\n\t// \tlistaComprobantePublicacion = [];\n\t// \tList<DocumentoSoporteDTO> listacomprobantepublicacion = new ArrayList<DocumentoSoporteDTO>();\n\n\n\t// \t\tDocumentoSoporteDTO dto = new DocumentoSoporteDTO();\n\t// \t\tdto.empresa = empresa);\n\t// \t\tdto.Tipo(PlanillaCons.COMPROBANTE_VACACION);\n\t// \t\tlistacomprobantepublicacion = this.generalService.queryForList(new GeneralModel(dto);\n\n\t// \tfor (DocumentoSoporteDTO element : listacomprobantepublicacion) {\n\t// \t\tlistaComprobantePublicacion.push({value: element.llaveTabla, element.descripcion});\n\t// \t}\n\t// \treturn listaComprobantePublicacion;\n\t// }\n\n\t// async getListaComprobanteCancelarContrato(Integer empresa, Integer vinculacion) {\n\t// \tlistaComprobantePublicacion = [];\n\t// \tList<DocumentoSoporteDTO> listacomprobantepublicacion = new ArrayList<DocumentoSoporteDTO>();\n\n\t// \t\tDocumentoSoporteDTO dto = new DocumentoSoporteDTO();\n\t// \t\tdto.empresa = empresa);\n\t// \t\tdto.Tipo(PlanillaCons.LIQUIDACION_CONT_TRABAJO);\n\t// \t\tdto.FiltroVinculacion(vinculacion);\n\t// \t\tif (vinculacion == null) {\n\t// \t\t\tdto.Sobre('NoPlanilla');\n\t// \t\t}\n\t// \t\tlistacomprobantepublicacion = this.generalService.queryForList(new GeneralModel(dto);\n\n\t// \tfor (DocumentoSoporteDTO element : listacomprobantepublicacion) {\n\t// \t\tlistaComprobantePublicacion.push({value: element.llaveTabla, element.descripcion});\n\t// \t}\n\t// \treturn listaComprobantePublicacion;\n\t// }\n\n\t// async getListaTiposSustitutoRelLaboral() {\n\t// \tif (listaTiposSustitutoRelLaboral == null) {\n\t// \t\tlistaTiposSustitutoRelLaboral = [];\n\t// \t\tlistaTiposSustitutoRelLaboral.push({value: null, label: null});\n\t// \t\tlistaTiposSustitutoRelLaboral.push({value: 'C', 'Publica'));\n\t// \t\tlistaTiposSustitutoRelLaboral.push({value: 'P', 'Privada'));\n\t// \t\tlistaTiposSustitutoRelLaboral.push({value: 'D', 'Catedra'));\n\t// \t\tlistaTiposSustitutoRelLaboral.push({value: Constantes.CONSTANTE_NO, 'No Relacionada'));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(listaTiposSustitutoRelLaboral);\n\t// \treturn listaTiposSustitutoRelLaboral;\n\t// }\n\n\t// async getListaUnidadTiempoSustitutoRelLaboral() {\n\t// \tif (listaUnidadTiempoSustitutoRelLaboral == null) {\n\t// \t\tlistaUnidadTiempoSustitutoRelLaboral = [];\n\t// \t\tlistaUnidadTiempoSustitutoRelLaboral.push({value: null, label: null});\n\t// \t\tlistaUnidadTiempoSustitutoRelLaboral.push({value: new Integer(1), 'Horas/Semana'));\n\t// \t\tlistaUnidadTiempoSustitutoRelLaboral.push({value: new Integer(2), 'Horas/Mes'));\n\t// \t\tlistaUnidadTiempoSustitutoRelLaboral.push({value: new Integer(3), 'Dias/Semana'));\n\t// \t\tlistaUnidadTiempoSustitutoRelLaboral.push({value: new Integer(4), 'Dias/Mes'));\n\t// \t\tlistaUnidadTiempoSustitutoRelLaboral.push({value: new Integer(0), 'No Aplica'));\n\t// \t}\n\t// \treturn listaUnidadTiempoSustitutoRelLaboral;\n\t// }\n\n\t// async getListaEntidadResponsableSustitutoRelLaboral(String tipoServicio) {\n\t// \tif (listaEntidadResponsableSustitutoRelLaboral == null) {\n\t// \t\tlistaEntidadResponsableSustitutoRelLaboral = [];\n\t// \t\tlistaEntidadResponsableSustitutoRelLaboral.push({value: null, label: null});\n\t// \t\tList<SucursalEntidadDTO> lista;\n\n\t// \t\t\tlista = sucursalSvc.traerSucursalEntidadSustitutoRelacionLabEntRes(new GeneralModel(tipoServicio);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t\tlista = new ArrayList<SucursalEntidadDTO>();\n\t// \t\t}\n\t// \t\tfor (SucursalEntidadDTO seLocal : lista) {\n\t// \t\t\tlistaEntidadResponsableSustitutoRelLaboral\n\t// \t\t\t\t\t.push({value: seLocal.Entidad() + '#' + seLocal.sucursalEntidad, seLocal.descripcion + ' - ' + seLocal.NombreSucursal()));\n\t// \t\t}\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(listaEntidadResponsableSustitutoRelLaboral);\n\t// \treturn listaEntidadResponsableSustitutoRelLaboral;\n\t// }\n\n\tasync getListaTipoComisionViatico() {\n\n\t\tlet tipoActividadDTO = new TipoActividadModel();\n\t\tlet listaRespuesta = [];\n\t\t// Origen Viaticos\n\t\ttipoActividadDTO.origen = 'V';\n\t\tlistaRespuesta = (await this.generalService.queryForList(new GeneralModel('TipoActividadDTO', null, false, tipoActividadDTO)).toPromise()).map((data) => ({ key: data.llaveTabla, label: data.descripcion }));\n\t\tthis.utilsService.ordenarSelectItemsAlfabeticamente(listaRespuesta);\n\t\treturn listaRespuesta;\n\n\t}\n\n\t// public static List<SeleccionReporteDTO> StringToSeleccionReporte(String campo) {\n\t// \tString[] seleccionDelimi = null;\n\t// \tList<SeleccionReporteDTO> listaSeleccion = new ArrayList<SeleccionReporteDTO>();\n\t// \tif (campo == null) {\n\t// \t\treturn listaSeleccion;\n\t// \t}\n\t// \tseleccionDelimi = campo.split('\\\\|');\n\t// \tint numero = 1;\n\t// \tint pos = 0;\n\t// \tSeleccionReporteDTO seleccionReporteDTO;\n\t// \tfor (int i = 0; i < seleccionDelimi.length; i++) {\n\t// \t\tif ((i + 1) % 4 == 0) {\n\t// \t\t\tseleccionReporteDTO = new SeleccionReporteDTO();\n\t// \t\t\tseleccionReporteDTO.Numero(Constantes.ESPACIO_NULO + numero);\n\t// \t\t\tseleccionReporteDTO.DescripcionColumna(GestionReporteCons.CAMPOSSELECCIONVISTA.(seleccionDelimi[i - 3]));\n\t// \t\t\tseleccionReporteDTO.Columna(seleccionDelimi[i - 3]);\n\t// \t\t\tseleccionReporteDTO.DescripcionTipo(GestionReporteCons.TIPOSELECCION.(seleccionDelimi[i - 2]));\n\t// \t\t\tseleccionReporteDTO.Tipo(seleccionDelimi[i - 2]);\n\t// \t\t\tseleccionReporteDTO.Parametro(seleccionDelimi[i - 1]);\n\t// \t\t\tseleccionReporteDTO.ParametroCopy(seleccionDelimi[i - 1]);\n\t// \t\t\tseleccionReporteDTO.DescripcionAnidado(GestionReporteCons.ANIDADO.(seleccionDelimi[i]));\n\t// \t\t\tseleccionReporteDTO.Anidado(seleccionDelimi[i]);\n\t// \t\t\tseleccionReporteDTO.Posicion(pos++);\n\t// \t\t\tlistaSeleccion.push(seleccionReporteDTO);\n\t// \t\t\tseleccionReporteDTO = new SeleccionReporteDTO();\n\t// \t\t\tnumero++;\n\t// \t\t}\n\t// \t}\n\t// \treturn listaSeleccion;\n\t// }\n\n\t// public static List<SeleccionReporteDTO> StringToSeleccionProyeccion(String campo) {\n\t// \tString[] seleccionDelimi = null;\n\t// \tList<SeleccionReporteDTO> listaSeleccion = new ArrayList<SeleccionReporteDTO>();\n\n\t// \tif (campo == null) {\n\t// \t\treturn listaSeleccion;\n\t// \t}\n\n\t// \tseleccionDelimi = campo.split('\\\\|');\n\t// \tint numero = 1;\n\t// \tint pos = 0;\n\t// \tSeleccionReporteDTO seleccionReporteDTO;\n\t// \tfor (int i = 0; i < seleccionDelimi.length; i++) {\n\t// \t\tif ((i + 1) % 4 == 0) {\n\t// \t\t\tseleccionReporteDTO = new SeleccionReporteDTO();\n\t// \t\t\tseleccionReporteDTO.Numero(Constantes.ESPACIO_NULO + numero);\n\t// \t\t\tseleccionReporteDTO.DescripcionColumna(ProyeccionCons.CAMPOSSELECCIONVISTA.(seleccionDelimi[i - 3]));\n\t// \t\t\tseleccionReporteDTO.Columna(seleccionDelimi[i - 3]);\n\t// \t\t\tseleccionReporteDTO.DescripcionTipo(GestionReporteCons.TIPOSELECCION.(seleccionDelimi[i - 2]));\n\t// \t\t\tseleccionReporteDTO.Tipo(seleccionDelimi[i - 2]);\n\t// \t\t\tseleccionReporteDTO.Parametro(seleccionDelimi[i - 1]);\n\t// \t\t\tseleccionReporteDTO.ParametroCopy(seleccionDelimi[i - 1]);\n\t// \t\t\tseleccionReporteDTO.DescripcionAnidado(GestionReporteCons.ANIDADO.(seleccionDelimi[i]));\n\t// \t\t\tseleccionReporteDTO.Anidado(seleccionDelimi[i]);\n\t// \t\t\tseleccionReporteDTO.Posicion(pos++);\n\t// \t\t\tlistaSeleccion.push(seleccionReporteDTO);\n\t// \t\t\tseleccionReporteDTO = new SeleccionReporteDTO();\n\t// \t\t\tnumero++;\n\t// \t\t}\n\t// \t}\n\t// \treturn listaSeleccion;\n\t// }\n\n\t// public static String seleccionReporteToString(List<SeleccionReporteDTO> listaSeleccion) {\n\t// \tStringBuilder seleccion = new StringBuilder();\n\t// \tfor (SeleccionReporteDTO element : listaSeleccion) {\n\t// \t\tseleccion.append(element.Columna() + '|' + element.Tipo() + '|' + element.Parametro() + '|' + element.Anidado() + '|');\n\t// \t}\n\t// \treturn seleccion.toString();\n\t// }\n\n\t// public static List<SelectItem> getListaModo(List<ModoParametroDTO> lisModo) {\n\t// \tList<SelectItem> lista = [];\n\t// \tlista.push({value: null, label: null});\n\t// \tfor (ModoParametroDTO modo : lisModo) {\n\t// \t\tString llave = modo.llaveTabla;\n\t// \t\tlista.push({value: llave, label: modo.descripcion});\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(lista);\n\t// \treturn lista;\n\t// }\n\n\t// async getListaMarcadorvariable() throws Exception {\n\t// \tList<SelectItem> lista = [];\n\t// \tlista.push({value: null, label: null});\n\n\t// \tVariableLiquidacionDTO variableLiquidacion = new VariableLiquidacionDTO();\n\t// \tvariableLiquidacion.Liquidacion('T');\n\n\t// \tList<VariableLiquidacionDTO> listaVariable = this.generalService.queryForList(new GeneralModel(variableLiquidacion);\n\t// \tfor (VariableLiquidacionDTO element : listaVariable) {\n\t// \t\tlista.push({value: element.VariableLiquidacion(), element.VariableLiquidacion().trim() + ' - ' + element.descripcion.trim()));\n\t// \t}\n\t// \treturn lista;\n\t// }\n\n\t// async getListadoModos() {\n\t// \tList<SelectItem> listadoModos = [];\n\t// \tList<ModoParametroDTO> listaModos = new ArrayList<ModoParametroDTO>();\n\n\t// \t\tModoParametroDTO modoParametroDTO = new ModoParametroDTO();\n\t// \t\tInteger modulo = Constantes.COMPENSACION;\n\t// \t\tmodoParametroDTO.Modulo(this.utilsService.rightPad(modulo.toString(), 3));\n\t// \t\tlistaModos = this.generalService.queryForList(new GeneralModel(modoParametroDTO);\n\n\t// \t\tfor (ModoParametroDTO item : listaModos) {\n\t// \t\t\tlistadoModos.push({value: item.llaveTabla, item.descripcion});\n\t// \t\t}\n\n\n\t// \treturn listadoModos;\n\t// }\n\n\t// async getListadoGrupoEmpleado() {\n\t// \tList<SelectItem> listadoGrupos = [];\n\t// \tList<TipoGrupoDTO> listaGrupos = new ArrayList<TipoGrupoDTO>();\n\n\t// \t\tTipoGrupoDTO tipoGrupoDTO = new TipoGrupoDTO();\n\t// \t\ttipoGrupoDTO.modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\t// \t\tlistaGrupos = this.generalService.queryForList(new GeneralModel(tipoGrupoDTO);\n\t// \t\tfor (TipoGrupoDTO item : listaGrupos) {\n\t// \t\t\tlistadoGrupos.push({value: item.TipoGrupo(), item.descripcion});\n\t// \t\t}\n\n\n\t// \treturn listadoGrupos;\n\t// }\n\n\t// async getListaTipoGrupoSinVinculaLaboral() {\n\t// \tList<SelectItem> listadoGrupos = [];\n\n\t// \t\tTipoGrupoDTO tipoGrupoDTO = new TipoGrupoDTO();\n\t// \t\ttipoGrupoDTO.modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\t// \t\tList<TipoGrupoDTO> listaGrupos = this.generalService.queryForList(new GeneralModel('TipoGrupo.consultarTipoGrupoSinVinculaLaboral', tipoGrupoDTO);\n\t// \t\tfor (TipoGrupoDTO item : listaGrupos) {\n\t// \t\t\tlistadoGrupos.push({value: item.TipoGrupo(), item.descripcion});\n\t// \t\t}\n\n\t// \treturn listadoGrupos;\n\t// }\n\n\t// async getListaInterfazEntidadExterna() {\n\t// \tList<SelectItem> listaInterfazEntidadExterna = [];\n\n\t// \t\tInterfazDTO interfazDTO = new InterfazDTO();\n\t// \t\tinterfazDTO.TipoInterfaz('E');\n\t// \t\tinterfazDTO.ModoParametro(saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\t// \t\tList<InterfazDTO> listaInt = this.generalService.queryForList(new GeneralModel(interfazDTO);\n\t// \t\tfor (InterfazDTO item : listaInt) {\n\t// \t\t\tlistaInterfazEntidadExterna.push({value: item.Interfaz(), item.descripcion});\n\t// \t\t}\n\n\n\t// \treturn listaInterfazEntidadExterna;\n\t// }\n\n\t// async getListaTipoAjuste() {\n\t// \tList<SelectItem> listaTipoAjuste = null;\n\n\t// \t\tlistaTipoAjuste = ColeccionConverter.convertirMapToListSelectItem(DatosBasicosEmpresaCons.MAPA_TIPO_AJUSTE);\n\n\t// \treturn listaTipoAjuste;\n\t// }\n\n\tasync getListaDefinicionCiclos(tipoPeriodo: number) {\n\t\tlet listaDefinicionCiclos: any[] = [];\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('CodigoBaseCompensacionDTO', null, false, {tipo: 'CICLO', tipoPeriodo: tipoPeriodo})).toPromise();\n\t \tlista.forEach(element => {\n\t\t\tlistaDefinicionCiclos.push({value: element.numero, label: element.descripcion});\n\t\t})\n\t \treturn listaDefinicionCiclos;\n\t}\n\n\t// async getListaproyectos() {\n\n\n\t// \t\tlistaproyectos = [];\n\t// \t\tList<TablacosteoDTO> lista = tablaCosteoSvc.traerListaProyectos(new GeneralModel(parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t// \t\tfor (TablacosteoDTO element : lista) {\n\t// \t\t\tlistaproyectos.push({value: element.llaveTabla, element.descripcion});\n\t// \t\t}\n\n\t// \treturn listaproyectos;\n\t// }\n\n\t// async getListaActividadesProyectos(String actividad) {\n\n\t// \t\tlistaActividadesProyectos = [];\n\t// \t\tTablacosteoDTO tablacosteo = new TablacosteoDTO();\n\t// \t\tif (actividad != null) {\n\t// \t\t\ttablacosteo.Depende(actividad);\n\t// \t\t\tList<TablacosteoDTO> lista = tablaCosteoSvc.traerListaActividades(new GeneralModel(tablacosteo);\n\t// \t\t\tfor (TablacosteoDTO element : lista) {\n\t// \t\t\t\tlistaActividadesProyectos.push({value: element.llaveTabla, element.descripcion});\n\t// \t\t\t}\n\t// \t\t}\n\n\t// \treturn listaActividadesProyectos;\n\t// }\n\n\t// async getListaActividad() {\n\n\t// \t\tCodigoBaseCompensacionDTO codigo = new CodigoBaseCompensacionDTO();\n\t// \t\tcodigo.Tipo(Constantes.actividad);\n\t// \t\tlistaActividades = [];\n\t// \t\tList<CodigoBaseCompensacionDTO> lista = this.generalService.queryForList(new GeneralModel(codigo);\n\t// \t\tfor (CodigoBaseCompensacionDTO element : lista) {\n\t// \t\t\tlistaActividades.push({value: element.llaveTabla, element.descripcion});\n\t// \t\t}\n\n\t// \treturn listaActividades;\n\t// }\n\n\t// async getListaEntidadTipoServicio(String tipoServicio) {\n\n\t// \t\tlistaEntidadTipoServicio = [];\n\t// \t\tif (this.utilsService.isNotBlank(tipoServicio)) {\n\t// \t\t\tEntidadDTO entidadDTO = new EntidadDTO();\n\t// \t\t\tentidadDTO.FiltroTipoServicio(tipoServicio);\n\t// \t\t\tentidadDTO.modo = saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\t// \t\t\tList<EntidadDTO> lista = this.generalService.queryForList(new GeneralModel(entidadDTO);\n\t// \t\t\tlistaEntidadTipoServicio.push({value: null, label: null});\n\t// \t\t\tfor (EntidadDTO lis : lista) {\n\t// \t\t\t\tlistaEntidadTipoServicio.push({value: lis.llave, lis.descripcion});\n\t// \t\t\t}\n\t// \t\t}\n\n\n\t// \treturn listaEntidadTipoServicio;\n\t// }\n\n\t// async getListaTipoLiquidacionPeriodica() {\n\t// \tif (listaTipoLiquidacionPeriodica != null) {\n\t// \t\treturn listaTipoLiquidacionPeriodica;\n\t// \t}\n\t// \tlistaTipoLiquidacionPeriodica = [];\n\n\t// \t\tList<TipoLiquidacionPeriodicaDTO> lista = this.generalService.queryForList(new GeneralModel(new TipoLiquidacionPeriodicaDTO());\n\t// \t\tfor (TipoLiquidacionPeriodicaDTO unTipo : lista) {\n\t// \t\t\tlistaTipoLiquidacionPeriodica.push({value: unTipo.TipoLiquidacionPeriodica(), unTipo.descripcion});\n\t// \t\t}\n\n\t// \treturn listaTipoLiquidacionPeriodica;\n\t// }\n\n\t// async getListaSolicitudes() {\n\t// \tif (listaSolicitudes == null) {\n\t// \t\tlistaSolicitudes = [];\n\t// \t\tlistaSolicitudes.push({value: null, label: null});\n\t// \t\tTipoNovedadDTO tipo = new TipoNovedadDTO();\n\t// \t\ttipo.Solicitud(Constantes.CONSTANTE_SI);\n\t// \t\ttipo.HijoPadre('P');\n\t// \t\tList<TipoNovedadDTO> listatipo = new ArrayList<TipoNovedadDTO>();\n\n\t// \t\t\tlistatipo = this.generalService.queryForList(new GeneralModel(tipo);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\n\t// \t\tfor (TipoNovedadDTO tip : listatipo) {\n\t// \t\t\tlistaSolicitudes.push({value: tip.llave, tip.descripcion});\n\t// \t\t}\n\t// \t}\n\t// \treturn listaSolicitudes;\n\t// }\n\n\t// async getListadoSeccion() {\n\t// \tif (listaSeccion != null) {\n\t// \t\treturn listaSeccion;\n\t// \t}\n\t// \tlistaSeccion = [];\n\n\t// \t\tList<SeccionDTO> lista = this.generalService.queryForList(new GeneralModel(new SeccionDTO());\n\t// \t\tlistaSeccion.push({value: null, label: null});\n\t// \t\tfor (SeccionDTO seccionDTO : lista) {\n\t// \t\t\tlistaSeccion.push({value: seccionDTO.llave, seccionDTO.descripcion});\n\t// \t\t}\n\n\t// \treturn listaSeccion;\n\t// }\n\n\t// async getListaInfoAdiSegunOrigenAusencia(String modo, origen: string) {\n\n\t// \tlistaInformacionAdicional = [];\n\n\t// \t\tDatoorganizacionDTO datoorganizacionDTO = new DatoorganizacionDTO();\n\t// \t\tdatoorganizacionDTO.ModoParametro(modo);\n\t// \t\tdatoorganizacionDTO.Tabla(AusentismoCons.AUSENCIA_DESC.toUpperCase());\n\t// \t\tdatoorganizacionDTO.Accion(origen);\n\t// \t\tList<DatoorganizacionDTO> lista;\n\t// \t\tlista = this.generalService.queryForList(new GeneralModel(datoorganizacionDTO);\n\t// \t\tfor (DatoorganizacionDTO element : lista) {\n\t// \t\t\tlistaInformacionAdicional.push({value: element.llave, element.descripcion});\n\t// \t\t}\n\n\t// \treturn listaInformacionAdicional;\n\t// }\n\n\t// async getFactorVinculacionLaboral() {\n\t// \treturn factorVinculacionLaboral;\n\t// }\n\n\t// async getListaFilaProyeccionDescripcion() {\n\t// \treturn listaFilaProyeccionDescripcion;\n\t// }\n\n\t// public void setListaFilaProyeccionDescripcion(List<SelectItem> listaFilaProyeccionDescripcion) {\n\t// \tthis.listaFilaProyeccionDescripcion = listaFilaProyeccionDescripcion;\n\t// }\n\n\tasync getListaNivelAcademico() {\n\t\tvar listaNivelAcademico = [];\n\t\tvar lista: NivelAcademicoModel[] = await this.generalService.queryForList(new GeneralModel('NivelAcademicoDTO', null, false, {})).toPromise();\n\t\tfor (var lis of lista) {\n\t\t\tlistaNivelAcademico.push({value: lis.nivel, label: lis.descripcion});\n\t\t}\n\t\treturn listaNivelAcademico;\n\t}\n\n\t public seleccionReporteToString(listaSeleccion: SeleccionReporteModel[]): string {\n\t\tlet seleccion = '';\n\t  \tlistaSeleccion.forEach(element => {\n\t\t  seleccion += `${element.columna}|${element.tipo}|${element.parametro}|${element.anidado}|`;\n\t\t});\n\t  \n\t\treturn seleccion;\n\t  }\n\n\n\tpublic async getListaTipoCambio(accion: string) {\n\t\tlet listaTipoCambio = []\n\t\tlet tipocambio = new TipoCambioEmpleadoModel();\n\t\ttipocambio.accion = (accion);\n\t\tlistaTipoCambio = (await this.generalService.queryForList(new GeneralModel('TipoCambioEmpleadoDTO', null, false, tipocambio)).toPromise()).map((element) => ({value: element.tipoCambioEmpleado, label:element.descripcion}))\n\t\treturn listaTipoCambio;\n\t}\n\n\tpublic async selectListEmpresaCargo(empresa: number): Promise<any[]> {\n\t\tlet listaEmpresaCargo = [];\n\t\tlistaEmpresaCargo.push({value:Constantes.ESPACIO_NULO,label:\"--- Seleccione Cargo ---\"});\n\t\ttry {\n\t\t\t// CargoDTO \n\t\t\tlet comodin = new CargoModel();\n\t\t\tcomodin.empresa = (empresa);\n\t\t\t// List<CargoDTO> \n\t\t\tlet lista = (await this.generalService.queryForList(new GeneralModel('CargoDTO',null,false,comodin)).toPromise()).map(data => ({value: this.utilsService.rightpad(data.cargo,8,null),  label: data.descripcion }));\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn listaEmpresaCargo;\n\t}\n\n\tpublic async getListaEmpresa(): Promise<any[]> {\n\t\t// List<SelectItem> \n\t\tlet lista: any[] = await this.getListaEmpresaSinSeleccione();\n\t\tlista.push({value:Constantes.ESPACIO_NULO, label:\"--Seleccione--\"});\n\t\treturn lista;\n\t}\n\n\tpublic async getListaEmpresaSinSeleccione() {\n\t\tlet listaEmpresa = [];\n\t\tthis.cargarListaEmpresas();\n\t\treturn listaEmpresa;\n\t}\n\n\tpublic async cargarListaEmpresas(): Promise<any[]>{\n\t\ttry {\n\t\t\tlet comodin = new EmpresaModel();\n\t\t\tcomodin.organizacion = ((await this.saraAplicacionService.getEmpresa()).organizacion);\n\t\t\tlet lista = (await this.generalService.queryForList(new GeneralModel('EmpresaDTO',null,false,comodin)).toPromise()).map((data) => ({value: data.empresa, label:data.nombre}));\n\t\t\treturn lista;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\tpublic async selectListUnidadUnaEmpresa(empresa: number): Promise<any[]> {\n\t\tlet listaUnidad = [];\n\t\tlistaUnidad.push({value:Constantes.ESPACIO_NULO,label:\"--- Seleccione Unidad Organizacional ---\"});\n\t\ttry {\n\t\t\t// UnidadOrganizacionalDTO \n\t\t\tlet comodin = new UnidadOrganizacionalModel();\n\t\t\tcomodin.empresa = (empresa);\n\t\t\tlet lista: UnidadOrganizacionalModel[] = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO','UnidadOrganizacional.consultarUnidadDisponibleRolAcceso',false,comodin)).toPromise();\n\t\t\tfor (const uno of lista) {\n\t\t\t\t//\t\t\t\tString llave = StringUtils.rightPad(uno.getUnidad(),4);\n\t\t\t\tif(uno.unidad != (this.utilsService.rightpad(Constantes.PUNTO,32,null))){\n\t\t\t\t\tlistaUnidad.push({value:uno.unidad, label:uno.nombreUnidad});\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn listaUnidad;\n\t}\n\n}","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { AusenciaModel } from '../../../models/AusenciaModel';\nimport { AusenciaNovedadModel } from '../../../models/AusenciaNovedadModel';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { AusentismoService } from '../../../services/ausentismo.service';\nimport { AusentismoPipe } from '../../../../../shared/pipes/ausentismo.pipe';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { VacacionAusenciaProgramadasComponent } from '../../../ausentismos/vacacion-ausencia-programadas/vacacion-ausencia-programadas.component';\nimport { VacacionAusenciaInterrupcionComponent } from '../vacacion-ausencia-interrupcion/vacacion-ausencia-interrupcion.component';\nimport { TipoAusenciaModel } from '../../../models/TipoAusenciaModel';\nimport { SelectListCompensa } from '../../../services/select-list-compensa.service';\nimport { VacacionAusenciaHistoricoComponent } from '../../../ausentismos/vacacion-ausencia-historico/vacacion-ausencia-historico.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EditarPasivoAusenciaComponent } from '../../empleados/ausentismos/editar-pasivo-ausencia/editar-pasivo-ausencia.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { TabViewModule } from 'primeng/tabview';\n\n@Component({\n    selector: 'app-vacacion-ausencia',\n    templateUrl: './vacacion-ausencia.component.html',\n    styleUrls: ['./vacacion-ausencia.component.scss'],\n    standalone: true,\n    imports: [TabViewModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, EditarPasivoAusenciaComponent, VacacionAusenciaProgramadasComponent, VacacionAusenciaInterrupcionComponent, VacacionAusenciaHistoricoComponent, DatePipe, TranslateModule, NovedadPipe]\n})\nexport class VacacionAusenciaComponent implements OnInit {\n\n  public listahistorico: AusenciaModel[] = [];\n  public listaHistoricoInterrupcion: AusenciaModel[] = [];\n  public listapasivo: AusenciaNovedadModel[] = [];\n  public listaProgramadas: AusenciaNovedadModel[] = [];\n  public listaInterrupcion: AusenciaNovedadModel[] = [];\n    \n\tpublic listaComandos: Map<string, boolean>;\n  public adicionales: boolean; \n  public adicionaleshistoricos: boolean; \n  public adicionalesdineroshistoricos: boolean; \n  public compensadoshistoricos: boolean; \n  public compensadosProgramados: boolean;\n  public fechaProgramada: boolean; \n  public fechaHistorico: boolean; \n  public compensadosAdicionales: boolean = true; \n  public disfrutadosAdicionales: boolean = true;\n  public soyYo: boolean;\n  public listaContratosActivoEmpleado: EmpleadoModel[];\n  @Input() public empleado: EmpleadoModel;\n  public verMantenimientoPasivoVacaciones;\n  public verMantenimientoSolicitudVacaciones;\n  public verMantenimientoInterrupcionVacaciones;\n  public verMantenimientoHistorico: boolean;\n  public mapaEstados: any[];\n\tpublic formValidacion: string;\n\n  public pasivo: AusenciaNovedadModel;\n  public nuevoPasivo: boolean;\n  public listaTipoAusentismo: any[] = [];\n\n  @ViewChild('vacacionAusenciaProgramadas') vacacionAusenciaProgramadas: VacacionAusenciaProgramadasComponent;\n  @ViewChild('vacacionAusenciaInterrupcion') vacacionAusenciaInterrupcion: VacacionAusenciaInterrupcionComponent;\n  @ViewChild('vacacionAusenciaHistorico') vacacionAusenciaHistorico: VacacionAusenciaHistoricoComponent;\n  \n  constructor(private generalService: GeneralService,\n              private ausentismoService: AusentismoService,\n              private ausentismoPipe: AusentismoPipe,\n              private selectListCompensa: SelectListCompensa,\n              private novedadPipe: NovedadPipe,\n              public utilsService: UtilsService,\n              private authService: AuthService,\n              private notificacionesService: ToastService,\n              private saraAplicacionService: SaraAplicacionService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              private generalPipe: GeneralPipe) { }\n\n  ngOnInit(): void {\n    this.setTraerListado().then(data => {this.utilsService.resizeWindowIFrame()})\n  }\n\n  public async setTraerListado() {\n    if (this.empleado == null) {\n        return;\n    }\n    if (this.empleado.contrato == null) {\n      let empleadoActivoDTO: EmpleadoModel = new EmpleadoModel();\n      empleadoActivoDTO.cedula = this.empleado.cedula;\n      empleadoActivoDTO.empresa = this.empleado.empresa;\n      empleadoActivoDTO.soloActivos = this.generalPipe.SI;\n      this.listaContratosActivoEmpleado = await this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, empleadoActivoDTO)).toPromise();\n\n      if (this.listaContratosActivoEmpleado.length == 0) {\n          return;\n      }\n      this.empleado.contrato = this.listaContratosActivoEmpleado[0].contrato;\n      this.listaContratosActivoEmpleado = null;\n    }\n    await this.controlPermisos();\n    this.listaTipoAusentismo = []\n    this.selectListCompensa.getListaAusencia('V').then(data => {\n      for (let element of data){\n        this.listaTipoAusentismo.push({key: element.value, label: element.label})\n      }\n    });\n    this.consultarListas();\n    this.mostrarListadoSolicitudes();\n  }\n\n  /**\n   * Carga las listas asociadas a novedades de vacaciones (pasivo, programadas, interrupciones, historicos, etc)\n   */\n  public consultarListas() {\n    console.trace('entra consultarListas')\n    this.listahistorico = [];\n    this.listaProgramadas = [];\n    this.ausentismoService.traerListadoHistoricoAusencia({empresa: this.empleado.empresa, contrato: this.empleado.contrato, origen: this.ausentismoPipe.VACACION}).subscribe(data => {\n      this.listahistorico = data;\n    });\n    this.ausentismoService.traerListadoAusenciaNovedad({empresa: this.empleado.empresa, contrato: this.empleado.contrato, tipoRegistro: this.ausentismoPipe.PASIVO, origen: this.ausentismoPipe.VACACION}).subscribe(data => {\n      this.listapasivo = data;\n    });\n    this.ausentismoService.traerListadoAusenciaNovedadProgramadas({empresa: this.empleado.empresa, contrato: this.empleado.contrato, tipoRegistro: 'PR', origen: this.ausentismoPipe.VACACION}).subscribe(data => {\n      this.listaProgramadas = data;\n    })\n    this.ausentismoService.traerListadoAusenciaNovedadProgramadas({empresa: this.empleado.empresa, contrato: this.empleado.contrato, tipoRegistro: 'PI', origen: this.ausentismoPipe.VACACION}).subscribe(data => {\n      this.listaInterrupcion = data;\n      this.utilsService.resizeWindowIFrame()\n    })\n    this.mapaEstados = this.novedadPipe.ESTADONOVEDAD;\n  }\n\n  public async nuevohistorico() {\n    var puede = this.controlFuncionService.getControlFuncionalidad('vacsol:empRetirado');\n    this.verMantenimientoHistoricoAction();\n    await this.utilsService.sleep(100)\n    this.vacacionAusenciaHistorico.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_VACACION, this.ausentismoPipe.FORM_EMPLEADO_VACACION_HISTORICO, null,\t(this.isEmpleadoActivo() || puede));\n    this.utilsService.resizeWindowIFrame()  \n  }\n\n  public historico( event) {\n    if (this.consultarPermiso('vachis:deshabhistorico')) {\n      this.notificacionesService.showWarning('No tiene permisos asociados.');\n      return;\n    }\n\n    var ausencia = event.data;\n    var puede: boolean = this.consultarPermiso('vacsol:empRetirado');\n    //getBean(DetalleVacacionAusenciaHistoricoBean.class).buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_VACACION, this.ausentismoPipe.FORM_EMPLEADO_VACACION_HISTORICO, ausencia,\t\t(isEmpleadoActivo() || puede));\n    this.verMantenimientoHistoricoAction();\n  }\n\n  private consultarPermiso(permiso: string): boolean {\n    return this.controlFuncionService.getControlFuncionalidad(permiso);\n  }\n\n  public nuevopasivo() {\n    this.pasivo = new AusenciaNovedadModel();\n    this.nuevoPasivo = true;\n    /*MantenimientoPasivoAusenciaBean mantenimientoPasivoAusenciaBean = (MantenimientoPasivoAusenciaBean) FacesUtils.Bean('mantenimientoPasivoAusenciaBean');\n    mantenimientoPasivoAusenciaBean.EmpleadoModel(empleado);\n    mantenimientoPasivoAusenciaBean.EsNuevo(true);\n    mantenimientoPasivoAusenciaBean.init(formValidacion, this.ausentismoPipe.VACACION);*/\n    this.verMantenimientoPasivo();\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  public verPasivo( event) {\n    this.pasivo =  event.data;\n    this.nuevoPasivo = false;\n    console.log(event)\n    /*MantenimientoPasivoAusenciaBean mantenimientoPasivoAusenciaBean = (MantenimientoPasivoAusenciaBean) getBean(MantenimientoPasivoAusenciaBean.class);\n    mantenimientoPasivoAusenciaBean.AusenciaNovedadDTO(pasivo);\n    mantenimientoPasivoAusenciaBean.EsNuevo(false);\n    mantenimientoPasivoAusenciaBean.PuedeActualizar(isEmpleadoActivo());\n    mantenimientoPasivoAusenciaBean.init(formValidacion, this.ausentismoPipe.VACACION);*/\n    this.verMantenimientoPasivo();\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  /**\n   * Despliega el popup para diligenciar una nueva solicitud de vacaciones\n   * @return null\n   */\n  public async vacaciones() {\n    this.verMantenimientoSolicitud();\n    await this.utilsService.sleep(100)\n    await this.vacacionAusenciaProgramadas.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_VACACION, this.formValidacion, null, this.empleado);\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  public async interrupcion(){\n    this.verMantenimientoInterrupcion();\n    await this.utilsService.sleep(100)\n    await this.vacacionAusenciaInterrupcion.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_INTERRUPCION, this.formValidacion, null, this.empleado);\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  public async verInterrupcion( event){\n    this.verMantenimientoInterrupcion();\n    let ausencia: AusenciaNovedadModel =  event.data;\n    await this.utilsService.sleep(100)\n    await this.vacacionAusenciaInterrupcion.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_INTERRUPCION, this.formValidacion, ausencia, this.empleado);\n    this.utilsService.resizeWindowIFrame()\n      \n  }\n\n  public async verVacacion( event) {\n    this.verMantenimientoSolicitud();\n    let ausencia: AusenciaNovedadModel =  event.data;\n    await this.utilsService.sleep(100)\n    await this.vacacionAusenciaProgramadas.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_VACACION, this.formValidacion, ausencia, this.empleado);\n  }\n\n  public cancelarAction() {\n    // ConstantesGenerales.REGLA_REGRESAR;\n  }\n\n  public regresarAction() {\n      return 'cancelar';\n  }\n\n  public isEmpleadoActivo(){\n    let empleadoFiltro = new EmpleadoModel();\n    empleadoFiltro.estadoLaboral = this.empleado.estadoLaboral\n    empleadoFiltro.estadoLaboralPeriodo = this.empleado.estadoLaboralPeriodo\n    empleadoFiltro.contrato = this.empleado.contrato\n    empleadoFiltro.empresa = this.empleado.empresa\n    return this.empleado!= null && empleadoFiltro.getEmpleadoActivo();\n  }\n\n\n  private async controlPermisos() {\n    this.listaComandos = new Map<string, boolean>();\n    this.soyYo = await this.saraAplicacionService.isSoyYo(this.empleado.documento, this.authService.getTokenKey('tipoLogin'));\n      if (this.soyYo) {\n          /*Set<Entry<String, Boolean>> listado = controlPaginaLocal.ListaComandos().entrySet();\n          for (Entry<String, Boolean> entry : listado) {\n              String comando = entry.Key();\n              if (StringUtils.right(comando.trim(), 4).equals('_mio')) {\n                  comando = StringUtils.left(comando, comando.length() - 4);\n                  listaComandos.set(comando, true);\n              }\n          }*/\n          this.listaComandos.set('guardarLegalizar', this.controlFuncionService.getControlFuncionalidad('vacsol:guardarLegalizar'));\n      } else {\n          //listaComandos = controlPaginaLocal.ListaComandos();\n      }\n  }\t\n\n\n  public isFuncional(){\n    return this.authService.getTokenKey('isCliente') == 'false';\n  }\n\n  public isVerPanelesSolicitudes() {\n    return !this.verMantenimientoPasivoVacaciones && !this.verMantenimientoSolicitudVacaciones && !this.verMantenimientoInterrupcionVacaciones;\n  }\n\n  private verMantenimientoPasivo(){\n    this.verMantenimientoPasivoVacaciones = true;\n    this.verMantenimientoSolicitudVacaciones = false;\n    this.verMantenimientoInterrupcionVacaciones = false;\n  }\n\n  private verMantenimientoSolicitud(){\n    this.verMantenimientoPasivoVacaciones = false;\n    this.verMantenimientoSolicitudVacaciones = true;\n    this.verMantenimientoInterrupcionVacaciones = false;\n  }\n\n  private verMantenimientoInterrupcion(){\n    this.verMantenimientoPasivoVacaciones = false;\n    this.verMantenimientoSolicitudVacaciones = false;\n    this.verMantenimientoInterrupcionVacaciones = true;\n  }\n\n  public mostrarListadoSolicitudes(){\n    this.verMantenimientoPasivoVacaciones = false;\n    this.verMantenimientoSolicitudVacaciones = false;\n    this.verMantenimientoInterrupcionVacaciones = false;\n    this.verMantenimientoHistorico = false;\n    this.consultarListas();\n  }\n\n  public isVerPanelHistorico() {\n    return !this.verMantenimientoHistorico;\n  }\n\n  private verMantenimientoHistoricoAction(){\n    this.verMantenimientoHistorico = true;\n  }\n\n  public setMostrarListadoHistorico(ob){\n    this.verMantenimientoHistorico = false;\n    this.ausentismoService.traerListadoHistoricoAusencia({empresa: this.empleado.empresa, contrato: this.empleado.contrato, origen: this.ausentismoPipe.VACACION}).subscribe(data => {\n      this.listahistorico = data;\n    });\n  }\n\n  async verAction(event){\n    var ausencia = event.data;\n    if (this.controlFuncionService.getControlFuncionalidad('vachis:deshabhistorico')) {\n      this.notificacionesService.showWarning('No tiene permisos asociados');\n      return;\n    }\n    var puede = this.controlFuncionService.getControlFuncionalidad('vacsol:empRetirado');\n    this.verMantenimientoHistoricoAction();\n    await this.utilsService.sleep(100)\n    this.vacacionAusenciaHistorico.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_VACACION, this.ausentismoPipe.FORM_EMPLEADO_VACACION_HISTORICO, ausencia,\t(this.isEmpleadoActivo() || puede));\n    this.utilsService.resizeWindowIFrame()  \n  }\n}\n","<h4>{{'vacacion' | translate}}</h4>\n<p-tabView (onChange)=\"this.utilsService.resizeWindowIFrame()\">\n    <p-tabPanel header=\"{{'vacaciones' | translate}}\" *ngIf=\"isEmpleadoActivo()\">\n        <!--Lista pasivo-->\n        <div class=\"card p-4\" *ngIf=\"controlFuncionService.getControlFuncionalidad('manpas:verPasivo') && isVerPanelesSolicitudes()\">\n            <div class=\"flex justify-content-between align-items-center -mt-2 mb-3\">\n                <h5 class=\"mt-0\"><i class='mt-4 glyphicons glyphicons-list'></i>\n                    <span class=\"mt-4\">{{'pasivo' | translate}}</span>\n                </h5>\n                <div class=\"flex justify-content-end\">\n                    <!--boton nuevo-->\n                    <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                        (click)=\"nuevopasivo()\" label=\"{{'nuevopasivo' | translate}}\"\n                        *ngIf=\"(isFuncional() && controlFuncionService.getControlFuncionalidad('manpas:guardar')) && (isEmpleadoActivo() || controlFuncionService.getControlFuncionalidad('vacsol:empRetirado'))\">\n                    </button>\n                </div>\n            </div>\n            <p-table [value]=\"listapasivo\" responsiveLayout=\"scroll\" [scrollable]=\"true\" *ngIf=\"listapasivo.length > 0\"\n                styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listapasivo.length\"\n                [paginator]=\"listapasivo.length > 10\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n                scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verPasivo($event)\" (onRowUnslect)=\"verPasivo($event)\">\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th style=\"min-width: 40%;\">{{'tipo' | translate}}</th>\n                        <th style=\"min-width: 40%;\">{{'periodo' | translate}} {{'servicio' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'dias' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'solicitados' | translate}}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-dataPasivo let-expanded=\"expanded\">\n                    <tr [pSelectableRow]=\"dataPasivo\">\n                        <td style=\"min-width: 40%;\">\n                            <label *ngIf=\"isFuncional()\">{{dataPasivo.nombreTipoAusenciaInterrupcion}}</label>\n                            <label *ngIf=\"!isFuncional()\">{{dataPasivo.nombreClienteTipoAusencia}}</label>\n                            <label *ngIf=\"dataPasivo.interrupcion == 'I'\"> ({{'interrupcion' | translate}})</label>\n                        </td>\n                        <td style=\"min-width: 40%;\">{{dataPasivo.iniPeriodo | date: ('formatofecha' | translate)}} -\n                            {{dataPasivo.finPeriodo | date: ('formatofecha' | translate)}}</td>\n                        <td style=\"min-width: 10%;\">{{dataPasivo.diasPendiente}}</td>\n                        <td style=\"min-width: 10%;\">{{dataPasivo.solicitados}}</td>\n                    </tr>\n                </ng-template>\n            </p-table>\n        </div>\n\n        <!--Lista solicitudes-->\n        <div class=\"card p-4\" *ngIf=\"isVerPanelesSolicitudes()\">\n            <div class=\"flex justify-content-between align-items-center mb-3\">\n                <h5 class=\"mt-0\"><i class='mt-4 glyphicons glyphicons-notes'></i>\n                    <span class=\"mt-4\">{{'solicitudes' | translate}}</span>\n                </h5>\n                <div class=\"flex justify-content-end\">\n                    <!--boton nuevo -->\n                    <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                        (click)=\"vacaciones()\" label=\"Nueva Solicitud\"\n                        *ngIf=\"(controlFuncionService.getControlFuncionalidad('vacsol:guardar') || controlFuncionService.getControlFuncionalidad('vacsol:guardarLegalizar')) && (isEmpleadoActivo() || controlFuncionService.getControlFuncionalidad('vacsol:empRetirado'))\" >\n                    </button>\n                </div>\n            </div>\n            <p-table [value]=\"listaProgramadas\" responsiveLayout=\"scroll\" [scrollable]=\"true\" *ngIf=\"listaProgramadas.length > 0\"\n                styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaProgramadas.length\"\n                [paginator]=\"listaProgramadas.length > 10\" [scrollable]=\"true\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n                scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verVacacion($event)\" (onRowUnselect)=\"verVacacion($event)\">\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th style=\"min-width: 10%;\">{{'salida' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'termina' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'regreso' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'estado' | translate}}</th>\n                        <th style=\"min-width: 25%;\">{{'mensaje' | translate}}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                    <tr [pSelectableRow]=\"data\">\n                        <td style=\"min-width: 10%;\">{{data.salida | date: ('formatofecha' | translate)}}</td>\n                        <td style=\"min-width: 10%;\">{{data.termina | date: ('formatofecha' | translate)}}</td>\n                        <td style=\"min-width: 10%;\">{{data.regreso | date: ('formatofecha' | translate)}}</td>\n                        <td style=\"min-width: 10%;\">{{data.estado | novedadPipe: 'listaEstado'}}</td>\n                        <td style=\"min-width: 25%;\">{{data.mensaje}}</td>\n                    </tr>\n                </ng-template>\n            </p-table>\n        </div>\n\n        <!--Lista interrupcion-->\n        <div class=\"card p-4\" *ngIf=\"isVerPanelesSolicitudes()\">\n            <div class=\"flex justify-content-between align-items-center mb-3\">\n                <h5 class=\"mt-0\"><i class='mt-4 glyphicons glyphicons-notes'></i>\n                    <span class=\"mt-4\">{{'interrupcion' | translate}}</span>\n                </h5>\n                <div class=\"flex justify-content-end\">\n                    <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                        (click)=\"interrupcion()\" label=\"{{'interrupcion' | translate}}\"\n                        *ngIf=\"controlFuncionService.getControlFuncionalidad('vacsol:crear') && (isEmpleadoActivo() || controlFuncionService.getControlFuncionalidad('vacsol:empRetirado'))\" >\n                    </button>\n                </div>\n            </div>\n            <p-table [value]=\"listaInterrupcion\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaInterrupcion.length\"\n                [paginator]=\"listaInterrupcion.length > 10\" *ngIf=\"listaInterrupcion.length > 0\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" \n                scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verInterrupcion($event)\" (onRowUnselect)=\"verInterrupcion($event)\">\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th>{{'regreso' | translate}}</th>\n                        <th>{{'termina' | translate}}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                    <tr [pSelectableRow]=\"data\">\n                        <td>{{data.regreso | date: ('formatofecha' | translate)}}</td>\n                        <td>{{data.termina | date: ('formatofecha' | translate)}}</td>\n                    </tr>\n                </ng-template>\n            </p-table>\n        </div>\n        <div *ngIf=\"verMantenimientoPasivoVacaciones\">\n            <app-editar-pasivo-ausencia (regresar)=\"setTraerListado()\" [listaTipoAusentismo]=\"listaTipoAusentismo\"\n                [isNew]=\"nuevoPasivo\" [ausenciaNovedad]=\"pasivo\" [puedeActualizar]=\"empleado.empleadoActivo\" [origen]=\"'V'\"\n                [empleadoDTO]=\"empleado\"></app-editar-pasivo-ausencia>\n            <!--<app-mantenimiento-pasivo-ausencia #mantenimientoPasivoAusencia ></app-mantenimiento-pasivo-ausencia>-->\n        </div>\n        <div *ngIf=\"verMantenimientoSolicitudVacaciones\">\n            <app-vacacion-ausencia-programadas #vacacionAusenciaProgramadas (regresar)=\"mostrarListadoSolicitudes()\" ></app-vacacion-ausencia-programadas>\n        </div>\n        <div *ngIf=\"verMantenimientoInterrupcionVacaciones\">\n            <app-vacacion-ausencia-interrupcion #vacacionAusenciaInterrupcion (regresar)=\"mostrarListadoSolicitudes()\" ></app-vacacion-ausencia-interrupcion>\n        </div>\n    </p-tabPanel>\n    <p-tabPanel header=\"{{'historico' | translate}}\" >\n        <div class=\"flex justify-content-end align-items-center -mt-2 mb-3\">\n            <button pButton pRipple (click)=\"setMostrarListadoHistorico(false)\" label= \"{{'link_regresar' | translate}}\" *ngIf=\"verMantenimientoHistorico && vacacionAusenciaHistorico?.mostrar\"\n                icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                (click)=\"nuevohistorico()\" label=\"Nuevo historico\"\n                *ngIf=\"isVerPanelHistorico() && controlFuncionService.getControlFuncionalidad('vachis:crear') && (isEmpleadoActivo() || controlFuncionService.getControlFuncionalidad('vacsol:empRetirado'))\">\n            </button>\n        </div>\n        <div *ngIf=\"isVerPanelHistorico()\">\n            <p-table [value]=\"listahistorico\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n                selectionMode=\"single\" dataKey=\"llaveTabla\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"10\" [totalRecords]=\"listahistorico.length\" [paginator]=\"listahistorico.length > 10\" >\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th style=\"min-width: 30%;\">{{'tipoausencia' | translate }}</th>\n                        <th style=\"min-width: 15%;\">{{'fechasalidanomina' | translate }}</th>\n                        <th style=\"min-width: 15%;\" *ngIf=\"!fechaHistorico\">{{'fechatermina' | translate }}</th>\n                        <th style=\"min-width: 20%;\">{{'periodo' | translate }} {{'servicio' | translate }}</th>\n                        <th style=\"min-width: 10%;\">{{'dias' | translate }}</th>\n                        <th style=\"min-width: 10%;\">{{'interrupcion' | translate }}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-bean>\n                    <tr [pSelectableRow]=\"bean\">\n                        <td style=\"min-width: 30%;\">\n                            <label *ngIf=\"isFuncional()\">{{bean.descripcionTipoAusencia}}</label>\n                            <label *ngIf=\"!isFuncional()\">{{bean.descripcionClienteTipo}}</label>\n                            <label *ngIf=\"bean.tipoInterrumpe == 'S'\"> ({{'interrupcion' | translate}})</label>\n                            <label *ngIf=\"bean.tipoInterrumpe == 'I'\"> ({{'interrupcionincapacidad' | translate}})</label>\n                        </td>\n                        <td style=\"min-width: 15%;\">{{bean.salida | date: ('formatofecha' | translate)}}</td>\n                        <td style=\"min-width: 15%;\" *ngIf=\"!fechaHistorico\">{{bean.termina | date: ('formatofecha' | translate)}}</td>\n                        <td style=\"min-width: 20%;\">{{bean.periodoServicio}}</td>\n                        <td style=\"min-width: 10%;\">{{bean.dias}}</td>\n                        <td style=\"min-width: 10%;\">{{bean.interrupcion}}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n        <div *ngIf=\"verMantenimientoHistorico\">\n            <app-vacacion-ausencia-historico #vacacionAusenciaHistorico [empleado]=\"empleado\" (regresar)=\"setMostrarListadoHistorico($event)\" ></app-vacacion-ausencia-historico>\n        </div>\n    </p-tabPanel>\n</p-tabView>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { TipoAusenciaModel } from '../../../models/TipoAusenciaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { EmpresaModel } from '../../../models/EmpresaModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { EmpleadoService } from '../../../services/empleado.service';\n\n@Component({\n  selector: 'app-popup-seleccion-ausentismo',\n  templateUrl: './popup-seleccion-ausentismo.component.html',\n  styleUrls: ['./popup-seleccion-ausentismo.component.scss'],\n  standalone: true,\n  imports: [NgIf, DialogModule, FormsModule, ReactiveFormsModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, FiltroGeneralComponent]\n})\nexport class PopupSeleccionAusentismoComponent implements OnInit {\n\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n  @Output() public seleccionar: EventEmitter<any> = new EventEmitter();\n  public mostrarPopup: boolean;\n  public visible: boolean;\n  public listadoAusentismo: TipoAusenciaModel[];\n  private mapaAusentismos: any[];\n  public filters = [];\n  public filtro1;\n  public origen: string;\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private novedadPipe: NovedadPipe,\n    private translateService: TranslateService,\n    private empleadoService: EmpleadoService,\n    private toastService: ToastService) { }\n\n  ngOnInit(): void {\n    this.mapaAusentismos = this.novedadPipe.MAPA_DESC_AUSENTISMOS;\n    this.filters = [\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'equal',\n      }\n    ]\n  }\n\n  public mostrar() { }\n\n  async inicializar(origen: string) {\n    this.origen = origen;\n    await this.cargarListaAusencia(origen, null);\n    this.mostrarPopup = true;\n    this.visible = true;\n  }\n\n  async inicializarListaCondicionDerecho(origenAusencia: string, empleado: EmpleadoModel, listaCodigoAusencia: number[]) {\n    if(await this.cargarListaAusenciaCondicion(origenAusencia, empleado, listaCodigoAusencia)){\n      return;\n    }\n    this.mostrarPopup = true;\n    this.visible = true;\n  }\n\n  async cargarListaFiltros(event) {\n    this.filtro1 = event['descripcion'] ? event['descripcion']['value'] : null;\n    await this.cargarListaAusencia(this.origen, null);\n  }\n\n  async cargarListaAusencia(origenAusencia: string, listaCodigoAusencia: number[]) {\n    this.listadoAusentismo = await this.consultarListaAusencia(origenAusencia, this.authService.getTokenKey('usuario'), this.authService.getTokenKey('aliasRol'), listaCodigoAusencia);\n  }\n\n  async cargarListaAusenciaCondicion(origenAusencia: string, empleado: EmpleadoModel, listaCodigoAusencia: number[]): Promise<boolean> {\n    let listadoInicial: TipoAusenciaModel[] = [];\n    this.listadoAusentismo = [];\n    listadoInicial = await this.consultarListaAusencia(origenAusencia, this.authService.getTokenKey('usuario'), this.authService.getTokenKey('aliasRol'), listaCodigoAusencia);\n    if (empleado.cedula != null) {\n      for (const tipoAusencia of listadoInicial) {\n        if (tipoAusencia.filtroCondicionDerecho != null) {\n          let cantidad: any = await this.empleadoService.contarEmpleadoFiltro({ cedula: empleado.cedula, empresa: empleado.empresa, contrato: empleado.contrato, filtro: tipoAusencia.filtroCondicionDerecho, activo: false }).toPromise();\n          if (cantidad === 0) {\n            continue;\n          }\n        }\n        this.listadoAusentismo.push(tipoAusencia);\n      }\n      if (this.listadoAusentismo.length == 1) {\n        this.seleccionar.emit(this.listadoAusentismo[0])\n        return true;\n      }\n      if (this.listadoAusentismo.length == 0) {\n        this.toastService.showError('Tipo de ausencia, no relacionadas');\n        return true;\n      }\n    } else {\n      this.listadoAusentismo = listadoInicial;\n    }\n    return false;\n  }\n\n  async consultarListaAusencia(origen: string, login: string, aliasRol: string, listaCodigoAusencia: number[]) {\n    var codigoAusencia = null;\n\n    if (listaCodigoAusencia != null && listaCodigoAusencia.length == 1) {\n      codigoAusencia = listaCodigoAusencia[0];\n    }\n\n    var empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n\n    var comodin = new TipoAusenciaModel();\n    comodin.modoParametro = empresa.modoCompensacion;\n    comodin.origen = origen;\n    comodin.estado = 'S';\n    comodin.filtroLoginRol = \"TA\";\n    comodin.login = login;\n    comodin.rolUsuario = aliasRol;\n    comodin.codigo = codigoAusencia;\n    comodin.descripcion = this.filtro1 ? '%' + this.filtro1 + '%' : null;\n    var lista: TipoAusenciaModel[] = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, comodin)).toPromise();\n    if (codigoAusencia != null) {\n      return lista;\n    }\n    var listaResultado: TipoAusenciaModel[] = [];\n    for (let i = 0; i < lista.length; i++) {\n      var unTipoAusencia = lista[i];\n      if ('S' == unTipoAusencia.manejoTurno && unTipoAusencia.cantidadRango == 0) {\n        continue;\n      }\n      if (listaCodigoAusencia == null || listaCodigoAusencia.length == 0) {\n        listaResultado.push(unTipoAusencia);\n      } else {\n        for (let j = 0; i < listaCodigoAusencia.length; j++) {\n          var unCodigo = listaCodigoAusencia[j]\n          if (unCodigo == unTipoAusencia.codigo) {\n            listaResultado.push(unTipoAusencia);\n          }\n        }\n      }\n    }\n    return listaResultado;\n  }\n\n  obtenerOrigen(estado) {\n    var estadoRetorno = '';\n    var retorno = this.mapaAusentismos.filter(element => element.codigo == estado)\n    if (retorno?.length > 0) {\n      estadoRetorno = retorno[0].nombre\n    }\n    return estadoRetorno;\n  }\n\n\n  seleccionAusentismo(event) {\n    this.seleccionar.emit(event.data)\n    this.ocultar();\n  }\n\n\n  public ocultar() {\n    this.mostrarPopup = false;\n    this.visible = false;\n    this.regresar.emit();\n  }\n\n}\n","<div *ngIf=\"visible\">\n    <p-dialog header=\"{{'seleccionausentismo' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '50vw'}\"\n        (onHide)=\"ocultar()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n        <!-- Filtro-->\n        <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n            <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\n                                    formControlName=\"descripcion\" autocomplete=\"off\" />\n                                <label for=\"id_descripcion\">{{'descripcion' | translate}}</label>\n                            </span>\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n        </div>\n        <p-table #tabla [value]=\"listadoAusentismo\" styleClass=\"p-datatable-striped\" responsiveLayout=\"scroll\"\n            [scrollable]=\"true\" [rows]=\"10\" [showCurrentPageReport]=\"true\" [paginator]=\"listadoAusentismo.length > 10\"\n            [totalRecords]=\"listadoAusentismo.length\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" selectionMode=\"single\"\n            [showCurrentPageReport]=\"true\"\n            (onRowSelect)=\"seleccionAusentismo($event)\" styleClass=\"p-datatable-striped\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th class=\"w-6rem\">{{'origen' | translate}}</th>\n                    <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean>\n                <tr [pSelectableRow]=\"bean\">\n                    <td>\n                        {{obtenerOrigen(bean.origen)}}\n                    </td>\n                    <td>\n                        {{bean.descripcion}}\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </p-dialog>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class RequisitoHojaModel extends UnionModel {\n\n\t\n\tllave: string;\n\tllaveRequisito: string;\n\tidentifica: number;\n\testado: string;\n\tcontrato: number;\n\tcumplido: Date;\n\tvigencia: Date;\n\tobservacion: string;\n\ttipoDocumento: string;\n\tnombreDocumento: string;\n\tactoAdministrativo: string;\n\tformato: number;\n\tnombreFormato: string;\n\tactoCambioEmpleado: string;\n\ttipo: string;\n\truta: string;\n\tlegalUnico: string;\n\tmostrarActos: string;\n\ttipoBeneficio: string;\n\tmotivo: string;\n\tanexo: string;\n\torigen: string;\n\tllaveTablaBase: string;\n\tarchivo: string;\n\teliminarRegistro: boolean;\n\tregistroElemento: string;\n\telemento: string;\n\tnombreElemento: string;\n\torigenElemento: string;\n\t\n\t\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../constantes/Constantes';\n\n@Pipe({\n    name: 'parametrosPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class ParametrosPipe implements PipeTransform {\n\n\n    AUTOMATICA_CREA_PUESTO = Constantes.CONSTANTE_SI;\n    PUESTO_PREDEFINIDO = Constantes.CONSTANTE_NO;\n    PUESTO_PREDEFINIDO_LIBERAR = \"F\";\n\n    DESAUTOMATICA_CREA_PUESTO = \"Automática crea el puesto\";\n    DESPUESTO_PREDEFINIDO = \"Puesto predefinido\";\n    DESPUESTO_PREDEFINIDO_LIBERAR = \"Puesto predefinido, eliminar cuando libere\";\n\n    LISTACLASEPUESTO = [\n        { codigo: this.AUTOMATICA_CREA_PUESTO, nombre: this.DESAUTOMATICA_CREA_PUESTO },\n        { codigo: this.PUESTO_PREDEFINIDO, nombre: this.DESPUESTO_PREDEFINIDO },\n        { codigo: this.PUESTO_PREDEFINIDO_LIBERAR, nombre: this.DESPUESTO_PREDEFINIDO_LIBERAR }\n    ]\n\n    DOCUMENTO_ANEXO = \"I\";\n    DOCUMENTO_CONTROL = \"C\";\n    ACTO_ADMINISTRATIVO = \"A\";\n\n    DOCUMENTO_ANEXO_DES = \"Documento Anexo\";\n    DOCUMENTO_CONTROL_DES = \"Documento Control\";\n    ACTO_ADMINISTRATIVO_DES = \"Acto Administrativo\";\n\n\n    LISTATIPOMOMENTODOCUMENTO_CONTRATACION = [\n        { codigo: this.DOCUMENTO_ANEXO, nombre: this.DOCUMENTO_ANEXO_DES },\n        { codigo: this.DOCUMENTO_CONTROL, nombre: this.DOCUMENTO_CONTROL_DES },\n        { codigo: this.ACTO_ADMINISTRATIVO, nombre: this.ACTO_ADMINISTRATIVO_DES }\n    ]\n\n    LISTATIPODOCUMENTO_TIPONOVEDAD = [\n        { codigo: this.DOCUMENTO_ANEXO, nombre: this.DOCUMENTO_ANEXO_DES },\n        { codigo: this.DOCUMENTO_CONTROL, nombre: this.DOCUMENTO_CONTROL_DES }\n    ]\n\n    LISTATIPODOCUMENTO = [\n        { codigo: this.DOCUMENTO_ANEXO, nombre: this.DOCUMENTO_ANEXO_DES },\n        { codigo: this.DOCUMENTO_CONTROL, nombre: this.DOCUMENTO_CONTROL_DES }\n    ]\n\n    VIGENTE = \"V\";\n    NO_VIGENTE = \"N\";\n\n    VIGENTE_DES = \"Vigente\";\n    NO_VIGENTE_DES = \"No Vigente\";\n\n\n    LISTAESTADO = [\n        { codigo: this.VIGENTE, nombre: this.VIGENTE_DES },\n        { codigo: this.NO_VIGENTE, nombre: this.NO_VIGENTE_DES }\n    ]\n\n    SOLICITADO = \"S\";\n    CERRADO = \"C\";\n    ELIMINADO = \"E\";\n    ANULADO = \"A\";\n\n    SOLICITADO_DES = \"SOLICITADO\";\n    CERRADO_DES = \"CERRADO\";\n    ELIMINADO_DES = \"ELIMINADO\";\n    ANULADO_DES = \"ANULADO\";\n\n    LISTAESTADOACTO = [\n        { codigo: this.SOLICITADO, nombre: this.SOLICITADO_DES },\n        { codigo: this.CERRADO, nombre: this.CERRADO_DES },\n        { codigo: this.ELIMINADO, nombre: this.ELIMINADO_DES },\n        { codigo: this.ANULADO, nombre: this.ANULADO_DES }\n    ]\n\n    PARAMETROS_CONTRATACION_TAREA = \"C\";\n    TIPO_NOVEDAD_TAREA = \"N\";\n    TIPO_AUSENCIA_TAREA = \"A\";\n    TIPO_SOLICITUD_TAREA = \"S\";\n\n    CONTRATACION = \"CONT\";\n    PROCESOSELECCION = \"PRSE\";\n\n\n    AMBAS = \"A\";\n    EMPALME = \"E\";\n    NORMAL = \"N\";\n\n    AMBAS_DES = \"Ambas\";\n    EMPALME_DES = \"Empalme\";\n    NORMAL_DES = \"Normal\";\n\n    MAPATIPOCONTRATACION = [\n        { codigo: this.EMPALME, nombre: this.EMPALME_DES },\n        { codigo: this.NORMAL, nombre: this.NORMAL_DES },\n        { codigo: this.AMBAS, nombre: this.AMBAS_DES },\n    ]\n\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listaTipoDocumento') { this.LISTATIPODOCUMENTO_TIPONOVEDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaEstado') { this.LISTAESTADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaTipoMomentoDocumento') { this.LISTATIPOMOMENTODOCUMENTO_CONTRATACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaMapaTipoContratacion') { this.MAPATIPOCONTRATACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaEstadoActo') { this.LISTAESTADOACTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaClasepuesto') { this.LISTACLASEPUESTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n        \n        return result;\n    }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ParametrosPipe } from '../../../../../../shared/pipes/parametros.pipe';\nimport { cargarmapasGlobal } from '../../../../../../shared/servicios/cargar-mapas.service';\nimport { GeneralModel, ToastService, UtilsService, CargarControlFuncionalidadService, AuthService } from 'general-library-union';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { ConfirmationService } from 'primeng/api';\nimport { HojaVidaPipe } from '../../../../../../shared/pipes/hojavida.pipe';\nimport { TipoDocumentoModel } from '../../../../../hojavida/models/TipoDocumentoModel';\nimport { ListaConstantesPipe } from '../../../../../../shared/pipes/listaConstantes.pipe';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { CargarArchivosService } from '../../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../../shared/servicios/encriptado-basico.service';\nimport { RequisitoHojaModel } from '../../../../../talento/models/RequisitoHojaModel';\nimport { MomentoDocumentoModel } from '../../../../../talento/models/MomentoDocumentoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-momento-documento',\n    templateUrl: './popup-momento-documento.component.html',\n    styleUrls: ['./popup-momento-documento.component.scss'],\n    standalone: true,\n    imports: [DialogModule, DropdownModule, FormsModule, NgIf, CalendarModule, InputTextModule, FileUploadModule, ButtonDirective, Ripple, ConfirmPopupModule, TranslateModule]\n})\nexport class PopupMomentoDocumentoComponent implements OnInit {\n\n  @Output() public regresar = new EventEmitter();\n  @Input() public llaveTipoDocumento: string;\n  @Input() public unionDTO: any;\n  @Input() public nuevo: boolean;\n  @Input() public momentoDocumento: MomentoDocumentoModel\n  @Input() public mostrarPopup: boolean;\n\n\n  public requisitoHoja: RequisitoHojaModel;\n  public tipoDocumento: TipoDocumentoModel;\n  public actividadEncuenta: boolean;\n  public existeArchivo: boolean = true;\n  public paqueteServidor: string;\n  public listaDocumento = [];\n  public listaCumplido = [];\n  public archivoSeleccionado: File;\n  public nombreArchivo: string = '';\n\n  constructor(\n    private generalService: GeneralService,\n    private cargarSelectItem: cargarmapasGlobal,\n    private hojaVidaPipe: HojaVidaPipe,\n    private listaConstantesPipe: ListaConstantesPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private notificacionesService: ToastService,\n    private cargarArchivoService: CargarArchivosService,\n    public utilsService: UtilsService,\n    private parametrosPipe: ParametrosPipe,\n    private confirmationService: ConfirmationService,\n    private encriptadoBasicoService: EncriptadoBasicoService,\n    private authService: AuthService,\n  ) { }\n\n  ngOnInit(): void {\n    this.actividadEncuenta = false;\n    this.requisitoHoja = new RequisitoHojaModel();\n    this.tipoDocumento = new TipoDocumentoModel();\n    if (this.nuevo) {\n      this.inicializar();\n    } else {\n      this.cargarDocumento();\n    }\n    this.cargarListas();\n  }\n\n  async inicializar() {\n    try {\n      this.requisitoHoja = new RequisitoHojaModel();\n      this.requisitoHoja.actoAdministrativo = this.unionDTO.llaveTabla;\n      this.requisitoHoja.tipoDocumento = this.llaveTipoDocumento;\n      this.requisitoHoja.cumplido = this.requisitoHoja.cumplido ? new Date(this.requisitoHoja.cumplido) : null;\n      this.requisitoHoja.vigencia = this.requisitoHoja.vigencia ? new Date(this.requisitoHoja.vigencia) : null;\n      let consultaTipoDocumento = new TipoDocumentoModel();\n      consultaTipoDocumento.documento = this.requisitoHoja.tipoDocumento;\n      this.tipoDocumento = await this.generalService.queryForObject(new GeneralModel('TipoDocumentoDTO', null, false, consultaTipoDocumento)).toPromise();\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n  async cargarDocumento() {\n    try {\n      if (this.unionDTO.llaveTabla != null) {\n        let consultaRequisitoHoja = new RequisitoHojaModel();\n        consultaRequisitoHoja.tipoDocumento = this.momentoDocumento.tipoDocumento;\n        consultaRequisitoHoja.actoAdministrativo = this.unionDTO.llaveTabla;\n        this.requisitoHoja = await this.generalService.queryForObject(new GeneralModel('RequisitoHojaDTO', null, false, consultaRequisitoHoja)).toPromise(); if (this.requisitoHoja != null) {\n          this.requisitoHoja.cumplido = this.requisitoHoja.cumplido ? new Date(this.requisitoHoja.cumplido) : null;\n          this.requisitoHoja.vigencia = this.requisitoHoja.vigencia ? new Date(this.requisitoHoja.vigencia) : null;\n          let consultaTipoDocumento = new TipoDocumentoModel();\n          consultaTipoDocumento.documento = this.requisitoHoja.tipoDocumento;\n          this.tipoDocumento = await this.generalService.queryForObject(new GeneralModel('TipoDocumentoDTO', null, false, consultaTipoDocumento)).toPromise();\n          this.nombreArchivo = this.requisitoHoja.archivo;\n        }\n      }\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n  regresarVista() {\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n  async cargarListas() {\n    this.listaDocumento = await this.cargarSelectItem.cargarSelectItemString('documento', 'descripcion', new GeneralModel('TipoDocumentoDTO', null, false, { origen: this.hojaVidaPipe.TIO_CONTRATACION }));\n    this.listaCumplido = this.listaConstantesPipe.CUMPLIDO_REQ_SIMPLE;\n  }\n\n\n  cargarArchivo(data: any, fubauto) {\n    this.paqueteServidor = Constantes.ESPACIO_NULO;\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n    this.paqueteServidor = this.archivoSeleccionado.name;\n    this.requisitoHoja.archivo = this.archivoSeleccionado.name;\n    this.nombreArchivo = this.requisitoHoja.archivo;\n    fubauto.clear();\n    this.existeArchivo = false;\n    if (this.requisitoHoja.llave != null) {\n      this.existeArchivo = true;\n    }\n\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n  }\n\n  cargarAnexo() {\n    if (this.archivoSeleccionado) {\n      let extensionArchivo: string = this.archivoSeleccionado.name.split('?')[0].split(Constantes.PUNTO).pop();\n      let propiedad = 'ruta_anexosHojaVida'\n      let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n      this.archivoSeleccionado = new File([this.archivoSeleccionado], this.requisitoHoja.llave + Constantes.PUNTO + extensionArchivo);\n      if (this.existeArchivo) {\n        this.cargarArchivoService.eliminarArchivo(this.encriptadoBasicoService.encriptar(this.requisitoHoja.llave + Constantes.PUNTO + extensionArchivo), propiedad, codigoAplicacion).subscribe(blob => { });\n      }\n      this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe(blob => { });\n    }\n  }\n\n  validarCamposObligatorios() {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.requisitoHoja.estado);\n    return validador;\n  }\n\n  guardarRegistro() {\n    this.requisitoHoja.contrato = 0;\n    this.requisitoHoja.vigencia = this.requisitoHoja.vigencia ? new Date(this.requisitoHoja.vigencia) : null\n    if (this.parametrosPipe.DOCUMENTO_ANEXO == this.tipoDocumento.tipoDocumento) {\n      if (this.paqueteServidor != Constantes.ESPACIO_NULO) {\n        this.requisitoHoja.anexo = 'S';\n        this.requisitoHoja.estado = this.listaConstantesPipe.CUMPLIDO;\n        this.requisitoHoja.cumplido = new Date();\n      }\n    } else if (!this.validarCamposObligatorios()) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      return null;\n    }\n    if (!this.requisitoHoja.archivo && this.tipoDocumento.tipoDocumento == 'I') {\n      this.notificacionesService.showError('Debe subir el archivo antes de guardar');\n      return;\n    }\n\n    if (this.nuevo) {\n      this.requisitoHoja.llave = this.utilsService.generarLlave()\n      this.generalService.crearRegistro(new GeneralModel('RequisitoHojaDTO', null, false, this.requisitoHoja)).subscribe({\n        next: (data) => {\n          if (data != null) {\n            this.notificacionesService.showSuccess('Se cargó el registro exitosamente');\n            this.nuevo = false;\n            this.regresarVista();\n          } else {\n            this.notificacionesService.showError('Error en el método de agregar recurso');\n          }\n        },\n        error: (err) => {\n          var data = JSON.stringify(err.error.mensajeEtiqueta);\n          this.notificacionesService.showError('Error al ingresar en el servicio');\n        },\n      });\n    } else {\n      this.generalService.update(new GeneralModel('RequisitoHojaDTO', null, false, this.requisitoHoja)).subscribe((data) => {\n        if (data == 1) {\n          this.notificacionesService.showSuccess('Se actualizó el registro exitosamente');\n          this.regresarVista();\n        } else {\n          this.notificacionesService.showError('Error en el método de actualizar recurso');\n        };\n      });\n    }\n    this.cargarAnexo();\n  }\n\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarRegistro() {\n    if (this.requisitoHoja.archivo) {\n      let extensionArchivo: string = this.requisitoHoja.archivo.split('?')[0].split(Constantes.PUNTO).pop();\n      let propiedad = 'ruta_anexosHojaVida'\n      let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n      this.cargarArchivoService.eliminarArchivo(this.encriptadoBasicoService.encriptar(this.requisitoHoja.llave + Constantes.PUNTO + extensionArchivo), propiedad, codigoAplicacion).subscribe(blob => { });\n    }\n    let objeto: GeneralModel = new GeneralModel('RequisitoHojaDTO', null, false, this.requisitoHoja);\n    this.generalService.delete(objeto).subscribe(data => {\n      let result: number = data;\n      if (result == 1) {\n        this.notificacionesService.showSuccess('Se eliminó el registro exitosamente');\n        this.regresarVista();\n      } else {\n        this.notificacionesService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n    });\n  }\n\n}\n","<p-dialog header=\"{{'archivo' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '45vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"field col-12 md:col-12 lg:col-12\">\n        <div class=\"Inputgroup\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <!-- DOCUMENTO-->\n                <div class=\"field col-12 md:col-4 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"tipoDocumento\" [options]=\"listaDocumento\" optionValue=\"key\" optionLabel=\"label\"\n                            [(ngModel)]=\"requisitoHoja.tipoDocumento\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                            [readonly]=\"true\"></p-dropdown>\n                        <label htmlFor=\"tipoDocumento\">{{'documento' | translate}} *</label>\n                    </span>\n                </div>\n                <!-- ESTADO -->\n                <div class=\"field col-12 md:col-3 lg:col-6\" *ngIf=\"tipoDocumento.tipoDocumento == 'C'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"estado\" [options]=\"listaCumplido\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                            [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requisitoHoja.estado)\"\n                            [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requisitoHoja.estado)\"\n                            [(ngModel)]=\"requisitoHoja.estado\" [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n                        <label htmlFor=\"estado\">{{'estado' | translate}} *</label>\n                    </span>\n                </div>\n                <!-- CUMPLIDO -->\n                <div class=\"field col-12 md:col-3 lg:col-6\" *ngIf=\"tipoDocumento.tipoDocumento == 'C'\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"requisitoHoja.cumplido\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n                            [showIcon]=\"true\"></p-calendar>\n                        <label htmlFor=\"cumplido\">{{'cumplido' | translate}}</label>\n                    </span>\n                </div>\n                <!-- VIGENCIA -->\n                <div class=\"field col-12 md:col-3 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"requisitoHoja.vigencia\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n                            [showIcon]=\"true\"></p-calendar>\n                        <label htmlFor=\"vigencia\">{{'vigencia' | translate}}</label>\n                    </span>\n                </div>\n                <!-- ADJUNTAR ARCHIVO-->\n                <div class=\"field col-12 md:col-3 lg:col-6\" *ngIf=\"tipoDocumento.tipoDocumento == 'I'\">\n                    <div class=\"p-inputgroup\">\n                        <span class=\"p-float-label\">\n                            <input pInputText #inputText id=\"id_nombrearchivo\" type=\"text\" [(ngModel)]=\"nombreArchivo\"\n                                [disabled]=\"true\" autofocus>\n                            <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\"\n                                accept=\".pdf,.PDF,.png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.txt,.TXT.xml,.XML\"\n                                chooseIcon=\"pi pi-paperclip\" (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n                            <label htmlFor=\"nombrearchivo\">{{'nombrearchivo' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n                <!-- OBSERVACIÓN -->\n                <div class=\"field col-12 md:col-12 lg:col-12\">\n                    <span class=\"p-float-label\">\n                        <textarea pInputText id=\"observacion\" [(ngModel)]=\"requisitoHoja.observacion\" maxlength=\"2000\"\n                            class=\"w-full min-h-100 max-h-250\"> </textarea>\n                        <label class=\"\" htmlFor=\"mensaje\">{{'observacion' | translate}}</label>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n            label=\"{{'link_actualizar' | translate}}\"\n            *ngIf=\"!nuevo && controlFuncionalidad.getControlFuncionalidad('ingnov:guardar') && !actividadEncuenta\"\n            (click)=\"guardarRegistro()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n            label=\"{{'link_eliminar' | translate}}\"\n            *ngIf=\"!nuevo && controlFuncionalidad.getControlFuncionalidad('ingnov:guardar') && !actividadEncuenta\"\n            (click)=\"showEliminarConfirmDialog()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            label=\"{{'link_guardar' | translate}}\"\n            *ngIf=\"nuevo && controlFuncionalidad.getControlFuncionalidad('ingnov:guardar') && !actividadEncuenta\"\n            (click)=\"guardarRegistro()\"></button>\n    </div>\n</p-dialog>\n<p-confirmPopup></p-confirmPopup>","import { Component, Input, OnInit } from '@angular/core';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel } from 'general-library-union';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AusenciaModel } from '../../../models/AusenciaModel';\nimport { AusenciaNovedadModel } from '../../../models/AusenciaNovedadModel';\nimport { AusentismoPipe } from '../../../pipes/ausentismo.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\n\n@Component({\n    selector: 'app-licencia-ausencia-solicitud',\n    templateUrl: './licencia-ausencia-solicitud.component.html',\n    styleUrls: ['./licencia-ausencia-solicitud.component.scss'],\n    standalone: true\n})\nexport class LicenciaAusenciaSolicitudComponent implements OnInit {\n\n  @Input() public empleado: EmpleadoModel;\n  public listahistorico: AusenciaModel[] = []\n  public listaPasivo: AusenciaNovedadModel[] = [];\n  public listaProgramadas: AusenciaNovedadModel[] = [];\n  public pasivos: boolean;\n  public soyYo: boolean;\n  public diasliquidadosProgramados: boolean;\n  public horaAusenciaProgramados: boolean;\n  public diasliquidadosHistorico: boolean;\n  public horasAusenciaHistorico: boolean;\n  public listaComandos: Map<string, boolean>;\n  public mapaOrigenPasivo;\n  public llaveLicencia: string;\n  public verMantenimientoPasivoLicencias: boolean;\n  public verMantenimientoSolicitudLicencias: boolean;\n  public verMantenimientoHistorico: boolean;\n  public listaCodigoAusencia: number[] = null;\n  public unicoRegistro: boolean = false;\n\n  constructor(public generalService: GeneralService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              public ausentismoPipe: AusentismoPipe,\n              public authService: AuthService,\n              public translateService: TranslateService){}\n\n  ngOnInit(): void {\n    this.mapaOrigenPasivo = this.ausentismoPipe.ORIGENPASIVO;\n    if (this.empleado.contrato != null) {\n      this.traerdatos();\n  }\n    this.controlPermisos();\n  }\n\n  async validarPasivo(){\n    var lista = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, {origen: this.ausentismoPipe.LICENCIA, pasivo: 'S'})).toPromise();\n    if(lista == null || lista.length ==0 ){\n        this.pasivos=false;\n    }else{\n        this.pasivos=true;\n    }\n  }\n\n  async traerListadoAusenciaNovedad(tipoRegistro: string, origen: string, login: string, aliasRol: string) {\n    var codigoAusencia: number = null;\n    if ( this.listaCodigoAusencia != null && this.listaCodigoAusencia.length==1 ) {\n      codigoAusencia = this.listaCodigoAusencia[0];\n    }\n\n    var ausenciaNovedadDTO = new AusenciaNovedadModel();\n    ausenciaNovedadDTO.tipoRegistro = tipoRegistro\n    ausenciaNovedadDTO.empresa = this.empleado.empresa\n    ausenciaNovedadDTO.contrato = this.empleado.contrato\n    ausenciaNovedadDTO.origen = origen\n    ausenciaNovedadDTO.codigoTipoAusencia = codigoAusencia\n    ausenciaNovedadDTO.aliasRol = aliasRol\n    ausenciaNovedadDTO.loginUsuario = login\n    ausenciaNovedadDTO.estado = \"pasivo\"\n    \n    var lista: AusenciaNovedadModel[] = await this.generalService.queryForList(new GeneralModel('AusenciaNovedadDTO', null, false, ausenciaNovedadDTO)).toPromise();\n\n    if ( lista.length==0 || codigoAusencia != null || this.listaCodigoAusencia == null || this.listaCodigoAusencia.length == 0) {\n      return lista;\n    }\n    var listaResultado: AusenciaNovedadModel[] = [];\n    for (let i = 0; i < lista.length; i++) {\n      var unaAusencia = lista[i]\n      for (let j = 0; j < this.listaCodigoAusencia.length; j++) {\n        var unCodigo = this.listaCodigoAusencia[j]  \n        if ( unCodigo == unaAusencia.codigoTipoAusencia) {\n          listaResultado.push(unaAusencia);\n          break;\n        }\n      }\n    }\n    return listaResultado;\n  }\n\n  async traerListadoAusenciaNovedadProgramadas(tipoRegistro: string, origen: string, login: string, aliasRol: string) {\n    var codigoAusencia: number = null;\n    if ( this.listaCodigoAusencia != null && this.listaCodigoAusencia.length==1 ) {\n      codigoAusencia = this.listaCodigoAusencia[0];\n    }\n\n    var ausenciaNovedadDTO = new AusenciaNovedadModel();\n    ausenciaNovedadDTO.tipoRegistro = tipoRegistro\n    ausenciaNovedadDTO.empresa = this.empleado.empresa\n    ausenciaNovedadDTO.contrato = this.empleado.contrato\n    ausenciaNovedadDTO.origen = origen\n    ausenciaNovedadDTO.comodinBuscarEstado = 'P';\n    ausenciaNovedadDTO.codigoTipoAusencia = codigoAusencia\n    ausenciaNovedadDTO.aliasRol = aliasRol\n    ausenciaNovedadDTO.loginUsuario = login\n    \n    var lista: AusenciaNovedadModel[] = await this.generalService.queryForList(new GeneralModel('AusenciaNovedadDTO', null, false, ausenciaNovedadDTO)).toPromise();\n\n    if ( lista.length==0 || codigoAusencia != null || this.listaCodigoAusencia == null || this.listaCodigoAusencia.length == 0) {\n      return lista;\n    }\n    var listaResultado: AusenciaNovedadModel[] = [];\n    for (let i = 0; i < lista.length; i++) {\n      var unaAusencia = lista[i]\n      for (let j = 0; j < this.listaCodigoAusencia.length; j++) {\n        var unCodigo = this.listaCodigoAusencia[j]  \n        if ( unCodigo == unaAusencia.codigoTipoAusencia) {\n          listaResultado.push(unaAusencia);\n          break;\n        }\n      }\n    }\n    return listaResultado;\n  }\n\n  async consultarListas(){\n    await this.validarPasivo();\n    this.listahistorico = [];\n    this.listaPasivo = [];\n    this.listaProgramadas = [];\n    \n    if ( this.controlFuncionService.getControlFuncionalidad(\"lichis:portipo\")) {\n      this.listahistorico = await this.traerListadoHistoricoAusencia(this.authService.getTokenKey('usuario'), this.authService.getTokenKey('aliasRol'));\n    }\n    else {\n      this.listahistorico = await this.traerListadoHistoricoAusencia(null, null);\n    }\n    this.listaPasivo = await this.traerListadoAusenciaNovedad(\"PA\", this.ausentismoPipe.LICENCIA, this.authService.getTokenKey('usuario'), this.authService.getTokenKey('aliasRol'));\n    this.listaProgramadas = await this.traerListadoAusenciaNovedadProgramadas(\"PR\", this.ausentismoPipe.LICENCIA, this.authService.getTokenKey('usuario'), this.authService.getTokenKey('aliasRol'));\n  }\n\n  async traerListadoHistoricoAusencia(login: string, aliasRol: string){\n    var codigoAusencia: number = null;\n\t\tif ( this.listaCodigoAusencia != null && this.listaCodigoAusencia.length==1 ) {\n      codigoAusencia = this.listaCodigoAusencia[0];\n    }\n    var ausentismoDTO: AusenciaModel = new AusenciaModel();\n    ausentismoDTO.contrato = this.empleado.contrato\n    ausentismoDTO.empresa = this.empleado.empresa\n    ausentismoDTO.origenAusencia = this.ausentismoPipe.LICENCIA\n    ausentismoDTO.codigoAusencia = codigoAusencia;\n    \n    ausentismoDTO.aliasRol = aliasRol;\n    ausentismoDTO.loginUsuario = login;\n    \n    var lista = await this.generalService.queryForList(new GeneralModel('AusenciaDTO', null, false, ausentismoDTO)).toPromise();\n    if ( lista.length==0 || codigoAusencia != null || this.listaCodigoAusencia == null || this.listaCodigoAusencia.length == 0) {\n      return lista;\n    }\n    var listaResultado: AusenciaModel[] = [];\n    for (let i = 0; i < lista.length; i++) {\n      var unaAusencia = lista[i]\n      for (let j = 0; j < this.listaCodigoAusencia.length; j++) {\n        var unCodigo = this.listaCodigoAusencia[j]\n        if ( unCodigo == unaAusencia.codigoAusencia) {\n          listaResultado.push(unaAusencia);\n          break;\n        }\n      }\n\t\t}\n    return listaResultado;\n  }\n\n  \n\n  async traerdatos() {\n\t\tawait this.consultarListas();\n\t\tthis.mostrarListadoSolicitudes();\n\t\tif ( this.unicoRegistro && this.listaCodigoAusencia != null && this.listaCodigoAusencia.length==1) {\n\t\t\tif (this.listaProgramadas.length == 1) {\n\t\t\t\t/*AusenciaNovedadDTO ausencia = listaProgramadas.get(0);\n\t            getBean(DetalleLicenciaAusenciaBean.class).buscar(AusentismoCons.ORIGEN_EMPLEADO_LICENCIA, AusentismoCons.FORM_EMPLEADO_LICENCIA, ausencia, empleado, unicoRegistro);\n\t            verMantenimientoSolicitud();*/\n\t            return;\n\t\t\t}\n\t\t\tif (this.listaProgramadas.length == 0) {\n\t\t\t\t//licencia();\n\t\t\t}\n\t\t\t\n\t\t}\n  }\n\n  controlPermisos(){\n\n  }\n\n  verMantenimientoPasivo(){\n\t\tthis.verMantenimientoPasivoLicencias = true;\n\t\tthis.verMantenimientoSolicitudLicencias = false;\n\t}\n\t\n\tverMantenimientoSolicitud(){\n\t\tthis.verMantenimientoPasivoLicencias = false;\n\t\tthis.verMantenimientoSolicitudLicencias = true;\n\t}\n\t\n\tmostrarListadoSolicitudes(){\n\t\tthis.verMantenimientoPasivoLicencias = false;\n\t\tthis.verMantenimientoSolicitudLicencias = false;\n\t\tthis.verMantenimientoHistorico = false;\n\t}\n}\n","<p>licencia-ausencia-solicitud works!</p>\n","import { UnionModel } from 'general-library-union'\nimport { RequisitoHojaModel } from './RequisitoHojaModel';\n\nexport class MomentoDocumentoModel extends UnionModel {\n\n\t\n\tmomento: string;\n\tcodigoMomento: string;\n\ttipo: string;\n\ttipoDocumento: string;\n\tnombreTipoDocumento: string;\n\topcional: string;\n\tformato: number;\n\tnombreFormato: string;\n\tvinculacion: number;\n\tnombreVinculacion: string;\n\tempresa: number;\n\tnombreEmpresa: string;\n\tcargo: string;\n\tnombreCargo: string;\n\tnivelCargo: string;\n\tnombreNivelCargo: string;\n\torganizacion: number;\n\torden: number;\n\tubicacion: string;\n\tnombreUbicacionGeo: string;\n\tsexo: string;\n\tmesesvigente: number;\n\testado: string;\n\tlegalUnico: string;\n\tproceso: string;\n\ttipoBeneficio: string;\n\truta: string;\n\tllaveArchivo: string;\n\ttipoDocumentoTipo: string;\n\trequisitoHojaDTO: RequisitoHojaModel;\n\tmensaje: string;\n\ttipoContratacion: string;\n\tprocesoFiltro: string;\n\t\n}","import { UnionModel } from 'general-library-union'\n\n\nexport class EmpresaModel extends UnionModel{\n\n\t\n\tempresa: number;\n\tnit: number;\n\tdigito: number;\n\torganizacion: number;\n\tprimeraQuincena: number;\n\tsegundaQuincena: number;\n\tdiaPagoMes: number;\n\tdiaPagoAnticipo: number;\n\tnombre: string;\n\tdominio: string;\n\ttelefono: string;\n\tnombrePais: string;\n\tdireccion: string;\n\tpais: string;\n\tmodoHojavida: string;\n\tdescripcionModoHojaVida: string;\n\tmodoCompensacion: string;\n\tdescripcionModoCompensacion: string;\n\tdiaFestivo: string;\n\talterno: string;\n\ttipoDocumento: string;\n\tzona: string;\n\tmail: string;\n\tcodigoActividad: string;\n\tactividadEconomica: string;\n\tobjeto: string;\n\tobjeto2: string;\n\tnominaQuincenal: string;\n\tnominaMensual: string;\n\tmanejoDiaPago: string;\n\tdiaHabilPago: string;\n\tsabadoHabil: string;\n\tenvioComprobante: string;\n\tsucursalges: string;\n\thabilitado: string;\n\tllaveSeguridad: string;\n}","export const ImagenesCons = {\n\n\t  excel:\"icon_xls.png\",\n\t  word:\"icon_doc.png\",\n\t  jpg:\"icon_jpg.png\",\n\t  html:\"icon_html.png\",\n\t  pdf:\"icon_pdf.png\",\n\t  jasper:\"icon_jasper.png\",\n\t  documento:\"icon_noaplica.png\",\n\n\n\t  folderlock : \"glyphicons glyphicons-folder-lock\",\n\t  flowchart : \"glyphicons glyphicons-flowchart\",\n\t  activity : \"glyphicons glyphicons-activity\",\n\t  sharealt : \"glyphicons glyphicons-share-alt\",\n\t  warning : \"glyphicons glyphicons-warning-sign\",\n\t  engineering_networks : \"glyphicons glyphicons-engineering-networks\",\n\t  direction : \"halflings-direction\",\n\t  modal_window : \"glyphicons glyphicons-modal-window\",\n\t  roundabout : \"glyphicons glyphicons-roundabout\",\n\t  random : \"glyphicons glyphicons-random\",\n\t  scale_classic : \"glyphicons glyphicons-scale-classic\",\n\t  industrial_zone : \"glyphicons glyphicons-industrial-zone\",\n\t  rotate_left : \"glyphicons glyphicons-rotate-left\",\n\t  note : \"glyphicons glyphicons-note\",\n\t  sunbath : \"glyphicons glyphicons-sunbath\",\n\t  keyboard_wired : \"glyphicons glyphicons-keyboard-wired\",\n\t  alarm : \"glyphicons glyphicons-alarm\",\n\t  cadastral_map : \"glyphicons glyphicons-cadastral-map\",\n\t  us_rat_restricted : \"glyphicons glyphicons-us-rat-restricted\",\n\t  nameplate : \"glyphicons glyphicons-nameplate\",\n\t  qrcode : \"glyphicons glyphicons-qrcode\",\n\t  server : \"glyphicons glyphicons-server\",\n\t  wallet : \"glyphicons glyphicons-wallet\",\n\t  book_open : \"glyphicons glyphicons-book-open\",\n\t  packages : \"glyphicons glyphicons-package\",\n\t  parents : \"glyphicons glyphicons-parents\",\n\t  group_chat : \"glyphicons glyphicons-group-chat\",\n\t  user_conversation : \"glyphicons glyphicons-user-conversation\",\n\t  one_day : \"glyphicons glyphicons-one-day\",\n\t  remove_sign : \"glyphicons glyphicons-remove-sign\",\n\t  notes : \"glyphicons glyphicons-notes\",\n\t  sort : \"glyphicons glyphicons-sort\",\n\t  target : \"glyphicons glyphicons-target\",\n\t  file_import : \"glyphicons glyphicons-file-import\",\n\t  file_cloud_download : \"glyphicons glyphicons-file-cloud-download\",\n\t  object_align_horizontal : \"glyphicons glyphicons-object-align-horizontal\",\n\t  more_items : \"glyphicons glyphicons-more-items\",\n\t  stats : \"glyphicons glyphicons-stats\",\n\t  cargo : \"glyphicons glyphicons-cargo\",\n\t  pen : \"glyphicons glyphicons-pen\",\n\t  vcard : \"glyphicons glyphicons-vcard\",\n\t  user_remove : \"glyphicons glyphicons-user-remove\",\n\t  door : \"glyphicons glyphicons-door\",\n\t  invoice : \"glyphicons glyphicons-invoice\",\n\t  voice : \"glyphicons glyphicons-voice\",\n\t  voicemail : \"glyphicons glyphicons-voicemail\",\n\t  more_windows : \"glyphicons glyphicons-more-windows\",\n\t  coins : \"glyphicons glyphicons-coins\",\n\t  transfer : \"glyphicons glyphicons-transfer\",\n\t  inbox_in : \"glyphicons glyphicons-inbox-in\",\n\t  refresh : \"glyphicons glyphicons-refresh\",\n\t  article : \"glyphicons glyphicons-article\",\n\t  duplicate : \"glyphicons glyphicons-duplicate\",\n\t  plus_sign : \"glyphicons glyphicons-plus-sign\",\n\t  nameplate_alt : \"glyphicons glyphicons-nameplate-alt\",\n\t  quote : \"glyphicons glyphicons-quote\",\n\t  message_out : \"glyphicons glyphicons-message-out\",\n\t  globe_af : \"glyphicons glyphicons-globe-af\",\n\t  sort_by_alphabet : \"glyphicons glyphicons-sort-by-alphabet\",\n\t  building:\"glyphicons glyphicons-building\",\n\t  mixed_buildings : \"glyphicons glyphicons-mixed-buildings\",\n\t  conversation : \"glyphicons glyphicons-conversation\",\n\t  message_new :\"glyphicons glyphicons-message-new\",\n\t  fingerprint : \"glyphicons glyphicons-fingerprint\",\n\t  watch : \"glyphicons glyphicons-watch\",\n\t  file_plus : \"glyphicons glyphicons-file-plus\",\n\t  send_to_back : \"glyphicons glyphicons-send-to-back\",\n\t  address_book : \"glyphicons glyphicons-address-book\",\n\t  clone : \"clone\",\n\t  database_ban : \"glyphicons glyphicons-database-ban\",\n\t  cup : \"glyphicons glyphicons-cup\",\n\t  comments : \"glyphicons glyphicons-comments\",\n\t  cube_empty : \"glyphicons glyphicons-cube-empty\",\n\t  erase : \"glyphicons glyphicons-erase\",\n\t  link : \"glyphicons glyphicons-link\",\n\t  bank : \"glyphicons glyphicons-bank\",\n\t  map : \"glyphicons glyphicons-map\",\n\t  home : \"glyphicons glyphicons-home\",\n\t  vector_path_square : \"glyphicons glyphicons-vector-path-square\",\n\t  git_private : \"glyphicons glyphicons-git-private\",\n\t  hourglass : \"glyphicons glyphicons-hourglass\",\n\t  calendar_plus_o : \"glyphicons glyphicons-calendar\",\n\t  lightbulb : \"glyphicons glyphicons-lightbulb\",\n\t  keyboard_wireless : \"glyphicons glyphicons-keyboard-wireless\",\n\t  blackboard : \"glyphicons glyphicons-blackboard\",\n\t  car_wheel : \"glyphicons glyphicons-car-wheel\",\n\t  vector_path_line : \"glyphicons glyphicons-vector-path-line\",\n\t  shield : \"glyphicons glyphicons-shield\",\n\t  folder_flag : \"glyphicons glyphicons-folder-flag\",\n\t  mouse_middle_click : \"glyphicons glyphicons-mouse-middle-click\",\n\t  compass : \"glyphicons glyphicons-compass\",\n\t  sort_by_attributes : \"glyphicons glyphicons-sort-by-attributes\",\n\t  crop : \"glyphicons glyphicons-crop\",\n\t  magic : \"glyphicons glyphicons-magic\",\n\t  newspaper : \"glyphicons glyphicons-newspaper\",\n\t  pie_chart : \"glyphicons glyphicons-pie-chart\",\n\t  puzzle : \"glyphicons glyphicons-puzzle\",\n\t  reflect_x : \"glyphicons glyphicons-reflect-x\",\n\t  object_align_top : \"glyphicons glyphicons-object-align-top\",\n\t  user_flag : \"glyphicons glyphicons-user-flag\",\n\t  resize_full : \"glyphicons glyphicons-resize-full\",\n\t  smoking : \"glyphicons glyphicons-smoking\",\n\t  bookmark : \"glyphicons glyphicons-bookmark\",\n\t  vector_path_curve : \"glyphicons glyphicons-vector-path-curve\",\n\t  object_align_vertical : \"glyphicons glyphicons-object-align-vertical\",\n\t  ear_plugs : \"glyphicons glyphicons-ear-plugs\",\n\t  underground : \"glyphicons glyphicons-underground\",\n\t  directions : \"glyphicons glyphicons-directions\",\n\t  pencil : \"glyphicons glyphicons-pencil\",\n\t  adjust : \"glyphicons glyphicons-adjust\",\n\t  list_alt : \"glyphicons glyphicons-list-alt\",\n\t  life_preserver : \"glyphicons glyphicons-life-preserver\",\n\t  power : \"glyphicons glyphicons-power\",\n\t  left_indent : \"glyphicons glyphicons-left-indent\",\n\t  ruler : \"glyphicons glyphicons-ruler\",\n\t  tree_structure : \"glyphicons glyphicons-tree-structure\",\n\t  resize_small : \"glyphicons glyphicons-resize-small\",\n\t  star : \"glyphicons glyphicons-star\",\n\t  file : \"glyphicons glyphicons-file\",\n\t  copy : \"glyphicons glyphicons-copy\",\n\t  bucket : \"glyphicons glyphicons-bucket\",\n\t  database : \"glyphicons glyphicons-database\",\n\t  calculator : \"glyphicons glyphicons-calculator\",\n\t  object_align_left : \"glyphicons glyphicons-object-align-left\",\n\t  briefcase : \"glyphicons glyphicons-briefcase\",\n\t  user : \"glyphicons glyphicons-user\",\n\t  user_asterisk : \"glyphicons glyphicons-user-asterisk\",\n\t  group : \"glyphicons glyphicons-group\",\n\t  list : \"glyphicons glyphicons-list\",\n\t  signal : \"glyphicons glyphicons-signal\",\n\t  paste : \"glyphicons glyphicons-paste\",\n\t  money : \"glyphicons glyphicons-money\",\n\t  folder_plus  : \"glyphicons glyphicons-folder-plus\",\n\t  businessman : \"glyphicons glyphicons-businessman\",\n\t  resize_horizontal : \"glyphicons glyphicons-resize-horizontal\",\n\t  old_man: \"glyphicons glyphicons-old-man\",\n\t  user_key : \"glyphicons glyphicons-user-key\",\n\t  clock : \"glyphicons glyphicons-clock\",\n\t  align_right : \"glyphicons glyphicons-align-right\",\n\t  list_numbered : \"glyphicons glyphicons-list-numbered\",\n\t  pen_to_square: \"pi pi-pen-to-square\"\t  ,\n\t  certificate : \"glyphicons glyphicons-certificate\",\n\t  multifunction_printer : \"glyphicons glyphicons-multifunction-printer\",\n\t  delete : \"glyphicons glyphicons-delete\",\n\t  check : \"glyphicons glyphicons-check\",\n\t  notes_2 : \"glyphicons glyphicons-notes-2\",\n\t  envelope : \"glyphicons glyphicons-envelope\",\n\t  show_big_thumbnails : \"glyphicons glyphicons-show-big-thumbnails\",\n\t  tag : \"glyphicons glyphicons-tag\",\n\t  tags : \"glyphicons glyphicons-tags\",\n\t  eye_open : \"glyphicons glyphicons-eye-open\",\n\t  undo : \"glyphicons glyphicons-undo\",\n\t  unchecked : \"glyphicons glyphicons-unchecked\",\n\t  filter_remove : \"glyphicons glyphicons-filter-remove\",\n\t  download_alt : \"glyphicons glyphicons-download-alt\",\n\t  log_book : \"glyphicons glyphicons-log-book\",\n\t  file_cloud : \"glyphicons glyphicons-file-cloud\",\n\t  exclamation_sign : \"glyphicons glyphicons-exclamation-sign\",\n\t  message_flag : \"glyphicons glyphicons-message-flag\",\n\t  pin_flag : \"glyphicons glyphicons-pin-flag\",\n\t  file_cloud_upload : \"glyphicons glyphicons-file-cloud-upload\",\n\t  globe : \"glyphicons glyphicons-globe\",\n\t  important_day : \"glyphicons glyphicons-important-day\",\n\t  text_bigger : \"glyphicons glyphicons-text-bigger\",\n\t  justify : \"glyphicons glyphicons-justify\",\n\t  paragraph : \"glyphicons glyphicons-paragraph\",\n\t  ok_sign : \"glyphicons glyphicons-ok-sign\",\n\t  user_ban : \"glyphicons glyphicons-user-ban\",\n\t  table : \"glyphicons glyphicons-table\",\n\t  calendar : \"glyphicons glyphicons-calendar\",\n\t  info_sign : \"glyphicons glyphicons-info-sign\",\n\t  laptop : \"glyphicons glyphicons-laptop\",\n\t  vr_headset : \"glyphicons glyphicons-vr-headset\",\n\t  file_export : \"glyphicons glyphicons-file-export\",\n\t  plane : \"glyphicons glyphicons-plane\",\n\t  paperclip : \"glyphicons glyphicons-paperclip\",\n\t  inbox_minus : \"glyphicons glyphicons-inbox-minus\",\n\t  street_lights : \"glyphicons glyphicons-street-lights\",\n\t  woman : \"glyphicons glyphicons-woman\",\n\t  keys : \"glyphicons glyphicons-keys\",\n\t  sun : \"glyphicons glyphicons-sun\",\n\t  show_thumbnails : \"glyphicons glyphicons-show-thumbnails\",\n\t  microphone : \"glyphicons glyphicons-microphone\",\n\t  git_commit : \"glyphicons glyphicons-git-commit\",\n\t  folder_open : \"glyphicons glyphicons-folder-open\",\n\t  unlock : \"glyphicons glyphicons-unlock\",\n\t  lock : \"glyphicons glyphicons-lock\",\n\t  cogwheels : \"glyphicons glyphicons-cogwheels\",\n\t  cogwheel : \"glyphicons glyphicons-cogwheel\",\n\t  law_justice : \"glyphicons glyphicons-law-justice\",\n\t  search : \"glyphicons glyphicons-search\",\n\t  align_center : \"glyphicons glyphicons-align-center\",\n\t  display : \"glyphicons glyphicons-display\",\n\t  hand_left : \"glyphicons glyphicons-hand-left\",\n\t  rewind : \"glyphicons glyphicons-rewind\",\n\t  new_window : \"glyphicons glyphicons-new-window\",\n\t  drop : \"glyphicons glyphicons-drop\",\n\t  question_sign : \"glyphicons glyphicons-question-sign\",\n\t  tick : \"glyphicons glyphicons-tick\",\n\t  plus : \"glyphicons glyphicons-plus\",\n\t  usd : \"glyphicons glyphicons-usd\",\n\t  ax : \"glyphicons glyphicons-ax\",\n\t  print : \"glyphicons glyphicons-print\",\n\t  user_add : \"glyphicons glyphicons-user-add\",\n\t  ban_circle : \"glyphicons glyphicons-ban-circle\",\n\t  message_plus : \"glyphicons glyphicons-message-plus\",\n\t  log_out : \"glyphicons glyphicons-log-out\",\n\t  floppy_saved : \"glyphicons glyphicons-floppy-saved\",\n\t  handshake : \"glyphicons glyphicons-handshake\",\n\t  edit : \"glyphicons glyphicons-edit\",\n\t  fees_payments : \"glyphicons glyphicons-fees-payments\",\n\t  small_payments : \"glyphicons glyphicons-small-payments\",\n\t  disk_open : \"glyphicons glyphicons-disk-open\",\n\t  settings : \"glyphicons glyphicons-settings\",\n\t  sampler : \"glyphicons glyphicons-sampler\",\n\t  credit_card : \"glyphicons glyphicons-credit-card\",\n\t  family : \"glyphicons glyphicons-family\",\n\t  folder_new : \"glyphicons glyphicons-folder-new\",\n\t  equalizer : \"glyphicons glyphicons-equalizer\",\n\t  blog : \"glyphicons glyphicons-blog\",\n\t  medicine : \"glyphicons glyphicons-medicine\",\n\t  hospital : \"glyphicons glyphicons-hospital\",\n\t  wifi : \"glyphicons glyphicons-wifi-alt\",\n\t  barcode : \"glyphicons glyphicons-barcode\",\n\t  hammer : \"glyphicons glyphicons-claw-hammer\",\n\t  doctor : \"glyphicons glyphicons-doctor\",\n\t  lugar : \"glyphicons glyphicons-nearby-circle\",\n\t  scope : \"glyphicons glyphicons-stethoscope\",\n\t  wheelchair : \"glyphicons glyphicons-person-wheelchair\",\n\t  retweet : \"glyphicons glyphicons-retweet\",\n\t  stopwathc : \"glyphicons glyphicons-stopwatch\",\n\t  stethoscope : \"glyphicons glyphicons-stethoscope\",\n\t  person_wheelchair : \"glyphicons glyphicons-person-wheelchair\",\n\t  blacksmith : \"glyphicons glyphicons-blacksmith\",\n\t   map_marker:\"glyphicons glyphicons-map-marker\",\n\t  minus:\"glyphicons glyphicons-file-minus\",\n\t  shirt:\"glyphicons glyphicons-shirt\",\n\t  tint:\"glyphicons glyphicons-tint\",\n    database_plus:\"glyphicons glyphicons-database-plus\",\n    user_lock:\"glyphicons glyphicons-user-lock\",\n    bin:\"glyphicons glyphicons-bin\",\n\tuser_parents:\"glyphicons glyphicons-user-parents\",\n\toctagon_empty: \"octagon-remove-empty\",\n\tambulance: \"glyphicons glyphicons-ambulance\",\n\tbell:\"glyphicons glyphicons-bell\",\n\tuser_plus: \"glyphicons glyphicons-user-add\",\n\tclipboard: \"glyphicons glyphicons-paste\",\n\n\n\n\t\n\n}\n","import { ImagenesCons } from '../../shared/constantes/ImagenesCons';\nimport { Constantes } from './../constantes/Constantes';\nimport { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'datoOrganizacionPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class DatoOrganizacionPipe implements PipeTransform {\n    TIPO_NOVEDAD = 'TV'\n    TIPO_ORIGEN_CARACTERISTICA = 'TN'\n    /*Tipo Embargo*/\n\n    TIPO_LIQUIDACION = 'TP';\n    TIPOLIQUIDAPER_TLP = 'TIPOLIQUIDAPER';\n    TIPO_EMBARGO = 'TE';\n    \n    /*AUSENTISMO */\n    \n    TIPO_AUSENCIA = 'AU';\n    AUSENCIA = 'AUSENCIA_AUS';\n\n    /*Novedad Fecha*/\n\n    TIPO_VARIABLE_FECHA = 'VF';\n\tVARIABLE_FECHA = 'VARIABLEFECHA_VAF';\n\n    VIGENTE = 'V';\n\tELIMINADO = 'E';\n\n\tTIPOTABLADESCCARGO = 'DE';\n\tTIPO_TABLA_REQUERIMIENTO_PERSONAL = 'RE';\n\tTIPO_TABLA_CONVOCATORIA = 'CV';\n\tTIPO_TABLA_NECESIDAD = 'NE';\n\tTIPO_TABLA_PROCESO_SELECCION = 'PS';\n\n\tCONVOCATORIA_DESC = 'CONVOCATORIA';\n\tPROCESO_SELECCION_DESC = 'PROCESO SELECCI'+Constantes.O_TIDLE_MIN+'N';\n\n\tBASE = 'BASE';\n\tRELACION = 'RELACION';\n\tGRUPO = 'GRUPO';\n\tINDUCCION = 'INDUCCION';\n\tENTRENAMIENTO = 'ENTRENAMIENTO';\n\tFUNCION = 'FUNCION';\n\tCOMPETENCIA = 'COMPETENCIA';\n\tCOMPETENCIA_EXTERNA = 'COMPETENCIA_EXTERNA';\n\tPERFIL = 'PERFIL';\n\tREQUERIMIENTO = 'REQUERIMIENTO';\n\tTABLA1 = 'LISTA_TABLA_ADICIONAL1';\n\tTABLA2 = 'LISTA_TABLA_ADICIONAL2';\n\tTABLA3 = 'LISTA_TABLA_ADICIONAL3';\n\tTABLA4 = 'LISTA_TABLA_ADICIONAL4';\n\tTABLA5 = 'LISTA_TABLA_ADICIONAL5';\n\tFORMACION = 'FORMACION';\n\tCANDIDATOS = 'CANDIDATOS';\n\tEPP = 'EPP';\n\tDOTACIONEQUIPO = 'DOTACIONEQUIPO';\n\n\tAGRUPACION = 'AGRUPACION';\n\tDESBASE = 'DESCRIPCI'+Constantes.O_TIDLE_MIN+'N GENERAL';\n\tDESRELACION = 'RELACION INTERNA EXTERNA';\n\tDESGRUPO = 'GRUPOS QUE PARTICIPA';\n\tDESINDUCCION = 'INDUCCION';\n\tDESENTRENAMIENTO = 'ENTRENAMIENTO';\n\tDESFUNCION = 'FUNCIONES';\n\tDESCOMPETENCIA = 'COMPETENCIAS';\n\tDESCOMPETENCIA_EXTERNA = 'COMPETENCIAS EXTERNAS';\n\tDESPERFIL = 'PERFIL';\n\tDESREQUERIMIENTO = 'DATOS REQUERIMIENTO';\n\tDESTABLA1 = 'Tabla Adicional 1';\n\tDESTABLA2 = 'Tabla Adicional 2';\n\tDESTABLA3 = 'Tabla Adicional 3';\n\tDESTABLA4 = 'Tabla Adicional 4';\n\tDESTABLA5 = 'Tabla Adicional 5';\n\tDESFORMACION = 'FORMACION';\n\tDESCANDIDATOS = 'CANDIDATOS';\n\tDESEPP = 'ELEMENTOS DE PROTECCION PERSONAL';\n\tDESDOTACIONEQUIPO = 'DOTACION / EQUIPOS';\n\n\tTABLA_DESCRIPCION_CARGO = [\n\t\t{codigo: this.BASE, nombre: this.DESBASE},\n\t\t{codigo: this.RELACION, nombre: this.DESRELACION},\n\t\t{codigo: this.GRUPO, nombre: this.DESGRUPO},\n\t\t{codigo: this.INDUCCION, nombre: this.DESINDUCCION},\n\t\t{codigo: this.ENTRENAMIENTO, nombre: this.DESENTRENAMIENTO},\n\t\t{codigo: this.FUNCION, nombre: this.DESFUNCION},\n\t\t{codigo: this.COMPETENCIA, nombre: this.DESCOMPETENCIA},\n\t\t{codigo: this.COMPETENCIA_EXTERNA, nombre: this.DESCOMPETENCIA_EXTERNA},\n\t\t{codigo: this.PERFIL, nombre: this.DESPERFIL},\n\t\t{codigo: this.REQUERIMIENTO, nombre: this.DESREQUERIMIENTO},\n\t\t{codigo: this.TABLA1, nombre: this.DESTABLA1},\n\t\t{codigo: this.TABLA2, nombre: this.DESTABLA2},\n\t\t{codigo: this.TABLA3, nombre: this.DESTABLA3},\n\t\t{codigo: this.TABLA4, nombre: this.DESTABLA4},\n\t\t{codigo: this.TABLA5, nombre: this.DESTABLA5},\n\t\t{codigo: this.FORMACION, nombre: this.DESFORMACION},\n\t\t{codigo: this.EPP, nombre: this.DESEPP},\n\t\t{codigo: this.DOTACIONEQUIPO, nombre: this.DESDOTACIONEQUIPO},\n    ]\n\n\t\n\n\tPROCESO_SELECCION = 'SELECCION';\n\n\tTABLA_PROCESO_SELECCION = [\n\t\t{codigo: this.PROCESO_SELECCION, nombre: this.PROCESO_SELECCION},\n\t]\n\n\tCARGO = 'CARGO';\n\tCONVOCATORIA = 'CONVOCATORIA';\n\n\tTABLA_CONVOCATORIA = [\n\t\t{codigo: this.CARGO, nombre: this.CARGO},\n\t\t{codigo: this.PROCESO_SELECCION, nombre: this.PROCESO_SELECCION},\n\t\t{codigo: this.REQUERIMIENTO, nombre: this.DESREQUERIMIENTO},\n    ]\n\n\tNECESIDAD_CAPACITACION = 'NECESIDADCAPACITACION';\n\tNECESIDAD_CAPACITACION_DESC = 'NECESIDAD CAPACITACION';\n\tTABLA_NECESIDAD = [\n\t\t{codigo: this.NECESIDAD_CAPACITACION, nombre: this.NECESIDAD_CAPACITACION_DESC},\n    ]\n\n\t\n\n\tVERDETALLE = 'D';\n\tVERJUNTOS = 'T';\n\tVERDETALLE_DESC = 'MOSTRAR EN EL DETALLE';\n\tVERJUNTOS_DESC = 'MOSTRAR EN EL LISTADO Y EN EL DETALLE';\n\n\tLISTA_ACCION_CONVOCATORIA = [\n\t\t{codigo: this.VERDETALLE, nombre: this.VERDETALLE_DESC},\n\t\t{codigo: this.VERJUNTOS, nombre: this.VERJUNTOS_DESC},\n    ]\n\t\n\tZONA = 'zona_costeo';\n\tCENTRO = 'centro_costeo';\n\tLINEA = 'linea_costeo';\n\tPORCENTAJE = 'porcentaje_costeo';\n\n\tDESZONA = 'Zona';\n\tDESCENTRO = 'Centro';\n\tDESLINEA = 'Linea';\n\tDESPORCENTAJE = 'Porcentaje';\n\t\n\tLISTA_COSTEO = [\n\t\t{codigo: this.ZONA, nombre: this.DESZONA},\n\t\t{codigo: this.CENTRO, nombre: this.DESCENTRO},\n\t\t{codigo: this.LINEA, nombre: this.DESLINEA},\n\t\t{codigo: this.PORCENTAJE, nombre: this.DESPORCENTAJE},\n    ]\n\n\tTODAS = 'T';\n\tINDIVIDUAL = 'I';\n\tGRUPO_PERSONAS = 'P';\n\tGRUPO_PLANTA = 'G';\n\tGRUPO_PLANTA_INDIVIDUAL = 'IG';\n\tGRUPO_PERSONAS_INDIVIDUAL = 'IP';\n\tGRUPOS = 'PG';\n\tINDIVIDUAL_DESC = 'INDIVIDUAL';\n\tTODAS_DESC = 'TODAS';\n\tGRUPO_PERSONAS_DESC = 'GRUPO PERSONAS';\n\tGRUPO_PLANTA_DESC = 'GRUPO PLANTA';\n\tGRUPO_PLANTA_INDIVIDUAL_DESC = 'GRUPO PLANTA / INDIVIDUAL';\n\tGRUPO_PERSONAS_INDIVIDUAL_DESC = 'GRUPO PERSONAS / INDIVIDUAL';\n\tGRUPOS_DESC = 'GRUPO PERSONAS / GRUPO PLANTA';\n\tLISTA_OPERADOR_NECESIDAD = [\n\t\t{codigo: this.TODAS, nombre: this.TODAS_DESC},\n\t\t{codigo: this.INDIVIDUAL, nombre: this.INDIVIDUAL_DESC},\n\t\t{codigo: this.GRUPO_PERSONAS, nombre: this.GRUPO_PERSONAS_DESC},\n\t\t{codigo: this.GRUPO_PLANTA, nombre: this.GRUPO_PLANTA_DESC},\n\t\t{codigo: this.GRUPO_PLANTA_INDIVIDUAL, nombre: this.GRUPO_PLANTA_INDIVIDUAL_DESC},\n\t\t{codigo: this.GRUPO_PERSONAS_INDIVIDUAL, nombre: this.GRUPO_PERSONAS_INDIVIDUAL_DESC},\n\t\t{codigo: this.GRUPOS, nombre: this.GRUPOS_DESC},\n    ]\n\tTIPO_FORMULARIO = [\n\t\t{codigo: this.INDIVIDUAL, nombre: this.INDIVIDUAL_DESC},\n\t\t{codigo: this.GRUPO_PLANTA, nombre: this.GRUPO_PLANTA_DESC},\n\t\t{codigo: this.GRUPO_PERSONAS, nombre: this.GRUPO_PERSONAS_DESC},\n    ]\n\t\n\tLISTA_TIPO_NECESIDAD_CAPACITACION = [\n\t\t{codigo: this.INDIVIDUAL, nombre: this.INDIVIDUAL_DESC},\n\t\t{codigo: this.GRUPO_PERSONAS, nombre: this.GRUPO_PERSONAS_DESC},\n\t\t{codigo: this.GRUPO_PLANTA, nombre: this.GRUPO_PLANTA_DESC},\n\t]\n\n\n\tMARCADOR = 'M';\n\tSELECCION = 'S';\n\n\t\n\tLISTADO_TIPO_TABLA_TALENTO = [\n\t\t{codigo: this.TIPOTABLADESCCARGO, nombre: this.DESBASE, icono: ImagenesCons.clipboard},\n\t\t{codigo: this.TIPO_TABLA_REQUERIMIENTO_PERSONAL, nombre: this.REQUERIMIENTO,icono: ImagenesCons.copy},\n\t\t{codigo: this.TIPO_TABLA_CONVOCATORIA, nombre: this.CONVOCATORIA_DESC, icono: ImagenesCons.bell},\n\t\t{codigo: this.TIPO_TABLA_PROCESO_SELECCION, nombre: this.PROCESO_SELECCION_DESC, icono: ImagenesCons.user_plus},\n\t]\n\n\tLISTADO_TIPO_TABLA_CAPACITACION = [\n\t\t{codigo: this.TIPO_TABLA_NECESIDAD, nombre: this.NECESIDAD_CAPACITACION_DESC},\n\t]\n\t\n\t/*-------------------------\n\t * Tipo Plan Sucesion \n\t *-------------------------\n\t */\n\t\n\tTIPO_ITEM = 'SE';\n\tTIPO_LINEA = 'SD';\n\t\n\tTIPO_CURSO = 'CU';\n\tTIPO_CARGO = 'CA';\n\tTIPO_CURSO_HIST = 'HC';\n\tTIPO_CARGO_HIST = 'HL';\n\tTIPO_SECCIONHOJAVIDA = 'SH';\n\tTIPO_COMPETENCIA = 'CO';\n\tTIPO_EVALUACION = 'EV';\n\tTIPO_MANUAL = 'MA';\n\t\n\tTIPO_CURSO_HIST_DESC = 'Curso Hist\\u00F3rico';\n\tTIPO_CARGO_HIST_DESC = 'Cargo Hist\\u00F3rico';\n\n\tTIPO_CURSO_DESC = 'Curso Especifico';\n\tTIPO_CARGO_DESC = 'Cargo Especifico';\n\t\n\tTIPO_SECCIONHOJAVIDA_DESC = 'Secci\\u00F3n Hoja Vida ';\n\tTIPO_COMPETENCIA_DESC = 'Evaluación Competencia';\n\tTIPO_EVALUACION_DESC = 'Evaluación';\n\tTIPO_MANUAL_DESC = 'Manual';\n\t\n\tMAPA_TIPO_LINEA=[\n\t\t{codigo: this.TIPO_CURSO, nombre: this.TIPO_CURSO_DESC},\n\t\t{codigo: this.TIPO_CARGO, nombre: this.TIPO_CARGO_DESC},\n\t\t{codigo: this.TIPO_SECCIONHOJAVIDA, nombre: this.TIPO_SECCIONHOJAVIDA_DESC},\n\t\t{codigo: this.TIPO_COMPETENCIA, nombre: this.TIPO_COMPETENCIA_DESC},\n\t\t{codigo: this.TIPO_EVALUACION, nombre: this.TIPO_EVALUACION_DESC},\n\t\t{codigo: this.TIPO_MANUAL, nombre: this.TIPO_MANUAL_DESC},\n\t\t{codigo: this.TIPO_CURSO_HIST, nombre: this.TIPO_CURSO_HIST_DESC},\n\t\t{codigo: this.TIPO_CARGO_HIST, nombre: this.TIPO_CARGO_HIST_DESC},\n\t]\n\n\t\n\tCAMPO='C';\n\tCARA='R';\n\tCOSTEO='O';\n\tPUESTO_TRABAJO = 'P';\n\tCANDIDATO='A';\n\tANEXO='X';\n\t\n\tPUESTO_TRABAJO_TABLA = 'PUESTO_TRABAJO';\n\tDESCAMPO='DATOS';\n\tDESCARA='CARACTERISTICA';\n\tCARA_TABLA='CARACTERISTICA';\n\tCOSTEO_TABLA='COSTEO';\n\tDESCOSTEO='COSTEO';\n\tDESPUESTO_TRABAJO = 'PUESTO TRABAJO';\n\tDESCANDIDATO= 'CANDIDATO';\n\tCANDIDATO_TABLA= 'CANDIDATO';\n\tDESANEXO = 'ANEXO';\n\tANEXO_TABLA= 'ANEXO';\n\n\tMAPATIPO = [\n\t\t{codigo: this.CAMPO, nombre: this.DESCAMPO},\n\t\t{codigo: this.COSTEO, nombre: this.DESCOSTEO},\n\t\t{codigo: this.CARA, nombre: this.DESCARA},\n\t\t{codigo: this.PUESTO_TRABAJO, nombre: this.DESPUESTO_TRABAJO},\n\t\t{codigo: this.CANDIDATO, nombre: this.DESCANDIDATO},\n\t\t{codigo: this.ANEXO, nombre: this.DESANEXO},\n\t]\n\t\n    TABLA_REQUERIMIENTO_PERSONAL = [\n\t\t{codigo: this.REQUERIMIENTO, nombre: this.DESREQUERIMIENTO},\n\t\t{codigo: this.PUESTO_TRABAJO_TABLA, nombre: this.DESPUESTO_TRABAJO},\n\t\t{codigo: this.COSTEO_TABLA, nombre: this.DESCOSTEO},\n\t\t{codigo: this.CARA_TABLA, nombre: this.DESCARA},\n\t\t{codigo: this.CANDIDATO_TABLA, nombre: this.DESCANDIDATO},\n\t\t{codigo: this.ANEXO_TABLA, nombre: this.DESANEXO},\n\t]\n\t\n    TABLAS = [\n\t\t{codigo: this.TIPOTABLADESCCARGO, nombre: this.TABLA_DESCRIPCION_CARGO},\n\t\t{codigo: this.TIPO_TABLA_REQUERIMIENTO_PERSONAL, nombre: this.TABLA_REQUERIMIENTO_PERSONAL},\n\t\t{codigo: this.TIPO_TABLA_PROCESO_SELECCION, nombre: this.TABLA_PROCESO_SELECCION},\n\t\t{codigo: this.TIPO_TABLA_CONVOCATORIA, nombre: this.TABLA_CONVOCATORIA},\n\t\t{codigo: this.TIPO_TABLA_NECESIDAD, nombre: this.TABLA_NECESIDAD},\n\t]\n\t\n    CAMPOS_AGRUPACION = [\n\t\t{codigo: 'zonaeconomica', nombre: 'zonaeconomica'},\n\t\t{codigo: 'centrocosto', nombre: 'centrocosto'},\n\t\t{codigo: 'lineacosto', nombre: 'lineacosto'},\n\t\t{codigo: 'linea', nombre: 'linea'},\n\t\t{codigo: 'valor1', nombre: 'valor1'},\n\t\t{codigo: 'valor2', nombre: 'valor2'},\n\t\t{codigo: 'valor3', nombre: 'valor3'},\n\t\t{codigo: 'valor4', nombre: 'valor4'},\n\t\t{codigo: 'valor5', nombre: 'valor5'},\n\t\t{codigo: 'valor6', nombre: 'valor6'},\n\t\t{codigo: 'valor', nombre: 'valor'},\n\t\t{codigo: 'naturaleza', nombre: 'naturaleza'},\n\t\t{codigo: 'descripcion', nombre: 'descripcion'},\n\t\t{codigo: 'referencia', nombre: 'referencia'},\n\t\t{codigo: 'descripcion2', nombre: 'descripcion2'},\n\t]\n\t\n\tNOMBRE = 'nombre';\n\tPRIMERAPELLID = 'primerApellido';\n\tSEGUNDOAPELLID = 'segundoApellido';\n\tIDENTIFICACION = 'identificacion';\n\tDOCUMENTO = 'documento';\n\tCORREO = 'correo';\n\tTELEFONO= 'telefono';\n\tORIGENCAND='origen';\n\n\tDESNOMBRE= 'Nombre';\n\tDESPRIMERAPELLID = 'Primer Apellido';\n\tDESSEGUNDOAPELLID = 'Segundo Apellido';\n\tDESIDENTIFICACION = 'Identificacion';\n\tDESDOCUMENTO = 'Documento';\n\tDESCORREO = 'Correo';\n\tDESTELEFONO = 'Telefono';\n\tDESCORIGENCAND='Origen Candidato';\n\t\t\n\tLISTA_CANDIDATO = [\n\t\t{codigo: this.NOMBRE, nombre: this.DESNOMBRE},\n\t\t{codigo: this.PRIMERAPELLID, nombre: this.DESPRIMERAPELLID},\n\t\t{codigo: this.SEGUNDOAPELLID, nombre: this.DESSEGUNDOAPELLID},\n\t\t{codigo: this.IDENTIFICACION, nombre: this.DESIDENTIFICACION},\n\t\t{codigo: this.DOCUMENTO, nombre: this.DESDOCUMENTO},\n\t\t{codigo: this.CORREO, nombre: this.DESCORREO},\n\t\t{codigo: this.TELEFONO, nombre: this.DESTELEFONO},\n\t\t{codigo: this.ORIGENCAND, nombre: this.DESCORIGENCAND},\n\t]\n\t\n\tDESCRIPCION = 'descripcion';\n\t\n\tDESDESCRIPCION = 'descripcion';\n\n\tLISTA_ANEXO = [\n\t\t{codigo: this.DESCRIPCION, nombre: this.DESDESCRIPCION},\n\t]\n\t\n\t\n\tTIPOSERVICIO = 'TIPOSERVICIO'; \n\n    VALOR1 = 'valor1';\n    VALOR2 = 'valor2';\n    VALOR3 = 'valor3';\n    VALOR4 = 'valor4';\n    VALOR5 = 'valor5';\n    VALOR6 = 'valor6';\n    VALOR7 = 'valor7';\n    VALOR8 = 'valor8';\n    REFERENCIA = 'referencia';\n    SUCREFERENCIA = 'sucreferencia';\n    BENEFICIARIO = 'beneficiario';\n    NOMBREBENEFICIARIO = 'nombrebeneficiario';\n    FECHA1 = 'fecha1';\n    FECHA2 = 'fecha2';\n    ENTIDADAUX = 'entidadaux';\n    CADENA1 = 'cadena1';\n    CADENA2 = 'cadena2';\n    CADENA3 = 'cadena3';\n    CADENA4 = 'cadena4';\n    TIPOREFERENCIA = 'tiporeferencia';\n    \n\tLISTA_COLUMNAS = [\n\t\t{codigo: this.VALOR1, nombre: this.VALOR1},\n\t\t{codigo: this.VALOR2, nombre: this.VALOR2},\n\t\t{codigo: this.VALOR3, nombre: this.VALOR3},\n\t\t{codigo: this.VALOR4, nombre: this.VALOR4},\n\t\t{codigo: this.VALOR5, nombre: this.VALOR5},\n\t\t{codigo: this.VALOR6, nombre: this.VALOR6},\n\t\t{codigo: this.VALOR7, nombre: this.VALOR7},\n\t\t{codigo: this.VALOR8, nombre: this.VALOR8},\n\t\t{codigo: this.REFERENCIA, nombre: this.REFERENCIA},\n\t\t{codigo: this.SUCREFERENCIA, nombre: this.SUCREFERENCIA},\n\t\t{codigo: this.BENEFICIARIO, nombre: this.BENEFICIARIO},\n\t\t{codigo: this.NOMBREBENEFICIARIO, nombre: this.NOMBREBENEFICIARIO},\n\t\t{codigo: this.FECHA1, nombre: this.FECHA1},\n\t\t{codigo: this.FECHA2, nombre: this.FECHA2},\n\t\t{codigo: this.ENTIDADAUX, nombre: this.ENTIDADAUX},\n\t\t{codigo: this.CADENA1, nombre: this.CADENA1},\n\t\t{codigo: this.CADENA2, nombre: this.CADENA2},\n\t\t{codigo: this.CADENA3, nombre: this.CADENA3},\n\t\t{codigo: this.CADENA4, nombre: this.CADENA4},\n\t\t{codigo: this.TIPOREFERENCIA, nombre: this.TIPOREFERENCIA},\n\t]\n\n\t\n\tCAMPOENTRADA='CE';\n\t\n\tVALOR= 'valor';\n\tTIPO= 'tipo';\n\tSUCURSAL='sucursal';\n\tCICLO ='ciclo';\n\tTIPOREFERENCIADESC = 'Tipo Referencia';\n\tMOTIVO= 'motivo';\n\tCIUDAD= 'ciudad';\n\t\n\tLISTA_COLUMNA_ENTRADA = [\n\t\t{codigo: this.REFERENCIA, nombre: this.REFERENCIA},\n\t\t{codigo: this.VALOR, nombre: this.VALOR},\n\t\t{codigo: this.TIPO, nombre: this.TIPO},\n\t\t{codigo: this.SUCREFERENCIA, nombre: this.SUCURSAL},\n\t\t{codigo: this.CICLO, nombre: this.CICLO},\n\t\t{codigo: this.BENEFICIARIO, nombre: this.BENEFICIARIO},\n\t\t{codigo: this.TIPOREFERENCIA, nombre: this.TIPOREFERENCIADESC},\n\t\t{codigo: this.MOTIVO, nombre: this.MOTIVO},\n\t\t{codigo: this.CIUDAD, nombre: this.CIUDAD},\n\t\t\n\t]\n    \n\tENTIDADEMPLEADO='E';\n\tENTIDADEMPLEADO_DESC='Entidad Empleado';\n\tTIPOBENEFICIARIO='B';\n\tTIPOBENEFICIARIO_DESC='Beneficiario';\n\t\n\tLISTA_ORIGEN_ENTRADA = [\n\t\t{codigo: this.ENTIDADEMPLEADO, nombre: this.ENTIDADEMPLEADO_DESC},\n\t\t{codigo: this.TIPOBENEFICIARIO, nombre: this.TIPOBENEFICIARIO_DESC},\n\t]\n\t\n\t\n\tFAMILIA='referencia';\n\tFAMILIA_DESC='Familia';\n\tNUMEROUSUARIO='grupoFamiliar';\n\tNUMEROUSUARIO_DESC='Numero Usuario';\n\tPARENTESCO='tipo';\n\tPARENTESCO_DES='Parentesco';\n\tEDAD='duracion';\n\tEDAD_DESC='Edad';\n\tCUOTA='costoEmpresa';\n\tCUOTA_DESC='Cuota';\n\tDESCUENTOCOMERCIAL='costo';\n\tDESCUENTOCOMERCIAL_DESC='Descuento Comercial';\n\tDESCUENTOCOMERCIALESP='descuentoEsp';\n\tDESCUENTOCOMERCIALESP_DESC='Descuento Comercial Especial';\n\tDESCUENTOCOMERCIAL2='descuentoComercial2';\n\tDESCUENTOCOMERCIAL2_DESC='Descuento Comercial 2';\n\tANEXOS='valor2';\n\tANEXOS_DESC='Anexos';\n\tSUBTOTAL='valor3';\n\tSUBTOTAL_DESC='Subtotal';\n\tIVA='interes';\n\tIVA_DES='IVA';\n\tESTADOEPS='estadoEps';\n\tESTADOEPS_DESC='Estado En Entidad';\n\tMOTIVONOVEDADEPS='periodoCurso';\n\tMOTIVONOVEDADEPS_DESC='Motivo Novedad';\n\tFECHANOVEDADEPS='fechaFinal';\n\tFECHANOVEDADEPS_DESC='Fecha Novedad';\n\tGRUPOFAMILIAR='grupoBasicoFamilia';\n\tGRUPOFAMILIAR_DESC='Grupo Familiar Basico';\n\tMOTIVOFACTURA='horario';\n\tMOTIVOFACTUA_DESC='Motivo Factura';\n\tDIASCOBRADOS='cantidad';\n\tDIASCOBRADOS_DESC='Dias Cobrados';\n\tCUOTATOTAL='valor4';\n\tCUOTATOTAL_DESC='Cuota Total';\n\tFECHADESDE='fechaAsignacion';\n\tFECHADESDE_DESC='Fecha Desde';\n\tFECHAHASTA='hasta';\n\tFECHAHASTA_DESC='fecha Hasta';\n\t\n\tTIPODOCUMENTO='tipoDocumento';\n\tTERCERO='tercero';\n\tAPELLIDOS='apellidos';\n\tFECHANACIMIENTO='fechaNacimiento';\n\tCOSTOINCURRE='costoIncurre';\n\n\tTIPODOCUMENTO_DESC='Tipo Documento';\n\tDOCUMENTO_DESC='Documento';\n\tTERCERO_DESC='Nombres';\n\tAPELLIDOS_DESC='Apellidos';\n\tFECHANACIMIENTO_DESC='Fecha Nacimiento';\n\tCOSTOINCURRE_DESC='Costo Incurre';\n\tENTIDADAUXP= 'entidadAuxiliar';\n\tENTIDADAUXPDESC= 'Entidad Auxiliar';\n\n\tLISTA_COLUMNAS_BENEFICIARIO = [\n\t\t{codigo: this.FAMILIA, nombre: this.FAMILIA_DESC},\n\t\t{codigo: this.NUMEROUSUARIO, nombre: this.NUMEROUSUARIO_DESC},\n\t\t{codigo: this.PARENTESCO, nombre: this.PARENTESCO_DES},\n\t\t{codigo: this.EDAD, nombre: this.EDAD_DESC},\n\t\t{codigo: this.CUOTA, nombre: this.CUOTA_DESC},\n\t\t{codigo: this.DESCUENTOCOMERCIAL, nombre: this.DESCUENTOCOMERCIAL_DESC},\n\t\t{codigo: this.DESCUENTOCOMERCIALESP, nombre: this.DESCUENTOCOMERCIALESP_DESC},\n\t\t{codigo: this.DESCUENTOCOMERCIAL2, nombre: this.DESCUENTOCOMERCIAL2_DESC},\n\t\t{codigo: this.ANEXOS, nombre: this.ANEXOS_DESC},\n\t\t{codigo: this.SUBTOTAL, nombre: this.SUBTOTAL_DESC},\n\t\t{codigo: this.IVA, nombre: this.IVA_DES},\n\t\t{codigo: this.ESTADOEPS, nombre: this.ESTADOEPS_DESC},\n\t\t{codigo: this.MOTIVONOVEDADEPS, nombre: this.MOTIVONOVEDADEPS_DESC},\n\t\t{codigo: this.FECHANOVEDADEPS, nombre: this.FECHANOVEDADEPS_DESC},\n\t\t{codigo: this.GRUPOFAMILIAR, nombre: this.GRUPOFAMILIAR_DESC},\n\t\t{codigo: this.MOTIVOFACTURA, nombre: this.MOTIVOFACTUA_DESC},\n\t\t{codigo: this.DIASCOBRADOS, nombre: this.DIASCOBRADOS_DESC},\n\t\t{codigo: this.CUOTATOTAL, nombre: this.CUOTATOTAL_DESC},\n\t\t{codigo: this.TIPODOCUMENTO, nombre: this.TIPODOCUMENTO_DESC},\n\t\t{codigo: this.DOCUMENTO, nombre: this.DOCUMENTO_DESC},\n\t\t{codigo: this.TERCERO, nombre: this.TERCERO_DESC},\n\t\t{codigo: this.APELLIDOS, nombre: this.APELLIDOS_DESC},\n\t\t{codigo: this.FECHANACIMIENTO, nombre: this.FECHANACIMIENTO_DESC},\n\t\t{codigo: this.COSTOINCURRE, nombre: this.COSTOINCURRE_DESC},\n\t\t{codigo: this.FECHADESDE, nombre: this.FECHADESDE_DESC},\n\t\t{codigo: this.FECHAHASTA, nombre: this.FECHAHASTA_DESC},\n\t\t{codigo: this.ENTIDADAUXP, nombre: this.ENTIDADAUXPDESC},\n\t\t\t\t\t\t\n\t]\n\n\t/** Constantes para tipo campo en Campo Perfil*/\n\tCARACTERISTICADESC = 'Caracteristica';\n\tCAMPOTABLADESC = 'Campo Tabla';\n\tCARACTERISTICA = 'C';\n\tCAMPOTABLA = 'T';\n\t\n\tMAPATIPOCAMPO = [\n\t\t{codigo: this.CARACTERISTICA, nombre: this.CARACTERISTICADESC},\n\t\t{codigo: this.CAMPOTABLA, nombre: this.CAMPOTABLADESC},\n\t]\n\t\n\t/**\n\t * MAPA CAMPOS  USADOS EN FORMULARIO DE COMPENTENCIS MOSTRAR CODIGO \n\t */\n\tPUNTAJEESPERADO='puntajeespera';\n\tDESCRIPCIONNIVEL='descripcionnivel';\n\tNIVELREFERENCIA='nivelreferencia';\n\tDESCRIPCIONDIMENSION='descripcionDimension';\n\tDIMENSION ='dimension';\n\t\n\t\n\tMAPACAMPOSCOMPETENCIAS = [\n\t\t{codigo: this.DESCRIPCIONNIVEL, nombre: this.NIVELREFERENCIA},\n\t\t{codigo: this.DESCRIPCIONDIMENSION,  nombre: this.DIMENSION},\n\t]\n\n\tOBLIGATORIO = 'S';\n\tNOOBLIGATORIO = 'N';\n\tSOLOVISIBLE = 'V';\n\tOBLIGATORIODESC = 'Obligatorio';\n\tNOOBLIGATORIODESC = 'No Obligatorio';\n\tSOLOVISIBLEDESC = 'Visualización';\n\t\n\tMAPAREQUERIDO = [\n\t\t{codigo: this.OBLIGATORIO, nombre: this.OBLIGATORIODESC},\n\t\t{codigo: this.NOOBLIGATORIO, nombre: this.NOOBLIGATORIODESC},\n\t\t{codigo: this.SOLOVISIBLE, nombre: this.SOLOVISIBLEDESC},\n\t]\n\t\n\t\n\tPUESTO = 'PT';\n\tMAXIMO_REMUNERACION= 'MX';\n\tMINIMO_REMUNERACION= 'MN';\n\tPUESTODESC = 'Puesto Trabajo';\n\tMAXIMO_REMUNERACIONDESC = 'Maximo Remuneración Cargo';\n\tMINIMO_REMUNERACIONDESC = 'Minimo Remuneración Cargo';\n\t\n\tMAPAPROPONESUELDO = [\n\t\t{codigo: this.PUESTO, nombre: this.PUESTODESC},\n\t\t{codigo: this.MAXIMO_REMUNERACION, nombre: this.MAXIMO_REMUNERACIONDESC},\n\t\t{codigo: this.MINIMO_REMUNERACION, nombre: this.MINIMO_REMUNERACIONDESC},\n\t]\n\n\tLISTA_TABLAS_ADICIONALES = [\n\t\t { codigo: this.RELACION, nombre: this.RELACION },\n\t\t { codigo: this.GRUPO, nombre: this.GRUPO },\n\t\t { codigo: this.INDUCCION, nombre: this.INDUCCION },\n\t\t { codigo: this.ENTRENAMIENTO, nombre: this.ENTRENAMIENTO },\n\t\t { codigo: this.FORMACION, nombre: this.FORMACION },\n\t\t { codigo: this.TABLA1, nombre: this.TABLA1 },\n\t\t { codigo: this.TABLA2, nombre: this.TABLA2 },\n\t\t { codigo: this.TABLA3, nombre: this.TABLA3 },\n\t\t { codigo: this.TABLA4, nombre: this.TABLA4 },\n\t\t { codigo: this.TABLA5, nombre: this.TABLA5 },\n\t\t { codigo: this.EPP, nombre: this.EPP },\n\t\t { codigo: this.DOTACIONEQUIPO, nombre: this.DOTACIONEQUIPO },\n\t ]\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n        /*if(args[0]=='listaEstadoTransaccion') {this.LISTA_ESTADO_TRANSACCION.forEach(data => { if (data.codigo === value) {result = data.nombre}});}\n        if(args[0]=='listaTipoAlmacen') {this.LISTA_TIPO_ALMACEN.forEach(data => { if (data.codigo === value) {result = data.nombre}});}\n          */\n\t\t if(args[0]=='mapaTablas') {this.TABLAS.forEach(data => { if (data.codigo === value) {result = data.nombre}});}\n\t\t if(args[0]=='mapaCompetencias') {this.MAPACAMPOSCOMPETENCIAS.forEach(data => { if (data.codigo === value) {result = data.nombre}});}\n\t\t if(args[0]=='mapaRequerido') {this.MAPAREQUERIDO.forEach(data => { if (data.codigo === value) {result = data.nombre}});}\n\t\t \n        return result;\n    }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TipoAusenciaModel } from '../../models/TipoAusenciaModel';\nimport { MomentoDocumentoModel } from '../../../talento/models/MomentoDocumentoModel';\nimport { AusenciaNovedadModel } from '../../models/AusenciaNovedadModel';\nimport { EmpleadoModel } from '../../models/EmpleadoModel';\nimport { RequisitoHojaModel } from '../../../talento/models/RequisitoHojaModel';\nimport { AusentismoPipe } from '../../../../shared/pipes/ausentismo.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { AuthService, CargarControlFuncionalidadService, FechaUtilsService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { NovedadPipe } from '../../pipes/novedad.pipe';\nimport { EmpresaModel } from '../../../hojavida/models/EmpresaModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { AusentismoService } from '../../services/ausentismo.service';\nimport { TipoNovedadCons } from '../../../../shared/pipes/tipoNovedadCons.pipe';\nimport { CargoModel } from '../../../talento/models/CargoModel';\nimport { ParametrosPipe } from '../../../../shared/pipes/parametros.pipe';\nimport { RangoModel } from '../../models/RangoModel';\nimport { DatoOrganizacionPipe } from '../../../../shared/pipes/datoOrganizacion.pipe';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PopupsDinamicosPipe } from '../../../../shared/pipes/popups-dinamicos.pipe';\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { ActividadFuenteTareaModel } from '../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { EjecucionEncuestaComponent } from '../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent } from '../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { WorkflowPipe } from '../../../../shared/pipes/workflow.pipe';\nimport { EjecucionEncuestaComponent as EjecucionEncuestaComponent_1 } from '../../../sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent as EjecucionAutorizacionComponent_1 } from '../../../sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { PopupMomentoDocumentoComponent } from '../../pages/empleados/ausentismos/popup-momento-documento/popup-momento-documento.component';\nimport { PopupSeguimientoComponent } from '../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CabeceraEmpleadoComponent } from '../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ProgressBarModule } from 'primeng/progressbar';\n\n@Component({\n  selector: 'app-licencia-ausencia-programadas',\n  templateUrl: './licencia-ausencia-programadas.component.html',\n  styleUrls: ['./licencia-ausencia-programadas.component.scss'],\n  standalone: true,\n  providers: [DatePipe],\n  imports: [NgIf, CabeceraEmpleadoComponent, ButtonDirective, Ripple, FormsModule, InputTextModule, DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, InputNumberModule, CheckboxModule, SplitButtonModule, PopupSeguimientoComponent, PopupMomentoDocumentoComponent, ConfirmDialogModule, EjecucionAutorizacionComponent_1, EjecucionEncuestaComponent_1, DatePipe, TranslateModule, AusentismoPipe, ListaConstantesPipe, FormulariodinamicoComponent, ProgressBarModule]\n})\nexport class LicenciaAusenciaProgramadasComponent implements OnInit {\n\n  public soyYo: boolean;\n  public encuesta: boolean;\n  public procesoAutorizacion: boolean;\n  public estado: string;\n  public estadoNovedad: string;\n  public mostrarMensaje: boolean;\n  public mapaEstados: any[] = [];\n  public tipoAusenciaDTO: TipoAusenciaModel;\n  public panel: number;\n  public controles: Map<string, boolean> = new Map<string, boolean>();\n  public deshabilitarTipoAusencia: boolean;\n  public form: string;\n  public origenTarea: string;\n  public listaDocumentoTipoAusencia: MomentoDocumentoModel[];\n  public momentoDocumentoDTO: MomentoDocumentoModel;\n  public noBloquear: boolean;\n  public listaFechaSalida: any[];\n  public unicoRegistro: boolean = false;\n  //this\n  public listaPasivoGeneral: AusenciaNovedadModel[];\n  public listaProgramadas: AusenciaNovedadModel[];\n  public listaProrroga: any[];\n  public mapaEstadoDoc: any[];\n\n  public novedad: AusenciaNovedadModel = new AusenciaNovedadModel();\n  public listaRequisitoHoja: RequisitoHojaModel[];\n  public listaRequisitoHojaBorrar: RequisitoHojaModel[];\n  public nuevoRegistro: boolean\n  public pasivo: boolean;\n  public dias: boolean;\n  public seguimiento: boolean = false;\n  public listaTipoLicenciaAusencia: any[];\n  public cliente;\n\n  public formularioEditable: boolean;\n  public campos: CampoFormularioModel[] = []\n  @Input() public empleado: EmpleadoModel;\n  @Output() public regresar = new EventEmitter;\n  public clickGuardar: boolean = false;\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n  public mostrarPopupSeguimiento: boolean;\n  public llaveSeguimiento: string;\n\n  itemsBotonAcciones: MenuItem[];\n  labelRegresar: string = 'regresar';\n  labelTarea: string = 'novedad'\n  public isLoading: boolean = false;\n  public verPopupMomentoDocumento: boolean = false;\n  public nuevoDocumento: boolean;\n  public fechaSelectTurno: string;\n  public loading: boolean = true;\n  @ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n  @ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  constructor(public ausentismoPipe: AusentismoPipe,\n    private ausentismoService: AusentismoService,\n    private tipoNovedadPipe: TipoNovedadCons,\n    private novedadPipe: NovedadPipe,\n    private parametrosPipe: ParametrosPipe,\n    private authService: AuthService,\n    private generalService: GeneralService,\n    public utilsService: UtilsService,\n    private confirmationService: ConfirmationService,\n    public controlFuncionService: CargarControlFuncionalidadService,\n    private notificacionesService: ToastService,\n    private datoOrganizacionPipe: DatoOrganizacionPipe,\n    private listaConstantesPipe: ListaConstantesPipe,\n    private popupsDinamicosPipe: PopupsDinamicosPipe,\n    private generalPipe: GeneralPipe,\n    public translateService: TranslateService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private workFlowPipe: WorkflowPipe,\n    private cargarArchivo: CargarArchivosService,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe) { }\n\n  ngOnInit(): void {\n    this.cliente = this.authService.getTokenKey('tipoLogin') != 'U';\n    this.deshabilitarTipoAusencia = false;\n    this.listaProrroga = this.generalPipe.LISTA_SINO;\n    this.tipoAusenciaDTO = new TipoAusenciaModel();\n  }\n\n  async buscar(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleado: EmpleadoModel, unicoRegistro: boolean) {\n    novedad = this.formatearNovedad(novedad)\n    this.clickGuardar = false;\n    this.unicoRegistro = unicoRegistro;\n    this.panel = 0;\n    this.mostrarMensaje = false;\n    this.noBloquear = true;\n    var hoy = new Date();\n    if (this.cliente && ('S' == novedad.bloqueo) || (novedad.fechaBloqueo != null && hoy < novedad.fechaBloqueo)) {\n      this.noBloquear = false;\n    }\n    this.form = form;\n    this.origenTarea = origenTarea;\n    if (origenTarea == this.ausentismoPipe.ORIGEN_EMPLEADO_LICENCIA) {\n      this.labelRegresar = 'listadolicencia'\n      this.labelTarea = 'licencia'\n    }\n    this.mapaEstados = this.novedadPipe.ESTADONOVEDAD;\n    this.empleado = empleado;\n    this.dias = false;\n    this.pasivo = false;\n    await this.cargarListaTipoAusentismo();\n    this.encuesta = false;\n    this.procesoAutorizacion = false;\n    if (novedad == null || this.utilsService.isBlank(novedad.llaveTabla)) {\n      this.nuevoRegistro = true;\n      this.formularioEditable = true;\n      if (novedad == null) {\n        novedad = new AusenciaNovedadModel();\n      } else {\n        this.deshabilitarTipoAusencia = true;\n      }\n      novedad.llaveTabla = this.utilsService.generarLlave();\n      novedad.estado = this.novedadPipe.NUEVA;\n      this.novedad = novedad;\n    } else {\n      this.nuevoRegistro = false;\n      this.novedad = novedad;\n      this.estado = this.novedad.estado;\n    }\n    await this.validarTipoAusencia();\n    await this.cargarListaDocumentoTipoNovedad();\n    await this.cargarTipo(novedad.tipoAusencia);\n    await this.cargarListaRango();\n    this.ControlBotones();\n    await this.cargarCampos();\n    if (this.isManejoTurnoSalida()) {\n      await this.consultaFechaTurno(this.novedad.salida);\n    }\n    this.loading = false;\n    await this.utilsService.sleep(500); \n    this.utilsService.resizeWindowIFrame();\n  }\n\n  validarSolicitud() {\n    var validador: boolean = true;\n    if (this.isManejoTurnoSalida()) {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.fechaSelectTurno);\n    } else {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.novedad.salida);\n    }\n    return validador;\n  }\n\n  async solicitarLicencia() {\n    var validarFormulario: boolean = this.formulario ? this.formulario.validar() : true;\n    if (!this.validarSolicitud() || !validarFormulario) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    if (!this.validarAnexoObligatorio()) {\n      return null;\n    }\n    if (this.formulario) {\n      this.novedad = this.formulario.getObjecto();\n      this.novedad.horasDisfrute = this.novedad.horasDisfrute ? parseInt(this.novedad.horasDisfrute.toString().replace(':', '')) : null;\n    }\n    if (this.isManejoTurnoSalida()) {\n      await this.utilsService.sleep(100);\n      this.novedad.salida = this.seleccionFecha(this.fechaSelectTurno);\n      await this.consultaFechaTurno(this.novedad.salida);\n    }\n\n    this.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n    this.novedad.solicita = this.empleado.cedula;\n    this.ausentismoService.crearLicencia({\n      ausencia: this.novedad,\n      empleado: this.empleado,\n      origen: this.ausentismoPipe.LICENCIA,\n      nuevoRegistro: this.nuevoRegistro,\n      listaPasivo: this.listaPasivoGeneral,\n      pasivo: this.pasivo,\n      usuario: this.authService.getTokenKey('usuario'),\n      seguimiento: this.seguimiento\n    }).subscribe(data => {\n      this.novedad = data;\n      this.novedad = this.formatearNovedad(this.novedad)\n      this.nuevoRegistro = false;\n      if (this.novedad.mensaje != null) {\n        this.ausentismoService.eliminarRegistro({ llaveVacacion: this.novedad.llaveTabla }).subscribe(data => {\n          this.nuevoRegistro = true;\n          this.novedad.estado = this.novedadPipe.NUEVA;\n          this.novedad.llaveTabla = null;\n          this.notificacionesService.showWarning(this.novedad.mensaje);\n          //FormularioDinamico.getFormulario().modificar(this.novedad, true);  \n        })\n      } else {\n        this.notificacionesService.showInfo('Se actualizó el registro exitosamente');\n        //FormularioDinamico.getFormulario().modificar(this.novedad, true);\n        this.validarTipoAusencia();\n      }\n      if (this.seguimiento) {\n        this.seguimiento = false;\n        this.mostrarPopupSeguimiento = true;\n        this.llaveSeguimiento = this.novedad.llaveTabla\n\n      }\n      this.ControlBotones();\n    })\n  }\n\n  async solicitarLegalizarLicencia() {\n    var validarFormulario: boolean = this.formulario ? this.formulario.validar() : true;\n    if (!this.validarSolicitud() || !validarFormulario) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    if (!this.validarAnexoObligatorio()) {\n      return null;\n    }\n    if (this.formulario) {\n      this.novedad = this.formulario.getObjecto();\n      this.novedad.horasDisfrute = this.novedad.horasDisfrute ? parseInt(this.novedad.horasDisfrute.toString().replace(':', '')) : null;\n    }\n    if (this.isManejoTurnoSalida()) {\n      await this.utilsService.sleep(100);\n      this.novedad.salida = this.seleccionFecha(this.fechaSelectTurno);\n    }\n    this.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n    this.novedad.solicita = this.empleado.cedula;\n    this.ausentismoService.insertarLegalizarAusentismoAusencia({\n      ausencia: this.novedad,\n      empleado: this.empleado,\n      origen: this.ausentismoPipe.LICENCIA,\n      nuevoRegistro: this.nuevoRegistro,\n      listaPasivo: this.listaPasivoGeneral,\n      pasivo: this.pasivo,\n      usuario: this.authService.getTokenKey('usuario')\n    }).subscribe(data => {\n      this.novedad = data;\n      this.nuevoRegistro = false;\n      if (this.novedad.mensaje != null) {\n        this.ausentismoService.eliminarRegistro({ llaveVacacion: this.novedad.llaveTabla }).subscribe(data => {\n          this.nuevoRegistro = true;\n          this.novedad.estado = this.novedadPipe.NUEVA;\n          this.novedad.llaveTabla = null;\n          this.notificacionesService.showWarning(this.novedad.mensaje);\n          //FormularioDinamico.getFormulario().modificar(this.novedad, true);  \n        })\n      } else {\n        this.notificacionesService.showInfo(\"Se actualizó el registro exitosamente\");\n        this.validarTipoAusencia();\n        this.regresar.emit();\n      }\n      this.ControlBotones();\n    })\n  }\n\n  legalizarLicencia() {\n    this.ausentismoService.cambiarEstadoLegalizado({\n      ausencia: this.novedad,\n      empleado: this.empleado,\n      origen: 'L',\n      usuario: this.authService.getTokenKey('usuario')\n    }).subscribe(data => {\n      this.novedad = data\n      this.ControlBotones();\n      this.regresar.emit();\n    });\n  }\n\n  noLegalizarLicencia() {\n    this.ausentismoService.cambiarEstadoNoLegalizado({\n      ausencia: this.novedad,\n      empleado: this.empleado,\n      origen: 'V',\n      usuario: this.authService.getTokenKey('usuario')\n    }).subscribe(data => {\n      this.novedad = data\n      this.ControlBotones();\n      this.regresar.emit();\n    });\n  }\n\n  eliminarSolicitud() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      header: 'Confirmación',\n      icon: 'confirmar',\n      key: 'eliminaprogramacion',\n      accept: () => {\n        this.ausentismoService.eliminarAusentismoAusencia({\n          novedad: this.novedad,\n          empleado: this.empleado,\n          origen: 'L'\n        }).subscribe(data => {\n          this.eliminarDocumento();\n          this.notificacionesService.showInfo('Se eliminó el registro exitosamente');\n          this.regresar.emit();\n        });\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarSolicitudDirecto() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      header: 'Confirmación',\n      icon: 'confirmar',\n      key: 'eliminaprogramacion',\n      accept: () => {\n        this.ausentismoService.eliminarRegistro({ llaveVacacion: this.novedad.llaveTabla }).subscribe(data => {\n          this.eliminarDocumento();\n          this.notificacionesService.showInfo('Se eliminó el registro exitosamente');\n          this.regresar.emit();\n        });\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  regresarAction() {\n    this.regresar.emit()\n  }\n\n  async cambiarDatos() {\n    this.novedad.estado = this.novedadPipe.NUEVA;\n    this.formularioEditable = true;\n    this.ControlBotones();\n    await this.cargarCampos();\n  }\n\n  formatearNovedad(novedad: AusenciaNovedadModel): AusenciaNovedadModel {\n    novedad.iniPeriodo = novedad.iniPeriodo ? new Date(novedad.iniPeriodo) : null;\n    novedad.finPeriodo = novedad.finPeriodo ? new Date(novedad.finPeriodo) : null;\n    novedad.salida = novedad.salida ? new Date(novedad.salida) : null;\n    novedad.salidaNomina = novedad.salidaNomina ? new Date(novedad.salidaNomina) : null;\n    novedad.termina = novedad.termina ? new Date(novedad.termina) : null;\n    novedad.regreso = novedad.regreso ? new Date(novedad.regreso) : null;\n    novedad.regresoNomina = novedad.regresoNomina ? new Date(novedad.regresoNomina) : null;\n    novedad.fechaOrigen = novedad.fechaOrigen ? new Date(novedad.fechaOrigen) : null;\n    novedad.fechaPago = novedad.fechaPago ? new Date(novedad.fechaPago) : null;\n    novedad.horaSalida = novedad.horaSalida ? new Date(novedad.horaSalida) : null;\n    novedad.horaRegresa = novedad.horaRegresa ? new Date(novedad.horaRegresa) : null;\n    novedad.recupera = novedad.recupera ? new Date(novedad.recupera) : null;\n    novedad.reinicio = novedad.reinicio ? new Date(novedad.reinicio) : null;\n    novedad.anticipoNomina = novedad.anticipoNomina ? new Date(novedad.anticipoNomina) : null;\n    novedad.fechaIngreso = novedad.fechaIngreso ? new Date(novedad.fechaIngreso) : null;\n    novedad.fechaAntiguedad = novedad.fechaAntiguedad ? new Date(novedad.fechaAntiguedad) : null;\n    novedad.fecha1 = novedad.fecha1 ? new Date(novedad.fecha1) : null;\n    novedad.fecha2 = novedad.fecha2 ? new Date(novedad.fecha2) : null;\n    novedad.hora1 = novedad.hora1 ? new Date(novedad.hora1) : null;\n    novedad.hora2 = novedad.hora2 ? new Date(novedad.hora2) : null;\n    novedad.fechaALegalizar = novedad.fechaALegalizar ? new Date(novedad.fechaALegalizar) : null;\n    novedad.fechaBloqueo = novedad.fechaBloqueo ? new Date(novedad.fechaBloqueo) : null;\n    return novedad;\n  }\n\n  async cargarCampos() {\n    let data = await this.ausentismoService.cargarCamposLicencia({ llaveBase: this.tipoAusenciaDTO.llaveTabla, novedad: this.novedad }).toPromise();\n    this.campos = data.listaCampos;\n    this.setValorCampos();\n  }\n\n  setValorCampos() {\n    this.campos.forEach(element => {\n      if (typeof element.valor === 'string') {\n        element.valor = element.valor.trim()\n      }\n      if (element.tipo === 'F') {\n        element.valor = element.valor ? new Date(element.valor) : null\n      } else if (element.tipo === 'H') {\n        if (element.valor) {\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';')\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 })\n          })\n          element.valor = listaValortemp\n        }\n      } else if (element.tipo === 'P') {\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n          if (element.popup == pop.id) {\n            element.popupComponent = pop.popup;\n            element['cargarValorPopup'] = (event) => { element.valor = event };\n            element.propiedadesPopupComponent = {\n              readonly: !this.formularioEditable || element.editable == 'L',\n              showDialog: false,\n              label: element.valor,\n              onChange: (event) => element.cargarValorPopup(event)\n            }\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup)\n          }\n        });\n      } else if (element.tipo === 'Z') {\n        if (element.valor) {\n          let valorEnDecimal = element.valor;\n          const horas = Math.floor(valorEnDecimal / 100);\n          const minutos = valorEnDecimal % 100;\n          element.valor = `${horas.toString().padStart(2, '0')}:${minutos.toString().padStart(2, '0')}`;\n        }\n      }\n    });\n    this.formulario?.ngAfterViewInit();\n  }\n\n  ControlBotones() {\n    this.controles = new Map<string, boolean>();\n    var valor = '';\n    //validaCredencial();\n\n    if (this.novedad.estado == this.novedadPipe.ACTOELABORADA) {\n      return;\n    }\n    this.controles.set('empRetirado', this.controlFuncionService.getControlFuncionalidad('licsol:empRetirado'));\n    if (this.authService.getTokenKey('tipoLogin') == 'U') {\n      if (this.novedad.estado == this.novedadPipe.SOLICITUD || this.novedad.estado == this.novedadPipe.AUTORIZADA\n        || this.novedad.estado == this.novedadPipe.SOLICITUDINCONSISTENCIA\n        || this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA) {\n        this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('licsol:guardar') != null || this.controlFuncionService.getControlFuncionalidad('licsol:guardarLegalizar') != null);\n      }\n    } else {\n      if (this.novedad.estado == this.novedadPipe.SOLICITUD || this.novedad.estado == this.novedadPipe.SOLICITUDINCONSISTENCIA\n        || this.novedad.estado == this.novedadPipe.PROGRAMADAINCONSISTENCIA) {\n        if (this.soyYo) {\n          this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('licsol:guardar_mio'));\n        } else {\n          this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('licsol:guardar'));\n        }\n      }\n\n    }\n\n    this.controles.set('eliminarDirecto', this.controlFuncionService.getControlFuncionalidad('licsol:eliminarDirecto'));\n    if (this.soyYo) {\n      this.controles.set('eliminar', this.controlFuncionService.getControlFuncionalidad('licsol:eliminar_mio'));\n    } else {\n      this.controles.set('eliminar', this.controlFuncionService.getControlFuncionalidad('licsol:eliminar'));\n    }\n    if (this.novedad.estado == this.novedadPipe.SOLICITUDINCONSISTENCIA || this.novedad.estado == this.novedadPipe.NOAUTORIZADA\n      || this.novedad.estado == this.novedadPipe.NUEVA) {\n      this.controles.set('guardarLegalizar', this.controlFuncionService.getControlFuncionalidad('licsol:guardarLegalizar'));\n      valor = 'guardar';\n    }\n    if (valor == '') {\n      if (this.novedad.estado == this.novedadPipe.AUTORIZADA) {\n        valor = 'legalizar';\n      }\n    }\n\n    if (this.soyYo) {\n      this.controles.set(valor, this.controlFuncionService.getControlFuncionalidad('licsol:' + valor + '_mio'));\n    } else {\n      this.controles.set(valor, this.controlFuncionService.getControlFuncionalidad('licsol:' + valor));\n    }\n    this.cargarAccionesBoton();\n  }\n\n  cargarAccionesBoton() {\n    this.itemsBotonAcciones = [\n      {\n        label: this.translateService.instant('link_guardar'), icon: \"glyphicons glyphicons-floppy-save\",\n        visible: (this.controles.get('guardar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.solicitarLicencia();\n          }\n      },\n      {\n        label: this.translateService.instant('link_guardarlegalizar'), icon: \"glyphicons glyphicons-edit\",\n        visible: (this.controles.get('guardarLegalizar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.solicitarLegalizarLicencia();\n          }\n      },\n      {\n        label: this.translateService.instant('link_legalizar'), icon: \"glyphicons glyphicons-edit\",\n        visible: (this.controles.get('legalizar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.legalizarLicencia();\n          }\n      },\n      {\n        label: this.translateService.instant('nolegalizar'), icon: \"glyphicons glyphicons-check\",\n        visible: (this.controles.get('legalizar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.noLegalizarLicencia();\n          }\n      },\n      {\n        label: this.translateService.instant('link_cambiardato'), icon: \"glyphicons glyphicons-refresh\",\n        visible: this.noBloquear && (this.controles.get('cambioDato') ?? false) && this.isVerBtnCambiarDatos() && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          async (event) => {\n            await this.cambiarDatos();\n          }\n      },\n      {\n        label: this.translateService.instant('link_eliminar'), icon: \"glyphicons glyphicons-bin\",\n        visible: this.noBloquear && (this.controles.get('eliminar') ?? false) && !this.nuevoRegistro && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.eliminarSolicitud();\n          }\n      },\n      {\n        label: this.translateService.instant('link_eliminar') + ' ' + this.translateService.instant('directo'), icon: \"glyphicons glyphicons-dustbin\",\n        visible: this.noBloquear && (this.controles.get('eliminarDirecto') ?? false) && !this.nuevoRegistro && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.eliminarSolicitudDirecto();\n          }\n      }\n    ]\n  }\n\n  async cargarListaRango() {\n    this.listaFechaSalida = [];\n    var listaRango: RangoModel[] = await this.generalService.queryForList(new GeneralModel('RangoDTO', null, false, {\n      tablaBase: this.datoOrganizacionPipe.AUSENCIA,\n      llaveTablaBase: this.tipoAusenciaDTO.llaveTabla,\n      estado: this.generalPipe.SI,\n    })).toPromise();\n    let mapRetorna: Map<string, string> = new Map<string, string>();\n    listaRango.forEach(async unaRango => {\n      let consulta = await this.fechaUtils.formatFecha({ fechaBase: this.datePipe.transform(new Date(unaRango.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), formato: this.translateService.instant('formatofecha') }).toPromise();\n      var descripcion = consulta.respuesta;\n      if (unaRango.descripcion != null) {\n        descripcion = unaRango.descripcion + ' - ' + descripcion;\n      }\n      mapRetorna.set(consulta.respuesta, descripcion);\n    });\n    await this.utilsService.sleep(100);\n    this.listaFechaSalida = (Array.from(mapRetorna, ([codigo, nombre]) => ({ codigo, nombre })));\n  }\n\n  async cargarListaDocumentoTipoNovedad() {\n    this.listaRequisitoHoja = [];\n    this.listaDocumentoTipoAusencia = [];\n    if (this.novedad.tipoAusencia == null) {\n      return;\n    }\n    var requisitoHojaDTO: RequisitoHojaModel = new RequisitoHojaModel();\n    requisitoHojaDTO.actoAdministrativo = this.novedad.llaveTabla;\n\n    this.listaDocumentoTipoAusencia = await this.generalService.queryForList(new GeneralModel('MomentoDocumentoDTO', 'MomentoDocumento.consultarMomentoDocumentoFiltro', false, await this.filtroMomentoDocumento())).toPromise();\n\n    if (this.novedad.llaveTabla == null) {\n      return;\n    }\n    let extensionArchivo = [];\n    let propiedad = 'ruta_anexosHojaVida'\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      // Se valida si el tipoDocumento ya tiene un archivo asociado\n      var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n      requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n      requisitoHojaFiltro.actoAdministrativo = this.novedad.llaveTabla;\n      var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n      if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n        requisitoHojaFiltro = listadoRequisitoHoja[0];\n        documento.requisitoHojaDTO = requisitoHojaFiltro;\n        if (documento.tipo != null && documento.tipo == this.parametrosPipe.DOCUMENTO_ANEXO) {\n          extensionArchivo = requisitoHojaFiltro.archivo.split('.');\n          if (this.listaConstantesPipe.CUMPLIDO == requisitoHojaFiltro.estado) {\n            let rutaArchivo: string = propiedad + requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1];\n            documento.ruta = this.encriptadoBasico.encriptar(rutaArchivo);\n          }\n        }\n      }\n    })\n  }\n\n  async filtroMomentoDocumento(): Promise<MomentoDocumentoModel> {\n    var momentoDocumento: MomentoDocumentoModel = new MomentoDocumentoModel();\n    momentoDocumento.momento = this.novedad.tipoAusencia;\n    momentoDocumento.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n    momentoDocumento.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    momentoDocumento.vinculacion = this.empleado.vinculacion;\n    momentoDocumento.cargo = this.empleado.cargo;\n    if (this.empleado.cargo != null) {\n      var cargoVar: CargoModel = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, { cargo: this.empleado.cargo, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n      momentoDocumento.nivelCargo = cargoVar.nivelCargo;\n    }\n    var hojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, { identifica: this.empleado.cedula })).toPromise();\n    momentoDocumento.ubicacion = hojaVidaDTO.ubicaciongeo;\n    momentoDocumento.sexo = hojaVidaDTO.sexo;\n    return momentoDocumento;\n  }\n\n  async verDocumento(event) {\n    this.verPopupMomentoDocumento = true;\n    this.momentoDocumentoDTO = event.data;\n    if (this.momentoDocumentoDTO.requisitoHojaDTO) {\n      this.nuevoDocumento = false;\n    } else {\n      this.nuevoDocumento = true;\n    }\n  }\n\n  eliminarDocumento() {\n    if (this.listaDocumentoTipoAusencia.length > 0) {\n      this.listaDocumentoTipoAusencia.forEach(async documento => {\n        var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n        requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n        requisitoHojaFiltro.actoAdministrativo = this.novedad.llaveTabla;\n        var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n        if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n          requisitoHojaFiltro = listadoRequisitoHoja[0];\n          documento.requisitoHojaDTO = requisitoHojaFiltro;\n          await this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n          let extensionArchivo: string = requisitoHojaFiltro.archivo.split('?')[0].split(Constantes.PUNTO).pop();\n          let propiedad = 'ruta_anexosHojaVida'\n          let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n          this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo), propiedad, codigoAplicacion).subscribe(blob => { });\n        }\n      })\n    }\n  }\n\n  descargarAnexo(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    let extensionArchivo = documento.archivo.split('.');\n    this.isLoading = true;\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1]), propiedad, aplicacion).subscribe({\n      next: (data) => {\n        this.isLoading = false;\n        const a = document.createElement('a')\n        const objectUrl = URL.createObjectURL(data)\n        a.href = objectUrl\n        a.download = documento.archivo;\n        a.click();\n        URL.revokeObjectURL(objectUrl);\n      },\n      error: (err) => {\n        this.isLoading = false;\n        this.notificacionesService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema.')\n      }\n    })\n  }\n\n  public validarAnexoObligatorio(): boolean {\n    let validador: boolean = true;\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      if (documento.opcional == Constantes.CONSTANTE_NO) {\n        if (!documento.requisitoHojaDTO) {\n          this.notificacionesService.showWarning('Debe incluir el anexo: ' + documento.nombreTipoDocumento);\n          validador = false;\n          return;\n        }\n      }\n    })\n    return validador;\n  }\n\n  async validarTipoAusencia() {\n    this.tipoAusenciaDTO = new TipoAusenciaModel();\n    this.tipoAusenciaDTO.llaveTabla = this.novedad.tipoAusencia;\n    this.tipoAusenciaDTO = await this.generalService.queryForObject(new GeneralModel('TipoAusenciaDTO', null, false, this.tipoAusenciaDTO)).toPromise();\n    this.mostrarMensaje = this.tipoAusenciaDTO != null && this.tipoAusenciaDTO.mensaje != null;\n    if (!this.novedad.nombreTipoAusencia) {\n      this.novedad.nombreTipoAusencia = this.tipoAusenciaDTO.descripcion;\n    }\n  }\n\n  async cargarTipo(tipoAusentismo: string) {\n    if (tipoAusentismo != null) {\n\n      var cantidad = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, {\n        origen: this.ausentismoPipe.LICENCIA,\n        tipoAusencia: tipoAusentismo,\n        tipoRegistro: 'PA',\n        contrato: this.empleado.contrato\n      })).toPromise();\n      if (cantidad) {\n        await this.cargarPasivo(this.empleado, this.novedad);\n        this.pasivo = true;\n      } else {\n        this.dias = true;\n      }\n    }\n  }\n\n  async cargarPasivo(empleado: EmpleadoModel, novedad: AusenciaNovedadModel) {\n    this.listaPasivoGeneral = [];\n    this.listaPasivoGeneral = await this.ausentismoService.traerProgamacionPasivoAusencia({\n      contrato: empleado.contrato,\n      llaveBase: novedad.llaveTabla,\n      origen: this.ausentismoPipe.LICENCIA\n    }).toPromise();\n  }\n\n  async cargarListaTipoAusentismo() {\n    var empresaDTO = new EmpresaModel();\n    var numeroEmpresa: number = this.empleado.empresa;\n    empresaDTO.empresa = numeroEmpresa;\n    empresaDTO = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, empresaDTO)).toPromise();\n    this.listaTipoLicenciaAusencia = [];\n    var comodin: TipoAusenciaModel = new TipoAusenciaModel();\n    comodin.modoParametro = empresaDTO.modoCompensacion;\n    comodin.origen = this.ausentismoPipe.LICENCIA;\n    comodin.estado = this.generalPipe.SI;\n    comodin.filtroLoginRol = 'TA';\n    comodin.login = this.authService.getTokenKey('usuario');\n    comodin.rolUsuario = this.authService.getTokenKey('aliasRol');\n    var lista: TipoAusenciaModel[];\n    lista = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, comodin)).toPromise();\n    lista.forEach(tipoAusentismoDTO => {\n      this.listaTipoLicenciaAusencia.push({ codigo: tipoAusentismoDTO.llaveTabla, nombre: tipoAusentismoDTO.descripcion });\n    });\n    this.mapaEstadoDoc = this.listaConstantesPipe.CUMPLIDO_REQ;\n    this.listaRequisitoHojaBorrar = [];\n  }\n\n  validarEdicionFormulario() {\n    if (this.controles.get('guardar') == null || this.encuesta || this.procesoAutorizacion || !this.controles.get('guardar')) {\n      if (this.controles.get('guardarLegalizar') == null || this.procesoAutorizacion || this.encuesta || !this.controles.get('guardarLegalizar')) {\n        this.formularioEditable = false;\n      } else {\n        this.formularioEditable = true;\n      }\n    }\n  }\n\n  obtenerEstado(estado) {\n    var estadoRetorno = '';\n    var retorno = this.mapaEstados.filter(element => element.codigo == estado)\n    if (retorno?.length > 0) {\n      estadoRetorno = retorno[0].nombre\n    }\n    return estadoRetorno;\n  }\n\n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    var ausencia = new AusenciaNovedadModel();\n    ausencia.llaveTabla = actividad.llaveTablaBase;\n    ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();;\n\n    if (ausencia == null) {\n      this.notificacionesService.showError(\"Objeto no existe\");\n      this.regresarAction();\n      return;\n    }\n\n    this.encuesta = true;\n    this.procesoAutorizacion = false;\n\n    await this.utilsService.sleep(300);\n    await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, ausencia);\n\n    this.empleado = new EmpleadoModel();\n    this.empleado.contrato = ausencia.contrato;\n    this.empleado.empresa = ausencia.empresa;\n    this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleado)).toPromise();\n    await this.buscarBPM(this.ausentismoPipe.ORIGEN_ACTIVIDAD_LICENCIA, this.ausentismoPipe.FORM_ACTIVIDAD_LICENCIA, ausencia, this.empleado);\n  }\n\n  public async verAutorizacion(llaveActividad: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    var ausencia = new AusenciaNovedadModel();\n    ausencia.llaveTabla = actividad.llaveTablaBase;\n    ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();;\n\n    if (ausencia == null) {\n      this.notificacionesService.showError(\"Objeto no existe\");\n      this.regresarAction();\n      return;\n    }\n\n    this.encuesta = false;\n    this.procesoAutorizacion = true;\n    await this.utilsService.sleep(300);\n    await this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOLICENCIA, ausencia);\n\n    this.empleado = new EmpleadoModel();\n    this.empleado.contrato = ausencia.contrato;\n    this.empleado.empresa = ausencia.empresa;\n    this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleado)).toPromise();\n\n    await this.buscarBPM(this.ausentismoPipe.ORIGEN_ACTIVIDAD_LICENCIA, this.ausentismoPipe.FORM_ACTIVIDAD_LICENCIA, ausencia, this.empleado);\n  }\n\n  public async buscarBPM(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleado: EmpleadoModel) {\n    novedad = this.formatearNovedad(novedad)\n    this.empleado = empleado;\n    await this.cargarListaTipoAusentismo();\n    this.form = form;\n    this.origenTarea = origenTarea;\n    this.dias = false;\n    this.pasivo = false;\n    if (novedad == null) {\n      this.nuevoRegistro = true;\n      novedad = new AusenciaNovedadModel();\n      novedad.estado = this.novedadPipe.NUEVA;\n      this.novedad = novedad;\n    } else {\n      this.nuevoRegistro = false;\n      this.novedad = novedad;\n      //await this.cargarTipo(novedad.tipoAusencia);\n      this.estado = this.novedad.estado;\n\n    }\n    await this.validarTipoAusencia();\n    await this.cargarListaDocumentoTipoNovedad();\n    await this.cargarTipo(novedad.tipoAusencia);\n    this.ControlBotones();\n    await this.cargarCampos();\n    await this.cargarListaRango();\n    this.loading = false;\n    await this.utilsService.sleep(500); \n    this.utilsService.resizeWindowIFrame();\n  }\n\n  seleccionFecha(dateStr: any): Date {\n    const [day, month, year] = dateStr.split('/').map(Number);\n    const date = new Date(year, month - 1, day);\n    return date;\n  }\n\n  async consultaFechaTurno(fechaRecibe: Date) {\n    let consulta = await this.fechaUtils.formatFecha({ fechaBase: this.datePipe.transform(new Date(fechaRecibe), 'yyyy-MM-dd HH:mm:ss.S'), formato: this.translateService.instant('formatofecha') }).toPromise();\n    this.fechaSelectTurno = consulta.respuesta;\n  }\n\n  regresarPopupSeguimiento() {\n    this.mostrarPopupSeguimiento = false;\n  }\n\n  async regresaPopupRequisitoContratacion() {\n    this.verPopupMomentoDocumento = false;\n    await this.cargarListaDocumentoTipoNovedad();\n  }\n\n  isPorLegalizar(): boolean {\n    return this.novedadPipe.NOVEDAD_POR_LEGALIZAR == this.estadoNovedad;\n  }\n\n  isPorAutorizar(): boolean {\n    return this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estadoNovedad;\n  }\n\n  isPorSolicitar(): boolean {\n    return this.novedadPipe.NOVEDAD_POR_SOLICITAR == this.estadoNovedad;\n  }\n\n  isVerBtnCambiarDatos(): boolean {\n    return !this.isPorAutorizar() && !this.isPorLegalizar();\n  }\n\n  isFuncional(): boolean {\n    return this.authService.getTokenKey('tipoLogin') == 'U';\n  }\n\n  isVerBtnGuardar(): boolean {\n    return this.controles != null && (this.controles.get('guardar') || this.controles.get('aplicar'));\n  }\n\n  isEmpleadoActivo(): boolean {\n    return this.empleado != null && this.empleadoActivo();\n  }\n\n  empleadoActivo() {\n    if (this.empleado.estadoLaboral == null || this.empleado.estadoLaboralPeriodo == null) {\n      return false;\n    }\n    return this.empleado.estadoLaboral == this.empleado.estadoLaboralPeriodo;\n  }\n\n  isManejoTurnoSalida() {\n    return this.tipoAusenciaDTO != null && this.generalPipe.SI === this.tipoAusenciaDTO.manejoTurno?.trim();\n  }\n\n}\n","@if(loading){\n<p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n}\n@if(!loading){\n<app-cabecera-empleado [empleado]=\"empleado\"\n    *ngIf=\"empleado != null && origenTarea != ausentismoPipe.ORIGEN_EMPLEADO_LICENCIA\"></app-cabecera-empleado>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2 align-items-between\">\n    <h4 class=\"text-xl mb-0\">{{labelTarea | translate}}</h4>\n    <button pButton pRipple *ngIf=\"!unicoRegistro\" (click)=\"regresarAction()\" label=\"{{labelRegresar | translate}}\"\n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 mb-2\"></button>\n</div>\n<div class=\"contenedor\">\n    <div class=\"card p-4 Inputgroup mb-5\">\n        <div class=\"flex justify-content-between align-items-center mt-2 mb-2 align-items-between\">\n            <h5 style=\"margin-bottom: 0 !important; \"><i class='glyphicons glyphicons-home'></i>\n                <span>{{'detalle' | translate}} {{'solicitud' | translate}}</span>\n            </h5>\n            <h6 *ngIf=\"!noBloquear\" class=\"background-85 text-xs text-gray-700 font-medium p-1 m-0\">{{'bloqueomodificar'\n                | translate}}</h6>\n        </div>\n        <div class=\"p-fluid p-formgrid grid mt-3\">\n            <!-- TIPO AUSENTISMO -->\n            <div class=\"field col-12 md:col-6 lg:col-9\">\n                <span class=\"p-float-label\">\n                    <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\"\n                        [(ngModel)]=\"novedad.nombreTipoAusencia\" autocomplete=\"off\" />\n                    <label>{{'tipoausencia' | translate}}</label>\n                </span>\n            </div>\n            <!-- ESTADO -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_estado\" [options]=\"mapaEstados\" [autoDisplayFirst]=\"false\"\n                        optionLabel=\"nombre\" optionValue=\"codigo\" [(ngModel)]=\"novedad.estado\"\n                        [readonly]=\"true\"></p-dropdown>\n                    <label>{{'estado' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA SALIDA -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isManejoTurnoSalida()\">\n                <span class=\"p-float-label\">\n                    <p-dropdown [options]=\"listaFechaSalida\" [(ngModel)]=\"fechaSelectTurno\"\n                        [disabled]=\"encuesta || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(fechaSelectTurno) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(fechaSelectTurno) && clickGuardar\"\n                        optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label>{{'fechasalida' | translate}}*</label>\n                </span>\n            </div>\n            <!-- FECHA SALIDA -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"!isManejoTurnoSalida()\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"novedad.salida\" dateFormat=\"dd/mm/yy\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\"\n                        [showIcon]=\"true\"\n                        [disabled]=\"encuesta || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"></p-calendar>\n                    <label>{{'fechasalida' | translate}}*</label>\n                </span>\n            </div>\n            <!-- FECHA SALIDA NOMINA -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isFuncional() && !pasivo\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"novedad.salidaNomina\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                        [disabled]=\"encuesta || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"></p-calendar>\n                    <label>{{'fechasalidanomina' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA TERMINA -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"novedad.termina\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                        [disabled]=\"true\"></p-calendar>\n                    <label>{{'fechatermina' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA REGRESO NOMINA -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isFuncional()\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"novedad.regresoNomina\" dateFormat=\"dd/mm/yy\" [disabled]=\"true\"\n                        [showIcon]=\"true\"\n                        *ngIf=\"isFuncional() && novedad.regresoNomina != null && novedad.regresoNomina != undefined\"></p-calendar>\n                    <p-calendar [(ngModel)]=\"novedad.regreso\" dateFormat=\"dd/mm/yy\" [disabled]=\"true\" [showIcon]=\"true\"\n                        *ngIf=\"isFuncional() && (novedad.regresoNomina == null || novedad.regresoNomina == undefined)\"></p-calendar>\n                    <label>{{'fecha' | translate}} {{'regreso' | translate}} {{'nomina' | translate}}</label>\n                </span>\n            </div>\n            <!-- MENSAJE -->\n            <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"novedad.mensaje != null\">\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea [(ngModel)]=\"novedad.mensaje\" [disabled]=\"true\"\n                        class=\"w-full min-h-100 max-h-250 border-2 border-color-500\">>\n                            </textarea>\n                    <label class=\"color-500\">{{'mensaje' | translate}}</label>\n                </span>\n            </div>\n            <!-- MENSAJE CONTROL -->\n            <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"novedad.mensajeControl != null\">\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea [(ngModel)]=\"novedad.mensajeControl\" [disabled]=\"true\"\n                        class=\"w-full min-h-100 max-h-250\">\n                            </textarea>\n                    <label>{{'mensajecontrol' | translate}}</label>\n                </span>\n            </div>\n            <!-- CEDULA AUTORIZADOR BPM -->\n            <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"novedad.autorizadorBPM != null\">\n                <span class=\"p-float-label\">\n                    <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\"\n                        [(ngModel)]=\"novedad.autorizadorBPM\" autocomplete=\"off\" />\n                    <label>{{'autorizadorbpm' | translate}}</label>\n                </span>\n            </div>\n            <!-- NOMBRE AUTORIZADOR BPM -->\n            <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"novedad.autorizadorBPM != null\">\n                <span class=\"p-float-label\">\n                    <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\"\n                        [(ngModel)]=\"novedad.nombreAutorizadorBPM\" autocomplete=\"off\" />\n                    <label>{{'nombre' | translate}} {{'autorizadorbpm' | translate}}</label>\n                </span>\n            </div>\n        </div>\n        <!-- FORMULARIO DINAMICO SEGUN LA INFORMACION ADICIONAL ASOCIADA EN EL AUSENTISMO -->\n        <formulario-dinamico #formulario [editable]=\"formularioEditable\" [campos]=\"campos\" [objeto]=\"novedad\"\n            *ngIf=\"campos.length > 0\"></formulario-dinamico>\n    </div>\n</div>\n<!-- TABLA PASIVOS -->\n<div class=\"card p-4\" *ngIf=\"pasivo\">\n    <h5 class=\"mt-0\"><i class='glyphicons glyphicons-list'></i>\n        <span>{{'pasivo' | translate}}s</span>\n    </h5>\n    <p-table #tablaPasivo responsiveLayout=\"scroll\" [value]=\"listaPasivoGeneral\" [rows]=\"30\"\n        [totalRecords]=\"listaPasivoGeneral.length\" [paginator]=\"listaPasivoGeneral.length > 30\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [scrollable]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\">\n        <ng-template pTemplate=\"header\">\n            <tr class=\"fondoTablaPincipal\">\n                <th>{{'tipo' | translate}}</th>\n                <th>{{'periodo' | translate}} {{'servicio' | translate}}</th>\n                <th>{{'dias' | translate}} {{'disponible' | translate}}</th>\n                <th>{{'dias' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr>\n                <td>\n                    <label>{{bean.nombreTipoAusencia}}</label>\n                    <label *ngIf=\"bean.interrupcion == 'I'\"> - </label>\n                    <label *ngIf=\"bean.interrupcion == 'I'\">{{bean.interrupcion | ausentismoPipe :\n                        'origenPasivo'}}</label>\n                </td>\n                <td>\n                    <label>{{bean.iniPeriodo | date : ( 'formatofecha' | translate)}}</label>\n                    <label> - </label>\n                    <label>{{bean.finPeriodo | date : ( 'formatofecha' | translate)}}</label>\n                </td>\n                <td>\n                    <label>{{bean.diasDisponible}}</label>\n                </td>\n                <td>\n                    <p-inputNumber [(ngModel)]=\"bean.diasDisfrute\"\n                        [disabled]=\"encuesta || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"></p-inputNumber>\n                </td>\n            </tr>\n        </ng-template>\n    </p-table>\n</div>\n<!-- TABLA DOCUMENTOS ANEXO -->\n<div class=\"card p-4\" *ngIf=\"listaDocumentoTipoAusencia?.length > 0\">\n    <h5 class=\"mt-0\"><i class='glyphicons glyphicons-file'></i>\n        <span>{{'anexos' | translate}}</span>\n    </h5>\n    <p-table [value]=\"listaDocumentoTipoAusencia\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n        styleClass=\"p-datatable-striped\"\n        [selectionMode]=\"(controles.get('guardar') || controles.get('guardarLegalizar')) ? 'single' : null\"\n        (onRowSelect)=\"verDocumento($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 15%;\">{{'tipodocumento' | translate}}</th>\n                <th style=\"width: 30%;\">{{'requisito' | translate}}</th>\n                <th style=\"width: 15%;\">{{'estado' | translate}}</th>\n                <th style=\"width: 10%;\">{{'cumplido' | translate}}</th>\n                <th style=\"width: 10%;\">{{'vigencia' | translate}}</th>\n                <th style=\"width: 15%;\">{{'observacion' | translate}}</th>\n                <th style=\"width: 5%;\"></th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n            <tr [pSelectableRow]=\"data\">\n                <td style=\"width: 15%;\">{{data.nombreTipoDocumento}}</td>\n                <td style=\"width: 30%;\">\n                    <ng-container *ngIf=\"data.requisitoHojaDTO?.archivo\">\n                        {{data.requisitoHojaDTO.archivo}}\n                    </ng-container>\n                    <ng-container *ngIf=\"data.requisitoHojaDTO?.nombreFormato\">\n                        {{data.requisitoHojaDTO.nombreFormato}}\n                    </ng-container>\n                    <ng-container *ngIf=\"!data.requisitoHojaDTO?.archivo && !data.requisitoHojaDTO?.nombreFormato\">\n                    </ng-container>\n                </td>\n                <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.estado |listaConstantesPipe:'listaCumplidoReq'}} </td>\n                <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.cumplido | date: 'dd/MM/yyyy'}}</td>\n                <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.vigencia | date: 'dd/MM/yyyy'}}</td>\n                <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.observacion }}</td>\n                <td style=\"width: 5%;\">\n                    <ng-container *ngIf=\"data.ruta != null\">\n                        <button pButton pRipple class=\"m-2 p-button p-button-secondary p-button-rounded\"\n                            icon=\"glyphicons glyphicons-paperclip\" (click)=\"descargarAnexo(data.requisitoHojaDTO)\"\n                            type=\"file\" [loading]=\"isLoading\"></button>\n                    </ng-container>\n                </td>\n            </tr>\n        </ng-template>\n    </p-table>\n</div>\n\n<!-- MENSAJE SEGUN TIPO AUSENCIA -->\n<div *ngIf=\"mostrarMensaje\" class=\"cardInstrucciones mt-2\">\n    <div class=\"flex align-center\">\n        <div class=\"icono\">\n            <i class=\"pi pi-bell\"></i>\n        </div>\n        <div>\n            <label>{{this.tipoAusenciaDTO.mensaje}}</label>\n        </div>\n    </div>\n</div>\n\n<!-- BOTONES -->\n<div class=\"flex justify-content-end\" *ngIf=\"!encuesta && !procesoAutorizacion\">\n    <!-- SEGUIMIENTO -->\n    <div class=\"flex align-items-center gap-1 mr-3\"\n        *ngIf=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento')\">\n        <p-checkbox class=\"ml-1 mr-2\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n        <label>{{'seguimiento' | translate}}</label>\n    </div>\n    <!--CRUD BOTONES-->\n    <div class=\"splitbuttonOscuro\">\n        <p-splitButton label=\"Acciones solicitud\" icon=\"glyphicons glyphicons-list\"\n            [model]=\"itemsBotonAcciones\"></p-splitButton>\n    </div>\n</div>\n<app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\"\n    (regresar)=\"regresarPopupSeguimiento()\"></app-popup-seguimiento>\n<div *ngIf=\"verPopupMomentoDocumento\">\n    <app-popup-momento-documento [llaveTipoDocumento]=\"momentoDocumentoDTO.tipoDocumento\" [unionDTO]=\"novedad\"\n        [nuevo]=\"nuevoDocumento\" [momentoDocumento]=\"momentoDocumentoDTO\" [mostrarPopup]=\"true\"\n        (regresar)=\"regresaPopupRequisitoContratacion()\"></app-popup-momento-documento>\n</div>\n<div>\n    <p-confirmDialog #cd key=\"eliminaprogramacion\">\n        <ng-template pTemplate=\"footer\">\n            <div class=\"mt-3\">\n                <button type=\"button\" class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\"\n                    pButton icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n                <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                    (click)=\"cd.accept()\"></button>\n            </div>\n        </ng-template>\n    </p-confirmDialog>\n</div>\n}\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"regresarAction()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarAction()\"></app-ejecucion-encuesta>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'tipoNovedadPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class TipoNovedadPipe implements PipeTransform {\n\n\n    VARIABLE_PERIODO = \"A\";\n    CONCEPTO_EMPLEADO = \"C\";\n    EMBARGO = \"E\";\n    VARIABLE_PERIODO_FECHAS = \"F\";\n    VARIABLE_EMPLEADO_FECHAS = \"L\";\n    NO_JUDICIAL = Constantes.CONSTANTE_NO;\n    CONCEPTO_PERIODO = \"O\";\n    LIQUIDACION_PERIODICA = \"P\";\n    VARIABLE_EMPLEADO = \"V\";\n    JUDICIAL = Constantes.CONSTANTE_SI;\n    CAMBIOENTIDAD = \"X\";\n    TERMINACION_CONTRATO = \"R\";\n    PRORROGA = \"PR\";\n    CAMBIO_EMPLEADO = \"CE\";\n    NOVEDAD_FIJA = \"F\";\n    NOVEDAD_OCASIONAL = \"O\";\n\n\n    NOMBRE_CONCEPTO_EMPLEADO = \"Concepto del Empleado\";\n    NOMBRE_CONCEPTO_PERIODO = \"Concepto Periodo\";\n    NOMBRE_EMBARGO = \"Embargo\";\n    NOMBRE_LIQUIDACION_PERIODICA = \"Liquidacion Periodica\";\n    NOMBRE_VARIABLE_EMPLEADO = \"Variable del Empleado\";\n    NOMBRE_VARIABLE_PERIODO = \"Variable del Periodo\";\n    NOMBRE_VARIABLE_PERIODO_FECHAS = \"Variable del Periodo por Fechas\";\n    NOMBRE_VARIABLE_EMPLEADO_FECHAS = \"Variable del Empleado por Fechas\";\n    DESCAMBIOENTIDAD = \"Cambio Entidad\";\n    TERMINACION_CONTRATO_DESC = \"Terminacion de Contrato\";\n    PRORROGA_DESC = \"Prorroga de Contrato\";\n    CAMBIO_EMPLEADO_DESC = \"Cambios Empleado\";\n\n    TIPOS_TIPONOVEDAD =\n        [\n            { codigo: this.CONCEPTO_EMPLEADO, nombre: this.NOMBRE_CONCEPTO_EMPLEADO },\n            { codigo: this.CONCEPTO_PERIODO, nombre: this.NOMBRE_CONCEPTO_PERIODO },\n            { codigo: this.EMBARGO, nombre: this.NOMBRE_EMBARGO },\n            { codigo: this.LIQUIDACION_PERIODICA, nombre: this.NOMBRE_LIQUIDACION_PERIODICA },\n            { codigo: this.VARIABLE_EMPLEADO, nombre: this.NOMBRE_VARIABLE_EMPLEADO },\n            { codigo: this.VARIABLE_PERIODO, nombre: this.NOMBRE_VARIABLE_PERIODO },\n            { codigo: this.VARIABLE_PERIODO_FECHAS, nombre: this.NOMBRE_VARIABLE_PERIODO_FECHAS },\n            { codigo: this.CAMBIOENTIDAD, nombre: this.DESCAMBIOENTIDAD },\n            { codigo: this.VARIABLE_EMPLEADO_FECHAS, nombre: this.NOMBRE_VARIABLE_EMPLEADO_FECHAS },\n            { codigo: this.TERMINACION_CONTRATO, nombre: this.TERMINACION_CONTRATO_DESC },\n            { codigo: this.PRORROGA, nombre: this.PRORROGA_DESC },\n            { codigo: this.CAMBIO_EMPLEADO, nombre: this.CAMBIO_EMPLEADO_DESC },\n        ]\n\n    NUEVA_CAMBIO_ENTIDAD = \"NU\";\n    BORRAR_CAMBIO_ENTIDAD = \"BO\";\n    MODIFICAR_CAMBIO_ENTIDAD = \"MO\";\n\n    NUEVA_CAMBIO_ENTIDAD_DESC = \"Nuevo\";\n    BORRAR_CAMBIO_ENTIDAD_DESC = \"Borrar\";\n    MODIFICAR_CAMBIO_ENTIDAD_DESC = \"Modificar\";\n\n    TIPOACCIONNOVEDAD =\n        [\n            { codigo: this.NUEVA_CAMBIO_ENTIDAD, nombre: this.NUEVA_CAMBIO_ENTIDAD_DESC },\n            { codigo: this.BORRAR_CAMBIO_ENTIDAD, nombre: this.BORRAR_CAMBIO_ENTIDAD_DESC },\n            { codigo: this.MODIFICAR_CAMBIO_ENTIDAD, nombre: this.MODIFICAR_CAMBIO_ENTIDAD_DESC },\n        ]\n\n    TIPOACCIONVARIABLE =\n        [\n            { codigo: \"NU\", nombre: \"Registro independiente\" },\n            { codigo: \"AC\", nombre: \"Actualizar si existe - Unico - Segun cantidad\" },\n        ]\n\n    TOKEN = \"|\";\n\n    REPOSO = \"I\";\n    VACACION = \"V\";\n    AUSENTISMO = \"L\";\n    FLEXIBLE = \"F\";\n    TERMINACION = \"T\";\n    SOLICITUD = \"O\";\n\n    DESCREPOSO = \"Reposo\";\n    DESCVACACION = \"Vacaciones\";\n    DESCAUSENTISMO = \"Ausentismo\";\n    DESCFLEXIBLE = \"Flexible\";\n    DESCTERMINACION = \"Terminaci\\u00F3n Contrato\";\n    DESCSOLICITUD = \"Solicitudes\";\n\n    ORIGENNOVEDAD =\n        [\n            { codigo: this.REPOSO, nombre: this.DESCREPOSO },\n            { codigo: this.VACACION, nombre: this.DESCVACACION },\n            { codigo: this.AUSENTISMO, nombre: this.DESCAUSENTISMO },\n            { codigo: this.FLEXIBLE, nombre: this.DESCFLEXIBLE },\n            { codigo: this.TERMINACION, nombre: this.DESCTERMINACION },\n            { codigo: this.SOLICITUD, nombre: this.DESCSOLICITUD },\n        ]\n\n    PARCIAL_CESANTIAS = \"P\";\n    CERTIFICACIONES = \"C\";\n    SIMULACIONES = \"S\";\n\n    DESCPARCIAL_CESANTIAS = \"Otras\";\n    DESCCERTIFICACIONES = \"Certificaciones\";\n    DESCSIMULACIONES = \"Simulaciones\";\n\n    FORMULACION_INICIAL = \"I\";\n    FORMULACION_FINAL = \"F\";\n    FORMULACION_NOAPLICA = Constantes.CONSTANTE_NO;\n\n    MOMENTO_FORMULACION =\n        [\n            { Codigo: this.FORMULACION_INICIAL, nombre: \"Inicio y Final\" },\n            { Codigo: this.FORMULACION_FINAL, nombre: \"Final\" },\n            { Codigo: this.FORMULACION_NOAPLICA, nombre: \"No aplica\" },\n        ]\n\n    ENTRADA_TIPOSOLICITUD = \"E\";\n    VISUALIZAR_TIPOSOLICITUD = \"V\";\n    NOAPLICA_TIPOSOLICITUD = Constantes.CONSTANTE_NO;\n    ENTRADALEGALIAR = \"P\";\n\n    DESCENTRADA_TIPOSOLICITUD = \"Entrada\";\n    DESCVISUALIZAR_TIPOSOLICITUD = \"Visualizar\";\n    DESCNOAPLICA_TIPOSOLICITUD = \"No Aplica\";\n    DESENTRADALEGALIAR = \"Entrada Legalizar\";\n\n    INDICADORES_TIPOSOLICITUD =\n        [\n            { codigo: this.ENTRADA_TIPOSOLICITUD, nombre: this.DESCENTRADA_TIPOSOLICITUD },\n            { codigo: this.VISUALIZAR_TIPOSOLICITUD, nombre: this.DESCVISUALIZAR_TIPOSOLICITUD },\n            { codigo: this.NOAPLICA_TIPOSOLICITUD, nombre: this.DESCNOAPLICA_TIPOSOLICITUD },\n            { codigo: this.ENTRADALEGALIAR, nombre: this.DESENTRADALEGALIAR },\n\n        ]\n    OTROS_INDICADORES_TIPOSOLICITUD =\n        [\n            { codigo: this.ENTRADA_TIPOSOLICITUD, nombre: this.DESCENTRADA_TIPOSOLICITUD },\n            { codigo: this.NOAPLICA_TIPOSOLICITUD, nombre: this.DESCNOAPLICA_TIPOSOLICITUD },\n            { codigo: this.ENTRADALEGALIAR, nombre: this.DESENTRADALEGALIAR },\n        ]\n\n    TIPOS_SOLICITUDES =\n        [\n            { codigo: this.PARCIAL_CESANTIAS, nombre: this.DESCPARCIAL_CESANTIAS },\n            { codigo: this.CERTIFICACIONES, nombre: this.DESCCERTIFICACIONES },\n            { codigo: this.SIMULACIONES, nombre: this.DESCSIMULACIONES },\n        ]\n\n    DEPOSITOSJUDICIALES = \"1\";\n    ENTESCOACTIVOS = \"2\";\n    CAUSIONES = \"3\";\n    REMATES = \"4\";\n    PROCESOSLABORALES = \"5\";\n    CUOTASALIMENTARIAS = \"6\";\n\n    DESDEPOSITOSJUDICIALES = \"DEPOSITOS JUDICIALES\";\n    DESENTESCOACTIVOS = \"ENTES COACTIVOS Y/O AUTORIDADES\";\n    DESCAUSIONES = \"CAUSACIONES /EXCARCELACIONES\";\n    DESREMATES = \"REMATES /POSTURA DE BIENES\";\n    DESPROCESOSLABORALES = \"PROCESOS LABORALES\";\n    DESCUOTASALIMENTARIAS = \"CUOTAS ALIMENTARIAS\";\n\n    TIPOS_EMBARGOS =\n        [\n            { codigo: this.DEPOSITOSJUDICIALES, nombre: this.DESDEPOSITOSJUDICIALES },\n            { codigo: this.ENTESCOACTIVOS, nombre: this.DESENTESCOACTIVOS },\n            { codigo: this.CAUSIONES, nombre: this.DESCAUSIONES },\n            { codigo: this.REMATES, nombre: this.DESREMATES },\n            { codigo: this.PROCESOSLABORALES, nombre: this.DESPROCESOSLABORALES },\n            { codigo: this.CUOTASALIMENTARIAS, nombre: this.DESCUOTASALIMENTARIAS },\n        ]\n    /**\n     * ctnv_tipotermina y ctnv_tiposolicitud [P] Plantilla [A] Archivo [N] No aplica\n     * \n     * */\n    PLANTILLASOLICITUD = \"S\";\n    PLANTILLA = \"P\";\n    ARCHIVO = \"A\";\n    NO_APLICA = Constantes.CONSTANTE_NO;\n\n    NOMBNRE_PLANTILLASOLICITUD = \"Plantilla - LlaveSolicitud\";\n    NOMBRE_PLANTILLA = \"Plantilla\";\n    NOMBRE_ARCHIVO = \"Archivo\";\n    NOMBRE_NO_APLICA = \"No aplica\";\n    /**\n     * esta son paraa el tipo de solicitud\n     * **/\n    LISTA_SOLICITUD =\n        [\n            { codigo: this.PLANTILLA, nombre: this.NOMBRE_PLANTILLA },\n            { codigo: this.PLANTILLASOLICITUD, nombre: this.NOMBNRE_PLANTILLASOLICITUD },\n            { codigo: this.ARCHIVO, nombre: this.NOMBRE_ARCHIVO },\n            { codigo: this.NO_APLICA, nombre: this.NOMBRE_NO_APLICA },\n        ]\n\n    /**\n     * en esatas variables son para el tipo de generacion que se va realiozar en el tipo de genracion\n     * */\n    AUTOMATICA = \"A\";\n    MANUAL = \"M\";\n    AUTOMATICA_STRING = \"Automatica\";\n    MANUAL_STRING = \"Manual\";\n    LISTA_TIPO_GENERACION_MAP =\n        [\n            { codigo: this.AUTOMATICA, nombre: this.AUTOMATICA_STRING },\n            { codigo: this.MANUAL, nombre: this.MANUAL_STRING },\n        ]\n\n    SOLICITUD_MARCADOR = \"B\";\n    CARACTERISTICAS_MARCADOR = \"C\";\n    VARIABLE_LIQUIDACION_MARCADOR = \"V\";\n    IMAGEN_MARCADOR = \"I\";\n    DES_SOLICITUD_MARCADOR = \"Solicitud\";\n    DES_CARACTERISTICAS_MARCADOR = \"Caracteristicas\";\n    DES_VARIABLE_LIQUIDACION_MARCADOR = \"Variable\";\n    DES_IMAGEN_MARCADOR = \"Imagen\";\n\n    EMPLEADO = \"EM\";\n    FUNCIONAL = \"UF\";\n    /**\n     * esta son paraa el tipo de solicitud\n     * **/\n    LISTA_DIRIGIDO =\n        [\n            { Codigo: this.EMPLEADO, nombre: Constantes.SI_STRING },\n            { Codigo: this.FUNCIONAL, nombre: Constantes.NO_STRING },\n        ]\n\n    NOVEDAD_PRESTAMO_NUEVO = \"NU\";\n    NOVEDAD_PRESTAMO_NUEVO_COMPRA = \"NC\";\n    NOVEDAD_PRESTAMO_ABONO_FUERA = \"AB\";\n    NOVEDAD_PRESTAMO_CAMBIO_CUOTA = \"CC\";\n    NOVEDAD_PRESTAMO_CANCELACION = \"CA\";\n    NOVEDAD_PRESTAMO_ABONO_EXTRA = \"AX\";\n\n    NOVEDAD_PRESTAMO_NUEVO_DESC = \"Nuevo Registro\";\n    NOVEDAD_PRESTAMO_NUEVO_COMPRA_DESC = \"Nuevo Registro - Cancelar Otros\";\n    NOVEDAD_PRESTAMO_ABONO_FUERA_DESC = \"Abono Fuera\";\n    NOVEDAD_PRESTAMO_CAMBIO_CUOTA_DESC = \"Cambio Cuota\";\n    NOVEDAD_PRESTAMO_CANCELACION_DESC = \"Cancelacion\";\n    NOVEDAD_PRESTAMO_ABONO_EXTRA_DESC = \"Abono Extra\";\n\n    LISTA_ACCIONES_PRESTAMO =\n        [\n            { codigo: this.NOVEDAD_PRESTAMO_NUEVO, nombre: this.NOVEDAD_PRESTAMO_NUEVO_DESC },\n            { codigo: this.NOVEDAD_PRESTAMO_NUEVO_COMPRA, nombre: this.NOVEDAD_PRESTAMO_NUEVO_COMPRA_DESC },\n            { codigo: this.NOVEDAD_PRESTAMO_ABONO_FUERA, nombre: this.NOVEDAD_PRESTAMO_ABONO_FUERA_DESC },\n            { codigo: this.NOVEDAD_PRESTAMO_CAMBIO_CUOTA, nombre: this.NOVEDAD_PRESTAMO_CAMBIO_CUOTA_DESC },\n            { codigo: this.NOVEDAD_PRESTAMO_CANCELACION, nombre: this.NOVEDAD_PRESTAMO_CANCELACION_DESC },\n            { codigo: this.NOVEDAD_PRESTAMO_ABONO_EXTRA, nombre: this.NOVEDAD_PRESTAMO_ABONO_EXTRA_DESC },\n        ]\n\n    ITEM = \"I\";\n    PRINCIPAL = Constantes.CONSTANTE_SI;\n    BASE = \"B\";\n    ITEMDESC = \"ITEM\";\n    PRINCIPALDESC = \"PRINCIPAL\";\n    BASEDESC = \"BASE\";\n\n    LISTA_ESTILOS =\n        [\n            { codigo: this.ITEM, nombre: this.ITEMDESC },\n            { codigo: this.PRINCIPAL, nombre: this.PRINCIPALDESC },\n            { codigo: this.BASE, nombre: this.BASEDESC },\n        ]\n\n    FORMA_DESEMBOLSO_NOMINA = \"N\";\n    FORMA_DESEMBOLSO_NOMINA_DESC = \"Nomina\";\n    FORMA_DESEMBOLSO_FUERA_NOMINA = \"C\";\n    FORMA_DESEMBOLSO_FUERA_NOMINA_DESC = \"Fuera de Nomina\";\n\n    LISTA_FORMA_DESEMBOLSO =\n        [\n            { codigo: this.FORMA_DESEMBOLSO_NOMINA, nombre: this.FORMA_DESEMBOLSO_NOMINA_DESC },\n            { codigo: this.FORMA_DESEMBOLSO_FUERA_NOMINA, nombre: this.FORMA_DESEMBOLSO_FUERA_NOMINA_DESC },\n        ]\n\n    CODIGO_BASE_TERMINACION_CONTRATO = \"RETIR\";\n\n    DOCUMENTO_VIGENTE = \"V\";\n\n    TIPO_NOVEDAD_UNICO = \"U\";\n    TIPO_NOVEDAD_MULTIPLE = \"M\";\n    TIPO_NOVEDAD_MULTIPLE_MASIVO = \"X\";\n\n    TIPO_NOVEDAD_UNICO_DESC = \"Unica\";\n    TIPO_NOVEDAD_MULTIPLE_DESC = \"Multiple\";\n    TIPO_NOVEDAD_MULTIPLE_MASIVO_DESC = \"Registro Masivo - Multiple\";\n\n\n    LISTA_RELACION_TIPO_NOVEDAD =\n        [\n            { codigo: this.TIPO_NOVEDAD_UNICO, nombre: this.TIPO_NOVEDAD_UNICO_DESC },\n            { codigo: this.TIPO_NOVEDAD_MULTIPLE, nombre: this.TIPO_NOVEDAD_MULTIPLE_DESC },\n            { codigo: this.TIPO_NOVEDAD_MULTIPLE_MASIVO, nombre: this.TIPO_NOVEDAD_MULTIPLE_MASIVO_DESC },\n        ]\n\n    NOVEDAD_PERIODO_REEMPLAZAR = \"RE\";\n    NOVEDAD_PERIODO_ACUMULAR = \"AC\";\n\n    NOVEDAD_PERIODO_REEMPLAZAR_DESC = \"Reemplazar\";\n    NOVEDAD_PERIODO_ACUMULAR_DESC = \"Acumular\";\n\n    LISTA_ACCIONES_PERIODO =\n        [\n            { codigo: this.NOVEDAD_PERIODO_REEMPLAZAR, nombre: this.NOVEDAD_PERIODO_REEMPLAZAR_DESC },\n            { codigo: this.NOVEDAD_PERIODO_ACUMULAR, nombre: this.NOVEDAD_PERIODO_ACUMULAR_DESC },\n        ]\n\n    FORMULA_GENERAL = \"G\";\n    FORMULA_PROPIA = \"P\";\n\n    FORMULA_GENERAL_DESC = \"Formula General\";\n    FORMULA_PROPIA_DESC = \"Formula Propia\";4\n\n    LISTA_TIPO_FORMULA =\n        [\n            { codigo: this.FORMULA_GENERAL, nombre: this.FORMULA_GENERAL_DESC },\n            { codigo: this.FORMULA_PROPIA, nombre: this.FORMULA_PROPIA_DESC },\n        ]\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        //if (args[0] == 'listaFormaPago') { this.FORMAPAGO.forEach(data => { if (data.codigo === value) { result = data.nombre } }}, nombre: this.}        \n        return result;\n    }\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { AusentismoPipe } from '../../../../../../shared/pipes/ausentismo.pipe';\nimport { ListaConstantesPipe } from '../../../../../../shared/pipes/listaConstantes.pipe';\nimport { ParametrosPipe } from '../../../../../../shared/pipes/parametros.pipe';\nimport { PopupsDinamicosPipe } from '../../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { CargarArchivosService } from '../../../../../../shared/servicios/cargar-archivos.service';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { AusenciaModel } from '../../../../models/AusenciaModel';\nimport { EmpleadoModel } from '../../../../models/EmpleadoModel';\nimport { TipoAusenciaModel } from '../../../../models/TipoAusenciaModel';\nimport { TipoNovedadPipe } from '../../../../pipes/tipoNovedad.pipe';\nimport { AusentismoService } from '../../../../services/ausentismo.service';\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { CargoModel } from '../../../../../talento/models/CargoModel';\nimport { MomentoDocumentoModel } from '../../../../../talento/models/MomentoDocumentoModel';\nimport { RequisitoHojaModel } from '../../../../../talento/models/RequisitoHojaModel';\nimport { EncriptadoBasicoService } from '../../../../../../shared/servicios/encriptado-basico.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PopupMomentoDocumentoComponent } from '../popup-momento-documento/popup-momento-documento.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-editar-historico-licencia',\n    templateUrl: './editar-historico-licencia.component.html',\n    styleUrls: ['./editar-historico-licencia.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, ButtonDirective, Ripple, DropdownModule, FormsModule, CalendarModule, InputTextModule, NgIf, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupMomentoDocumentoComponent, DatePipe, TranslateModule, ListaConstantesPipe, FormulariodinamicoComponent]\n})\nexport class EditarHistoricoLicenciaComponent implements OnInit {\n\n  @Input() ausentismoDTO: AusenciaModel;\n  @Input() isNew: boolean;\n  @Input() empleadoDTO: EmpleadoModel;\n  @Input() listaTipoLicenciaAusencia = [];\n  @Input() unicoRegistro: boolean = false;\n  @Output() regresar = new EventEmitter();\n\n\n  public mostrarEditar: boolean = false;\n  public datoTipoAusencia: TipoAusenciaModel = new TipoAusenciaModel();\n  public listaProrroga;\n  public listaEntidad = [];\n  public mapaEstadoDoc = [];\n  public listaRequisitoHojaBorrar: RequisitoHojaModel[] = [];\n\n  public campos: CampoFormularioModel[] = [];\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n\n  public listaRequisitoHoja: RequisitoHojaModel[];\n  public listaDocumentoTipoAusencia: MomentoDocumentoModel[];\n  public isLoading: boolean = false;\n  public momentoDocumento: MomentoDocumentoModel;\n  public verPopupMomentoDocumento: boolean = false;\n  public nuevoDocumento: boolean;\n  public clickGuardar: boolean = false;\n\n  constructor(\n    public utilsService: UtilsService,\n    private generalService: GeneralService,\n    private ausentismoPipe: AusentismoPipe,\n    private ausentismoService: AusentismoService,\n    private cargarMapas: cargarmapasGlobal,\n    private listaConstantesPipe: ListaConstantesPipe,\n    private popupsDinamicosPipe: PopupsDinamicosPipe,\n    private notificacionesBusService: ToastService,\n    private confirmationService: ConfirmationService,\n    private parametrosPipe: ParametrosPipe,\n    private authService: AuthService,\n    private tipoNovedadPipe: TipoNovedadPipe,\n    private cargarArchivo: CargarArchivosService,\n    private encriptadoBasico: EncriptadoBasicoService\n  ) { }\n\n  ngOnInit(): void {\n    this.listaProrroga = this.ausentismoPipe.PRORROGA;\n    this.momentoDocumento = new MomentoDocumentoModel();\n    if (this.isNew) {\n      this.mostrarEditar = false;\n      this.ausentismoDTO.salida = null;\n      this.ausentismoDTO.termina = null;\n      this.ausentismoDTO.regreso = null;\n      this.ausentismoDTO.salidaNomina = null;\n      this.ausentismoDTO.regresoNomina = null;\n      this.ausentismoDTO.salidaPrincipal = null;\n      this.ausentismoDTO.hora1 = null;\n      this.ausentismoDTO.hora2 = null;\n      this.ausentismoDTO.fechaAdicionado = new Date();\n    } else {\n      this.consultarRegistro();\n      this.cargarTipoAusencia();\n    }\n\n    this.llenarItemMap();\n    this.cargarListaDocumento();\n    this.cargarCampos();\n    this.cargarListaDocumentoTipoNovedad();\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  async consultarRegistro() {\n    this.ausentismoDTO = await this.generalService.queryForObject(new GeneralModel('AusenciaDTO', null, false, {\n      llaveTabla: this.ausentismoDTO.llaveTabla\n    })).toPromise();\n    if (this.ausentismoDTO) {\n      this.mostrarEditar = true;\n      this.ausentismoDTO.salida = new Date(this.ausentismoDTO.salida);\n      this.ausentismoDTO.termina = this.ausentismoDTO.termina ? new Date(this.ausentismoDTO.termina) : null;\n      this.ausentismoDTO.regreso = this.ausentismoDTO.regreso ? new Date(this.ausentismoDTO.regreso) : null;\n      this.ausentismoDTO.salidaNomina = this.ausentismoDTO.salidaNomina ? new Date(this.ausentismoDTO.salidaNomina) : null;\n      this.ausentismoDTO.regresoNomina = this.ausentismoDTO.regresoNomina ? new Date(this.ausentismoDTO.regresoNomina) : null;\n      this.ausentismoDTO.aplicacion = this.ausentismoDTO.aplicacion ? new Date(this.ausentismoDTO.aplicacion) : null;\n      this.ausentismoDTO.origen = this.ausentismoDTO.origen ? new Date(this.ausentismoDTO.origen) : null;\n      this.ausentismoDTO.salidaPrincipal = this.ausentismoDTO.salidaPrincipal ? new Date(this.ausentismoDTO.salidaPrincipal) : null;\n      this.ausentismoDTO.hora1 = this.ausentismoDTO.hora1 ? new Date(this.ausentismoDTO.hora1) : null;\n      this.ausentismoDTO.hora2 = this.ausentismoDTO.hora2 ? new Date(this.ausentismoDTO.hora2) : null;\n      this.ausentismoDTO.fechaAdicionado = this.ausentismoDTO.fechaAdicionado ? new Date(this.ausentismoDTO.fechaAdicionado) : new Date();\n    }\n  }\n\n  async cargarTipoAusencia() {\n    let tipoAusenciaDTO = new TipoAusenciaModel();\n    tipoAusenciaDTO.llaveTabla = this.ausentismoDTO.tipoAusencia;\n    this.datoTipoAusencia = await this.generalService.queryForObject(new GeneralModel('TipoAusenciaDTO', null, false, tipoAusenciaDTO)).toPromise();\n  }\n\n  async llenarItemMap() {\n    // Carga lista entidades\n    this.listaEntidad = [];\n    this.listaEntidad = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('EntidadDTO', 'Entidad.listaEntidadesIncapacidad', false, {}));\n  }\n\n  cargarListaDocumento() {\n    this.mapaEstadoDoc = this.listaConstantesPipe.CUMPLIDO_REQ;\n    this.listaRequisitoHojaBorrar = [];\n  }\n\n  cargarCampos() {\n    this.ausentismoService.cargarCamposLicenciaHistorico({ llaveBase: this.ausentismoDTO.tipoAusencia, ausencia: this.ausentismoDTO }).subscribe(data => {\n      this.campos = data.listaCampos;\n      this.setValorCampos();\n      this.utilsService.resizeWindowIFrame()\n    })\n  }\n\n  setValorCampos() {\n    this.campos.forEach(element => {\n      if (typeof element.valor === 'string') {\n        element.valor = element.valor.trim()\n      }\n      if (element.tipo === 'F') {\n        element.valor = element.valor ? new Date(element.valor) : null;\n      } else if (element.tipo === 'H') {\n        if (element.valor) {\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';')\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 })\n          })\n          element.valor = listaValortemp\n        }\n      } else if (element.tipo === 'P') {\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n          if (element.popup == pop.id) {\n            element.popupComponent = pop.popup;\n            element.propiedadesPopupComponent = {\n              readonly: element.editable == 'L',\n              showDialog: false,\n              label: element.valor,\n            }\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup)\n          }\n        });\n      }\n    });\n  }\n\n  async cargarListaDocumentoTipoNovedad() {\n    this.listaRequisitoHoja = [];\n    this.listaDocumentoTipoAusencia = [];\n    if (this.ausentismoDTO.tipoAusencia == null) {\n      return;\n    }\n    var requisitoHojaDTO: RequisitoHojaModel = new RequisitoHojaModel();\n    requisitoHojaDTO.actoAdministrativo = this.ausentismoDTO.llaveTabla;\n\n    this.listaDocumentoTipoAusencia = await this.generalService.queryForList(new GeneralModel('MomentoDocumentoDTO', 'MomentoDocumento.consultarMomentoDocumentoFiltro', false, await this.filtroMomentoDocumento())).toPromise();\n    if (this.ausentismoDTO.llaveTabla == null) {\n      return;\n    }\n    let extensionArchivo = [];\n    let propiedad = 'ruta_anexosHojaVida'\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      // Se valida si el tipoDocumento ya tiene un archivo asociado\n      var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n      requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n      requisitoHojaFiltro.actoAdministrativo = this.ausentismoDTO.llaveTabla;\n      var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n      if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n        requisitoHojaFiltro = listadoRequisitoHoja[0];\n        documento.requisitoHojaDTO = requisitoHojaFiltro;\n        if (documento.tipo != null && documento.tipo == this.parametrosPipe.DOCUMENTO_ANEXO) {\n          extensionArchivo = requisitoHojaFiltro.archivo.split('.');\n          if (this.listaConstantesPipe.CUMPLIDO == requisitoHojaFiltro.estado) {\n            let rutaArchivo: string = propiedad + requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1];\n            documento.ruta = this.encriptadoBasico.encriptar(rutaArchivo);\n          }\n        }\n      }\n    })\n  }\n\n  async filtroMomentoDocumento(): Promise<MomentoDocumentoModel> {\n    var momentoDocumento: MomentoDocumentoModel = new MomentoDocumentoModel();\n    momentoDocumento.momento = this.ausentismoDTO.tipoAusencia;\n    momentoDocumento.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n    momentoDocumento.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    momentoDocumento.vinculacion = this.empleadoDTO.vinculacion;\n    momentoDocumento.cargo = this.empleadoDTO.cargo;\n    if (this.empleadoDTO.cargo != null) {\n      var cargoVar: CargoModel = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, { cargo: this.empleadoDTO.cargo, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n      momentoDocumento.nivelCargo = cargoVar.nivelCargo;\n    }\n    var hojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, { identifica: this.empleadoDTO.cedula })).toPromise();\n    momentoDocumento.ubicacion = hojaVidaDTO.ubicaciongeo;\n    momentoDocumento.sexo = hojaVidaDTO.sexo;\n    return momentoDocumento;\n  }\n\n  descargarAnexo(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    let extensionArchivo = documento.archivo.split('.');\n    this.isLoading = true;\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1]), propiedad, aplicacion).subscribe({\n      next: (data) => {\n        this.isLoading = false;\n        const a = document.createElement('a')\n        const objectUrl = URL.createObjectURL(data)\n        a.href = objectUrl\n        a.download = documento.archivo;\n        a.click();\n        URL.revokeObjectURL(objectUrl);\n      },\n      error: (err) => {\n        this.isLoading = false;\n        this.notificacionesBusService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema.')\n      }\n    })\n  }\n\n  validarCampos(campo: any) {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(campo);\n    return validador;\n  }\n\n  public validarAnexoObligatorio(): boolean {\n    let validador: boolean = true;\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      if (documento.opcional == Constantes.CONSTANTE_NO) {\n        if (!documento.requisitoHojaDTO) {\n          this.notificacionesBusService.showWarning('Debe incluir el anexo: ' + documento.nombreTipoDocumento);\n          validador = false;\n          return;\n        }\n      }\n    })\n    return validador;\n  }\n\n\n  actualizarRegistro() {\n    if (!this.validarAnexoObligatorio()) {\n      return null;\n    }\n    var validarFormulario: boolean = this.formulario ? this.formulario.validar() : true;\n    if (!this.validarCampos(this.ausentismoDTO.salida) || !this.validarCampos(this.ausentismoDTO.dias) || !validarFormulario) {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    this.ausentismoDTO.fechaModificado = new Date();\n    if (this.formulario) {\n      this.ausentismoDTO = this.formulario.getObjecto();\n    }\n    this.generalService.update(new GeneralModel('AusenciaDTO', null, false, this.ausentismoDTO)).subscribe((data) => {\n      if (data == 1) {\n        this.notificacionesBusService.showSuccess('Se actualizó el registro exitosamente');\n        this.consultarRegistro();\n      } else {\n        this.notificacionesBusService.showError('Error en el método de actualizar recurso');\n      };\n    });\n  }\n\n  crearRegistro() {\n    if (!this.validarCampos(this.ausentismoDTO.salida) || !this.validarCampos(this.ausentismoDTO.dias)) {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    this.ausentismoDTO.fechaModificado = new Date();\n    this.ausentismoDTO.empresa = this.empleadoDTO.empresa;\n    this.ausentismoDTO.contrato = this.empleadoDTO.contrato;\n    this.ausentismoDTO.origenAusencia = this.ausentismoPipe.LICENCIA;\n    this.ausentismoDTO.tipo = this.ausentismoPipe.AUSENTISMO;\n    this.ausentismoDTO.llaveTabla = this.utilsService.generarLlave();\n    this.generalService.crearRegistro(new GeneralModel('AusenciaDTO', null, false, this.ausentismoDTO)).subscribe({\n      next: (data) => {\n        if (data != null) {\n          this.notificacionesBusService.showSuccess('Se creó el registro exitosamente');\n          this.consultarRegistro();\n        } else {\n          this.notificacionesBusService.showError('Error en el método de agregar recurso');\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesBusService.showError('Error al ingresar en el servicio');\n      },\n    });\n  }\n\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n        this.eliminarDocumento();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarRegistro() {\n    this.ausentismoDTO.fechaModificado = new Date();\n    this.ausentismoDTO.fechaAdicionado = new Date();\n    let objetoElimina: GeneralModel = new GeneralModel('AusenciaDTO', null, false, this.ausentismoDTO);\n    let result: number;\n    this.generalService.delete(objetoElimina).subscribe({\n      next: (data) => {\n        result = data;\n        if (result == 1) {\n          this.notificacionesBusService.showSuccess('Se eliminó el registro exitosamente');\n          this.regresarPrincipal();\n        } else {\n          this.notificacionesBusService.showError('Error en el método de eliminar recurso');\n        }\n      },\n      error: (err) => {\n        this.notificacionesBusService.showError('No es posible eliminar el registro, verifique que el registro no esta asociado en otros procesos');\n      },\n    });\n  }\n\n  async verDocumento(event) {\n    this.verPopupMomentoDocumento = true;\n    this.momentoDocumento = event.data;\n    if (this.momentoDocumento.requisitoHojaDTO) {\n      this.nuevoDocumento = false;\n    } else {\n      this.nuevoDocumento = true;\n    }\n  }\n\n  eliminarDocumento() {\n    if (this.listaDocumentoTipoAusencia.length > 0) {\n      this.listaDocumentoTipoAusencia.forEach(async documento => {\n        var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n        requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n        requisitoHojaFiltro.actoAdministrativo = this.ausentismoDTO.llaveTabla;\n        var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n        if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n          requisitoHojaFiltro = listadoRequisitoHoja[0];\n          documento.requisitoHojaDTO = requisitoHojaFiltro;\n          await this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n          let extensionArchivo: string = requisitoHojaFiltro.archivo.split('?')[0].split(Constantes.PUNTO).pop();\n          let propiedad = 'ruta_anexosHojaVida'\n          let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n          this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo), propiedad, codigoAplicacion).subscribe(blob => { });\n        }\n      })\n    }\n  }\n\n  regresaPopupRequisitoContratacion() {\n    this.verPopupMomentoDocumento = false;\n    this.cargarListaDocumentoTipoNovedad();\n  }\n\n  regresarPrincipal() {\n    this.regresar.emit('historico');\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mb-1\">\n    <h4>{{'historico' | translate}} {{'licencia' | translate}}s</h4>\n    <button pButton pRipple *ngIf=\"!unicoRegistro\" (click)=\"regresarPrincipal()\" label=\"{{'listadohistorico' | translate}}\"\n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 mb-3\"></button>\n</div>\n<div class=\"card p-4 contenedor\">\n    <div class=\"Inputgroup mb-2\">\n        <div class=\"p-fluid p-formgrid grid mt-2\">\n            <!-- TIPO AUSENCIA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_tipoausencia\" [options]=\"listaTipoLicenciaAusencia\"\n                        [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                        [(ngModel)]=\"ausentismoDTO.tipoAusencia\" [readonly]=\"true\">\n                    </p-dropdown>\n                    <label htmlFor=\"tipoausencia\">{{'tipoausencia' | translate}} * </label>\n                </span>\n            </div>\n            <!-- FECHA SALIDA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_salida\" [(ngModel)]=\"ausentismoDTO.salida\"\n                        dateFormat=\"dd/mm/yy\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.salida) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.salida) && clickGuardar\"></p-calendar>\n                    <label htmlFor=\"salida\">{{'salida' | translate}} *</label>\n                </span>\n            </div>\n            <!-- FECHA TERMINA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_termina\" [(ngModel)]=\"ausentismoDTO.termina\"\n                        dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"termina\">{{'termina' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA REGRESO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_regreso\" [(ngModel)]=\"ausentismoDTO.regreso\"\n                        dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"regreso\">{{'regreso' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA SALIDA NOMINA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_salidaNominaHistorico\" [(ngModel)]=\"ausentismoDTO.salidaNomina\"\n                        dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"salidaNominaHistorico\">{{'salida' | translate}} {{'nomina' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA REGRESO NOMINA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_regresoNominaHistorico\"\n                        [(ngModel)]=\"ausentismoDTO.regresoNomina\" dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"regresoNominaHistorico\">{{'regreso' | translate}} {{'nomina' |\n                        translate}}</label>\n                </span>\n            </div>\n            <!-- DIAS -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_diasReales\" type=\"text\" [(ngModel)]=\"ausentismoDTO.dias\" maxlength=\"3\"\n                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 3);\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.dias) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.dias) && clickGuardar\">\n                    <label htmlFor=\"diasReales\">{{'reales' | translate}} *</label>\n                </span>\n            </div>\n            <!-- HORAS ADICIONALES -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_horasAusenciaHistorico\" type=\"text\" [(ngModel)]=\"ausentismoDTO.horas\"\n                        maxlength=\"5\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n                    <label htmlFor=\"horasAusenciaHistorico\">{{'horas' | translate}} {{'adicionales' |\n                        translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA ANTECESOR -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_fechaAntecesor\" [(ngModel)]=\"ausentismoDTO.origen\"\n                        dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"fechaAntecesor\">{{'fecha' | translate}} {{'antecesor' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA APLICACION -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_fechaAplicacion\" [(ngModel)]=\"ausentismoDTO.aplicacion\"\n                        dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"fechaAplicacion\">{{'fechaaplicacion' | translate}}</label>\n                </span>\n            </div>\n            <!-- DIAS ACUMULADOS -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_diasAcomulados\" type=\"text\" [(ngModel)]=\"ausentismoDTO.diasAcumula\"\n                        maxlength=\"3\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 3);\">\n                    <label htmlFor=\"diasAcomulados\">{{'dias' | translate}} {{'acumulados' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA BASE -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [showIcon]=\"true\" id=\"id_fechaInicio\" [(ngModel)]=\"ausentismoDTO.salidaPrincipal\"\n                        dateFormat=\"dd/mm/yy\"></p-calendar>\n                    <label htmlFor=\"fechaInicio\">{{'fecha' | translate}} {{'base' | translate}}</label>\n                </span>\n            </div>\n            <!-- VALOR -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_BaseLiquidacion\" type=\"text\" [(ngModel)]=\"ausentismoDTO.valor\"\n                        maxlength=\"14\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 14);\">\n                    <label htmlFor=\"BaseLiquidacion\">{{'valor' | translate}}</label>\n                </span>\n            </div>\n            <!-- BASE -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_base\" type=\"text\" [(ngModel)]=\"ausentismoDTO.valor2\" maxlength=\"14\"\n                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 14);\">\n                    <label htmlFor=\"base\">{{'base' | translate}}</label>\n                </span>\n            </div>\n        </div>\n    </div>\n    <div class=\"-mt-2\">\n        <!-- FORMULARIO DINAMICO     -->\n        <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\"\n            [objeto]=\"ausentismoDTO\"></formulario-dinamico>\n    </div>\n    <div class=\"mt-3\" *ngIf=\"listaDocumentoTipoAusencia.length > 0\">\n        <p-table [value]=\"listaDocumentoTipoAusencia\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n            styleClass=\"p-datatable-striped\" selectionMode=\"single\" (onRowSelect)=\"verDocumento($event)\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 15%;\">{{'tipodocumento' | translate}}</th>\n                    <th style=\"width: 30%;\">{{'requisito' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'estado' | translate}}</th>\n                    <th style=\"width: 10%;\">{{'cumplido' | translate}}</th>\n                    <th style=\"width: 10%;\">{{'vigencia' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'observacion' | translate}}</th>\n                    <th style=\"width: 5%;\"></th>\n                </tr>\n                <th>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                <tr [pSelectableRow]=\"data\">\n                    <td style=\"width: 15%;\">{{data.nombreTipoDocumento}}</td>\n                    <td style=\"width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.archivo\">{{data.requisitoHojaDTO.archivo}}\n                    </td>\n                    <td style=\"width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.nombreFormato\">\n                        {{data.requisitoHojaDTO.nombreFormato}}</td>\n                    <td style=\"width: 30%;\"\n                        *ngIf=\"!data.requisitoHojaDTO?.archivo && !data.requisitoHojaDTO?.nombreFormato\"></td>\n                    <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.estado | listaConstantesPipe:'listaCumplidoReq'}}\n                    </td>\n                    <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.cumplido | date: 'dd/MM/yyyy'}}</td>\n                    <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.vigencia | date: 'dd/MM/yyyy'}}</td>\n                    <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.observacion }}</td>\n                    <td style=\"width: 5%;\">\n                        <button pButton pRipple class=\"m-2 p-button p-button-secondary p-button-rounded\"\n                            *ngIf=\"data.ruta != null\" icon=\"glyphicons glyphicons-paperclip\"\n                            (click)=\"descargarAnexo(data.requisitoHojaDTO)\" type=\"file\" [loading]=\"isLoading\"></button>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n    <div class=\"flex justify-content-end mt-3\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"mostrarEditar\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n            (click)=\"actualizarRegistro()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"mostrarEditar\" icon=\"glyphicons glyphicons-bin\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"showEliminarConfirmDialog()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"!mostrarEditar\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"crearRegistro()\">\n        </button>\n    </div>\n</div>\n<div *ngIf=\"verPopupMomentoDocumento\">\n    <app-popup-momento-documento [llaveTipoDocumento]=\"momentoDocumento.tipoDocumento\" [unionDTO]=\"ausentismoDTO\"\n        [nuevo]=\"nuevoDocumento\" [momentoDocumento]=\"momentoDocumento\" [mostrarPopup]=\"true\"\n        (regresar)=\"regresaPopupRequisitoContratacion()\"></app-popup-momento-documento>\n</div>","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { AusentismoPipe } from '../../../../../../shared/pipes/ausentismo.pipe';\nimport { CargarControlFuncionalidadService, StorageService, ToastService, GeneralModel, AuthService, UtilsService } from 'general-library-union';\nimport { AusenciaModel } from '../../../../models/AusenciaModel';\nimport { AusenciaNovedadModel } from '../../../../models/AusenciaNovedadModel';\nimport { EmpleadoModel } from '../../../../models/EmpleadoModel';\nimport { AusentismoService } from '../../../../services/ausentismo.service';\nimport { cargarmapasGlobal } from '../../../../../../shared/servicios/cargar-mapas.service';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { PopupSeleccionAusentismoComponent } from '../../../../../compensacion/ausentismos/popups/popup-seleccion-ausentismo/popup-seleccion-ausentismo.component';\nimport { LicenciaAusenciaProgramadasComponent } from '../../../../../compensacion/ausentismos/licencia-ausencia-programadas/licencia-ausencia-programadas.component';\nimport { NovedadPipe } from '../../../../pipes/novedad.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PopupSeleccionAusentismoComponent as PopupSeleccionAusentismoComponent_1 } from '../../../../ausentismos/popups/popup-seleccion-ausentismo/popup-seleccion-ausentismo.component';\nimport { EditarHistoricoLicenciaComponent } from '../editar-historico-licencia/editar-historico-licencia.component';\nimport { LicenciaAusenciaProgramadasComponent as LicenciaAusenciaProgramadasComponent_1 } from '../../../../ausentismos/licencia-ausencia-programadas/licencia-ausencia-programadas.component';\nimport { EditarPasivoAusenciaComponent } from '../editar-pasivo-ausencia/editar-pasivo-ausencia.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { TabViewModule } from 'primeng/tabview';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-lista-licencias',\n    templateUrl: './lista-licencias.component.html',\n    styleUrls: ['./lista-licencias.component.scss'],\n    standalone: true,\n    imports: [NgIf, TabViewModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, EditarPasivoAusenciaComponent, LicenciaAusenciaProgramadasComponent_1, EditarHistoricoLicenciaComponent, PopupSeleccionAusentismoComponent_1, DatePipe, TranslateModule, AusentismoPipe, NovedadPipe]\n})\nexport class ListaLicenciasComponent implements OnInit {\n\n  @ViewChild('seleccionAusentismo') seleccionAusentismo: PopupSeleccionAusentismoComponent;\n  @ViewChild('licenciaAusencia') licenciaAusencia: LicenciaAusenciaProgramadasComponent\n\n  @Input() public empleado: EmpleadoModel;\n\n  public listaProgramadas: AusenciaNovedadModel[] = [];\n  public listaPasivo: AusenciaNovedadModel[] = [];\n  public listaHistorico: AusenciaModel[] = [];\n  @Input() public listaCodigoAusencia = [];\n  public isLoadingData: boolean = false;\n  public verMantenimiento: string = '';\n  public ausenciaNovedad: AusenciaNovedadModel = new AusenciaNovedadModel();\n  public ausentismo: AusenciaModel = new AusenciaModel();\n  public listaTipoAusentismo = [];\n  public listaTipoAusentismo2 = [];\n  public modoParametro = '';\n  public nuevo: boolean;\n  public tipoAusenciaSeleccionada = '';\n  public accion: string;\n  public activo: string = 'solicitud';\n  //TODO: faltante portal\n  @Input() public unicoRegistro: boolean = false;\n\n\n  totalRecords: number;\n  rows: number;\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(\n    private storage: StorageService,\n    private ausentismoService: AusentismoService,\n    private ausentismoPipe: AusentismoPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private toastService: ToastService,\n    private cargarMapas: cargarmapasGlobal,\n    private generalService: GeneralService,\n    private utilsService: UtilsService,\n    private authService: AuthService\n  ) { }\n\n  ngOnInit(): void {\n    this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).subscribe(data => {\n      this.modoParametro = data.modoCompensacion;\n    });\n    this.ausenciaNovedad = new AusenciaNovedadModel();\n    this.ausentismo = new AusenciaModel();\n    this.traerSolicitud();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async traerSolicitud() {\n    try {\n      this.isLoadingData = true;\n\n      //Consulta pasivo ausencia\n      this.listaPasivo = [];\n      this.listaPasivo = await this.ausentismoService.traerListadoAusenciaNovedad({\n        empresa: this.storage.getDecodedJWT().numeroEmpresa,\n        contrato: this.empleado.contrato,\n        tipoRegistro: 'PA',\n        origen: this.ausentismoPipe.LICENCIA,\n        listaCodigoAusencia: this.listaCodigoAusencia,\n        login: this.storage.getDecodedJWT().usuario,\n        rol: this.storage.getDecodedJWT().aliasRol\n      }).toPromise();\n      if (this.listaPasivo) {\n        this.isLoadingData = false;\n        this.paginator.totalRecords = this.listaPasivo.length;\n      }\n\n      //Consulta ausencias programadas\n      this.listaProgramadas = [];\n      this.listaProgramadas = await this.ausentismoService.traerListadoAusenciaNovedadProgramadas({\n        empresa: this.storage.getDecodedJWT().numeroEmpresa,\n        contrato: this.empleado.contrato,\n        tipoRegistro: 'PR',\n        origen: this.ausentismoPipe.LICENCIA,\n        listaCodigoAusencia: this.listaCodigoAusencia,\n        login: this.storage.getDecodedJWT().usuario,\n        rol: this.storage.getDecodedJWT().aliasRol\n      }).toPromise();\n      if (this.listaProgramadas) {\n        this.isLoadingData = false;\n        this.paginator.totalRecords = this.listaProgramadas.length;\n      }\n      this.utilsService.resizeWindowIFrame()\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async traerHistorico() {\n    try {\n      if (this.controlFuncionalidad.getControlFuncionalidad('lichis:deshabhistorico')) {\n        this.toastService.showWarning('No tiene permisos asociados.')\n        return;\n      }\n      this.isLoadingData = true;\n      this.listaHistorico = [];\n      let filtroLogin = null;\n      let filtroAliasRol = null;\n      if (this.controlFuncionalidad.getControlFuncionalidad('lichis:portipo')) {\n        filtroLogin = this.storage.getDecodedJWT().usuario,\n          filtroAliasRol = this.storage.getDecodedJWT().aliasRol\n      }\n      this.listaHistorico = await this.ausentismoService.traerListadoHistoricoAusencia({\n        empresa: this.storage.getDecodedJWT().numeroEmpresa,\n        contrato: this.empleado.contrato,\n        origen: this.ausentismoPipe.LICENCIA,\n        listaCodigoAusencia: this.listaCodigoAusencia,\n        login: filtroLogin,\n        rol: filtroAliasRol\n      }).toPromise();\n      if (this.listaHistorico) {\n        this.isLoadingData = false;\n        this.paginator.totalRecords = this.listaHistorico.length;\n      }\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cambiarTab(event) {\n    switch (event.index) {\n      case 0:\n        this.traerSolicitud();\n        this.utilsService.resizeWindowIFrame();\n        break;\n      case 1:\n        this.traerHistorico();\n        this.utilsService.resizeWindowIFrame();\n        break;\n      default:\n        break;\n    }\n  }\n\n  async verPasivo(event) {\n    this.isLoadingData = true;\n    await this.cargaMap();\n    this.verMantenimiento = 'pasivo';\n    this.ausenciaNovedad = event.data;\n    this.nuevo = false;\n  }\n\n  async nuevoPasivo() {\n    this.isLoadingData = true;\n    await this.cargaMap();\n    this.verMantenimiento = 'pasivo';\n    this.ausenciaNovedad = new AusenciaNovedadModel();\n    this.nuevo = true;\n  }\n\n  async verHistorico(event) {\n    this.isLoadingData = true;\n    await this.cargaMap();\n    this.verMantenimiento = 'historico';\n    this.ausentismo = event.data;\n    this.nuevo = false;\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async nuevoRegistroHistorico() {\n    await this.cargaMap();\n    this.verMantenimiento = 'historico';\n    this.ausentismo = new AusenciaModel();\n    this.ausentismo.tipoAusencia = this.tipoAusenciaSeleccionada;\n    this.nuevo = true;\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async nuevoRegistroProgramado() {\n    this.isLoadingData = true;\n    let ausenciaNovedad = new AusenciaNovedadModel();\n    ausenciaNovedad.tipoAusencia = this.tipoAusenciaSeleccionada;\n    this.verMantenimiento = 'programada';\n    await this.sleep(1000)\n    await this.licenciaAusencia.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_LICENCIA, this.ausentismoPipe.FORM_EMPLEADO_LICENCIA, ausenciaNovedad, this.empleado, false).then(data => { })\n  }\n\n  async verRegistroProgramado(ausenciaNovedad) {\n    this.isLoadingData = true;\n    this.verMantenimiento = 'programada';\n    await this.sleep(1000);\n    await this.licenciaAusencia.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_LICENCIA, this.ausentismoPipe.FORM_EMPLEADO_LICENCIA, ausenciaNovedad.data, this.empleado, false).then(data => { })\n  }\n\n  async regresarDetalle(event) {\n    this.verMantenimiento = '';\n    if (event == 'historico') {\n      this.activo = event\n      this.cambiarTab({ originalEvent: '', index: 1 });\n    } else {\n      this.activo = 'solicitud'\n      this.cambiarTab({ originalEvent: '', index: 0 });\n    }\n    this.ausenciaNovedad = new AusenciaNovedadModel();\n    this.ausentismo = new AusenciaModel();\n\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargaMap() {\n    //Carga Tipo ausentismo con pasivo\n    this.listaTipoAusentismo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoAusenciaDTO', null, false, {\n      modoParametro: this.modoParametro,\n      pasivo: this.ausentismoPipe.SI,\n      origen: this.ausentismoPipe.LICENCIA\n    }));\n\n    //Carga Tipo ausentismo sin pasivo\n    this.listaTipoAusentismo2 = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoAusenciaDTO', null, false, {\n      modoParametro: this.modoParametro,\n      origen: this.ausentismoPipe.LICENCIA\n    }));\n  }\n\n  solicitarAusentismo(data) {\n    this.seleccionAusentismo.inicializarListaCondicionDerecho(this.ausentismoPipe.LICENCIA, this.empleado, this.listaCodigoAusencia).then(data => { this.utilsService.resizeWindowIFrame()});\n    this.accion = data;\n  }\n\n  async seleccionarPopupSeleccionAusentismo(event) {\n    this.tipoAusenciaSeleccionada = event.llaveTabla;\n    if (this.accion == 'historico') {\n      await this.nuevoRegistroHistorico();\n    } else if (this.accion == 'solicitud') {\n      await this.nuevoRegistroProgramado();\n    }\n  }\n\n  regresarPopupSeleccionAusentismo() {\n  }\n\n  sleep(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\n  public empleadoActivo(): boolean {\n    return this.empleado.empleadoActivo;\n  }\n\n}\n","<div *ngIf=\"verMantenimiento==''\">\n    <h4>{{'licencia' | translate}}s</h4>\n    <p-tabView (onChange)=\"cambiarTab($event)\">\n        <p-tabPanel header=\"{{'licencia' | translate}}\" [selected]=\"activo == 'solicitud'\">\n            <div class=\"card p-4\" *ngIf=\"controlFuncionalidad.getControlFuncionalidad('licsol:pasivo')\">\n                <div class=\"flex justify-content-between align-items-center -mt-2 mb-3\">\n                    <h5 class=\"mt-0\"><i class='mt-4 glyphicons glyphicons-list'></i>\n                        <span class=\"mt-4\">{{'pasivo' | translate}}</span>\n                    </h5>\n                    <div class=\"flex justify-content-end\">\n                        <!--boton nuevo-->\n                        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                            (click)=\"nuevoPasivo()\" label=\"{{'nuevopasivo' | translate}}\"\n                            *ngIf=\"empleadoActivo() || controlFuncionalidad.getControlFuncionalidad('licsol:empRetirado')\">\n                        </button>\n                    </div>\n                </div>\n                <p-table [value]=\"listaPasivo\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaPasivo.length\"\n                    [paginator]=\"listaPasivo.length > 10\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n                    scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verPasivo($event)\">\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    <ng-template pTemplate=\"header\">\n                        <tr class=\"fondoTablaPincipal\">\n                            <th style=\"min-width: 40%;\">{{'tipo' | translate}}</th>\n                            <th style=\"min-width: 40%;\">{{'periodo' | translate}} {{'servicio' | translate}}</th>\n                            <th style=\"min-width: 10%;\">{{'dias' | translate}}</th>\n                            <th style=\"min-width: 10%;\">{{'solicitados' | translate}}</th>\n                        </tr>\n                        <th>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-dataPasivo let-expanded=\"expanded\">\n                        <tr [pSelectableRow]=\"dataPasivo\">\n                            <td style=\"min-width: 40%;\">{{dataPasivo.nombreTipoAusencia}} <span\n                                    *ngIf=\"dataPasivo.interrupcion == 'I'\">- {{dataPasivo.interrupcion |\n                                    ausentismoPipe:'origenPasivo'}}</span></td>\n                            <td style=\"min-width: 40%;\">{{dataPasivo.iniPeriodo | date: 'dd/MM/yyyy'}} -\n                                {{dataPasivo.finPeriodo | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"min-width: 10%;\">{{dataPasivo.diasPendiente}}</td>\n                            <td style=\"min-width: 10%;\">{{dataPasivo.solicitados}}</td>\n                        </tr>\n                    </ng-template>\n                </p-table>\n            </div>\n            <div class=\"card p-4\">\n                <div class=\"flex justify-content-between align-items-center mb-3\">\n                    <h5 class=\"mt-0\"><i class='mt-4 glyphicons glyphicons-notes'></i>\n                        <span class=\"mt-4\">{{'solicitudes' | translate}}</span>\n                    </h5>\n                    <div class=\"flex justify-content-end\">\n                        <!--boton nuevo -->\n                        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                            (click)=\"solicitarAusentismo('solicitud')\" label=\"{{'nuevo' | translate}}\"\n                            *ngIf=\"empleadoActivo() || controlFuncionalidad.getControlFuncionalidad('licsol:guardar') || controlFuncionalidad.getControlFuncionalidad('licsol:guardarLegalizar')|| controlFuncionalidad.getControlFuncionalidad('licsol:empRetirado') \">\n                        </button>\n                    </div>\n                </div>\n                <p-table [value]=\"listaProgramadas\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaProgramadas.length\"\n                    [paginator]=\"listaProgramadas.length > 10\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n                    scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verRegistroProgramado($event)\">\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    <ng-template pTemplate=\"header\">\n                        <tr class=\"fondoTablaPincipal\">\n                            <th style=\"min-width: 30%;\">{{'ausencia' | translate}}</th>\n                            <th style=\"min-width: 10%;\">{{'salida' | translate}}</th>\n                            <th style=\"min-width: 10%;\">{{'termina' | translate}}</th>\n                            <th style=\"min-width: 10%;\">{{'regreso' | translate}}</th>\n                            <th style=\"min-width: 10%;\">{{'estado' | translate}}</th>\n                            <th style=\"min-width: 25%;\">{{'mensaje' | translate}}</th>\n                        </tr>\n                        <th>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                        <tr [pSelectableRow]=\"data\">\n                            <td style=\"min-width: 30%;\">{{data.nombreTipoAusencia}}</td>\n                            <td style=\"min-width: 10%;\">{{data.salida | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"min-width: 10%;\">{{data.termina | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"min-width: 10%;\">{{data.regreso | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"min-width: 10%;\">{{data.estado | novedadPipe: 'listaEstado'}}</td>\n                            <td style=\"min-width: 25%;\">{{data.mensaje}}</td>\n                        </tr>\n                    </ng-template>\n                </p-table>\n            </div>\n        </p-tabPanel>\n        <p-tabPanel header=\"{{'historico' | translate}}\" [selected]=\"activo == 'historico'\">\n            <div class=\"flex justify-content-end lign-items-center mb-3\">\n                <!--boton nuevo-->\n                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                    (click)=\"solicitarAusentismo('historico')\" label=\"{{'nuevo' | translate}}\"\n                    *ngIf=\"controlFuncionalidad.getControlFuncionalidad('licsol:nuevohistorico') && (empleadoActivo() || controlFuncionalidad.getControlFuncionalidad('licsol:empRetirado') )\">\n                </button>\n            </div>\n            <p-table [value]=\"listaHistorico\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaHistorico.length\"\n                [paginator]=\"listaHistorico.length > 10\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n                scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verHistorico($event)\">\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th style=\"min-width: 50%;\">{{'tipoausencia' | translate}}</th>\n                        <th style=\"min-width: 20%;\">{{'fechasalidanomina' | translate}}</th>\n                        <th style=\"min-width: 20%;\">{{'fechatermina' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'liquidado' | translate}}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                    <tr [pSelectableRow]=\"data\">\n                        <td style=\"min-width: 50%;\">{{data.descripcionTipoAusencia}}</td>\n                        <td style=\"min-width: 20%;\">{{data.salida | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"min-width: 20%;\">{{data.termina | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"min-width: 10%;\">{{data.dias}}</td>\n                    </tr>\n                </ng-template>\n            </p-table>\n        </p-tabPanel>\n    </p-tabView>\n</div>\n<div id=\"id_detalle_pasivo_ausencia\" *ngIf=\"verMantenimiento=='pasivo'\">\n    <app-editar-pasivo-ausencia (regresar)=\"regresarDetalle($event)\" [listaTipoAusentismo]=\"listaTipoAusentismo\"\n        [isNew]=\"nuevo\" [ausenciaNovedad]=\"ausenciaNovedad\" [puedeActualizar]=\"empleado.empleadoActivo\" [origen]=\"'L'\"\n        [empleadoDTO]=\"empleado\"></app-editar-pasivo-ausencia>\n</div>\n<div id=\"id_ausencia_programada\" *ngIf=\"verMantenimiento=='programada'\">\n    <app-licencia-ausencia-programadas #licenciaAusencia\n        (regresar)=\"regresarDetalle($event)\"></app-licencia-ausencia-programadas>\n</div>\n<div id=\"id_detalle_historico\" *ngIf=\"verMantenimiento=='historico'\">\n    <app-editar-historico-licencia (regresar)=\"regresarDetalle($event)\" [ausentismoDTO]=\"ausentismo\" [isNew]=\"nuevo\" \n        [empleadoDTO]=\"empleado\" [listaTipoLicenciaAusencia]=\"listaTipoAusentismo2\"></app-editar-historico-licencia>\n</div>\n<app-popup-seleccion-ausentismo #seleccionAusentismo (regresar)=\"regresarPopupSeleccionAusentismo()\"\n    (seleccionar)=\"seleccionarPopupSeleccionAusentismo($event)\"></app-popup-seleccion-ausentismo>","import { Component, Input, Output, EventEmitter, ElementRef, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CargarArchivosService } from '../../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../../shared/servicios/encriptado-basico.service';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { ToastService, GeneralModel, AuthService } from 'general-library-union';\nimport { ArchivoModel } from '../../../../../hojavida/models/ArchivoModel';\nimport { HojaVidaService } from '../../../../../hojavida/services/hojavida.service';\nimport { ConfirmationService } from 'primeng/api';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\n\n\n@Component({\n    selector: 'app-popup-adjunto-respuesta-ausencia',\n    templateUrl: './popup-adjunto-respuesta-ausencia.component.html',\n    styleUrls: ['./popup-adjunto-respuesta-ausencia.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => PopupAdjuntoRespuestaAusenciaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        FileUploadModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n    ],\n})\nexport class PopupAdjuntoRespuestaAusenciaComponent implements ControlValueAccessor {\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() ocultarBoton: boolean = false;\n\n  @Input() header: string = '';\n\n  @Input() ausencia;\n\n  @Output() arhivo: EventEmitter<any> = new EventEmitter();\n\n  @Output() adjunto: EventEmitter<any> = new EventEmitter();\n\n\n  dataSelected: ArchivoModel;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  public archivoSeleccionado: File;\n\n  public anexoModel: ArchivoModel = new ArchivoModel();\n\n  public unicoArchivo: ArchivoModel;\n\n  public nombreArchivo: string;\n\n\n  constructor(\n    private notificacionesService: ToastService,\n    private cargarArchivo: CargarArchivosService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private hojaVidaService: HojaVidaService,\n    private confirmationService: ConfirmationService,\n    private authService: AuthService,\n    private generalService: GeneralService) { }\n\n\n\n  ocultar() {\n    this.showDialog = false;\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  openDataTable() {\n    this.showDialog = true;\n    this.unicoArchivo = this.value;\n    console.log(this.unicoArchivo);\n\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.nombreArchivo = file.name;\n  }\n\n  cargarAnexo(data: any, fubauto) {\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.label = this.archivoSeleccionado.name;\n    this.arhivo.emit(this.archivoSeleccionado);\n    this.notificacionesService.showSuccess('Se cargó el documento exitosamente');\n    fubauto.clear();\n\n  }\n\n  crearEstructuraAnexo(tabla: string): string {\n    const fecha = new Date();\n    let anio = fecha.getFullYear();\n    let mes = fecha.getMonth() + 1;\n    let ruta = \"\";\n    ruta = '/' + tabla + '/' + anio + '/' + mes + '/';\n    return ruta;\n  }\n\n  descargarAnexo() {\n    this.traerUnicoAdjunto();\n    let documento: ArchivoModel = this.value;\n    if (documento.carpeta == null) {\n      documento.carpeta = this.crearEstructuraAnexo('ausencia_aus')\n    }\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    //Ruta archivo    \n    let extensionArchivo: string = documento.archivoorigen.split('?')[0].split(Constantes.PUNTO).pop();    \n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.carpeta + documento.llaveTabla + Constantes.PUNTO + extensionArchivo), propiedad, aplicacion).subscribe({\n      next: (data) => {\n        const a = document.createElement('a')\n        const objectUrl = URL.createObjectURL(data)\n        a.href = objectUrl\n        a.download = documento.archivoorigen;\n        a.click();\n        URL.revokeObjectURL(objectUrl);\n      },\n      error: (err) => {\n        this.notificacionesService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema.')\n      }\n    });\n  }\n\n  eliminarAnexo(event) {\n    this.traerUnicoAdjunto();\n    let documento = this.value;\n    if (documento.carpeta == null) {\n      documento.carpeta = this.crearEstructuraAnexo('ausencia_aus')\n    }\n    documento.fechaAdicionado = new Date();\n    documento.fechaModificado = new Date();\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea eliminar?',\n      header: 'Confirmar',\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        let propiedad = 'ruta_anexosHojaVida'\n        let aplicacion = this.authService.getTokenKey('aplicacion');\n        this.hojaVidaService.eliminarAnexo(documento).subscribe({\n          next: (data) => {\n            if (data == 1) {\n              this.notificacionesService.showSuccess('Se eliminó el registro exitosamente');\n              this.value = new ArchivoModel();\n              this.label = null;\n              this.adjunto.emit(this.value);\n              //Ruta archivo\n              let rutaSeg = data;\n              this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(documento.carpeta + documento.llaveTabla + '.pdf'), propiedad, aplicacion).subscribe(blob => { });\n              this.arhivo.emit(null);\n            } else {\n              this.notificacionesService.showError('Error en el método de eliminar recurso');\n              //this.isLoading = false;\n            }\n          },\n          error: (err) => {\n            var data = JSON.stringify(err.error.mensajeEtiqueta);\n          },\n        });\n      },\n    });\n  }\n\n  async traerUnicoAdjunto() {\n    try {\n      let filtroAdjunto = new ArchivoModel();\n      filtroAdjunto.llaveTablaArchivo = this.ausencia.llaveTabla;\n      filtroAdjunto.empresa = this.ausencia.empresa;\n      filtroAdjunto.contrato = this.ausencia.contrato;\n      filtroAdjunto.nombreTabla = 'AUSENCIA_AUS';\n      this.value = await this.generalService.queryForObject(new GeneralModel('ArchivoDTO', null, false, filtroAdjunto)).toPromise();\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n}\n","<div class=\"p-inputgroup\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" disabled />\n        <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" [accept]=\"'.pdf'\"\n            (onSelect)=\"cargarAnexo($event, fubauto)\" chooseIcon=\"pi pi-paperclip\"></p-fileUpload>\n        <button class=\"p-button-icon-only clear unico border-noround\" pButton pRipple [disabled]=\"readonly\"\n            *ngIf=\"value?.archivoorigen != null\">\n            <span class=\"glyphicons glyphicons-remove\" (click)=\"eliminarAnexo($event)\"></span>\n        </button>\n        <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\"\n            (click)=\"descargarAnexo()\" type=\"file\" *ngIf=\"value?.archivoorigen != null\"></button>\n        <label>{{header}}</label>\n    </span>\n</div>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { EmpleadoModel } from '../../models/EmpleadoModel';\nimport { AusenciaNovedadModel } from '../../models/AusenciaNovedadModel';\nimport { RequisitoHojaModel } from '../../../talento/models/RequisitoHojaModel';\nimport { EntidadEmpleadoModel } from '../../models/EntidadEmpleadoModel';\nimport { TipoAusenciaModel } from '../../models/TipoAusenciaModel';\nimport { MomentoDocumentoModel } from '../../../talento/models/MomentoDocumentoModel';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { AusentismoPipe } from '../../../../shared/pipes/ausentismo.pipe';\nimport { AusentismoService } from '../../services/ausentismo.service';\nimport { TipoNovedadCons } from '../../../../shared/pipes/tipoNovedadCons.pipe';\nimport { NovedadPipe } from '../../pipes/novedad.pipe';\nimport { ParametrosPipe } from '../../../../shared/pipes/parametros.pipe';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { DatoOrganizacionPipe } from '../../../../shared/pipes/datoOrganizacion.pipe';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { PopupsDinamicosPipe } from '../../../../shared/pipes/popups-dinamicos.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { EmpresaModel } from '../../models/EmpresaModel';\nimport { CampoFormularioModel } from 'general-library-union';\n\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { DiagnosticoSaludModel } from '../../../saludocupacional/models/DiagnosticoSaludModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { CargoModel } from '../../../talento/models/CargoModel';\nimport { ActividadFuenteTareaModel } from '../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { EjecucionAutorizacionComponent } from '../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { EjecucionEncuestaComponent } from '../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { WorkflowPipe } from '../../../../shared/pipes/workflow.pipe';\nimport { EjecucionEncuestaComponent as EjecucionEncuestaComponent_1 } from '../../../sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent as EjecucionAutorizacionComponent_1 } from '../../../sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { PopupMomentoDocumentoComponent } from '../../pages/empleados/ausentismos/popup-momento-documento/popup-momento-documento.component';\nimport { PopupSeguimientoComponent } from '../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CabeceraEmpleadoComponent } from '../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ProgressBarModule } from 'primeng/progressbar';\n\n@Component({\n  selector: 'app-incapacidad-ausencia-programadas',\n  templateUrl: './incapacidad-ausencia-programadas.component.html',\n  styleUrls: ['./incapacidad-ausencia-programadas.component.scss'],\n  standalone: true,\n  imports: [NgIf, CabeceraEmpleadoComponent, ButtonDirective, Ripple, DropdownModule, FormsModule, CalendarModule, InputTextareaModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, CheckboxModule, SplitButtonModule, PopupSeguimientoComponent, PopupMomentoDocumentoComponent, ConfirmDialogModule, EjecucionAutorizacionComponent_1, EjecucionEncuestaComponent_1, DatePipe, TranslateModule, ListaConstantesPipe, FormulariodinamicoComponent, ProgressBarModule]\n})\nexport class IncapacidadAusenciaProgramadasComponent implements OnInit {\n\n  public mapaEstados: any[];\n  public empleado: EmpleadoModel;\n  public novedad: AusenciaNovedadModel;\n  public listaProrroga: any[] = [];\n  public mapaEstadoDoc: any[];\n  public listaRequisitoHojaBorrar: RequisitoHojaModel[];\n  public listaEntidad: any[];\n  public listaAccionReinicio: any[];\n  public listaTipoIncapacidadAusencia: any[];\n  public entidadEmpleado: EntidadEmpleadoModel = new EntidadEmpleadoModel();\n  public nuevoRegistro: boolean;\n  public listaInterrupcion: AusenciaNovedadModel[] = [];\n  public hayInterrupcion: boolean;\n  public listaRequisitoHoja: RequisitoHojaModel[];\n  public listaPasivo: AusenciaNovedadModel[];\n\n  public soyYo: boolean;\n  public encuesta: boolean;\n  public procesoAutorizacion: boolean;\n\n  public estado: string;\n  public estadoNovedad: string;\n  public origenTarea: string;\n  public form: string;\n  public controles: Map<string, boolean> = new Map<string, boolean>();\n  public tipoAusenciaDTO: TipoAusenciaModel;\n  public mostrarMensaje: boolean;\n  public panel: number;\n  public deshabilitarTipoAusencia: boolean;\n  public listaDocumentoTipoAusencia: MomentoDocumentoModel[];\n  public momentoDocumentoDTO: MomentoDocumentoModel;\n  public seguimiento: boolean = false;\n  public campos: CampoFormularioModel[] = []\n  public formularioEditable: boolean;\n  @Output() public regresar = new EventEmitter;\n  public clickGuardar: boolean = false;\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n  public mostrarPopupSeguimiento: boolean;\n  public llaveSeguimiento: string;\n  public mostrarForm: boolean = false;\n\n  itemsBotonAcciones: MenuItem[];\n  labelRegresar: string = 'regresar';\n  labelTarea: string = 'novedad';\n  public listaButtom: any[] = [{ name: 'Si', key: 'S' }, { name: 'No', key: 'N' }];\n  public isLoading: boolean = false;\n  public verPopupMomentoDocumento: boolean = false;\n  public nuevoDocumento: boolean;\n  public horaFormateada: string = '';\n  public unicoRegistro;\n  public loading: boolean = true;\n  @ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n  @ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  constructor(public ausentismoPipe: AusentismoPipe,\n    private ausentismoService: AusentismoService,\n    private tipoNovedadPipe: TipoNovedadCons,\n    private novedadPipe: NovedadPipe,\n    private parametrosPipe: ParametrosPipe,\n    private authService: AuthService,\n    private generalService: GeneralService,\n    public utilsService: UtilsService,\n    private confirmationService: ConfirmationService,\n    public controlFuncionService: CargarControlFuncionalidadService,\n    private notificacionesService: ToastService,\n    private datoOrganizacionPipe: DatoOrganizacionPipe,\n    private listaConstantesPipe: ListaConstantesPipe,\n    private popupsDinamicosPipe: PopupsDinamicosPipe,\n    private generalPipe: GeneralPipe,\n    public translateService: TranslateService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private workFlowPipe: WorkflowPipe,\n    private cargarArchivo: CargarArchivosService) { }\n\n  ngOnInit(): void {\n    this.novedad = new AusenciaNovedadModel();\n    this.deshabilitarTipoAusencia = false;\n    this.tipoAusenciaDTO = new TipoAusenciaModel();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async validarTipoAusencia() {\n    this.tipoAusenciaDTO = new TipoAusenciaModel();\n    this.tipoAusenciaDTO.llaveTabla = this.novedad.tipoAusencia;\n    this.tipoAusenciaDTO = await this.generalService.queryForObject(new GeneralModel('TipoAusenciaDTO', null, false, this.tipoAusenciaDTO)).toPromise();\n    this.mostrarMensaje = this.tipoAusenciaDTO != null && this.tipoAusenciaDTO != undefined && this.tipoAusenciaDTO.mensaje != null;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cambiarTipoAusencia(event) {\n    this.tipoAusenciaDTO = new TipoAusenciaModel();\n    this.tipoAusenciaDTO.llaveTabla = event.data;\n    this.tipoAusenciaDTO = await this.generalService.queryForObject(new GeneralModel('TipoAusenciaDTO', null, false, this.tipoAusenciaDTO)).toPromise();\n    this.mostrarMensaje = this.tipoAusenciaDTO != null && this.tipoAusenciaDTO != undefined && this.tipoAusenciaDTO.mensaje != null;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarListaInterrupcion() {\n    this.hayInterrupcion = false;\n    if (this.novedad.llaveTabla != null) {\n      var ausenciaNovedadDTO: AusenciaNovedadModel = new AusenciaNovedadModel();\n      ausenciaNovedadDTO.programado = this.novedad.llaveTabla;\n      ausenciaNovedadDTO.tipoRegistro = 'VI';\n      this.listaInterrupcion = await this.generalService.queryForList(new GeneralModel('AusenciaNovedadDTO', null, false, ausenciaNovedadDTO)).toPromise();\n    }\n    else {\n      this.listaInterrupcion = [];\n    }\n    if (this.listaInterrupcion.length != 0) {\n      this.hayInterrupcion = true;\n    }\n  }\n\n  async buscar(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleado: EmpleadoModel, unicoRegistro?: boolean) {\n    novedad = this.formatearNovedad(novedad)\n    this.mapaEstados = this.novedadPipe.ESTADONOVEDAD;\n    this.unicoRegistro = unicoRegistro;\n    this.form = form;\n    this.origenTarea = origenTarea;\n    if (origenTarea == this.ausentismoPipe.ORIGEN_EMPLEADO_INCAPACIDAD) {\n      this.labelRegresar = 'listadoincapacidad'\n      this.labelTarea = 'incapacidad'\n    }\n    this.empleado = empleado;\n    this.encuesta = false;\n    this.procesoAutorizacion = false;\n    this.mostrarMensaje = false;\n    this.ControlBotones();\n    await this.cargarListas();\n    this.panel = 0;\n    if (novedad == null || this.utilsService.isBlank(novedad.llaveTabla)) {\n      this.nuevoRegistro = true;\n      this.formularioEditable = true;\n      if (novedad == null) {\n        novedad = new AusenciaNovedadModel();\n      }\n      if (this.utilsService.isBlank(novedad.llaveTabla)) {\n        this.deshabilitarTipoAusencia = true;\n      }\n      novedad.estado = this.novedadPipe.NUEVA;\n      novedad.llaveTabla = this.utilsService.generarLlave();\n      this.novedad = novedad;\n      this.listaInterrupcion = null;\n      this.hayInterrupcion = false;\n    } else {\n      this.nuevoRegistro = false;\n      this.novedad = novedad;\n      this.novedad.estado;\n      await this.validarTipoAusencia();\n      await this.cargarListaInterrupcion();\n    }\n    await this.cargarListaDocumentoTipoNovedad();\n    await this.cambiarTipoAusencia({ data: this.novedad.tipoAusencia });\n    var entidad: EntidadEmpleadoModel = null;\n    if ('R' == this.tipoAusenciaDTO.tipoReposo) {\n      var tmplista = await this.generalService.queryForList(new GeneralModel('EntidadEmpleadoDTO', 'EntidadEmpleado.entidadEmpleadoContrato', false, {\n        empresa: empleado.empresa, identificacion: empleado.contrato, tipoServicio: 'RP'\n      })).toPromise()\n      entidad = tmplista.length > 0 ? tmplista[0] : null;\n    }\n    else {\n      var tmplista = await this.generalService.queryForList(new GeneralModel('EntidadEmpleadoDTO', 'EntidadEmpleado.entidadEmpleadoContrato', false, {\n        empresa: empleado.empresa, identificacion: empleado.contrato, tipoServicio: 'ES'\n      })).toPromise()\n      entidad = tmplista.length > 0 ? tmplista[0] : null;\n    }\n    if (entidad != null) {\n      novedad.entidad = entidad.entidad;\n    }\n    this.ControlBotones();\n    this.cargarCampos();\n    this.mostrarForm = true\n    this.loading = false;\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  cargarCampos() {\n    this.ausentismoService.cargarCamposIncapacidad({ llaveBase: this.tipoAusenciaDTO.llaveTabla, novedad: this.novedad }).subscribe(data => {\n      this.campos = data.listaCampos;\n      this.setValorCampos()\n      this.utilsService.resizeWindowIFrame();\n    })\n  }\n\n  setValorCampos() {\n    this.campos.forEach(element => {\n      if (typeof element.valor === 'string') {\n        element.valor = element.valor.trim()\n      }\n      if (element.tipo === 'F') {\n        element.valor = new Date(element.valor)\n      } else if (element.tipo === 'H') {\n        if (element.valor) {\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';')\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 })\n          })\n          element.valor = listaValortemp\n        }\n      } else if (element.tipo === 'P') {\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n          if (element.popup == pop.id) {\n            element.popupComponent = pop.popup;\n            element.propiedadesPopupComponent = {\n              readonly: !this.formulario?.editable,\n              showDialog: false,\n              label: element.valor,\n            }\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup)\n          }\n        });\n      } else if (element.tipo === 'Z') {\n        if (element.valor) {\n          let valorEnDecimal = element.valor;\n          const horas = Math.floor(valorEnDecimal / 100);\n          const minutos = valorEnDecimal % 100;\n          element.valor = `${horas.toString().padStart(2, '0')}:${minutos.toString().padStart(2, '0')}`;\n        }\n      }\n    });\n  }\n\n  async cargarListas() {\n    this.listaProrroga = this.generalPipe.LISTA_SINO;\n    this.listaAccionReinicio = this.novedadPipe.LISTAFECHAREINICIO;\n    this.mapaEstadoDoc = this.listaConstantesPipe.CUMPLIDO_REQ;\n    this.listaRequisitoHojaBorrar = [];\n    this.llenarSelectItementidades();\n\n    var empresaDTO = new EmpresaModel();\n    var numeroEmpresa: number = this.empleado.empresa;\n    empresaDTO.empresa = numeroEmpresa;\n    empresaDTO = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, empresaDTO)).toPromise();\n\n    this.listaTipoIncapacidadAusencia = [];\n\n    if (this.isDisabled()) {\n\n      var tipoAusencia = new TipoAusenciaModel();\n      tipoAusencia.modoParametro = empresaDTO.modoCompensacion;\n      tipoAusencia.origen = this.ausentismoPipe.INCAPACIDAD;\n      tipoAusencia.estado = this.generalPipe.SI;\n      var listaTodos: TipoAusenciaModel[] = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, tipoAusencia)).toPromise();\n      this.listaTipoIncapacidadAusencia = []\n      listaTodos.forEach(data => {\n        this.listaTipoIncapacidadAusencia.push({ codigo: data.llaveTabla, nombre: data.descripcion });\n      })\n    } else {\n      var comodin: TipoAusenciaModel = new TipoAusenciaModel();\n      comodin.modoParametro = empresaDTO.modoCompensacion;\n      comodin.origen = this.ausentismoPipe.INCAPACIDAD;\n      comodin.estado = this.generalPipe.SI;\n      comodin.filtroLoginRol = 'TA';\n      comodin.login = this.authService.getTokenKey('usuario');\n      comodin.rolUsuario = this.authService.getTokenKey('aliasRol');\n      var lista: TipoAusenciaModel[] = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, comodin)).toPromise();\n      this.listaTipoIncapacidadAusencia = []\n      lista.forEach(data => {\n        this.listaTipoIncapacidadAusencia.push({ codigo: data.llaveTabla.trim(), nombre: data.descripcion });\n      })\n    }\n  }\n\n  async cargarListaDocumentoTipoNovedad() {\n    this.listaRequisitoHoja = [];\n    this.listaDocumentoTipoAusencia = [];\n    if (this.novedad.tipoAusencia == null) {\n      return;\n    }\n    var requisitoHojaDTO: RequisitoHojaModel = new RequisitoHojaModel();\n    requisitoHojaDTO.actoAdministrativo = this.novedad.llaveTabla;\n\n    this.listaDocumentoTipoAusencia = await this.generalService.queryForList(new GeneralModel('MomentoDocumentoDTO', 'MomentoDocumento.consultarMomentoDocumentoFiltro', false, await this.filtroMomentoDocumento())).toPromise();\n\n    if (this.novedad.llaveTabla == null) {\n      return;\n    }\n    let extensionArchivo = [];\n    let propiedad = 'ruta_anexosHojaVida'\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      // Se valida si el tipoDocumento ya tiene un archivo asociado\n      var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n      requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n      requisitoHojaFiltro.actoAdministrativo = this.novedad.llaveTabla;\n      var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n      if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n        requisitoHojaFiltro = listadoRequisitoHoja[0];\n        documento.requisitoHojaDTO = requisitoHojaFiltro;\n        if (documento.tipo != null && documento.tipo == this.parametrosPipe.DOCUMENTO_ANEXO) {\n          extensionArchivo = requisitoHojaFiltro.archivo.split('.');\n          if (this.listaConstantesPipe.CUMPLIDO == requisitoHojaFiltro.estado) {\n            let rutaArchivo: string = propiedad + requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1];\n            documento.ruta = this.encriptadoBasico.encriptar(rutaArchivo);\n          }\n        }\n      }\n    })\n  }\n\n  async filtroMomentoDocumento(): Promise<MomentoDocumentoModel> {\n    var momentoDocumento: MomentoDocumentoModel = new MomentoDocumentoModel();\n    momentoDocumento.momento = this.novedad.tipoAusencia;\n    momentoDocumento.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n    momentoDocumento.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    momentoDocumento.vinculacion = this.empleado.vinculacion;\n    momentoDocumento.cargo = this.empleado.cargo;\n    if (this.empleado.cargo != null) {\n      var cargoVar: CargoModel = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, { cargo: this.empleado.cargo, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n      momentoDocumento.nivelCargo = cargoVar.nivelCargo;\n    }\n    var hojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, { identifica: this.empleado.cedula })).toPromise();\n    momentoDocumento.ubicacion = hojaVidaDTO.ubicaciongeo;\n    momentoDocumento.sexo = hojaVidaDTO.sexo;\n    return momentoDocumento;\n  }\n\n  async verDocumento(event) {\n    this.verPopupMomentoDocumento = true;\n    this.momentoDocumentoDTO = event.data;\n    if (this.momentoDocumentoDTO.requisitoHojaDTO) {\n      this.nuevoDocumento = false;\n    } else {\n      this.nuevoDocumento = true;\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  eliminarDocumento() {\n    if (this.listaDocumentoTipoAusencia.length > 0) {\n      this.listaDocumentoTipoAusencia.forEach(async documento => {\n        var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n        requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n        requisitoHojaFiltro.actoAdministrativo = this.novedad.llaveTabla;\n        var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n        if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n          requisitoHojaFiltro = listadoRequisitoHoja[0];\n          documento.requisitoHojaDTO = requisitoHojaFiltro;\n          await this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n          let extensionArchivo: string = requisitoHojaFiltro.archivo.split('?')[0].split(Constantes.PUNTO).pop();\n          let propiedad = 'ruta_anexosHojaVida'\n          let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n          this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo), propiedad, codigoAplicacion).subscribe(blob => { });\n        }\n      })\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  descargarAnexo(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    let extensionArchivo = documento.archivo.split('.');\n    this.isLoading = true;\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1]), propiedad, aplicacion).subscribe({\n      next: (data) => {\n        this.isLoading = false;\n        const a = document.createElement('a')\n        const objectUrl = URL.createObjectURL(data)\n        a.href = objectUrl\n        a.download = documento.archivo;\n        a.click();\n        URL.revokeObjectURL(objectUrl);\n      },\n      error: (err) => {\n        this.isLoading = false;\n        this.notificacionesService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema.')\n      }\n    })\n  }\n\n  public validarAnexoObligatorio(): boolean {\n    let validador: boolean = true;\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      if (documento.opcional == Constantes.CONSTANTE_NO) {\n        if (!documento.requisitoHojaDTO) {\n          this.notificacionesService.showWarning('Debe incluir el anexo: ' + documento.nombreTipoDocumento);\n          validador = false;\n          return;\n        }\n      }\n    })\n    return validador;\n  }\n\n  llenarSelectItementidades() {\n    this.listaEntidad = [];\n    this.entidadEmpleado = new EntidadEmpleadoModel();\n    this.entidadEmpleado.identificacion = this.empleado.contrato;\n    this.entidadEmpleado.empresa = this.empleado.empresa;\n    this.generalService.queryForList(new GeneralModel('EntidadEmpleadoDTO', 'EntidadEmpleado.listaEntidadIncapacidadEmpleado', false, this.entidadEmpleado)).subscribe(data => {\n      var lista: EntidadEmpleadoModel[] = data\n      lista.forEach(data => {\n        this.listaEntidad.push({ codigo: data.entidad, nombre: data.nombreEntidad });\n      })\n    })\n  }\n\n  ControlBotones() {\n    this.controles = new Map<string, boolean>();\n    var valor = '';\n    //validaCredencial();\n\n    if (this.novedadPipe.ACTOELABORADA == this.novedad.estado) {\n      return;\n    }\n    this.controles.set('empRetirado', this.controlFuncionService.getControlFuncionalidad('incsol:empRetirado'));\n    if (this.authService.getTokenKey('tipoLogin') == 'U') {\n      if (this.novedadPipe.SOLICITUD == this.novedad.estado || this.novedadPipe.AUTORIZADA == this.novedad.estado ||\n        this.novedadPipe.SOLICITUDINCONSISTENCIA == this.novedad.estado || this.novedadPipe.PROGRAMADAINCONSISTENCIA == this.novedad.estado) {\n        if (this.controlFuncionService.getControlFuncionalidad('incsol:guardar') != null && this.controlFuncionService.getControlFuncionalidad('incsol:guardar') == true) {\n          this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('incsol:guardar'));\n        } else {\n          this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('incsol:guardarLegalizar'));\n        }\n      }\n    } else {\n      if (this.novedadPipe.SOLICITUD == this.novedad.estado ||\n        this.novedadPipe.SOLICITUDINCONSISTENCIA == this.novedad.estado || this.novedadPipe.PROGRAMADAINCONSISTENCIA == this.novedad.estado) {\n        if (this.soyYo) {\n          this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('incsol:guardar_mio'));\n        } else {\n          this.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('incsol:guardar'));\n        }\n      }\n\n    }\n\n    this.controles.set('eliminarDirecto', this.controlFuncionService.getControlFuncionalidad('incsol:eliminarDirecto'));\n    if (this.soyYo) {\n      this.controles.set('eliminar', this.controlFuncionService.getControlFuncionalidad('incsol:eliminar_mio'));\n    } else {\n      this.controles.set('eliminar', this.controlFuncionService.getControlFuncionalidad('incsol:eliminar'));\n    }\n\n    if (this.novedadPipe.SOLICITUDINCONSISTENCIA == this.novedad.estado\n      || this.novedadPipe.NOAUTORIZADA == this.novedad.estado || this.novedadPipe.NUEVA == this.novedad.estado) {\n      this.controles.set('guardarLegalizar', this.controlFuncionService.getControlFuncionalidad('incsol:guardarLegalizar'));\n      valor = 'guardar';\n    }\n\n    if ('' == valor) {\n      if (this.novedadPipe.AUTORIZADA == this.novedad.estado) {\n        valor = 'legalizar';\n      }\n    }\n\n    if (this.soyYo) {\n      this.controles.set(valor, this.controlFuncionService.getControlFuncionalidad('incsol:' + valor + '_mio'));\n    } else {\n      this.controles.set(valor, this.controlFuncionService.getControlFuncionalidad('incsol:' + valor));\n    }\n    this.cargarAccionesBoton();\n  }\n\n  cargarAccionesBoton() {\n    this.itemsBotonAcciones = [\n      {\n        label: this.translateService.instant('link_guardar'), icon: \"glyphicons glyphicons-floppy-save\",\n        visible: (this.controles.get('guardar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.solicitarIncapacidad();\n          }\n      },\n      {\n        label: this.translateService.instant('link_guardarlegalizar'), icon: \"glyphicons glyphicons-edit\",\n        visible: (this.controles.get('guardarLegalizar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.solicitarLegalizarIncapacidad();\n          }\n      },\n      {\n        label: this.translateService.instant('link_legalizar'), icon: \"glyphicons glyphicons-edit\",\n        visible: (this.controles.get('legalizar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.legalizarIncapacidad();\n          }\n      },\n      {\n        label: this.translateService.instant('nolegalizar'), icon: \"glyphicons glyphicons-check\",\n        visible: (this.controles.get('legalizar') ?? false) && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.noLegalizarIncapacidad();\n          }\n      },\n      {\n        label: this.translateService.instant('link_cambiardato'), icon: \"glyphicons glyphicons-refresh\",\n        visible: (this.controles.get('cambioDato') ?? false) && this.isVerBtnCambiarDatos() && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            window.scrollTo({ top: 0, behavior: 'auto' })\n            this.cambiarDatos();\n          }\n      },\n      {\n        label: this.translateService.instant('link_eliminar'), icon: \"glyphicons glyphicons-bin\",\n        visible: (this.controles.get('eliminar') ?? false) && !this.nuevoRegistro && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.eliminarSolicitud();\n          }\n      },\n      {\n        label: this.translateService.instant('link_eliminar') + ' ' + this.translateService.instant('directo'), icon: \"glyphicons glyphicons-dustbin\",\n        visible: (this.controles.get('eliminarDirecto') ?? false) && !this.nuevoRegistro && (this.isEmpleadoActivo() || this.controles.get('empRetirado')),\n        command:\n          (event) => {\n            this.eliminarSolicitudDirecto();\n          }\n      }\n    ]\n  }\n\n  validarEdicionFormulario() {\n    if (this.controles.get('guardar') == null || this.encuesta || this.procesoAutorizacion || !this.controles.get('guardar')) {\n      if (this.controles.get('guardarLegalizar') == null || this.procesoAutorizacion || this.encuesta || !this.controles.get('guardarLegalizar')) {\n        this.formularioEditable = false;\n      } else {\n        this.formularioEditable = true;\n      }\n    }\n  }\n\n  formatearNovedad(novedad: AusenciaNovedadModel): AusenciaNovedadModel {\n    novedad.iniPeriodo = novedad.iniPeriodo ? new Date(novedad.iniPeriodo) : null;\n    novedad.finPeriodo = novedad.finPeriodo ? new Date(novedad.finPeriodo) : null;\n    novedad.salida = novedad.salida ? new Date(novedad.salida) : null;\n    novedad.salidaNomina = novedad.salidaNomina ? new Date(novedad.salidaNomina) : null;\n    novedad.termina = novedad.termina ? new Date(novedad.termina) : null;\n    novedad.regreso = novedad.regreso ? new Date(novedad.regreso) : null;\n    novedad.regresoNomina = novedad.regresoNomina ? new Date(novedad.regresoNomina) : null;\n    novedad.fechaOrigen = novedad.fechaOrigen ? new Date(novedad.fechaOrigen) : null;\n    novedad.fechaPago = novedad.fechaPago ? new Date(novedad.fechaPago) : null;\n    novedad.horaSalida = novedad.horaSalida ? new Date(novedad.horaSalida) : null;\n    novedad.horaRegresa = novedad.horaRegresa ? new Date(novedad.horaRegresa) : null;\n    novedad.recupera = novedad.recupera ? new Date(novedad.recupera) : null;\n    novedad.reinicio = novedad.reinicio ? new Date(novedad.reinicio) : null;\n    novedad.anticipoNomina = novedad.anticipoNomina ? new Date(novedad.anticipoNomina) : null;\n    novedad.fechaIngreso = novedad.fechaIngreso ? new Date(novedad.fechaIngreso) : null;\n    novedad.fechaAntiguedad = novedad.fechaAntiguedad ? new Date(novedad.fechaAntiguedad) : null;\n    novedad.fecha1 = novedad.fecha1 ? new Date(novedad.fecha1) : null;\n    novedad.fecha2 = novedad.fecha2 ? new Date(novedad.fecha2) : null;\n    novedad.hora1 = novedad.hora1 ? new Date(novedad.hora1) : null;\n    novedad.hora2 = novedad.hora2 ? new Date(novedad.hora2) : null;\n    novedad.fechaALegalizar = novedad.fechaALegalizar ? new Date(novedad.fechaALegalizar) : null;\n    novedad.fechaBloqueo = novedad.fechaBloqueo ? new Date(novedad.fechaBloqueo) : null;\n    return novedad;\n  }\n\n  obtenerEstado(estado) {\n    var estadoRetorno = '';\n    var retorno = this.mapaEstados.filter(element => element.codigo == estado)\n    if (retorno?.length > 0) {\n      estadoRetorno = retorno[0].nombre\n    }\n    return estadoRetorno;\n  }\n\n  validarSolicitud() {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.novedad.tipoAusencia);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.novedad.salida);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.novedad.prorroga);\n    if ('S' == this.novedad.interrupcion) {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.novedad.reinicio);\n    }\n    return validador;\n  }\n\n\n  async solicitarIncapacidad() {\n    var validarFormulario: boolean = this.formulario ? this.formulario.validar() : true;\n    if (!this.validarSolicitud() || !validarFormulario) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    if (!this.validarAnexoObligatorio()) {\n      return null;\n    }\n    if (this.formulario) {\n      this.novedad = this.formulario.getObjecto();\n    }\n    this.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n    if (this.novedad.horasDisfrute != undefined && this.novedad.horasDisfrute.toString() == '') {\n      this.novedad.horasDisfrute = null;\n    }\n    if (this.novedad.horasDisfrute) {\n      const [horas, minutos] = this.novedad.horasDisfrute.toString().split(':');\n      this.novedad.horasDisfrute = parseFloat(`${horas.toString().padStart(2, '0')}${minutos.toString().padStart(2, '0')}`)\n    }\n    if (this.novedad.diagnostico != null && this.novedad.diagnostico != undefined) {\n      if (!(await this.validarDiagnostico(this.novedad.diagnostico))) {\n        this.confirmationService.confirm({\n          target: event.target,\n          acceptLabel: 'Si',\n          header: 'Confirmar',\n          message: 'El código del diagnóstico no existe. ¿Desea continuar?',\n          key: 'keyConfirmDialog',\n          accept: async () => {\n            await this.setGuardar(true)\n          },\n          reject: async () => {\n            await this.setGuardar(false)\n          }\n        });\n      } else {\n        await this.setGuardar(true);\n      }\n    } else {\n      await this.setGuardar(true);\n    }\n    await this.cargarListaInterrupcion();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async solicitarLegalizarIncapacidad() {\n    var validarFormulario: boolean = this.formulario ? this.formulario.validar() : true;\n    if (!this.validarSolicitud() && !validarFormulario) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    if (!this.validarAnexoObligatorio()) {\n      return null;\n    }\n    if (this.formulario) {\n      this.novedad = this.formulario.getObjecto();\n    }\n    this.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n    if (this.novedad.horasDisfrute != undefined && this.novedad.horasDisfrute.toString() == '') {\n      this.novedad.horasDisfrute = null;\n    }\n    if (this.novedad.horasDisfrute) {\n      const [horas, minutos] = this.novedad.horasDisfrute.toString().split(':');\n      this.novedad.horasDisfrute = parseFloat(`${horas.toString().padStart(2, '0')}${minutos.toString().padStart(2, '0')}`)\n    }\n    if (this.novedad.diagnostico != null && this.novedad.diagnostico != undefined) {\n      if (!(await this.validarDiagnostico(this.novedad.diagnostico))) {\n        this.confirmationService.confirm({          \n          target: event.target,\n          acceptLabel: 'Si',\n          header: 'Confirmar',\n          message: 'El código del diagnóstico no existe. ¿Desea continuar?',\n          key: 'keyConfirmDialog',\n          accept: async () => {\n            await this.setGuardarSolicitudLegalizar(true)\n          },\n          reject: async () => {\n            await this.setGuardarSolicitudLegalizar(false)\n          }\n        });\n      } else {\n        await this.setGuardarSolicitudLegalizar(true);\n      }\n    } else {\n      await this.setGuardarSolicitudLegalizar(true);\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async validarDiagnostico(llaveCodigo: string) {\n    var diag: DiagnosticoSaludModel = new DiagnosticoSaludModel();\n    var cantidad: number = 0;\n    diag.llave = this.novedad.diagnostico;\n    cantidad = await this.generalService.cantidadRegistros(new GeneralModel('DiagnosticoSaludDTO', null, false, diag)).toPromise();\n    if (cantidad == 0) {\n      diag = new DiagnosticoSaludModel();\n      diag.codigo = llaveCodigo;\n      cantidad = await this.generalService.cantidadRegistros(new GeneralModel('DiagnosticoSaludDTO', null, false, diag)).toPromise();\n    }\n    return cantidad > 0;\n  }\n\n  async setGuardar(respuesta: boolean) {\n    if (respuesta) {\n      this.novedad.solicita = this.empleado.cedula;\n\n      this.novedad = await this.ausentismoService.crearAusencia({\n        ausencia: this.novedad,\n        empleado: this.empleado,\n        nuevoRegistro: this.nuevoRegistro,\n        listaPasivo: this.listaPasivo,\n        pasivo: false,\n        usuario: this.authService.getTokenKey('usuario'),\n        seguimiento: this.seguimiento,\n        tipo: this.ausentismoPipe.INCAPACIDAD\n      }).toPromise();\n      this.novedad = this.formatearNovedad(this.novedad)\n      this.formularioEditable = false;\n      if (this.novedad.mensaje != null) {\n        this.nuevoRegistro = false;\n        await this.cargarListaInterrupcion();\n        this.validarEdicionFormulario();\n        await this.eliminarRegistroConMensaje();\n        this.notificacionesService.showWarning(this.novedad.mensaje);\n      } else {\n        if (this.nuevoRegistro) {\n          this.notificacionesService.showInfo(\"Se creó el registro exitosamente\");\n        } else {\n          this.notificacionesService.showInfo(\"Se actualizó el registro exitosamente\");\n        }\n        this.nuevoRegistro = false;\n        await this.validarTipoAusencia();\n        await this.cargarListaInterrupcion();\n        //guardarAnexos(novedad.getLlaveTabla());\n      }\n      if (this.seguimiento) {\n        this.seguimiento = false;\n        this.llaveSeguimiento = this.novedad.llaveTabla\n        this.mostrarPopupSeguimiento = true;\n      }\n      this.ControlBotones();\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async setGuardarSolicitudLegalizar(respuesta: boolean) {\n    if (respuesta) {\n      this.novedad.tipoRol = this.authService.getTokenKey('tipoLogin');\n      this.novedad.solicita = this.empleado.cedula;\n      this.novedad = await this.ausentismoService.insertarLegalizarAusentismoAusencia({\n        ausencia: this.novedad,\n        empleado: this.empleado,\n        origen: this.ausentismoPipe.INCAPACIDAD,\n        nuevoRegistro: this.nuevoRegistro,\n        listaPasivo: this.listaPasivo,\n        pasivo: false,\n        usuario: this.authService.getTokenKey('usuario')\n      }).toPromise();\n      this.novedad = this.formatearNovedad(this.novedad)\n      if (this.novedad.mensaje != null) {\n        this.validarEdicionFormulario();\n        await this.cargarListaInterrupcion();\n        await this.eliminarRegistroConMensaje();\n        this.notificacionesService.showWarning(this.novedad.mensaje)\n      } else {\n        this.nuevoRegistro = false;\n        this.notificacionesService.showInfo('Se actualizó el registro exitosamente');\n        await this.cargarListaInterrupcion();\n        await this.validarTipoAusencia();\n        this.regresar.emit();\n      }\n      this.ControlBotones();\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  legalizarIncapacidad() {\n    this.ausentismoService.cambiarEstadoLegalizado({\n      ausencia: this.novedad,\n      empleado: this.empleado,\n      origen: 'I',\n      usuario: this.authService.getTokenKey('usuario')\n    }).subscribe(data => {\n      this.novedad = data\n      this.ControlBotones();\n      this.regresarAction()\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  noLegalizarIncapacidad() {\n    this.ausentismoService.cambiarEstadoNoLegalizado({\n      ausencia: this.novedad,\n      empleado: this.empleado,\n      origen: 'V',\n      usuario: this.authService.getTokenKey('usuario')\n    }).subscribe(data => {\n      this.novedad = data\n      this.ControlBotones();\n      this.regresarAction()\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cambiarDatos() {\n    this.deshabilitarTipoAusencia = false;\n    this.novedad.estado = this.novedadPipe.NUEVA;\n    this.formularioEditable = true;\n    this.ControlBotones();\n    //this.cargarListas().then(data => {});\n    this.cargarCampos();\n    this.novedad.estado = this.novedadPipe.SOLICITUD;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  eliminarSolicitud() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      header: 'Confirmar',      \n      key: 'keyConfirmDialog',\n      accept: () => {\n        this.ausentismoService.eliminarAusentismoAusencia({\n          novedad: this.novedad,\n          empleado: this.empleado,\n          origen: 'I'\n        }).subscribe(data => {\n          this.notificacionesService.showInfo('Se eliminó el registro exitosamente');\n          this.regresar.emit();\n        });\n      },\n      reject: () => {\n      }\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  eliminarSolicitudDirecto() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      header: 'Confirmar',      \n      key: 'keyConfirmDialog',\n      accept: () => {\n        this.ausentismoService.eliminarRegistro({ llaveVacacion: this.novedad.llaveTabla }).subscribe(data => {\n          this.notificacionesService.showInfo('Se eliminó el registro exitosamente');\n          this.regresar.emit();\n        });\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  regresarAction() {\n    this.regresar.emit();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async eliminarRegistroConMensaje() {\n    await this.ausentismoService.eliminarRegistro({ llaveVacacion: this.novedad.llaveTabla }).toPromise();\n    this.nuevoRegistro = true;\n    this.novedad.estado = this.novedadPipe.NUEVA;\n    this.novedad.llaveTabla = null;\n  }\n\n  regresarPopupSeguimiento() {\n    this.mostrarPopupSeguimiento = false;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async regresaPopupRequisitoContratacion() {\n    this.verPopupMomentoDocumento = false;\n    await this.cargarListaDocumentoTipoNovedad();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n\n    var ausencia = new AusenciaNovedadModel();\n    ausencia.llaveTabla = actividad.llaveTablaBase;\n    ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();;\n\n    if (ausencia == null) {\n      this.notificacionesService.showError(\"Objeto no existe\");\n      this.regresarAction();\n      return;\n    }\n\n    this.encuesta = true;\n    this.procesoAutorizacion = false;\n\n    await this.utilsService.sleep(300);\n    await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, ausencia);\n\n    this.empleado = new EmpleadoModel();\n    this.empleado.contrato = ausencia.contrato;\n    this.empleado.empresa = ausencia.empresa;\n    this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleado)).toPromise();\n    await this.buscarBPM(this.ausentismoPipe.ORIGEN_ACTIVIDAD_INCAPACIDAD, this.ausentismoPipe.FORM_ACTIVIDAD_INCAPACIDAD, ausencia, this.empleado);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  public async verAutorizacion(llaveActividad: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n\n    var ausencia = new AusenciaNovedadModel();\n    ausencia.llaveTabla = actividad.llaveTablaBase;\n    ausencia = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, ausencia)).toPromise();;\n\n    if (ausencia == null) {\n      this.notificacionesService.showError(\"Objeto no existe\");\n      this.regresarAction();\n      return;\n    }\n\n    this.encuesta = false;\n    this.procesoAutorizacion = true;\n\n    await this.utilsService.sleep(300);\n    await this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOINCAPACIDAD, ausencia);\n\n    this.empleado = new EmpleadoModel();\n    this.empleado.contrato = ausencia.contrato;\n    this.empleado.empresa = ausencia.empresa;\n    this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleado)).toPromise();\n\n    await this.buscarBPM(this.ausentismoPipe.ORIGEN_ACTIVIDAD_INCAPACIDAD, this.ausentismoPipe.FORM_ACTIVIDAD_INCAPACIDAD, ausencia, this.empleado);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  public async buscarBPM(origenTarea: string, form: string, novedad: AusenciaNovedadModel, empleado: EmpleadoModel) {\n    this.form = form;\n    this.origenTarea = origenTarea;\n    this.empleado = empleado;\n    await this.cargarListas();\n    if (novedad == null) {\n      novedad = new AusenciaNovedadModel();\n      novedad.estado = this.novedadPipe.NUEVA;\n      this.novedad = novedad;\n    } else {\n      this.nuevoRegistro = false;\n      this.novedad = novedad;\n      this.estado = this.novedad.estado;\n    }\n    this.novedad = this.formatearNovedad(this.novedad);\n    await this.cargarListaDocumentoTipoNovedad();\n    await this.cambiarTipoAusencia({ data: novedad.tipoAusencia });\n    this.ControlBotones();\n    this.cargarCampos();\n    this.mostrarForm = true;\n    this.loading = false;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  isPorLegalizar(): boolean {\n    return this.novedadPipe.NOVEDAD_POR_LEGALIZAR == this.estadoNovedad;\n  }\n\n  isPorAutorizar(): boolean {\n    return this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estadoNovedad;\n  }\n\n  isPorSolicitar(): boolean {\n    return this.novedadPipe.NOVEDAD_POR_SOLICITAR == this.estadoNovedad;\n  }\n\n  isVerBtnCambiarDatos(): boolean {\n    return !this.isPorAutorizar() && !this.isPorLegalizar();\n  }\n\n  isFuncional(): boolean {\n    return this.authService.getTokenKey('tipoLogin') == 'U';\n  }\n\n  isVerBtnGuardar(): boolean {\n    return this.controles != null && (this.controles.get('guardar') || this.controles.get('aplicar'));\n  }\n\n  isDisabled() {\n    return this.procesoAutorizacion || this.encuesta || (this.controles != null && (this.controles.get('guardar') == null || this.controles.get('guardarLegalizar') == null)) || this.deshabilitarTipoAusencia;\n  }\n\n  isEmpleadoActivo(): boolean {\n    return this.empleado != null && this.empleadoActivo();\n  }\n\n  empleadoActivo() {\n    if (this.empleado.estadoLaboral == null || this.empleado.estadoLaboralPeriodo == null) {\n      return false;\n    }\n    return this.empleado.estadoLaboral == this.empleado.estadoLaboralPeriodo;\n  }\n}\n","@if(loading){\n<p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n}\n@if(!loading){\n<div *ngIf=\"mostrarForm\">\n    <p-confirmDialog #cd key=\"keyConfirmDialog\" [header]=\"'confirmacion' | translate\">\n        <ng-template pTemplate=\"footer\">\n            <div class=\"mt-3\">\n                <button type=\"button\" class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\"\n                    pButton icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n                <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                    (click)=\"cd.accept()\"></button>\n            </div>\n        </ng-template>\n    </p-confirmDialog>\n    <app-cabecera-empleado [empleado]=\"empleado\"\n        *ngIf=\"empleado != null && origenTarea != ausentismoPipe.ORIGEN_EMPLEADO_INCAPACIDAD\"></app-cabecera-empleado>\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-2 align-items-between\">\n        <h4 class=\"text-xl mb-0\">{{labelTarea | translate}}</h4>\n        <button pButton pRipple *ngIf=\"!unicoRegistro\" (click)=\"regresarAction()\" label=\"{{labelRegresar | translate}}\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 mb-2\"></button>\n    </div>\n    <div class=\"contenedor\">\n        <div class=\"card p-4 Inputgroup mb-5\">\n            <div class=\"flex justify-content-between align-items-center mt-2 mb-2 align-items-between\">\n                <h5 style=\"margin-bottom: 0 !important; \"><i class='glyphicons glyphicons-home'></i>\n                    <span>{{'detalle' | translate}} {{'solicitud' | translate}}</span>\n                </h5>\n            </div>\n            <div class=\"p-fluid p-formgrid grid mt-3\">\n                <!-- TIPO AUSENTISMO -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaTipoIncapacidadAusencia\" [(ngModel)]=\"novedad.tipoAusencia\"\n                            [disabled]=\"encuesta || procesoAutorizacion || deshabilitarTipoAusencia || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"\n                            [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedad.tipoAusencia) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedad.tipoAusencia) && clickGuardar\"\n                            optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                        </p-dropdown>\n                        <label>{{'tipoausencia' | translate}}*</label>\n                    </span>\n                </div>\n                <!-- ESTADO -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_estado\" [options]=\"mapaEstados\" [autoDisplayFirst]=\"false\"\n                            optionLabel=\"nombre\" optionValue=\"codigo\" [(ngModel)]=\"novedad.estado\"\n                            [disabled]=\"true\"></p-dropdown>\n                        <label>{{'estado' | translate}}</label>\n                    </span>\n                </div>\n                <!-- PRORROGA -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_prorroga\" [options]=\"listaButtom\" optionLabel=\"name\" optionValue=\"key\"\n                            [(ngModel)]=\"novedad.prorroga\" [autoDisplayFirst]=\"false\"\n                            [disabled]=\"encuesta || procesoAutorizacion || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"\n                            [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedad.prorroga) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedad.prorroga) && clickGuardar\">\n                        </p-dropdown>\n                        <label htmlFor=\"prorroga\">{{'prorroga' | translate}} *</label>\n                    </span>\n                </div>\n                <!-- FECHA SALIDA -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"novedad.salida\" dateFormat=\"dd/mm/yy\"\n                            [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\"\n                            [showIcon]=\"true\"\n                            [disabled]=\"encuesta || procesoAutorizacion || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"></p-calendar>\n                        <label>{{'fechasalida' | translate}}*</label>\n                    </span>\n                </div>\n                <!-- FECHA SALIDA NOMINA -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isFuncional()\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"novedad.salidaNomina\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                            [disabled]=\"encuesta || procesoAutorizacion || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"></p-calendar>\n                        <label>{{'fechasalidanomina' | translate}}</label>\n                    </span>\n                </div>\n                <!-- FECHA REGRESO -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"novedad.regreso\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                            [disabled]=\"true\"></p-calendar>\n                        <label>{{'fecha' | translate}} {{'regreso' | translate}}</label>\n                    </span>\n                </div>\n                <!-- FECHA REGRESO NOMINA -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isFuncional()\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"novedad.regresoNomina\" dateFormat=\"dd/mm/yy\" [disabled]=\"true\"\n                            [showIcon]=\"true\"></p-calendar>\n                        <label>{{'fecha' | translate}} {{'regreso' | translate}} {{'nomina' | translate}}</label>\n                    </span>\n                </div>\n                <!-- ENTIDAD -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaEntidad\" [(ngModel)]=\"novedad.entidad\"\n                            [disabled]=\"encuesta || procesoAutorizacion || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"\n                            optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                        </p-dropdown>\n                        <label>{{'entidad' | translate}}</label>\n                    </span>\n                </div>\n                <!-- ACCION REINICIO -->\n                <div class=\"field col-12 md:col-6 lg:col-6\"\n                    *ngIf=\"novedad.interrupcion == 'S' || novedad.interrupcion == 'X'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaAccionReinicio\" [(ngModel)]=\"novedad.interrupcion\"\n                            [disabled]=\"encuesta || procesoAutorizacion || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"\n                            optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                        </p-dropdown>\n                        <label>{{'accionreinicio' | translate}}</label>\n                    </span>\n                </div>\n                <!-- FECHA SALIDA REINICIO -->\n                <div class=\"field col-12 md:col-6 lg:col-6\"\n                    *ngIf=\"novedad.interrupcion == 'S' || novedad.interrupcion == 'X'\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"novedad.reinicio\" dateFormat=\"dd/mm/yy\"\n                            [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedad.salida) && clickGuardar\"\n                            [showIcon]=\"true\"\n                            [disabled]=\"encuesta || procesoAutorizacion || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"></p-calendar>\n                        <label>{{'fechasalida' | translate}}*</label>\n                    </span>\n                </div>\n               \n            </div>\n            <!-- FORMULARIO DINAMICO SEGUN LA INFORMACION ADICIONAL ASOCIADA EN EL AUSENTISMO -->\n            <formulario-dinamico #formulario [editable]=\"formularioEditable\" [campos]=\"campos\" [objeto]=\"novedad\"\n                *ngIf=\"campos.length > 0\"></formulario-dinamico>\n\n            <div class=\"p-fluid p-formgrid grid mt-3\">\n                 <!-- OBSERVACION -->\n                 <div class=\"field col-12 md:col-6 lg:col-12\">\n                    <span class=\"p-float-label\">\n                        <textarea pInputTextarea [(ngModel)]=\"novedad.observacion\"\n                            [disabled]=\"encuesta || procesoAutorizacion || !(controles.get('guardar') || controles.get('guardarLegalizar'))\"\n                            class=\"w-full min-h-100 max-h-250\">\n                    </textarea>\n                        <label>{{'observacion' | translate}}</label>\n                    </span>\n                </div>\n                <!-- CEDULA AUTORIZADOR BPM -->\n                <div class=\"field col-12 md:col-3 lg:col-6\" *ngIf=\"novedad.autorizadorBPM != null\">\n                    <span class=\"p-float-label\">\n                        <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\"\n                            [(ngModel)]=\"novedad.autorizadorBPM\" autocomplete=\"off\" />\n                        <label>{{'autorizadorbpm' | translate}}</label>\n                    </span>\n                </div>\n                <!-- NOMBRE AUTORIZADOR BPM -->\n                <div class=\"field col-12 md:col-3 lg:col-6\" *ngIf=\"novedad.autorizadorBPM != null\">\n                    <span class=\"p-float-label\">\n                        <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\"\n                            [(ngModel)]=\"novedad.nombreAutorizadorBPM\" autocomplete=\"off\" />\n                        <label>{{'nombre' | translate}} {{'autorizadorbpm' | translate}}</label>\n                    </span>\n                </div>\n                <!-- MENSAJE NOVEDAD -->\n                <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"novedad.mensaje != null\">\n                    <span class=\"p-float-label\">\n                        <textarea pInputTextarea [(ngModel)]=\"novedad.mensaje\" [disabled]=\"true\"\n                            class=\"w-full min-h-100 max-h-250 border-2 border-color-500\">>\n                    </textarea>\n                        <label class=\"color-500\">{{'mensaje' | translate}}</label>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <!-- TABLA DOCUMENTOS ANEXO -->\n    <div class=\"card p-4\" *ngIf=\"listaDocumentoTipoAusencia?.length > 0\">\n        <h5 class=\"mt-0\"><i class='glyphicons glyphicons-file'></i>\n            <span>{{'anexos' | translate}}</span>\n        </h5>\n        <p-table [value]=\"listaDocumentoTipoAusencia\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n            styleClass=\"p-datatable-striped\"\n            [selectionMode]=\"(controles.get('guardar') || controles.get('guardarLegalizar')) ? 'single' : null\"\n            (onRowSelect)=\"verDocumento($event)\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 15%;\">{{'tipodocumento' | translate}}</th>\n                    <th style=\"width: 30%;\">{{'requisito' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'estado' | translate}}</th>\n                    <th style=\"width: 10%;\">{{'cumplido' | translate}}</th>\n                    <th style=\"width: 10%;\">{{'vigencia' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'observacion' | translate}}</th>\n                    <th style=\"width: 5%;\"></th>\n                </tr>\n                <th>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                <tr [pSelectableRow]=\"data\">\n                    <td style=\"width: 15%;\">{{data.nombreTipoDocumento}}</td>\n                    <td style=\"width: 30%;\">\n                        <ng-container *ngIf=\"data.requisitoHojaDTO?.archivo\">\n                            {{data.requisitoHojaDTO.archivo}}\n                        </ng-container>\n                        <ng-container *ngIf=\"data.requisitoHojaDTO?.nombreFormato\">\n                            {{data.requisitoHojaDTO.archivo}}\n                        </ng-container>\n                        <ng-container *ngIf=\"!data.requisitoHojaDTO?.archivo && !data.requisitoHojaDTO?.nombreFormato\">\n                        </ng-container>\n                    </td>\n                    <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.estado |listaConstantesPipe:'listaCumplidoReq'}}\n                    </td>\n                    <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.cumplido | date: 'dd/MM/yyyy'}}</td>\n                    <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.vigencia | date: 'dd/MM/yyyy'}}</td>\n                    <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.observacion }}</td>\n                    <td style=\"width: 5%;\">\n                        <ng-container *ngIf=\"data.ruta != null\">\n                            <button pButton pRipple class=\"m-2 p-button p-button-secondary p-button-rounded\"\n                                icon=\"glyphicons glyphicons-paperclip\" (click)=\"descargarAnexo(data.requisitoHojaDTO)\"\n                                type=\"file\" [loading]=\"isLoading\"></button>\n                        </ng-container>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n    <!-- MENSAJE SEGUN TIPO AUSENCIA -->\n    <div class=\"cardInstrucciones mt-2\" *ngIf=\"mostrarMensaje\">\n        <div class=\"flex align-center\">\n            <div class=\"icono\">\n                <i class=\"pi pi-bell text-xs\"></i>\n            </div>\n            <div>\n                <label>{{this.tipoAusenciaDTO.mensaje}}</label>\n            </div>\n        </div>\n    </div>\n    <!-- BOTONES -->\n    <div class=\"flex justify-content-end\" *ngIf=\"!encuesta && !procesoAutorizacion\">\n        <!-- SEGUIMIENTO -->\n        <div class=\"flex align-items-center gap-1 mr-3\"\n            *ngIf=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento')\">\n            <p-checkbox class=\"ml-1 mr-2\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n            <label>{{'seguimiento' | translate}}</label>\n        </div>\n        <!--CRUD BOTONES-->\n        <div class=\"splitbuttonOscuro\">\n            <p-splitButton label=\"Acciones solicitud\" icon=\"glyphicons glyphicons-list\"\n                [model]=\"itemsBotonAcciones\"></p-splitButton>\n        </div>\n    </div>\n    <app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\"\n        (regresar)=\"regresarPopupSeguimiento()\"></app-popup-seguimiento>\n    <div *ngIf=\"verPopupMomentoDocumento\">\n        <app-popup-momento-documento [llaveTipoDocumento]=\"momentoDocumentoDTO.tipoDocumento\" [unionDTO]=\"novedad\"\n            [nuevo]=\"nuevoDocumento\" [momentoDocumento]=\"momentoDocumentoDTO\" [mostrarPopup]=\"true\"\n            (regresar)=\"regresaPopupRequisitoContratacion()\"></app-popup-momento-documento>\n    </div>\n</div>\n}\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"regresarAction()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarAction()\"></app-ejecucion-encuesta>","import { UnionModel } from 'general-library-union'\n\nexport class SeguridadSocialModel extends UnionModel{\n\n    \n\tplantilla: String;\n    anno: number;\n    mes: number;\n    fechaAplicacion: Date;\n    origen: String;\n    empresa: number;\n    usuario: String; \n    tipoPeriodo: number;\n    contrato: number;\n    cedula: number;\n    fechaRetiro: Date;\n    fechaCorte: Date;\n    sucursal: number;\n    entidad: String;\n    numero: String;\n    seleccion: String;\n    llaveEPS: String;\n    seguimiento: String;\n    contratoSeguimiento: number;\n    filtro: String;\n    fechaIngreso: Date;\n    tipoLicencia: String;\n    nombreSucursal: String;\n    estado: String;\n    tipoReporte: String;\n    fechaInicial: Date;\n    fechaFinal: Date;\n    fechaComodin: Date;\n    aliasRol: String;\n    fechaCambio:Date\n    descSucursal:String;\n    \n    \n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { AusentismoPipe } from '../../../../../../shared/pipes/ausentismo.pipe';\nimport { ListaConstantesPipe } from '../../../../../../shared/pipes/listaConstantes.pipe';\nimport { ParametrosPipe } from '../../../../../../shared/pipes/parametros.pipe';\nimport { PopupsDinamicosPipe } from '../../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { CargarArchivosService } from '../../../../../../shared/servicios/cargar-archivos.service';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, StorageService, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { AusenciaModel } from '../../../../models/AusenciaModel';\nimport { EmpleadoModel } from '../../../../models/EmpleadoModel';\nimport { TipoAusenciaModel } from '../../../../models/TipoAusenciaModel';\nimport { TipoNovedadPipe } from '../../../../pipes/tipoNovedad.pipe';\nimport { AusentismoService } from '../../../../services/ausentismo.service';\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\n\nimport { MomentoDocumentoModel } from '../../../../../talento/models/MomentoDocumentoModel';\nimport { RequisitoHojaModel } from '../../../../../talento/models/RequisitoHojaModel';\nimport { EncriptadoBasicoService } from '../../../../../../shared/servicios/encriptado-basico.service';\nimport { CodigoBaseTiempoModel } from '../../../../../controltiempos/models/CodigoBaseTiempoModel';\nimport { ParametrosCompensacion } from '../../../../../../shared/pipes/parametrosCompensacion.pipe';\nimport { HttpEventType } from '@angular/common/http';\nimport { ArchivoModel } from '../../../../../hojavida/models/ArchivoModel';\nimport { HojaVidaService } from '../../../../../hojavida/services/hojavida.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { IncapacidadRecuperaModel } from '../../../../models/IncapacidadRecuperaModel';\nimport { SeguridadSocialModel } from '../../../../models/SeguridadSocialModel';\nimport { InputHelperIncapacidadRecuperaComponent } from '../../../../../../shared/componentes/input-helper-incapacidad-recupera/input-helper-incapacidad-recupera.component';\nimport { PopupMomentoDocumentoComponent } from '../popup-momento-documento/popup-momento-documento.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { PopupAdjuntoRespuestaAusenciaComponent } from '../popup-adjunto-respuesta-ausencia/popup-adjunto-respuesta-ausencia.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { AccordionModule } from 'primeng/accordion';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { EmpleadoService } from '../../../../../../modules/compensacion/services/empleado.service';\n@Component({\n  selector: 'app-editar-historico-incapacidades',\n  templateUrl: './editar-historico-incapacidades.component.html',\n  styleUrls: ['./editar-historico-incapacidades.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, AccordionModule, PrimeTemplate, FormsModule, InputTextModule, DropdownModule, CalendarModule, NgIf, PopupAdjuntoRespuestaAusenciaComponent, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PopupMomentoDocumentoComponent, InputHelperIncapacidadRecuperaComponent, DatePipe, TranslateModule, ListaConstantesPipe, FormulariodinamicoComponent]\n})\nexport class EditarHistoricoIncapacidadesComponent implements OnInit {\n\n  @Input() ausentismoDTO: AusenciaModel;\n  @Input() isNew: boolean;\n  @Input() empleadoDTO: EmpleadoModel;\n  @Input() listaTipoLicenciaAusencia = [];\n  @Input() unicoRegistro: boolean = false;\n  @Output() regresar = new EventEmitter();\n\n  public datoTipoAusencia: TipoAusenciaModel = new TipoAusenciaModel();\n  public mostrarEditar: boolean = false;\n  public activeState: boolean[] = [true, false, false];\n  public listaRequisitoHoja: RequisitoHojaModel[];\n  public listaDocumentoTipoAusencia: MomentoDocumentoModel[];\n  public isLoading: boolean = false;\n  public momentoDocumento: MomentoDocumentoModel;\n  public verPopupMomentoDocumento: boolean = false;\n  public verPopupRecuperaIncapacidad: boolean = false;\n  public nuevoDocumento: boolean;\n  public listaButtom: any[] = [{ name: 'Si', key: 'S' }, { name: 'No', key: 'N' }];\n  public listaProrroga;\n  public listaEntidad = [];\n  public mapaEstadoDoc = [];\n  public listaRequisitoHojaBorrar: RequisitoHojaModel[] = [];\n  public listaEtapaRecuperacion = [];\n  public listaRecuperacion: IncapacidadRecuperaModel[] = [];\n  public recuperaIncSelect: IncapacidadRecuperaModel;\n  public isNewIncapacidad: boolean;\n  public seguridadSeleccionad = new SeguridadSocialModel();\n  public clickGuardar: boolean = false;\n\n  public campos: CampoFormularioModel[] = [];\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n\n  public archivoSeleccionado: File;\n  public nombreArchivo: string;\n  public unicoArchivo: ArchivoModel;\n\n\n  constructor(\n    public utilsService: UtilsService,\n    private generalService: GeneralService,\n    private ausentismoPipe: AusentismoPipe,\n    private ausentismoService: AusentismoService,\n    private cargarMapas: cargarmapasGlobal,\n    private listaConstantesPipe: ListaConstantesPipe,\n    private popupsDinamicosPipe: PopupsDinamicosPipe,\n    private notificacionesBusService: ToastService,\n    private confirmationService: ConfirmationService,\n    private parametrosPipe: ParametrosPipe,\n    private tipoNovedadPipe: TipoNovedadPipe,\n    private cargarArchivo: CargarArchivosService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private parametrosCompensacionPipe: ParametrosCompensacion,\n    private hojaVidaService: HojaVidaService,\n    public translateService: TranslateService,\n    private storageSevice: StorageService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private authService: AuthService,\n    private empleadoService: EmpleadoService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.listaProrroga = this.ausentismoPipe.PRORROGA;\n    this.listaEntidad = [];\n    this.listaEtapaRecuperacion = [];\n    this.momentoDocumento = new MomentoDocumentoModel();\n    this.unicoArchivo = new ArchivoModel();\n    this.recuperaIncSelect = new IncapacidadRecuperaModel();\n    if (this.isNew) {\n      this.mostrarEditar = false;\n      this.ausentismoDTO.salida = null;\n      this.ausentismoDTO.termina = null;\n      this.ausentismoDTO.regreso = null;\n      this.ausentismoDTO.salidaNomina = null;\n      this.ausentismoDTO.regresoNomina = null;\n      this.ausentismoDTO.salidaPrincipal = null;\n      this.ausentismoDTO.hora1 = null;\n      this.ausentismoDTO.hora2 = null;\n      this.ausentismoDTO.fechaAdicionado = new Date();\n    } else {\n      this.consultarRegistro();\n    }\n    this.cargarListaDocumento();\n    this.cargarCampos();\n    this.cargarListaDocumentoTipoNovedad();\n    this.llenarItemMap();\n    this.traerUnicoAdjunto();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async consultarRegistro() {\n    this.ausentismoDTO = await this.generalService.queryForObject(new GeneralModel('AusenciaDTO', null, false, {\n      llaveTabla: this.ausentismoDTO.llaveTabla\n    })).toPromise();\n    if (this.ausentismoDTO) {\n      this.mostrarEditar = true;\n      this.ausentismoDTO.salida = new Date(this.ausentismoDTO.salida);\n      this.ausentismoDTO.termina = this.ausentismoDTO.termina ? new Date(this.ausentismoDTO.termina) : null;\n      this.ausentismoDTO.regreso = this.ausentismoDTO.regreso ? new Date(this.ausentismoDTO.regreso) : null;\n      this.ausentismoDTO.salidaNomina = this.ausentismoDTO.salidaNomina ? new Date(this.ausentismoDTO.salidaNomina) : null;\n      this.ausentismoDTO.regresoNomina = this.ausentismoDTO.regresoNomina ? new Date(this.ausentismoDTO.regresoNomina) : null;\n      this.ausentismoDTO.aplicacion = this.ausentismoDTO.aplicacion ? new Date(this.ausentismoDTO.aplicacion) : null;\n      this.ausentismoDTO.origen = this.ausentismoDTO.origen ? new Date(this.ausentismoDTO.origen) : null;\n      this.ausentismoDTO.salidaPrincipal = this.ausentismoDTO.salidaPrincipal ? new Date(this.ausentismoDTO.salidaPrincipal) : null;\n      this.ausentismoDTO.hora1 = this.ausentismoDTO.hora1 ? new Date(this.ausentismoDTO.hora1) : null;\n      this.ausentismoDTO.hora2 = this.ausentismoDTO.hora2 ? new Date(this.ausentismoDTO.hora2) : null;\n      this.ausentismoDTO.fechaAdicionado = this.ausentismoDTO.fechaAdicionado ? new Date(this.ausentismoDTO.fechaAdicionado) : new Date();\n      this.ausentismoDTO.entidad = this.ausentismoDTO.entidad.padEnd(10,' ');\n    }\n    this.cargarListaRecupera();\n    this.cargarTipoAusencia();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarTipoAusencia() {\n    let tipoAusenciaDTO = new TipoAusenciaModel();\n    tipoAusenciaDTO.llaveTabla = this.ausentismoDTO.tipoAusencia;\n    this.datoTipoAusencia = await this.generalService.queryForObject(new GeneralModel('TipoAusenciaDTO', null, false, tipoAusenciaDTO)).toPromise();\n  }\n\n  async llenarItemMap() {\n    // Carga lista entidades\n    this.listaEntidad = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('EntidadDTO', 'Entidad.listaEntidadesIncapacidad', false, {}));\n\n    //Carga Lista Etapa Recuperacion    \n    let etapaRecupera = new CodigoBaseTiempoModel();\n    etapaRecupera.tipo = this.parametrosCompensacionPipe.INCAPACIDADRECUPERA;\n    etapaRecupera.estado = this.parametrosCompensacionPipe.VIGENTE;\n    this.listaEtapaRecuperacion = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, etapaRecupera));\n  }\n\n  cargarListaDocumento() {\n    this.mapaEstadoDoc = this.listaConstantesPipe.CUMPLIDO_REQ;\n    this.listaRequisitoHojaBorrar = [];\n  }\n\n  cargarCampos() {\n    this.ausentismoService.cargarCamposIncapacidadHistorico({ llaveBase: this.ausentismoDTO.tipoAusencia, ausencia: this.ausentismoDTO }).subscribe(data => {\n      this.campos = data.listaCampos;\n      this.setValorCampos();\n    })\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  setValorCampos() {\n    this.campos.forEach(element => {\n      if (typeof element.valor === 'string') {\n        element.valor = element.valor.trim()\n      }\n      if (element.tipo === 'F') {\n        element.valor = new Date(element.valor)\n      } else if (element.tipo === 'H') {\n        if (element.valor) {\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';')\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 })\n          })\n          element.valor = listaValortemp\n        }\n      } else if (element.tipo === 'P') {\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n          if (element.popup == pop.id) {\n            element.popupComponent = pop.popup;\n            element['cargarValorPopup'] = (event) => { element.valor = event };\n            element.propiedadesPopupComponent = {\n              readonly: element.editable == 'L',\n              showDialog: false,\n              label: element.valor,\n              onChange: (event) => element.cargarValorPopup(event)\n            }\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup)\n          }\n        });\n      }\n    });\n    this.formulario?.ngAfterViewInit();\n  }\n\n  async cargarListaDocumentoTipoNovedad() {\n    this.listaRequisitoHoja = [];\n    this.listaDocumentoTipoAusencia = [];\n    if (this.ausentismoDTO.tipoAusencia == null) {\n      return;\n    }\n\n    var requisitoHojaDTO: RequisitoHojaModel = new RequisitoHojaModel();\n    requisitoHojaDTO.actoAdministrativo = this.ausentismoDTO.llaveTabla;\n\n    var momentoDocumento: MomentoDocumentoModel = new MomentoDocumentoModel();\n    momentoDocumento.momento = this.ausentismoDTO.tipoAusencia;\n    momentoDocumento.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n\n    this.listaDocumentoTipoAusencia = await this.generalService.queryForList(new GeneralModel('MomentoDocumentoDTO', 'MomentoDocumento.consultarMomentoDocumentoFiltro', false, momentoDocumento)).toPromise();\n    if (this.ausentismoDTO.llaveTabla == null) {\n      return;\n    }\n    let extensionArchivo = [];\n    let propiedad = 'ruta_anexosHojaVida'\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      // Se valida si el tipoDocumento ya tiene un archivo asociado\n      var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n      requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n      requisitoHojaFiltro.actoAdministrativo = this.ausentismoDTO.llaveTabla;\n      var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n      if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n        requisitoHojaFiltro = listadoRequisitoHoja[0];\n        documento.requisitoHojaDTO = requisitoHojaFiltro;\n        if (documento.tipo != null && documento.tipo == this.parametrosPipe.DOCUMENTO_ANEXO) {\n          extensionArchivo = requisitoHojaFiltro.archivo.split('.');\n          if (this.listaConstantesPipe.CUMPLIDO == requisitoHojaFiltro.estado) {\n            let rutaArchivo: string = propiedad + requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1];\n            documento.ruta = this.encriptadoBasico.encriptar(rutaArchivo);\n          }\n        }\n      }\n    })\n  }\n\n  async verDocumento(event) {\n    this.verPopupMomentoDocumento = true;\n    this.momentoDocumento = event.data;\n    if (this.momentoDocumento.requisitoHojaDTO) {\n      this.nuevoDocumento = false;\n    } else {\n      this.nuevoDocumento = true;\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async traerUnicoAdjunto() {\n    if (this.ausentismoDTO.llaveTabla != null) {\n      let filtroAdjunto = new ArchivoModel();\n      filtroAdjunto.llaveTablaArchivo = this.ausentismoDTO.llaveTabla;\n      filtroAdjunto.empresa = this.ausentismoDTO.empresa;\n      filtroAdjunto.contrato = this.ausentismoDTO.contrato;\n      filtroAdjunto.nombreTabla = 'AUSENCIA_AUS'      \n      this.unicoArchivo = await this.generalService.queryForObject(new GeneralModel('ArchivoDTO', null, false, filtroAdjunto)).toPromise();\n      if (this.unicoArchivo == null) {\n        this.unicoArchivo = new ArchivoModel();\n        return;\n      }\n      if (this.unicoArchivo.archivoorigen == null) {\n        return;\n      }\n    }\n  }\n\n  descargarAnexo(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    let extensionArchivo = documento.archivo.split('.');\n    this.isLoading = true;\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llave + Constantes.PUNTO + extensionArchivo[extensionArchivo.length - 1]), propiedad, aplicacion).subscribe({\n      next: (data) => {\n        this.isLoading = false;\n        const a = document.createElement('a')\n        const objectUrl = URL.createObjectURL(data)\n        a.href = objectUrl\n        a.download = documento.archivo;\n        a.click();\n        URL.revokeObjectURL(objectUrl);\n      },\n      error: (err) => {\n        this.isLoading = false;\n        this.notificacionesBusService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema.')\n      }\n    })\n  }\n\n  validarCampos(campo: any) {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(campo);\n    return validador;\n  }\n\n  public validarAnexoObligatorio(): boolean {\n    let validador: boolean = true;\n    this.listaDocumentoTipoAusencia.forEach(async documento => {\n      if (documento.opcional == Constantes.CONSTANTE_NO) {\n        if (!documento.requisitoHojaDTO) {\n          this.notificacionesBusService.showWarning('Debe incluir el anexo: ' + documento.nombreTipoDocumento);\n          validador = false;\n          return;\n        }\n      }\n    })\n    return validador;\n  }\n\n  actualizarRegistro() {\n    if (!this.validarAnexoObligatorio()) {\n      return null;\n    }\n    if (!this.validarCampos(this.ausentismoDTO.salida) || !this.validarCampos(this.ausentismoDTO.dias)) {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    this.ausentismoDTO.fechaModificado = new Date();\n    this.generalService.update(new GeneralModel('AusenciaDTO', null, false, this.ausentismoDTO)).subscribe((data) => {\n      if (data == 1) {\n        this.notificacionesBusService.showSuccess('Se actualizó el registro exitosamente');\n        this.consultarRegistro();\n        if (this.archivoSeleccionado) {\n          this.subirAnexo()\n        }\n      } else {\n        this.notificacionesBusService.showError('Error en el método de actualizar recurso');\n      };\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  crearRegistro() {\n    if (!this.validarCampos(this.ausentismoDTO.salida) || !this.validarCampos(this.ausentismoDTO.dias)) {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return null;\n    }\n    this.ausentismoDTO.fechaModificado = new Date();\n    this.ausentismoDTO.empresa = this.empleadoDTO.empresa;\n    this.ausentismoDTO.contrato = this.empleadoDTO.contrato;\n    this.ausentismoDTO.origenAusencia = this.ausentismoPipe.INCAPACIDAD;\n    this.ausentismoDTO.tipo = this.ausentismoPipe.AUSENTISMO;\n    this.ausentismoDTO.llaveTabla = this.utilsService.generarLlave();\n    this.generalService.crearRegistro(new GeneralModel('AusenciaDTO', null, false, this.ausentismoDTO)).subscribe({\n      next: (data) => {\n        if (data != null) {\n          this.notificacionesBusService.showSuccess('Se creó el registro exitosamente');\n          this.consultarRegistro();\n        } else {\n          this.notificacionesBusService.showError('Error en el método de agregar recurso');\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesBusService.showError('Error al ingresar en el servicio');\n      },\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n        this.eliminarAdjunto();\n        this.eliminarDocumento();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarRegistro() {\n    this.ausentismoDTO.fechaModificado = new Date();\n    this.ausentismoDTO.fechaAdicionado = new Date();\n    let objetoElimina: GeneralModel = new GeneralModel('AusenciaDTO', null, false, this.ausentismoDTO);\n    let result: number;\n    this.generalService.delete(objetoElimina).subscribe({\n      next: (data) => {\n        result = data;\n        if (result == 1) {\n          this.notificacionesBusService.showSuccess('Se eliminó el registro exitosamente');\n          this.regresarPrincipal();\n        } else {\n          this.notificacionesBusService.showError('Error en el método de eliminar recurso');\n        }\n      },\n      error: (err) => {\n        this.notificacionesBusService.showError('No es posible eliminar el registro, verifique que el registro no esta asociado en otros procesos');\n      },\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  returnArchivo(valor) {\n    this.archivoSeleccionado = valor;\n    if (valor) {\n      this.nombreArchivo = valor.name;\n    }\n  }\n\n  returnAdjunto(valor) {\n    this.unicoArchivo = valor;\n  }\n\n  async subirAnexo() {\n    let propiedad = 'ruta_anexosHojaVida'\n    let rutaCarpeta = this.crearEstructuraAnexo('ausencia_aus')\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n    let llaveNuevoReg: string = '';\n    if (this.unicoArchivo.llaveTabla != null) {\n      this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(this.unicoArchivo.carpeta + this.unicoArchivo.llaveTabla + '.pdf'), propiedad, codigoAplicacion).subscribe(blob => { });\n      llaveNuevoReg = this.unicoArchivo.llaveTabla\n    } else {\n      llaveNuevoReg = this.utilsService.generarLlave();\n    }\n    let fileExtension: string = this.archivoSeleccionado.name.split('?')[0].split('.').pop();\n    this.archivoSeleccionado = new File([this.archivoSeleccionado], llaveNuevoReg + '.' + fileExtension);\n    await this.cargarArchivo.cargarArchivo(this.archivoSeleccionado, rutaCarpeta, propiedad, codigoAplicacion).subscribe({\n      next: async (event) => {\n        if (event.type === HttpEventType.Response) {\n          let response: any = event.body;\n          this.unicoArchivo.archivoorigen = this.nombreArchivo;\n          this.unicoArchivo.llaveTemporal = llaveNuevoReg;\n          this.unicoArchivo.descripcion = this.ausentismoDTO.descripcionTipoAusencia + '-' + this.ausentismoDTO.salida;\n          this.unicoArchivo.contrato = this.ausentismoDTO.contrato;\n          this.unicoArchivo.empresa = this.ausentismoDTO.empresa;\n          await this.hojaVidaService.insertAdjuntoTabla({ archivo: this.unicoArchivo, tabla: 'AUSENCIA_AUS', llaveBase: this.ausentismoDTO.llaveTabla }).subscribe({\n            next: async (data) => {\n              if (data != null) {\n                this.traerUnicoAdjunto();\n              } else {\n                this.notificacionesBusService.showError('Error en el método de agregar anexo');\n              }\n            },\n            error: (err) => {\n              var data = JSON.stringify('error' + err.error.mensajeEtiqueta);\n            },\n          });\n        }\n      },\n      error: (err) => {\n        console.log('Ingreso error' + JSON.stringify(err));\n        var data = JSON.stringify('Error' + HttpEventType.Response);\n      },\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  eliminarAdjunto() {\n    if (this.unicoArchivo.llaveTabla != null) {\n      let documento = this.unicoArchivo\n      documento.fechaAdicionado = new Date();\n      documento.fechaModificado = new Date();\n      let propiedad = 'ruta_anexosHojaVida'\n      let aplicacion = this.authService.getTokenKey('aplicacion');\n      this.hojaVidaService.eliminarAnexo(documento).subscribe({\n        next: (data) => {\n          if (data == 1) {\n            let extensionArchivo: string = documento.archivoorigen.split('?')[0].split(Constantes.PUNTO).pop();\n            this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(documento.carpeta + documento.llaveTabla + Constantes.PUNTO + extensionArchivo), propiedad, aplicacion).subscribe(blob => { });\n          }\n        },\n        error: (err) => {\n          var data = JSON.stringify(err.error.mensajeEtiqueta);\n        },\n      });\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  eliminarDocumento() {\n    if (this.listaDocumentoTipoAusencia.length > 0) {\n      this.listaDocumentoTipoAusencia.forEach(async documento => {\n        var requisitoHojaFiltro: RequisitoHojaModel = new RequisitoHojaModel();\n        requisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n        requisitoHojaFiltro.actoAdministrativo = this.ausentismoDTO.llaveTabla;\n        var listadoRequisitoHoja: RequisitoHojaModel[] = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n        if (listadoRequisitoHoja != null && listadoRequisitoHoja.length > 0) {\n          requisitoHojaFiltro = listadoRequisitoHoja[0];\n          documento.requisitoHojaDTO = requisitoHojaFiltro;\n          await this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n          let extensionArchivo: string = requisitoHojaFiltro.archivo.split('?')[0].split(Constantes.PUNTO).pop();\n          let propiedad = 'ruta_anexosHojaVida'\n          let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n          this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(requisitoHojaFiltro.llave + Constantes.PUNTO + extensionArchivo), propiedad, codigoAplicacion).subscribe(blob => { });\n        }\n      })\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  crearEstructuraAnexo(tabla: string): string {\n    const fecha = new Date();\n    let anio = fecha.getFullYear();\n    let mes = fecha.getMonth() + 1;\n    let ruta = \"\";\n    ruta = '/' + tabla + '/' + anio + '/' + mes + '/';\n    return ruta;\n  }\n\n\n  actualizarDatoAdicional() {\n    if (this.formulario) {\n      var validarFormulario: boolean = this.formulario.validar();\n      if (!validarFormulario) {\n        this.notificacionesBusService.showError('Faltan campos obligatorios');\n        return null;\n      }\n      this.ausentismoDTO = this.formulario.getObjecto();\n      this.ausentismoDTO.fechaModificado = new Date();\n      this.generalService.update(new GeneralModel('AusenciaDTO', null, false, this.ausentismoDTO)).subscribe((data) => {\n        if (data == 1) {\n          this.notificacionesBusService.showSuccess('Se actualizó el registro exitosamente');\n          this.consultarRegistro();\n        } else {\n          this.notificacionesBusService.showError('Error en el método de actualizar recurso');\n        };\n      });\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarListaRecupera() {\n    this.listaRecuperacion = [];\n    this.isLoading = true;\n    let filtro = new IncapacidadRecuperaModel();\n    filtro.empresa = this.storageSevice.getDecodedJWT().numeroEmpresa;\n    filtro.ausencia = this.ausentismoDTO.llaveTabla;\n    this.listaRecuperacion = await this.generalService.queryForList(new GeneralModel('IncapacidadRecuperaDTO', null, false, filtro)).toPromise();\n    if (this.listaRecuperacion) {\n      this.isLoading = false\n    }\n  }\n\n  verRecuperaInc(event) {\n    this.verPopupRecuperaIncapacidad = true;\n    this.recuperaIncSelect = event.data;\n    this.isNewIncapacidad = false;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  nuevoRegistro() {\n    this.verPopupRecuperaIncapacidad = true;\n    this.recuperaIncSelect = new IncapacidadRecuperaModel();\n    this.isNewIncapacidad = true;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  regresaPopup() {\n    this.verPopupMomentoDocumento = false;\n    this.verPopupRecuperaIncapacidad = false;\n    this.recuperaIncSelect = new IncapacidadRecuperaModel();\n    this.cargarListaDocumentoTipoNovedad();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  regresaPopupAccion() {\n    this.verPopupRecuperaIncapacidad = false;\n    this.recuperaIncSelect = new IncapacidadRecuperaModel();\n    this.cargarListaRecupera();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  regresarPrincipal() {\n    this.regresar.emit('historico');\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  onAbrirTab(e) {\n    if (e.index == 0) {\n      this.activeState = [false, false, false];\n    }\n    if (e.index == 1) {\n      this.activeState = [false, true, false];\n    }\n    if (e.index == 2) {\n      this.activeState = [false, false, true];\n    }\n  }\n\n  onCerrarTab(e) {\n    if (e.index == 0) {\n      this.activeState = [true, false, false];\n    }\n    if (e.index == 1) {\n      this.activeState = [false, false, false];\n    }\n    if (e.index == 2) {\n      this.activeState = [false, false, false];\n    }\n  }\n\n  public empleadoActivo(): boolean {\n    return this.empleadoService.empleadoActivo(this.empleadoDTO);\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mb-1\">\n    <h4>{{'historico' | translate}} {{'incapacidad' | translate}}</h4>\n    <button pButton pRipple *ngIf=\"!unicoRegistro\" (click)=\"regresarPrincipal()\" label=\"{{'listadohistorico' | translate}}\"\n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 mb-3\"></button>\n</div>\n<p-accordion (onOpen)=\"onAbrirTab($event)\" [multiple]=\"true\" (onClose)=\"onCerrarTab($event)\">\n    <p-accordionTab [(selected)]=\"activeState[0]\">\n        <ng-template pTemplate=\"header\">\n            <i class=\"glyphicons glyphicons-comments\"></i>{{'ausentismo' | translate}}\n        </ng-template>\n        <div class=\"contenedor\">\n            <div class=\"Inputgroup mb-5\">\n                <div class=\"p-fluid p-formgrid grid mt-3\">\n                    <!-- CODIGO TIPO AUSENCIA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_codigoTipoausencia\" type=\"text\"\n                                [(ngModel)]=\"ausentismoDTO.codigoAusencia\" [disabled]=\"true\">\n                            <label htmlFor=\"codigoTipoausencia\">{{'codigo' | translate}} {{'tipoausencia' | translate}}\n                                * </label>\n                        </span>\n                    </div>\n                    <!-- NOMBRE  TIPO AUSENCIA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_tipoausencia\" type=\"text\"\n                                [(ngModel)]=\"ausentismoDTO.descripcionTipoAusencia\" [disabled]=\"true\">\n                            <label htmlFor=\"tipoausencia\">{{'nombre' | translate}} {{'tipoausencia' | translate}} *\n                            </label>\n                        </span>\n                    </div>\n                    <!-- PRORROGA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_prorroga\" [options]=\"listaButtom\" optionLabel=\"name\"\n                                optionValue=\"key\" [(ngModel)]=\"ausentismoDTO.prorroga\" [autoDisplayFirst]=\"false\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.prorroga) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.prorroga) && clickGuardar\">\n                            </p-dropdown>\n                            <label htmlFor=\"prorroga\">{{'prorroga' | translate}} *</label>\n                        </span>\n                    </div>\n                    <!-- FECHA SALIDA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_salida\" [(ngModel)]=\"ausentismoDTO.salida\"\n                                dateFormat=\"dd/mm/yy\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.salida) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.salida) && clickGuardar\"></p-calendar>\n                            <label htmlFor=\"salida\">{{'salida' | translate}} *</label>\n                        </span>\n                    </div>\n                    <!-- FECHA TERMINA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_termina\" [(ngModel)]=\"ausentismoDTO.termina\"\n                                dateFormat=\"dd/mm/yy\"></p-calendar>\n                            <label htmlFor=\"termina\">{{'termina' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA REGRESO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_regreso\" [(ngModel)]=\"ausentismoDTO.regreso\"\n                                dateFormat=\"dd/mm/yy\"></p-calendar>\n                            <label htmlFor=\"regreso\">{{'regreso' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA SALIDA NOMINA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_salidaNominaHistorico\"\n                                [(ngModel)]=\"ausentismoDTO.salidaNomina\" dateFormat=\"dd/mm/yy\"></p-calendar>\n                            <label htmlFor=\"salidaNominaHistorico\">{{'salida' | translate}} {{'nomina' |\n                                translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA REGRESO NOMINA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_regresoNominaHistorico\"\n                                [(ngModel)]=\"ausentismoDTO.regresoNomina\" dateFormat=\"dd/mm/yy\"></p-calendar>\n                            <label htmlFor=\"regresoNominaHistorico\">{{'regreso' | translate}} {{'nomina' |\n                                translate}}</label>\n                        </span>\n                    </div>\n                    <!-- REALES -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_diasReales\" type=\"text\" [(ngModel)]=\"ausentismoDTO.dias\"\n                                maxlength=\"3\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 3);\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.dias) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.dias) && clickGuardar\">\n                            <label htmlFor=\"diasReales\">{{'reales' | translate}} *</label>\n                        </span>\n                    </div>\n                    <!-- HORAS ADICIONALES -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_horasAusenciaHistorico\" type=\"text\"\n                                [(ngModel)]=\"ausentismoDTO.horas\" maxlength=\"5\"\n                                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.horas) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(ausentismoDTO.horas) && clickGuardar\">\n                            <label htmlFor=\"horasAusenciaHistorico\">{{'horas' | translate}} {{'adicionales' |\n                                translate}} *</label>\n                        </span>\n                    </div>\n                    <!-- DIAS ACUMULADOS -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_diasAcomulados\" type=\"text\" [(ngModel)]=\"ausentismoDTO.diasAcumula\"\n                                maxlength=\"3\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 3);\">\n                            <label htmlFor=\"diasAcomulados\">{{'dias' | translate}} {{'acumulados' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA ANTECESOR -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_fechaAntecesor\" [(ngModel)]=\"ausentismoDTO.origen\"\n                                dateFormat=\"dd/mm/yy\"></p-calendar>\n                            <label htmlFor=\"fechaAntecesor\">{{'fecha' | translate}} {{'antecesor' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA INICIO-->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_fechaInicioIng\"\n                                [(ngModel)]=\"ausentismoDTO.salidaPrincipal\" dateFormat=\"dd/mm/yy\"></p-calendar>\n                            <label htmlFor=\"fechaInicioIng\">{{'inicio' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA APLICACION -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"id_fechaAplicacion\" [(ngModel)]=\"ausentismoDTO.aplicacion\"\n                                dateFormat=\"dd/mm/yy\"></p-calendar>\n                            <label htmlFor=\"fechaAplicacion\">{{'aplicacion' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- VALOR -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_BaseLiquidacion\" type=\"text\" [(ngModel)]=\"ausentismoDTO.valor\"\n                                maxlength=\"14\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 14);\">\n                            <label htmlFor=\"BaseLiquidacion\">{{'valor' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- BASE -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_base\" type=\"text\" [(ngModel)]=\"ausentismoDTO.valor2\" maxlength=\"14\"\n                                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 14);\">\n                            <label htmlFor=\"base\">{{'base' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- ETAPA RECUPERACION -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!isNew\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_etapa\" [options]=\"listaEtapaRecuperacion\" [autoDisplayFirst]=\"false\"\n                                optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"ausentismoDTO.etapa\"\n                                [disabled]=\"true\">\n                            </p-dropdown>\n                            <label htmlFor=\"etapa\">{{'etaparecuperacion' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- ENTIDAD -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_entidadHistorico\" [options]=\"listaEntidad\"\n                                [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                                [(ngModel)]=\"ausentismoDTO.entidad\" [showClear]=\"true\">\n                            </p-dropdown>\n                            <label htmlFor=\"entidadHistorico\">{{'entidad' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- ADJUNTO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\"\n                        *ngIf=\"mostrarEditar && datoTipoAusencia.adjuntar == 'U'\">\n                        <app-popup-adjunto-respuesta-ausencia\n                            [label]=\"unicoArchivo?.archivoorigen ? unicoArchivo?.archivoorigen :  ''\"\n                            [value]=\"unicoArchivo\" [ausencia]=\"ausentismoDTO\"\n                            [header]=\"this.translateService.instant('adjunto')\" (arhivo)=\"returnArchivo($event)\"\n                            (adjunto)=\"returnAdjunto($event)\"></app-popup-adjunto-respuesta-ausencia>\n                    </div>\n                    <!-- OBSERVACION -->\n                    <div class=\"field col-12 md:col-6 lg:col-12\">\n                        <span class=\"p-float-label\">\n                            <textarea pInputTextarea [(ngModel)]=\"ausentismoDTO.observacion\"\n                                class=\"w-full min-h-100 max-h-250\">\n                                    </textarea>\n                            <label>{{'observacion' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"mb-3\" *ngIf=\"listaDocumentoTipoAusencia.length > 0\">\n                <p-table [value]=\"listaDocumentoTipoAusencia\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                    styleClass=\"p-datatable-striped\" selectionMode=\"single\" (onRowSelect)=\"verDocumento($event)\">\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    <ng-template pTemplate=\"header\">\n                        <tr>\n                            <th style=\"width: 15%;\">{{'tipodocumento' | translate}}</th>\n                            <th style=\"width: 30%;\">{{'requisito' | translate}}</th>\n                            <th style=\"width: 15%;\">{{'estado' | translate}}</th>\n                            <th style=\"width: 10%;\">{{'cumplido' | translate}}</th>\n                            <th style=\"width: 10%;\">{{'vigencia' | translate}}</th>\n                            <th style=\"width: 15%;\">{{'observacion' | translate}}</th>\n                            <th style=\"width: 5%;\"></th>\n                        </tr>\n                        <th>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                        <tr [pSelectableRow]=\"data\">\n                            <td style=\"width: 15%;\">{{data.nombreTipoDocumento}}</td>\n                            <td style=\"width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.archivo\">\n                                {{data.requisitoHojaDTO.archivo}}</td>\n                            <td style=\"width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.nombreFormato\">\n                                {{data.requisitoHojaDTO.nombreFormato}}</td>\n                            <td style=\"width: 30%;\"\n                                *ngIf=\"!data.requisitoHojaDTO?.archivo && !data.requisitoHojaDTO?.nombreFormato\"></td>\n                            <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.estado |\n                                listaConstantesPipe:'listaCumplidoReq'}}</td>\n                            <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.cumplido | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"width: 10%;\">{{data.requisitoHojaDTO?.vigencia | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"width: 15%;\">{{data.requisitoHojaDTO?.observacion }}</td>\n                            <td *ngIf=\"data.ruta\" style=\"width: 5%;\">\n                                <button pButton pRipple class=\"m-2 p-button p-button-secondary p-button-rounded\"\n                                    icon=\"glyphicons glyphicons-paperclip\"\n                                    (click)=\"descargarAnexo(data.requisitoHojaDTO)\" type=\"file\"\n                                    [loading]=\"isLoading\"></button>\n                            </td>\n                            <td *ngIf=\"!data.ruta\" style=\"width: 5%;\"></td>\n                        </tr>\n                    </ng-template>\n                </p-table>\n            </div>\n            <div class=\"flex justify-content-end\">\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"mostrarEditar\"\n                    icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n                    (click)=\"actualizarRegistro()\">\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"mostrarEditar\"\n                    icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n                    (click)=\"showEliminarConfirmDialog()\">\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"!mostrarEditar\"\n                    icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n                    (click)=\"crearRegistro()\">\n                </button>\n            </div>\n        </div>\n    </p-accordionTab>\n    <p-accordionTab [(selected)]=\"activeState[1]\" *ngIf=\"mostrarEditar\">\n        <ng-template pTemplate=\"header\">\n            <i class=\"glyphicons glyphicons-plus-sign\"></i>{{'datosadicionales' | translate}}\n        </ng-template>\n        <div class=\"contenedor\">\n            <div class=\"Inputgroup mb-5\">\n                <div class=\"p-fluid p-formgrid grid mt-3\">\n                    <!-- NOMBRE  TIPO AUSENCIA -->\n                    <div class=\"field col-12 md:col-6 lg:col-12\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_horasAusenciaHistorico\" type=\"text\"\n                                [(ngModel)]=\"ausentismoDTO.descripcionTipoAusencia\" [disabled]=\"true\">\n                            <label htmlFor=\"tipoausencia\">{{'tipoausencia' | translate}} * </label>\n                        </span>\n                    </div>\n                    <!-- FORMULARIO DINAMICO SEGUN LA INFORMACION ADICIONAL ASOCIADA EN EL AUSENTISMO -->\n                    <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\" [objeto]=\"ausentismoDTO\"\n                        *ngIf=\"campos.length > 0\"></formulario-dinamico>\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n                label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarDatoAdicional()\">\n            </button>\n        </div>\n    </p-accordionTab>\n    <p-accordionTab [(selected)]=\"activeState[2]\" *ngIf=\"mostrarEditar\">\n        <ng-template pTemplate=\"header\">\n            <i class=\"glyphicons glyphicons-history\"></i>{{'recuperacion' | translate}}\n        </ng-template>\n        <div class=\"contenedor\">\n            <div class=\"Inputgroup mb-2\">\n                <div class=\"p-fluid p-formgrid grid mt-3\">\n                    <!-- NOMBRE  TIPO AUSENCIA -->\n                    <div class=\"field col-12 md:col-6 lg:col-12\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"id_horasAusenciaHistorico\" type=\"text\"\n                                [(ngModel)]=\"ausentismoDTO.descripcionTipoAusencia\" [disabled]=\"true\">\n                            <label htmlFor=\"tipoausencia\">{{'tipoausencia' | translate}} * </label>\n                        </span>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end lign-items-center mb-3\">\n            <!--boton nuevo-->\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoRegistro()\"\n                label=\"{{'nuevo' | translate}}\"\n                *ngIf=\"controlFuncionalidad.getControlFuncionalidad('recinc:mantenimiento') && (empleadoActivo() || controlFuncionalidad.getControlFuncionalidad('incsol:empRetirado') )\">\n            </button>\n        </div>\n        <p-table [value]=\"listaRecuperacion\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n            styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaRecuperacion.length\"\n            [paginator]=\"listaRecuperacion.length > 10\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoading\"\n            scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verRecuperaInc($event)\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 10%;\">{{'tipo' | translate}}</th>\n                    <th style=\"width: 30%;\">{{'entidad' | translate}} {{'externa' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'no' | translate}}. {{'autorizacion' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'valortotal' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'etapa' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'fechaproceso' | translate}}</th>\n                </tr>\n                <th>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                <tr [pSelectableRow]=\"data\">\n                    <td style=\"width: 10%;\">{{data.tipo}}</td>\n                    <td style=\"width: 30%;\">{{data.descripcionEntidad}}</td>\n                    <td style=\"width: 15%;\">{{data.autorizacion}}</td>\n                    <td style=\"width: 15%;\">{{data.valor}}</td>\n                    <td style=\"width: 15%;\">{{data.descripcionEtapa}}</td>\n                    <td style=\"width: 15%;\">{{data.fechaProceso | date: 'dd/MM/yyyy'}}</td>\n            </ng-template>\n        </p-table>\n    </p-accordionTab>\n</p-accordion>\n<div *ngIf=\"verPopupMomentoDocumento\">\n    <app-popup-momento-documento [llaveTipoDocumento]=\"momentoDocumento.tipoDocumento\" [unionDTO]=\"ausentismoDTO\"\n        [nuevo]=\"nuevoDocumento\" [momentoDocumento]=\"momentoDocumento\" [mostrarPopup]=\"true\"\n        (regresar)=\"regresaPopup()\"></app-popup-momento-documento>\n</div>\n<div *ngIf=\"verPopupRecuperaIncapacidad\">\n    <app-input-helper-incapacidad-recupera (regresar)=\"regresaPopup()\" (regresarAccion)=\"regresaPopupAccion()\"\n        [mostrar]=\"verPopupRecuperaIncapacidad\" [recuperacionSeleccionada]=\"recuperaIncSelect\"\n        [isNewIncapacidad]=\"isNewIncapacidad\" [llaveAusencia]=\"ausentismoDTO.llaveTabla\"\n        [seguridadSeleccionada]=\"seguridadSeleccionad\" [empleado]=\"empleadoDTO\"></app-input-helper-incapacidad-recupera>\n</div>","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { CargarControlFuncionalidadService, StorageService, ToastService, GeneralModel, AuthService, UtilsService } from 'general-library-union';\nimport { AusentismoService } from '../../../../../compensacion/services/ausentismo.service';\nimport { cargarmapasGlobal } from '../../../../../../shared/servicios/cargar-mapas.service';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { AusenciaModel } from '../../../../models/AusenciaModel';\nimport { AusenciaNovedadModel } from '../../../../models/AusenciaNovedadModel';\nimport { EmpleadoModel } from '../../../../models/EmpleadoModel';\nimport { AusentismoPipe } from '../../../../../../shared/pipes/ausentismo.pipe';\nimport { IncapacidadAusenciaProgramadasComponent } from '../../../../ausentismos/incapacidad-ausencia-programadas/incapacidad-ausencia-programadas.component';\nimport { PopupSeleccionAusentismoComponent } from '../../../../ausentismos/popups/popup-seleccion-ausentismo/popup-seleccion-ausentismo.component';\nimport { NovedadPipe } from '../../../../pipes/novedad.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EditarHistoricoIncapacidadesComponent } from '../editar-historico-incapacidades/editar-historico-incapacidades.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { TabViewModule } from 'primeng/tabview';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-lista-incapacidades',\n    templateUrl: './lista-incapacidades.component.html',\n    styleUrls: ['./lista-incapacidades.component.scss'],\n    standalone: true,\n    imports: [NgIf, TabViewModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, IncapacidadAusenciaProgramadasComponent, EditarHistoricoIncapacidadesComponent, PopupSeleccionAusentismoComponent, DatePipe, TranslateModule, NovedadPipe]\n})\nexport class ListaIncapacidadesComponent implements OnInit {\n\n  @ViewChild('seleccionAusentismo') seleccionAusentismo: PopupSeleccionAusentismoComponent;\n  @ViewChild('incapacidadAusencia') incapacidadAusencia: IncapacidadAusenciaProgramadasComponent;\n\n  @Input() public empleado: EmpleadoModel;\n\n  public listaProgramadas: AusenciaNovedadModel[] = [];\n  public listaPasivo: AusenciaNovedadModel[] = [];\n  public listaHistorico: AusenciaModel[] = [];\n  public isLoadingData: boolean = false;\n  public verMantenimiento: string = '';\n  public ausenciaNovedad: AusenciaNovedadModel = new AusenciaNovedadModel();\n  public ausentismo: AusenciaModel = new AusenciaModel();\n  public activo: string = 'solicitud';\n  public accion: string;\n  public tipoAusenciaSeleccionada;\n  public listaTipoAusentismo = [];\n  public modoParametro = '';\n  public nuevo: boolean;\n\n  totalRecords: number;\n  rows: number;\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(\n    private storage: StorageService,\n    private ausentismoService: AusentismoService,\n    private ausentismoPipe: AusentismoPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private toastService: ToastService,\n    private cargarMapas: cargarmapasGlobal,\n    private generalService: GeneralService,\n    private utilsService: UtilsService,\n    private authService: AuthService\n  ) { }\n\n  ngOnInit(): void {\n    this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).subscribe(data => {\n      this.modoParametro = data.modoCompensacion;\n    });\n    this.ausenciaNovedad = new AusenciaNovedadModel();\n    this.ausentismo = new AusenciaModel();\n    this.traerSolicitud();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async traerSolicitud() {\n    this.isLoadingData = true;\n\n    //Consulta pasivo ausencia\n    this.listaPasivo = [];\n    this.listaPasivo = await this.ausentismoService.traerListadoAusenciaNovedad({\n      empresa: this.storage.getDecodedJWT().numeroEmpresa,\n      contrato: this.empleado.contrato,\n      tipoRegistro: 'PA',\n      origen: this.ausentismoPipe.INCAPACIDAD\n    }).toPromise();\n    if (this.listaPasivo) {\n      this.isLoadingData = false;\n      this.paginator.totalRecords = this.listaPasivo.length;\n    }\n\n    //Consulta ausencias programadas\n    this.listaProgramadas = [];\n    this.listaProgramadas = await this.ausentismoService.traerListadoAusenciaNovedadProgramadas({\n      empresa: this.storage.getDecodedJWT().numeroEmpresa,\n      contrato: this.empleado.contrato,\n      tipoRegistro: 'PR',\n      origen: this.ausentismoPipe.INCAPACIDAD,\n      login: this.storage.getDecodedJWT().usuario,\n      rol: this.storage.getDecodedJWT().aliasRol\n    }).toPromise();\n    if (this.listaProgramadas) {\n      this.isLoadingData = false;\n      this.paginator.totalRecords = this.listaProgramadas.length;\n    }\n    this.utilsService.resizeWindowIFrame()\n  }\n\n  async traerHistorico() {\n    try {\n      if (this.controlFuncionalidad.getControlFuncionalidad('inchis:deshabhistorico')) {\n        this.toastService.showWarning('No tiene permisos asociados.')\n        return;\n      }\n      this.isLoadingData = true;\n      this.listaHistorico = [];\n      let filtroLogin = null;\n      let filtroAliasRol = null;\n      if (this.controlFuncionalidad.getControlFuncionalidad('inchis:portipo')) {\n        filtroLogin = this.storage.getDecodedJWT().usuario,\n          filtroAliasRol = this.storage.getDecodedJWT().aliasRol\n      }\n      this.listaHistorico = await this.ausentismoService.traerListadoHistoricoAusencia({\n        empresa: this.storage.getDecodedJWT().numeroEmpresa,\n        contrato: this.empleado.contrato,\n        origen: this.ausentismoPipe.INCAPACIDAD,\n        login: filtroLogin,\n        rol: filtroAliasRol\n      }).toPromise();\n      if (this.listaHistorico) {\n        this.isLoadingData = false;\n        this.paginator.totalRecords = this.listaHistorico.length;\n      }\n      this.utilsService.resizeWindowIFrame()\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  cambiarTab(event) {\n    switch (event.index) {\n      case 0:\n        this.traerSolicitud();\n        this.utilsService.resizeWindowIFrame();\n        break;\n      case 1:\n        this.traerHistorico();\n        this.utilsService.resizeWindowIFrame();\n        break;\n      default:\n        break;\n    }\n  }\n\n  async cargaMap() {\n    //Carga Tipo ausentismo con pasivo\n    this.listaTipoAusentismo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoAusenciaDTO', null, false, {\n      modoParametro: this.modoParametro,\n      origen: this.ausentismoPipe.INCAPACIDAD\n    }));\n  }\n\n  solicitarAusentismo(data) {\n    this.seleccionAusentismo.inicializarListaCondicionDerecho(this.ausentismoPipe.INCAPACIDAD, this.empleado, null).then(data => { this.utilsService.resizeWindowIFrame()});\n    this.accion = data;\n  }\n\n  nuevoRegistroProgramado() {\n    this.isLoadingData = true;\n    let ausenciaNovedad = new AusenciaNovedadModel();\n    ausenciaNovedad.tipoAusencia = this.tipoAusenciaSeleccionada.llaveTabla;    \n    this.verMantenimiento = 'programada';\n    this.sleep(500).then(data => {\n      this.incapacidadAusencia.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_INCAPACIDAD, this.ausentismoPipe.FORM_EMPLEADO_INCAPACIDAD, ausenciaNovedad, this.empleado).then(data => { })\n    })\n  }\n\n  async verRegistroProgramado(ausenciaNovedad) {\n    this.isLoadingData = true;\n    this.verMantenimiento = 'programada';\n    this.sleep(500).then(data => {\n      this.incapacidadAusencia.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_INCAPACIDAD, this.ausentismoPipe.FORM_EMPLEADO_INCAPACIDAD, ausenciaNovedad.data, this.empleado).then(data => { })\n    })\n  }\n\n  async nuevoRegistroHistorico() {\n    await this.cargaMap();\n    this.verMantenimiento = 'historico';\n    this.ausentismo = new AusenciaModel();\n    this.ausentismo.tipoAusencia = this.tipoAusenciaSeleccionada.llaveTabla;\n    this.ausentismo.codigoAusencia = this.tipoAusenciaSeleccionada.codigo;\n    this.ausentismo.descripcionTipoAusencia = this.tipoAusenciaSeleccionada.descripcion;\n    this.nuevo = true;\n  }\n\n  async verHistorico(event) {\n    this.isLoadingData = true;\n    await this.cargaMap();\n    this.verMantenimiento = 'historico';\n    this.ausentismo = event.data;\n    this.nuevo = false;\n  }\n\n  regresarDetalle(event) {\n    this.verMantenimiento = '';\n    if (event == 'historico') {\n      this.activo = event\n      this.cambiarTab({ originalEvent: '', index: 1 });\n    } else {\n      this.activo = 'solicitud'\n      this.cambiarTab({ originalEvent: '', index: 0 });\n    }\n    this.ausenciaNovedad = new AusenciaNovedadModel();\n    this.ausentismo = new AusenciaModel();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  seleccionarPopupSeleccionAusentismo(event) {\n    this.tipoAusenciaSeleccionada = event;    \n    if (this.accion == 'historico') {\n      this.nuevoRegistroHistorico();\n    } else if (this.accion == 'solicitud') {\n      this.nuevoRegistroProgramado();\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  regresarPopupSeleccionAusentismo() {\n  }\n\n  sleep(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\n  public empleadoActivo(): boolean {\n    return this.empleado.empleadoActivo;\n  }\n\n}\n","<div *ngIf=\"verMantenimiento==''\">\n    <h4>{{'incapacidad' | translate}}es</h4>\n    <p-tabView (onChange)=\"cambiarTab($event)\">\n        <p-tabPanel header=\"{{'incapacidad' | translate}}\" [selected]=\"activo == 'solicitud'\">\n            <div class=\"card p-4\">\n                <div class=\"flex justify-content-between align-items-center -mt-2 mb-3\">\n                    <h5 class=\"mt-0\"><i class='mt-4 glyphicons glyphicons-notes'></i>\n                        <span class=\"mt-4\">{{'solicitudes' | translate}}</span>\n                    </h5>\n                    <div class=\"flex justify-content-end\">\n                        <!--boton nuevo -->\n                        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                            (click)=\"solicitarAusentismo('solicitud')\" label=\"{{'nuevo' | translate}}\"\n                            *ngIf=\"(empleadoActivo() || controlFuncionalidad.getControlFuncionalidad('incsol:empRetirado')) && (controlFuncionalidad.getControlFuncionalidad('incsol:guardar') || controlFuncionalidad.getControlFuncionalidad('incsol:guardarLegalizar'))\">\n                        </button>\n                    </div>\n                </div>\n                <p-table [value]=\"listaProgramadas\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaProgramadas.length\"\n                    [paginator]=\"listaProgramadas.length > 10\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n                    scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verRegistroProgramado($event)\">\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    <ng-template pTemplate=\"header\">\n                        <tr>\n                            <th style=\"width: 25%;\">{{'ausencia' | translate}}</th>\n                            <th style=\"width: 10%;\">{{'salida' | translate}}</th>\n                            <th style=\"width: 10%;\">{{'termina' | translate}}</th>\n                            <th style=\"width: 10%;\">{{'regreso' | translate}}</th>\n                            <th style=\"width: 10%;\">{{'regreso' | translate}} {{'nomina' | translate}}</th>\n                            <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n                            <th style=\"width: 20%;\">{{'mensaje' | translate}}</th>\n                        </tr>\n                        <th>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                        <tr [pSelectableRow]=\"data\">\n                            <td style=\"width: 25%;\">{{data.nombreTipoAusencia}}</td>\n                            <td style=\"width: 10%;\">{{data.salida | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"width: 10%;\">{{data.termina | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"width: 10%;\">{{data.regreso | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"width: 10%;\">{{data.regresoNomina | date: 'dd/MM/yyyy'}}</td>\n                            <td style=\"width: 10%;\">{{data.estado | novedadPipe: 'listaEstado'}}</td>\n                            <td style=\"width: 20%;\">{{data.mensaje}}</td>\n                        </tr>\n                    </ng-template>\n                </p-table>\n            </div>\n        </p-tabPanel>\n        <p-tabPanel header=\"{{'historico' | translate}}\" [selected]=\"activo == 'historico'\">\n            <div class=\"flex justify-content-end lign-items-center mb-3\">\n                <!--boton nuevo-->\n                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                    (click)=\"solicitarAusentismo('historico')\" label=\"{{'nuevo' | translate}}\"\n                    *ngIf=\"controlFuncionalidad.getControlFuncionalidad('licsol:nuevohistorico') && (empleadoActivo() || controlFuncionalidad.getControlFuncionalidad('licsol:empRetirado') )\">\n                </button>\n            </div>\n            <p-table [value]=\"listaHistorico\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaHistorico.length\"\n                [paginator]=\"listaHistorico.length > 10\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n                scrollDirection=\"horizontal\" selectionMode=\"single\" (onRowSelect)=\"verHistorico($event)\">\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th style=\"width: 25%;\">{{'tipoausencia' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'salida' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'fechasalidanomina' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'regreso' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'fecha' | translate}} {{'regreso' | translate}} {{'nomina' |\n                            translate}} </th>\n                        <th style=\"width: 10%;\">{{'antecesor' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'fechatermina' | translate}}</th>\n                        <th style=\"width: 7%;\">{{'liquidado' | translate}}</th>\n                        <th style=\"width: 8%;\">{{'prorroga' | translate}}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                    <tr [pSelectableRow]=\"data\">\n                        <td style=\"width: 25%;\">{{data.descripcionTipoAusencia}}</td>\n                        <td style=\"width: 10%;\">{{data.salida | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"width: 10%;\">{{data.salidaNomina | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"width: 10%;\">{{data.regreso | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"width: 10%;\">{{data.regresoNomina | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"width: 10%;\">{{data.origen | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"width: 10%;\">{{data.termina | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"width: 7%;\">{{data.dias}}</td>\n                        <td style=\"width: 8%;\">{{data.prorroga}}</td>\n                    </tr>\n                </ng-template>\n            </p-table>\n        </p-tabPanel>\n    </p-tabView>\n</div>\n<div id=\"id_ausencia_programada\" *ngIf=\"verMantenimiento=='programada'\">\n    <app-incapacidad-ausencia-programadas #incapacidadAusencia\n        (regresar)=\"regresarDetalle($event)\"></app-incapacidad-ausencia-programadas>\n</div>\n<div id=\"id_detalle_historico\" *ngIf=\"verMantenimiento=='historico'\">\n    <app-editar-historico-incapacidades (regresar)=\"regresarDetalle($event)\" [ausentismoDTO]=\"ausentismo\"\n        [isNew]=\"nuevo\" [empleadoDTO]=\"empleado\"\n        [listaTipoLicenciaAusencia]=\"listaTipoAusentismo\"></app-editar-historico-incapacidades>\n</div>\n<app-popup-seleccion-ausentismo #seleccionAusentismo (regresar)=\"regresarPopupSeleccionAusentismo()\"\n    (seleccionar)=\"seleccionarPopupSeleccionAusentismo($event)\"></app-popup-seleccion-ausentismo>","import { HttpEventType } from '@angular/common/http';\nimport { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { HojaVidaPipe } from '../../../../shared/pipes/hojavida.pipe';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { ParametrosPipe } from '../../../../shared/pipes/parametros.pipe';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UnionModel, UtilsService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { TipoDocumentoModel } from '../../../../modules/hojavida/models/TipoDocumentoModel';\nimport { MomentoDocumentoModel } from '../../../../modules/talento/models/MomentoDocumentoModel';\nimport { RequisitoHojaModel } from '../../../../modules/talento/models/RequisitoHojaModel';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\n\n@Component({\n    selector: 'app-popup-documento-novedad',\n    templateUrl: './popup-documento-novedad.component.html',\n    styleUrls: ['./popup-documento-novedad.component.scss'],\n    standalone: true,\n    imports: [NgIf, DialogModule, DropdownModule, FormsModule, CalendarModule, InputTextModule, FileUploadModule, InputTextareaModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupDocumentoNovedadComponent implements OnInit {\n\n\tpublic requisitoHojaDTO: RequisitoHojaModel = new RequisitoHojaModel();\n\tpublic listaCumplido: any[];\n\tpublic listaDocumento: any[];\n\tpublic nuevo: boolean;\n\tpublic paqueteServidor: string \n\tpublic fichero: any;\n\tpublic nombreArchivo: string;\n\tpublic tipoDocumento: TipoDocumentoModel = new TipoDocumentoModel();\n\tpublic actividadEncuesta: boolean;\n\tpublic extensionesPermitidas: string[];\n\n\tpublic tamanioArchivo: number;\n\tpublic extensionArchivoCargado: string;\n\n\tpublic mostrarPopup: boolean;\n\t@Output() public destino = new EventEmitter;\n\tpublic visible: boolean;\n\tpublic archivoSeleccionado: File;\n\tpublic clickGuardar: boolean = false; \n\n\tconstructor(private listaConstantesPipe: ListaConstantesPipe,\n\t\t\t\tprivate confirmationService: ConfirmationService,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tprivate translateService: TranslateService,\n\t\t\t\tprivate cargarArchivoService: CargarArchivosService,\n\t\t\t\tpublic controlFuncionService: CargarControlFuncionalidadService,\n\t\t\t\tprivate generalPipe: GeneralPipe,\n\t\t\t\tprivate parametrosPipe: ParametrosPipe,\n\t\t\t\tpublic utilsService: UtilsService,\n\t\t\t\tprivate hojaVidaPipe: HojaVidaPipe,\n\t\t\t\tprivate authService: AuthService,\n\t\t\t  \tprivate encriptadorBasico: EncriptadoBasicoService,\n\t\t\t\tprivate generalService: GeneralService) { }\n\n\tngOnInit(): void {\n\t\tthis.listaCumplido = this.listaConstantesPipe.CUMPLIDO_REQ_SIMPLE;\n\t\tthis.extensionesPermitidas = ['pdf', 'PDF', 'png', 'PNG', 'jpg', 'JPG', 'jpeg', 'JPEG', 'txt', 'xml'];\n\t}\n\n\tasync inicializar(unionDTO: any, llaveTipoDocumento: string, actividadEncuesta: boolean) {\n\t\tthis.archivoSeleccionado = null;\n\t\tthis.mostrarPopup = true;\n\t\tthis.visible = true;\n\t\tthis.actividadEncuesta=actividadEncuesta;\n\t\tthis.requisitoHojaDTO = new RequisitoHojaModel();\n\t\tthis.requisitoHojaDTO.actoAdministrativo = unionDTO.llaveTabla;\n\t\tthis.requisitoHojaDTO.tipoDocumento = llaveTipoDocumento;\n\t\tthis.tipoDocumento = new TipoDocumentoModel();\n\t\tthis.tipoDocumento.documento = this.requisitoHojaDTO.tipoDocumento;\n\t\tthis.tipoDocumento = await this.generalService.queryForObject(new GeneralModel('TipoDocumentoDTO', null, false, this.tipoDocumento)).toPromise();\n\t\tthis.paqueteServidor = null;\n\t\tthis.nombreArchivo=null;\n\t\tthis.nuevo = true;\n\t\tthis.cargarDocumento2();\n\t\tthis.mostrarPopup = true;\n\t}\n\n\tasync cargarDocumento(momentoDocumentoDTO: MomentoDocumentoModel, unionDTO: any, actividadEncuesta: boolean, llaveTipoDocumento?: string) {\n\t\tconsole.log('entr cargarDocumento')\n\t\tthis.clickGuardar = false;\n\t\tthis.mostrarPopup = true;\n\t\tthis.visible = true;\n\t\tthis.actividadEncuesta=actividadEncuesta;\n\t\tif(unionDTO.llaveTabla != null){\n\t\t\tthis.requisitoHojaDTO = new RequisitoHojaModel();\n\t\t\tthis.requisitoHojaDTO.tipoDocumento = momentoDocumentoDTO.tipoDocumento;\n\t\t\tthis.requisitoHojaDTO.actoAdministrativo = unionDTO.llaveTabla;\n\t\t\tthis.requisitoHojaDTO = await this.generalService.queryForObject(new GeneralModel('RequisitoHojaDTO', null, false, this.requisitoHojaDTO)).toPromise()\n\t\t\tif(this.requisitoHojaDTO!= null){\n\t\t\t\tthis.requisitoHojaDTO.cumplido = this.requisitoHojaDTO.cumplido ? new Date(this.requisitoHojaDTO.cumplido) : null;\n\t\t\t\tthis.requisitoHojaDTO.vigencia = this.requisitoHojaDTO.vigencia ? new Date(this.requisitoHojaDTO.vigencia) : null;\n\t\t\t\tthis.tipoDocumento = new TipoDocumentoModel();\n\t\t\t\tthis.tipoDocumento.documento = this.requisitoHojaDTO.tipoDocumento;\n\t\t\t\tthis.tipoDocumento = await this.generalService.queryForObject(new GeneralModel('TipoDocumentoDTO', null, false, this.tipoDocumento)).toPromise();\n\t\t\t\tthis.nuevo = false;\n\t\t\t\tthis.mostrarPopup = true\n\t\t\t\tthis.cargarDocumento2();\n\t\t\t} else {\n\t\t\t\tawait this.inicializar(unionDTO, llaveTipoDocumento, actividadEncuesta);\n\t\t\t}\n\t\t} else {\n\t\t\tawait this.inicializar(unionDTO, llaveTipoDocumento, actividadEncuesta);\n\t\t\tif (momentoDocumentoDTO.requisitoHojaDTO != null) {\n\t\t\t\tthis.requisitoHojaDTO = momentoDocumentoDTO.requisitoHojaDTO;\n\t\t\t}\n\t\t}\n\t\tthis.requisitoHojaDTO.archivo = this.requisitoHojaDTO.archivo ? this.requisitoHojaDTO.archivo : '';\n\t}\n\n\n\tcargarDocumento2() {\n\t\tvar tipo: TipoDocumentoModel = new TipoDocumentoModel();\n\t\ttipo.origen = this.hojaVidaPipe.TIO_CONTRATACION;\n\t\tthis.generalService.queryForList(new GeneralModel('TipoDocumentoDTO', null, false, tipo)).subscribe(data => {\n\t\t\tthis.listaDocumento = [];\n\t\t\tthis.listaDocumento.push({codigo: null, nombre: '-- Seleccione --'});\n\t\t\tdata.forEach(tipoDoc =>  {\n\t\t\t\tthis.listaDocumento.push({codigo: tipoDoc.documento, nombre: tipoDoc.descripcion});\n\t\t\t})\n\t\t})\n\t\t\n\t}\n\t\n\tcargarArchivo(data: any, fubauto) {\n\t\tthis.archivoSeleccionado = data.files[0];\n\t\tthis.readFile(this.archivoSeleccionado);\n\t\tthis.notificacionesService.showSuccess('Se cargó el documento con éxito');\n\t\tthis.requisitoHojaDTO.archivo = this.archivoSeleccionado.name\n\t\tthis.nombreArchivo = this.archivoSeleccionado.name\n\t\tfubauto.clear();\n    }\n\n\tprivate readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n\t\t//this.filename = file.name;\n\t}\n\t\n\n\tguardarArchivo(llave: string){\n\t\tlet extensionArchivo:string = this.archivoSeleccionado.name.split('?')[0].split('.').pop();\n\t\tif(!this.extensionesPermitidas.includes(extensionArchivo)){\n\t\t\tthis.notificacionesService.showWarning(this.translateService.instant('extensionnovalida'));\n\t\t\treturn\n\t\t}\n\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\tlet codigoAplicacion =  this.authService.getTokenKey('aplicacion');\n\t\n\t\tthis.archivoSeleccionado =  new File([this.archivoSeleccionado], llave+'.' +extensionArchivo);\n\t\n\t   this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe({\n\t\t  next: (event) => {\n\t\t\tif (event.type === HttpEventType.Response) {\n\t\t\t\tlet response: any = event.body;\n\t\t\t\tthis.requisitoHojaDTO.archivo = this.nombreArchivo;\n\t\t\t\tthis.destino.emit(this.requisitoHojaDTO);\n\t\t\t\tthis.ocultar(); \n\t\t\t}\n\t\t  },\n\t\t});\n\n\t}\n\n\tpublic ocultar() {\n\t\tthis.mostrarPopup = false;\n\t\tthis.visible = false;\n\t}\n\n\tpublic validarRequisito() : boolean{\n\t\tvar validador: boolean = true;\n\t\tif (this.requisitoHojaDTO.estado != null && this.requisitoHojaDTO.estado == this.generalPipe.PUNTO) {\n\t\t\tthis.requisitoHojaDTO.estado = null;\n\t\t}\n\t\tif (this.requisitoHojaDTO.tipoDocumento != null && this.tipoDocumento.tipoDocumento == this.parametrosPipe.DOCUMENTO_ANEXO) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.archivoSeleccionado)\n\t\t} else {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.requisitoHojaDTO.estado)\n\t\t}\n\t\tif (this.archivoSeleccionado == null && this.parametrosPipe.DOCUMENTO_ANEXO == this.tipoDocumento.tipoDocumento) {\n\t\t\tthis.notificacionesService.showWarning('Debe subir el archivo antes de guardar')\n\t\t}\n\t\treturn validador;\n\t}\n\n\tpublic eliminar(event) {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC, \n\t\t\theader: 'Confirmar',\n\t\t\taccept: () => {\n\t\t\t  this.setEliminar();\n\t\t\t}\n\t\t})\n\t}\n\n\tsetEliminar(){\n\t\tthis.requisitoHojaDTO.eliminarRegistro = true;\n\t\tthis.destino.emit(this.requisitoHojaDTO);\n\t\tthis.notificacionesService.showInfo('se elimino el registro');\n\t\tthis.ocultar();\n\t}\n\n\n\tguardar() {\n\t\tthis.clickGuardar = true;\n\t\tif (!this.validarRequisito()) {\n\t\t\tif (this.archivoSeleccionado != null){\n\t\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardar = false;\n\t\tif (this.nuevo) {\n\t\t\tthis.requisitoHojaDTO.llave = this.utilsService.generarLlave();\n\t\t} \n\t\tif (this.parametrosPipe.DOCUMENTO_ANEXO == this.tipoDocumento.tipoDocumento) {\n\t\t\tthis.requisitoHojaDTO.anexo = 'S';\n\t\t\tthis.guardarArchivo(this.requisitoHojaDTO.llave);\n\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\t}\n\t\tthis.destino.emit(this.requisitoHojaDTO);\n\t\tthis.ocultar();\n\t}\n\n\tdescargarAnexo() {\n\t\tlet propiedad = 'ruta_anexosHojaVida';\n\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\t//Ruta archivo\n\t\tvar extension = this.requisitoHojaDTO.archivo.split('?')[0].split('.').pop();\n\t\tvar nombrearchivo = this.encriptadorBasico.encriptar(this.requisitoHojaDTO.llave + '.' + extension )\n\t\tthis.cargarArchivoService.descargarArchivo(nombrearchivo, propiedad, aplicacion).subscribe(blob => {\n\t\t  const a = document.createElement('a')\n\t\t  const objectUrl = URL.createObjectURL(blob)\n\t\t  a.href = objectUrl\n\t\t  a.download = this.requisitoHojaDTO.archivo;\n\t\t  a.click();\n\t\t  URL.revokeObjectURL(objectUrl);\n\t\t});\n\t\n\t  }\n\n}\n","<div *ngIf=\"visible\">\n    <p-dialog header=\"{{'documento' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"Detallereporte mt-2\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <div class=\"field col-12 md:col-6 lg:col-6\">\n                <span class=\"p-float-label\">\n                    <p-dropdown  optionValue=\"codigo\" optionLabel=\"nombre\" class=\"w-full\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [options]=\"listaDocumento\" [disabled]=\"true\" [autoDisplayFirst]=\"false\"\n                        [(ngModel)]=\"requisitoHojaDTO.tipoDocumento\"></p-dropdown>\n                    <label>{{'documento' | translate}}*</label>\n                </span>\n            </div>\n\n            <div class=\"field col-12 md:col-6 lg:col-6\" >\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"requisitoHojaDTO.vigencia\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                    <label>{{'vigencia' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-12 md:col-6 lg:col-6\" id=\"btn-cargar-popup\" *ngIf=\"tipoDocumento.tipoDocumento == 'I'\">\n                <div\n                    [class]=\"(!utilsService.validarCampoObligatorio(archivoSeleccionado) && clickGuardar)  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n                    <span class=\"p-float-label nomostrar\">\n                        <input pInputText #inputText [readonly]=\"true\" [value]=\"requisitoHojaDTO.archivo\" disabled  />\n                        <label htmlFor=\"detalle\">{{'adjunto' | translate}} *</label>\n                        <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n                            (onSelect)=\"cargarArchivo($event, fubauto)\" required\n                            [class.invalid-upload]=\"!utilsService.validarCampoObligatorio(archivoSeleccionado) && clickGuardar\"></p-fileUpload>\n                        <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\" *ngIf=\"requisitoHojaDTO.archivo\"\n                            (click)=\"descargarAnexo()\" type=\"file\"></button>\n                    </span>\n                </div>\n            </div>\n<!--            <div class=\"field col-12 md:col-6 lg:col-6\" >\n                <span class=\"p-float-label\">\n                    <input pInputText [disabled]=\"true\" [(ngModel)]=\"\">\n                    <label>{{'archivo' | translate}}*</label>\n                </span>\n            </div>\n\n            <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"tipoDocumento.tipoDocumento == 'I'\">\n                <p-fileUpload #fubauto chooseLabel=\"{{'cargar' | translate}}\" mode=\"basic\" [customUpload]=\"true\"  chooseIcon=\"glyphicons glyphicons-paperclip\"\n                    [class]=\"!utilsService.validarCampoObligatorio(archivoSeleccionado) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"\n                    accept=\"application/pdf\"  (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n            </div>-->\n\n            <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"tipoDocumento.tipoDocumento == 'C'\">\n                <span class=\"p-float-label\">\n                    <p-dropdown  optionValue=\"codigo\" optionLabel=\"nombre\" class=\"w-full\" \n                        [class]=\"!utilsService.validarCampoObligatorio(requisitoHojaDTO.estado) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" [options]=\"listaCumplido\"  [autoDisplayFirst]=\"false\"\n                        [(ngModel)]=\"requisitoHojaDTO.estado\"></p-dropdown>\n                    <label>{{'estado' | translate}}*</label>\n                </span>\n            </div>\n\n            <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"tipoDocumento.tipoDocumento == 'C'\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"requisitoHojaDTO.cumplido\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                    <label>{{'cumplido' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-12 md:col-6 lg:col-12\" >\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea [(ngModel)]=\"requisitoHojaDTO.observacion\" rows=\"5\" cols=\"30\"\n                        class=\"w-full min-h-100 max-h-150\">\n                    </textarea>\n                    <label>{{'observacion' | translate}}</label>\n                </span>\n            </div>\n        </div>\n\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                *ngIf=\"!actividadEncuesta && controlFuncionService.getControlFuncionalidad('ingnov:guardar')\" icon=\"glyphicons {{!nuevo ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n                label=\"{{!nuevo ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\"\n                (click)=\"guardar()\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button-outlined\"\n                *ngIf=\"!nuevo && !actividadEncuesta && controlFuncionService.getControlFuncionalidad('ingnov:guardar')\" icon=\"glyphicons glyphicons-bin\"\n                label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n            </button>\n        </div>\n    </div>\n    </p-dialog>\n</div>","import { UnionModel } from 'general-library-union'\n\n\nexport class DatoorganizacionModel extends UnionModel {\n\tllave: string;\n\torganizacion: number;\n\t/** El tipo de tabla/proceso para el cual se define este dato \n\t * <br>({@link DatoOrganizacionCons#LISTA_TIPO_NECESIDAD_CAPACITACION})\n\t * <br>({@link DatoorganizacionCons#LISTADO_TIPO_TABLA_TALENTO})\n\t * TODO*/\n\ttipo: string;\n\tseccionCampo: string;\n\tdescripcion: string;\n\t/** El nombre de la tabla a la cual corresponde este dato\n\t * <br> {@link DatoOrganizacionCons#TABLA_REQUERIMIENTO_PERSONAL}\n\t * <br> TODO */\n\ttabla: string ;\n\tcampo: string ;\n\tseccion: string ;\n\tvalorseccion: string ;\n\tcontrosegumiento: string ;\n\testado: string ;\n\toperador: string ;\n\tperfil: string ;\n\tcantidad: string ;\n\tcorto: string ;\n    seleccionado: boolean =false;\n    requerido: string ;\n    accion: string ;\n    orden: number ;\n    formato: string ;\n    aliasRol: string ;\n    filtroCampoDescripcion: string ;\n    informacionBasica: string ;\n    \n    tituloDescripcionRequerida: string;\n    tituloDescripcionTemporal: string;\n    tituloDescripcionArea: string;\n    tituloDescripcionProposito: string;\n    tituloDescripcionPapel: string;\n    tituloDescripcionFrecuencia: string;\n    tituloDescripcionAsignatura: string;\n    tituloDescripcionSemestre: string;\n    tituloDescripcionGrupoAsignatura: string;\n    tituloDescripcionIntensidadAsignatura: string;\n    aplicarfiltrotabla: string;\n    marcador: string;\n    consultaCampoFormulario: string;\n    origen: string;\n    depende: string;\n    horaMinimo: string;\n    valor: string;\n    cadena: string;\n    unidad: string;\n    peso: number;\n    titulo1: string;\n    titulo2: string;\n    titulo3: string;\n    titulo4: string;\n    titulo5: string;\n    tituloManual: string;\n    ancho: number;\n\talto: number;\n\trutaArchivo: string;\n\torigenRuta: string;\n    accionEdicion: string;\n    llaveBase: string;\n    ordenSelect: string;\n    modoParametro: string;\n    mostrarCampoPerfil: string;\n\t/**\n     * Campo utilizado para realizar un tipo de filtro especial que se utiliza para actos administrativos\n     * en el bean: FormatoTablabean y XML (Datoorganizacional.xml)\n     * @see co.co.com.unionsoluciones.actos.logica.bean.FormatoTablaBean\n     */\n    filtroCampoNullActo: string;\n    filtrollavetabla: string;\n    parametroBusqueda: string; \n    estilo: string;\n    descCaracteristica: string;\n    descCaracteristica2: string;\n    tablas: string;\n    accionFiltro: string;\n    dimension: string;\n    descripcionDimension: string;\n    descripcionDepende: string;\n    textoHtml: string;\n    validador: string;\n}","import { UnionModel } from 'general-library-union'\n\nexport class LiquidacionperModel extends UnionModel {\n\n\tnumero: number;\n\tidentifica: number;\n\tcedula: number;\n\talterno: String;\n\tdocumento: String;\n  tipoliquidape: String;\n\testado: String;\n\tdescripcion: String;\n\tmonto: number;\n\tciclo: number;\n\tinteres: number;\n\tcuota: number;\n\tabono: number;\n\tcantidad: number;\n\tnumerocuotas: number;\n\tinicia: Date;\n\tbeneficiario: String;\n\tcancelacion: Date;\n\tidBeneficiario: number;\n\tempresa: number;\n\treferencia: String;\n\tentidad: String;\n\tdemandanomb: String;\n\tdemandaapel: String;\n\tdemandante: number;\n\ttipodocudema: String;\n\tdemandaref: String;\n\tembargo: String;\n\tjudicial: String;\n\tnumeroProceso: String;\n\tobservacion: String;\n\tfechaDesembolso: Date;\n\tfechaInicioInteres: Date;\n\tvalorDesembolso: number;\n\tvalorPrimerCuota: number;\n\tvalorUltimaCuota: number;\n\tnumCuotaActual: number;\n\tvalorCuotaActual: number;\n\tformaDesembolso: String;\n\tcreditoEmpleado: String;\n\tnumeroOficio: String;\n\tfechaOficio: Date;\n\tfechaRadicacion: Date;\n\tnombreCompleto: String;\n\tnumeroResolucion: String;\n\tmotivo: String;\n\testadoFormula: number;\n\tdocumentoBeneficiario: String;\n\tcuotaActual: number;\n\tabonoAfuera: number;\n\tinteresActual: number;\n\tdescripcionEntidad: String;\n\tcontratoBase: number;\n\ttodoContrato: String;\n\tnumeroCancelo: number;\n  saldo: number;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class NovedadDatoModel extends UnionModel {\n\t\n\tllave: String;\n\tnovedad: String;\n\tempresa: number;\n\tcontrato: number;\n\tnumero: number;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class PeriodoConcBaseModel extends UnionModel{\n\n\n\tnumero: number;\n\tconcepto: number;\n\tfactor: number;\n\tidentificacion: number;\n\tempresa: number;\n\tvigencia: Date;\n\thasta: Date;\n\ttipo: String;\n\tllave: String;\n\torigen: String;\n\tconsolidador: number;\n\tdescripcion: String;\n\tdescripcionPredecesor: String;\n\tdescripcionConcepto: String;\n\tdescripcionConsolidador: String;\n\tnumeroantes: number;\n\testado: String;\n\testadoPredecesor: String;\n\tnovedad: String;\t\n\n\tget descripcionBase(): String {\n\t\tif ( this.concepto != null && this.concepto != 0  ) {\n\t\t\treturn this.descripcionConcepto;\n\t\t}\n\t\treturn this.descripcionConsolidador;\n\t}\n}\n","import { UnionModel } from \"general-library-union\";\nimport { UnionBpmModel } from \"../../sarageneral/models/UnionBpmModel\";\n\nexport class NovedadModel extends UnionModel{\n\n\tempresa:  number;\n\tnombreEmpresa:  string;\n\tcontrato:  number;\n\tdocumentoEmpleado:  string;\n\ttiponovedad:  string;\n\tdato:  Date;\n\tvalor:  number;\n\tcantidad:  number;\n\thasta:  Date;\n\tdesde:  Date;\n\tautoriza:  number;\n\testado:  string;\n\tmensaje:  string;\n\taprobado:  Date;\n\tperiodo:  string;\n\treversarNomina:  string;\n\taplicadopor:  string;\n\taplicado:  Date;\n\tzonaeconomica:  string;\n\tnombreZonaEconomica:  string;\n\tcentrocosto:  string;\n\tnombreCentroCosto:  string;\n\tlineacosto:  string;\n\tmateria:  string;\n\tunidad:  string;\n\tnombreEmpleado:  string;\n\tnombreEstado:  string;\n\tprimerApellidoEmpleado:  string;\n\tsegundoApellidoEmpleado:  string;\n\tnombreCompleto:  string;\n\ttipoNovedadDescripcion:  string;\n\ttipoPeriodo:  number;\n\ttipoProceso:  string;\n\ttipoTipoNovedad:  string;\n\ttipoDatoVariable:  string;\n\tdatoTabla:  string;\n\tvigenciaTabla:  string;\n\tmensajeTipoNovedad:  string;\n    valor2:  number;\n\tobservacion:  string;\n\ttipoVariable:  string;\n\tvariableAcumula:  string;\n\tconcepto:  number;\n\tentidad:  string;\n\tnombreEntidad:  string;\n\tasignacion:  number;\n\tlinea:  number;\n\tfechaInicial:  Date;\n\tfechaFinal:  Date;\n\tdepende:  string;\n\tdependeNovedad:  string;\n\tproceso:  string;\n\tdocumentoBeneficiario:  string;\n\tbeneficiario:  number;\n\tnombreBeneficiario:  string;\n\tfechapago:  Date;\n\treferencia:  string;\n\tsucursalReferencia:  string;\n\tentidadAuxiliar:  string;\n\tsucursal:  number;\n\tnombreSucursal:  string;\n\taccion:  string;\n\tvalormostrar:  Object;\n\tlistadoNovedad:  string;\n\ttipoSolicitud:  string;\n\ttipoReferencia:  string; \n\tdocumento:  string;\n\tfiltroZona:  string;\n\tfiltroUnidad:  string;\n\tusuarioRol:  string;\n\tformaDesembolso:  string;\n\tmontoInicial:  number;\n\tabono:  number;\n\tcuota:  number;\n\tprimerCuota:  number;\n\tultimaCuota:  number;\n\tinteres:  number;\n\tfechaCancelacion:  Date;\n\tfechaDesembolso:  Date;\n\tnroCuotas:  number;\n\tciclo:  number;\n\tcuotaPeriodo:  number;\n\tfechaIniciaInteres:  Date;\n\tvalorDesembolso:  number;\n\torigenNovedad:  string;\n\tloginAutorizaNovedad:  string;\n\tlogin:  string;\n\tllaveActividad:  string;\n\tcodigoNovedad:  number;\n\thora:  string;\n\tminutos:  string;\n\tnombreServicio:  string;\n\ttipo:  number;\n\tmotivoLiquidacion:  string;\n\tdescripcionMotivoLiquidacion:  string;\n\tcodMotivoLiquida:  number;\n\tmotivoRetiro:  string;\n\ttipoLegalizacion:  string;\n\tnumeroProceso:  string;\n\tmotivo:  string;\n\tnumero:  number;\n\ttipoRol:  string;\n\tperiodoAplica:  string;\n\talternoEmpleado:  string;\n\tembargo:  string;\n\ttipoDocumentoDemandante:  string;\n\tdemandante:  number;\n\tnombreDemandante:  string;\n\tapellidoDemandante:  string;\n\treferenciaDemandante:  string;\n\ttipoRegistros:  string;\n\tcodNovedades:  string;\n\tvariable:  string;\n\tvariableFecha:  string;\n\tliquidacionPeriodica:  string;\n\tcodigoVariableFecha:  string;\n\tdescripcionVariable:  string;\n\tdescripcionVariableFecha:  string;\n\tdescripcionConcepto:  string;\n\tdescripcionTurno: string;\n\tdescripcionLiquidaPeriodica:  string;\n\tcodRelacion:  string;\n\tsolicita:  number;\n\tloginSolicitaNovedad:  string;\n\tmasivo:  string;\n\tcomprobante:  string;\n\tpresupuestal:  string;\n\tfechaPresupuestal:  Date;\n\tvalorPresupuestal:  number;\n\tllaveActo:  string;\n\taplicaMasivo:  string;\n\tausencia:  string;\n\tprocesoLegalizacion:  string;\n\tcodNovedadesHijas:  string;\n\tcodNovedadesPadre:  string;\n\tformaDescripcion:  string;\n\tgenerada:  string;\n\tcedula:  number;\n\tnombreCargoEmpleado:  string;\n\tcargoEmpleado:  string;\n\tcentroEmpleado:  string;\n\tzonaEmpleado:  string;\n\tusuarioLogin:  string;\n\tactoUnidad:  string;\n\tactoUnidadNombre:  string;\n\tactoCentroCosto:  string;\n\tactoCargo:  string;\n\tactoCargoNombre:  string;\n\tactoTextoAdicional:  string;\n\tactoNombreResponde:  string;\n\tactoCedulaResponde:  number;\n\tactoDescripcionCambio:  string;\n\tunidadNombreEmpleado:  string;\n\tactoFechaCambio:  Date;\n\thoraInicial:  Date;\n\thoraFinal:  Date;\n\tvalidaFiltroZonaUnidad:  boolean;\n\tdispararBpm:  string;\n\tlimiteAviso: Date;\n\t\n\t//general\n\tautorizadorBPM: number;\n    nombreAutorizadorBPM: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class VariableFechaModel extends UnionModel{\n\t\n\t\n\tdescripcion: string;\n\tcodigo: string;\n\ttipoServicio: string;\n\ttipo: string;\n\tmodo: string;\n\talterno: number;\n\tbusqueda: string;\n\tcodigoBase: string;\n\tporcentaje: number;\n\n\t//DATOS NO PERSISTENTES\n\tdescripcionModo: string;\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class CodigoBaseCompensacionModel extends UnionModel {\n\n\t\n\tnumero: number;\n\ttipoPeriodo: number;\n\tconcepto: number;\n\tempresa: number;\n\tvinculacion: number;\n\talerta: number;\n\ttipo: String;\n\tdescripcion: string;\n\trestringe: String;\n\tdepende: String;\n\tcodigo: string;\n\ttipoActividad: String;\n\tporZona: String;\n\tporCentro: String;\n\tporVinculacion: String;\n\tporCargo: String;\n\tzona: String;\n\tnombreZona: String;\n\tcentro: String;\n\tnombreCentro: String;\n\tfuente: String;\n\tparametros: String;\n\tnombreVinculacion: String;\n\tcargo: String;\n\tcolor: String;\n\tnombreCargo: String;\n\tporUbicacionFisica: String;\n\tubicacionFisica: String;\n\tnombreUbicacionFisica: String;\n\tperiodo: String;\n\ttipoAlerta: String;\n\ttextoNotificacion: String;\n\thtmlNotifica: String;\n\tdescripcionTipoPeriodo: String;\n\thtmlCorreo: String;\n\ttipoServicio: String;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tfechaEjecucion: Date;\n\tfechaLimiteEjecucion: Date;\n\tfechaInformativa: Date;\n\tsucursalEntidad: number;\n\n}","import { UnionModel } from 'general-library-union'\nimport { NovedadModel } from './NovedadModel';\n\nexport class ItemTipoNovedadModel extends UnionModel {\n\n\ttipoNovedad: string;\n\tvariable: string;\n\tdescripcionVariable: string; \n\tvariableFecha: string;\n\tdescripcionVariableFecha: string;\n\tcodigoVariableFecha: string;\n\tconcepto: number;\n\tdescripcionConcepto: string;\n\ttipoLiquidacionPeriodica: string;\n\tdescripcionLiquidaPeriodica: string;\n\tempresa: number;\n\tcontrato: number;\n\tnovedadDTO: NovedadModel;\n\tbuscarOrigen: string;\n\t\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EmpleadoModel } from '../../models/EmpleadoModel';\nimport { TipoNovedadModel } from '../../models/TipoNovedadModel';\nimport { ItemTipoNovedadModel } from '../../models/ItemTipoNovedadModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralModel, ToastService } from 'general-library-union';\nimport { TipoNovedadCons } from '../../../../shared/pipes/tipoNovedadCons.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-seleccion-novedad-multiple',\n    templateUrl: './popup-seleccion-novedad-multiple.component.html',\n    styleUrls: ['./popup-seleccion-novedad-multiple.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, TranslateModule]\n})\nexport class PopupSeleccionNovedadMultipleComponent implements OnInit {\n\n  public listadoRelacion: ItemTipoNovedadModel[] = [];\n\n  @Output() public regresar = new EventEmitter;\n  @Output() public seleccionar = new EventEmitter;\n  @Input() public mostrarPopup: boolean;\n  @Input() public empleadoDTO: EmpleadoModel;\n  @Input() public tipoNovedadDTO: TipoNovedadModel;\n\n  constructor(private generalSvc: GeneralService,\n              private tipoNovedadPipe: TipoNovedadCons,\n              private notificacionesService: ToastService) { }\n\n  ngOnInit(): void {\n  }\n\n  cargarListadoRelacion() {\n\t\tvar itemTipoNovedadDTO: ItemTipoNovedadModel = new ItemTipoNovedadModel();\n\t\titemTipoNovedadDTO.tipoNovedad = this.tipoNovedadDTO.llave;\n\t\tif ( this.empleadoDTO != null && this.empleadoDTO.contrato != null) {\n\t\t\titemTipoNovedadDTO.buscarOrigen = \"liquidacionper_lip\";\n\t\t\titemTipoNovedadDTO.empresa = this.empleadoDTO.empresa;\n\t\t\titemTipoNovedadDTO.contrato = this.empleadoDTO.contrato;\n\t\t}\n\t\tthis.generalSvc.queryForList(new GeneralModel('ItemTipoNovedadDTO', null, false, itemTipoNovedadDTO)).subscribe(data => {\n      this.listadoRelacion = data;\n      if ( this.listadoRelacion.length ==0) {\n        this.notificacionesService.showWarning(\"No se presentaron registros base del proceso\");\n        return;\n      }\n      this.mostrarPopup = true;\n    })\n\t}\n\n  seleccionRelacion(event){\n    var seleccion: ItemTipoNovedadModel = event.data;\n    this.seleccionar.emit(seleccion);\n\t\tthis.ocultar();\n\t}\n\n  ocultar(){\n    this.mostrarPopup = false;\n    this.regresar.emit()\n  }\n\n  isVariable() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_EMPLEADO == this.tipoNovedadDTO?.tipo || this.tipoNovedadPipe.VARIABLE_PERIODO == this.tipoNovedadDTO?.tipo;\n\t}\n\n\tisVariableFecha() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_PERIODO_FECHAS == this.tipoNovedadDTO?.tipo || this.tipoNovedadPipe.VARIABLE_EMPLEADO_FECHAS == this.tipoNovedadDTO?.tipo;\n\t}\n\n\tisConcepto() {\n\t\treturn this.tipoNovedadPipe.CONCEPTO_EMPLEADO == this.tipoNovedadDTO?.tipo || this.tipoNovedadPipe.CONCEPTO_PERIODO == this.tipoNovedadDTO?.tipo;\n\t}\n\n\tisEmbargo() {\n\t\treturn this.tipoNovedadPipe.EMBARGO == this.tipoNovedadDTO?.tipo;\n\t}\n\n\tisPrestamo() {\n\t\treturn this.tipoNovedadPipe.LIQUIDACION_PERIODICA == this.tipoNovedadDTO?.tipo;\n\t}\n\n}\n","<p-dialog header=\"{{'seleccionnovedad' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"ocultar()\" (onShow)=\"cargarListadoRelacion()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listadoRelacion\" [rows]=\"10\"\n        [totalRecords]=\"listadoRelacion.length\" [paginator]=\"listadoRelacion.length > 10\"\n        [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        (onRowSelect)=\"seleccionRelacion($event)\">\n        <ng-template pTemplate=\"header\">\n                \n            <tr class=\"fondoTablaPincipal\">\n                <th *ngIf=\"isVariable()\">{{'variable' | translate}}</th>\n                <th *ngIf=\"isVariableFecha()\">{{'variablefecha' | translate}}</th>\n                <th *ngIf=\"isConcepto()\">{{'concepto' | translate}}</th>\n                <th *ngIf=\"isPrestamo() || isEmbargo()\">{{'liquidacionperiodica' | translate}}</th>\n                <th>{{'descripcion' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\"> \n                <td *ngIf=\"isVariable()\">{{bean.variable}}</td>\n                <td *ngIf=\"isVariable()\">{{bean.descripcionVariable}}</td>\n                <td *ngIf=\"isVariableFecha()\">{{bean.codigoVariableFecha}}</td>\n                <td *ngIf=\"isVariableFecha()\">{{bean.descripcionVariableFecha}}</td>\n                <td *ngIf=\"isConcepto()\">{{bean.concepto}}</td>\n                <td *ngIf=\"isConcepto()\">{{bean.descripcionConcepto}}</td>\n                <td *ngIf=\"isPrestamo() || isEmbargo()\">{{bean.tipoLiquidacionPeriodica}}</td>\n                <td *ngIf=\"isPrestamo() || isEmbargo()\">{{bean.descripcionLiquidaPeriodica}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class FormatoDatoModel extends UnionModel {\n\t\n\tllave: string;\n\ttipo: string;\n\tformato: number;\n\tcampo: string;\n\taccion: string;\n\taccionDiferente: string;\n\ttitulo: string;\n\torden: number;\n\taccionDerogar: string;\n\tmensaje: string;\n\tdatoInicial: string;\n\tactualizar: string;\n\tesDerogacion: string;\n\ttipoLiquida: number;\n\tvariableNomina: string;\n\tfactorPuntaje: string;\n\tcolumna: number;\n\ttipoDato: string;\n\ttipoServicio: string;\n\tdescripcionTipoServicio: string;\n\tobligatorio: string;\n\tcampoIngresoTiempo: string;\n\tvariableFecha: string;\n\tencuesta: string;\n\tpreguntaEncuesta: string;\n\tsucursal: number;\n\tnombreFormato: string;\n\tnuevo: boolean; \t\n}","import { UnionModel } from 'general-library-union'\nimport { EmpleadoModel } from '../../compensacion/models/EmpleadoModel'\nimport { DatoorganizacionModel } from '../../talento/models/DatoorganizacionModel'\nimport { PerfilTablasModel } from '../../talento/models/PerfilTablasModel'\nimport { ActosAdminTablaModel } from './ActosAdminTablaModel'\nimport { DatoActoAdmonModel } from './DatoActoAdmonModel'\nimport { FormatoModel } from './FormatoModel'\n\nexport class ActoCambioEmpleadoModel extends UnionModel {\n\n\tllave\t: \tstring\n\testadoNumero\t: \tnumber\n\tformato\t: \tnumber\n\tempresa\t: \tnumber\n\templeado\t: \tnumber\n\thojaVida\t: \tnumber\n\tdocumentoEmpleado\t: \tstring\n\talterno\t: \tstring\n\tgrupoVincula\t: \tnumber\n\tdocumento\t: \tstring\n\tnumero\t: \tstring\n\tfechaDocumento\t: \tDate\n\tfirmaDocumento\t: \tnumber\n\toficio\t: \tstring\n\tfechaOficio\t: \tDate\n\tsesion\t: \tstring\n\tfechaSesion\t: \tDate\n \t\n\tcomunicado\t: \tDate\n \t\n\tduracion\t: \tnumber\n \t\n\tfactor\t: \tnumber\n \t\n\tcambio\t: \tDate\n \t\n\tfechafinal\t: \tDate\n \t\n\tintensidad\t: \tnumber\n \t\n\tadicional\t: \tstring\n \t\n\ttipoCambio\t: \tstring\n \t\n\tadicionalT\t: \tstring\n \t\n\tsucursal\t: \tstring\n \t\n\tunidadDocumento\t: \tstring\n \t\n\tcongela\t: \tDate\n \t\n\tvalor1\t: \tnumber\n\tvalor2\t: \tnumber\n\tvalor3\t: \tnumber\n\tvalor4\t: \tnumber\n\tvalor5\t: \tnumber\n\tvalor6\t: \tnumber\n\tvalor7\t: \tnumber\n\tvalor8\t: \tnumber\n\tvalor9\t: \tnumber\n\tvalor10\t: \tnumber\n \t\n\tturnoAntes\t: \tnumber\n\tturno\t: \tnumber\n\tdescripcionTurno\t: \tstring\n\tdescripcionTurnoAntes\t: \tstring\n\tcargoAntes\t: \tstring\n\tcargo\t: \tstring\n\tcargoNombre\t: \tstring\n\tdescripcionCargo\t: \tstring\n\tunidadAntes\t: \tstring\n\tunidad\t: \tstring\n\tunidadNombre\t: \tstring\n\tdescripcionUnidad\t: \tstring\n\tvinculantes\t: \tnumber\n\tvincula\t: \tnumber\n\tdescripcionVincula\t: \tstring\n\tdescripcionVinculaAntes\t: \tstring\n\tsueldoAntes\t: \tnumber\n\tsueldo\t: \tnumber\n\tzonaAntes\t: \tstring\n\tzonaEconomica\t: \tstring\n\tdescripcionZonaEconomica\t: \tstring\n\tdescripcionZonaAntes\t: \tstring\n\tcentroAntes\t: \tstring\n\tcentroCostro\t: \tstring\n\tdescripcionCentroCosto\t: \tstring\n\tdescripcionCentroAntes\t: \tstring\n\tlineaAntes\t: \tstring\n\tlineaCosto\t: \tstring\n\tdescripcionLineaCosto\t: \tstring\n\ttipopeAntes\t: \tnumber\n\ttipoPeriodo\t: \tnumber\n\tdescripcionTipoPeriodo\t: \tstring\n\tdescripcionTipoPeriodoAntes\t: \tstring\n\trolAntes\t: \tstring\n\trol\t: \tstring\n\tllavePuestoAntes\t: \tstring\n\tllavePuesto\t: \tstring\n\tubicafiAntes\t: \tstring\n\tubicacionFis\t: \tstring\n\tdescripcionUbicacionFis\t: \tstring\n\testadoChar\t: \tstring\n\tantesesor\t: \tstring\n\tderogacion\t: \tstring\n\telaboracion\t: \tstring\n\tenganche\t: \tDate\n\tcodigoEmpleado\t: \tnumber\n\tvalor11\t: \tnumber\n\tvalor12\t: \tnumber\n\tvalor13\t: \tnumber\n\tvalor14\t: \tnumber\n\tvalor15\t: \tnumber\n\tvalor16\t: \tnumber\n\tvalor17\t: \tnumber\n\tvalor18\t: \tnumber\n\tvalor19\t: \tnumber\n\tvalor20\t: \tnumber\n\tsoporte\t: \tstring\n\tpostLegalizada\t: \tstring\n\tunidadFunant\t: \tstring\n\tcargoFunant\t: \tstring\n\ttipoPuestoTrabajo\t: \tstring\n\ttippueTrantes\t: \tstring\n\tpuestoFuncion :string\n\tclasificacionFuncionAntes\t: \tstring\n\tempresaAnt\t: \tnumber\n\tcontratoAnt\t: \tnumber\n\tturnoFuncionAntes\t: \tnumber\n\ttotal\t: \tnumber\n\ttotalAntes\t: \tnumber\n\tmensaje\t: \tstring\n\tadvertencia\t: \tstring\n\tclasificacion\t: \tstring\n\tdescripcionClasificacion\t: \tstring\n\tclasificacionAntes\t: \tstring\n\tentidad1\t: \tstring\n\ttipo\t: \tstring\n \t\n\tformatoDTO\t: \tFormatoModel\n\templeadoDTO\t: \tEmpleadoModel\n \t\n\tdescripcion\t: \tstring\n\tactocambioemp\t: \tstring\n \t\n\tdescripcionFormato\t: \tstring\n\tdescripcionTipoCambio\t: \tstring\n \t\n\tnombreCompleto\t: \tstring\n\tnombreCompletoHojaVida\t: \tstring\n\tllaveNombreArchivoAnexo\t: \tstring\n\ttipoServicio\t: \tstring\n \t\n\ttituloPerfilTabla1\t: \tstring\n\ttituloPerfilTabla2\t: \tstring\n\ttituloPerfilTabla3\t: \tstring\n\ttituloTablaMateria\t: \tstring\n \t\n\tlistaPerfilTabla1DTO\t: \tActosAdminTablaModel[]\n\tdatoorganizacionDTO1\t: \tDatoorganizacionModel\n\tlistaPerfilTabla2DTO\t: \tActosAdminTablaModel[]\n\tdatoorganizacionDTO2\t: \tDatoorganizacionModel\n\tlistaPerfilTabla3DTO\t: \tActosAdminTablaModel[]\n\tdatoorganizacionDTO3\t: \tDatoorganizacionModel\n\tlistaTablaMateria\t: \tActosAdminTablaModel[]\n\tdatoorganizacionDTO4\t: \tDatoorganizacionModel\n \t\n\tlistaPerfilTablaGeneralDTO\t: \tPerfilTablasModel[]\n\tlistaEntidadesExterna\t: \tDatoActoAdmonModel[]\n \t\n \t\n\tlistaActosHijos\t: \tActoCambioEmpleadoModel[]\n \t\n \t\n\tdisponibilidad\t: \tDate\n\testadoNumeroDiferenteUno\t: \tnumber\n\ttiempoTipoHorario\t: \tstring\n\ttiempoTipoLiquida\t: \tstring\n\ttiempoGrupo\t: \tstring\n\ttiempoTipoSitio\t: \tstring\n\ttiempoSitio\t: \tstring\n\taccionFormato\t: \tstring\n\tlistaAdicional1\t: \tnumber\n\tlistaAdicional2\t: \tstring\n\tlistaAdicional3\t: \tstring\n\tpresupuestal\t: \tstring\n\tsemestre\t: \tstring\n\tproyecto\t: \tstring\n\tnombreFormato\t: \tstring\n\tvariablesActo\t: \tDatoActoAdmonModel[]\n\tllaveActoBase\t: \tstring\n\tnombresEmpleado\t: \tstring\n\tprimerApellido\t: \tstring\n\tsegundoApellido\t: \tstring\n\tllaveActoNovedad\t: \tstring\n\tllaveTipoNovedad\t: \tstring\n\teliminarPuesto\t: \tstring\n\tcontratacion\t: \tstring\n\tinstitucion\t: \tnumber\n \t\n\tresponde\t: \tstring\n\tnombreResponde\t: \tstring\n\tsolicita\t: \tnumber\n \t\n\taccionIngreso\t: \tstring\n\tnumeroPuesto\t: \tnumber\n\tnumeroPuestoAntes\t: \tnumber\n\tdepende\t: \tstring\n\tfechaLegaliza\t: \tDate\n\tnombreTiempoSitio: string;\n\tfechaFinalBusqueda: Date;\n\tfechaInicioBusqueda: Date;\n\tpersona: string;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class UnidadUsuarioModel extends UnionModel {\n\n\tunidad: string;\n\tnombreUnidad: string;\n\tempresa: number;\n\tcomodinBusqueda: string;\n\testado: string;\n\tsucursal: string;\n\tdepende: string;\n\trelacion: string;\n\tlogin: string;\n\trol: string;\n\t\n}\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { CargoModel } from '../../../modules/talento/models/CargoModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { forkJoin } from 'rxjs';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Component({\n    selector: 'app-input-helper-seleccion-cargo',\n    templateUrl: './input-helper-seleccion-cargo.component.html',\n    styleUrls: ['./input-helper-seleccion-cargo.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionCargoComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperSeleccionCargoComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() empresa: number;\n\n  @Input() unidad: string;\n\n  @Input() estado: string;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() header: string = '';\n\n  filters = [];\n\n  listaCargo:  CargoModel[] = [];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: CargoModel;\n\n  paginator={rows:10, totalRecords: 0};\n\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.crearFiltros();\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n\n  openDataTable() {\n    this.showDialog = true;\n    this.loadData({});\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n  }\n\n  deleteSelection(){\n    this.dataSelected = new CargoModel();\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  crearFiltros(){\n    this.filters = [\n\n      {\n        field: 'comodinBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      }]\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.cargo;\n    this.label = this.dataSelected.cargo + \" - \" + this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.dataSelected.valorPopup = this.dataSelected.cargo;\n    this.dataSelected.descripcionPopup = this.dataSelected.cargo + ':' + this.dataSelected.descripcion;\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  loadData(event) {\n    const objeto: CargoModel = new CargoModel();\n  \n    // Asignación de 'empresa'\n    objeto.empresa = this.empresa || Number(this.authService.getTokenKey('numeroEmpresa'));\n \n  \n    // Asignación de 'unidad' y 'estado' si están definidos\n    if (this.unidad != null) {\n      objeto.unidad = this.unidad;\n    }\n    objeto.estado = this.estado? this.estado :Constantes.CONSTANTE_SI;\n  \n    // Asignación de 'comodinBusqueda'\n    const comodinBusqueda = event.filters?.comodinBusqueda?.value;\n    if (comodinBusqueda != null) {\n      objeto.comodinBusqueda = comodinBusqueda ? `%${comodinBusqueda}%` : null;\n    }\n    \n    // Asignación de paginación\n    objeto.paginacionRegistroInicial = event.first;\n    objeto.paginacionRegistroFinal = event.rows;\n  \n    // Creación del modelo general\n    const general = new GeneralModel('CargoDTO', null, false, objeto);\n   // Uso de 'forkJoin' para ejecutar las peticiones en paralelo\n    forkJoin({\n    listaCargo: this.generalService.queryForList(general),\n    totalRecords: this.generalService.cantidadRegistros(general)\n  }).subscribe({\n    next: ({ listaCargo, totalRecords }) => {\n      this.listaCargo = listaCargo;\n      this.paginator.totalRecords = totalRecords;\n    },\n    error: (error) => {\n      // Manejo de errores\n      console.error('Error al cargar los datos:', error);\n      // Puedes agregar aquí notificaciones al usuario o acciones de recuperación\n    },\n    complete: () => {\n      // Opcionalmente, puedes manejar la finalización de las operaciones aquí\n    }\n  });\n}\n  \n\n}\n","<div #field [class]=\"booleano ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText disabled [value]=\"label\" [required]=\"booleano\" />\n    <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\"\n      class=\"p-button-icon-only clear unico\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n    <label>{{header}}</label>\n  </span>\n</div>\n\n<p-dialog header=\"{{'cargo' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n  (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw', '1024px': '60vw'}\" [style]=\"{ width: '50vw'}\"\n  [draggable]=\"false\" [resizable]=\"false\">\n\n  <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n    <!-- Filtro-->\n    <app-filtro-general (onHide)=\"showDialog\" [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" id=\"comodinBusqueda\" formControlName=\"comodinBusqueda\"\n                autocomplete=\"off\" />\n              <label for=\"comodinBusqueda\">{{'filtro' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n  <p-table #tablaGeneral dataKey=\"cargo\" [value]=\"listaCargo\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n    [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n    [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\" [lazy]=\"true\" (onLazyLoad)=\"loadData($event)\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" (onRowSelect)=\"onRowSelect()\">\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    <ng-template pTemplate=\"header\">\n      <tr>\n        <th style=\"width: 10%;\">{{\"cargo\" | translate}}</th>\n        <th style=\"width: 30%;\">{{\"descripcion\" | translate}}</th>\n        <th style=\"width: 10%;\">{{\"nivelcargo\" | translate}}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-cargo>\n      <tr [pSelectableRow]=\"cargo\">\n        <td style=\"width: 10%;\">{{cargo.cargo}}</td>\n        <td style=\"width: 30%;\">{{cargo.descripcion}}</td>\n        <td style=\"width: 10%;\">{{cargo.nivelCargo}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralModel, UtilsService } from 'general-library-union';\nimport { CentroCostoModel } from '../../../../compensacion/models/CentroCostoModel';\nimport { UbicacionFisicaModel } from '../../../../compensacion/models/UbicacionFisicaModel';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { SelectListCompensa } from '../../../../compensacion/services/select-list-compensa.service';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { UnidadOrganizacionalModel } from '../../../../talento/models/UnidadOrganizacionalModel';\nimport { ActoAusenciaModel } from '../../../models/ActoAusenciaModel';\nimport { ActoCambioEmpleadoModel } from '../../../models/ActoCambioEmpleadoModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputHelperSeleccionUbicacionFisicaComponent } from '../../../../../shared/componentes/input-helper-seleccion-ubicacion-fisica/input-helper-seleccion-ubicacion-fisica.component';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperSeleccionCargoComponent } from '../../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { NgIf } from '@angular/common';\nimport { InputHelperPlantaLiderComponent } from '../../../../../shared/componentes/input-helper-planta-lider/input-helper-planta-lider.component';\n\n@Component({\n    selector: 'app-info-datos-planta',\n    templateUrl: './info-datos-planta.component.html',\n    styleUrls: ['./info-datos-planta.component.scss'],\n    standalone: true,\n    imports: [NgIf, InputHelperUnidadComponent, InputHelperSeleccionCargoComponent, DropdownModule, FormsModule, InputHelperSeleccionZonaCentroComponent, InputHelperSeleccionUbicacionFisicaComponent, InputNumberModule, ButtonDirective, Ripple, TranslateModule, InputHelperPlantaLiderComponent]\n})\nexport class InfoDatosPlantaComponent implements OnInit {\n\n\tpublic actoCambioEmpleadoBorrarDTO: ActoCambioEmpleadoModel;\n\tpublic LLAVE_BASE: string;\n\tpublic listadoVinculacion: any[];\n\tpublic listadoTurno: any[];\n\tpublic listadoClasificacion: any[];\n\tpublic listadoTipoPeriodo: any[];\n\tpublic listaLineaCosto: any[];\n\tpublic listaDatosPlanta: FormatoDatoModel[] = [];\n\tpublic actoAusenciaDTO:ActoAusenciaModel;\n\tpublic verUnidadAdicional: boolean;\n\tpublic mostrarTotal: boolean;\n\tpublic mostrarPeriodo: boolean;\n\tpublic mostrarCosteo: boolean;\n\tpublic mostrarTurno: boolean;\n\tpublic mostrarVinculacion: boolean;\n\tpublic mostrarLinea: boolean;\n\tpublic mostrarCargo: boolean;\n\tpublic mostrarUbicacion: boolean;\n\tpublic mostrarObservacion: boolean; \n\tpublic mostrarClasificacion: boolean; \n\tpublic mostrarResponde: boolean;\n\tpublic mostrarSueldo: boolean;\n\tpublic mostrarUnidad: boolean;\n\tpublic bloquearTotal: boolean;\n\tpublic bloquearPeriodo: boolean;\n\tpublic bloquearCosteo: boolean;\n\tpublic bloquearTurno: boolean;\n\tpublic bloquearVinculacion: boolean;\n\tpublic bloquearLinea: boolean;\n\tpublic bloquearCargo: boolean;\n\tpublic bloquearUbicacion: boolean;\n\tpublic bloquearSueldo: boolean;\n\tpublic bloquearUnidad: boolean;\n\tpublic bloquearObservacion: boolean; \n\tpublic bloquearClasificacion: boolean; \n\tpublic bloquearResponde;\n\t\n\tpublic eventoActosEjecutar: string;\n\tpublic noMostrarRegresar: boolean;\n\tpublic accion: string;\n\tpublic etapa: string;\n\tpublic ocultarBotones: boolean;\n\tpublic validarPuestoTrabajo: boolean = false;\n\n\t@Output() regresar: EventEmitter<any> = new EventEmitter();\n\t@Output() continuar: EventEmitter<any> = new EventEmitter();\n\t@Output() salir: EventEmitter<any> = new EventEmitter();\n\t\n  \tconstructor(private generalService: GeneralService,\n\t\t\t\tpublic utilsService: UtilsService,\n    \t        private parametroFormatoPipe: ParametroFormatoPipe,\n        \t    private selectListCompensa: SelectListCompensa) {}\n\n\tngOnInit(): void {\n\t\tthis.selectListCompensa.getListadoVinculacionLaboral().then(data => {this.listadoVinculacion = data});\n\t\tthis.selectListCompensa.getListadoTurno().then(data => {this.listadoTurno = data});\n\t\tthis.selectListCompensa.getListaRolesSinParametro().then(data => {this.listadoClasificacion = data});\n\t\tthis.selectListCompensa.getListadoTipoPeriodo().then(data => {this.listadoTipoPeriodo = data});\n\t\tthis.selectListCompensa.getListaLineaCosto().then(data => {this.listaLineaCosto = data});\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel();\n\t\tthis.listaDatosPlanta = []\n\t\tthis.ocultarBotones=false;\n\t}\n\t\t\n\tasignaDatosDefecto(){\n\t\t//antes de asiganar los datos que van por defecto, asignamos las variables a mostrar\n\t\t\n\t\tthis.mostrarCargo = false;\n\t\tthis.mostrarTotal = false;\n\t\tthis.mostrarResponde = false;\n\t\tthis.mostrarPeriodo = false;\n\t\tthis.mostrarCosteo = false;\n\t\tthis.mostrarTurno = false;\n\t\tthis.mostrarVinculacion = false;\n\t\tthis.mostrarLinea = false;\n\t\tthis.mostrarUbicacion = false;\n\t\tthis.mostrarSueldo = false;\n\t\tthis.mostrarUnidad = false;\n\t\tthis.mostrarObservacion = false;\n\t\tthis.mostrarClasificacion = false;\n\t\t\n\t\tthis.bloquearCargo=false;\n\t\tthis.bloquearTotal=false;\n\t\tthis.bloquearResponde = false;\n\t\tthis.bloquearPeriodo = false;\n\t\tthis.bloquearCosteo = false;\n\t\tthis.bloquearTurno = false;\n\t\tthis.bloquearVinculacion = false;\n\t\tthis.bloquearLinea = false;\n\t\tthis.bloquearUbicacion = false;\n\t\tthis.bloquearSueldo = false;\n\t\tthis.bloquearUnidad = false;\n\t\tthis.bloquearObservacion = false;\n\t\tthis.bloquearClasificacion = false;\n\n\t\tthis.listaDatosPlanta.forEach(dto => {\n\t\t\tif ( dto.campo == null || dto.accion == null ){\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( dto.accion == (this.parametroFormatoPipe.INGRESARE) || dto.accion == (this.parametroFormatoPipe.VISUALIZAR)) {\n\t\t\t\tswitch (dto.campo.trim()) {\n\t\t\t\tcase this.parametroFormatoPipe.CARGO:\n\t\t\t\t\tthis.mostrarCargo=true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.TOTAL:\n\t\t\t\t\tthis.mostrarTotal=true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.PERIODO:\n\t\t\t\t\tthis.mostrarPeriodo = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.COSTEO:\n\t\t\t\t\tthis.mostrarCosteo = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.TURNO:\n\t\t\t\t\tthis.mostrarTurno = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.VINCULACION:\n\t\t\t\t\tthis.mostrarVinculacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.LINEA:\n\t\t\t\t\tthis.mostrarLinea = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.UBICACION:\n\t\t\t\t\tthis.mostrarUbicacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.SUELDO:\n\t\t\t\t\tthis.mostrarSueldo = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.UNIDAD:\n\t\t\t\t\tthis.mostrarUnidad = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.OBSERVACION:\n\t\t\t\t\tthis.mostrarObservacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.CLASIFICACION:\n\t\t\t\t\tthis.mostrarClasificacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.CLASIFICACIONTITULAR:\n\t\t\t\t\tthis.mostrarClasificacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.PUESTO_RESPONDE:\n\t\t\t\t\tthis.mostrarResponde = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || dto.accion != (this.parametroFormatoPipe.INGRESARE)) {\n\t\t\t\tswitch (dto.campo.trim()) {\n\t\t\t\tcase this.parametroFormatoPipe.CARGO:\n\t\t\t\t\tthis.bloquearCargo=true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.TOTAL:\n\t\t\t\t\tthis.bloquearTotal=true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.PERIODO:\n\t\t\t\t\tthis.bloquearPeriodo = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.COSTEO:\n\t\t\t\t\tthis.bloquearCosteo = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.TURNO:\n\t\t\t\t\tthis.bloquearTurno = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.VINCULACION:\n\t\t\t\t\tthis.bloquearVinculacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.LINEA:\n\t\t\t\t\tthis.bloquearLinea = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.UBICACION:\n\t\t\t\t\tthis.bloquearUbicacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.SUELDO:\n\t\t\t\t\tthis.bloquearSueldo = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.UNIDAD:\n\t\t\t\t\tthis.bloquearUnidad = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.OBSERVACION:\n\t\t\t\t\tthis.bloquearObservacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.CLASIFICACION:\n\t\t\t\t\tthis.bloquearClasificacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.CLASIFICACIONTITULAR:\n\t\t\t\t\tthis.bloquearClasificacion = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase this.parametroFormatoPipe.PUESTO_RESPONDE:\n\t\t\t\t\tthis.bloquearResponde=true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t}\n\t\t})\n\n\t}\n\t\n\tverPopupCargo() {\n\t\t\n\t\t\t//getBean(PopupCargo.class).buscar('#{infoDatosPlantaBean.regresarCargo}', actoCambioEmpleadoBorrarDTO.Empresa());\n\t\t\n\t\treturn null;\n\t}\n\t\n\tsetRegresarCargo(cargoDTO: CargoModel){\n\t\tthis.actoCambioEmpleadoBorrarDTO.cargo = cargoDTO.cargo;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCargo = cargoDTO.cargo+' : '+cargoDTO.descripcion;\n\t}\n\n\n\tverPopupUnidad(event) {\n\t\t\n\t\t//\tgetBean(PopupUnidadUsuarioBean.class).buscar('#{infoDatosPlantaBean.regresarUnidad}', actoCambioEmpleadoBorrarDTO.Empresa(), false);\n\t\t\n\t\treturn null;\n\t}\n\t\n\tsetRegresarUnidad(unidadUsuarioDTO: UnidadUsuarioModel){\n\t\tthis.actoCambioEmpleadoBorrarDTO.unidad = unidadUsuarioDTO.unidad;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUnidad = unidadUsuarioDTO.nombreUnidad;\n\t}\n\n\tsetZonaCentro(centroCostoDTO: CentroCostoModel){\n\t\tif(centroCostoDTO != null){\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.zonaEconomica = centroCostoDTO.zonaEconomica;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica = centroCostoDTO.descripcionZona;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.centroCostro = centroCostoDTO.centroCosto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCentroCosto = centroCostoDTO.descripcion;\n\t\t}\t\t\n\t}\n\tverPopupZonaCentro(){\n\t\t\t\t\t\n\t\t\t//getBean(PopupZonaCentro.class).buscar('infoDatosPlantaBean.zonaCentro', actoCambioEmpleadoBorrarDTO.Empresa());\n\t\t\n\t\treturn null;\n\t}\n\tsetUbicacion(ubicacionFisicaDTO:UbicacionFisicaModel){\n\t\tif(ubicacionFisicaDTO != null){\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.ubicacionFis = ubicacionFisicaDTO.ubicacionFisica;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUbicacionFis = ubicacionFisicaDTO.descripcion;\n\t\t}\n\t}\t\t\n\tverPopupUbicacion(){\n\t\t\t\t\t\n\t\t\t//getBean(PopupUbicacionFisica.class).buscar('#{infoDatosPlantaBean.ubicacion}');\n\t\t\n\t\treturn null;\n\t}\n\t\n\tasync cargarDescripciones() {\n\t\tif(this.actoCambioEmpleadoBorrarDTO != null){\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.cargo != null){\n\t\t\t\tvar cargoDTO = new CargoModel();\n\t\t\t\tcargoDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t\t\tcargoDTO.cargo = this.actoCambioEmpleadoBorrarDTO.cargo;\n\t\t\t\tcargoDTO = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, cargoDTO)).toPromise();\n\t\t\t\tif(cargoDTO != null){\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCargo = cargoDTO.descripcion// + ' - ' + cargoDTO.nivelCargo;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.unidad != null) {\n\t\t\t\tlet unidadDTO = new UnidadOrganizacionalModel();\n\t\t\t\tunidadDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t\t\tunidadDTO.unidad = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\t\t\tunidadDTO = await this.generalService.queryForObject(new GeneralModel('UnidadOrganizacionalDTO', null, false, unidadDTO)).toPromise();\n\t\t\t\tif(unidadDTO != null){\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUnidad = unidadDTO.nombreUnidad;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.centroCostro != null) {\n\t\t\t\tvar centroCostoDTO = new CentroCostoModel();\n\t\t\t\tcentroCostoDTO.zonaEconomica = this.actoCambioEmpleadoBorrarDTO.zonaEconomica;\n\t\t\t\tcentroCostoDTO.centroCosto = this.actoCambioEmpleadoBorrarDTO.centroCostro;\n\t\t\t\tcentroCostoDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t\t\tcentroCostoDTO = await this.generalService.queryForObject(new GeneralModel('CentroCostoDTO', null, false, centroCostoDTO)).toPromise();\n\t\t\t\tthis.setZonaCentro(centroCostoDTO);\n\t\t\t}\n\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.ubicacionFis != null) {\t\n\t\t\t\tvar ubicacionFisicaDTO = new UbicacionFisicaModel();\n\t\t\t\tubicacionFisicaDTO.ubicacionFisica = this.actoCambioEmpleadoBorrarDTO.ubicacionFis;\n\t\t\t\tubicacionFisicaDTO = await this.generalService.queryForObject(new GeneralModel('UbicacionFisicaDTO', null, false, ubicacionFisicaDTO)).toPromise();\n\t\t\t\tthis.setUbicacion(ubicacionFisicaDTO);\n\t\t\t}\n\t\t}\n\t}\n\t\n\tborrarRegistro(){\n\t\t//BORRAMOS EL REGITRO\n    this.generalService.delete(new GeneralModel('ActoCambioEmpleadoDTO', null, false, this.actoCambioEmpleadoBorrarDTO)).subscribe(data => {})\n\t}\n\n\tverPopupPlantaLider() {\n\t\t//getBean(PopupPlantaLiderBean.class).buscar('#{infoDatosPlantaBean.puestoSeleccionado}', actoCambioEmpleadoBorrarDTO.unidad, actoCambioEmpleadoBorrarDTO.Responde());\n\t\treturn null;\n\t}\n\n\tsetPuestoSeleccionado(dtoPt: PuestoTrabajoModel) {\n\t\tif (dtoPt != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.responde = dtoPt.llave;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.nombreResponde = dtoPt.nombreOcupa;\n\t\t\tif ( dtoPt.nombreOcupa == null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.nombreResponde = dtoPt.nombreCargo;\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t}\n\n\n\tlimpiar() {\n\t\tthis.actoCambioEmpleadoBorrarDTO.responde = null;\n\t\tthis.actoCambioEmpleadoBorrarDTO.nombreResponde = null;\n\t\treturn null;\n\t}\n\n\tvalidar() {\n\t\tvar valida: boolean = true;\t\t\n\t\t//valida &= Validador.validarEntero(actoCambioEmpleadoBorrarDTO.turno, 'form_actoIngreso:turno', true, 22);\n\t\t//valida &= Validador.validarEntero(actoCambioEmpleadoBorrarDTO.TipoPeriodo(), 'form_actoIngreso:tipop', true, 22);\n\t\t//valida &= Validador.validarEntero(actoCambioEmpleadoBorrarDTO.Vincula(), 'form_actoIngreso:vincula', true, 22);\n\t\t//valida &= Validador.validarTexto(actoCambioEmpleadoBorrarDTO.ZonaEconomica(), 'form_actoIngreso:zona', true, 8);\n\t\t//valida &= Validador.validarTexto(actoCambioEmpleadoBorrarDTO.LineaCosto(), 'form_actoIngreso:lineacosto', true, 8);\n\t\t//valida &= Validador.validarTexto(actoCambioEmpleadoBorrarDTO.UbicacionFis(), 'form_actoIngreso:ubicafisica', true, 32);\n\t\t//valida &= Validador.validarDecimal(actoCambioEmpleadoBorrarDTO.Sueldo(), 'form_actoIngreso:sueldo', true, 22,126);\n\t\t//valida &= Validador.validarDecimal(actoCambioEmpleadoBorrarDTO.Total(), 'form_actoIngreso:totalasig', true, 22,126);\n\t\t\n\t\treturn valida;\n\t}\n\n\tregresarAction(){\n\t\tthis.regresar.emit()\n\t}\n\n\tcontinuarAction(){\n\t\tthis.continuar.emit()\n\t}\n\n\tsalirAction(){\n\t\tthis.salir.emit()\n\t}\n\n\n  //en este metodo buscamos la descripcion de la vinculacion por medio de codigo\n\t//dentro del listado de selecItem de Vinculacion\n\t//esto se hizo con el objetivo de no mostrar un combo deshabilitado con la descripcion \n\t//de la vinculacion... (Se ve muy feo como el combo queda deshabilitado, y como los demas campos son textField, la apariencia de los combos)\n\t// con los textField son muy diferente, y se nota mucho la apariencia entre los dos.\n\t\n\t//esto mismo se hizo para turno, tipoPeriodo, y linea de costo\n\tgetDescripcionVinculacion(){\n\t\t var retorno;\n\t\tif(this.listadoVinculacion == null || this.listadoVinculacion.length == 0 || this.actoCambioEmpleadoBorrarDTO.vincula == null){\n\t\t\treturn '';\n\t\t}\n\t\tvar vincula = this.actoCambioEmpleadoBorrarDTO.vincula;\n\t\tthis.listadoVinculacion.forEach(item =>  {\n\t\t\t\n\t\t\t\tif(item.value != null && item.value == vincula){\n\t\t\t\t\tretorno = item.label;\n\t\t\t\t}\n\t\t})\n\t\t\n\t\treturn retorno;\n\t}\n\tgetDescripcionTurno(){\n    var retorno;\n\t\tif(this.listadoTurno == null || this.listadoTurno.length == 0 || this.actoCambioEmpleadoBorrarDTO.turno == null){\n\t\t\tretorno = '';\n\t\t}\n\t\tvar turno = this.actoCambioEmpleadoBorrarDTO.turno;\n\t\tthis.listadoTurno.forEach(item => {\n\t\t\t\n\t\t\t\tif(item.value != null && item.value.equals(turno)){\n\t\t\t\t\tretorno = item.label;\n\t\t\t\t}\n\t\t})\n\n\t\treturn retorno;\n\t}\n\n\t\n\tgetDescripcionClasificacion(){\n\t\tif(this.listadoClasificacion == null || this.listadoClasificacion.length == 0 || this.actoCambioEmpleadoBorrarDTO.clasificacion == null){\n\t\t\treturn ''\n\t\t}\n\t\tvar rolEmpleado = this.actoCambioEmpleadoBorrarDTO.clasificacion;\n\t\tthis.listadoClasificacion.forEach(item => {\n      if(item.value != null && item.value.equals(rolEmpleado)){\n        return item.label;\n      }\n\t\t})\n\t\treturn ''\t\n\t}\n  getDescripcionTipoPerido(){\n\t\tif(this.listadoTipoPeriodo == null || this.listadoTipoPeriodo.length == 0 || this.actoCambioEmpleadoBorrarDTO.tipoPeriodo == null){\n\t\t\treturn ''\n\t\t}\n\t\tvar tipoPeriodo = this.actoCambioEmpleadoBorrarDTO.tipoPeriodo;\n\t\tthis.listadoTipoPeriodo.forEach(item => {\n      if(item.value != null && item.value.equals(tipoPeriodo)){\n        return item.label;\n      }\n\t\t})\n\t\treturn ''\n\t}\n\n\tgetDescripcionLineaCosto(){\n\t\tif(this.listaLineaCosto == null || this.listaLineaCosto.length || this.actoCambioEmpleadoBorrarDTO.lineaCosto == null){\n\t\t\treturn ''\n\t\t}\n\t\tvar lineaCosto = this.actoCambioEmpleadoBorrarDTO.lineaCosto;\n\t\tthis.listaLineaCosto.forEach(item => {\n      if(item.value != null && item.value.equals(lineaCosto)){\n        return item.label;\n      }\n\t\t})\n\t\treturn ''\n\t}\n\n\n\tisMostrarPopupCargo() {\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == 'PT') {\n\t\t\treturn this.mostrarCargo || !this.bloquearCargo;\n\t\t}\n\t\t\n\t\treturn false;\n\t}\n\n\tisMostrarPopupUnidad() {\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == 'PT') {\n\t\t\treturn this.mostrarUnidad || !this.bloquearUnidad;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleEnterKey(event) {\n\t\tevent.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t}\n\t \n\n}\n","<div class=\"card\" *ngIf=\"mostrarUnidad || mostrarCargo || mostrarTurno || mostrarClasificacion || mostrarPeriodo || mostrarVinculacion || mostrarLinea || mostrarCosteo || mostrarUbicacion || mostrarSueldo || mostrarTotal\">\n    <!--UNIDAD ORGANIZACIONAL-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarUnidad\">\n        <app-input-helper-unidad [readonly]=\"!isMostrarPopupUnidad()\"\n            [label]=\"actoCambioEmpleadoBorrarDTO.descripcionUnidad == null ? '' : actoCambioEmpleadoBorrarDTO.descripcionUnidad\"\n            [booleano]=\"false\" (onSelected)=\"setRegresarUnidad($event)\"\n            [header]=\"('unidadorganizacional' | translate)+'*'\" [mostrarX]=\"true\"\n            (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n        </app-input-helper-unidad>\n    </div>\n\n    <!--CARGO-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarCargo\">\n        <app-input-helper-seleccion-cargo [readonly]=\"!isMostrarPopupCargo()\"\n            [label]=\"actoCambioEmpleadoBorrarDTO.descripcionCargo == null ? '' : actoCambioEmpleadoBorrarDTO.descripcionCargo\"\n            (onSelected)=\"setRegresarCargo($event)\" [mostrarX]=\"true\"\n            [header]=\"('cargo' | translate)+'*'\">\n        </app-input-helper-seleccion-cargo>\n    </div>\n\n    <!--TURNO-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarTurno\">\n        <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listadoTurno\"\n                [class]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.turno) ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.turno\" ></p-dropdown>\n            <label>{{'turno' | translate}}*</label>\n        </span>\n    </div>\n\n    <!--CLASIFICACION-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarClasificacion\">\n        <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listadoClasificacion\" [disabled]=\"bloquearClasificacion\" \n                [class]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.clasificacion) ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.clasificacion\" ></p-dropdown>\n            <label>{{'clasificacion' | translate}}*</label>\n        </span>\n    </div>\n\n    <!--TIPO PERIODO-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarPeriodo\">\n        <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listadoTipoPeriodo\" [disabled]=\"bloquearPeriodo\"\n                [class]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.tipoPeriodo) ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.tipoPeriodo\" ></p-dropdown>\n            <label>{{'tipoperiodo' | translate}}*</label>\n        </span>\n    </div>\n\n    <!--VINCULACION-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarVinculacion\">\n        <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listadoVinculacion\" [disabled]=\"bloquearVinculacion\"\n                [class]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.vincula) ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.vincula\" ></p-dropdown>\n            <label>{{'vinculacion' | translate}}*</label>\n        </span>\n    </div>\n\n    <!--LINEA COSTO-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarLinea\">\n        <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listaLineaCosto\" [disabled]=\"bloquearLinea\"\n                [class]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.lineaCosto) ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.lineaCosto\" ></p-dropdown>\n            <label>{{'lineacosto' | translate}}*</label>\n        </span>\n    </div>\n\n    <!--ZONA ECONOMICA-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarCosteo\">\n        <app-input-helper-seleccion-zona-centro [readonly]=\"bloquearCosteo\" [showDialog]=\"false\"\n            [booleano]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.zonaEconomica)\"\n            [label]=\"actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica  == null ? '' : actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica + '/' + actoCambioEmpleadoBorrarDTO.descripcionCentroCosto\"\n            [labelIntput]=\"'zonaeconomica' | translate\" (onSelected)=\"setZonaCentro($event)\" [mostrarX]=\"true\"\n            (keydown.enter)=\"handleEnterKey($event)\" [mostrarZonaLabel]=\"true\">\n        </app-input-helper-seleccion-zona-centro>\n    </div>\n\n    <!--UBICACION FISICA-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarUbicacion\">\n        <app-input-helper-seleccion-ubicacion-fisica [readonly]=\"bloquearUbicacion\" [showDialog]=\"false\"\n            [booleano]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.ubicacionFis)\"\n            [label]=\"(actoCambioEmpleadoBorrarDTO.descripcionUbicacionFis != null ? actoCambioEmpleadoBorrarDTO.descripcionUbicacionFis : '')\"\n            (onSelected)=\"setUbicacion($event)\" [mostrarX]=\"true\">\n        </app-input-helper-seleccion-ubicacion-fisica>\n    </div>\n\n    <!--SUELDO-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarSueldo\">\n        <span class=\"p-float-label\">\n            <p-inputNumber [readonly]=\"bloquearSueldo\"\n                [class]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.sueldo) ? 'ng-invalid ng-dirty' : ''\"\n                [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.sueldo\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n            </p-inputNumber>\n            <label>{{'sueldo' | translate}}</label>\n        </span>\n    </div>\n\n    <!--TOTAL-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarTotal\">\n        <span class=\"p-float-label\">\n            <p-inputNumber [readonly]=\"bloquearTotal\"\n                [class]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.total) ? 'ng-invalid ng-dirty' : ''\"\n                [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.total\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n            </p-inputNumber>\n            <label>{{'total' | translate}}</label>\n        </span>\n    </div>\n    <!--RESPONDE-->\n    <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarResponde\">\n        <app-input-helper-planta-lider [readonly]=\"bloquearResponde\" [showDialog]=\"false\"\n            [booleano]=\"validarPuestoTrabajo && !utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.responde)\"\n            [label]=\"actoCambioEmpleadoBorrarDTO.nombreResponde  == null ? '' : actoCambioEmpleadoBorrarDTO.nombreResponde\"\n            [llaveUnidad]=\"actoCambioEmpleadoBorrarDTO.unidad\" [llavePuestoActual]=\"actoCambioEmpleadoBorrarDTO.responde\"\n            (onSelected)=\"setPuestoSeleccionado($event)\" [mostrarX]=\"true\" >\n        </app-input-helper-planta-lider>\n    </div>\n</div>\n\n\n<div class=\"flex justify-content-end\"  >\n    <!--<button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\"\n        label=\"{{'link_regresar' | translate}}\" icon=\"pi pi-chevron-left\" (click)=\"regresarAction()\">\n    </button>  -->\n    <button pButton pRipple class=\"ml-2 p-button-outlined\"\n        label=\"{{'link_continuar' | translate}}\" (click)=\"continuarAction()\" icon=\"glyphicons glyphicons-chevron-right\">\n    </button>\n    <!--<button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out p-2 pr-1\"\n        label=\"{{'link_salir' | translate}}\" (click)=\"salirAction()\">\n    </button>-->\n</div>\n","import { UnionModel } from 'general-library-union'\n\nexport class RolesModel extends UnionModel {\n\n\trol: string;\n\tdescripcion: string;\n\tempresa: number;\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService} from 'general-library-union';\nimport { ActoCambioEmpleadoModel } from '../models/ActoCambioEmpleadoModel';\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class ActoCambioEmpleadoService {\n  \n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  validaIngresoContratoTraslado(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/validaIngresoContratoTraslado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  conAntecesor(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/conAntecesor`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  buscarMensajeCambioSueldo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/buscarMensajeCambioSueldo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerActoIngreso(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/traerActoIngreso`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  ejecutarValidadorActosWS(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/ejecutarValidadorActosWS`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  elaborarActoCambio(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/elaborarActoCambio`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarActoCambio(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/legalizarActoCambio`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  borrarRegistroCambio(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/borrarRegistroCambio`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  consultarListaSoporteDocumento(general: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/consultarListaSoporteDocumento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerInformacionTabla(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/obtenerInformacionTabla`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  listaCampoActoCambioEml(): Observable<any> {\n    return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/listaCampoActoCambioEml`).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  listaCampoPerfilTablas(): Observable<any> {\n    return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/listaCampoPerfilTablas`).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  consultarListaParaCampoLegalizada(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/consultarListaParaCampoLegalizada`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  generarPdf(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/generarPdf`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  isVerificaExisteContrato(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/isVerificaExisteContrato`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  consultarListaAntecesorCambioEmpleadoPorAccion(general: any): Observable<any[]> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/consultarListaAntecesorCambioEmpleadoPorAccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  consultarListaAntecesorActoAusencia(general: any): Observable<any[]> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/consultarListaAntecesorActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  mostrarPuestoTrabajo(general: any): Observable<any[]> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/mostrarPuestoTrabajo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  registrarAnexoHojaActoCambio(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/registrarAnexoHojaActoCambio`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  validaIngresoContratoInterrupcion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/validaIngresoContratoInterrupcion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  validaIngresoContratoProrroga(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/validaIngresoContratoProrroga`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  validaIngresoContrato(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/validaIngresoContrato`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  listaCampoMovPlanta(): Observable<any> {\n    return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/listaCampoMovPlanta`).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarActoCambioEmpleado(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoCambioEmpleado/actualizarActoCambioEmpleado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  formatearActoCambioEmpleado(acto: ActoCambioEmpleadoModel): ActoCambioEmpleadoModel {\n    acto.fechaDocumento = acto.fechaDocumento ? new Date(acto.fechaDocumento) : null;\n    acto.fechaOficio = acto.fechaOficio ? new Date(acto.fechaOficio) : null;\n    acto.fechaSesion = acto.fechaSesion ? new Date(acto.fechaSesion) : null;\n    acto.comunicado = acto.comunicado ? new Date(acto.comunicado) : null;\n    acto.cambio = acto.cambio ? new Date(acto.cambio) : null;\n    acto.fechafinal = acto.fechafinal ? new Date(acto.fechafinal) : null;\n    acto.congela = acto.congela ? new Date(acto.congela) : null;\n    acto.enganche = acto.enganche ? new Date(acto.enganche) : null;\n    acto.disponibilidad = acto.disponibilidad ? new Date(acto.disponibilidad) : null;\n    acto.fechaLegaliza = acto.fechaLegaliza ? new Date(acto.fechaLegaliza) : null;\n    acto.fechaFinalBusqueda = acto.fechaFinalBusqueda ? new Date(acto.fechaFinalBusqueda) : null;\n    acto.fechaInicioBusqueda = acto.fechaInicioBusqueda ? new Date(acto.fechaInicioBusqueda) : null;\n    if (acto.empleadoDTO) {\n      acto.empleadoDTO.fechaIngreso = acto.empleadoDTO.fechaIngreso ? new Date(acto.empleadoDTO.fechaIngreso) : null;\n      acto.empleadoDTO.fechaRetiro = acto.empleadoDTO.fechaRetiro ? new Date(acto.empleadoDTO.fechaRetiro) : null;\n      acto.empleadoDTO.fechaEngache = acto.empleadoDTO.fechaEngache ? new Date(acto.empleadoDTO.fechaEngache) : null;\n      acto.empleadoDTO.fechaTermina = acto.empleadoDTO.fechaTermina ? new Date(acto.empleadoDTO.fechaTermina) : null;\n      acto.empleadoDTO.fechaProrroga = acto.empleadoDTO.fechaProrroga ? new Date(acto.empleadoDTO.fechaProrroga) : null;\n      acto.empleadoDTO.fechaVigencia = acto.empleadoDTO.fechaVigencia ? new Date(acto.empleadoDTO.fechaVigencia) : null;\n      acto.empleadoDTO.fechaLiquidacion = acto.empleadoDTO.fechaLiquidacion ? new Date(acto.empleadoDTO.fechaLiquidacion) : null;\n      acto.empleadoDTO.congela = acto.empleadoDTO.congela ? new Date(acto.empleadoDTO.congela) : null;\n      acto.empleadoDTO.fechaInicialRetiro = acto.empleadoDTO.fechaInicialRetiro ? new Date(acto.empleadoDTO.fechaInicialRetiro) : null;\n      acto.empleadoDTO.fechaFinalRetiro = acto.empleadoDTO.fechaFinalRetiro ? new Date(acto.empleadoDTO.fechaFinalRetiro) : null;\n      acto.empleadoDTO.fechaInicialIngreso = acto.empleadoDTO.fechaInicialIngreso ? new Date(acto.empleadoDTO.fechaInicialIngreso) : null;\n      acto.empleadoDTO.fechaFinalIngreso = acto.empleadoDTO.fechaFinalIngreso ? new Date(acto.empleadoDTO.fechaFinalIngreso) : null;\n      acto.empleadoDTO.fechaInicialTermina = acto.empleadoDTO.fechaInicialTermina ? new Date(acto.empleadoDTO.fechaInicialTermina) : null;\n      acto.empleadoDTO.fechaFinalTermina = acto.empleadoDTO.fechaFinalTermina ? new Date(acto.empleadoDTO.fechaFinalTermina) : null;\n      acto.empleadoDTO.fechaInicialEncargo = acto.empleadoDTO.fechaInicialEncargo ? new Date(acto.empleadoDTO.fechaInicialEncargo) : null;\n      acto.empleadoDTO.fechaFinalEncargo = acto.empleadoDTO.fechaFinalEncargo ? new Date(acto.empleadoDTO.fechaFinalEncargo) : null;\n      acto.empleadoDTO.fechaCambio = acto.empleadoDTO.fechaCambio ? new Date(acto.empleadoDTO.fechaCambio) : null;\n      acto.empleadoDTO.fechaPago = acto.empleadoDTO.fechaPago ? new Date(acto.empleadoDTO.fechaPago) : null;\n      acto.empleadoDTO.fechaNacimiento = acto.empleadoDTO.fechaNacimiento ? new Date(acto.empleadoDTO.fechaNacimiento) : null;\n      acto.empleadoDTO.fechaAdicionado = acto.empleadoDTO.fechaAdicionado ? new Date(acto.empleadoDTO.fechaAdicionado) : null;\n      acto.empleadoDTO.fechaModificado = acto.empleadoDTO.fechaModificado ? new Date(acto.empleadoDTO.fechaModificado) : null;\n    }\n    return acto;\n  }\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { ActoCambioEmpleadoModel } from '../../../models/ActoCambioEmpleadoModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { SelectListCompensa } from '../../../../compensacion/services/select-list-compensa.service';\nimport { ClasificacionModel } from '../../../../compensacion/models/ClasificacionModel';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { AuthService, CargarControlFuncionalidadService, ToastService, UtilsService } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { CentroCostoModel } from '../../../../compensacion/models/CentroCostoModel';\nimport { UbicacionFisicaModel } from '../../../../compensacion/models/UbicacionFisicaModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputHelperPlantaLiderComponent } from '../../../../../shared/componentes/input-helper-planta-lider/input-helper-planta-lider.component';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputHelperSeleccionUbicacionFisicaComponent } from '../../../../../shared/componentes/input-helper-seleccion-ubicacion-fisica/input-helper-seleccion-ubicacion-fisica.component';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { NgFor, NgIf } from '@angular/common';\nimport { PopupSeguimientoComponent } from '../../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\n\n@Component({\n    selector: 'app-actos-datos-puesto',\n    templateUrl: './actos-datos-puesto.component.html',\n    styleUrls: ['./actos-datos-puesto.component.scss'],\n    standalone: true,\n    imports: [NgFor, NgIf, FormsModule, InputTextModule, DropdownModule, InputHelperSeleccionZonaCentroComponent, InputHelperSeleccionUbicacionFisicaComponent, InputNumberModule, InputHelperPlantaLiderComponent, CheckboxModule, ButtonDirective, Ripple, TranslateModule, PopupSeguimientoComponent]\n})\nexport class ActosDatosPuestoComponent implements OnInit {\n\n  public actoCambioEmpleadoDTO: ActoCambioEmpleadoModel = new ActoCambioEmpleadoModel();\n\tpublic listaDatosPlanta: FormatoDatoModel[] = [];\n\tpublic listadoTurno: any[] = [];\n\tpublic listadoClasificacion: any[] = [];\n\tpublic listadoTipoPeriodo: any[] = [];\n\tpublic listaLineaCosto: any[] = [];\n\tpublic listadoVinculacion: any[] = [];\n\tpublic llaveBase: string;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n\tpublic seguimiento: boolean;\n\tpublic mostrarBotones: boolean = true;\n\tpublic llaveSeguimiento: string;\n\tpublic mostrarPopupSeguimiento: boolean = false;\n\n  constructor(private selectListCompensa: SelectListCompensa,\n              private utilsService: UtilsService,\n              private notificacionesService: ToastService,\n              private saraAplicacionService: SaraAplicacionService,\n              private authService: AuthService,\n              private generalPipe: GeneralPipe,\n              private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              private parametroFormatoPipe: ParametroFormatoPipe) { }\n\n  ngOnInit(): void {\n  }\n\n  private async cargarListas() {\n\t\tthis.listadoTurno = await this.selectListCompensa.getListadoTurno();\n\t\tthis.listadoTipoPeriodo = await this.selectListCompensa.getListadoTipoPeriodoPorModo();\n\t\tthis.listaLineaCosto = await this.selectListCompensa.getListaLineaCosto();\n\t\tthis.listadoVinculacion = await this.selectListCompensa.getListadoVinculacionLaboral();\n\t\tthis.listadoClasificacion = await this.selectListCompensa.getListaRoles(new ClasificacionModel());\n\t}\n\t\n\t\n\tpublic mostrarDato(acto: ActoCambioEmpleadoModel, lista: FormatoDatoModel[], llaveBase: string, destino: string) {\n\t\tthis.seguimiento = false;\n    this.mostrarBotones = this.utilsService.isBlank(destino) ? false : true;\n\t\t//this.Destino(destino);\n\t\tthis.llaveBase = llaveBase;\n\n\t\tthis.actoCambioEmpleadoDTO = acto;\n\t\tthis.listaDatosPlanta = [];\n\t\t//this.actoCambioEmpleadoDTO.descripcionCargo = this.actoCambioEmpleadoDTO.descripcionCargo ? this.actoCambioEmpleadoDTO.descripcionCargo : this.actoCambioEmpleadoDTO.cargoNombre;\n\t\t//this.actoCambioEmpleadoDTO.descripcionCentroCosto = this.actoCambioEmpleadoDTO.descripcionCentroCosto ? this.actoCambioEmpleadoDTO.centroCostro.trim() + ' - ' + this.actoCambioEmpleadoDTO.descripcionCentroCosto : '';\n\t\tlista.forEach(formatoDatoDTO => {\n\t\t\tif ( formatoDatoDTO.accion == null ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.accion == (this.parametroFormatoPipe.INGRESARE) || formatoDatoDTO.accion == (this.parametroFormatoPipe.VISUALIZAR)) {\n\t\t\t\tvar base = Object.assign({}, formatoDatoDTO);\n\t\t\t\tif ( destino == null) {\n\t\t\t\t\tbase.accion = this.parametroFormatoPipe.VISUALIZAR;\n\t\t\t\t}\n\t\t\t\tbase.campo = base.campo.trim();\n\t\t\t\tthis.listaDatosPlanta.push(base);\n\t\t\t\tif ( base.campo == ('COSTEO')) {\n\t\t\t\t\tvar adicional = Object.assign({}, base);\n\t\t\t\t\tadicional.campo = 'CENTRO';\n\t\t\t\t\tthis.listaDatosPlanta.push(adicional);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n    this.cargarListas().then(data => {});\n\t}\n\t\n\tpublic regresarAction() {\n\t\tthis.regresar.emit({destino: 'regresar'});\n    this.mostrarBotones = false;\n\t}\n\n\tpublic async continuarAction() {\n\t\tif ( !this.validar()) {\n\t\t\tthis.notificacionesService.showWarning('Faltan campos obligatorios');\n\t\t\treturn;\n\t\t}\n\t\tthis.llaveSeguimiento = null;\n\t\tif (this.seguimiento) {\n\t\t\tthis.llaveSeguimiento = this.utilsService.generarLlave();\n\t\t}\n\t\ttry {\n\t\t\tthis.actoCambioEmpleadoDTO.estadoNumero = 0;\n\t\t\tthis.actoCambioEmpleadoDTO.solicita = await this.saraAplicacionService.getCedula();\n\t\t\tvar actoCopia = Object.assign({}, this.actoCambioEmpleadoDTO);\n\t\t\tvar acto = await this.actoCambioEmpleadoService.elaborarActoCambio({actoCambio: this.actoCambioEmpleadoDTO, usuario: this.authService.getTokenKey('usuario') , llaveBase: this.llaveBase, seguimiento: this.llaveSeguimiento}).toPromise();\n\t\t\t\n\t\t\tthis.actoCambioEmpleadoDTO = Object.assign({}, acto);\n\t\t\tconsole.log('continuaraction')\n\t\t\tconsole.log(this.actoCambioEmpleadoDTO)\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionCargo = actoCopia.descripcionCargo;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionCentroCosto = actoCopia.descripcionCentroCosto;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionLineaCosto = actoCopia.descripcionLineaCosto;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionUbicacionFis = actoCopia.descripcionUbicacionFis;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionUnidad = actoCopia.descripcionUnidad;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionZonaEconomica = actoCopia.descripcionZonaEconomica;\n\t\t\tthis.actoCambioEmpleadoDTO.nombreResponde = actoCopia.nombreResponde;\n\n\t\t\tif ( this.llaveSeguimiento != null ) {\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actosDatosPuestoBean.cierreSeguimientoElabora}');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.setCierreSeguimientoElabora(null);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthis.borrarRegistro();\n\t\t}\n\t}\n\n\tpublic async borrarRegistro(){\n\t\t//BORRAMOS EL REGITRO\n    if(this.actoCambioEmpleadoDTO != null){\n      await this.actoCambioEmpleadoService.borrarRegistroCambio({llave: this.actoCambioEmpleadoDTO.llave}).toPromise();\n    }\n\t}\n\n\tpublic setCierreSeguimientoElabora(objeto: string){\n\t\tif(this.utilsService.isNotBlank(this.actoCambioEmpleadoDTO.mensaje)){\n\t\t\tthis.notificacionesService.showWarning(this.actoCambioEmpleadoDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\t\tvar actosCambioEmpleadosWrapper = {retorno: 'continuar',\n\t\tactoCambioEmpleadoDTO: this.actoCambioEmpleadoDTO};\n\t\tthis.regresar.emit(actosCambioEmpleadosWrapper);\n    this.mostrarBotones = false;\n\t}\n\t\t\n\tpublic salirAction() {\n\t\t//ActosCambioEmpleadosWrapper actosCambioEmpleadosWrapper  = new ActosCambioEmpleadosWrapper();\n\t\t//actosCambioEmpleadosWrapper.Retorno('salir');\n\t  this.regresar.emit({retorno: 'salir'});\n\t\t//return null;\n\t}\n\t\n\t\n\tpublic verPopupPlantaLider() {\n\t\t//getBean(PopupPlantaLiderBean.class).buscar('#{actosDatosPuestoBean.puestoSeleccionado}', actoCambioEmpleadoDTO.Unidad(), actoCambioEmpleadoDTO.Responde());\n\t\t//return null;\n\t}\n\n\tpublic setPuestoSeleccionado(dtoPt: PuestoTrabajoModel) {\n\t\tif (dtoPt != null) {\n\t\t\tthis.actoCambioEmpleadoDTO.responde = dtoPt.llave;\n\t\t\tthis.actoCambioEmpleadoDTO.nombreResponde = dtoPt.nombreOcupa;\n\t\t}\n\t}\n\n\tprivate validar() {\n\t\tvar valida: boolean = true;\n\t\tvar mensaje: boolean;\n\t\tthis.listaDatosPlanta.forEach(formatoDatoDTO => {\n\t\t\tmensaje = true;\n\t\t\tif ( formatoDatoDTO.accion == null ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.accion == (this.parametroFormatoPipe.VISUALIZAR) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.TURNO)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.turno);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.CLASIFICACION)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.clasificacion);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.PERIODO)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.tipoPeriodo);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.VINCULACION)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.vincula);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.COSTEO)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.zonaEconomica);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.LINEA)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.lineaCosto);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.UBICACION)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.ubicacionFis);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.SUELDO) || formatoDatoDTO.campo == (this.parametroFormatoPipe.NEGOCIACION)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.sueldo);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( formatoDatoDTO.campo == (this.parametroFormatoPipe.TOTAL)) {\n\t\t\t\tmensaje = this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoDTO.total);\n\t\t\t\tif(!mensaje){\n\t\t\t\t\tformatoDatoDTO.mensaje = this.generalPipe.SI;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalida = valida && mensaje;\n\t\t})\n\t\treturn valida;\n\t}\n\n\n\tpublic setZonaCentro(centroCostoDTO: CentroCostoModel){\n\t\tif(centroCostoDTO != null){\n\t\t\tthis.actoCambioEmpleadoDTO.zonaEconomica = centroCostoDTO.zonaEconomica;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionZonaEconomica = centroCostoDTO.descripcionZona;\n\t\t\tthis.actoCambioEmpleadoDTO.centroCostro = centroCostoDTO.centroCosto;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionCentroCosto = centroCostoDTO.descripcion;\n\t\t}\t\t\n\t}\n\n\tpublic setUbicacion(ubicacionFisicaDTO: UbicacionFisicaModel){\n\t\tif(ubicacionFisicaDTO != null){\n\t\t\tthis.actoCambioEmpleadoDTO.ubicacionFis = ubicacionFisicaDTO.ubicacionFisica;\n\t\t\tthis.actoCambioEmpleadoDTO.descripcionUbicacionFis = ubicacionFisicaDTO.descripcion;\n\t\t}\n\t}\t\t\n\n}\n","<div class=\"card pb-4\">\n    <div class=\"mt-3\">\n    <div class=\"p-fluid grid\" *ngFor=\"let dato of listaDatosPlanta\">\n        <!--Unidad Organizacional-->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'UNIDAD'\">\n            <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" [value]=\"actoCambioEmpleadoDTO.unidad?.trim() + ' - ' + actoCambioEmpleadoDTO.descripcionUnidad\" [readOnly]=\"true\" [disabled]=\"true\"\n                    [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\" autocomplete=\"off\" />\n                <label>{{'unidadorganizacional' | translate}}*</label>\n            </span>\n        </div>\n        <!--Cargo-->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'CARGO'\">\n            <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" [value]=\"actoCambioEmpleadoDTO.cargo?.trim() + ' - ' + actoCambioEmpleadoDTO.descripcionCargo\" [readOnly]=\"true\" [disabled]=\"true\"\n                    [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\" autocomplete=\"off\" />\n                <label>{{'cargo' | translate}}*</label>\n            </span>\n        </div>\n        <!--Turno-->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'TURNO'\">\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listadoTurno\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"dato.accion != 'S'\"\n                    [(ngModel)]=\"actoCambioEmpleadoDTO.turno\" ></p-dropdown>\n                <label>{{'turno' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Clasificación -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'CLASIFICACION'\">\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listadoClasificacion\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"dato.accion != 'S'\"\n                    [(ngModel)]=\"actoCambioEmpleadoDTO.clasificacion\" ></p-dropdown>\n                <label>{{'clasificacion' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Tipo Periodo -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'PERIODO'\">\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listadoTipoPeriodo\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"dato.accion != 'S'\"\n                    [(ngModel)]=\"actoCambioEmpleadoDTO.tipoPeriodo\" ></p-dropdown>\n                <label>{{'tipoperiodo' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Vinculación -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'VINCULACION'\">\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listadoVinculacion\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"dato.accion != 'S'\"\n                    [(ngModel)]=\"actoCambioEmpleadoDTO.vincula\" ></p-dropdown>\n                <label>{{'vinculacion' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Linea Costo -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'LINEA'\">\n            <span class=\"p-float-label\">\n                <p-dropdown [options]=\"listaLineaCosto\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"dato.accion != 'S'\"\n                    [(ngModel)]=\"actoCambioEmpleadoDTO.lineaCosto\" ></p-dropdown>\n                <label>{{'lineacosto' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Zona Economica -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'COSTEO'\">\n            <app-input-helper-seleccion-zona-centro [readonly]=\"dato.accion != 'S'\" [showDialog]=\"false\"\n                [booleano]=\"dato.mensaje == 'S'\" [mostrarZonaLabel]=\"true\" [mostrarZonaLabel]=\"false\"\n                [label]=\"actoCambioEmpleadoDTO.descripcionCentroCosto ? actoCambioEmpleadoDTO.centroCostro?.trim() + ' - ' + actoCambioEmpleadoDTO.descripcionCentroCosto : ''\"\n                [labelIntput]=\"'centrocosto' | translate\" (onSelected)=\"setZonaCentro($event)\" [mostrarX]=\"true\" >\n            </app-input-helper-seleccion-zona-centro>\n        </div>\n        <!-- Centro Costo -->   \n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'CENTRO'\">\n            <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" [value]=\"actoCambioEmpleadoDTO.descripcionZonaEconomica ? actoCambioEmpleadoDTO.zonaEconomica + ' - ' + actoCambioEmpleadoDTO.descripcionZonaEconomica : ''\" [readOnly]=\"true\" [disabled]=\"true\"\n                    autocomplete=\"off\" />\n                <label>{{'zonaeconomica' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Ubicacion Fisica -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'UBICACION'\">\n            <app-input-helper-seleccion-ubicacion-fisica [readonly]=\"dato.accion != 'S'\" [showDialog]=\"false\"\n                [label]=\"(actoCambioEmpleadoDTO.descripcionUbicacionFis != null ? actoCambioEmpleadoDTO.descripcionUbicacionFis : '')\"\n                (onSelected)=\"setUbicacion($event)\" [mostrarX]=\"true\" [booleano]=\"dato.mensaje == 'S'\">\n            </app-input-helper-seleccion-ubicacion-fisica>\n        </div>\n        <!-- Asignación -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'SUELDO' || dato.campo == 'NEGOCIACION'\">\n            <span class=\"p-float-label\">\n                <p-inputNumber [disabled]=\"dato.accion != 'S'\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                    [(ngModel)]=\"actoCambioEmpleadoDTO.sueldo\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n                </p-inputNumber>\n                <label>{{'asignacion' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Total -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'TOTAL'\">\n            <span class=\"p-float-label\">\n                <p-inputNumber [disabled]=\"dato.accion != 'S'\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                    [(ngModel)]=\"actoCambioEmpleadoDTO.total\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n                </p-inputNumber>\n                <label>{{'total' | translate}}*</label>\n            </span>\n        </div>\n        <!-- Responsable -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'RESPONDE'\">\n            <app-input-helper-planta-lider [readonly]=\"dato.accion != 'S'\" [showDialog]=\"false\"\n                [booleano]=\"dato.mensaje == 'S'\" [mostrarX]=\"dato.accion == 'S'\"\n                [label]=\"actoCambioEmpleadoDTO.nombreResponde  == null ? '' : actoCambioEmpleadoDTO.nombreResponde\"\n                [llaveUnidad]=\"actoCambioEmpleadoDTO.unidad\" [llavePuestoActual]=\"actoCambioEmpleadoDTO.responde\"\n                (onSelected)=\"setPuestoSeleccionado($event)\" [mostrarX]=\"true\" >\n            </app-input-helper-planta-lider>\n        </div>\n    </div>\n\n    <div class=\"p-fluid grid\" >\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <!-- check SEGUIMIENTO -->\n            <div class=\"flex justify-content-end\" *ngIf=\"mostrarBotones && controlFuncionService.getControlFuncionalidad('comseg:seguimiento')\">\n                <div class=\"flex align-items-center gap-1\">\n                    <p-checkbox class=\"mr-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                    <label>{{'seguimiento' | translate}}</label>\n                </div>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"flex justify-content-end\" *ngIf=\"mostrarBotones\">\n        <!--<button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\"\n            label=\"{{'link_regresar' | translate}}\" icon=\"pi pi-chevron-left\" (click)=\"regresarAction()\">\n        </button>-->\n        <button pButton pRipple class=\"ml-2 p-button-outlined\"\n            label=\"{{'link_continuar' | translate}}\" (click)=\"continuarAction()\" icon=\"glyphicons glyphicons-chevron-right\">\n        </button>\n        <button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out p-2 pr-1\"\n            label=\"{{'link_salir' | translate}}\" (click)=\"salirAction()\">\n        </button>\n    </div>\n</div>\n</div>\n\n@if (mostrarPopupSeguimiento) {\n    <app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\" \n        (regresar)=\"setCierreSeguimientoElabora($event)\"></app-popup-seguimiento>\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { PuestoTrabajoModel } from '../../../talento/models/PuestoTrabajoModel';\nimport { FormatoDatoModel } from '../../models/FormatoDatoModel';\nimport { ActoCambioEmpleadoModel } from '../../models/ActoCambioEmpleadoModel';\nimport { ActoCambioEmpleadoService } from '../../services/acto-cambio-empleado.service';\nimport { AuthService, EncriptadoBasicoService, ToastService, UtilsService, environment } from 'general-library-union';\nimport { ParametroFormatoPipe } from '../../../../shared/pipes/parametroFormato.pipe';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-seleccion-puesto',\n    templateUrl: './popup-seleccion-puesto.component.html',\n    styleUrls: ['./popup-seleccion-puesto.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, TranslateModule]\n})\nexport class PopupSeleccionPuestoComponent implements OnInit {\n\n  public listaPuestoTrabajoOcupa: PuestoTrabajoModel[]=[];\n\tpublic puestoSeleccionado: PuestoTrabajoModel;\n\tpublic listaCampos: FormatoDatoModel[];\n\tpublic actoBase: ActoCambioEmpleadoModel;\n  public showDialog: boolean;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  constructor(private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n              private notificacionesService: ToastService,\n              private utilsService: UtilsService,\n\t\t\t  private cargarArchivo: CargarArchivosService, \n\t\t\t  private authService: AuthService,\n\t\t\t  private encriptadoBasico: EncriptadoBasicoService,\n              private parametroFormatoPipe: ParametroFormatoPipe) { }\n\n  ngOnInit(): void {\n  }\n\n  public async traerPuesto(acto: ActoCambioEmpleadoModel, lista: FormatoDatoModel[]) {\n\t\t\tthis.listaCampos = lista;\n\t\t\tthis.actoBase=acto;\n      this.listaPuestoTrabajoOcupa = await this.actoCambioEmpleadoService.mostrarPuestoTrabajo({actoCambio: acto}).toPromise();\n\t\t\tthis.puestoSeleccionado = new PuestoTrabajoModel();\n\t\t\tthis.listaPuestoTrabajoOcupa.forEach(unPuesto => {\n\t\t\t\tif ( acto.llavePuesto != null) {\n\t\t\t\t\tif ( acto.llavePuesto == unPuesto.llave) {\n\t\t\t\t\t\tthis.puestoSeleccionado=unPuesto;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\tif ( this.listaPuestoTrabajoOcupa.length==0) {\n\t\t\t\tthis.notificacionesService.showWarning(\"No existen puesto de trabajo\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar caminoFoto;\n\t\t\tfor (const unPuesto of this.listaPuestoTrabajoOcupa) {\n\t\t\t\tcaminoFoto = null;\n\t\t\t\tif (unPuesto.cedulaOcupa != null) {\n\t\t\t\t  if (unPuesto.caminoFotoOcupa != null && unPuesto.caminoFotoOcupa != Constantes.ESPACIO_BLANCO) {\n\t\t\n\t\t\t\t\tlet propiedad = 'ruta_fotos';\n\t\t\t\t\tlet aplicacion = this.authService.getTokenKey('aplicacion')\n\t\t\t\t\ttry {\n\t\t\t\t\t  this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(unPuesto.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n\t\t\t\t\t\tconst reader = new FileReader();\n\t\t\t\t\t\treader.onload = () => {\n\t\t\t\t\t\t  const dataUrl = reader.result as string;\n\t\t\t\t\t\t  const base64 = dataUrl.split(',')[1];\n\t\t\t\t\t\t  unPuesto.caminoFotoTemporal = 'data:image/png;base64,' + base64\n\t\t\t\t\t\t};\n\t\t\t\t\t\treader.readAsDataURL(blob)\n\t\t\t\t\t  });\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t  unPuesto.caminoFotoTemporal = null;\n\t\t\t\t\t}\n\t\t\t\t  }\n\t\t\t\t}\n\t\t\n\t\t\t  }\n\t\t\tthis.mostrarPopup();\n\t}\n\n  mostrarPopup() {\n    this.showDialog = true;\n  }\n  \n  ocultarPopup() {\n    this.showDialog = false;\n  }\n\t\n\tpublic seleccionarPuesto() {\n\t\tif ( this.puestoSeleccionado.numeroPuesto == null) {\n\t\t\tthis.notificacionesService.showWarning(\"Puesto no selecccionado\");\n\t\t\treturn;\n\t\t}\n\t\tif ( this.actoBase.llavePuesto != null) {\n\t\t\tif ( this.actoBase.llavePuesto == this.puestoSeleccionado.llave) {\n\t\t\t\tthis.regresar.emit(\"ok\");\n        //FacesContext fc =  FacesContext.CurrentInstance();\n\t\t\t\t//fc.Application().createValueBinding(this.Destino()).Value(fc, \"ok\");\n\t\t\t\tthis.ocultarPopup();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.actoBase.llavePuesto = this.puestoSeleccionado.llave;\t\t\t\n\n\t\tthis.listaCampos.forEach(dato => {\n\t\t\tif (this.utilsService.isBlank(dato.campo) || this.utilsService.isBlank(dato.datoInicial) ){\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( dato.datoInicial == (this.parametroFormatoPipe.PUESTO_TRABAJO)) {\n\t\t\t\tif(dato.campo.trim() == (this.parametroFormatoPipe.TURNO)){\n\t\t\t\t\tthis.actoBase.turno = (this.puestoSeleccionado.turno);\n\t\t\t\t}\n\t\t\t\telse if(dato.campo.trim() == (this.parametroFormatoPipe.VINCULACION)){\n\t\t\t\t\tthis.actoBase.vincula = this.puestoSeleccionado.vinculacion;\n\t\t\t\t}\n\t\t\t\telse if(dato.campo.trim() == (this.parametroFormatoPipe.COSTEO)){\n\t\t\t\t\tthis.actoBase.centroCostro = this.puestoSeleccionado.centroCosto;\n\t\t\t\t\tthis.actoBase.zonaEconomica = this.puestoSeleccionado.zonaEconomica;\t\n\t\t\t\t\tthis.actoBase.descripcionCentroCosto = this.puestoSeleccionado.nombreCentro;\n\t\t\t\t\tthis.actoBase.descripcionZonaEconomica = this.puestoSeleccionado.nombreZonaEconomica;\t\n\t\t\t\t}\n\t\t\t\telse if(dato.campo.trim() == (this.parametroFormatoPipe.LINEA)){\n\t\t\t\t\tthis.actoBase.lineaCosto = this.puestoSeleccionado.lineaCosto;\n\t\t\t\t}\n\t\t\t\telse if(dato.campo.trim() == (this.parametroFormatoPipe.UBICACION)){\n\t\t\t\t\tthis.actoBase.ubicacionFis  = this.puestoSeleccionado.ubicacionFisica;\n\t\t\t\t\tthis.actoBase.descripcionUbicacionFis = this.puestoSeleccionado.nombreUbicacionFisica;\n\t\t\t\t}\n\t\t\t\telse if(dato.campo.trim() == (this.parametroFormatoPipe.PERIODO)){\n\t\t\t\t\tthis.actoBase.tipoPeriodo = this.puestoSeleccionado.tipoPeriodo;\n\t\t\t\t}\n\t\t\t\telse if(dato.campo.trim() == (this.parametroFormatoPipe.TOTAL)){\n\t\t\t\t\tthis.actoBase.total = this.puestoSeleccionado.asignacion;\n\t\t\t\t}\n\t\t\t\telse if(dato.campo.trim() == (this.parametroFormatoPipe.SUELDO)){\n\t\t\t\t\tthis.actoBase.sueldo = this.puestoSeleccionado.asignacion;\n\t\t\t\t}else if(dato.campo.trim() == (this.parametroFormatoPipe.CLASIFICACION)){\n\t\t\t\t\tthis.actoBase.clasificacion = this.puestoSeleccionado.clasificacion;\n\t\t\t\t}else if(dato.campo.trim() == (this.parametroFormatoPipe.NEGOCIACION)){\n\t\t\t\t\tthis.actoBase.sueldo = this.puestoSeleccionado.negociacion;\n\t\t\t\t}else if(dato.campo.trim() == (this.parametroFormatoPipe.PUESTO_RESPONDE)){\n\t\t\t\t\tthis.actoBase.responde = this.puestoSeleccionado.depende;\n\t\t\t\t}else if(dato.campo.trim() == (this.parametroFormatoPipe.CARGO)){\n\t\t\t\t\tthis.actoBase.descripcionCargo = this.puestoSeleccionado.nombreCargo;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tthis.regresar.emit(\"ok\")\n\t\t//FacesContext fc =  FacesContext.CurrentInstance();\n\t\t//fc.Application().createValueBinding(this.Destino()).Value(fc, \"ok\");\n\t\tthis.ocultarPopup();\n\t}\n\t\n\tpublic seleccionarPuestoTrabajo(se) {\n\t\tthis.puestoSeleccionado = se.data;\n\t\tthis.seleccionarPuesto();\n\t}\n\t\n\n}\n","<p-dialog header=\"{{'puestos' | translate}}\" [(visible)]=\"showDialog\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"ocultarPopup()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    \n    <p-table [value]=\"listaPuestoTrabajoOcupa\" responsiveLayout=\"scroll\"\n        [scrollable]=\"true\" selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n        dataKey=\"llave\" (onRowSelect)=\"seleccionarPuestoTrabajo($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'nombre' | translate}}</th>\n                <th>{{'' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-puesto>\n            <tr [pSelectableRow]=\"puesto\" >\n                <td>\n                    {{(puesto.nombreOcupa ? puesto.nombreOcupa + ' - ' : '') + 'Numero Puesto: ' + puesto.numeroPuesto}}\n                </td>\n                <td>\n                    <div class=\"flex\" style=\"width: 130px !important; height: 130px !important;\">\n                        <img [src]=\"puesto?.caminoFotoTemporal\" alt=\"Foto\" class=\"avatar-container\" *ngIf=\"puesto?.caminoFotoTemporal\">\n                        <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-container\" *ngIf=\"!puesto?.caminoFotoTemporal\">\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ActoIngresoAusenciaModel } from '../../models/ActoIngresoAusenciaModel';\nimport { FormatoDatoModel } from '../../models/FormatoDatoModel';\nimport { DatosBasicosEmpresaModel } from '../../../compensacion/models/DatosBasicosEmpresaModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { DatosBasicosEmpresaCons } from '../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { ParametroFormatoPipe } from '../../../../shared/pipes/parametroFormato.pipe';\nimport { ActoCambioEmpleadoService } from '../../services/acto-cambio-empleado.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\n\n@Component({\n    selector: 'app-popup-antecesor',\n    templateUrl: './popup-antecesor.component.html',\n    styleUrls: ['./popup-antecesor.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => PopupAntecesorComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        DialogModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        DatePipe,\n        TranslateModule,\n        FiltroGeneralComponent,\n        InputHelperUnidadComponent,\n    ],\n})\nexport class PopupAntecesorComponent implements ControlValueAccessor, OnInit {\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() nombreInput : string = '';\n\n  @Input() actoIngresoAusenciaDTO: ActoIngresoAusenciaModel\n  @Input() tipo: string;\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  loading: boolean;\n\n  public filtroBean: ActoIngresoAusenciaModel;\n\tpublic ventana: ActoIngresoAusenciaModel[] = [];\n  public mapaCampos: Map<string, boolean> = new Map<string, boolean>();\n\tpublic mapaDescripcion: Map<string, string>;\n  public filters: any[] = [];\n  public labelUnidad: string;\n  public unidad: string;\n  public basicosEmpresaDTO: DatosBasicosEmpresaModel\n  @ViewChild(InputHelperUnidadComponent) unidadInput: InputHelperUnidadComponent\n\n  constructor(private generalService: GeneralService,\n              private generalPipe: GeneralPipe,\n              private authService: AuthService,\n              public parametroFormatoPipe: ParametroFormatoPipe,\n              private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n              private controlFuncionService: CargarControlFuncionalidadService,\n              private translateService: TranslateService,\n              private datosBasicosEmpresaPipe: DatosBasicosEmpresaCons) { }\n\n  async ngOnInit(){\n    this.filters = [\n      {\n        field: 'unidad',\n        header: this.translateService.instant('unidadorganizacional'),\n        values: (key) => this.labelUnidad,\n        matchMode: 'equal',\n      }\n    ];\n    this.basicosEmpresaDTO = new DatosBasicosEmpresaModel();\n    this.basicosEmpresaDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.basicosEmpresaDTO = await this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, this.basicosEmpresaDTO)).toPromise();\n  }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable(){\n    this.buscar({}).then(data => {})\n  }\n  // ActoCambioEmpleadoDTO SERA EL DTO QUE SE UTILIZARA COMO FILTRO DE LA\n\t// CONSULTA\n\tpublic async buscar(event) {\n\t\tthis.ventana = [];\n    this.showDialog = true;\n    if (!this.tipo && !this.actoIngresoAusenciaDTO){\n      return;\n    }\n\t\tthis.filtroBean = this.actoIngresoAusenciaDTO;\n\n\t\tvar formatoDatoDTO = new FormatoDatoModel();\n\t\t\tformatoDatoDTO.formato = this.actoIngresoAusenciaDTO.formatoPadre;\n      formatoDatoDTO.tipo = 'SC'\n\t\t\tvar listaFormatoDatoDTO: FormatoDatoModel[] = await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', 'FormatoDato.consultarListaParaCampo', false, formatoDatoDTO)).toPromise();\n\t\t\tconsole.log(this.tipo)\n      this.mapaCampos = new Map<string, boolean>();\n\t\t\tthis.mapaDescripcion = new Map<string, string>();\n\t\t\tlistaFormatoDatoDTO.forEach(formatoDatoLista => {\n\t\t\t\tthis.mapaCampos.set(formatoDatoLista.campo, true);\n\t\t\t\tthis.mapaDescripcion.set(formatoDatoLista.campo, formatoDatoLista.titulo);\n\t\t\t})\n\t\t\tthis.filtroBean.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\tif (this.basicosEmpresaDTO.tipoFiltro != null) {\n\t\t\t\tthis.filtroBean.rolUsuario = this.authService.getTokenKey('aliasrol');\n\t\t\t\tthis.filtroBean.usuarioLogin = this.authService.getTokenKey('usuario');\n\t\t\t\tthis.filtroBean.filtroUnidad = this.tipoFiltro(this.basicosEmpresaDTO.tipoFiltro, this.datosBasicosEmpresaPipe.TIPO_FILTRO_ZONA_UNIDAD);\n\t\t\t}\n\t\t\tif (this.tipo == this.parametroFormatoPipe.TIPO_ACTO_INGRESO) {\n\t\t\t\tvar multiple: boolean = this.controlFuncionService.getControlFuncionalidad('actadm:antingmultiple');\n\t\t\t\tlet lista: ActoIngresoAusenciaModel[] = await this.actoCambioEmpleadoService.consultarListaAntecesorCambioEmpleadoPorAccion({actoDTO: this.filtroBean, multiple: multiple}).toPromise();\n        this.ventana.push(...lista);\n\t\t\t} else if (this.tipo == this.parametroFormatoPipe.TIPO_ACTO_AUSENCIA) {\n\t\t\t\tlet lista = await this.actoCambioEmpleadoService.consultarListaAntecesorActoAusencia({actoDTO: this.filtroBean}).toPromise();\n\t\t\t\tif ( this.parametroFormatoPipe.PRORROGA == this.filtroBean.accionOriginal || \n\t\t\t\t\t this.parametroFormatoPipe.INTERRUPCION_TERMINACION == this.filtroBean.accionOriginal) {\n\t\t\t\t\tthis.ventana = [];\n\t\t\t\t\tif (lista.length != 0) {\n\t\t\t\t\t\tthis.ventana.push(lista[0]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.ventana = lista;\n\t\t\t\t}\n\t\t\t} else if (this.tipo == this.parametroFormatoPipe.TIPO_ACTO_MOVIMIENTO_PLANTA) {\n\t\t\t\t//this.ventana = actoCambioEmpleadoSvc.consultarListaAntecesorActoMovPlanta(getDataSource(), filtroBean);\n\t\t\t} else if (this.tipo == this.parametroFormatoPipe.TIPO_ACTO_VACACION) {\n\t\t\t\t//this.ventana = actoCambioEmpleadoSvc.consultarListaAntecesorActoVacaciones(getDataSource(), filtroBean);\n\t\t\t}\n\t}\n\n\tpublic onRowSelect(event) {\n    this.showDialog = false;\n\t\tvar actoIngresoAusenciaDTO: ActoIngresoAusenciaModel = event.data;\n    this.label = actoIngresoAusenciaDTO.descripcion;\n    this.value = actoIngresoAusenciaDTO.llaveActo;\n    this.onChange(this.value);\n    this.onSelected.emit(actoIngresoAusenciaDTO);\n\t}\n\n\t/**\n\t * metodo que busca si hay un filtro en especifico\n\t * \n\t * @param tipoFiltro\n\t * @param constanteFiltro\n\t * @return\n\t */\n\tpublic tipoFiltro(tipoFiltro: string, constanteFiltro: string) {\n\t\tvar tiposFiltros:string[] = tipoFiltro.split(Constantes.COMA);\n    var retorno = null;\n\t\ttiposFiltros.forEach(filtro => {\n\t\t\tif (filtro.trim() == constanteFiltro) {\n\t\t\t\tretorno =  this.generalPipe.SI;\n\t\t\t}\n\t\t})\n\t\treturn retorno;\n\t}\n\n  selectUnidad(event) {\n    this.labelUnidad = this.unidadInput.label;\n    this.unidad = this.unidadInput.value;\n  }\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\">\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <label *ngIf=\"booleano\">{{nombreInput == '' ? ('antecesor' | translate) : nombreInput}} *</label>\n        <label *ngIf=\"!booleano\">{{nombreInput == '' ? ('antecesor' | translate) : nombreInput}}</label>\n    </span>\n</div>\n\n\n<p-dialog #dialog id='popupAntecesor' header=\"{{'antecesor' | translate}}\" [(visible)]=\"showDialog\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '60vw'}\">\n\n\n    <p-table #tablaGeneral [value]=\"ventana\" selectionMode=\"single\" [scrollable]=\"true\" [tableStyle]=\"{ 'min-width': '50rem' }\"\n        responsiveLayout=\"scroll\" [paginator]=\"ventana.length > 10\"\n        [rows]=\"10\" [totalRecords]=\"ventana.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\" >\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 20%;\" *ngIf=\"tipo != 'AMOVPLANTA'\">{{'formato' | translate }}</th>\n                <th style=\"width: 20%;\" *ngIf=\"mapaCampos.get('FECHA_FINAL') || mapaCampos.get('FECHA_TERMINA') || mapaCampos.get('FECHA_CAMBIO') || mapaCampos.get('FECHA_SALIDA')\">{{'detalle' | translate }}</th>\n                <th style=\"width: 20%;\">{{'adicional' | translate }}</th>\n                <th style=\"width: 20%;\">{{'unidad' | translate }}</th>\n                <th style=\"width: 20%;\" *ngIf=\"tipo == 'AMOVPLANTA'\">{{'nombre' | translate }}</th>\n            </tr>\n            <tr class=\"fondoTablaPincipal\">\n                <th style=\"width: 20%;\" *ngIf=\"tipo != 'AMOVPLANTA'\"></th>\n                <th style=\"width: 20%;\" *ngIf=\"mapaCampos.get('FECHA_FINAL') || mapaCampos.get('FECHA_TERMINA') || mapaCampos.get('FECHA_CAMBIO') || mapaCampos.get('FECHA_SALIDA')\"></th>\n                <th style=\"width: 20%;\"></th>\n                <th style=\"width: 20%;\">\n                    <p-columnFilter type=\"text\" matchMode=\"contains\"  [showClearButton]=\"false\" display=\"menu\"\n                        field=\"nombreUnidad\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                </th>\n                <th style=\"width: 20%;\" *ngIf=\"tipo == 'AMOVPLANTA'\"></th>\n                \n        </ng-template>\n        <ng-template pTemplate=\"body\" let-antecesor>\n            <tr [pSelectableRow]=\"antecesor\">\n                <td style=\"width: 20%;\" *ngIf=\"tipo != 'AMOVPLANTA'\">{{antecesor.descripcionFormato}}</td>\n                <td style=\"width: 20%;\" *ngIf=\"mapaCampos.get('FECHA_FINAL') || mapaCampos.get('FECHA_TERMINA') || mapaCampos.get('FECHA_CAMBIO') || mapaCampos.get('FECHA_SALIDA')\">\n                    <label *ngIf=\"mapaCampos.get('FECHA_FINAL')  || mapaCampos.get('FECHA_TERMINA')\" class=\" font-semibold\">\n                        {{mapaDescripcion.get('FECHA_FINAL')}} {{ mapaDescripcion.get('FECHA_TERMINA')}}: \n                    </label>\n                    <label *ngIf=\"mapaCampos.get('FECHA_FINAL')  || mapaCampos.get('FECHA_TERMINA')\">\n                        {{antecesor.fechaFin | date : ('formatofecha' | translate)}}\n                    </label>\n                    <br *ngIf=\"mapaCampos.get('FECHA_FINAL')  || mapaCampos.get('FECHA_TERMINA')\"/>\n                    <label *ngIf=\"mapaCampos.get('FECHA_CAMBIO')  || mapaCampos.get('FECHA_SALIDA')\" class=\" font-semibold\">\n                        {{mapaDescripcion.get('FECHA_CAMBIO')}} {{ mapaDescripcion.get('FECHA_SALIDA')}}: \n                    </label>\n                    <label *ngIf=\"mapaCampos.get('FECHA_CAMBIO')  || mapaCampos.get('FECHA_SALIDA')\">\n                        {{antecesor.fechaInicio | date : ('formatofecha' | translate)}}\n                    </label>\n                    \n                </td>\n                <td style=\"width: 20%;\">\n                    <div>\n                        <label *ngIf=\"mapaCampos.get('FECHA_DOC')\" class=\" font-semibold\">{{mapaDescripcion.get('FECHA_DOC')}}: </label>\n                        <label *ngIf=\"mapaCampos.get('FECHA_DOC')\">{{antecesor.fechaDocumento | date : ('formatofecha' | translate)}}</label>\n                        <br *ngIf=\"mapaCampos.get('FECHA_DOC')\"/>\n                        <label *ngIf=\"mapaCampos.get('NUMERO_DOC')\" class=\" font-semibold\">{{mapaDescripcion.get('NUMERO_DOC')}}: </label>\n                        <label *ngIf=\"mapaCampos.get('NUMERO_DOC')\">{{antecesor.numero}}</label>\n                        <br *ngIf=\"mapaCampos.get('NUMERO_DOC')\"/>\n                        <label *ngIf=\"mapaCampos.get('DURACION')\" class=\" font-semibold\">{{mapaDescripcion.get('DURACION')}}: </label>\n                        <label *ngIf=\"mapaCampos.get('DURACION')\">{{antecesor.duracion}}</label>\n                    </div>\n                </td>\n                <td style=\"width: 20%;\">{{antecesor.unidad}} - {{antecesor.nombreUnidad}}</td>\n                <td style=\"width: 20%;\" *ngIf=\"tipo == 'AMOVPLANTA'\">{{antecesor.nombrePersona}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n</p-dialog>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService} from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n  })\n  export class FormatoService {\n\n\n    listProcedure(objetoFiltro: GeneralModel) {\n      throw new Error('Method not implemented.');\n    }\n\n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n      this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n\n\n    obtenerListaSeleccionFiltroActoEspecial( general: any ) : Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/formato/obtenerListaSeleccionFiltroActoEspecial`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    eliminarFormato(parametro: any): Observable<any> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/formato/eliminarFormato`, parametro).pipe(\n          catchError(this.handleError)\n      );\n    }\n\n    actualizarFormato(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/formato/actualizarFormato`, parametroGeneral).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    traerFormato(object): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/formato/traerFormato`, object).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'campoFormularioPipe'\n})\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class CampoFormularioPipe implements PipeTransform {\n\n    TEXTO=\"T\"; \n    COMBO=\"C\"; \n    NUMERO=\"N\";\n    DECIMAL=\"D\";\n    FECHA=\"F\"; \n    HORA=\"X\"; \n    FECHAHORA=\"E\"; \n    RADIO=\"R\";\n    POPUP=\"P\";\n    CHECK=\"H\";\n    LOGICO=\"L\";\n    TITULO=\"I\";\n    SUBTITULO=\"B\";\n    MENSAJE=\"M\";\n    TEXTOAREA=\"A\";\n    SECRET=\"S\";\n    VALORHORA=\"Z\";\n    AUTOCOMPLETAR=\"Y\";\n    AUTOCOMPLETAR_AREA=\"O\";\n    COMBOSQL=\"Q\";\n    \n\tMAPA_TIPO_CAMPOS = \n\t[\n\t\t{codigo: this.TEXTO, nombre: \"Texto\"},\n\t\t{codigo: this.COMBO, nombre: \"Combo\"},\n\t\t{codigo: this.NUMERO, nombre: \"Numero\"},\n\t\t{codigo: this.DECIMAL, nombre: \"Decimal\"},\n\t\t{codigo: this.FECHA, nombre: \"Fecha\"},\n\t\t{codigo: this.HORA, nombre: \"Hora\"},\n\t\t{codigo: this.RADIO, nombre: \"Radio\"},\n\t\t{codigo: this.POPUP, nombre: \"Popup\"},\n\t\t{codigo: this.CHECK, nombre: \"Check\"},\n\t\t{codigo: this.LOGICO, nombre: \"Logico\"},\n\t\t{codigo: this.TITULO, nombre: \"Titulo\"},\n\t\t{codigo: this.TEXTOAREA, nombre: \"TextoArea\"},\n\t\t{codigo: this.SECRET, nombre: \"Secreto\"},\n\t\t{codigo: this.VALORHORA, nombre: \"ValorHora\"},\n\t]\n\t\n\t\n\tCOMBO_CONSULTA = \"Consulta\";\n\tCOMBO_ESTATICO = \"Estarico\";\n\t\n\tGRUPO_FINAL = \"F\";\n\tGRUPO_INICIAL = \"I\";\n\t\n\tCAMPO_LECTURA = \"L\";\n\tCAMPO_EDITABLE = \"E\";\n\tCAMPO_NO_VISIBLE = \"N\";\n\n    transform(value: any, ...args: any): any {\n\t\tlet result = value;\t\t\n\t\treturn result;\n\t}\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PlanillaService {\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n            //Llamado a interceptor\n            this.errorInterceptor.showError(JSON.stringify(error.error));\n            // A client-side or network error occurred. Handle it accordingly.\n            console.error('An error occurred:', error.error);\n        } else {\n            // The backend returned an unsuccessful response code.\n            // The response body may contain clues as to what went wrong.\n            console.error(\n                `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    combinarArchivo(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/planilla/combinarArchivo`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    validarRutaArchivo(objeto: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/planilla/validarRutaArchivo`, objeto).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n}","import { UnionModel } from 'general-library-union'\n\n\nexport class FormatoMotivoModel extends UnionModel{\n\t\n\tformato: number;\n\tmotivo: number;\n\tdescripcion: string;\n\tvalor1: number;\n\tcodigo: string;\n\ttipo: string;\n\t\t\n}\n","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { throwError } from 'rxjs';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel, UtilsService, AuthService, FechaUtilsService } from 'general-library-union';\nimport { TipoCambioEmpleadoModel } from '../../compensacion/models/TipoCambioEmpleadoModel';\nimport { TipoAusenciaModel } from '../../compensacion/models/TipoAusenciaModel';\nimport { FormulaModel } from '../../compensacion/models/FormulaModel';\nimport { FormatoMotivoModel } from '../models/FormatoMotivoModel';\nimport { ParametroFormatoPipe } from '../../../shared/pipes/parametroFormato.pipe';\nimport { FormatoDatoModel } from '../models/FormatoDatoModel';\nimport { FormatoFirmaModel } from '../models/FormatoFirmaModel';\nimport { LoginAccesoModel } from '../../sarageneral/models/LoginAccesoModel';\nimport { RolesModel } from '../models/RolesModel';\nimport { CargoModel } from '../../talento/models/CargoModel';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class SelectListActos {\n\n\tconstructor(private httpClient: HttpClient,\n\t\tprivate errorInterceptor: ErrorIntecertorService,\n\t\tpublic utilsService: UtilsService,\n\t\tprivate authService: AuthService,\n\t\tprivate parametroFormatoPipe: ParametroFormatoPipe,\n\t\tprivate fechaUtilsService: FechaUtilsService,\n\t\tprivate generalService: GeneralService) {\n\t\tthis.handleError = this.handleError.bind(this);\n\t}\n\n\tprivate handleError(error: HttpErrorResponse) {\n\t\tif (error.status === 500) {\n\t\t\t//Llamado a interceptor\n\t\t\tthis.errorInterceptor.showError(JSON.stringify(error.error));\n\t\t\t// A client-side or network error occurred. Handle it accordingly.\n\t\t\tconsole.error('An error occurred:', error.error);\n\t\t} else {\n\t\t\t// The backend returned an unsuccessful response code.\n\t\t\t// The response body may contain clues as to what went wrong.\n\t\t\tconsole.error(\n\t\t\t\t`Backend returned code ${error.status}, body was: `, error.error);\n\t\t}\n\t\t// Return an observable with a user-facing error message.\n\t\treturn throwError(() => new Error('Something bad happened; please try again later.'));\n\t}\n\n\n\tasync selectListObjetivos(empresa: number, unidad: string) {\n\t\tlet lista = await this.generalService.queryForList(new GeneralModel('ObjetivoDTO', null, false, { empresa: empresa, unidad: unidad })).toPromise();\n\t\tlet listaRetorno = [];\n\t\tlista.forEach(data => {\n\t\t\tlistaRetorno.push({ value: data.llave, label: data.descripcion });\n\t\t})\n\t\treturn listaRetorno;\n\t}\n\n\tasync getListadoTipoCambio() {\n\t\tlet listadoTipoCambio = [];\n\t\tlet lista: TipoCambioEmpleadoModel[] = [];\n\t\t\n\t\tlista = await this.generalService.queryForList(new GeneralModel('TipoCambioEmpleadoDTO', null, false, {})).toPromise(); \n\t\tlista.forEach(tipo => {\n\t\t\tlistadoTipoCambio.push({value: tipo.tipoCambioEmpleado, label: tipo.descripcion});\n\t\t})\n\n\t\tlistadoTipoCambio = this.utilsService.ordenarSelectItemsAlfabeticamente(listadoTipoCambio);\n\t\treturn listadoTipoCambio;\n\t}\n\n\tasync getListadoTipoAusencia(origen: string) {\n\t\tlet listadoTipoAusencia = [];\n\t\tlet lista: TipoAusenciaModel[] = [];\n\t\t\n\t\tlet aus = new TipoAusenciaModel();\n\t\taus.origen = origen;\n\t\tlista = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, aus)).toPromise(); \n\t\tlista.forEach(tipo => {\n\t\t\tlistadoTipoAusencia.push({value: tipo.llaveTabla, label: tipo.descripcion});\n\t\t})\n\t\treturn listadoTipoAusencia;\n\n\t}\n\n\tasync getListadoTipoAusenciaSinVacacion() {\n\t\tlet\tlistadoTipoAusencia = [];\n\t\tlet lista: TipoAusenciaModel[] = [];\n\t\tlet aus = new TipoAusenciaModel();\n\t\taus.origen = 'L';\n\t\tlista = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, aus)).toPromise(); \n\t\tlista.forEach(tipo => {\n\t\t\tlistadoTipoAusencia.push({value: tipo.llaveTabla, label: 'Ausencia : '+tipo.descripcion});\n\t\t})\t\t\n\t\taus = new TipoAusenciaModel();\n\t\taus.origen = 'I';\n\t\tlista = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', null, false, aus)).toPromise(); \n\t\tlista.forEach(tipo => {\n\t\t\tlistadoTipoAusencia.push({value: tipo.llaveTabla, label: 'Incapacidad : '+tipo.descripcion});\n\t\t})\n\t\treturn listadoTipoAusencia;\n\t}\n\n\tasync getListadoFormula() {\n\t\tlet listadoFormula = [];\n\t\tlet lista: FormulaModel[] = [];\t\n\t\tlista = await this.generalService.queryForList(new GeneralModel('FormulaDTO', null, false, {})).toPromise(); \n\n\t\tlista.forEach(formula => {\n\t\t\tlistadoFormula.push({value: formula.formula, label: formula.descripcion});\n\t\t})\n\t\tlistadoFormula = this.utilsService.ordenarSelectItemsAlfabeticamente(listadoFormula);\n\t\treturn listadoFormula;\n\t}\n\n\t// async getListadoPuestoN() {\n\t// \tif (listadoPuestoN == null) {\n\t// \t\tlistadoPuestoN = [];\n\t// \t\tlistadoPuestoN.push({value: null, '-- Seleccione Tipo Puesto --'));\n\t// \t\tList<TipoPuestoTrabajoDTO> lista = new ArrayList<TipoPuestoTrabajoDTO>();\n\t\t\t\n\t// \t\t\tTipoPuestoTrabajoDTO puestoTrabajoDTO = new TipoPuestoTrabajoDTO();\n\t// \t\t\tpuestoTrabajoDTO.Clase(Constantes.CONSTANTE_NO);\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), puestoTrabajoDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoPuestoN;\n\t// \t\t}\n\t// \t\tfor (TipoPuestoTrabajoDTO tipoPuestoTrabajoDTO : lista) {\n\t// \t\t\tlistadoPuestoN.push({value: tipoPuestoTrabajoDTO.TipoPuesto(), tipoPuestoTrabajoDTO.descripcion));\n\t// \t\t}\n\t// \t\treturn listadoPuestoN;\n\t// \t}\n\t// \treturn listadoPuestoN;\n\t// }\n\n\t// async getListadoVinculacion() {\n\t// \tif (listadoVinculacion == null) {\n\t// \t\tlistadoVinculacion = [];\n\t// \t\tlistadoVinculacion.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Vinculaci\\u00F3n --'));\n\t// \t\tList<VinculacionLaboralDTO> lista = new ArrayList<VinculacionLaboralDTO>();\n\t\t\t\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), new VinculacionLaboralDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoVinculacion;\n\t// \t\t}\n\t// \t\tfor (VinculacionLaboralDTO vinculacionLaboralDTO : lista) {\n\t// \t\t\tlistadoVinculacion.push({value: vinculacionLaboralDTO.Vinculacion(), vinculacionLaboralDTO.descripcion));\n\t// \t\t}\n\t// \t\treturn listadoVinculacion;\n\t// \t}\n\t// \treturn listadoVinculacion;\n\t// }\n\n\t// async getListadoPuestoS() {\n\t// \tif (listadoPuestoS == null) {\n\t// \t\tlistadoPuestoS = [];\n\t// \t\tlistadoPuestoS.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Clase Puesto --'));\n\t// \t\tList<TipoPuestoTrabajoDTO> lista = new ArrayList<TipoPuestoTrabajoDTO>();\n\t\t\t\n\t// \t\t\tTipoPuestoTrabajoDTO puestoTrabajoDTO = new TipoPuestoTrabajoDTO();\n\t// \t\t\tpuestoTrabajoDTO.Clase(Constantes.CONSTANTE_SI);\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), puestoTrabajoDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoPuestoS;\n\t// \t\t}\n\t// \t\tfor (TipoPuestoTrabajoDTO tipoPuestoTrabajoDTO : lista) {\n\t// \t\t\tlistadoPuestoS.push({value: tipoPuestoTrabajoDTO.TipoPuesto(), tipoPuestoTrabajoDTO.descripcion));\n\t// \t\t}\n\t// \t\treturn listadoPuestoS;\n\t// \t}\n\t// \treturn listadoPuestoS;\n\t// }\n\n\t// async getListadoTipoServicio() {\n\t// \tif (listadoTipoServicio == null) {\n\t// \t\tlistadoTipoServicio = [];\n\t// \t\tlistadoTipoServicio.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Tipo Servicio --'));\n\t// \t\tList<TipoServicioDTO> lista = new ArrayList<TipoServicioDTO>();\n\t\t\t\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), new TipoServicioDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoTipoServicio;\n\t// \t\t}\n\t// \t\tfor (TipoServicioDTO tipoServicioDTO : lista) {\n\t// \t\t\tlistadoTipoServicio.push({value: tipoServicioDTO.TipoServicio(), tipoServicioDTO.descripcion));\n\t// \t\t}\n\t// \t\treturn listadoTipoServicio;\n\t// \t}\n\t// \treturn listadoTipoServicio;\n\t// }\n\n\t// async getListadoVariable() {\n\t// \tif (listadoVariable == null) {\n\t// \t\tlistadoVariable = [];\n\t// \t\tlistadoVariable.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Variable --'));\n\t// \t\tList<VariableDTO> lista = new ArrayList<VariableDTO>();\n\t\t\t\n\t// \t\t\tVariableDTO variableDTO = new VariableDTO();\n\t// \t\t\tvariableDTO.Modo(saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), variableDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoVariable;\n\t// \t\t}\n\t// \t\tfor (VariableDTO variableDTO : lista) {\n\t// \t\t\tlistadoVariable.push({value: variableDTO.Variable(), variableDTO.descripcion));\n\t// \t\t}\n\t// \t\treturn listadoVariable;\n\t// \t}\n\t// \treturn listadoVariable;\n\t// }\n\n\n\t\n\t// async getListadoTipoLiquida() {\n\t// \tif (listadoTipoLiquida == null) {\n\t// \t\tlistadoTipoLiquida = [];\n\t// \t\tlistadoTipoLiquida.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Tipo Liquidaci\\u00F3n --'));\n\t// \t\tList<TipoLiquidaDTO> lista = new ArrayList<TipoLiquidaDTO>();\n\t\t\t\n\t// \t\t\tTipoLiquidaDTO tipoLiquidaDTO = new TipoLiquidaDTO();\n\t// \t\t\ttipoLiquidaDTO.Modo(saraAplicacionBean.EmpresaDTO().ModoCompensacion());\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), tipoLiquidaDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoTipoLiquida;\n\t// \t\t}\n\t// \t\tfor (TipoLiquidaDTO tipoLiquidaDTO : lista) {\n\t// \t\t\tlistadoTipoLiquida.push({value: tipoLiquidaDTO.Tipoliquida(), tipoLiquidaDTO.descripcion));\n\t// \t\t}\n\t// \t\treturn listadoTipoLiquida;\n\t// \t}\n\t// \treturn listadoTipoLiquida;\n\t// }\n\n\t// async getListadoFactorPuntaje() {\n\t// \tif (listadoFactorPuntaje == null) {\n\t// \t\tlistadoFactorPuntaje = [];\n\t// \t\tlistadoFactorPuntaje.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Factor Puntaje --'));\n\t// \t\tList<FactorPuntajeDTO> lista = new ArrayList<FactorPuntajeDTO>();\n\t\t\t\n\t// \t\t\tlista = factorPuntajeSvc.listaFactorPuntaje(getDataSource(), new FactorPuntajeDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoFactorPuntaje;\n\t// \t\t}\n\t// \t\tfor (FactorPuntajeDTO factorPuntajeDTO : lista) {\n\t// \t\t\tlistadoFactorPuntaje.push({value: factorPuntajeDTO.LlaveTabla(), factorPuntajeDTO.NombreFactor()));\n\t// \t\t}\n\t// \t\treturn listadoFactorPuntaje;\n\t// \t}\n\t// \treturn listadoFactorPuntaje;\n\t// }\n\n\t// async getListadoEmpresa() {\n\t// \tif (listadoEmpresa == null) {\n\t// \t\tlistadoEmpresa = [];\n\t// \t\tlistadoEmpresa.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Empresa --'));\n\t// \t\tList<EmpresaDTO> lista = new ArrayList<EmpresaDTO>();\n\t\t\t\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), new EmpresaDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoEmpresa;\n\t// \t\t}\n\t// \t\tfor (EmpresaDTO empresaDTO : lista) {\n\t// \t\t\tlistadoEmpresa.push({value: empresaDTO.Empresa(), empresaDTO.Empresa() + '-' + empresaDTO.Nombre()));\n\t// \t\t}\n\t// \t\tlistadoEmpresa.push({value: '0', 'Todas'));\n\t// \t\treturn listadoEmpresa;\n\t// \t}\n\t// \treturn listadoEmpresa;\n\t// }\n\t\n\tasync getListadoEmpresaActoIngreso() {\n\t\tvar listadoEmpresa = [];\n\t\tvar lista = await this.generalService.queryForList(new GeneralModel('EmpresaDTO', null, false, {})).toPromise();\n\t\tlista.forEach(empresaDTO => {\n\t\t\tlistadoEmpresa.push({value: empresaDTO.empresa, label: empresaDTO.empresa + '-' + empresaDTO.nombre});\n\t\t})\n\t\treturn listadoEmpresa;\n\t}\n\n\t// async getListadoPlanilla() {\n\t// \tif (listadoPlanilla == null) {\n\t// \t\tlistadoPlanilla = [];\n\t// \t\tlistadoPlanilla.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Planilla --'));\n\t// \t\tList<PlanillaDTO> lista = new ArrayList<PlanillaDTO>();\n\t\t\t\n\t// \t\t\tPlanillaDTO planillaDTO = new PlanillaDTO();\n\t// \t\t\tplanillaDTO.IncluirBasico('V');\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), planillaDTO);\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoPlanilla;\n\t// \t\t}\n\t// \t\tfor (PlanillaDTO planillaDTO : lista) {\n\t// \t\t\tlistadoPlanilla.push({value: planillaDTO.LlaveTabla(), planillaDTO.DescripcionPlanilla()));\n\t// \t\t}\n\t// \t\treturn listadoPlanilla;\n\t// \t}\n\t// \treturn listadoPlanilla;\n\t// }\n\n\tpublic getSelectItemsPeriodoGestion(coList: FormatoFirmaModel[]) {\n\t\tvar respuesta: any[] = [];\n\t\tcoList.forEach(element => {\n\t\t\tvar llave = element.identifica;\n\t\t\trespuesta.push({value: llave, label: element.nombreCompleto});\n\t\t})\n\t\tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t\treturn respuesta;\n\t}\n\n\t// public getSelectItemsFormatoFirma(List<FormatoFirmaDTO> coList) {\n\t// \tvar respuesta: any[] = [];\n\t// \trespuesta.push({value: Constantes.ESPACIO_NULO, '-- Seleccione --'));\n\t// \tfor (FormatoFirmaDTO element : coList) {\n\t// \t\trespuesta.push({value: element.Identifica(), StringUtils.defaultString(element.NombreCompleto())));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\tpublic getSelectItemsFormatoFirmaCargo(coList: FormatoFirmaModel[]) {\n\t\tvar respuesta: any[] = [];\n\t\tfor (let element of coList) {\n\t\t\trespuesta.push({value: element.identifica,  label: element.nombreCompleto + ' - ' + element.cargo});\n\t\t}\n\t\tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t\treturn respuesta;\n\t}\n\n\t// public getSelectItemsFormato(List<FormatoDTO> coList) {\n\t// \tvar respuesta: any[] = [];\n\t// \tfor (FormatoDTO element : coList) {\n\t// \t\tInteger llave = element.Llave();\n\t// \t\trespuesta.push({value: llave, StringUtils.defaultString(element.descripcion)));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public getSelectItemsVistaGrupoActo(List<GrupoDTO> coList) {\n\t// \tvar respuesta: any[] = [];\n\t// \tfor (GrupoDTO element : coList) {\n\t// \t\tvar llave = element.Grupo();\n\t// \t\trespuesta.push({value: llave, StringUtils.defaultString(element.descripcion)));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\t// public getSelectItemUnidadItem(List<LoginAccesoDTO> coList) {\n\t// \tvar respuesta: any[] = [];\n\t// \trespuesta.push({value: Constantes.ESPACIO_NULO, '-- Seleccione --'));\n\t// \tfor (LoginAccesoDTO element : coList) {\n\t// \t\tvar llave = element.Unidad();\n\t// \t\trespuesta.push({value: llave, StringUtils.defaultString(element.NombreUnidad())));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\tpublic getSelectItemFormatoDatoDocumentoItem(coList: FormatoDatoModel[]) {\n\t\tvar respuesta: any[] = [];\n\t\tcoList.forEach(element => {\n\t\t\tvar llave = element.accion;\n\t\t\trespuesta.push({value: llave, label: element.titulo});\n\t\t})\n\t\trespuesta = this.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t\treturn respuesta;\n\t}\n\n\t// public getSelectItemUnidadDocumentoItem(List<UnidadCargoDTO> coList) {\n\t// \tvar respuesta: any[] = [];\n\t// \trespuesta.push({value: Constantes.ESPACIO_NULO, '-- Seleccione --'));\n\t// \tfor (UnidadCargoDTO element : coList) {\n\t// \t\tvar llave = element.Unidad();\n\t// \t\trespuesta.push({value: llave, StringUtils.defaultString(element.NombreUnidad())));\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t// \treturn respuesta;\n\t// }\n\n\tpublic getSelectItemRolItem(coList: RolesModel[]) {\n\t\tvar respuesta: any = [];\n\t\tcoList.forEach(element => {\n\t\t\tvar llave = element.rol;\n\t\t\trespuesta.push({value: llave, label: element.descripcion ? element.descripcion: ''});\n\t\t})\n\t\tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t\treturn respuesta;\n\t}\n\n\tpublic getSelectItemTipoCambioItem(coList: TipoCambioEmpleadoModel[]) {\n\t\tvar respuesta: any = [];\n\t\tcoList.forEach(element => {\n\t\t\tvar llave = element.tipoCambioEmpleado;\n\t\t\trespuesta.push({value: llave, label: element.tipoCambioEmpleado + ' - ' + this.utilsService.capitalizeFully(element.descripcion)});\n\t\t})\n\t\tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t\treturn respuesta;\n\t}\n\n\tpublic getSelectItemSoporteItem(coList: FormatoFirmaModel[]) {\n\t\tvar respuesta: any[] = [];\n\t\tcoList.forEach(element => {\n\t\t\tvar llave = element.planilla;\n\t\t\trespuesta.push({value: llave, label: element.descripcion});\n\t\t})\n\t\tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t\treturn respuesta;\n\t}\n\n\tpublic getSelectItemCargoItem(coList: CargoModel[]) {\n\t\tvar respuesta: any[] = [];\n\t\tcoList.forEach(element => {\n\t\t\tvar llave = element.cargo;\n\t\t\tvar descripcion = element.descripcion;\n\t\t\trespuesta.push({value: llave, label: descripcion ? llave + ' - ' +descripcion + ' (' + element.nivelCargo + ') ' : ''});\n\t\t\tif(llave != null && descripcion != null){\n\t\t\t\tif (element.cargo.trim() === element.descripcion.trim()) {\n\t\t\t\t\trespuesta.push({value: llave, label: descripcion})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tthis.utilsService.ordenarSelectItemsAlfabeticamente(respuesta);\n\t\treturn respuesta;\n\t}\n\n\tpublic getListaSucursaActo(loginAcceso: LoginAccesoModel[]) {\n\t\tvar respuesta = [];\n\t\tloginAcceso.forEach(element => {\n\t\t\trespuesta.push({value: element.sucursal, label: element.nombreSucursal});\n\t\t})\n\t\treturn respuesta;\n\t}\n\n\t// async getListadoFormato() {\n\t// \tif (listadoFormato == null) {\n\t// \t\tlistadoFormato = [];\n\t// \t\tlistadoFormato.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Formato --'));\n\t// \t\tList<FormatoDTO> lista = new ArrayList<FormatoDTO>();\n\t\t\t\n\t// \t\t\tlista = generalSvc.queryForList(getDataSource(), new FormatoDTO());\n\t// \t\t} catch (Exception e) {\n\t// \t\t\tlogUnion.error(e);\n\t// \t\t\treturn listadoFormato;\n\t// \t\t}\n\t// \t\tfor (FormatoDTO formatoDTO : lista) {\n\t// \t\t\tlistadoFormato.push({value: formatoDTO.Llave(), formatoDTO.descripcion));\n\t// \t\t}\n\t// \t\treturn listadoFormato;\n\t// \t}\n\t// \treturn listadoFormato;\n\t// }\n\n\t// async getListadoFormatoFiltro(FormatoDTO filtro) {\n\t// \tlistadoFormatoFiltro = [];\n\t// \tlistadoFormatoFiltro.push({value: null, '-- Seleccione Formato --'));\n\t// \tList<FormatoDTO> lista = new ArrayList<FormatoDTO>();\n\t\t\n\t// \t\tlista = generalSvc.queryForList(getDataSource(), filtro);\n\t// \t} catch (Exception e) {\n\t// \t\tlogUnion.error(e);\n\t// \t\treturn listadoFormatoFiltro;\n\t// \t}\n\t// \tfor (FormatoDTO formatoDTO : lista) {\n\t// \t\tlistadoFormatoFiltro.push({value: formatoDTO.Llave(), formatoDTO.descripcion));\n\t// \t}\n\t// \treturn listadoFormatoFiltro;\n\n\t// }\n\n\t// async getSiNo() {\n\t// \tif (siNo == null) {\n\t// \t\tsiNo = [];\n\t// \t\tsiNo.push({value: Constantes.ESPACIO_NULO, '-- Seleccione --'));\n\t// \t\tsiNo.push({value: Constantes.CONSTANTE_SI, Constantes.SI_STRING));\n\t// \t\tsiNo.push({value: Constantes.CONSTANTE_NO, Constantes.NO_STRING));\n\t// \t}\n\t// \treturn siNo;\n\t// }\n\n\t// public getListadoMotivosActos(List<FormatoMotivoDTO> lista) {\n\t// \tList<SelectItem> listadoMotivosActos = [];\n\t\t\n\t// \t\tlistadoMotivosActos.push({value: Constantes.ESPACIO_NULO, '--Seleccione--'));\n\t// \t\tfor (FormatoMotivoDTO dto : lista) {\n\t// \t\t\tlistadoMotivosActos.push({value: dto.Motivo(), dto.descripcion));\n\t// \t\t}\n\t// \t} catch (Exception e) {\n\t// \t\tlogUnion.error(e);\n\t// \t\treturn [];\n\t// \t}\n\t// \tthis.utilsService.ordenarSelectItemsAlfabeticamente(listadoMotivosActos);\n\t// \treturn listadoMotivosActos;\n\n\t// }\n\n\t// public getSelectListCamposSeleccionActoEspecialAM() {\n\t// \tvar respuesta: any[] = [];\n\t// \trespuesta = ColeccionConverter.convertirMapToListSelectItem(this.parametroFormatoPipe.CAMPOSSELECCIONACTOSESPECIAL_AM);\n\t// \treturn respuesta;\n\t// }\n\n\t// async getListadoPlanillaIngreso() {\n\t// \tlistadoPlanillaIngreso = [];\n\t// \tlistadoPlanillaIngreso.push({value: Constantes.ESPACIO_NULO, '-- Seleccione Planilla --'));\n\t// \tList<PlanillaDTO> lista = new ArrayList<PlanillaDTO>();\n\t\t\n\t// \t\tPlanillaDTO planillaDTO = new PlanillaDTO();\n\t// \t\tplanillaDTO.Periodo('A');\n\t// \t\tlista = generalSvc.queryForList(getDataSource(), planillaDTO);\n\t// \t} catch (Exception e) {\n\t// \t\tlogUnion.error(e);\n\t// \t\treturn listadoPlanillaIngreso;\n\t// \t}\n\t// \tfor (PlanillaDTO planillaDTO : lista) {\n\t// \t\tlistadoPlanillaIngreso.push({value: planillaDTO.LlaveTabla(), planillaDTO.DescripcionPlanilla()));\n\t// \t}\n\t// \treturn listadoPlanillaIngreso;\n\t// }\n\t\n\tasync getSelectItemListaAdicionalFormato(formato: number, tipoLista: string) {\n\t\tlet lista = [];\n\t\tlet formatoMotivoDTO = new FormatoMotivoModel();\n\t\tformatoMotivoDTO.formato = formato;\n\t\tformatoMotivoDTO.tipo = tipoLista;\n\t\tlet listadoMotivos = await this.generalService.queryForList(new GeneralModel('FormatoMotivoDTO', null, false, formatoMotivoDTO)).toPromise(); \n\t\t\n\t\tif(this.parametroFormatoPipe.TIPO_LISTA_1 == tipoLista){\n\t\t\tlistadoMotivos.forEach(motivo => {\n\t\t\t\tlista.push({value: motivo.motivo, label: motivo.descripcion});\n\t\t\t})\n\t\t}else{\n\t\t\tlistadoMotivos.forEach(motivo => {\n\t\t\t\tlista.push({value: motivo.codigo, label: motivo.descripcion});\n\t\t\t})\n\t\t}FechaUtilsService\n\t\treturn lista;\n\t}\n\t\n\tgetListadoAnioServicio(){\n\t\tlet listaAnioServicio = [];\n\t\tlet anios =  this.fechaUtilsService.obtenerListadoAnios(new Date(), 10, 2);\n\t\tfor (var anio of anios) {\n\t\t\tlistaAnioServicio.push({value: anio, label: anio.toString()});\n\t\t} \n\t\treturn listaAnioServicio;\n\t}\n\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { ActoCambioEmpleadoModel } from '../../../models/ActoCambioEmpleadoModel';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, EncriptadoBasicoService, FormulariodinamicoComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { FormatoService } from '../../../services/formato.service';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { SelectListActos } from '../../../services/select-list-actos.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { ParametrosPipe } from '../../../../../shared/pipes/parametros.pipe';\nimport { PlanillaService } from '../../../../compensacion/services/planilla.service';\nimport { InfoDatosPlantaComponent } from '../info-datos-planta/info-datos-planta.component';\nimport { RolesModel } from '../../../models/RolesModel';\nimport { ActoIngresoAusenciaModel } from '../../../models/ActoIngresoAusenciaModel';\nimport { NovedadPipe } from '../../../../compensacion/pipes/novedad.pipe';\nimport { ActosDatosPuestoComponent } from '../actos-datos-puesto/actos-datos-puesto.component';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { PopupSeleccionPuestoComponent } from '../../../popups/popup-seleccion-puesto/popup-seleccion-puesto.component';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { PopupAntecesorComponent } from '../../../popups/popup-antecesor/popup-antecesor.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-acto-traslado',\n    templateUrl: './acto-traslado.component.html',\n    styleUrls: ['./acto-traslado.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, CabeceraEmpleadoComponent, FieldsetModule, PrimeTemplate, InputHelperEmpleadoBotonComponent, FormsModule, InputTextModule, PopupAntecesorComponent, ActosDatosPuestoComponent, CheckboxModule, PopupSeleccionPuestoComponent, TranslateModule, FormulariodinamicoComponent]\n})\nexport class ActoTrasladoComponent implements OnInit {\n\n\n  \tpublic mostrarFoto: boolean;\n\tpublic mostrarDatosCedulaCampos: boolean;\n\tpublic mostrarBuscarAntecesor: boolean;\n\tpublic seguimiento: boolean;\n\tpublic mostrarDatosCedula: boolean;\n\tpublic mostrarDatosAdicional: boolean;\n\tpublic mostrarPuestoTrabajo: boolean;\n\tpublic mostrarDatosPuestoTRabjo: boolean;\n\tpublic mostrarFinal: boolean;\n  \tpublic mostrarLegalizar: boolean;\n\tpublic habilitarCombosUnidadCargo: boolean;\n\tpublic habilitarCombosUnidadCargoPasoCedula: boolean;\n\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[];\n\tpublic listaParaPuesto: FormatoDatoModel[];\n\n\tpublic puestoTrabajoDTOSeleccionado: PuestoTrabajoModel;\n\tpublic actoCambioEmpleadoBorrarDTO: ActoCambioEmpleadoModel;\n\n\tpublic accion: string = null;\n\tpublic unidadAntes: string = null;\n\tpublic descripcionGrupo: string;\n\tpublic cargoAntes: string = null;\n\tpublic paso: string = null;\n\tpublic archivoSalida: string;\n\tpublic etapa: string;\n\tpublic llaveBase: string = null;\n\tpublic valorSeleccionadoSelectOneRadio: string;\n\n\tpublic listaSeleccionPuestoTrabajoRadio: any[];\n\tpublic listaFormatoDatoDocumentoItem: any[];\n\tpublic listaFirmaDocumentoItem: any[];\n\tpublic listaUnidadDocumentoItem: any[];\n\tpublic listaSucursalItem: any[];\n\tpublic listaRoloItem: any[];\n\tpublic listaTipoCambioItem: any[];\n\tpublic listaSoporteItem: any[];\n\tpublic listaAdicional1: any[];\n\tpublic listaAdicional2: any[];\n\tpublic listaAdicional3: any[];\n\n\t/**\n\t * esta variable sera usada con el fin de navegar al modulo correcto Este acto\n\t * en lanzado desde modulos independiente y deacuerdo el modulo de donde vengo,\n\t * asi mismo debo volver al modulo. Si esta variable llegase a ser null,\n\t * entonces sera direccionada al Modulo Actos Administrativo de lo contrario\n\t * sera direccionada al modulo que lo llama\n\t */\n\tpublic deDondeVengo: string;\n\n\tpublic idForm: string;\n\tpublic llaveActoNovedad: string;\n\tpublic ocultarBotones: boolean;\n\n\tpublic buscarPuesto: boolean = false;\n\n\tpublic vistaVisualizar: string;\n\tpublic campos: CampoFormularioModel[] = []\n\tpublic mostrar: boolean = false;\n\tpublic empleado: EmpleadoModel = new EmpleadoModel;\n\tpublic cedulaFiltro: string  ;\n\tpublic validaPasoCedula: boolean;\n\t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\t@ViewChild(InfoDatosPlantaComponent) infoDatosPlanta: InfoDatosPlantaComponent;\n\t@ViewChild(ActosDatosPuestoComponent) actosDatosPuesto: ActosDatosPuestoComponent;\n\t@ViewChild(PopupSeleccionPuestoComponent) popupSeleccionPuesto: PopupSeleccionPuestoComponent;\n\t@Input() public tipoSeleccionado: string;\n\t@Output() regresarAction:  EventEmitter<any> = new EventEmitter();\n\t@ViewChild('inputEmpleado') inputEmpleado: InputHelperEmpleadoBotonComponent;\n\n\tconstructor(private generalService: GeneralService,\n\t\t\t\tpublic utilsService: UtilsService,\n\t\t\t\tprivate authService: AuthService,\n\t\t\t\tprivate formatoService: FormatoService,\n\t\t\t\tprivate actoCambioEmpleadoService: ActoCambioEmpleadoService,\n\t\t\t\tprivate campoFormularioPipe: CampoFormularioPipe,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tprivate translateService: TranslateService,\n\t\t\t\tprivate generalPipe: GeneralPipe,\n\t\t\t\tprivate saraAplicacionService: SaraAplicacionService,\n\t\t\t\tprivate planillaService: PlanillaService,\n\t\t\t\tpublic controlFuncionalidadService: CargarControlFuncionalidadService,\n\t\t\t\tprivate parametrosPipe: ParametrosPipe,\n\t\t\t\tprivate selectListActos: SelectListActos,\n\t\t\t\tprivate cargarArchivo: CargarArchivosService,\n\t\t\t\tprivate encriptadorBasico: EncriptadoBasicoService,\n\t\t\t\tpublic novedadPipe: NovedadPipe,\n\t\t\t\tprivate popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\t\t\tpublic parametroFormatoPipe: ParametroFormatoPipe) { }\n\n\tngOnInit(): void {\n\t}\n\n\tprivate inicializar() {\n\t\tthis.idForm = 'form_actoTraslado';\n\t\t// INCIALIZAMOS LAS VARIABLES PARA EVITAR NULL POINTER EXCEPCION\n\t\tthis.valorSeleccionadoSelectOneRadio = this.parametroFormatoPipe.OPCION_SIN_PUESTO;\n\t\tthis.listaParaPuesto = [];\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel();\n\t\tthis.mostrarFoto = false;\n\t\tthis.seguimiento = false;\n\n\t\tthis.listaSeleccionPuestoTrabajoRadio = [];\n\t\tthis.listaSeleccionPuestoTrabajoRadio.push({value: this.parametroFormatoPipe.OPCION_CON_PUESTO, label: this.parametroFormatoPipe.OPCION_CON_PUESTO_DES});\n\t\tthis.listaSeleccionPuestoTrabajoRadio.push({value: this.parametroFormatoPipe.OPCION_SIN_PUESTO, label: this.parametroFormatoPipe.OPCION_SIN_PUESTO_DES});\n\n\t\tthis.listaFormatoDatoDocumentoItem = [];\n\t\tthis.listaFirmaDocumentoItem = [];\n\t\tthis.listaUnidadDocumentoItem = [];\n\t\tthis.listaSucursalItem = [];\n\t\tthis.listaRoloItem = [];\n\t\tthis.listaTipoCambioItem = [];\n\t\tthis.listaSoporteItem = [];\n\n\t\tthis.mostrarDatosCedula = false;\n\t\tthis.mostrarDatosAdicional = false;\n\t\tthis.mostrarPuestoTrabajo = false;\n\t\tthis.mostrarDatosPuestoTRabjo = false;\n\t\tthis.mostrarFinal = false;\n\t\tthis.mostrarLegalizar = false;\n\t\tthis.mostrarDatosAdicional = false;\n\n\t\tthis.habilitarCombosUnidadCargoPasoCedula = false;\n\t\tthis.habilitarCombosUnidadCargo = false;\n\n\t\tthis.puestoTrabajoDTOSeleccionado = null;\n\t\tthis.vistaVisualizar = null;\n\t\t//getBean(CabeceraEmpleadoBean.class).EmpleadoDTO(null);\n\t}\n\n\tasync setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.campos.forEach(async element => {\n\t\t\t\n\t\t\tif (element.tipo === 'F'){\n\t\t\t  element.valor = element.valor ? new Date(element.valor) : null;\n\t\t\t} else if (element.tipo === 'H'){\n\t\t\t  if (element.valor){\n\t\t\t\tlet listaValortemp = [];\n\t\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t  listaValortemp.push ({label: element2, value:element2})\n\t\t\t\t})\n\t\t\t\telement.valor = listaValortemp\n\t\t\t  }\n\t\t\t} else if (element.tipo === 'P'){\n\t\t\t  this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id ){\n\t\t\t\t\tconsole.log(element)\n\t\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t  readonly: !this.formularioDinamico?.editable || element.editable == 'L',\n\t\t\t\t\t  showDialog: false,\n\t\t\t\t\t  //label: element.valor,\n\t\t\t\t\t  mostrarX: true,\n\t\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t\t}\n\t\t\t  });\n\t\n\t\t\t} else {\n\t\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\t\telement.valor = element.valor.trim()\n\t\t\t\t  }\n\t\t\t}\n\t\t  });\n\t\t  await this.utilsService.sleep(500)\n\t\n\t\t  this.formularioDinamico?.ngAfterViewInit();\n\t\t  this.utilsService.resizeWindowIFrame();\n\t\n\t\t  //this.formularioDinamico.campos = this.campos;\n\t  }\n\n\t/**\n\t * Avanza al paso siguiente de acuerdo con el proceso que se esté ejecutando\n\t * (Elaboracion, Modificacion, Eliminacion, Legalizacion) y la etapa actual del\n\t * proceso\n\t * \n\t * @return\n\t */\n\tpublic async pasoSiguiente() {\n\t\tconsole.log('etapa: ' + this.etapa)\n\t\tconsole.log('paso: ' + this.paso)\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)\n\t\t\t\t|| this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA) {\n\t\t\t\tif (!await this.siguienteCedula()) {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\t}\n\t\t\t} else if (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n\t\t\t\tawait this.siguienteAdicional();\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_PUESTO_TRABAJO)) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_DATO_PUESTO)) {\n\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.length == 0) {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\t\t} else {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\t\t\tawait this.adicionarCamposSolicitudFinal(this.campoFormularioPipe.GRUPO_FINAL);\n\t\t\t\t}\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\t\tif (!this.formularioDinamico.validar()) {\n\t\t\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\t}\n\t\t} else if (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tawait this.siguienteDatosLegalizar();\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t}\n\t\tawait this.utilsService.sleep(1000)\n\t\tthis.accionPaso();\n\t}\n\n\t/**\n\t * Regresa el proceso al paso inmediatamente anterior\n\t * \n\t * @return\n\t */\n\tpublic pasoAnterior() {\n\t\tif (this.paso == null) {\n\t\t\treturn null;\n\t\t}\n\t\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA){\n\t\t\tthis.regresarActoAdmin();\n\t\t\treturn;\n\t\t}\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)\n\t\t\t\t|| this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.length == 0) {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\t\t} else {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\t\t}\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\t\tthis.formularioDinamico.removerCamposIdGrupo(this.campoFormularioPipe.GRUPO_FINAL);\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_DATO_PUESTO)) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_PUESTO_TRABAJO)) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t} else if (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\t\t}\n\t\t}\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t}\n\t\tthis.accionPaso();\n\t}\n\n\thandleEnterKey(event) {\n\t\tevent.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t}\n\t\n\t\n\tfiltrarEnter(event) {\n\t\tif (event.key === 'Enter') {\n\t\t\tvar filtroEmpleado: EmpleadoModel = new EmpleadoModel;\n\t\t\tfiltroEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'))\n\t\t\tfiltroEmpleado.documento = this.cedulaFiltro,\n\t\t\tfiltroEmpleado.soloActivos = 'L'\n\t\t\tthis.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, filtroEmpleado)).subscribe(async data => {\n\t\t\tif (data.length == 1){\n\t\t\t\tawait this.verPopupHojaVida(data[0])\n\t\t\t} else {\n\t\t\t\tthis.inputEmpleado.openDataTable()\n\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tpublic async siguienteBuscarOtro() {\n\t\tif (this.valorSeleccionadoSelectOneRadio == (this.parametroFormatoPipe.OPCION_CON_PUESTO)) {\n\t\t\tawait this.popupSeleccionPuesto.traerPuesto(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto);\n\t\t\t//PopupSeleccionPuestoBean.Popup().traerPuesto(this.actoCambioEmpleadoBorrarDTO, listaParaPuesto, '#{actoTrasladoBean.retornoPuesto}');\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async setRetornoPuesto(dato: string) {\n\t\tconsole.log(dato)\n\t\tif (dato == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n\t\tawait this.pasoSiguiente();\n\t}\n\n\tpublic mostrarDatosPlanta(modificar: boolean) {\n\t\tconsole.log('mostrarDatosPlanta')\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tthis.utilsService.sleep(500).then(data => {\n\t\t\tif (modificar) {\n\t\t\t\tthis.actosDatosPuesto.mostrarDato(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto, this.llaveBase, '#{actoTrasladoBean.continuarDatosPlanta}');\n\t\t\t} else {\n\t\t\t\tthis.actosDatosPuesto.mostrarDato(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto, null, null);\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate accionPaso()  {\n\t\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA || this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n\t\t\tthis.formularioDinamico?.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL,\n\t\t\t\t\tthis.campoFormularioPipe.CAMPO_EDITABLE);\n\t\t} else {\n\t\t\tthis.formularioDinamico?.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL,\n\t\t\t\t\tthis.campoFormularioPipe.CAMPO_LECTURA);\n\t\t}\n\n\t\tif (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n\t\t\tthis.modificarFormulario(true);\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_DATO_PUESTO)) {\n\t\t\tthis.mostrarDatosPlanta(true);\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\tthis.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_FINAL,\n\t\t\t\t\tthis.campoFormularioPipe.CAMPO_EDITABLE);\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\tthis.mostrarDatosPlanta(false);\n\t\t\tthis.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_FINAL,\n\t\t\t\t\tthis.campoFormularioPipe.CAMPO_LECTURA);\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL_LEGALIZAR)) {\n\t\t\tthis.modificarFormulario(true);\n\t\t\tthis.mostrarDatosPlanta(false);\n\t\t}\n\t}\n\n\tprivate modificarFormulario(b: boolean) {\n\t\tthis.formularioDinamico.editable = b;\n\t}\n\n\tpublic async setContinuarDatosPlanta(actoCambioRetorno: any) {\n\t\tif (actoCambioRetorno.retorno == 'salir') {\n\t\t\tthis.regresarActoAdmin();\n\t\t\treturn;\n\t\t}\n\t\tif (actoCambioRetorno.retorno == 'regresar') {\n\t\t\tthis.pasoAnterior();\n\t\t\treturn;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO = actoCambioRetorno.actoCambioEmpleadoDTO;\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tawait this.procesoCombinacion();\n\t\tawait this.pasoSiguiente();\n\t}\n\n\tpublic async elaborar(empresa: number, contrato: number, formato: number, grupo: number, descripcionGrupo: string, actoCorregir: ActoCambioEmpleadoModel) {\n\t\tthis.inicializar();\n\t\tthis.descripcionGrupo = descripcionGrupo;\n\t\tif (actoCorregir == null) {\n\t\t\tawait this.nuevo(empresa, contrato, formato, grupo).then(async data => {await this.setValorCampos()});\n\t\t} else {\n\t\t\tawait this.corregir(actoCorregir);\n\t\t}\n\t}\n\n\tprivate async corregir(actoCorregir: ActoCambioEmpleadoModel) {\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\t\tthis.mostrarFoto = true;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: actoCorregir.llave, etapa: this.etapa}).toPromise();\n\t\tthis.actoCambioEmpleadoBorrarDTO.derogacion = actoCorregir.llave;\n\t\tthis.actoCambioEmpleadoBorrarDTO.postLegalizada = this.parametroFormatoPipe.CORREGIR;\n\n\t\tthis.unidadAntes = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\tthis.cargoAntes = this.actoCambioEmpleadoBorrarDTO.cargo;\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null) {\n\t\t\tvar contrato: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\t\t\tif (contrato != 0 && empresa != 0) {\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\n\n\t\tthis.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\tif (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.llavePuesto != null) {\n\t\t\tthis.puestoTrabajoDTOSeleccionado = new PuestoTrabajoModel();\n\t\t\tthis.puestoTrabajoDTOSeleccionado.llave = this.actoCambioEmpleadoBorrarDTO.llavePuesto;\n\t\t\tthis.puestoTrabajoDTOSeleccionado = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, this.puestoTrabajoDTOSeleccionado)).toPromise();\n\t\t}\n\n\t\t// CARGAMOS EL FORUMARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t}\n\n\tpublic async nuevoActoNovedad(empresa: number, contrato: number, formato: number, grupo: number, llaveActoNovedad: string) {\n\t\tthis.llaveActoNovedad = llaveActoNovedad;\n\t\tawait this.nuevo(empresa, contrato, formato, grupo);\n\t}\n\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * \n\t * @param empresa  Empresa con la que se desea hacer el trasado\n\t * @param contrato Contrato del nuevo acto Traslado\n\t * @param formato  LLave del formato que tendra relacionado este Acto Ingreso\n\t * @param grupo    Cada Acto Ingreso tendra relacionado un grupo vincula\n\t */\n\tpublic async nuevo(empresa: number, contrato: number, formato: number, grupo: number) {\n\t\tthis.formularioDinamico?.limpiar();\n\t\tthis.mostrarDatosCedulaCampos = true;\n\t\tthis.mostrarFoto = false;\n\t\tthis.mostrarDatosCedula = true;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\t\tthis.unidadAntes = this.generalPipe.ESPACIO_NULO;\n\t\tthis.cargoAntes = this.generalPipe.ESPACIO_NULO;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel();\n\t\tif (this.utilsService.isNotBlank(this.llaveActoNovedad)) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.llaveTipoNovedad = this.llaveActoNovedad;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.formato = formato;\n\t\tthis.actoCambioEmpleadoBorrarDTO.postLegalizada = this.generalPipe.PUNTO;\n\t\tif (contrato != 0) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleado = 0;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.empresa = empresa;\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO =\n\t\t\t\tawait this.formatoService.traerFormato({formato: formato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\n\t\tif (contrato != 0 && empresa != 0) {\n\t\t\tvar empleadoDTO: EmpleadoModel = new EmpleadoModel();\n\t\t\templeadoDTO.empresa = empresa;\n\t\t\templeadoDTO.contrato = contrato;\n\t\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = empleadoDTO;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.hojaVida = empleadoDTO.cedula;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empresa = empresa;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.contratoAnt = contrato;\n\n\t\t\templeadoDTO = new EmpleadoModel();\n\t\t\templeadoDTO.contrato = contrato;\n\t\t\templeadoDTO.empresa = empresa;\n\t\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\t\tif (empleadoDTO != null) {\n\t\t\t\tawait this.setFuncionario(empleadoDTO);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = new EmpleadoModel;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.grupoVincula = grupo;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaSoporteItem.forEach(formatoFirmaDTO => {\n\n\t\t\tif (formatoFirmaDTO.origenActo != null\n\t\t\t\t\t&& formatoFirmaDTO.origenActo == this.parametroFormatoPipe.ACTOS_ORIGINALES) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.soporte = formatoFirmaDTO.planilla;\n\t\t\t\treturn;\n\t\t\t}\n\t\t})\n\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp != this.generalPipe.PUNTO) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.tipoCambio = this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp;\n\t\t}\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\tthis.cargarCombos(formato);\n\t\tawait this.cargarDatosEmpleadoContrato(0, 0);\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.mostrar = true;\n\t}\n\n\tpublic validarDatosCedulaEmpleado() {\n\t\tvar valida = true;\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.empleado);\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0) {\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.antesesor);\n\t\t}\n\n\t\treturn valida;\n\t}\n\n\tobtenerDatoAntecesor(): ActoIngresoAusenciaModel {\n\t\tvar actoDTO = new ActoIngresoAusenciaModel;\n\t\tif (!this.actoCambioEmpleadoBorrarDTO){\n\t\t\treturn actoDTO;\n\t\t}\n\t\tactoDTO.formatoPadre = this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\tactoDTO.estado = 6;\n\t\tactoDTO.cedula = this.actoCambioEmpleadoBorrarDTO.hojaVida;\n\t\tactoDTO.campoEstado = this.parametroFormatoPipe.TIPO_ACTO_INGRESO;\n\t\treturn actoDTO;\n\t}\n\n\t/**\n\t * Metodo que continua con el siguiente paso del proceso, este metodo se\n\t * encargar de verificar la informacion que se ha registrado el proceso de\n\t * ingreso de datos del empleado. Validaciones y demas.. Ademas de validar la\n\t * inclusi\\u00F3n del n\\u00FAmero de la cedula, validar la inclusi\\u00F3n del\n\t * n\\u00FAmero del n\\u00FAmero del contrato (y/o sacar mensajes de\n\t * inconsistencia)\n\t */\n\tpublic async siguienteCedula() {\n\t\tthis.validaPasoCedula = true;\n\t\tif (!this.validarDatosCedulaEmpleado()) {\n\t\t\treturn true;\n\t\t}\n\t\tthis.validaPasoCedula = false;////////////\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.validaIngresoContratoTraslado({actoCambio: this.actoCambioEmpleadoBorrarDTO, \n\t\t\tusuario: this.authService.getTokenKey('usuario'), etapa: this.etapa}).toPromise();\n\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tif (this.actoCambioEmpleadoBorrarDTO.mensaje != null) {\n\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\treturn true;\n\t\t}\n\t\t// asignamos el siguiente paso\n\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\t// SI ESTE ACTO TIENE ANTECESOR LE COLOCAMOS LOS DATOS DE UNIDAD Y CARGO DEL\n\t\t// ANTECESOR\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.antesesor != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.conAntecesor({\n\t\t\t\t\tactoCambio: this.actoCambioEmpleadoBorrarDTO, antecesor: this.actoCambioEmpleadoBorrarDTO.antesesor}).toPromise();\n\t\t}\n\t\t// Actualizamos los valores en el formulario\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\treturn false;\n\t}\n\n\t/**\n\t * Permite mostrar el formulario de legalizacion pero sin botones para los actos\n\t * que tienen relacionado una novedad.\n\t * \n\t * @param llave\n\t */\n\tpublic async verFormularioParaBPM(llave: string) {\n\t\tthis.ocultarBotones = true;\n\t\tawait this.legalizacion(llave);\n\t}\n\n\t/**\n\t * Permite legalizar un acto administrativo\n\t * \n\t * @param llave La llave del acto administrativo que se quiere legalizar\n\t */\n\tpublic async legalizacion(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null)\n\t\t\t\t? this.parametroFormatoPipe.ACCION_CORRECCION\n\t\t\t\t: this.parametroFormatoPipe.ACCION_ORIGINAL;\n\n\t\tthis.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1100)\n\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null) {\n\t\t\tvar contrato: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\n\t\t\tif (contrato != 0 && empresa != 0) {\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\tif ((this.listaParaCampoLegalizada.length == 0)) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.procesoCombinacion();\n\t\t} else {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t}\n\t}\n\n\t/**\n\t * Metodo que controla el proceso de legalizacion Validando los campos de\n\t * listaparacamposlegaliza\n\t */\n\tpublic async siguienteDatosLegalizar() {\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\t// VALIDAMOS LA INCLUISION DE LISTAPARACAMPOLEGALIZA\n\t\t\tif (!this.formularioDinamico.validar()) {\n\t\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t/**\n\t\t\t * Si paso las validaciones hacemos una actualizacion del registro\n\t\t\t * actoCambioEmpleadoBorrarDTO\n\t\t\t */\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = this.actoCambioEmpleadoService.formatearActoCambioEmpleado(this.actoCambioEmpleadoBorrarDTO);\n\t\t\tawait this.actoCambioEmpleadoService.actualizarActoCambioEmpleado(this.actoCambioEmpleadoBorrarDTO).toPromise();\n\t\t\t//await this.generalService.update(new GeneralModel('ActoCambioEmpleadoDTO', null, false, this.actoCambioEmpleadoBorrarDTO)).toPromise();\n\t\t\t\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.procesoCombinacion();\n\t\t} else if (this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.procesoCombinacion();\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la listaParaCampoLegalizada\n\t * \n\t * @see LegalizarActoIngresoBean\n\t */\n\tpublic async crearFormularioListaLegalizada() {\n\t\tvar campos2: CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\t\tthis.formularioDinamico?.limpiar();\n\n\t\t// adicionamos al grupo1, los datos del grupo 2\n\t\tfor (var g2 of this.campos) {\n\t\t\tg2.editable = ('L');\n\t\t\tg2.obligatorio = (false);\n\t\t\t//this.campos.push(g2);\n\t\t}\n\n\t\tfor (var dato of this.listaParaCampoLegalizada) {\n\t\t\tfor (var campo of campos2) {\n\t\t\t\tif (campo.descripcion != (dato.campo.trim())) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tawait this.cargarDatosCamposFormulario(campo);\n\n\t\t\t\tcampo.idGrupoPertenece = (this.campoFormularioPipe.GRUPO_INICIAL);\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\tcampo.descripcion = dato.titulo != null\n\t\t\t\t\t\t&& dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo\n\t\t\t\t\t\t\t\t: campo.descripcion;\n\t\t\t\tcampo.descripcionAdicional = (dato.campo);\n\t\t\t\tthis.campos.push(campo);\n\t\t\t}\n\t\t}\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t}\n\n\tpublic async cargaListaFormularioLeglizadaYcampo() {\n\t\tvar datoDTO = new FormatoDatoModel();\n\t\tdatoDTO.formato = this.actoCambioEmpleadoBorrarDTO.formato;\n\t\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n\t\tconsole.log('listaParaCampoLegalizada')\n\t\tconsole.log(this.listaParaCampoLegalizada)\n\t\t// CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n\t\tawait this.crearFormularioListaParaCampo()\n\t\tawait this.crearFormularioListaLegalizada();\n\n\t\tif (this.listaParaCampoLegalizada != null && this.listaParaCampoLegalizada.length == 0) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t} else {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t}\n\t}\n\n\t/**\n\t * Metodo que nos valida los combos de unidad y cargo\n\t * \n\t * @return boolean Retorna True o False de acuerdo pase las validaciones\n\t */\n\tpublic validarCombos() {\n\t\tvar valida = true;\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.unidad);\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.cargo);\n\t\treturn valida;\n\t}\n\n\t/**\n\t * Metodo que controla el tercer proceso que es donde se selecciona por medio de\n\t * selectoneradio si deseo incluir un puesto de trabajo o no\n\t * \n\t */\n\tpublic async siguienteAdicional()  {\n\t\t/**\n\t\t * Validamos los campos listaparacampos de que esten correctamente adicionados\n\t\t * Validamos la seleccion de una unidad y un cargo Con el formulario dinamico\n\t\t * validamos la listaparacampos La unidad y el cargo si la debemos validar con\n\t\t * aqui\n\t\t */\n\t\tif (!this.formularioDinamico.validar()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\n\t\t// colocamos los valores del formulario en el dto que tenemos en el formulario\n\t\t// dinamico\n\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\t// Actualizar las descripciones de unidad y cargo\n\t\tvar unidadUsuarioDTO = new UnidadUsuarioModel();\n\t\tunidadUsuarioDTO.unidad = this.utilsService.rightpad(this.actoCambioEmpleadoBorrarDTO.unidad, 12, ' ');\n\t\tunidadUsuarioDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\tunidadUsuarioDTO.login = this.authService.getTokenKey('usuario');\n\t\tunidadUsuarioDTO.rol = this.authService.getTokenKey('aliasRol');\n\t\tunidadUsuarioDTO = await this.generalService.queryForObject(new GeneralModel('UnidadUsuarioDTO', null, false, unidadUsuarioDTO)).toPromise();\n\t\tif (unidadUsuarioDTO == null) {\n\t\t\tthis.notificacionesService.showWarning('No tiene permiso a la unidad');\n\t\t\treturn;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUnidad = unidadUsuarioDTO.nombreUnidad;\n\n\t\tvar cargoDTO = new CargoModel();\n\t\tcargoDTO.cargo = this.utilsService.rightpad(this.actoCambioEmpleadoBorrarDTO.cargo, 8, ' ');\n\t\tcargoDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\tcargoDTO = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, cargoDTO)).toPromise();\n\t\tif (cargoDTO == null) {\n\t\t\tthis.notificacionesService.showWarning('No tiene permiso al cargo');\n\t\t\treturn;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCargo = cargoDTO.descripcion;\n\t\tconsole.log(cargoDTO)\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO.descripcionCargo )\n\t\tif (this.actoCambioEmpleadoBorrarDTO.tipoCambio == null\n\t\t\t\t|| this.actoCambioEmpleadoBorrarDTO.tipoCambio.trim() == this.generalPipe.PUNTO) {\n\t\t\tif (this.formularioDinamico.obtenerCampo('tipoCambio') != null) {\n\t\t\t\tthis.notificacionesService.showWarning('Tipo de cambio ingreso no definido');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO != null && this.generalPipe.SI\n\t\t\t\t\t == this.actoCambioEmpleadoBorrarDTO.formatoDTO.definitivo) {\n\t\t\t\tthis.notificacionesService.showWarning('Tipo de cambio ingreso no definido');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (!this.validarCombos()) {\n\t\t\tthis.notificacionesService.showError('Falta unidad o cargo')\n\t\t\treturn;\n\t\t}\n\n\t\t// SI ESTE ACTO TIENE ANTECESOR LE COLOCAMOS LOS DATOS del puesto trabajo del\n\t\t// antecesor\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.antesesor != null) {\n\t\t\tvar actoTMP = new ActoCambioEmpleadoModel();\n\t\t\tactoTMP.llave = this.actoCambioEmpleadoBorrarDTO.antesesor;\n\t\t\tactoTMP = await this.generalService.queryForObject(new GeneralModel('ActoCambioEmpleadoDTO', null, false, actoTMP)).toPromise();\n\t\t\tif (actoTMP != null && actoTMP.llavePuesto != null) {\n\t\t\t\tvar puestoBase = new PuestoTrabajoModel();\n\t\t\t\tpuestoBase.llave = actoTMP.llavePuesto;\n\t\t\t\tpuestoBase = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, puestoBase)).toPromise();\n\n\t\t\t\tif (puestoBase != null) {\n\t\t\t\t\tthis.puestoTrabajoDTOSeleccionado = puestoBase;\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.llavePuesto = this.puestoTrabajoDTOSeleccionado.llave;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (actoTMP != null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.unidad = actoTMP.unidad;\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.cargo = actoTMP.cargo;\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.disponible != null\n\t\t\t\t&& (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico\n\t\t\t\t\t\t == this.parametrosPipe.PUESTO_PREDEFINIDO\n\t\t\t\t\t\t|| this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico\n\t\t\t\t\t\t\t\t == this.parametrosPipe.PUESTO_PREDEFINIDO_LIBERAR)) {\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.unidad != this.unidadAntes\n\t\t\t\t\t|| this.actoCambioEmpleadoBorrarDTO.cargo != this.cargoAntes) {\n\t\t\t\tthis.unidadAntes = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\t\t\tthis.cargoAntes = this.actoCambioEmpleadoBorrarDTO.cargo;\n\t\t\t}\n\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico == null || this.actoCambioEmpleadoBorrarDTO\n\t\t\t\t\t.formatoDTO.tipoAutomatico != this.parametrosPipe.AUTOMATICA_CREA_PUESTO) {\n\t\t\t\tif (this.buscarPuesto) {\n\t\t\t\t\tawait this.popupSeleccionPuesto.traerPuesto(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto);\n\t\t\t\t\t//PopupSeleccionPuestoBean.Popup().traerPuesto(this.actoCambioEmpleadoBorrarDTO, listaParaPuesto,\n\t\t\t\t\t//\t\t'#{actoTrasladoBean.retornoPuesto}');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t} else {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t}\n\t}\n\n\tpublic obligatorio(campo: string) {\n\t\tvar retorno = false;\n\t\tthis.listaParaPuesto.forEach(dto => {\n\t\t\tif (dto.campo != null && dto.campo.trim() == (campo)) {\n\t\t\t\tretorno =  dto.accion != null && (dto.accion == this.parametroFormatoPipe.INGRESARE);\n\t\t\t}\n\t\t})\n\t\treturn retorno;\n\t}\n\n\t/**\n\t * Metodo\n\t * \n\t */\n\tpublic async continuarDatoPuesto() {\n\t\tvar actoCopia = this.actoCambioEmpleadoBorrarDTO;\n\t\tthis.actoCambioEmpleadoBorrarDTO.estadoNumero = 0;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO.solicita =  await this.saraAplicacionService.getCedula();\n\t\tvar acto = await this.actoCambioEmpleadoService.elaborarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, \n\t\t\tusuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\tthis.actoCambioEmpleadoBorrarDTO = acto;\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCargo = actoCopia.descripcionCargo;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCentroCosto = actoCopia.descripcionCentroCosto;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionLineaCosto = actoCopia.descripcionLineaCosto;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUbicacionFis = actoCopia.descripcionUbicacionFis;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUnidad = actoCopia.descripcionUnidad;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica = actoCopia.descripcionZonaEconomica;\n\t\tif (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.mensaje != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.mensaje.trim().length != 0) {\n\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n\t\tawait this.procesoCombinacion();\n\t}\n\n\t/**\n\t * Metodo que me genera el reporte pdf\n\t */\n\tpublic async procesoCombinacion() {\n\t\tvar data = await this.planillaService.combinarArchivo({llave: this.actoCambioEmpleadoBorrarDTO.llave, llavePlantilla: this.actoCambioEmpleadoBorrarDTO.soporte, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n\t\t\tborrarArchivo: false, llaveEmpresa: this.authService.getTokenKey('llaveEmpresa')}).toPromise();\n\n\t\tif (data?.respuesta){\n\t\t\tthis.archivoSalida = data.respuesta;\n\t\t}\n\t\tif (this.etapa != null && (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION || this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tthis.borrarRegistro();\n\t\t}\n\t}\n\n\tpublic borrarRegistro() {\n\t\t// BORRAMOS EL REGITRO\n\t\tif (this.actoCambioEmpleadoBorrarDTO != null) {\n\t\t\tthis.actoCambioEmpleadoService.borrarRegistroCambio({llave: this.actoCambioEmpleadoBorrarDTO.llave}).subscribe(data => {});\n\t\t}\n\t}\n\n\t/**\n\t * Accion final que sea aplica sobre el acto administrativo de acuerdo con la\n\t * etapa del proceso (ELABORACION/MODIFICACION, ELIMINACION, LEGALIZACION)\n\t */\n\tpublic async aplicarFinal() {\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION) {\n\t\t\t/*confirmar(\n\t\t\t\t\t'Desea eliminar el acto Admistrativo de '\n\t\t\t\t\t\t\t+ this.actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion,\n\t\t\t\t\t'#{actoTrasladoBean.confirmacion}');\n\t\t\treturn null;*/\n\t\t}\n\n\t\tvar llaveSeguimiento = this.seguimiento ? this.utilsService.generarLlave() : null;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\tawait this.actoCambioEmpleadoService.legalizarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), etapa: this.etapa, llaveBase: this.llaveBase, seguimiento: llaveSeguimiento}).toPromise();\n\t\tif (!this.utilsService.isBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n\n\t\tvar data  = await this.actoCambioEmpleadoService.registrarAnexoHojaActoCambio({actoCambioDTO: this.actoCambioEmpleadoBorrarDTO, archivo: this.archivoSalida, llaveEliminar: this.llaveBase}).toPromise();\n\t\tvar archivoResultado;\n\t\tif (data?.respuesta) {\n\t\t\tarchivoResultado = data.respuesta;\n\t\t}\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\t/**\n\t\t\t * verificamos que el archivo de este acto, se halla genereado bien\n\t\t\t */\n\t\t\tif (archivoResultado != null) {\n\t\t\t\t/*String nombreArchivo = getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)\n\t\t\t\t\t\t+ System.Property('file.separator') + this.actoCambioEmpleadoBorrarDTO.llave\n\t\t\t\t\t\t+ this.generalPipe.PUNTO + this.generalPipe.ARCHIVO_PDF;\n\t\t\t\tgetBean(PopupSubirArchivoActosBean.class).buscar('#{actoTrasladoBean.terminar}',\n\t\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO, nombreArchivo);\n\t\t\t\treturn null;*/\n\t\t\t}\n\t\t}\n\n\t\t// Muestra el popup de seguimiento. Al cerrarlo muestra el mensaje de éxito del\n\t\t// proceso\n\t\tif (this.seguimiento) {\n\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actoTrasladoBean.cierreSeguimiento}');\n\t\t} else {\n\t\t\t// Muestra el mensaje de éxito del proceso\n\t\t\tvar titulo = this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION\n\t\t\t\t\t? this.translateService.instant('procesosatisfactorioeliminar')\n\t\t\t\t\t: this.translateService.instant('procesosatisfactorio');\n\t\t\tthis.notificacionesService.showInfo(titulo);\n\t\t\tthis.setRegresar()\n\t\t}\n\t}\n\n\tpublic setRegresar() {\n\t\tthis.regresarActoAdmin();\n\t}\n\n\t/**\n\t * Método de retorno del popup de confirmacion de eliminacion del acto de\n\t * traslado\n\t * \n\t * @param resultado\n\t */\n\tpublic async setConfirmacion() {\n\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\tawait this.actoCambioEmpleadoService.legalizarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), etapa: this.etapa, llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\t\tif (!this.utilsService.isBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\t\treturn ;\n\t\t\t}\n\t\tvar titulo = this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION\n\t\t\t\t? this.translateService.instant('procesosatisfactorioeliminar')\n\t\t\t\t: this.translateService.instant('procesosatisfactorio');\n\t\tthis.notificacionesService.showInfo(titulo);\n\t\tthis.setRegresar();\n\t}\n\n\t/**\n\t * Método de retorno del evento de cierre del popup de seguimiento Muestra\n\t * mensaje de éxito del proceso\n\t * \n\t * @param objeto Se utiliza este parámetro para dar al método la forma de un\n\t *               método SET\n\t */\n\tpublic setCierreSeguimiento() {\n\t\tvar titulo = this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION ? this.translateService.instant('procesosatisfactorioeliminar')\n\t\t\t\t: this.translateService.instant('procesosatisfactorio');\n\t\tthis.notificacionesService.showInfo(titulo, '#{actoTrasladoBean.regresar}');\n\t}\n\n\tpublic setTerminar() {\n\t\tthis.irNavegar();\n\t}\n\n\tprivate irNavegar() {\n\t\tif (this.deDondeVengo != null && this.deDondeVengo == (this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO)) {\n\t\t\t//getBean(ActosEmpleadoBean.class).Regresar();\n\t\t\treturn;\n\t\t}\n\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t}\n\n\tpublic async cargarDatosEmpleadoContrato(contrato: number, empresa: number) {\n\t\tvar empleadoDTO: EmpleadoModel = new EmpleadoModel();\n\t\templeadoDTO.empresa = empresa;\n\t\templeadoDTO.contrato = contrato;\n\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\tif (empleadoDTO != null) {\n\t\t\tawait this.setFuncionario(empleadoDTO);\n\t\t}\n\t}\n\n\t/**\n\t * Permite modificar el acto administrativo\n\t * \n\t * @param llave La llave del acto administrativo que se quiere modificar\n\t */\n\tpublic async modificar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null)\n\t\t\t\t? this.parametroFormatoPipe.ACCION_CORRECCION\n\t\t\t\t: this.parametroFormatoPipe.ACCION_ORIGINAL;\n\n\t\tthis.unidadAntes = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\tthis.cargoAntes = this.actoCambioEmpleadoBorrarDTO.cargo;\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null) {\n\t\t\tvar contrato: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\t\t\tif (contrato != 0 && empresa != 0) {\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\n\n\t\tthis.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\tif (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.llavePuesto != null) {\n\t\t\tthis.puestoTrabajoDTOSeleccionado = new PuestoTrabajoModel();\n\t\t\tthis.puestoTrabajoDTOSeleccionado.llave = this.actoCambioEmpleadoBorrarDTO.llavePuesto;\n\t\t\tthis.puestoTrabajoDTOSeleccionado = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO',null, false, this.puestoTrabajoDTOSeleccionado)).toPromise();\n\t\t}\n\n\t\t// CARGAMOS EL FORUMARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\n\t\tif (!await this.siguienteCedula()) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t}\n\t}\n\n\t/**\n\t * Permite eliminar un acto administrativo\n\t * \n\t * @param llave La llave del acto administrativo que se quiere eliminar\n\t */\n\tpublic async eliminar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\t\tthis.mostrarFoto = true;\n\t\tthis.llaveBase = llave;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null)\n\t\t\t\t? this.parametroFormatoPipe.ACCION_CORRECCION\n\t\t\t\t: this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1100);\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null) {\n\t\t\tvar contrato: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\n\t\t\tif (contrato != 0 && empresa != 0) {\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\tthis.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\n\t\t// CARGAMOS EL FORUMARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t}\n\n\tpublic async enviarPasoFinal() {\n\t\t// Cargamos los datos del bean InfoEmpleadoOcupaBean\n\t\tthis.infoDatosPlanta.actoCambioEmpleadoBorrarDTO = this.actoCambioEmpleadoBorrarDTO;\n\t\tthis.infoDatosPlanta.eventoActosEjecutar = 'actotraslado';\n\t\tthis.infoDatosPlanta.accion = this.accion;\n\t\tthis.infoDatosPlanta.etapa = this.etapa;\n\t\tthis.infoDatosPlanta.cargarDescripciones();\n\t\tvar listaDatosPlanta: FormatoDatoModel[] = [];\n\t\tvar dtoF = new FormatoDatoModel();\n\t\tdtoF.formato = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tdtoF.tipo = 'PT';\n\t\tlistaDatosPlanta = await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, dtoF)).toPromise();\n\t\t\n\t\tthis.infoDatosPlanta.listaDatosPlanta = listaDatosPlanta;\n\t\tthis.infoDatosPlanta.asignaDatosDefecto();\n\t\tthis.infoDatosPlanta.LLAVE_BASE = this.llaveBase;\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la lista para campo\n\t */\n\tpublic async crearFormularioListaParaCampo() {\n\t\tthis.campos = [];\n\t\tvar campos2: CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\t\tthis.formularioDinamico?.limpiar();\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos.forEach(dato => {\n\t\t\tcampos2.forEach(async campo =>  {\n\t\t\t\tif (campo.descripcion == (dato.campo.trim())) {\n\t\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t\t// CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS QUE CUMPLAN CON DICHO\n\t\t\t\t\t// CONDICION\n\t\t\t\t\tif (dato.accion != null\n\t\t\t\t\t\t\t&& dato.accion.trim() != this.parametroFormatoPipe.INGRESARE) {\n\t\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t\t}\n\t\t\t\t\t// verificamos si el campo solo se pude visualizar\n\t\t\t\t\tif (dato.accion != null\n\t\t\t\t\t\t\t&& dato.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR)) {\n\t\t\t\t\t\tcampo.editable = 'L';\n\t\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tawait this.cargarDatosCamposFormulario(campo);\n\n\t\t\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo: campo.descripcion;\n\t\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t\tvar campo: CampoFormularioModel = new CampoFormularioModel(this.campoFormularioPipe.POPUP, this.translateService.instant('unidad'), 12, 0, 'unidad', false, null, 'popupUnidadUsuarioBean',this.parametroFormatoPipe.ESEDITABLE);\t\tcampo.obligatorio = true;\n\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\tthis.campos.push(campo);\n\t\tcampo.campoReferencia = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\t//campo = new CampoFormulario(this.campoFormularioPipe.POPUP, dameBasicBundle('cargo', 'Cargo'), 8, 'cargo', false,null, 'popupCargo', this.parametroFormatoPipe.ESEDITABLE);\n\t\tcampo = new CampoFormularioModel(this.campoFormularioPipe.POPUP, this.translateService.instant('cargo'), 8, 0, 'cargo', false, null, 'popupCargo', this.parametroFormatoPipe.ESEDITABLE);\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico != null && this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico != this.generalPipe.SI) {\n\t\t\tcampo.campoDepende = 'unidad';\n\t\t\tcampo.campoReferenciaDos = this.actoCambioEmpleadoBorrarDTO.formatoDTO.disponible;\n\t\t\tcampo.campoReferencia = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\t}\n\t\tcampo.obligatorio = true;\n\t\tthis.campos.push(campo);\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\tthis.verUnidadCargo();\n\t\tawait this.setValorCampos();\n\t}\n\n\tprivate async cargarDatosCamposFormulario(campo: CampoFormularioModel)  {\n\t\t// CARGAMOS EL COMBO PARA CADA CAMPO\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\tcampo.lista = this.listaFormatoDatoDocumentoItem;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.UNIDAD_ORIGEN)) {\n\t\t\tcampo.lista = this.listaUnidadDocumentoItem;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\tif(this.controlFuncionalidadService.getControlFuncionalidad('actadm:filuni')) {\n\t\t\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: this.actoCambioEmpleadoBorrarDTO.formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).toPromise());\n\t\t\t}else {\n\t\t\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: this.actoCambioEmpleadoBorrarDTO.formato})).toPromise());\n\t\t\t}\n\t\t\tcampo.lista = this.listaFirmaDocumentoItem;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\tcampo.lista = this.listaSucursalItem;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.ROL)) {\n\t\t\tcampo.lista = this.listaRoloItem;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)) {\n\t\t\tcampo.lista = this.listaTipoCambioItem;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\tcampo.lista = this.listaSoporteItem;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_1)) {\n\t\t\tcampo.lista = this.listaAdicional1;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_2)) {\n\t\t\tcampo.lista = this.listaAdicional2;\n\t\t} else if (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_3)) {\n\t\t\tcampo.lista = this.listaAdicional3;\n\t\t}\n\t}\n\n\tprivate async adicionarCamposSolicitudFinal(etapaFormulario: string)  {\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.forEach(dato => {\n\t\t\tcampos2.forEach(async campo => {\n\t\t\t\tif (campo.descripcion != dato.campo.trim()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait this.cargarDatosCamposFormulario(campo);\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\tcampo.descripcion =  dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\tcampo.idGrupoPertenece = etapaFormulario;\n\t\t\t\tthis.formularioDinamico.campos.push(campo);\n\t\t\t})\n\t\t})\n\t\tthis.formularioDinamico.modificarValorCamposAdicionales(this.actoCambioEmpleadoBorrarDTO,\n\t\t\t\tthis.campoFormularioPipe.GRUPO_FINAL);\n\t}\n \n\tpublic verUnidadCargo() {\n\t\tvar entradaCargo: boolean = false;\n\t\tvar entradaUnidad: boolean = false;\n\t\tfor(let dto of this.listaParaPuesto) {\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.CARGO)) {\n\t\t\t\tentradaCargo = dto.accion == this.parametroFormatoPipe.INGRESARE;\n\t\t\t}\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.UNIDAD)) {\n\t\t\t\tentradaUnidad = dto.accion == this.parametroFormatoPipe.INGRESARE;\n\t\t\t}\n\t\t};\n\t\tthis.buscarPuesto = entradaCargo || entradaUnidad;\n\n\t\tif (this.formularioDinamico.campos.length > 0) {\n\t\t\tfor (let campo of this.formularioDinamico.campos) {\n\t\t\t\tif (campo.descripcion != null) {\n\t\t\t\t\tif (campo.campo == ('unidad')) {\n\t\t\t\t\t\tif (!entradaUnidad) {\n\t\t\t\t\t\t\tcampo.editable = 'L';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcampo.obligatorio = entradaUnidad;\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.campo == ('cargo')) {\n\t\t\t\t\t\tif (!entradaCargo) {\n\t\t\t\t\t\t\tcampo.editable = 'L';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcampo.obligatorio = entradaCargo;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Este metodo cargo todos los combos que necesitan entre ellos..(ListaSoporte,\n\t * ListaCargo, ListaUnidadOrganizacion etc...\n\t * \n\t * @param formato\n\t */\n\tprivate cargarCombos(formato: number) {\n\t\tvar formatoDatoDTO = new FormatoDatoModel();\n\t\tformatoDatoDTO.formato = formato;\n\t\tformatoDatoDTO.tipo = 'TD';\n\t\tthis.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, formatoDatoDTO)).subscribe(data => {\n\t\t\tthis.listaFormatoDatoDocumentoItem =this.selectListActos.getSelectItemFormatoDatoDocumentoItem(data);\n\t\t})\n\t\tif(this.controlFuncionalidadService.getControlFuncionalidad('actadm:filuni')) {\n\t\t\tthis.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: this.actoCambioEmpleadoBorrarDTO.formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).subscribe(data => {\n\t\t\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(data);\n\t\t\t})\n\t\t}else {\n\t\t\tthis.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: this.actoCambioEmpleadoBorrarDTO.formato})).subscribe(data => {\n\t\t\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(data);\n\t\t\t})\n\t\t}\n\n\t\tvar rolesDTO = new RolesModel();\n\t\trolesDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tthis.generalService.queryForList(new GeneralModel('RolesDTO', null, false, rolesDTO)).subscribe(data => {\n\t\t\tthis.listaRoloItem = this.selectListActos.getSelectItemRolItem(data);\n\t\t})\n\n\t\tthis.generalService.queryForList(new GeneralModel('TipoCambioEmpleadoDTO', 'TipoCambio.consultarListaTipoCambio', false, {tipo: this.parametroFormatoPipe.ACTO_TRASLADO})).subscribe(data => {\n\t\t\tconsole.log(data)\n\t\t\tthis.listaTipoCambioItem = this.selectListActos.getSelectItemTipoCambioItem(data);\n\t\t\tconsole.log(this.listaTipoCambioItem)\n\t\t})\n\n\t\tthis.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarListaSoporteDocumento', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),formato: formato, tipoSoporte: 'W'})).subscribe(data => {\n\t\t\tthis.listaSoporteItem = this.selectListActos.getSelectItemSoporteItem(data);\n\t\t})\n\n\t\tvar cargoDTO = new CargoModel();\n\t\tcargoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n\t\tthis.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', 'LoginAccesoSara.consultarListaVistaSucursal', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), aliasRol: this.authService.getTokenKey('aliasRol'), login: this.authService.getTokenKey('usuario')})).subscribe(data => {\n\t\t\tthis.listaSucursalItem = this.selectListActos.getListaSucursaActo(data);\n\t\t})\n\n\t\tthis.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_1).then(data => {\n\t\t\tthis.listaAdicional1 = data; \n\t\t})\n\t\tthis.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_2).then(data => {\n\t\t\tthis.listaAdicional2 = data; \n\t\t})\n\t\tthis.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_3).then(data => {\n\t\t\tthis.listaAdicional3 = data; \n\t\t})\n\t}\n\n\tpublic setAntecesor(actoDTO: ActoIngresoAusenciaModel) {\n\t\tif (actoDTO != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.antesesor = actoDTO.llaveActo;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcion = actoDTO.descripcion;\n\t\t}\n\t}\n\n\tpublic verPopupAntecesor() {\n\t\tvar actoDTO = new ActoIngresoAusenciaModel();\n\t\tactoDTO.formatoPadre = this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\tactoDTO.estado = 6;\n\t\tactoDTO.contrato = this.actoCambioEmpleadoBorrarDTO.empleado;\n\t\tactoDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t//getBean(PopupAntecesorBean.class).buscar('#{actoTrasladoBean.antecesor}', actoDTO,\n\t\t//\t\tthis.parametroFormatoPipe.TIPO_ACTO_INGRESO);\n\t}\n\n\tpublic regresarActoAdmin() {\n\t\tif (this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO == this.deDondeVengo) {\n\t\t\t//getBean(ActosEmpleadoBean.class).Regresar();\n\t\t\t//return null;\n\t\t} else if (this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.deDondeVengo) {\n\t\t\t//ListadoNovedadEmpleadoBean listaNovedad = getBean(ListadoNovedadEmpleadoBean.class);\n\t\t\t//listaNovedad.traerListado(this.actoCambioEmpleadoBorrarDTO.empleadoDTO);\n\t\t\t//listaNovedad.VerDetalle(false);\n\t\t\t//listaNovedad.Panel(0);\n\t\t\t//return null;\n\t\t} else if (this.novedadPipe.ORIGEN_APLICAR_NOVEDAD == this.deDondeVengo) {\n\t\t\t//getBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).MostrarListadoNovedades(false);\n\t\t\t//return null;\n\t\t} else if (this.novedadPipe.ORIGEN_ACTIVIDAD_NOVEDAD_EMPLEADO == this.deDondeVengo) {\n\t\t\t//navegar(getDestino());\n\t\t\t//return null;\n\t\t}\n\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t\tthis.regresarAction.emit(false);\n\t}\n\n\tpublic isMostrarBotonPopup() {\n\t\treturn this.deDondeVengo == null || this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO != this.deDondeVengo;\n\t}\n\n\tpublic async setFuncionario(empleadoDTO: EmpleadoModel) {\n\t\tif (empleadoDTO != null) {\n\t\t\tthis.empleado = empleadoDTO;\n\t\t\tthis.mostrarFoto = true;\n\t\t\tthis.cedulaFiltro = empleadoDTO.documento;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.hojaVida = empleadoDTO.cedula;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleado = empleadoDTO.contrato;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.nombreCompleto = empleadoDTO.nombreCompleto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.codigoEmpleado = empleadoDTO.contrato;\n\t\t\t//getBean(CabeceraEmpleadoBean.class).EmpleadoDTO(empleadoDTO);\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = empleadoDTO;\n\t\t\tthis.mostrarBuscarAntecesor = true;\n\t\t\tif (this.etapa != this.parametroFormatoPipe.ETAPA_LEGALIZACION){\n\t\t\t\tawait this.pasoSiguiente()\n\t\t\t}\n\t\t}\n\t}\n\n\tdescargarPDF(){\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.archivoSalida.replace('.docx', '.pdf'))).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.pdf';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\t\n\tdescargarDoc() {\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.archivoSalida) ).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.docx';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\n\t/**\n\t * utilizado en jsp\n\t * \n\t * @return\n\t */\n\tpublic async verPopupHojaVida(event) {\n\t\tawait this.setFuncionario(event);\n\t\t//getBean(PopupEmpleado.class).buscar('#{actoTrasladoBean.funcionario}');\n\t}\n\n\n\tpublic isMostrarSeleccionFormatoPadre() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (this.actoCambioEmpleadoBorrarDTO.formatoDTO != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0);\n\t}\n\n\tpublic isMostrarComboUnidadCargo() {\n\t\treturn this.mostrarDatosAdicional;\n\t}\n\n\tpublic setMostrarBuscarAntecesor(mostrarBuscarAntecesor: boolean) {\n\t\tthis.mostrarBuscarAntecesor = mostrarBuscarAntecesor;\n\t}\n\n\tpublic setDeDondeVengo(deDondeVengo: string, idForm: string) {\n\t\tthis.deDondeVengo = deDondeVengo;\n\t\tthis.idForm = idForm;\n\t}\n\n\tpublic isVerDatosCedula() {\n\t\tif (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.parametroFormatoPipe.PASO_LEGALIZAR != this.paso;\n\t}\n\n\tpublic isVerDatosAdicional() {\n\t\treturn this.parametroFormatoPipe.PASO_FINAL != this.paso;\n\t}\n\n\tpublic isVerDatosPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.PASO_DATO_PUESTO == this.paso;\n\t}\n\n\tpublic isVerLegalizar() {\n\t\treturn this.parametroFormatoPipe.PASO_LEGALIZAR == this.paso;\n\t}\n\n\tpublic isMostrarRegresar() {\n\t\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isExisteArchivo() {\n\t\treturn this.archivoSalida != null;\n\t}\n\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n        <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n        \n        <button pButton pRipple (click)=\"pasoAnterior()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" \n            *ngIf=\"![ novedadPipe.ORIGEN_NOVEDAD_EMPLEADO, novedadPipe.ORIGEN_APLICAR_NOVEDAD].includes(deDondeVengo)\"\n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n    </div>\n    <app-cabecera-empleado [adicional]=\"true\" [empleado]=\"empleado\" *ngIf=\"empleado.contrato != null && \n    ![parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO, novedadPipe.ORIGEN_NOVEDAD_EMPLEADO, novedadPipe.ORIGEN_APLICAR_NOVEDAD].includes(deDondeVengo)\"></app-cabecera-empleado>\n    <div class=\"p-fluid grid\">\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mb-2\">\n                    <!-- PASO 1 - DATOS CEDULA -->\n                    <p-fieldset *ngIf=\"isVerDatosCedula()\">\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid grid\">\n                            <!--CONTRATO-->\n                            <div class=\"col-12 md:col-12 lg:col-6 responsivetablet\" *ngIf=\"mostrarDatosCedulaCampos\">\n                                <app-input-helper-empleado-boton #inputEmpleado (onSelected)=\"setFuncionario($event)\" *ngIf=\"mostrarDatosCedulaCampos\" [readonly]=\"!(!mostrarDatosAdicional && !mostrarLegalizar && isMostrarBotonPopup())\"\n                                    [nombreInput]=\"'empleado' | translate\" [mostrarX]=\"false\"\n                                    [label]=\"empleado.nombreCompleto != null ? empleado.contrato + ' - ' + empleado.nombreCompleto : ''\" >\n                                </app-input-helper-empleado-boton>\n                            </div>\n                             \n                            <div class=\"col-12 md:col-12 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"documento\" [(ngModel)]=\"cedulaFiltro\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'cedula' | translate}}</label>\n                                </span>\n                            </div>\n\n                            <!-- ANTECESOR -->\n                            <div class=\"col-12 md:col-12 lg:col-6\" *ngIf=\"isMostrarSeleccionFormatoPadre()\">\n                                <app-popup-antecesor [nombreInput]=\"actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion\" [actoIngresoAusenciaDTO]=\"obtenerDatoAntecesor()\"\n                                    [booleano]=\"utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.antesesor) && validaPasoCedula\"\n                                    [label]=\"actoCambioEmpleadoBorrarDTO.descripcion ? (actoCambioEmpleadoBorrarDTO.descripcion) : ''\" [tipo]=\"parametroFormatoPipe.TIPO_ACTO_INGRESO\"\n                                    (onSelected)=\"setAntecesor($event)\" ></app-popup-antecesor>\n                            </div>\n                        </div>\n                    </p-fieldset>\n                </div>\n                <!-- PASO 2 - Datos Adicionales -->\n                <div  >\n                    <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\" *ngIf=\"paso != 'cedula'\"\n                        [objeto]=\"actoCambioEmpleadoBorrarDTO\" ></formulario-dinamico>\n                </div>\n                <div class=\"card pb-4\" *ngIf=\"paso == 'final'\">\n                    <div class=\"mt-2 mb-2\">\n                        <app-actos-datos-puesto (regresar)=\"setContinuarDatosPlanta($event)\" \n                        ></app-actos-datos-puesto>\n                    </div>\n                </div>\n\n                <!-- BOTONES DE ACCION -->\n                <div class=\"flex justify-content-end mt-2\" *ngIf=\"paso == 'final' && archivoSalida\" >\n                    <button pButton pRipple class=\"p-button-secondary font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" \n                        label=\"{{'descargar' | translate}} pdf\" (click)=\"descargarPDF()\">\n                    </button>\n                    <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" *ngIf=\"!controlFuncionalidadService.getControlFuncionalidad('actadm:nodoc')\"\n                        label=\"{{'descargar' | translate}} doc\" (click)=\"descargarDoc()\">\n                    </button>\n                </div>\n\n                <!-- check SEGUIMIENTO -->\n                <div class=\"flex justify-content-end\" *ngIf=\"paso =='final' && !ocultarBotones && controlFuncionalidadService.getControlFuncionalidad('comseg:seguimiento')\">\n                    <div class=\"flex align-items-center gap-1\">\n                        <p-checkbox class=\"mr-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                        <label>{{'seguimiento' | translate}}</label>\n                    </div>\n                </div>\n\n                <!-- BOTONES DE ACCION -->\n                <div class=\"flex justify-content-end mt-2\" *ngIf=\"paso != 'datopuesto'\" >\n                    <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-chevron-right\" *ngIf=\"paso != 'final' && !ocultarBotones\"\n                        label=\"{{'link_continuar' | translate}}\" (click)=\"pasoSiguiente()\">\n                    </button>\n                    <button pButton pRipple class=\"p-button p-button-raised font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-check\" *ngIf=\"paso == 'final' && !ocultarBotones\"\n                        label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicarFinal()\">\n                    </button>\n                    <!-- LOS DOS PRIMEROS BOTONES (SALIR  Y REGRESAR) SIEMPRE SE MOSTRARAN -->\n                    <button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out p-2 pr-1\"\n                        label=\"{{'link_salir' | translate}}\" (click)=\"regresarActoAdmin()\">\n                    </button>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"isVerDatosPuestoTrabajo()\">\n            <app-actos-datos-puesto (regresar)=\"setContinuarDatosPlanta($event)\" \n            ></app-actos-datos-puesto>\n        </div>\n    </div>\n    <app-popup-seleccion-puesto #popupSeleccionPuesto (regresar)=\"setRetornoPuesto($event)\"></app-popup-seleccion-puesto>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class DatoActoAdmonModel extends UnionModel {\n\n\tformatoDato:string;\n\tactoAdmon:string;\n\tcadena:string;\n\tvalor:number;\n\tfecha:Date;\n\ttipoServicio:string;\n\tsucursal:number;\n\treferencia:string;\n\ttipo:number;\n\tsucreferencia:string;\n\tentidadAux:string;\n\tentidad:string;\n\tbeneficiario:number;\n\ttipoReferencia:string;\n\tnombreServicio:string;\n\tnombreEntidad:string;\n\tnombreSucursal:string;\n\tobligatorio:string;\n\tdatoInicial:string;\n\teliminarVariable:string;\n\tciudad:string;\n\tnombreCiudad:string;\n\tproponer:string;\n\tentidadesExternas:string;\n\taccion:string;\n\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { ActoCambioEmpleadoModel } from '../../../models/ActoCambioEmpleadoModel';\nimport { FormatoModel } from '../../../models/FormatoModel';\nimport { CentroCostoModel } from '../../../../compensacion/models/CentroCostoModel';\nimport { CampoFormularioModel, UtilsService } from 'general-library-union';\n\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { SelectListActos } from '../../../services/select-list-actos.service';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { DatoActoAdmonModel } from '../../../models/DatoActoAdmonModel';\nimport { CargarControlFuncionalidadService, GeneralModel, GeneralService } from 'general-library-union';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-mostrar-datos-combinacion-acto-ingreso',\n    templateUrl: './mostrar-datos-combinacion-acto-ingreso.component.html',\n    styleUrls: ['./mostrar-datos-combinacion-acto-ingreso.component.scss'],\n    standalone: true,\n    imports: [NgIf, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, InputTextModule, InputNumberModule, CheckboxModule, ButtonDirective, Ripple, TranslateModule, FormulariodinamicoComponent]\n})\nexport class MostrarDatosCombinacionActoIngresoComponent implements OnInit {\n\n  public listaFormatoDatoDocumentoItem: any[];\n\tpublic listaFirmaDocumentoItem: any[];\n\tpublic listaUnidadDocumentoItem: any[];\n\tpublic listaSucursalItem: any[];\n\tpublic listaRoloItem: any[];\n\tpublic listaTipoCambioItem: any[];\n\tpublic listaSoporteItem: any[];\n\tpublic listaCargoItem: any[];\n\tpublic listaUnidadItem: any[];\n\tpublic listaAdicional1: any[];\n\tpublic listaAdicional2: any[];\n\tpublic listaAdicional3: any[];\n\tpublic mostrarTablaMateria: boolean;\n\t\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[];\n\t\n\tpublic actoCambioEmpleadoBorrarDTO: ActoCambioEmpleadoModel;\n\tpublic formatoDTO: FormatoModel;\n\tpublic ruta: string;\t\n\tpublic LLAVE_BASE: string;\n\tpublic mostrarPdf: boolean;\n\tpublic mostrarFotoEml: boolean;\n\tpublic mostrarFotoHojaVida: boolean;\n\tpublic rutaFisicaWord: string;\n\tpublic mostrarWord: boolean;\n\tpublic accion: string;\n\n\t/**\n\t * esta variable sera usada con el fin de navegar al modulo correcto\n\t * Este acto en lanzado desde modulos independiente y deacuerdo el modulo de donde vengo, \n\t * asi mismo debo volver al modulo.\n\t * Si esta  variable llegase a ser null, entonces sera direccionada al Modulo Actos Administrativo\n\t * de lo contrario sera direccionada al modulo que lo llama\n\t */\n\tpublic deDondeVengo: string;\n\tpublic etapa: string;\n\n  \tpublic campos: CampoFormularioModel[] = []\n\tpublic formularioEditable: boolean;  \n\tpublic mostrar: boolean;\n\tpublic ocultarBotones: boolean;\n\tpublic listaDatosPlanta: FormatoDatoModel[] = [];\n\tpublic mostrarTotal: boolean;\n\tpublic mostrarPeriodo: boolean;\n\tpublic mostrarCosteo: boolean;\n\tpublic mostrarTurno: boolean;\n\tpublic mostrarVinculacion: boolean;\n\tpublic mostrarLinea: boolean;\n\tpublic mostrarCargo: boolean;\n\tpublic mostrarUbicacion: boolean;\n\tpublic mostrarObservacion: boolean; \n\tpublic mostrarClasificacion: boolean; \n\tpublic mostrarResponde: boolean;\n\tpublic mostrarSueldo: boolean;\n\tpublic mostrarUnidad: boolean;\n\n\t@ViewChild('formulario') formularioDinamico: FormulariodinamicoComponent;\n\t@Input() public seguimiento: boolean;\n\t@Output() regresar: EventEmitter<any> = new EventEmitter();\n\t@Output() aplicar: EventEmitter<any> = new EventEmitter();\n\t@Output() salir: EventEmitter<any> = new EventEmitter();\n\n  constructor(private campoFormularioPipe: CampoFormularioPipe,\n              private parametroFormatoPipe: ParametroFormatoPipe,\n\t\t\t  public controlFuncionService: CargarControlFuncionalidadService,\n              private generalService: GeneralService,\n              private utilsService: UtilsService,\n\t\t\t  private popupsDinamicosPipe: PopupsDinamicosPipe,\n              private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n\t\t\t  private cargarArchivo: CargarArchivosService,\n\t\t\t  private encriptadorBasico: EncriptadoBasicoService,\n              private selectListActos: SelectListActos) { }\n\n  ngOnInit(): void {\n  }\n\n  asignarDatosDefecto(){\n\tthis.mostrarCargo = false;\n\tthis.mostrarTotal = false;\n\tthis.mostrarResponde = false;\n\tthis.mostrarPeriodo = false;\n\tthis.mostrarCosteo = false;\n\tthis.mostrarTurno = false;\n\tthis.mostrarVinculacion = false;\n\tthis.mostrarLinea = false;\n\tthis.mostrarUbicacion = false;\n\tthis.mostrarSueldo = false;\n\tthis.mostrarUnidad = false;\n\tthis.mostrarObservacion = false;\n\tthis.mostrarClasificacion = false;\n\tthis.listaDatosPlanta.forEach(dto => {\n\t\tif ( dto.campo == null || dto.accion == null ){\n\t\t\treturn;\n\t\t}\n\t\tif ( dto.accion == (this.parametroFormatoPipe.INGRESARE) || dto.accion == (this.parametroFormatoPipe.VISUALIZAR)) {\n\t\t\tswitch (dto.campo.trim()) {\n\t\t\tcase this.parametroFormatoPipe.CARGO:\n\t\t\t\tthis.mostrarCargo=true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.TOTAL:\n\t\t\t\tthis.mostrarTotal=true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.PERIODO:\n\t\t\t\tthis.mostrarPeriodo = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.COSTEO:\n\t\t\t\tthis.mostrarCosteo = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.TURNO:\n\t\t\t\tthis.mostrarTurno = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.VINCULACION:\n\t\t\t\tthis.mostrarVinculacion = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.LINEA:\n\t\t\t\tthis.mostrarLinea = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.UBICACION:\n\t\t\t\tthis.mostrarUbicacion = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.SUELDO:\n\t\t\t\tthis.mostrarSueldo = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.UNIDAD:\n\t\t\t\tthis.mostrarUnidad = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.OBSERVACION:\n\t\t\t\tthis.mostrarObservacion = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.CLASIFICACION:\n\t\t\t\tthis.mostrarClasificacion = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.CLASIFICACIONTITULAR:\n\t\t\t\tthis.mostrarClasificacion = true;\n\t\t\t\tbreak;\n\t\t\tcase this.parametroFormatoPipe.PUESTO_RESPONDE:\n\t\t\t\tthis.mostrarResponde = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t})\n  }\n\n  async setValorCampos(){\n\tawait this.utilsService.sleep(500)\n\tthis.campos.forEach(async element => {\n\t\t\n\t\tif (element.tipo === 'F'){\n\t\t  element.valor = element.valor ? new Date(element.valor) : null;\n\t\t} else if (element.tipo === 'H'){\n\t\t  if (element.valor){\n\t\t\tlet listaValortemp = [];\n\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t  listaValortemp.push ({label: element2, value:element2})\n\t\t\t})\n\t\t\telement.valor = listaValortemp\n\t\t  }\n\t\t} else if (element.tipo === 'P'){\n\t\t  this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\tif (element.popup == pop.id ){\n\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t  readonly: true,\n\t\t\t\t  showDialog: false,\n\t\t\t\t  label: element.valor,\n\t\t\t\t  mostrarX: false,\n\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\t\n\t\t\t\t\t})\n\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\telement.listaPopups = [];\n\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t}\n\t\t  });\n\n\t\t} else {\n\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\telement.valor = element.valor.trim()\n\t\t\t  }\n\t\t}\n\t  });\n\t  await this.utilsService.sleep(500)\n\n\t  this.formularioDinamico?.ngAfterViewInit();\n\t  this.utilsService.resizeWindowIFrame();\n\n\t  //this.formularioDin\n\t}\n\n  setZonaCentro(centroCostoDTO: CentroCostoModel){\n\t\tif(centroCostoDTO != null){\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.zonaEconomica = centroCostoDTO.zonaEconomica;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica = centroCostoDTO.descripcionZona;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.centroCostro = centroCostoDTO.centroCosto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCentroCosto = centroCostoDTO.descripcion;\n\t\t}\t\t\n\t}\t\n\t\n\tasync cargarFormularioDinamicoElaboraModifica() {\n\t\tconsole.log('cargarFormularioDinamicoElaboraModifica')\n    \tthis.mostrar=  true\n    \tawait this.sleep(1000)\n\t\tawait this.crearFormularioListaParaCampo();\n\t\tthis.formularioEditable = false;\n\t\tawait this.adicionarCamposSolicitudFinal(this.campoFormularioPipe.GRUPO_FINAL);\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t\t//FormularioDinamico.Formulario().modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t\tawait this.cargarVariableFormato(this.actoCambioEmpleadoBorrarDTO.llave);\n\t\tthis.asignarDatosDefecto()\n\t}\n\t\n\tasync cargarFormularioDinamicoLegalizaElimina() {\n    \tthis.mostrar=  true\n    \tawait this.sleep(1000)\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\tthis.formularioEditable = false;\n\t\tawait this.adicionarCamposSolicitudFinal(this.campoFormularioPipe.GRUPO_FINAL);\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t\t//FormularioDinamico.Formulario().modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t\tawait this.cargarVariableFormato(this.actoCambioEmpleadoBorrarDTO.llave);\n\t\tthis.asignarDatosDefecto()\n\t}\n\t\n\tasync cargaListaFormularioLeglizadaYcampo(){\n    var datoDTO = new FormatoDatoModel();\n    datoDTO.formato = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n    this.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n    //CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n    await this.crearFormularioListaParaCampo();\n    await this.crearFormularioListaLegalizada();\t\t\t\n\t\t\t\t\t\n\t}\n\n  /**\n\t * Metodo que carga el formulario dinamico \n\t * de la listaParaCampoLegalizada\n\t * @see LegalizarActoIngresoBean\n\t */\n\tasync crearFormularioListaLegalizada(){\n\t\t\n\t\t\tawait this.cargarCombos(this.formatoDTO.llave);\n\t\t\t\n\t\t\tvar campos2 = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise();\n\t\t\t//this.formularioDinamico.limpiar();\n\t\t\t\n\t\t\t//adicionamos al grupo1, los datos del grupo 2\n\t\t\t/*for (CampoFormulario g2 : grupo2.Campos()) {\n\t\t\t\tg2.Editable('L');\n\t\t\t\tg2.Obligatorio(false);\n\t\t\t\tgrupo1.Campos().add(g2);\n\t\t\t}*/\n\t\t\t\n\t\t\tthis.listaParaCampoLegalizada.forEach(dato => {\n\t\t\t\tthis.campos.forEach(campo => {\n\t\t\t\t\tif(campo.descripcion == dato.campo.trim()){\t\t\t\n            this.cargarDatosCampoFormulario(campo);\n            campo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n            campo.obligatorio = true;\n            campo.descripcion = dato.titulo != null && dato.titulo.trim() != '' ? dato.titulo : campo.descripcion;\n            campo.descripcionAdicional = dato.campo;\n            this.campos.push(campo);\n            //grupo1.Campos().add(campo);\n          }\n        })\n\t\t\t})\n\t\t\tthis.formularioEditable = true;\n\t\t\tawait this.setValorCampos();\n      //this.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\t\t\n\t}\n\t\n\tasync adicionarCamposSolicitudFinal(etapaFormulario: string)  {\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.forEach(async dato =>  {\n      var campos2 = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise();\n      campos2.forEach(campo => {\n\t\t\t\tif (campo.descripcion == dato.campo.trim()) {\n          this.cargarDatosCampoFormulario(campo);\n          campo.obligatorio = true;\n          campo.descripcion = dato.titulo != null && dato.titulo.trim() != '' ? dato.titulo : campo.descripcion;\n          campo.descripcionAdicional = dato.campo;\n          campo.idGrupoPertenece = etapaFormulario;\n          this.campos.push(campo);\n        }\n\t\t\t})\n\t\t})\n\t\tawait this.setValorCampos();\n\t\t//FormularioDinamico.Formulario().modificarValorCamposAdicionales(this.actoCambioEmpleadoBorrarDTO, this.campoFormularioPipe.GRUPO_FINAL);\n\t}\n\t\n\tasync cargarCombos(formato: number) {\n\t\tthis.listaAdicional1 =  await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_1);\n\t\tthis.listaAdicional2 =  await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_2);\n\t\tthis.listaAdicional3 =  await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_3);\n\t}\n\t\n\t\n\t/**\n\t * Metodo que carga el formulario dinamico \n\t * de la lista para campo\n\t */\n\tasync crearFormularioListaParaCampo(){\n\t\t\n\t\t\tawait this.cargarCombos(this.formatoDTO.llave);\n\t\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\t\tvar campos = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise();\n\t\t\t//FormularioDinamico formulario = FormularioDinamico.Formulario();\n\t\t\t//this.formularioDinamico.limpiar();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos.forEach(dato => {\n\t\t\t\tcampos.forEach(campo => {\n\t\t\t\t\t\tif (campo.descripcion == dato.campo.trim()) {\n\t\t\t\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t\t\t\t// CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR\n\t\t\t\t\t\t\t// LOS QUE CUMPLAN CON DICHO CONDICION\n\t\t\t\t\t\t\tif (dato.accion != null && dato.accion.trim() != this.parametroFormatoPipe.INGRESARE) {\n\t\t\t\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.cargarDatosCampoFormulario(campo);\n\t\t\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != '' ? dato.titulo : campo.descripcion;\n\t\t\t\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\t\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n              this.campos.push(campo)\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}) \n\t\t\t\t})\n\t\t\t\tawait this.setValorCampos();\n\t}\n\n\tcargarDatosCampoFormulario(campo: CampoFormularioModel) {\n\t\tconsole.log('cargarDatosCampoFormulario')\n\t\t//CARGAMOS EL COMBO PARA CADA CAMPO\t\t\t\t\t\t\t\t\t\t\n\t\tif(campo.descripcion == this.parametroFormatoPipe.TIPO_DOC){\n\t\t\tcampo.lista = this.listaFormatoDatoDocumentoItem;\t\t\t\t\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.CEDULA_FIRMA){\n\t\t\tconsole.log(this.listaFirmaDocumentoItem)\n\t\t\tcampo.lista = this.listaFirmaDocumentoItem;\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.UNIDAD_ORIGEN){\n\t\t\tcampo.lista = this.listaUnidadDocumentoItem;\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.SUCURSAL){\n\t\t\tcampo.lista = this.listaSucursalItem;\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.ROL){\n\t\t\tcampo.lista = this.listaRoloItem;\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.TIPO_DE_CAMBIO){\n\t\t\tcampo.lista = this.listaTipoCambioItem;\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.SOPORTE){\n\t\t\tcampo.lista = this.listaSoporteItem;\n\t\t}\t\n\t\tif(campo.descripcion == this.parametroFormatoPipe.LISTA_ADICIONAL_1){\n\t\t\tcampo.lista = this.listaAdicional1;\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.LISTA_ADICIONAL_2){\n\t\t\tcampo.lista = this.listaAdicional2;\n\t\t}\n\t\tif(campo.descripcion == this.parametroFormatoPipe.LISTA_ADICIONAL_3){\n\t\t\tcampo.lista = this.listaAdicional3;\n\t\t}\n\t} \n\t\n\tasync cargarVariableFormato(acto: string)  {\n\t\t//FormularioDinamico formulario = FormularioDinamico.Formulario();\n\t\t//this.formularioDinamico.camposCaracteristicaClear();\n\t\t// Carga las variables del formato\n\t\tvar longitud: number = 0;\n\t\tvar campoVariable: CampoFormularioModel;\n\t\tvar tipoDato: string;\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listadoVariables.forEach(variableConfigurada => {\n\t\t\ttipoDato = variableConfigurada.tipoDato;\n\t\t\tif ('A' == variableConfigurada.tipoDato) {\n\t\t\t\tlongitud = 100;\n\t\t\t\ttipoDato = 'T';\n\t\t\t} else if ('N' == variableConfigurada.tipoDato) {\n\t\t\t\tlongitud = 20;\n\t\t\t}\n\t\t\tcampoVariable = new CampoFormularioModel(tipoDato, variableConfigurada.titulo, longitud, 0, variableConfigurada.llave,\n\t\t\t\t\t'S' == variableConfigurada.obligatorio, null, '', 'E');\n\t\t\tcampoVariable.orden = variableConfigurada.orden;\n\t\t\tcampoVariable.campoTabla = variableConfigurada.llave;\n\t\t\tcampoVariable.caracteristica = true;\n      this.campos.push(campoVariable);\n\t\t\t//FormularioDinamico.Formulario().Grupos().(0).Campos().add(campoVariable);\n\t\t})\n\t\tvar datosVariables: DatoActoAdmonModel [] = null;\n\t\tif (this.actoCambioEmpleadoBorrarDTO.variablesActo != null) {\n\t\t\tdatosVariables = this.actoCambioEmpleadoBorrarDTO.variablesActo;\n\t\t}\n\t\telse{\n\t\t\tvar datoActoAdmonDTO = new DatoActoAdmonModel();\n\t\t\tdatoActoAdmonDTO.actoAdmon = acto;\n\t\t\tdatoActoAdmonDTO.tipoServicio = 'VF';\n\t\t\tdatosVariables = await this.generalService.queryForList(new GeneralModel('DatoActoAdmonDTO', null, false, datoActoAdmonDTO)).toPromise();\n\t\t}\n    datosVariables.forEach(variable => {\n      if (variable.tipoReferencia == null) {\n        this.formularioDinamico.cargarValor(variable.formatoDato, null, variable);\n      } else if (variable.tipoReferencia == this.campoFormularioPipe.NUMERO || variable.tipoReferencia == this.campoFormularioPipe.DECIMAL) {\n        this.formularioDinamico.cargarValor(variable.formatoDato, variable.valor, variable);\n      } else if (variable.tipoReferencia == this.campoFormularioPipe.FECHA) {\n        this.formularioDinamico.cargarValor(variable.formatoDato, variable.fecha, variable);\n      } else if (variable.tipoReferencia == this.campoFormularioPipe.TEXTO) {\n        this.formularioDinamico.cargarValor(variable.formatoDato, variable.cadena, variable);\n      }\n    })\n\tawait this.setValorCampos();\n\t}\n\t\n\tdescargarPDF(){\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.rutaFisicaWord.replace('.docx', '.pdf'))).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.pdf';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\t\n\tdescargarDoc() {\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.rutaFisicaWord) ).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.docx';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\n\tregresarAction(){\n\t\tthis.regresar.emit()\n\t}\n\n\taplicarAction(){\n\t\tthis.aplicar.emit()\n\t}\n\n\tregresarActoAdmin(){\n\t\tthis.salir.emit()\n\t\t//if(this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO == this.deDondeVengo){\n\t\t\t//getBean(ActosEmpleadoBean.class).Regresar();\n\t\t//\treturn null;\n\t\t//}\n\t\t//if(this.parametroFormatoPipe.ORIGEN_ACTO_CAMBIO_PUESTO == this.deDondeVengo){\n\t\t\t//getBean(ActoCambioPuestoBean.class).noMostrarDatosCombinacion();\n\t\t//\treturn null;\n\t\t//}\n\t\t//if (this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.deDondeVengo) {\n\t\t\t/*ListadoNovedadEmpleadoBean listaNovedad = getBean(ListadoNovedadEmpleadoBean.class);\n\t\t\tlistaNovedad.traerListado(this.actoCambioEmpleadoBorrarDTO.EmpleadoDTO());\n\t\t\tlistaNovedad.VerDetalle(false);\n\t\t\tlistaNovedad.Panel(0);*/\n\t\t//\treturn null;\n\t\t//}\n\t\t//if (this.novedadPipe.ORIGEN_APLICAR_NOVEDAD == this.deDondeVengo) {\n\t\t\t//getBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).MostrarListadoNovedades(false);\n\t\t//\treturn null;\n\t\t//}\n\t\t//String url = getUrl();\n\t\t//if (url.endsWith('listadoControlProrroga.xhtml')) {\n\t\t\t//getBean(ListadoControlProrrogaBean.class).retornar();\n\t\t\t//return null;\n\t\t//}\n\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t\t//return null;\n\t}\n\n\tisMostrarBotonPopup(){\n\t\treturn this.deDondeVengo == null || this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO != this.deDondeVengo;\n\t}\n \n\tisCambioAsignacion(){\n\t\treturn this.formatoDTO !=null && this.parametroFormatoPipe.CAMBIOPUESTOTRA == this.formatoDTO.accion && 'S' == this.formatoDTO.afectaSueldo;\n\t}\n\n  sleep(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\t\n}\n","<div *ngIf=\"mostrar\">\n    <h3 *ngIf=\"isCambioAsignacion() && actoCambioEmpleadoBorrarDTO.advertencia != null && actoCambioEmpleadoBorrarDTO.advertencia != undefined\">\n        {{actoCambioEmpleadoBorrarDTO.advertencia}}\n    </h3>\n    <h3>{{formatoDTO.descripcion}}</h3>\n    <h4>{{accion}} - {{etapa}}</h4>\n\n    <div class=\"p-fluid grid\">\n        <div class=\"card field col-12 md:col-6 lg:col-6\">\n            <formulario-dinamico #formulario [editable]=\"formularioEditable\" [campos]=\"campos\" [objeto]=\"actoCambioEmpleadoBorrarDTO\"  ></formulario-dinamico> \n            \n            <!--Tabla materias-->\n            <div *ngIf=\"mostrarTablaMateria\"></div>\n            \n            <!--Tabla 2-->\n            <div *ngIf=\"actoCambioEmpleadoBorrarDTO.listaActosHijos.length > 0\">\n                <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos\" [rows]=\"10\"\n                    [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos.length\" [paginator]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos.length > 10\" \n                    [showCurrentPageReport]=\"true\" [scrollable]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                    <ng-template pTemplate=\"header\">\n                        <tr class=\"fondoTablaPincipal\">\n                            <th>{{'identifica' | translate}}</th>\n                            <th>{{'nombre' | translate}}</th>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-bean>\n                        <tr>\n                            <td>{{bean.hojaVida}}</td>\n                            <td>{{bean.nombreCompletoHojaVida}}</td>\n                        </tr>\n                    </ng-template>\n                </p-table>\n            </div>\n            \n            <!--UNIDAD ORGANIZACIONAL-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarUnidad\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionUnidad\" />\n                    <label>{{'unidadorganizacional' | translate}}</label>\n                </span>\n            </div>\n\n            <!--CARGO-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarCargo\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionCargo\" />\n                    <label>{{'cargo' | translate}}</label>\n                </span>\n            </div>\n\n            <!--TURNO-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarTurno\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionTurno\" />\n                    <label>{{'turno' | translate}}</label>\n                </span>\n            </div>\n\n            <!--CLASIFICACION-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarClasificacion\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionClasificacion\" />\n                    <label>{{'clasificacion' | translate}}</label>\n                </span>\n            </div>\n\n            <!--TIPO PERIODO-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarPeriodo\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionTipoPeriodo\" />\n                    <label>{{'tipoperiodo' | translate}}</label>\n                </span>\n            </div>\n\n            <!--VINCULACION-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarVinculacion\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionVincula\" />\n                    <label>{{'vinculacion' | translate}}</label>\n                </span>\n            </div>\n\n            <!--LINEA COSTO-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarLinea\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionLineaCosto\" />\n                    <label>{{'lineacosto' | translate}}</label>\n                </span>\n            </div>\n\n            <!--ZONA ECONOMICA-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarCosteo\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica\" />\n                    <label>{{'zonaeconomica' | translate}}</label>\n                </span>\n            </div>\n\n            <!--CENTRO COSTO-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarCosteo\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionCentroCosto\" />\n                    <label>{{'centrocosto' | translate}}</label>\n                </span>\n            </div>\n\n            <!--UBICACION FISICA-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarUbicacion\">\n                <span class=\"p-float-label\">\n                    <input pInputText [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.descripcionUbicacionFis\" />\n                    <label>{{'ubicacionfisica' | translate}}</label>\n                </span>\n            </div>\n\n            <!--SUELDO-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarSueldo\">\n                <span class=\"p-float-label\">\n                    <p-inputNumber [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.sueldo\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n                    </p-inputNumber>\n                    <label>{{'sueldo' | translate}}</label>\n                </span>\n            </div>\n\n            <!--TOTAL-->\n            <div class=\"mt-3 mr-3 \" *ngIf=\"mostrarTotal\">\n                <span class=\"p-float-label\">\n                    <p-inputNumber [readonly]=\"true\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.total\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n                    </p-inputNumber>\n                    <label>{{'total' | translate}}</label>\n                </span>\n            </div>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-6\">\n            <!-- check SEGUIMIENTO -->\n            <div class=\"flex justify-content-end\" *ngIf=\"!ocultarBotones && controlFuncionService.getControlFuncionalidad('comseg:seguimiento')\">\n                <div class=\"flex align-items-center gap-1\">\n                    <p-checkbox class=\"mr-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                    <label>{{'seguimiento' | translate}}</label>\n                </div>\n            </div>\n            <!-- BOTONES DE ACCION -->\n            <div class=\"flex justify-content-end mt-2\"  >\n                <button pButton pRipple class=\"p-button-secondary font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" *ngIf=\"rutaFisicaWord\"\n                    label=\"{{'descargar' | translate}} pdf\" (click)=\"descargarPDF()\">\n                </button>\n                <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" *ngIf=\"rutaFisicaWord\"\n                    label=\"{{'descargar' | translate}} doc\" (click)=\"descargarDoc()\">\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-check\"\n                    label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicarAction()\">\n                </button>\n            </div>\n        </div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class UsuarioFormatoModel extends UnionModel {\n\n\tllave: string;\n\ttipoInformacion: string;\n\tusuario: string;\n\tusuarioCopia: string;\n\tgrupo: number;\n\tformato: number;\n\tvinculacion: number;\n\telaborado: string;\n\tmodificar: string;\n\tlegalizado: string;\n\tanulado: string;\n\tderogado: string;\n\tdescripcion: string;\n\tvigente: string;\n\ttipo: string;\n\tsdescripcion: string;\n\tsorden: string;\n\tdescripcionGrupo: string;\n\tinforme: string;\n\t\n\t//datos listado pendiente\n\tgrupoVista: string;\n    descripcionFormato: string;\n    nombreHov: string;\n    hojaVida: number;\n    fechaDocumentoActo: Date;\n    postLegalizaActo: string;\n    actoCambioEmpActo: string;\n    documentoActo: string;\n    soporteActo: string;\n    numeroActo: string;\n    fechaCambioActo: Date;\n    accionFormato: string;\n    empresa: number;\n    nombreVinculacion: string;\n    nombreFormato: string;\n   \tactoAusenciaEml: string;\n    actoEspecialEml: string;\n    actoMovPlanta: string;\n    estilo: string;\n    proceso: string;\n    filtroUsuario: string;\n    accion: string;\n    documento: string;\n    modo: string;\n    descripcionModo: string;\n    fechaRetiro: Date ;\n    fechaReal: Date;\n    busquedaFormato: string;\n\tbusquedaGrupo: string;\n\tfiltroUnidad: string;\n\trolUsuario: string;\n\tunidad: string;\n\tnombreUnidad: string;\n\tlistaAcciones: string[];\n\tnombreGrupo: string;\n\n\tsetColocarLista(cadena: string) {\n\t\tif ( cadena == null) {\n\t\t\tthis.listaAcciones=null;\n\t\t\treturn;\n\t\t}\n\t\tthis.listaAcciones = [];\n\t\tvar datos: string[] = cadena.split(\",\");\n\t\tfor (let i = 0; i < datos.length; i++) {\n\t\t\tthis.listaAcciones.push(datos[i]);\n\t\t}\n\t\t\n\t}\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { ActoAdministrativosPdfModel } from '../../../models/ActoAdministrativosPdfModel';\nimport { ActoCambioEmpleadoModel } from '../../../models/ActoCambioEmpleadoModel';\nimport { ActosAdminTablaModel } from '../../../models/ActosAdminTablaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { FormatoService } from '../../../services/formato.service';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { ActoIngresoAusenciaModel } from '../../../models/ActoIngresoAusenciaModel';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { DatoActoAdmonModel } from '../../../models/DatoActoAdmonModel';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { NovedadPipe } from '../../../../compensacion/pipes/novedad.pipe';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { InfoDatosPlantaComponent } from '../info-datos-planta/info-datos-planta.component';\nimport { FormatoModel } from '../../../models/FormatoModel';\nimport { MostrarDatosCombinacionActoIngresoComponent } from '../mostrar-datos-combinacion-acto-ingreso/mostrar-datos-combinacion-acto-ingreso.component';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { SelectListActos } from '../../../services/select-list-actos.service';\nimport { RolesModel } from '../../../models/RolesModel';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\n\n@Component({\n    selector: 'app-acto-cambio-puesto',\n    templateUrl: './acto-cambio-puesto.component.html',\n    styleUrls: ['./acto-cambio-puesto.component.scss'],\n    standalone: true,\n    imports: [ButtonDirective, Ripple, NgIf, CabeceraEmpleadoComponent, FieldsetModule, PrimeTemplate, InputHelperEmpleadoBotonComponent, FormsModule, InputTextModule, InfoDatosPlantaComponent, MostrarDatosCombinacionActoIngresoComponent, TranslateModule, FormulariodinamicoComponent]\n})\nexport class ActoCambioPuestoComponent implements OnInit {\n\n  public mostrarFoto: boolean;\n\tpublic mostrarDatosCedulaCampos: boolean;\n\tpublic mostrarBuscarAntecesor: boolean;\n\tpublic mostrarDatosCedula: boolean;\n  public mostrarDatosAdicional: boolean;\n  public mostrarPuestoTrabajo: boolean;\n  public mostrarDatosPuestoTRabjo: boolean\n  public mostrarFinal: boolean;\n  public mostrarLegalizar: boolean;\n\tpublic habilitarCombosUnidadCargo: boolean;\n\tpublic seguimiento: boolean;\n\tpublic editarListaTablaMateria: boolean;\n\tpublic mostrarTablaMateria: boolean;\n\tpublic listaFormatoDatoDocumentoItem: any[];\n\tpublic listaFirmaDocumentoItem: any[];\n\tpublic listaSucursalItem: any[];\n\tpublic listaRoloItem: any[];\n\tpublic listaTipoCambioItem: any[];\n\tpublic listaSoporteItem: any[];\n\tpublic listaAdicional1: any[];\n\tpublic listaAdicional2: any[];\n\tpublic listaAdicional3: any[];\n\tpublic etapa: string = null;\n\tpublic accion: string = null;\n\tpublic unidadAntes: string = null;\n\tpublic cargoAntes: string = null;\n\tpublic llaveBase: string = null;\n\tpublic puestoSeleccion: string;\n\tpublic paso: string = null;\n\tpublic pasoAnterior: string = null;\n\tpublic descripcionGrupo: string;\n\n\tpublic actoDtoPdf: ActoAdministrativosPdfModel;\n\tpublic actoCambioEmpleadoBorrarDTO: ActoCambioEmpleadoModel;\n\tpublic perfilTablasDTOGuardado: ActosAdminTablaModel;\n\t\n\tpublic listaParaCampos: FormatoDatoModel[];\n\tpublic listaParaPuesto: FormatoDatoModel[];\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[];\n\tpublic listaDatoOrganizacionTablaMateria: DatoorganizacionModel[];\n\t\n\t//variable donde almacenaremos el nombre del archivo que genero el proceso de combinacion del acto\n\t//en donde el nombre de ese archivo sera una llave generada .pdf\n\t//por ejemplo e29bf30e30f2450dafe0747665fcefe6.pdf\n\tpublic llaveNombreArchivoProcesoCombinacion: string;\n\t/*\n\t * esta variable sera usada con el fin de navegar al modulo correcto\n\t * Este acto en lanzado desde modulos independiente y deacuerdo el modulo de donde vengo, \n\t * asi mismo debo volver al modulo.\n\t * Si esta  variable llegase a ser null, entonces sera direccionada al Modulo Actos Administrativo\n\t * de lo contrario sera direccionada al modulo que lo llama\n\t */\n\tpublic deDondeVengo: string;\n\tpublic idForm: string;\n\tpublic llaveTipoNovedad: string;\n\tpublic ocultarBotones: boolean;\n\tpublic mostrarDatosCombinacion: boolean;\n\tpublic vistaVisualizar: string;\n\tpublic mostrar: boolean = false;\n\tpublic campos: CampoFormularioModel[] = []\n\tpublic formularioEditable: boolean;  \n\tpublic cedulaFiltro: string;\n\tpublic listaDatosPlanta: FormatoDatoModel[] = []\n\n\tpublic empleado: EmpleadoModel = new EmpleadoModel();\n\n\t@Input() public tipoSeleccionado: string;\n\t@Output() regresarAction:  EventEmitter<any> = new EventEmitter();\n\t@ViewChild('inputEmpleado') inputEmpleado: InputHelperEmpleadoBotonComponent;\n\t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\t@ViewChild('infoDatosPlanta') infoDatosPlanta: InfoDatosPlantaComponent;\n\t@ViewChild('mostrarDatosCombinacionActoIngreso') mostrarDatosCombinacionActoIngreso: MostrarDatosCombinacionActoIngresoComponent;\n\n  constructor(private generalService: GeneralService,\n\tpublic utilsService: UtilsService,\n\tprivate authService: AuthService,\n\tprivate formatoService: FormatoService,\n\tprivate actoCambioEmpleadoService: ActoCambioEmpleadoService,\n\tprivate campoFormularioPipe: CampoFormularioPipe,\n\tprivate notificacionesService: ToastService,\n\tpublic novedadPipe: NovedadPipe,\n\tprivate translateService: TranslateService,\n\tprivate selectListActos: SelectListActos,\n\tprivate popupsDinamicosPipe: PopupsDinamicosPipe,\n\tprivate empleadoService: EmpleadoService,\n\tprivate controlFuncionalidadService: CargarControlFuncionalidadService,\n\tpublic parametroFormatoPipe: ParametroFormatoPipe) { }\n\n  ngOnInit(): void {\n  }\n\n\n  inicializar(){\n\t\tthis.ocultarBotones=false;\n\t\tthis.mostrarDatosCombinacion = false;\n\t\tthis.idForm = 'form_actoCambioPuesto';\n\t\t//INCIALIZAMOS LAS VARIABLES PARA EVITAR NULL POINTER EXCEPCION\t\t\t\n\t\tthis.listaParaCampos = []\n\t\tthis.listaParaPuesto = []\n\t\tthis.listaParaCampoLegalizada = []\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel();\n\t\t\n\t\tthis.mostrarFoto = false;\n\t\tthis.seguimiento = false;\n\t\t\n\t\tthis.listaFormatoDatoDocumentoItem = [];\n\t\tthis.listaFirmaDocumentoItem = [];\n\t\tthis.listaSucursalItem = [];\n\t\tthis.listaRoloItem = [];\n\t\tthis.listaTipoCambioItem = [];\n\t\tthis.listaSoporteItem = [];\n\t\t\n\t\tthis.mostrarDatosCedula = false;\n\t\tthis.mostrarDatosAdicional = false;\n\t\tthis.mostrarPuestoTrabajo = false;\n\t\tthis.mostrarDatosPuestoTRabjo = false;\n\t\tthis.mostrarFinal = false;\n\t\tthis.mostrarLegalizar = false;\n\t\tthis.mostrarDatosAdicional = false;\n\t\tthis.habilitarCombosUnidadCargo = false;\n\t\t\n\t\tthis.deDondeVengo = null;\n\t\tthis.vistaVisualizar = null;\n\t\t//BORRAr\n\t\t//this.cedulaFiltro = 'DANIEL6'\n\t\t//this.filtrarEnter({key:'Enter'})\n}\n\nasync setValorCampos(){\n\tawait this.utilsService.sleep(500)\n\tthis.campos.forEach(async element => {\n\t\t\n\t\tif (element.tipo === 'F'){\n\t\t  element.valor = element.valor ? new Date(element.valor) : null;\n\t\t} else if (element.tipo === 'H'){\n\t\t  if (element.valor){\n\t\t\tlet listaValortemp = [];\n\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t  listaValortemp.push ({label: element2, value:element2})\n\t\t\t})\n\t\t\telement.valor = listaValortemp\n\t\t  }\n\t\t} else if (element.tipo === 'P'){\n\t\t  this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\tif (element.popup == pop.id ){\n\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t  readonly: !this.formularioDinamico?.editable,\n\t\t\t\t  showDialog: false,\n\t\t\t\t  label: element.valor,\n\t\t\t\t  mostrarX: false,\n\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\t\n\t\t\t\t\t})\n\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\telement.listaPopups = [];\n\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t}\n\t\t  });\n\n\t\t} else {\n\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\telement.valor = element.valor.trim()\n\t\t\t  }\n\t\t}\n\t  });\n\t  await this.utilsService.sleep(500)\n\n\t  this.formularioDinamico?.ngAfterViewInit();\n\t  this.utilsService.resizeWindowIFrame();\n\n\t  //this.formularioDin\n\t}\n\nvalidarCambioAnterior() {\n\tthis.actoCambioEmpleadoService.buscarMensajeCambioSueldo({formato: this.actoCambioEmpleadoBorrarDTO.formato, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tempresa: this.actoCambioEmpleadoBorrarDTO.empresa,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrato: this.actoCambioEmpleadoBorrarDTO.empleado,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfechaCambio: this.actoCambioEmpleadoBorrarDTO.cambio}).subscribe(data => {\n\t\tthis.actoCambioEmpleadoBorrarDTO.advertencia = data;\n\t})\n}\n\n/**\n *  Metodo que determina la visibilidad de los componentes en el .jspx\n */\nasync decideQueNoMostrar() {\n\tconsole.log('decideQueNoMostrar')\n\tconsole.log(this.paso)\n\t\tif (this.paso != null) {\n\t\t\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA){\n\t\t\t\tthis.regresarActoAdmin();\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\t\tthis.mostrarDatosCedula = true;\n\t\t\t\tthis.mostrarDatosAdicional = false;\n\t\t\t\tthis.mostrarDatosPuestoTRabjo = false;\n\t\t\t\tthis.campos = [];\n\t\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_CEDULA;\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_PUESTO_TRABAJO)) {\n\t\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\t\tthis.mostrarPuestoTrabajo = false;\n\t\t\t\tthis.valoresEditablesFormulario(true);\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_DATO_PUESTO)) {\n\t\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\t\tthis.mostrarPuestoTrabajo = false;\n\t\t\t\tthis.mostrarDatosPuestoTRabjo = false;\n\t\t\t\tthis.mostrarDatosCedula = true;\n\t\t\t\tthis.valoresEditablesFormulario(true);\n\t\t\t\tif(this.pasoAnterior == (this.parametroFormatoPipe.PASO_DATO_PUESTO)) {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\t}\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\t\tthis.mostrarPuestoTrabajo = true;\n\t\t\t\tthis.mostrarDatosPuestoTRabjo = true;\n\t\t\t\tthis.mostrarDatosCedula = true;\n\t\t\t\tthis.mostrarDatosPuestoTRabjo = true;\n\t\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\t\tthis.valoresEditablesFormulario(false);\n\t\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\t\t//FormularioDinamico.Formulario().removerCamposIdGrupo(this.campoFormularioPipe.GRUPO_FINAL);\n\t\t\t\tthis.iniciarVisualizacionTablas();\n\t\t\t\tthis.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos);\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL) && (this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION))) {\n\t\t\t\t//getBean(ActosAdministrativosBean.class).retornar();\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL) && (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION))) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t\t\tawait this.decideQueMostrar();\n\t\t\t\tthis.vistaVisualizar = null;\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\t\tif(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal?.length != 0) {\n\t\t\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\t\t\tthis.formularioEditable = true;\n\t\t\t\t\t//FormularioDinamico.Formulario().Editable(true);\n\t\t\t\t\t//FormularioDinamico.Formulario().editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_FINAL, this.campoFormularioPipe.CAMPO_EDITABLE);\n\t\t\t\t\t//FormularioDinamico.Formulario().editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL, this.campoFormularioPipe.CAMPO_LECTURA);\n\t\t\t\t\tthis.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal);\n\t\t\t\t}else {\n\t\t\t\t\tthis.pasoAnterior = this.paso;\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\t\tthis.formularioEditable = true;\n\t\t\t\t\t//this.actionEnviarSiguienteCedula();\n\t\t\t\t\tthis.actionSiguienteAdicional().then(data =>{})\n\t\t\t\t}\n\t\t\t\tthis.mostrarDatosCombinacion = false;\n\t\t\t\tawait this.decideQueMostrar();\n\t\t\t}\n\t\t\tthis.paso = this.pasoAnterior;\n\t\t}\n\n\treturn null;\n}\n\n/**\n * Metodo que controla que componente es el que se debe mostrar en el .jspx\n */\nasync decideQueMostrar() {\n\tif (this.paso != null) {\n\t\tif (this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\tthis.mostrarDatosCedula = true;\n\t\t\tthis.mostrarDatosAdicional = false;\n\t\t\tthis.mostrarDatosPuestoTRabjo = false;\n\t\t\tthis.mostrarLegalizar = false;\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\tthis.mostrarLegalizar = false;\n\t\t\tthis.valoresEditablesFormulario(true);\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_BUSCAR_OTRO)) {\n\t\t\tthis.mostrarPuestoTrabajo = false;\n\t\t\tthis.mostrarLegalizar = false;\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_DATO_PUESTO)) {\n\t\t\tthis.mostrarDatosPuestoTRabjo = true;\n\t\t\tthis.mostrarPuestoTrabajo = false;\n\t\t\tthis.mostrarLegalizar = false;\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\tthis.mostrarDatosPuestoTRabjo = false;\n\t\t\tthis.mostrarPuestoTrabajo = false;\n\t\t\tthis.mostrarLegalizar = false;\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\tawait this.enviarPasoFinal();\n\t\t\tawait this.procesoCombinacion();\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n\t\t\tthis.mostrarDatosPuestoTRabjo = true;\n\t\t\tthis.mostrarPuestoTrabajo = true;\n\t\t\tthis.mostrarDatosCedula = false;\n\t\t\tthis.mostrarDatosAdicional = false;\n\t\t\tthis.mostrarLegalizar = true;\n\t\t\tawait this.enviarPasoFinal();\n\t\t}\n\t}\n\n}\n\nelaborar(empresa: number, contrato: number, formato: number, grupo: number, descripcionGrupo: string, actoCorregir: ActoCambioEmpleadoModel){\n\tthis.inicializar();\n\tthis.descripcionGrupo = descripcionGrupo;\n\tthis.generalService\n\tif ( actoCorregir == null) {\n\t\tthis.nuevo(empresa, contrato, formato, grupo).then(data => {});\n\t}\n\telse {\n\t\tthis.corregir(actoCorregir).then(data => {});\n\t}\n}\n\nasync corregir(actoCorregir: ActoCambioEmpleadoModel) {\n\tthis.llaveBase = '';\n\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\tthis.mostrarFoto = true;\t\t\t\t\n\tthis.mostrarDatosCedulaCampos = false;\n\tthis.mostrarDatosCombinacion = false;\n\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: actoCorregir.llave, etapa: this.etapa}).toPromise();\n\tthis.actoCambioEmpleadoBorrarDTO.derogacion = (actoCorregir.llave);\n\t\tthis.actoCambioEmpleadoBorrarDTO.postLegalizada = (this.parametroFormatoPipe.CORREGIR);\n\n\t\tthis.unidadAntes = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\tthis.cargoAntes = this.actoCambioEmpleadoBorrarDTO.cargo;\n\t\tthis.puestoSeleccion = this.actoCambioEmpleadoBorrarDTO.llavePuesto;\n\t\t\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\t\t\t\n\t\t\n\t\t//CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif(this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null){\n\t\t\tvar contrato = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\t\t\t\n\t\t\tif(contrato != (0) && empresa != 0){\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\t\t\t\t\t\n\t\t\n\t\t//CARGAMOS EL FORUMARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\t\t\n\t\tawait this.decideQueMostrar();\t\t\t\t\n\t\t\n\n}\n\nasync nuevoActoNovedad(empresa: number, contrato: number, formato: number, grupo: number, llaveTipoNovedad: string){\n\tthis.llaveTipoNovedad = llaveTipoNovedad;\n\tawait this.nuevo(empresa, contrato, formato, grupo);\n}\n\n/**\n * Metodo para crear un nuevo acto ingreso.\n * @param empresa Empresa con la que se desea hacer el trasado\n * @param contrato Contrato del nuevo acto Traslado\n * @param formato LLave del formato que tendra relacionado este Acto Ingreso\n * @param grupo Cada Acto Ingreso tendra relacionado un grupo vincula\t \t \t \n */\nasync nuevo(empresa: number, contrato: number, formato: number, grupo: number){\n\t\tthis.mostrarDatosCedulaCampos = true;\n\t\tthis.mostrarDatosCombinacion = false;\n\t\tthis.mostrarFoto = false;\n\t\tthis.mostrarDatosCedula = true;\n\t\tthis.seguimiento = false;\n\t\t\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = '';\t\t\t\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel;\n\t\tif(this.utilsService.isNotBlank(this.llaveTipoNovedad)){\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.llaveTipoNovedad = this.llaveTipoNovedad;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.postLegalizada = '.';\n\t\tthis.actoCambioEmpleadoBorrarDTO.formato = formato;\n\t\tif(contrato != 0){\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleado = 0;\n\t\t}\t\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO.empresa = empresa;\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO = await this.formatoService.traerFormato({formato: formato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria = [];\n\t\t\n\t\tif(contrato != 0 && empresa != 0){\n\t\t\tvar empleadoDTO = new EmpleadoModel();\n\t\t\templeadoDTO.empresa = empresa;\n\t\t\templeadoDTO.contrato = contrato;\n\t\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = empleadoDTO;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.hojaVida = empleadoDTO.cedula;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empresa = empresa;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.contratoAnt = contrato;\n\t\t\t\n\t\t\templeadoDTO = new EmpleadoModel();\n\t\t\templeadoDTO.contrato = contrato;\n\t\t\templeadoDTO.empresa = empresa;\n\t\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\t\tif(empleadoDTO != null){\n\t\t\t\tthis.setFuncionario(empleadoDTO);\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t\telse{\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = new EmpleadoModel();\n\t\t\t//getBean(CabeceraEmpleadoBean.class).EmpleadoDTO(null);\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.grupoVincula = grupo;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaSoporteItem.forEach(formatoFirmaDTO =>  {\n\n\t\t\tif(formatoFirmaDTO.origenActo !=null && formatoFirmaDTO.origenActo == (this.parametroFormatoPipe.ACTOS_ORIGINALES)){\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.soporte = formatoFirmaDTO.planilla;\n\t\t\t\treturn;\n\t\t\t}\n\t\t})\n\t\t\n\t\tif(this.actoCambioEmpleadoBorrarDTO.formatoDTO != null && this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp != null && this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp != '.'){\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.tipoCambio = this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp;\n\t\t}\n\t\t\t\t\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tawait this.cargarCombos(formato);\n\t\t\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tawait this.decideQueMostrar();\n\t\tthis.mostrar = true;\n}\nsetAntecesor(actoDTO: ActoIngresoAusenciaModel ){\n\tif(actoDTO != null){\n\t\tthis.actoCambioEmpleadoBorrarDTO.antesesor = actoDTO.llaveActo;\n\t\tthis.actoCambioEmpleadoBorrarDTO.descripcion = actoDTO.descripcion;\n\t}\n}\nverPopupAntecesor(){\n\t\tif(this.actoCambioEmpleadoBorrarDTO.empleado == null){\n\t\t\tthis.notificacionesService.showInfo('Primero, selecione un empleado.');\n\t\t\treturn null;\n\t\t}\n\t\tvar actoDTO = new ActoIngresoAusenciaModel();\n\t\tactoDTO.formatoPadre = this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\tactoDTO.estado = 6;\n\t\tactoDTO.contrato = this.actoCambioEmpleadoBorrarDTO.codigoEmpleado;\n\t\tactoDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t//getBean(PopupAntecesorBean.class).buscar('#{actoCambioPuestoBean.antecesor}',actoDTO,this.parametroFormatoPipe.TIPO_ACTO_INGRESO);\n\t\t\n\treturn null;\n}\n\n/**\n * Permite modificar el acto administrativo\n * @param llave La llave del acto administrativo que se quiere modificar\n */\nasync modificar(llave: string){\n\tthis.inicializar();\n\tthis.llaveBase = llave;\n\tthis.mostrarFoto = true;\t\t\t\t\n\tthis.mostrarDatosCedulaCampos = false;\n\tthis.mostrarDatosCombinacion = false;\n\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t\n\t\t\n\t\tthis.unidadAntes = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\tthis.cargoAntes = this.actoCambioEmpleadoBorrarDTO.cargo;\n\t\tthis.puestoSeleccion = this.actoCambioEmpleadoBorrarDTO.llavePuesto;\n\t\t\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\t\t\t\n\t\t\n\t\t//CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif(this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null){\n\t\t\tvar contrato = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\t\t\t\n\t\t\tif(contrato != 0 && empresa != 0){\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\t\t\t\t\t\n\t\t\n\t\t//CARGAMOS EL FORUMARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\t\t\n\t\tawait this.decideQueMostrar();\n\t\tawait this.siguienteCedula();\n}\n\n/**\n * Permite mostrar el formulario de legalizacion pero sin botones para los actos que tienen relacionado una novedad.\n * @param llave\n */\nasync verFormularioParaBPM(llave: string){\n\tthis.ocultarBotones = true; \n\tawait this.legalizacion(llave);\n}\n\n/**\n * Permite legalizar un acto administrativo\n * @param llave La llave del acto administrativo que se quiere legalizar\n */\nasync legalizacion(llave: string){\n\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\tthis.llaveBase = llave;\n\tthis.mostrarFoto = true;\n\tthis.mostrarDatosCombinacion = false;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1100)\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\t\t\t\n\t\t\n\t\t//CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif(this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null){\n\t\t\tvar contrato = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\t\t\t\n\t\t\tif(contrato != 0 && empresa != 0){\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\t\t\t\t\t\t\n\t\t\t \n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\t\t\t\t\t\n\t\t\n\t\tawait this.decideQueMostrar();\n}\n\n/**\n * Permite eliminar un acto administrativo\n * @param llave La llave del acto administrativo que se quiere eliminar\n */\nasync eliminar(llave: string){\n\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\tthis.llaveBase = llave;\n\tthis.mostrarFoto = true;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\t\n\t\t//CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif(this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null){\n\t\t\tvar contrato = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\t\t\t\n\t\t\tif(contrato != 0 && empresa != 0){\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tthis.mostrar = true;\n\t\tawait this.decideQueMostrar();\n}\n\n/**\n * Metodo que continua con el siguiente paso del proceso,\n * este metodo se encargar de verificar la informacion que se ha registrado el proceso de ingreso de datos\n * del empleado. Validaciones y demas..\n * Ademas de validar la inclusi\\u00F3n del numero de la cedula,\n * validar la inclusi\\u00F3n del n\\u00FAmero del n\\u00FAmero del contrato (y/o sacar mensajes de inconsistencia)\n */\nasync siguienteCedula(){\t\t\n\tif(!this.validarDatosCedulaEmpleado()){\n\t\treturn;\n\t}\n\t\tvar estadoPermitido: string = null;\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.hojaVida!=null) {\n\t\t\tif(this.actoCambioEmpleadoBorrarDTO.formatoDTO.hojaVida == 'S') {\n\t\t\t\testadoPermitido = 'activoliquidacion';\n\t\t\t}\n\t\t}\n\t\tthis.empleado = await this.empleadoService.obtenerEmpleadoUsuario(this.actoCambioEmpleadoBorrarDTO.empresa,this.actoCambioEmpleadoBorrarDTO.empleado,this.actoCambioEmpleadoBorrarDTO.grupoVincula, estadoPermitido);\n\t\tconsole.log(this.empleado)\n\t\tif(this.empleado == null){\n\t\t\tthis.notificacionesService.showInfo('Empleado no se encuentra activo o la vinculacion del empleado no esta dentro del grupo del formato');\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.validaIngresoContratoTraslado({ actoCambio:this.actoCambioEmpleadoBorrarDTO,\n\t\t\tusuario: this.authService.getTokenKey('usuario'), etapa: this.etapa}).toPromise();\n\t\tconsole.log('entra siguiente cedula')\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\t\tif(this.actoCambioEmpleadoBorrarDTO.mensaje != null){\n\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\t\tif( this.parametroFormatoPipe.ACCION_CORRECCION != (this.accion) ) {\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0 && this.actoCambioEmpleadoBorrarDTO.antesesor != null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.conAntecesor({actoCambio: this.actoCambioEmpleadoBorrarDTO, antecesor: this.actoCambioEmpleadoBorrarDTO.antesesor}).toPromise();\n\t\t\t}\n\t\t}\n\t\t//asignamos el siguiente paso\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\n\t\tthis.listaParaCampos = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos;\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato)\n\t\tawait this.crearFormularioListaParaCampo();\n\t\t\n\t\tawait this.decideQueMostrar();\n\t\t\n\t\tthis.cargarVariableFormato(this.actoCambioEmpleadoBorrarDTO.llave).then(data => {});\n\t\t\n}\n\n/**\n * Metodo que controla el tercer proceso que es donde se selecciona por medio de selectoneradio \n * si deseo incluir un puesto de trabajo o no\n * @ \n */\nasync siguienteAdicional() {\n\t/**\n\t * Validamos los campos listaparacampos de que esten correctamente adicionados\n\t * Validamos la seleccion de una unidad y un cargo\n\t * Con el formulario dinamico validamos la listaparacampos\n\t * La unidad y el cargo si la debemos validar con aqui\n\t */\n\t/*if (!this.formularioDinamico.validar())\t{\n\t\treturn;\n\t}\t\n\tthis.actoCambioEmpleadoBorrarDTO  = this.formularioDinamico.getObjecto();*/\n\tthis.actoCambioEmpleadoBorrarDTO.variablesActo = this.obtenerVariablesFormato();\n\t\n\t\n\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.formatoDTO.servicioValidador)) {\n\t\tthis.actoCambioEmpleadoBorrarDTO.mensaje = null;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.ejecutarValidadorActosWS({actoCambio: this.actoCambioEmpleadoBorrarDTO}).toPromise();\n\t\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\t\tthis.notificacionesService.showWarning(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\t}\n\t\t\t\n\tif(this.actoCambioEmpleadoBorrarDTO.tipoCambio == null || this.actoCambioEmpleadoBorrarDTO.tipoCambio.trim() == '.'){\n\t\tif ( this.formularioDinamico.obtenerCampo('tipoCambio') != null ) {\n\t\t\tthis.notificacionesService.showWarning('Tipo de cambio ingreso no definido');\n\t\t\treturn;\n\t\t}\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.formatoDTO  != null && 'S' == (this.actoCambioEmpleadoBorrarDTO.formatoDTO.definitivo) ) {\n\t\t\tthis.notificacionesService.showWarning('Tipo de cambio ingreso no definido');\n\t\t\treturn;\n\t\t}\n\t}\t\t\t\n\t\n\tthis.pasoAnterior = this.paso;\n\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t//this.valoresEditablesFormulario(false);\t\t\t\n\tawait this.decideQueMostrar();\n\tawait this.enviarPasoFinal();\n\t\t\t\n}\n\n/**\n * Metodo que controla el proceso de legalizacion\n * Validando los campos de listaparacamposlegaliza\t \t\n */\nasync siguienteDatosLegalizar(){\n\t\n\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t//VALIDAMOS LA INCLUSION DE LISTAPARACAMPOLEGALIZA\n\t\tif(!this.formularioDinamico.validar()){\n\t\t\treturn null;\n\t\t}\n\t\t/**\n\t\t * Si paso las validaciones hacemos una actualizacion del registro actoCambioEmpleadoBorrarDTO\n\t\t */\n  \t\tawait this.generalService.update(new GeneralModel('ActoCambioEmpleadoDTO', null, false ,this.actoCambioEmpleadoBorrarDTO)).toPromise();\n\t\t\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tawait this.decideQueMostrar();\n\t}\n\telse if(this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tawait this.decideQueMostrar();\n\t}\n\treturn null;\n}\n\n/**\n * Metodo que nos valida los datos del puesto trabajo\n * @return boolean Retorna True o False de acuerdo pase las validaciones\n */\nvalidarDatosPuestoTrabajo() {\n\tvar valida: boolean = true;\n\t\n\tif(this.obligatorio(this.parametroFormatoPipe.TURNO)){\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.turno);\t\t\t\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.CLASIFICACION)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.clasificacion);\t\t\t\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.PERIODO)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.tipoPeriodo);\t\t\t\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.VINCULACION)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.vincula);\t\t\t\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.COSTEO)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.zonaEconomica);\t\t\t\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.LINEA)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.lineaCosto);\t\t\t\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.UBICACION)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.ubicacionFis);\t\t\t\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.SUELDO)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.sueldo);\n\t}\n\tif(this.obligatorio(this.parametroFormatoPipe.TOTAL)){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.total);\n\t}\n\t\n\treturn valida;\n}\n\n/**\n * Determina si el campo indicado es obligatorio\n * @param campo El campo que se quiere evaluar\n * @return true en caso de ser obligatorio, en caso contrario false\n */\nobligatorio(campo: string){\n\tvar regreso: boolean = false;\n\tfor (let i = 0; i < this.listaParaPuesto.length; i++ ){\n\t\tlet dto = this.listaParaPuesto[i];\n\t\tif(dto.campo != null && dto.campo.trim() == campo){\n\t\t\tregreso = dto.accion != null && (dto.accion == (this.parametroFormatoPipe.INGRESARE));\t\t\t\t\n\t\t}\n\t}\n\treturn regreso;\n}\n\n\n\n/**\n * Metodo que continua la elaboracion del acto despues de ingresar los datos del puesto\n * @return null\n */ \nasync continuarDatoPuesto() {\n\tthis.infoDatosPlanta.validarPuestoTrabajo = true;\n\tif (!this.formularioDinamico.validar() || !this.validarDatosPuestoTrabajo()) {\n\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\treturn;\n\t}\n\tthis.infoDatosPlanta.validarPuestoTrabajo = false;\n\tthis.actoCambioEmpleadoBorrarDTO  = this.formularioDinamico.getObjecto();\n// Esto genera que las variables adicionales desaparezca el valor\t\t\t\n\tthis.actoCambioEmpleadoBorrarDTO = this.infoDatosPlanta.actoCambioEmpleadoBorrarDTO;\n\tthis.formularioEditable = true;\n//\t\t\tFormularioDinamico formulario = FormularioDinamico.Formulario();\n//\t\t\tformulario.modificar(actoCambioEmpleadoBorrarDTO,true);\n\tthis.formularioEditable = true\n\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal?.length != 0) {\n\t\tthis.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\tthis.valoresEditablesFormulario(true);\n\t\t//FormularioDinamico.Formulario().editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL, this.campoFormularioPipe.CAMPO_LECTURA);\n\t\tawait this.adicionarCamposSolicitudFinal(this.campoFormularioPipe.GRUPO_FINAL);\n\t\tthis.mostrarDatosPuestoTRabjo = false;\n\t\tthis.mostrarPuestoTrabajo = false;\n\t\tthis.mostrarLegalizar = false;\n\t\tthis.mostrarDatosAdicional = true;\n\t\treturn null;\n\t}\n\n\tawait this.continuarDatosFinal();\n\treturn null;\n}\n\nasync continuarDatosFinal() {\n\t/**\n\t * Validamos que los campos listaparacampos esten correctamente\n\t * adicionados Validamos la seleccion de una unidad y un cargo (Con\n\t * el formulario dinamico validamos la listaparacampos La unidad y\n\t * el cargo si la debemos validar con aqui)\n\t */\n\tthis.infoDatosPlanta.validarPuestoTrabajo = true;\n\tif (!this.formularioDinamico.validar() && !this.validarDatosPuestoTrabajo()) {\n\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\treturn;\n\t}\n\tthis.infoDatosPlanta.validarPuestoTrabajo = false;\n\t\n\tif (this.actoCambioEmpleadoBorrarDTO.tipoCambio == null || this.actoCambioEmpleadoBorrarDTO.tipoCambio.trim() == '.') {\n\t\tif ( this.formularioDinamico.obtenerCampo('tipoCambio') != null ) {\n\t\t\tthis.notificacionesService.showWarning('Tipo de cambio ingreso no definido');\n\t\t\treturn;\n\t\t}\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.formatoDTO  != null && 'S' == (this.actoCambioEmpleadoBorrarDTO.formatoDTO.definitivo) ) {\n\t\t\tthis.notificacionesService.showInfo('Tipo de cambio ingreso no definido');\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// colocamos los valores del formulario en el dto que tenemos en el\n\t// formulario dinamico\n\tthis.actoCambioEmpleadoBorrarDTO =this.formularioDinamico.getObjecto();\n\n\t// Validamos que los datos del puesto trabajo esten completos\n\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\tawait this.generalService.update(new GeneralModel('ActoCambioEmpleadoDTO', null, false, this.actoCambioEmpleadoBorrarDTO)).toPromise()\n\t\tawait this.procesoCombinacion();\n\t} else {\n\n\t\tvar llaveSeguimiento: string = null;\n\t\tif (this.seguimiento) {\n\t\t\tllaveSeguimiento = this.utilsService.generarLlave();\n\t\t}\n\n\t\tvar actoCopia: ActoCambioEmpleadoModel = {...this.actoCambioEmpleadoBorrarDTO};\n\t\tthis.actoCambioEmpleadoBorrarDTO.estadoNumero = 0;\n\t\t\n\t\t//actoCambioEmpleadoBorrarDTO.Solicita(saraAplicacionBean.Cedula());\n\n\t\t//try {\n\t\t\tvar acto: ActoCambioEmpleadoModel = await this.actoCambioEmpleadoService.elaborarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = acto;\n\n\t\t\tif(this.utilsService.isNotBlank(this.llaveTipoNovedad)){\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.llaveTipoNovedad = this.llaveTipoNovedad;\n\t\t\t}\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCargo = actoCopia.descripcionCargo;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCentroCosto = actoCopia.descripcionCentroCosto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionLineaCosto = actoCopia.descripcionLineaCosto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUbicacionFis = actoCopia.descripcionUbicacionFis;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUnidad = actoCopia.descripcionUnidad;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica = actoCopia.descripcionZonaEconomica;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.variablesActo = this.obtenerVariablesFormato();\n\t\t\tif (llaveSeguimiento != null) {\n\t\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actoCambioPuestoBean.cierreSeguimientoElabora}');\n\t\t\t} else {\n\t\t\t\tawait this.setCierreSeguimientoElabora(null);\n\t\t\t}\n\t\t/*} catch (error) {\n\t\t\tthis.borrarRegistro();\n\t\t\tconsole.log('entra aca')\n\t\t\tthis.notificacionesService.showError(error);\n\t\t}*/\n\t}\n}\n\n/**\n * Método de retorno del evento de cierre del popup de seguimiento Muestra mensaje de éxito del proceso\n * \n * @param objeto\n *            Se utiliza este parámetro para dar al método la forma de un método SET\n */\nasync setCierreSeguimientoElabora(objeto: string){\n\tif (!this.utilsService.isBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\treturn;\n\t}\n\t//try {\n\t\tawait this.procesoCombinacion();\n\t/*} catch (error) {\n\t\tthis.borrarRegistro();\n\t\tconsole.log('entra aca')\n\t\tthis.notificacionesService.showError(error);\n\t}*/\n}\n\n/**\t \n * Metodo que me genera el reporte pdf\n */\nasync procesoCombinacion(){\n\t\n\t//cada vez que se genere un proceso de combinacion el nombre de archivo quedara null, en donde nos sirvara para saber si el \n\t//proceso de combinacion se efectuo bien, por si este se genero correctamente esta variable que da con el nombre con que se genero el \n\t//el archivo..\n\t\n\tthis.llaveNombreArchivoProcesoCombinacion = null;\n\t\n\t\tvar listaMarcador: any[] = [];\n\t\tvar columnas: string[] = [];\n\t\tcolumnas.push('C_LLAVE');\n\t\tvar valores: any[] = [];\n\t\tvalores.push(this.actoCambioEmpleadoBorrarDTO.llave);\n\t\t\n\t\tvar mostrarPdfoWord: boolean = false;\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.grupoVincula != null) {\n\t\t\tvar usf = new UsuarioFormatoModel();\n\t\t\tusf.usuario = this.authService.getTokenKey('usuario');\n\t\t\tusf.grupo = this.actoCambioEmpleadoBorrarDTO.grupoVincula;\n\t\t\tusf.formato = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\t\tusf.tipo = 'US';\n\t\t\tusf = await this.generalService.queryForObject(new GeneralModel('UsuarioFormatoDTO', null, false, usf)).toPromise(); \n\t\t\t//verificamos en que formato vamos a mostrar este acto\n\t\t\t//si en formato pdf o formato word\t\t\t\t\n\t\t\tif(usf != null && usf.informe != null){\n\t\t\t\t//si es F, Mostramos pdf\n\t\t\t\t//sino, mostramos word\n\t\t\t\tmostrarPdfoWord = ('F' == usf.informe.trim());\n\t\t\t}\n\t\t}\n\t\tthis.actoDtoPdf = await this.actoCambioEmpleadoService.generarPdf({\n\t\t\tcolumnas: columnas, valores: valores, listaMarcador: listaMarcador, soportePlanilla: this.actoCambioEmpleadoBorrarDTO.soporte\n\t\t}).toPromise()\n\t\t//actoDtoPdf = getBean(GeneradorPdfActos.class).generarPdf(columnas, valores, listaMarcador, actoCambioEmpleadoBorrarDTO.Soporte());\n\t\tthis.mostrarDatosCombinacion = true;\n\t\tawait this.utilsService.sleep(500)\n\t\tif (!this.actoCambioEmpleadoBorrarDTO.descripcionLineaCosto) {\n\t\t\tlet dato = await this.generalService.queryForObject(new GeneralModel('LineaCostoDTO', null, false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), lineaCosto: this.actoCambioEmpleadoBorrarDTO.lineaCosto})).toPromise()\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionLineaCosto = dato?.descripcion;\n\t\t}\n\t\tthis.mostrarDatosCombinacionActoIngreso.actoCambioEmpleadoBorrarDTO = this.actoCambioEmpleadoBorrarDTO;\t\t\t\t\t\t\n\n\t\tthis.mostrarDatosCombinacionActoIngreso.etapa = this.etapa;\n\t\tthis.mostrarDatosCombinacionActoIngreso.ocultarBotones = this.ocultarBotones;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaDatosPlanta = this.listaDatosPlanta;\n\t\tthis.mostrarDatosCombinacionActoIngreso.formatoDTO = this.actoCambioEmpleadoBorrarDTO.formatoDTO;\n\t\tthis.mostrarDatosCombinacionActoIngreso.deDondeVengo = this.deDondeVengo;\n\t\tthis.mostrarDatosCombinacionActoIngreso.LLAVE_BASE = this.llaveBase;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarPdf = this.actoDtoPdf.resultado;\n\t\tthis.mostrarDatosCombinacionActoIngreso.rutaFisicaWord = this.actoDtoPdf.rutaWord;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarWord = !mostrarPdfoWord;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarTablaMateria = this.actoCambioEmpleadoBorrarDTO.listaTablaMateria.length != 0;\n\t\t\n\t\t//Enviamos los combos que se utilizarion en el acto, parta mostrar la informacion en la \n\t\t//siguiente pagina, que son los combos del Formulario Dinamico\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaFormatoDatoDocumentoItem = this.listaFormatoDatoDocumentoItem;\n\t\tconsole.log(this.listaTipoCambioItem)\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaFirmaDocumentoItem = this.listaFirmaDocumentoItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaSucursalItem = this.listaSucursalItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaRoloItem = this.listaRoloItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaTipoCambioItem = this.listaTipoCambioItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaSoporteItem = this.listaSoporteItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.accion = this.accion;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrar = true;\n\t\tawait this.utilsService.sleep(500)\n\n\t\t//cargamos el formulacion dinamico dependiendo de la etapa donde me encuentre trabajando \t\t\t\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)  || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\tawait this.mostrarDatosCombinacionActoIngreso.cargarFormularioDinamicoElaboraModifica();\n\t\t}\n\t\telse if(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\tawait this.mostrarDatosCombinacionActoIngreso.cargarFormularioDinamicoLegalizaElimina();\n\t\t}\n\t\t\n\t\t/*if(actoDtoPdf.isResultado()){\n\t\t\tllaveNombreArchivoProcesoCombinacion = actoDtoPdf.RutaPdf();\n\t\t\tthis.mostrarDatosCombinacionActoIngreso.Ruta(actoDtoPdf.RutaPdf());\t\t\t\t\n\t\t}\n\t\telse {\n\t\t\tif ( actoDtoPdf.Mensaje() != null) {\n\t\t\t\twarning(actoDtoPdf.Mensaje());\n\t\t\t}\n\t\t\telse if (actoDtoPdf.ExceptionResultado() != null ) {\n\t\t\t\terror(actoDtoPdf.ExceptionResultado());\n\t\t\t}\n\t\t}*/\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarFotoEml = true;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarFotoHojaVida = false;\n\t\tawait this.cargarDatosEmpleadoContrato(this.actoCambioEmpleadoBorrarDTO.empleado,this.actoCambioEmpleadoBorrarDTO.empresa);\n\tif(this.parametroFormatoPipe.ETAPA_ELABORACION == (this.etapa) || this.parametroFormatoPipe.ETAPA_MODIFICAR == (this.etapa)){\n\t\tthis.borrarRegistro();\n\t}\n\tthis.pasoAnterior = this.paso;\n\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n}\n\n\n/**\n * Accion final que sea aplica sobre el acto administrativo de acuerdo con la etapa del proceso (ELABORACION/MODIFICACION, ELIMINACION, LEGALIZACION)\n */\nasync aplicarFinal(){\n\ttry {\n\t\tvar llaveSeguimiento = this.seguimiento ? this.utilsService.generarLlave() : null;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.legalizarActoCambio({\n\t\t\tactoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), etapa: this.etapa, llaveBase: this.llaveBase, seguimiento: llaveSeguimiento\n\t\t}).toPromise()\n\t\t\t\n\t\tif(this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.mensaje != null && this.actoCambioEmpleadoBorrarDTO.mensaje.trim().length != 0){\n\t\t\tconsole.log('entra aca 1')\n\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tthis.procesoGeneralAnexo();\n\t\tvar nombreArchivo = ''//getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)+llaveBase+'.'+ConstantesGenerales.ARCHIVO_PDF;\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\t\n\t\t\t//Verificamos que el archivo de este acto se haya generado bien\n\t\t\tif (this.actoDtoPdf != null && this.actoDtoPdf.rutaPdf != null && this.actoDtoPdf.mensaje == null) {\n\t\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actoCambioPuestoBean.terminar}', actoCambioEmpleadoBorrarDTO.formatoDTO, nombreArchivo);\n\t\t\t\treturn null;\n\t\t\t} \n\t\t\tif (await this.isGeneraPlanillaFlexible()) {\n\t\t\t\tthis.irAFlexible();\n\t\t\t}\n\t\t}\n\t\t\n\t\t//Muestra el popup de seguimiento. Al cerrarlo muestra el mensaje de éxito del proceso\n\t\tif (this.seguimiento ) {\n\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actoCambioPuestoBean.cierreSeguimiento}');\n\t\t}\n\t\telse{\n\t\t\t//Muestra el mensaje de éxito del proceso\n\t\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t\tthis.notificacionesService.showInfo(titulo);\n\t\t\tconsole.log('entra aca 2')\n\t\t\tthis.regresarActoAdmin()\n\t\t}\n\t\t\n\t} catch (error) {\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)){\n\t\t\tthis.borrarRegistro();\n\t\t}\t\t\t\n\t\tthis.notificacionesService.showError(error);\n\t}\t\t\t\t\t\t\t\t\n\t\n\treturn null;\n}\n\nsetRegresar(regresar: string){\n\tthis.regresarActoAdmin();\n} \n\n/**\n * Método de retorno del evento de cierre del popup de seguimiento\n * Muestra mensaje de éxito del proceso\n * @param objeto Se utiliza este parámetro para dar al método la forma de un método SET\n */\nsetCierreSeguimiento(objeto: string){\n\t\n\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\tthis.notificacionesService.showInfo(titulo);\n\tthis.regresarActoAdmin()\n}\n\nasync setTerminar(s: string ) {\n\tif (await this.isGeneraPlanillaFlexible()) {\n\t\tthis.irAFlexible();\n\t} else {\n\t\tthis.regresarActoAdmin();\n\t}\n}\n\nirAFlexible() {\n\t//var empleado = empleadoSvc.obtenerEmpleadoPorContrato(getDataSource(), this.actoCambioEmpleadoBorrarDTO.empresa, this.actoCambioEmpleadoBorrarDTO.empleado);\n\t//var flexibleDTO = flexibleSvc.traerFlexiblePorContrato(getDataSource(), empleado.contrato, this.actoCambioEmpleadoBorrarDTO.llave);\n\t//if (flexibleDTO != null) {\n\t//\tthis.vistaVisualizar = 'DETALLEFLEXIBLE';\n\t\t//FlexibleBean bean = getBean(FlexibleBean.class);\n\t\t//bean.cargar(flexibleDTO, empleado);\n//}\n}\n\nprocesoGeneralAnexo(){\n\n\t//despues de cada aplicar y que el proceso se realize de forma correcta\n\t//guardamos una registro de ese archivo en la tabla anexoHojaVida_ahv\n\t//1. SI ESTAMOS REALIZANDO UNA ELABORACION, INSERTAMOS UN NUEVO REGISTRO ANEXO\n\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)){\n//\t\t\tgenerarAnexoSvc.registrarAnexoHojaActoCambioEml(getDataSource(), this.llaveNombreArchivoProcesoCombinacion, actoCambioEmpleadoBorrarDTO,false,null,this.authService.getTokenKey('usuario'), getPropiedadAplicativo(PropiedadesAplicativoDTO.AVIDA));\n\t}\t\t\t\n\t//2.SI ESTAMOS RELIZANDO UNA MODIFICACION o LEGALIZACION, ELIMINAMOS EL AL ANTERIOR E INSERTAMOS UNO NUEVO\n\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n//\t\t\tgenerarAnexoSvc.registrarAnexoHojaActoCambioEml(getDataSource(), llaveNombreArchivoProcesoCombinacion, actoCambioEmpleadoBorrarDTO,true,llaveBase,this.authService.getTokenKey('usuario'), getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA));\n\t}\n\t//2.SI ESTAMOS RELIZANDO UNA ELIMINACION, ELIMINAMOS EL ANEXO\n\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t//generarAnexoSvc.registrarAnexoHojaActoCambioEml(getDataSource(), null, actoCambioEmpleadoBorrarDTO,true,llaveBase,this.authService.getTokenKey('usuario'), getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA));\n\t}\n}\n\n/**\n * Metodo que borra el registro insertado cuando se genera algun error..\n */\n borrarRegistro(){\n\t//BORRAMOS EL REGITRO\n\tif(this.actoCambioEmpleadoBorrarDTO != null){\n\t\tthis.actoCambioEmpleadoService.borrarRegistroCambio({llave: this.actoCambioEmpleadoBorrarDTO.llave}).subscribe(data => {});\n\t}\n}\n \nnoMostrarDatosCombinacion(){\n\tthis.mostrarDatosCombinacion = false;\t\n}\n\n \nregresarActoAdmin(){\n\tif(this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO == this.deDondeVengo){\n\t\t//getBean(ActosEmpleadoBean.class).Regresar();\n\t\treturn;\n\t}else if (this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.deDondeVengo) {\n\t\t/*ListadoNovedadEmpleadoBean listaNovedad = getBean(ListadoNovedadEmpleadoBean.class);\n\t\tlistaNovedad.traerListado(actoCambioEmpleadoBorrarDTO.EmpleadoDTO());\n\t\tlistaNovedad.VerDetalle(false);\n\t\tlistaNovedad.Panel(0);*/\n\t\treturn;\n\t} else if (this.novedadPipe.ORIGEN_APLICAR_NOVEDAD == this.deDondeVengo) {\n\t\t//getBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).MostrarListadoNovedades(false);\n\t\treturn;\n\t}\n\tthis.regresarAction.emit(false);\n\t//getBean(ActosAdministrativosBean.class).traerListado();\n}    \n\nisMostrarBotonPopup(){\n\treturn this.deDondeVengo == null || this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO != this.deDondeVengo;\n}\n\nvalidarDatosCedulaEmpleado(){\n\tvar valida = true;\n\t/*valida = valida &&  this.utilsService.validarCampoObligatorio(this.this.actoCambioEmpleadoBorrarDTO.empleado, idForm+':identifica', true, 22,126);\t\t\t\n\t//VALIDAMOS LA INCLUSION DE ALGUN DATO EN actoCambioEmpleadoBorrarDTO.ANTECESOR\n\tif(this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0){\n\t\tvalida = valida &&  this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.Antesesor(), idForm+':antecesor', true,32);\n\t}\t\t\t\t\n\t*/\t\t\n\treturn valida;\n}\n\n/**\n * Continua el proceso después de completar el formulario adicional: \n * Tercer proceso que es donde se selecciona por medio de selectOneRadio si se quiere incluir un puesto de trabajo o no \n * @return null\n */\nasync actionSiguienteAdicional(){\n\tif(this.parametroFormatoPipe.PASO_SOLICITUD_FINAL == (this.paso)) {\n\t\t/*if (!this.formularioDinamico.validar()){\n\t\t\treturn null;\t\n\t\t}\n\t\tFormularioDinamico dinamico = FormularioDinamico.Formulario();\n\t\tif (!dinamico.validar()) {\n\t\t\treturn null;\n\t\t}*/\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tawait this.continuarDatosFinal();\n\t\tthis.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal);\n\t\treturn null;\n\t}\n\tawait this.siguienteAdicional();\n}\n\n\nvaloresEditablesFormulario(editable: boolean){\n\tthis.formularioEditable = editable;\n\t//FormularioDinamico.Formulario().Editable(editable);\n\tthis.habilitarCombosUnidadCargo = editable;\n}\n\n\nasync cargarDatosEmpleadoContrato(contrato: number, empresa: number){\n\tvar empleadoDTO = new EmpleadoModel();\n\templeadoDTO.empresa = empresa;\n\templeadoDTO.contrato = contrato;\n\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\t\t\t\t\t\t\n\tif(empleadoDTO != null){\n\t\tthis.setFuncionario(empleadoDTO);\t\t\t\t\t\n\t}\n\n}\n\nasync cargaListaFormularioLeglizadaYcampo(){\n\tvar datoDTO = new FormatoDatoModel();\n\tdatoDTO.formato = this.actoCambioEmpleadoBorrarDTO.formato;\n\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n\tthis.listaParaCampos = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos;\n\t//CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n\tthis.crearFormularioListaLegalizada(await this.crearFormularioListaParaCampo());\n\t\n\tif(this.listaParaCampoLegalizada != null && this.listaParaCampoLegalizada.length == 0){\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t}\n\telse{\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t}\n}\n\n/**\n * Metodo que carga el formulario dinamico \n * de la listaParaCampoLegalizada\n * @see LegalizarActoIngresoBean\n */\ncrearFormularioListaLegalizada(grupo2){\n\t\t/*List<CampoFormulario> campos = ParametroFormatoWebCons.ListaCampoActoCambioEml();\n\t\tFormularioDinamico formulario = FormularioDinamico.Formulario();\n\t\tformulario.limpiar();\n\t\tformulario.Grupos().clear();\n\t\tformulario.Nombre'';\n\t\tGrupoFormulario grupo1 = new GrupoFormulario'';\n\t\tformulario.Grupos().add(grupo1);\t\t\t\n\t\t\n\t\t//adicionamos al grupo1, los datos del grupo 2\n\t\tfor (CampoFormulario g2 : grupo2.Campos()) {\n\t\t\tg2.Editable('L');\n\t\t\tg2.Obligatorio(false);\n\t\t\tgrupo1.Campos().add(g2);\n\t\t}\n\t\t\n\t\tiniciarVisualizacionTablas();\n\t\tiniciaValoresTablas(listaParaCampoLegalizada);\n\t\t\n\t\tfor (FormatoDatoDTO dato : listaParaCampoLegalizada) {\n\t\t\tfor (CampoFormulario campo : campos) {\n\t\t\t\tif(!campo.descripcion == (dato.campo.trim())){\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcargarDatosCampoFormulario(campo);\n\t\t\t\tcampo.obligatorio(true);\n\t\t\t\tcampo.Descripcion(dato.titulo != null && !dato.titulo.trim() == '' ? dato.titulo : campo.descripcion);\n\t\t\t\tcampo.DescripcionAdicional(dato.campo);\n\t\t\t\tcampo.IdGrupoPertenece(this.campoFormularioPipe.GRUPO_INICIAL);\n\t\t\t\tgrupo1.Campos().add(campo);\n\t\t\t}\n\t\t}\n\t\tformulario.Border(false);\n\t\tformulario.modificar(actoCambioEmpleadoBorrarDTO, true);*/\n}\n\n/**\n * Este metodo cargo todos los combos que necesitan\n * entre ellos..(ListaSoporte, ListaCargo, ListaUnidadOrganizacion etc...\n * @param formato\n */\nasync cargarCombos(formato: number) {\n\tvar formatoDatoDTO = new FormatoDatoModel();\n\tformatoDatoDTO.formato = formato;\n\tformatoDatoDTO.tipo = 'TD';\n\tthis.listaFormatoDatoDocumentoItem = this.selectListActos.getSelectItemFormatoDatoDocumentoItem(await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, formatoDatoDTO)).toPromise())\n\t\t\t\t\t\n\n\tif(this.controlFuncionalidadService.getControlFuncionalidad('actadm:filuni')) {\n\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).toPromise());\n\t}else {\n\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato})).toPromise());\n\t}\n\t\t\t\t\n\tvar rolesDTO = new RolesModel();\n\trolesDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\tthis.listaRoloItem = this.selectListActos.getSelectItemRolItem(await this.generalService.queryForList(new GeneralModel('RolesDTO', null, false, rolesDTO)).toPromise());\n\n\tthis.listaTipoCambioItem = this.selectListActos.getSelectItemTipoCambioItem(await this.generalService.queryForList(new GeneralModel('TipoCambioEmpleadoDTO', 'TipoCambio.consultarListaTipoCambio', false, {tipo: this.parametroFormatoPipe.ACTO_CAMBIO_PUESTO})).toPromise());\n\t\n\tthis.listaSoporteItem = this.selectListActos.getSelectItemSoporteItem(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarListaSoporteDocumento', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),formato: formato, tipoSoporte: 'W'})).toPromise());;\n\t\n\tthis.listaAdicional1 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_1);\n\tthis.listaAdicional2 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_2);\n\tthis.listaAdicional3 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_3);\n\t\t\t\t\n\tthis.listaSucursalItem = this.selectListActos.getListaSucursaActo(await this.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', 'LoginAccesoSara.consultarListaVistaSucursal', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), aliasRol: this.authService.getTokenKey('aliasRol'), login: this.authService.getTokenKey('usuario')})).toPromise());\n}\n\n/**\n * Metodo que carga el formulario dinamico \n * de la lista para campo\n */\nasync crearFormularioListaParaCampo(){\n\tthis.campos = [];\n\tvar campos2 = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\tthis.listaParaCampos.forEach(dato => {\n\t\tcampos2.forEach(async campo =>  {\n\t\t\tif(campo.descripcion == (dato.campo.trim())){\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t//CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS QUE CUMPLAN CON DICHO CONDICION\n\t\t\t\tif(dato.accion != null && dato.accion.trim() != (this.parametroFormatoPipe.INGRESARE)){\n\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t}\n\t\t\t\t//verificamos si el campo solo se pude visualizar\n\t\t\t\tif(dato.accion != null && dato.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR)){\n\t\t\t\t\tcampo.editable = 'L';\n\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t}\n\t\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != '' ? dato.titulo : campo.descripcion;\n\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\t\tthis.campos.push(campo)\t\t\t\t\t\n\t\t\t}\n\t\t})\n\t\t})\n\t\n\tthis.iniciarVisualizacionTablas();\n\tthis.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos);\n\t//formulario.Border(false);\n\tthis.formularioEditable = true;\n\t//formulario.modificar(actoCambioEmpleadoBorrarDTO, true);\n\tawait this.setValorCampos();\n\tconsole.log(this.campos)\n\t/* SI LA LISTA FORMAULARIO ESTA VACIA LO MANDAMOS A DATO PUESTO*/ \n\t\t\n}\n\nasync cargarDatosCampoFormulario(campo: CampoFormularioModel)  {\n\tconsole.log('entr cargarDatosCampoFormulario')\n\t//CARGAMOS EL COMBO PARA CADA \t\t\t\t\t\t\t\t\t\n\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n\t\tcampo.lista = this.listaFormatoDatoDocumentoItem;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)){\n\t\tif(this.controlFuncionalidadService.getControlFuncionalidad('actadm:filuni')) {\n\t\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: this.actoCambioEmpleadoBorrarDTO.formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).toPromise());\n\t\t}else {\n\t\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: this.actoCambioEmpleadoBorrarDTO.formato})).toPromise());\n\t\t}\n\t\tcampo.lista = this.listaFirmaDocumentoItem;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)){\n\t\tcampo.lista = this.listaSucursalItem;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.ROL)){\n\t\tcampo.lista = this.listaRoloItem;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)){\n\t\tcampo.lista = this.listaTipoCambioItem;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.SOPORTE)){\n\t\tcampo.lista = this.listaSoporteItem;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_1)){\n\t\tcampo.lista = this.listaAdicional1;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_2)){\n\t\tcampo.lista = this.listaAdicional2;\n\t}\n\tif(campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_3)){\n\t\tcampo.lista = this.listaAdicional3;\n\t}\n} \n\n\nasync adicionarCamposSolicitudFinal(etapaFormulario: string)  {\n\tvar campos2 = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.forEach(dato => {\n\t\tcampos2.forEach(async campo => {\n\t\t\tif (campo.descripcion != dato.campo.trim()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\tcampo.obligatorio = true;\n\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != '' ? dato.titulo : campo.descripcion;\n\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\tcampo.idGrupoPertenece = etapaFormulario;\n\t\t\t\n\t\t\tthis.campos.push(campo);\n\t\t})\n\t})\n\tthis.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal);\n\tawait this.setValorCampos();\n\t//FormularioDinamico.Formulario().modificarValorCamposAdicionales(this.actoCambioEmpleadoBorrarDTO, this.campoFormularioPipe.GRUPO_FINAL);\n}\n\nasync cargarVariableFormato(acto: string)  {\n\t//FormularioDinamico formulario = FormularioDinamico.Formulario();\n\t//formulario.CamposCaracteristica().clear();\n\tthis.formularioDinamico?.camposCaracteristicaClear();\n\t// Carga las variables del formato\n\tvar longitud:number= 0;\n\tvar campoVariable: CampoFormularioModel;\n  \tvar tipoDato: string;\n\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listadoVariables.forEach(variableConfigurada=> {\n\t\ttipoDato = variableConfigurada.tipoDato;\n\t\tif ('A' == (variableConfigurada.tipoDato)) {\n\t\t\tlongitud = 100;\n\t\t\ttipoDato = 'T';\n\t\t} else if ('N' == (variableConfigurada.tipoDato)) {\n\t\t\tlongitud = 20;\n\t\t}\n\t\tcampoVariable = new CampoFormularioModel(tipoDato, variableConfigurada.titulo, longitud, 0, variableConfigurada.llave,\n\t\t\t\t'S' == (variableConfigurada.obligatorio), null, '', 'E');\n\t\tcampoVariable.orden = variableConfigurada.orden;\n\t\tcampoVariable.campoTabla = variableConfigurada.llave;\n\t\tcampoVariable.caracteristica = true;\n\t\tthis.campos.push(campoVariable)\n\t})\n\n\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.llave)) {\n\t\tvar datoActoAdmonDTO = new DatoActoAdmonModel();\n\t\tdatoActoAdmonDTO.actoAdmon = acto;\n\t\tdatoActoAdmonDTO.tipoServicio = 'VF';\n\t\tvar datosVariables: DatoActoAdmonModel[] = await  this.generalService.queryForList(new GeneralModel('DatoActoAdmonDTO', null, false, datoActoAdmonDTO)).toPromise();\n\n\t\tdatosVariables.forEach(variable =>  {\n\t\t\tif (variable.tipoReferencia == null) {\n\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, null, variable);\n\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.NUMERO)  || variable.tipoReferencia == this.campoFormularioPipe.DECIMAL) {\n\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.valor, variable);\n\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.FECHA) ) {\n\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.fecha, variable);\n\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.TEXTO) ) {\n\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.cadena, variable);\n\t\t\t}\n\t\t})\n\t}\n\t\n}\n\nasync enviarPasoFinal(){\n\t//Cargamos los datos del bean InfoEmpleadoOcupaBean\n\t//InfoDatosPlantaBean bean =  getBean(InfoDatosPlantaBean.class);\n\tthis.mostrarDatosPuestoTRabjo = true;\n\tawait this.utilsService.sleep(1500)\n\tthis.infoDatosPlanta.validarPuestoTrabajo = false;\n\tthis.infoDatosPlanta.actoCambioEmpleadoBorrarDTO = this.actoCambioEmpleadoBorrarDTO;\n\tthis.infoDatosPlanta.eventoActosEjecutar = 'actocambiopuesto';\n\tthis.infoDatosPlanta.noMostrarRegresar = this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\tthis.infoDatosPlanta.accion = this.accion;\n\tthis.infoDatosPlanta.etapa = this.etapa;\n\tthis.infoDatosPlanta.verUnidadAdicional = true; \n\tthis.infoDatosPlanta.ocultarBotones = this.ocultarBotones;\n\tawait this.infoDatosPlanta.cargarDescripciones();\n\tthis.listaDatosPlanta = []\n\tvar dtoF = new FormatoDatoModel();\n\tdtoF.formato = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\tdtoF.tipo = 'PT';\n\tthis.listaDatosPlanta = await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, dtoF)).toPromise();\n\tthis.infoDatosPlanta.listaDatosPlanta = this.listaDatosPlanta;\n\tthis.infoDatosPlanta.asignaDatosDefecto();\n\tthis.infoDatosPlanta.LLAVE_BASE = this.llaveBase;\n}\n\n/**\n * Establece el empleado seleccionado desde el popup \n * @param empleadoDTO\n */\nsetFuncionario(empleadoDTO: EmpleadoModel){\n\t\n\tif(empleadoDTO != null){\n\t\tthis.mostrarFoto = true;\n\t\tthis.cedulaFiltro = empleadoDTO.documento;\n\t\tthis.actoCambioEmpleadoBorrarDTO.empleado = empleadoDTO.contrato;\n\t\tthis.actoCambioEmpleadoBorrarDTO.nombreCompleto = empleadoDTO.nombreCompleto;\n\t\tthis.actoCambioEmpleadoBorrarDTO.codigoEmpleado = empleadoDTO.contrato;\n\t\tthis.actoCambioEmpleadoBorrarDTO.documentoEmpleado = empleadoDTO.documento;\n\t\t//getBean(CabeceraEmpleadoBean.class).EmpleadoDTO(empleadoDTO);\n\t\tif(this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null){\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = empleadoDTO;\t\t\t\t\t\n\t\t}\n\t\tthis.mostrarBuscarAntecesor = true;\n\t}\n}\t\n\nactionEnviarSiguienteCedula(){\n\tthis.siguienteCedula().then(data => {});\n\treturn null;\n}\n\nhandleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n\n  filtrarEnter(event) {\n    if (event.key === 'Enter') {\n\t\tvar filtroEmpleado: EmpleadoModel = new EmpleadoModel;\n\t\tfiltroEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'))\n\t\tfiltroEmpleado.documento = this.cedulaFiltro,\n\t\tfiltroEmpleado.soloActivos = 'L'\n      this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, filtroEmpleado)).subscribe(data => {\n\t\tif (data.length == 1){\n\t\t\tthis.verPopupHojaVida(data[0])\n\t\t} else {\n\t\t\tthis.inputEmpleado.openDataTable()\n\t\t}\n\t  })\n    }\n  }\n\n/**\n * Despliega el popup para la búsqueda y seleccion de un empleado\n * (método de retorno actoCambioPuestoBean.Funcionario)\n * @return null\n */\nverPopupHojaVida(event){\n\tthis.setFuncionario(event);\n\tthis.actionEnviarSiguienteCedula();\n\tthis.actionSiguienteAdicional().then(data =>{})\n\t//getBean(PopupEmpleado.class).buscar('#{actoCambioPuestoBean.funcionario}');\n}\t\n\nobtenerVariablesFormato() {\n\tvar listadoVariablesFormulario: CampoFormularioModel[] = this.formularioDinamico?.getCamposCaracteristica();\n\tvar datosVariableFormato: DatoActoAdmonModel[] = [];\n\tvar datoActoAdmonDTO: DatoActoAdmonModel;\n\tif (listadoVariablesFormulario != null) {\n\t\tlistadoVariablesFormulario.forEach(variable => {\n\t\t\tdatoActoAdmonDTO = new DatoActoAdmonModel();\n\t\t\tdatoActoAdmonDTO.formatoDato = variable.campo;\n\t\t\tdatoActoAdmonDTO.tipoReferencia = variable.tipo;\n\t\t\tdatoActoAdmonDTO.tipoServicio = 'VF';\n\t\t\tif (variable.tipo == (this.campoFormularioPipe.NUMERO) || variable.tipo == (this.campoFormularioPipe.DECIMAL)) {\n\t\t\t\tif (variable.valor == null || variable.valor.toString() == '') {\n\t\t\t\t\tdatoActoAdmonDTO.valor = null;\n\t\t\t\t} else {\n\t\t\t\t\tdatoActoAdmonDTO.valor = Number(variable.valor.toString());\n\t\t\t\t}\n\t\t\t} else if (variable.tipo == (this.campoFormularioPipe.FECHA)) {\n\t\t\t\tdatoActoAdmonDTO.fecha = new Date(variable.valor);\n\t\t\t} else {\n\t\t\t\tdatoActoAdmonDTO.cadena = variable.valor + '';\n\t\t\t}\n\t\t\tdatosVariableFormato.push(datoActoAdmonDTO);\n\t\t})\n\t}\n\treturn datosVariableFormato;\n}\n\nmodificarTablaMateria(evt) {\n\t/*try {\n\t\tif (!isEditarListaTablaMateria()) {\n\t\t\twarning('No tiene permisos de edicion');\n\t\t\treturn;\n\t\t}\n\t\tperfilTablasDTOGuardado = (ActosAdminTablaDTO) evt.Object();\n\t\tgetBean(PopupIngresoMateriasBean.class).buscar('#{actoCambioPuestoBean.perfilTablaMateria}', perfilTablasDTOGuardado);\n\t} catch (error) {\n\t\tthis.notificacionesService.showError(error);\n\t}*/\n}\n\nsetPerfilTablaMateria(materia: ActosAdminTablaModel) {\n \t//try {\n\n\t\t/**\n\t\t * Si perfilTablasDTOGuardado es != null, entonces lo eliminamos y adicionamo el nuevo registro, con esto evitamos tener el registro varias veces en la lista\n\t\t */\n\t/*\tif (perfilTablasDTOGuardado != null) {\n\t\t\tactoCambioEmpleadoBorrarDTO.ListaTablaMateria().remove(perfilTablasDTOGuardado);\n\t\t}\n\t\tif (materia == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.utilsService.isNotBlank(materia.Asignatura())) {\n\t\t\tAsignaturaDTO asignaturaDTO = new AsignaturaDTO();\n\t\t\tasignaturaDTO.LlaveTabla(this.utilsService.rightPad(materia.Asignatura(), 32));\n\t\t\tasignaturaDTO = generalSvc.queryForObject(getDataSource(), asignaturaDTO);\n\t\t\tif (asignaturaDTO != null) {\n\t\t\t\tmateria.DescripcionAsignatura(asignaturaDTO.Descripcion());\n\t\t\t}\n\t\t}\n\t\tif (this.utilsService.isNotBlank(materia.Semestre())) {\n\t\t\tSemestreDTO semestre = new SemestreDTO();\n\t\t\tsemestre.LlaveTabla(this.utilsService.rightPad(materia.Semestre(), 32));\n\t\t\tsemestre = generalSvc.queryForObject(getDataSource(), semestre);\n\t\t\tif (semestre != null) {\n\t\t\t\tmateria.DescripcionSemestre(semestre.Descripcion());\n\t\t\t}\n\t\t}\n\t\tactoCambioEmpleadoBorrarDTO.ListaTablaMateria().add(materia);\n\t\tFormularioDinamico.Formulario().modificar(actoCambioEmpleadoBorrarDTO, true);\n\t} catch (error) {\n\t\tthis.notificacionesService.showError(error);\n\t}*/\n}\n\n/**\n * Inicializa los valores de las tablas 1, 2 y 3\n * \n * @param lista\n */\niniciaValoresTablas(lista: FormatoDatoModel[]) {\n\tif (lista == null || lista.length == 0) {\n\t\treturn;\n\t}\n\n\tlista.forEach(formatoDatoDTO =>  {\n\t\tif (this.utilsService.isNotBlank(formatoDatoDTO.campo) && formatoDatoDTO.campo.trim() == (this.parametroFormatoPipe.TABLA_MATERIA)\n\t\t\t\t&& (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESARE) || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESOL)\n\t\t\t\t\t\t|| formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL))) {\n\t\t\tthis.validarTablaMateria(formatoDatoDTO);\n\t\t} else if (this.mostrarTablaMateria) {\n\t\t\treturn;\n\t\t}\n\t})\n\t/**\n\t * cargamos los nombre de las tablas en caso se deban mostrar\n\t */\n\tvar dato: DatoorganizacionModel;\n\tif (this.mostrarTablaMateria) {\n\t\t//dato = this.actoCambioEmpleadoService.obtenerInformacionTabla(getDataSource(), this.actoCambioEmpleadoBorrarDTO.formatoDTO.tablaMateria);\n\t\t//this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4 = dato;\n\t}\n\n\t/**\n\t * Cargamos la lista de campos de cada campo tabla\n\t */\n\tif (this.mostrarTablaMateria) {\n\t\tthis.cargarListaDatoOrganizacionTablas();\n\t}\n}\n\nvalidarTablaMateria(formatoDatoDTO: FormatoDatoModel) {\n\tthis.editarListaTablaMateria = false;\n\tif (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL)) {\n\t\tif (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL == (this.paso) || this.mostrarTablaMateria) {\n\t\t\tthis.verTablaMateria(formatoDatoDTO);\n\t\t\tthis.editarListaTablaMateria = true;\n\t\t}\n\t} else {\n\t\tthis.verTablaMateria(formatoDatoDTO);\n\t\tif(formatoDatoDTO.accion.trim() != (this.parametroFormatoPipe.INGRESOL) && this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\tthis.editarListaTablaMateria = true;\n\t\t}\n\t}\n}\n\nverTablaMateria(formatoDatoDTO: FormatoDatoModel) {\n\tthis.mostrarTablaMateria = true;\n\tthis.actoCambioEmpleadoBorrarDTO.tituloTablaMateria = this.utilsService.isNotBlank(formatoDatoDTO.titulo) ? formatoDatoDTO.titulo : this.parametroFormatoPipe.TABLA_MATERIA;\n}\n\niniciarVisualizacionTablas() {\n\tthis.mostrarTablaMateria = false;\n\tthis.cancelarEdicionTablas();\n}\n\ncancelarEdicionTablas() {\n\tthis.editarListaTablaMateria = false;\n}\n\n/**\n * Si las tablas si son visibles para la realizacion del acto entonces cargamos la lista de datoOrganizacion, de lo contrario la dejamos nulas\n */\ncargarListaDatoOrganizacionTablas() {\n\tif (this.mostrarTablaMateria) {\n\t\t//this.listaDatoOrganizacionTablaMateria = this.cargarListaDatoOrganizacion(this.actoCambioEmpleadoBorrarDTO.formatoDTO.tablaMateria);\n\t}\n}\n\ncargarListaDatoOrganizacion(tabla: string)  {\n\t/*DatoorganizacionDTO filtro = new DatoorganizacionDTO();\n\tfiltro.Tabla(tabla);\n\treturn generalSvc.queryForList(getDataSource(), filtro);*/\n}\n\nnuevoPerfilTablaMateria() {\n\t\t/*if (listaDatoOrganizacionTablaMateria == null || this.listaDatoOrganizacionTablaMateria.isEmpty()) {\n\t\t\tthis.notificacionesService.showInfo('No se ha configurado campos para esta tabla..');\n\t\t\treturn null;\n\t\t}\n\t\tperfilTablasDTOGuardado = null;\n\t\tActosAdminTablaDTO actosAdminTablaDTO = new ActosAdminTablaDTO();\n\t\tactosAdminTablaDTO.Semestre(((ActoCambioEmpleadoDTO) FormularioDinamico.Formulario().Objecto()).Semestre());\n\t\tgetBean(PopupIngresoMateriasBean.class).buscar('#{actoCambioPuestoBean.perfilTablaMateria}', actosAdminTablaDTO);*/\n}\n\nisMostrarSeleccionFormatoPadre(){\n\tif(this.actoCambioEmpleadoBorrarDTO == null){\n\t\treturn false;\n\t}\n\tif(this.actoCambioEmpleadoBorrarDTO.formatoDTO == null){\n\t\treturn false;\n\t}\n\treturn (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != null && this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0);\t\t\n}\n\nisMostrarAdvertencia(){\n\treturn this.actoCambioEmpleadoBorrarDTO!=null && this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.advertencia);\n}\n\nasync isGeneraPlanillaFlexible() {\n\tif(this.actoCambioEmpleadoBorrarDTO!=null && this.actoCambioEmpleadoBorrarDTO.formato!=null){\n\t\tvar formatoDTO = new FormatoModel();\n\t\tformatoDTO.llave = this.actoCambioEmpleadoBorrarDTO.formato;\n\t\tformatoDTO = await this.generalService.queryForObject(new GeneralModel('FormatoDTO', null, false, formatoDTO)).toPromise();\n\t\tif(formatoDTO != null){\n\t\t\treturn 'S' == formatoDTO.generaFlexible;\n\t\t}\n\t}\n\treturn false;\n}\n\npublic setDeDondeVengo(deDondeVengo: string, idForm: string) {\n\tthis.idForm = idForm;\n\tthis.deDondeVengo = deDondeVengo;\n}\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n    <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n    \n    <button pButton pRipple (click)=\"decideQueNoMostrar()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\"\n        *ngIf=\"![ novedadPipe.ORIGEN_NOVEDAD_EMPLEADO, novedadPipe.ORIGEN_APLICAR_NOVEDAD].includes(deDondeVengo)\"\n        class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n</div>\n<app-cabecera-empleado [empleado]=\"empleado\" *ngIf=\"empleado.contrato != null && \n![parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO, novedadPipe.ORIGEN_NOVEDAD_EMPLEADO, novedadPipe.ORIGEN_APLICAR_NOVEDAD].includes(deDondeVengo)\"></app-cabecera-empleado>\n<div *ngIf=\"!mostrarDatosCombinacion && mostrar\">\n    <h4 *ngIf=\"isMostrarAdvertencia()\">{{actoCambioEmpleadoBorrarDTO.advertencia}}</h4>\n    <div class=\"p-fluid grid\">\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mb-2\">\n                <p-fieldset *ngIf=\"mostrarDatosCedula\">\n                    <ng-template pTemplate=\"header\">\n                    <div class=\"flex align-items-center\">\n                        <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                        <span class=\"font-bold\">{{actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                    </div>\n                    </ng-template>\n                    <div class=\"p-fluid grid\">\n                        <div class=\"col-12 md:col-12 lg:col-6 responsivetablet\">\n                            <!--CONTRATO-->\n                            <app-input-helper-empleado-boton #inputEmpleado (onSelected)=\"verPopupHojaVida($event)\" *ngIf=\"mostrarDatosCedulaCampos\" [readonly]=\"!(!mostrarDatosAdicional && !mostrarLegalizar && isMostrarBotonPopup() && llaveTipoNovedad == null)\"\n                                [nombreInput]=\"'empleado' | translate\" [mostrarX]=\"false\"\n                                [label]=\"empleado.nombreCompleto != null ? empleado.contrato + ' - ' + empleado.nombreCompleto : ''\" >\n                            </app-input-helper-empleado-boton>\n                        </div>\n                        \n                        <div class=\"col-12 md:col-12 lg:col-6\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" id=\"documento\" [(ngModel)]=\"cedulaFiltro\"\n                                    autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                <label>{{'cedula' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                            \n                            \n                </p-fieldset>\n            </div>\n                <div >\n                    <!--pte antecesor-->\n                </div>\n\n                <!-- PASO 2 ADICIONAL  -->\n                <div>\n\n                    <formulario-dinamico #formulario [editable]=\"formularioEditable\" [campos]=\"campos\" \n                        [objeto]=\"actoCambioEmpleadoBorrarDTO\" *ngIf=\"campos.length > 0\"></formulario-dinamico>\n\n                    <!--PTE TABLA MATERIAS-->\n\n                    <!-- PANEL GRID CONTINUAR Y ATRAS, DATOS ADICIONAL -->\n                    <div class=\"flex justify-content-end\" *ngIf=\"habilitarCombosUnidadCargo && !mostrarDatosPuestoTRabjo\">\n                        <!--<button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-chevron-left\"\n                            label=\"{{'link_regresar' | translate}}\" (click)=\"decideQueNoMostrar()\">\n                        </button>\n                        <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-check\"\n                            label=\"{{'link_continuar' | translate}}\" (click)=\"actionSiguienteAdicional()\">\n                        </button>-->\n                        <!--<button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out\"\n                            label=\"{{'link_salir' | translate}}\" (click)=\"regresarActoAdmin()\">\n                        </button>-->\n                    </div>\n                    \n                    \n                </div>\n            </div>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"mostrarDatosPuestoTRabjo\">\n            <app-info-datos-planta #infoDatosPlanta (regresar)=\"decideQueNoMostrar()\"\n                (continuar)=\"continuarDatoPuesto()\" (salir)=\"regresarActoAdmin()\"></app-info-datos-planta>\n        </div>\n    </div>\n        \n</div>\n<div *ngIf=\"mostrarDatosCombinacion && mostrar\">\n    <app-mostrar-datos-combinacion-acto-ingreso #mostrarDatosCombinacionActoIngreso \n    [seguimiento]=\"seguimiento\" (regresar)=\"decideQueNoMostrar()\" (aplicar)=\"aplicarFinal()\" (salir)=\"noMostrarDatosCombinacion()\" ></app-mostrar-datos-combinacion-acto-ingreso>\n</div>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { ActoAusenciaModel } from '../../../models/ActoAusenciaModel';\nimport { FormatoModel } from '../../../models/FormatoModel';\nimport { CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent } from 'general-library-union';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-mostrar-datos-combinacion-acto-ausencia',\n    templateUrl: './mostrar-datos-combinacion-acto-ausencia.component.html',\n    styleUrls: ['./mostrar-datos-combinacion-acto-ausencia.component.scss'],\n    standalone: true,\n    imports: [NgIf, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, CheckboxModule, FormsModule, ButtonDirective, Ripple, TranslateModule, FormulariodinamicoComponent]\n})\nexport class MostrarDatosCombinacionActoAusenciaComponent implements OnInit {\n\t\n\tpublic actoAusenciaDTO: ActoAusenciaModel;\n\tpublic formatoDTO: FormatoModel;\n\tpublic ruta: string;\n\tpublic LLAVE_BASE: string;\n\tpublic mostrarPdf: boolean;\n\tpublic mostrarFotoEml: boolean;\n\tpublic mostrarFotoHojaVida: boolean;\n\tpublic rutaFisicaWord: string;\n\tpublic mostrarWord: boolean;\n\tpublic deDondeVengo: string;\n\tpublic mostrar: boolean = false;\n\n\t@Output() regresarAction:  EventEmitter<any> = new EventEmitter();\n\t@Output() aplicar: EventEmitter<any> = new EventEmitter();\n\n\tpublic seguimiento: boolean;\n\tpublic etapa: string;\n\tpublic accion: string;\n\tpublic campos: CampoFormularioModel[] = [];\n\t\n\n\tconstructor(private generalPipe: GeneralPipe,\n\t\t\t\tprivate cargarArchivo: CargarArchivosService,\n\t\t\t\tprivate encriptadorBasico: EncriptadoBasicoService,\n\t\t\t\tprivate parametroFormatoPipe: ParametroFormatoPipe,\n\t\t\t\tpublic controlFuncionService: CargarControlFuncionalidadService,) { }\n\n  \tngOnInit(): void {\n  \t}\n \n\tregresarActoAdmin() {\n\t\tthis.regresarAction.emit(false);\n\t}\n\n\tdescargarPDF(){\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.rutaFisicaWord.replace('.docx', '.pdf'))).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.pdf';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\t\n\tdescargarDoc() {\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.rutaFisicaWord) ).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.docx';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\n\taplicarAction(){\n\t\tthis.aplicar.emit()\n\t}\n\n\tpublic isProcesoMasivo () {\n\t\tif ( this.actoAusenciaDTO.formatoDTO.masivo == null || this.generalPipe.SI != this.actoAusenciaDTO.formatoDTO.masivo) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.actoAusenciaDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO)) {\n\t\t\treturn this.parametroFormatoPipe.PRORROGATERMINACIONCONTRATO == this.actoAusenciaDTO.formatoDTO.accion\n\t\t\t|| this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL == this.actoAusenciaDTO.formatoDTO.accion \n\t\t\t|| this.parametroFormatoPipe.INGRESODEFINITIVO == this.actoAusenciaDTO.formatoDTO.accion \n\t\t\t|| this.parametroFormatoPipe.INGRESOTEMPORAL == this.actoAusenciaDTO.formatoDTO.accion;\n\t\t}\n\t\tif (this.actoAusenciaDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_LICENCIA_COMISIONES)) {\n\t\t\treturn this.parametroFormatoPipe.LICENCIA_COMISION == this.actoAusenciaDTO.formatoDTO.accion;\n\t\t}\n\t\treturn false;\n\t}\n\n}\n","<div *ngIf=\"mostrar\">\n    <h3>{{formatoDTO.descripcion}}</h3>\n    <h4>{{accion}} - {{etapa}}</h4>\n    <div class=\"p-fluid grid\">\n    <div class=\"card field col-12 md:col-6 lg:col-6\">\n        <formulario-dinamico #formulario [editable]=\"false\" [campos]=\"campos\" [objeto]=\"actoAusenciaDTO\"  ></formulario-dinamico> \n        <p-table [value]=\"actoAusenciaDTO.listaprogramada\" [scrollable]=\"true\" responsiveLayout=\"scroll\" *ngIf=\"isProcesoMasivo()\"\n            styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"actoAusenciaDTO.listaprogramada.length\"\n            [paginator]=\"actoAusenciaDTO.listaprogramada.length > 10\" dataKey=\"llaveTabla\" [showCurrentPageReport]=\"true\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"min-width: 50%;\">{{'identifica' | translate}}</th>\n                    <th style=\"min-width: 50%;\">{{'nombre' | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-hijoActo>\n                <tr>\n                    <td style=\"min-width: 50%;\">\n                        {{hijoActo.documentoEmpleado}}\n                    </td>\n                    <td style=\"min-width: 50%;\">\n                        {{hijoActo.nombreEmpleado}}\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n    <div class=\"field col-12 md:col-6 lg:col-6\">\n        <!-- check SEGUIMIENTO -->\n        <div class=\"flex justify-content-end\" *ngIf=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento')\">\n            <div class=\"flex align-items-center gap-1\">\n                <p-checkbox class=\"mr-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                <label>{{'seguimiento' | translate}}</label>\n            </div>\n        </div>\n        <!-- BOTONES DE ACCION -->\n        <div class=\"flex justify-content-end mt-2\"  >\n            <button pButton pRipple class=\"p-button-secondary font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" *ngIf=\"rutaFisicaWord\"\n                label=\"{{'descargar' | translate}} pdf\" (click)=\"descargarPDF()\">\n            </button>\n            <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" *ngIf=\"rutaFisicaWord\"\n                label=\"{{'descargar' | translate}} doc\" (click)=\"descargarDoc()\">\n            </button>\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-check\"\n                label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicarAction()\">\n            </button>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormatoModel } from '../../models/FormatoModel';\nimport { ParametroFormatoPipe } from '../../../../shared/pipes/parametroFormato.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { AuthService, ToastService } from 'general-library-union';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-subir-archivo-actos',\n    templateUrl: './popup-subir-archivo-actos.component.html',\n    styleUrls: ['./popup-subir-archivo-actos.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, InputTextModule, FileUploadModule, NgIf, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupSubirArchivoActosComponent implements OnInit {\n\n  public dto: FormatoModel = new FormatoModel;\n  public seleccion: string;\n  public listaSeleccionSiNo: any[];\n  public fileInfo: any;\n  public nombreArchivoReemplazar: any;\n  public popupVisible: boolean = false;\n  public procesoSatisfactorio: string;\n  public paqueteServidor: string;\n  public archivoSeleccionado: File;\n  public nombreArchivo: string = '';\n  public archivoCargado: boolean = false;\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  constructor(private parametroFormatoPipe: ParametroFormatoPipe,\n    private translateService: TranslateService,\n    private authService: AuthService,\n    private generalPipe: GeneralPipe,\n    private notificacionesService: ToastService,\n    private cargarArchivoService: CargarArchivosService,\n    private encriptadoBasicoService: EncriptadoBasicoService,\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  async buscar(dto: FormatoModel, nombreArchivo: string) {\n    this.dto = dto;\n    this.listaSeleccionSiNo = [];\n    this.listaSeleccionSiNo.push({ value: this.parametroFormatoPipe.SI, label: this.parametroFormatoPipe.SIDESC });\n    this.listaSeleccionSiNo.push({ value: this.parametroFormatoPipe.NO, label: this.parametroFormatoPipe.NODESC });\n    this.seleccion = null;\n    this.fileInfo = null;\n    this.procesoSatisfactorio = this.translateService.instant('procesosatisfactorio');\n    this.archivoCargado = false;\n    this.popupVisible = true;\n    this.nombreArchivoReemplazar = nombreArchivo;\n  }\n\n  cargarArchivo(data: any, fubauto) {\n    this.paqueteServidor = this.generalPipe.ESPACIO_NULO;\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n    this.paqueteServidor = this.archivoSeleccionado.name;\n    this.nombreArchivo = this.archivoSeleccionado.name;\n    fubauto.clear();\n    this.archivoCargado = true;\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n  }\n\n\n  public async guardarArchivo() {\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion')\n    let propiedad = 'ruta_anexosHojaVida';\n    if (this.nombreArchivoReemplazar) {\n      let blob = await this.cargarArchivoService.eliminarArchivo(this.encriptadoBasicoService.encriptar(this.nombreArchivoReemplazar), propiedad, codigoAplicacion).toPromise();\n    }\n    const newFileName = this.nombreArchivoReemplazar;\n    const newFile: File = new File([this.archivoSeleccionado], newFileName, {\n      type: this.archivoSeleccionado.type,\n    });\n    let data = await this.cargarArchivoService.cargarArchivo(newFile, '', propiedad, codigoAplicacion).toPromise();\n    this.ocultar();\n  }\n\n  ocultar() {\n    this.regresar.emit(Constantes.PUNTO)\n  }\n}\n","<p-dialog header=\"{{'archivo' | translate}}\" [(visible)]=\"popupVisible\" [style]=\"{width: '45vw'}\" (onHide)=\"ocultar()\"\n    [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <div class=\"field col-12 md:col-12 lg:col-12\">\n        <div class=\"Inputgroup\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <div class=\"field col-12 md:col-3 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" [(ngModel)]=\"dto.descripcion\" [disabled]=\"true\">\n                        <label>{{'formato' | translate}}</label>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-3 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" [(ngModel)]=\"procesoSatisfactorio\" [disabled]=\"true\">\n                        <label>{{'estado' | translate}}</label>\n                    </span>\n                </div>\n            </div>\n            <h5>{{'reemplazararchivoacto' | translate}}</h5>\n        </div>\n\n        <div class=\"flex justify-content-end\">\n            <p-fileUpload #fubauto chooseLabel=\"Cargar\" mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n                accept=\".pdf,.PDF,.png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.txt,.TXT.xml,.XML\"\n                (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                label=\"{{'link_guardar' | translate}}\" *ngIf=\"archivoCargado\" (click)=\"guardarArchivo()\">\n            </button>\n        </div>\n\n    </div>\n\n</p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { ActoAusenciaModel } from '../models/ActoAusenciaModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ActoAusenciaService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  traerActoAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/traerActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  listaCampoTerminacionContrato(): Observable<any> {\n    return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/listaCampoTerminacionContrato`).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerAntecesorActoAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/traerAntecesorActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  insertarElaborarActoAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/insertarElaborarActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarActoAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/legalizarActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actoAusenciaRetiroNomina(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/actoAusenciaRetiroNomina`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  registrarAnexoHojaActoAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/registrarAnexoHojaActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarNominaActoAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/eliminarNominaActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  borrarRegistroAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/borrarRegistroAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  validadorActosAdmin(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/validadorActosAdmin`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarActoAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoAusencia/actualizarActoAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  formatearActoAusencia(actoAusenciaDTO: ActoAusenciaModel): ActoAusenciaModel {\n    actoAusenciaDTO.fechaDocumento = actoAusenciaDTO.fechaDocumento ? new Date(actoAusenciaDTO.fechaDocumento) : null;\n    actoAusenciaDTO.fechaOficio = actoAusenciaDTO.fechaOficio ? new Date(actoAusenciaDTO.fechaOficio) : null;\n    actoAusenciaDTO.fechasesion = actoAusenciaDTO.fechasesion ? new Date(actoAusenciaDTO.fechasesion) : null;\n    actoAusenciaDTO.comunicado = actoAusenciaDTO.comunicado ? new Date(actoAusenciaDTO.comunicado) : null;\n    actoAusenciaDTO.comite = actoAusenciaDTO.comite ? new Date(actoAusenciaDTO.comite) : null;\n    actoAusenciaDTO.fechaSalida = actoAusenciaDTO.fechaSalida ? new Date(actoAusenciaDTO.fechaSalida) : null;\n    actoAusenciaDTO.fechaTermina = actoAusenciaDTO.fechaTermina ? new Date(actoAusenciaDTO.fechaTermina) : null;\n    actoAusenciaDTO.fechaReal = actoAusenciaDTO.fechaReal ? new Date(actoAusenciaDTO.fechaReal) : null;\n    actoAusenciaDTO.fechaInicial = actoAusenciaDTO.fechaInicial ? new Date(actoAusenciaDTO.fechaInicial) : null;\n    actoAusenciaDTO.fechaFinal = actoAusenciaDTO.fechaFinal ? new Date(actoAusenciaDTO.fechaFinal) : null;\n    actoAusenciaDTO.fechaServicio = actoAusenciaDTO.fechaServicio ? new Date(actoAusenciaDTO.fechaServicio) : null;\n    actoAusenciaDTO.fechaRegreso = actoAusenciaDTO.fechaRegreso ? new Date(actoAusenciaDTO.fechaRegreso) : null;\n    actoAusenciaDTO.fechaOrigen = actoAusenciaDTO.fechaOrigen ? new Date(actoAusenciaDTO.fechaOrigen) : null;\n    actoAusenciaDTO.pago = actoAusenciaDTO.pago ? new Date(actoAusenciaDTO.pago) : null;\n    actoAusenciaDTO.vigencia = actoAusenciaDTO.vigencia ? new Date(actoAusenciaDTO.vigencia) : null;\n    actoAusenciaDTO.terminaFinal = actoAusenciaDTO.terminaFinal ? new Date(actoAusenciaDTO.terminaFinal) : null;\n    actoAusenciaDTO.fechaRangoMenor = actoAusenciaDTO.fechaRangoMenor ? new Date(actoAusenciaDTO.fechaRangoMenor) : null;\n    actoAusenciaDTO.fechaRangoMayor = actoAusenciaDTO.fechaRangoMayor ? new Date(actoAusenciaDTO.fechaRangoMayor) : null;\n    actoAusenciaDTO.fechaSalidaRangoMenor = actoAusenciaDTO.fechaSalidaRangoMenor ? new Date(actoAusenciaDTO.fechaSalidaRangoMenor) : null;\n    actoAusenciaDTO.fechaSalidaRangoMayor = actoAusenciaDTO.fechaSalidaRangoMayor ? new Date(actoAusenciaDTO.fechaSalidaRangoMayor) : null;\n    actoAusenciaDTO.horaSalida = actoAusenciaDTO.horaSalida ? new Date(actoAusenciaDTO.horaSalida) : null;\n    actoAusenciaDTO.horaTermina = actoAusenciaDTO.horaTermina ? new Date(actoAusenciaDTO.horaTermina) : null;\n    actoAusenciaDTO.fechaLegaliza = actoAusenciaDTO.fechaLegaliza ? new Date(actoAusenciaDTO.fechaLegaliza) : null;\n    if (actoAusenciaDTO.empleadoDTO) {\n      actoAusenciaDTO.empleadoDTO.fechaIngreso = actoAusenciaDTO.empleadoDTO.fechaIngreso ? new Date(actoAusenciaDTO.empleadoDTO.fechaIngreso) : null;\n      actoAusenciaDTO.empleadoDTO.fechaRetiro = actoAusenciaDTO.empleadoDTO.fechaRetiro ? new Date(actoAusenciaDTO.empleadoDTO.fechaRetiro) : null;\n      actoAusenciaDTO.empleadoDTO.fechaEngache = actoAusenciaDTO.empleadoDTO.fechaEngache ? new Date(actoAusenciaDTO.empleadoDTO.fechaEngache) : null;\n      actoAusenciaDTO.empleadoDTO.fechaTermina = actoAusenciaDTO.empleadoDTO.fechaTermina ? new Date(actoAusenciaDTO.empleadoDTO.fechaTermina) : null;\n      actoAusenciaDTO.empleadoDTO.fechaProrroga = actoAusenciaDTO.empleadoDTO.fechaProrroga ? new Date(actoAusenciaDTO.empleadoDTO.fechaProrroga) : null;\n      actoAusenciaDTO.empleadoDTO.fechaVigencia = actoAusenciaDTO.empleadoDTO.fechaVigencia ? new Date(actoAusenciaDTO.empleadoDTO.fechaVigencia) : null;\n      actoAusenciaDTO.empleadoDTO.fechaLiquidacion = actoAusenciaDTO.empleadoDTO.fechaLiquidacion ? new Date(actoAusenciaDTO.empleadoDTO.fechaLiquidacion) : null;\n      actoAusenciaDTO.empleadoDTO.congela = actoAusenciaDTO.empleadoDTO.congela ? new Date(actoAusenciaDTO.empleadoDTO.congela) : null;\n    }\n    return actoAusenciaDTO;\n  }\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ActoAdministrativosPdfModel } from '../../../models/ActoAdministrativosPdfModel';\nimport { ActoAusenciaModel } from '../../../models/ActoAusenciaModel';\nimport { PeriodoModel } from '../../../../compensacion/models/PeriodoModel';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { AuthService, CampoFormularioModel, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { FormatoService } from '../../../services/formato.service';\nimport { ActoAusenciaService } from '../../../services/acto-ausencia.service';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { FormatoModel } from '../../../models/FormatoModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { SelectListActos } from '../../../services/select-list-actos.service';\nimport { SelectListCompensa } from '../../../../compensacion/services/select-list-compensa.service';\nimport { RolesModel } from '../../../models/RolesModel';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { EntidadModel } from '../../../../compensacion/models/EntidadModel';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { DatoActoAdmonModel } from '../../../models/DatoActoAdmonModel';\nimport { InfoDatosPlantaComponent } from '../info-datos-planta/info-datos-planta.component';\nimport { ActoIngresoAusenciaModel } from '../../../models/ActoIngresoAusenciaModel';\nimport { MostrarDatosCombinacionActoAusenciaComponent } from '../mostrar-datos-combinacion-acto-ausencia/mostrar-datos-combinacion-acto-ausencia.component';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { PopupSubirArchivoActosComponent } from '../../../popups/popup-subir-archivo-actos/popup-subir-archivo-actos.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PopupAntecesorComponent } from '../../../popups/popup-antecesor/popup-antecesor.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgStyle } from '@angular/common';\n\n@Component({\n    selector: 'app-actos-ausencia-terminacion',\n    templateUrl: './actos-ausencia-terminacion.component.html',\n    styleUrls: ['./actos-ausencia-terminacion.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, CabeceraEmpleadoComponent, NgStyle, FieldsetModule, PrimeTemplate, InputHelperEmpleadoBotonComponent, FormsModule, InputTextModule, PopupAntecesorComponent, TableModule, TemplateTablaVaciaComponent, MostrarDatosCombinacionActoAusenciaComponent, PopupSubirArchivoActosComponent, TranslateModule, FormulariodinamicoComponent]\n})\nexport class ActosAusenciaTerminacionComponent implements OnInit {\n\tpublic mostrarFoto: boolean;\n\tpublic mostrarDatosCedulaCampos: boolean;\n\tpublic mostrarBuscarAntecesor: boolean;\n\tpublic seguimiento: boolean;\n\tpublic idForm: string;\n\n\tpublic mostrarDatosCedula: boolean;\n\tpublic mostrarDatosAdicional: boolean;\n\tpublic mostrarFinal: boolean;\n\tpublic mostrarLegalizar: boolean;\n\tpublic habilitarCombosUnidadCargo: boolean;\n\n\tpublic listaFormatoDatoDocumentoItem: any[];\n\tpublic listaFirmaDocumentoItem: any[];\n\tpublic listaSucursalItem: any[];\n\tpublic listaRoloItem: any[];\n\tpublic listaTipoCambioItem: any[];\n\tpublic listaSoporteItem: any[];\n\tpublic listaMotivoRetiro: any[];\n\tpublic listaEntidad: any[];\n\tpublic listaModalidadAcademica: any[];\n\n\tpublic etapa: string = null;\n\tpublic accion: string = null;\n\n\tpublic llaveBase: string = null;\n\t// public Integer puestoSeleccion;\n\tpublic paso: string = null;\n\tpublic pasoAnterior: string = null;\n\tpublic descripcionGrupo: string;\n\tpublic descripcionTipo: string;\n\n\tpublic actoDtoPdf: ActoAdministrativosPdfModel;\n\n\tpublic actoAusenciaDTO: ActoAusenciaModel;\n\tpublic actoHijoAdicionar: ActoAusenciaModel;\n\n\tpublic listaParaCampos: any[];\n\tpublic listaParaPuesto: any[];\n\tpublic listaParaCampoLegalizada: any[];\n\tpublic periodoReversar: PeriodoModel;\n\tpublic mapaActosAdmin;\n\n\tpublic llaveNombreArchivoProcesoCombinacion: string;\n\n\t/**\n\t * esta variable sera usada con el fin de navegar al modulo correcto Este\n\t * acto en lanzado desde modulos independiente y deacuerdo el modulo de\n\t * donde vengo, asi mismo debo volver al modulo. Si esta variable llegase a\n\t * ser null, entonces sera direccionada al Modulo Actos Administrativo de lo\n\t * contrario sera direccionada al modulo que lo llama\n\t */\n\tpublic deDondeVengo: string;\n\tpublic llaveTipoNovedad: string;\n\tpublic vistaVisualizar: string;\n\n  \t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\t@ViewChild(PopupSubirArchivoActosComponent) popupSubirArchivo: PopupSubirArchivoActosComponent;\n\t@ViewChild('infoDatosPlanta') infoDatosPlanta: InfoDatosPlantaComponent;\n\t@ViewChild('mostrarDatosCombinacionActoAusencia') mostrarCombinacion: MostrarDatosCombinacionActoAusenciaComponent;\n\t@ViewChild('inputEmpleado') inputEmpleado: InputHelperEmpleadoBotonComponent;\n\n\tpublic campos: CampoFormularioModel[] = [];\n\tpublic empleadoDTO: EmpleadoModel = new EmpleadoModel();\n\tpublic cedulaFiltro: string;\n\tpublic mostrar: boolean;\n\tpublic validaPasoCedula: boolean;\n\tpublic mostrarPopupSubirArchivo: boolean = false;\n\tpublic inhabilitaBotonesTabla: boolean = false;\n\tpublic nuevoRegistroTabla: boolean = false;\n\tpublic validarHijo: boolean = false;\n\t@Input() public tipoSeleccionado: string;\n\t@Output() regresarAction:  EventEmitter<any> = new EventEmitter();\n\n\tconstructor(\n              private generalPipe: GeneralPipe,\n              private authService: AuthService,\n              public utilsService: UtilsService,\n              private generalService: GeneralService,\n              private formatoService: FormatoService,\n\t\t\t  private selectListActos: SelectListActos,\n\t\t\t  private empleadoService: EmpleadoService,\n\t\t\t  private translateService: TranslateService,\n              private notificacionesService: ToastService,\n\t\t\t  private selectListCompensa: SelectListCompensa,\n              private actoAusenciaService: ActoAusenciaService,\n\t\t\t  private popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\t\t  private confirmationService: ConfirmationService,\n\t\t\t  private campoFormularioPipe: CampoFormularioPipe,\n\t\t\t  public parametroFormatoPipe: ParametroFormatoPipe,\n\t\t\t  private saraAplicacionService: SaraAplicacionService, \n\t\t\t  private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n\t) { }\n\n\tngOnInit(): void {\n\t}\n\n\tprivate inicializar() {\n\t\tthis.mapaActosAdmin = this.parametroFormatoPipe.ACTOS_ADMINISTRATIVOS_EML;\n\t\tthis.vistaVisualizar = null;\n\t\tthis.idForm = 'form_actoAusentismo';\n\t\tthis.listaParaCampos = [];\n\t\tthis.listaParaPuesto = [];\n\t\tthis.listaParaCampoLegalizada = [];\n\t\tthis.actoAusenciaDTO = new ActoAusenciaModel();\n\n\t\tthis.mostrarFoto = false;\n\t\tthis.seguimiento = false;\n\n\t\tthis.listaFormatoDatoDocumentoItem = [];\n\t\tthis.listaFirmaDocumentoItem = [];\n\t\tthis.listaSucursalItem = [];\n\t\tthis.listaRoloItem = [];\n\t\tthis.listaTipoCambioItem = [];\n\t\tthis.listaSoporteItem = [];\n\t\tthis.listaMotivoRetiro = [];\n\t\tthis.listaEntidad = [];\n\t\tthis.listaModalidadAcademica = [];\n\n\t\tthis.mostrarDatosCedula = false;\n\t\tthis.mostrarFinal = false;\n\t\tthis.mostrarDatosAdicional = true;\n\t\tthis.habilitarCombosUnidadCargo = false;\n\t\tthis.actoHijoAdicionar = new ActoAusenciaModel();\n\t\tthis.deDondeVengo = null;\n\t\tthis.vistaVisualizar = null;\n\t\tthis.mostrarPopupSubirArchivo = false;\n\t\tthis.inhabilitaBotonesTabla = false;\n\t\tthis.nuevoRegistroTabla = false;\n\t}\n\n\tpublic async nuevoActoNovedad(empresa: number, formato: number, grupo: number, llaveTipoNovedad: string) {\n\t\tthis.llaveTipoNovedad = llaveTipoNovedad;\n\t\tawait this.nuevo(empresa, formato, grupo);\n\t}\n\n\tpublic async elaborar(empresa: number, formato: number, grupo: number, descripcionGrupo: string, correcionDTO: ActoAusenciaModel) {\n\t\tthis.inicializar();\n\t\tthis.descripcionGrupo = descripcionGrupo;\n\t\tif (correcionDTO == null) {\n\t\t\tawait this.nuevo(empresa, formato, grupo);\n\t\t} else {\n\t\t\tawait this.corregir(correcionDTO);\n\t\t}\n\t}\n\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * \n\t * @param empresa\n\t *            Empresa con la que se desea hacer el trasado\n\t * @param contrato\n\t *            Contrato del nuevo acto Traslado\n\t * @param formato\n\t *            LLave del formato que tendra relacionado este Acto Ingreso\n\t */\n\tpublic async nuevo(empresa: number, formato: number, grupo: number) {\n\t\tthis.inicializar();\n\t\tthis.vistaVisualizar = null;\n\t\tthis.mostrarDatosCedulaCampos = true;\n\t\tthis.mostrarFoto = false;\n\t\tthis.mostrarDatosCedula = true;\n\t\tthis.seguimiento = false;\n\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\n\t\tthis.actoAusenciaDTO = new ActoAusenciaModel();\n\n\t\tif (this.utilsService.isNotBlank(this.llaveTipoNovedad)) {\n\t\t\tthis.actoAusenciaDTO.llaveTipoNovedad = this.llaveTipoNovedad;\n\t\t}\n\t\tthis.actoAusenciaDTO.formato = formato;\n\n\t\tthis.actoAusenciaDTO.empresa = empresa;\n\t\tthis.actoAusenciaDTO.formatoDTO = await this.formatoService.traerFormato({formato: formato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\n\t\tthis.actoAusenciaDTO.grupoVincula = grupo;\n\t\tthis.actoAusenciaDTO.formatoPago = this.generalPipe.NO;\n\t\tthis.actoAusenciaDTO.vincula = grupo;\n\t\tthis.actoAusenciaDTO.postLegaliza = this.generalPipe.PUNTO;\n\t\tthis.actoAusenciaDTO.listaprogramada = [];\n\n\t\tfor (let formatoFirmaDTO of this.actoAusenciaDTO.formatoDTO.listaSoporteItem) {\n\t\t\tif (this.parametroFormatoPipe.ACTOS_ORIGINALES == formatoFirmaDTO.origenActo) {\n\t\t\t\tthis.actoAusenciaDTO.soporte = formatoFirmaDTO.planilla;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (this.actoAusenciaDTO.formatoDTO != null && this.actoAusenciaDTO.formatoDTO.tipoAusencia != null) {\n\t\t\tthis.actoAusenciaDTO.formatoDTO.tipoAusencia = this.actoAusenciaDTO.formatoDTO.tipoAusencia;\n\t\t\tthis.actoAusenciaDTO.tipoAusencia = this.actoAusenciaDTO.formatoDTO.tipoAusencia;\n\t\t}\n\n\t\tif (this.parametroFormatoPipe.PARAMETRO_T_TERMINACION_CONTRATO == this.actoAusenciaDTO.formatoDTO.origenAusencia) {\n\t\t\tthis.actoAusenciaDTO.origenAusencia = this.parametroFormatoPipe.PARAMETRO_T_TERMINACION_CONTRATO;\n\t\t} else {\n\t\t\tthis.actoAusenciaDTO.origenAusencia = this.parametroFormatoPipe.PARAMETRO_L_AUSENCIA;\n\t\t}\n\n\t\tawait this.cargarCombos(formato);\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.mostrar = true;\n\t\tawait this.decideQueMostrar();\n\t\tif ( this.isProcesoMasivo() ) {\n\t\t\tawait this.siguienteCedula();\n\t\t}\n\t}\n\n\tprivate async corregir(actoCorregir: ActoAusenciaModel) {\n\t\tthis.vistaVisualizar = null;\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\t\tthis.mostrarFoto = true;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\t\n\n\t\tthis.actoAusenciaDTO = await this.actoAusenciaService.traerActoAusencia( {llave: actoCorregir.llave, contrato: actoCorregir.identifica, empresa: actoCorregir.empresa}).toPromise();\n\t\tthis.actoAusenciaDTO = this.actoAusenciaService.formatearActoAusencia(this.actoAusenciaDTO);\n\t\tthis.actoAusenciaDTO.derogacion = actoCorregir.llave;\n\t\tthis.actoAusenciaDTO.postLegaliza = this.parametroFormatoPipe.CORREGIR;\n\n\t\tawait this.cargarEmpleado(this.actoAusenciaDTO.identifica, this.actoAusenciaDTO.empresa);\n\t\tif (this.actoAusenciaDTO == null) {\n\t\t\tthis.notificacionesService.showInfo('No pudo seleccionar datos acto ausencia');\n\t\t\treturn;\n\t\t}\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.pasoAnterior = this.paso;\n\n\t\tawait this.cargarCombos(this.actoAusenciaDTO.formato);\n\n\t\t// CARGAMOS EL FORMULARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\tthis.formularioDinamico.modificar(this.actoAusenciaDTO, false);\n\t\tawait this.cargarVariableFormato(this.actoAusenciaDTO.llave);\n\n\t\tawait this.decideQueMostrar();\n\n\t\tthis.mostrarBuscarAntecesor = false;\n\t}\n\n\tpublic eliminarHijoActo(event, elemento) {\n\t\tvar acto: ActoAusenciaModel=  elemento//(this.actoAusenciaDTO) ((UIParameter) elemento.Component().findComponent('registrohijo')).Value();\n\t\tthis.actoAusenciaDTO.listaprogramada = this.actoAusenciaDTO.listaprogramada.filter(objeto => objeto !== acto);\n\t\t/*\n\t\tthis.inhabilitaBotonesTabla = true;\n\t\tthis.confirmationService.confirm({\n\t\ttarget: event.target,\n\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\tacceptLabel: 'Si',\n\t\trejectLabel: 'No',\n\t\taccept: () => {\n\t\t\tthis.actoAusenciaDTO.listaprogramada = this.actoAusenciaDTO.listaprogramada.filter(objeto => objeto !== acto);\n\t\t\tthis.inhabilitaBotonesTabla = false;\n\t\t},\n\t\treject: () => {\n\t\t\tthis.inhabilitaBotonesTabla = false;\n\t\t}\n\t\t});*/\n\t\t//this.actoAusenciaDTO.listaprogramada.remove(acto);\n\t}\n\t\n\tpublic adicionarHijoActo() {\n\t\tthis.validarHijo = true;\n\t\tif ( this.actoHijoAdicionar.identifica == null) {\n\t\t\t//Validador.adicionarMensaje('form_actoProrroga:idHijoActo:idNombreCompleto','Obligatorio');\n\t\t\treturn;\n\t\t}\n\t\tthis.validarHijo = false;\n\t\tthis.actoAusenciaDTO.listaprogramada.push(this.actoHijoAdicionar);\n\t\tthis.actoHijoAdicionar = new ActoAusenciaModel();\n\t\tthis.nuevoRegistroTabla = false;\n\t\tthis.inhabilitaBotonesTabla = false;\n\t}\n\n\tmostrarNuevo() {\n\t\tthis.validarHijo = false;\n\t\tthis.nuevoRegistroTabla = true;\n\t\tthis.inhabilitaBotonesTabla = true;\n\t}\n\t\n\tcancelarNuevoHijo() {\n\t\tthis.nuevoRegistroTabla = false;\n\t\tthis.actoHijoAdicionar = new ActoAusenciaModel();\n\t\tthis.inhabilitaBotonesTabla = false;\n\t  }\n\n\t/**\n\t * Metodo que controla que componentes NO se deben mostrar en el .jspx\n\t */\n\tpublic async decideQueNoMostrar()  {\n\t\tif (this.paso != null) {\n\t\t\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA){\n\t\t\t\tthis.regresarActoAdmin();\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\t\tthis.mostrarDatosCedula = true;\n\t\t\t\tthis.mostrarDatosAdicional = false;\n\t\t\t\tthis.mostrarLegalizar = false;\n\t\t\t\tthis.paso = this.pasoAnterior;\n\t\t\t}\n\t\t\telse if (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n\t\t\t\tthis.mostrarDatosCedula = true;\n\t\t\t\tthis.mostrarDatosAdicional = false;\n\t\t\t\tthis.mostrarLegalizar = false;\n\t\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\tif (this.isProcesoMasivo()){\n\t\t\t\t\tthis.regresarActoAdmin();\n\t\t\t\t}\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL) && this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION) {\n\t\t\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t\t\t\treturn null;\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\t\tthis.vistaVisualizar = null;\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\tawait this.decideQueMostrar();\n\t\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_CEDULA;\n\t\t\t\tawait this.cargarEmpleado(this.actoAusenciaDTO.identifica, this.actoAusenciaDTO.empresa);\n\t\t\t\tthis.vistaVisualizar = null;\n\t\t\t}\n\t\t\telse if (this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\t\tthis.mostrarDatosCedula = true;\n\t\t\t\tthis.mostrarDatosAdicional = false;\n\t\t\t\tthis.mostrarLegalizar = false;\n\t\t\t}\n\n\t\t\tthis.paso = this.pasoAnterior;\n\t\t}\n\t}\n\n\t/**\n\t * Metodo que controla que componente es el que se debe mostrar en el .jspx\n\t */\n\tpublic async decideQueMostrar() {\n\t\tconsole.log('decideQueMostrar')\n\t\tconsole.log(this.paso)\n\t\tif (this.paso != null) {\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\t\tthis.mostrarDatosCedula = true;\n\t\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\t\tthis.mostrarLegalizar = false;\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\t\tthis.valoresEditablesFormulario(true);\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n\t\t\t\tthis.mostrarDatosCedula = false;\n\t\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\t\tthis.mostrarLegalizar = true;\n\t\t\t\t//this.formularioDinamico.editable = false;\n\t\t\t\t//await this.procesoCombinacion();\n\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\t\tthis.formularioDinamico.editable = false;\n\t\t\t\tawait this.procesoCombinacion();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Permite modificar el acto administrativo\n\t * \n\t * @param llave\n\t *            La llave del acto administrativo que se quiere modificar\n\t */\n\tpublic async modificar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.vistaVisualizar = null;\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\t\n\t\tthis.actoAusenciaDTO = await this.actoAusenciaService.traerActoAusencia( {llave: llave }).toPromise();\n\t\tthis.actoAusenciaDTO = this.actoAusenciaService.formatearActoAusencia(this.actoAusenciaDTO);\n\t\tawait this.cargarEmpleado(this.actoAusenciaDTO.identifica, this.actoAusenciaDTO.empresa);\n\t\tif (this.actoAusenciaDTO == null) {\n\t\t\tthis.notificacionesService.showInfo('No pudo seleccionar datos acto ausencia');\n\t\t\treturn;\n\t\t}\n\t\tthis.accion = (this.actoAusenciaDTO != null && this.actoAusenciaDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\n\t\tawait this.cargarCombos(this.actoAusenciaDTO.formato);\n\n\t\t// CARGAMOS EL FORMULARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\tthis.formularioDinamico.modificar(this.actoAusenciaDTO, false);\n\t\tawait this.cargarVariableFormato(this.actoAusenciaDTO.llave);\n\n\t\tawait this.decideQueMostrar();\n\n\t\tthis.mostrarBuscarAntecesor = false;\n\t\tif ( this.isProcesoMasivo() ) {\n\t\t\tawait this.siguienteCedula();\n\t\t}\n\t\tthis.mostrar = true;\n\t}\n\n\t/**\n\t * Permite legalizar un acto administrativo\n\t * \n\t * @param llave\n\t *            La llave del acto administrativo que se quiere legalizar\n\t */\n\tpublic async legalizar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.vistaVisualizar = null;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\t\n\t\tthis.actoAusenciaDTO = await this.actoAusenciaService.traerActoAusencia({llave: llave}).toPromise();\n\t\tthis.actoAusenciaDTO = this.actoAusenciaService.formatearActoAusencia(this.actoAusenciaDTO);\n\t\tawait this.cargarEmpleado(this.actoAusenciaDTO.identifica, this.actoAusenciaDTO.empresa);\n\t\tif (this.actoAusenciaDTO == null) {\n\t\t\tthis.notificacionesService.showInfo('No pudo seleccionar datos acto ausencia');\n\t\t\treturn;\n\t\t}\n\t\tthis.accion = (this.actoAusenciaDTO != null && this.actoAusenciaDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.mostrar = true;\n\n\t\tawait this.cargarCombos(this.actoAusenciaDTO.formato);\n\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\n\t\tawait this.decideQueMostrar();\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la listaParaCampoLegalizada\n\t * \n\t * @see LegalizarActoIngresoBean\n\t */\n\tpublic async crearFormularioListaLegalizada() {\n\t\tvar campos2:CampoFormularioModel[] = await this.actoAusenciaService.listaCampoTerminacionContrato().toPromise(); \n\t\tawait this.utilsService.sleep(500);\n\t\tthis.formularioDinamico?.limpiar();\n\t\tthis.formularioDinamico?.camposCaracteristicaClear()\n\n\t\t// adicionamos al grupo1, los datos del grupo 2\n\t\tthis.campos.forEach(g2 => {\n\t\t\tg2.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\tg2.obligatorio = false;\n\t\t\t//grupo1.Campos().push(g2);\n\t\t})\n\n\t\tfor (var dato of this.listaParaCampoLegalizada) {\n\t\t\tfor(var campo of campos2) {\n\t\t\t\tif (campo.descripcion != dato.campo.trim()) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\n\t\t\t\t}\n\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t}\n\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t\t}\n\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.ROL)) {\n\t\t\t\t\tcampo.lista = (this.listaRoloItem);\n\t\t\t\t}\n\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)) {\n\t\t\t\t\tcampo.lista = (this.listaTipoCambioItem);\n\t\t\t\t}\n\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t\t}\n\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.MODALIDAD_ACADEMICA)) {\n\t\t\t\t\tcampo.lista = (this.listaModalidadAcademica);\n\t\t\t\t}\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\tthis.campos.push(campo);\n\t\t\t}\n\t\t}\n\t\tthis.formularioDinamico?.modificar(this.actoAusenciaDTO, true);\n\t\tawait this.cargarVariableFormato(this.actoAusenciaDTO.llave);\n\t}\n\n\tpublic async cargaListaFormularioLeglizadaYcampo() {\n\t\tvar datoDTO = new FormatoDatoModel();\n\t\tdatoDTO.formato = this.actoAusenciaDTO.formato;\n\t\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n\t\tthis.listaParaCampos = this.actoAusenciaDTO.formatoDTO.listaParaCampos;\n\t\t// CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n\t\tawait this.crearFormularioListaParaCampo()\n\t\tawait this.crearFormularioListaLegalizada();\n\n\t\tif (this.listaParaCampoLegalizada != null && this.listaParaCampoLegalizada.length == 0) {\n\t\t\tthis.pasoAnterior = this.paso;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t} else {\n\t\t\tthis.pasoAnterior = this.paso;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t}\n\t}\n\n\t/**\n\t * Permite eliminar un acto administrativo\n\t * \n\t * @param llave\n\t *            La llave del acto administrativo que se quiere eliminar\n\t */\n\tpublic async eliminar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\t\n\t\tthis.actoAusenciaDTO = await this.actoAusenciaService.traerActoAusencia({llave: llave}).toPromise();\n\t\tthis.actoAusenciaDTO = this.actoAusenciaService.formatearActoAusencia(this.actoAusenciaDTO);\n\t\tawait this.cargarEmpleado(this.actoAusenciaDTO.identifica, this.actoAusenciaDTO.empresa);\n\t\tif (this.actoAusenciaDTO == null) {\n\t\t\tthis.notificacionesService.showInfo('No pudo seleccionar datos acto ausencia');\n\t\t\treturn;\n\t\t}\n\t\tthis.accion = (this.actoAusenciaDTO != null && this.actoAusenciaDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\n\t\tawait this.cargarCombos(this.actoAusenciaDTO.formato);\n\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\t// if(this.actoAusenciaDTO.EmpleadoDTO() != null){\n\t\t// contrato: number =\n\t\t// actoAusenciaDTO.EmpleadoDTO().contrato;\n\t\t// empresa: number = actoAusenciaDTO.EmpleadoDTO().empresa;\n\t\t//\n\t\t// }\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tawait this.decideQueMostrar();\n\t\tthis.mostrar = true;\n\t}\n\n\t/**\n\t * Metodo que continua con el siguiente paso del proceso, este metodo se\n\t * encargar de verificar la informacion que se ha registrado el proceso de\n\t * ingreso de datos del empleado. Validaciones y demas.. Ademas de validar\n\t * la inclusi\\u00F3n del n\\u00FAmero de la cedula, validar la inclusi\\u00F3n\n\t * del n\\u00FAmero del n\\u00FAmero del contrato (y/o sacar mensajes de\n\t * inconsistencia)\n\t */\n\tpublic async siguienteCedula() {\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tif (!this.validarDatosCedulaEmpleado()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t\n\t\tvar estadoPermitido = 'activo';\n\t\tif (this.actoAusenciaDTO.formatoDTO.accion != (this.parametroFormatoPipe.LIQUIDACION_CONTRATO)) {\n\t\t\testadoPermitido = 'activoliquidacion';\n\t\t}\n\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tvar eml: EmpleadoModel = await this.empleadoService.obtenerEmpleadoUsuario(this.actoAusenciaDTO.empresa,this.actoAusenciaDTO.identifica,this.actoAusenciaDTO.grupoVincula, estadoPermitido);\n\t\t\tif (eml == null) {\n\t\t\t\tthis.notificacionesService.showInfo('Empleado no se encuentra activo o la vinculacion del empleado no esta dentro del grupo del formato');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.actoAusenciaDTO.vincula = eml.vinculacion;\n\t\t\tthis.actoAusenciaDTO.unidad = eml.unidad;\n\t\t}\n\t\tif (this.parametroFormatoPipe.ETAPA_MODIFICAR != this.etapa) {\n\t\t\tthis.actoAusenciaDTO = await this.actoAusenciaService.traerAntecesorActoAusencia( {actoAusenciaDTO: this.actoAusenciaDTO} ).toPromise();\n\t\t}\n\n\t\t// asignamos el siguiente paso\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\n\t\tthis.listaParaCampos = this.actoAusenciaDTO.formatoDTO.listaParaCampos;\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\t// Actualizamos los valores en el formulario\n\t\tthis.formularioDinamico.modificar(this.actoAusenciaDTO, true);\n\t\tawait this.decideQueMostrar();\n\n\t\tawait this.cargarVariableFormato(this.actoAusenciaDTO.llave);\n\t}\n\n\t\t\n\tpublic isProcesoMasivo () {\n\t\tif ( this.actoAusenciaDTO.formatoDTO.masivo == null || this.generalPipe.SI != this.actoAusenciaDTO.formatoDTO.masivo) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.actoAusenciaDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO)) {\n\t\t\treturn this.parametroFormatoPipe.PRORROGATERMINACIONCONTRATO == this.actoAusenciaDTO.formatoDTO.accion\n\t\t\t|| this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL == this.actoAusenciaDTO.formatoDTO.accion \n\t\t\t|| this.parametroFormatoPipe.INGRESODEFINITIVO == this.actoAusenciaDTO.formatoDTO.accion \n\t\t\t|| this.parametroFormatoPipe.INGRESOTEMPORAL == this.actoAusenciaDTO.formatoDTO.accion;\n\t\t}\n\t\tif (this.actoAusenciaDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_LICENCIA_COMISIONES)) {\n\t\t\treturn this.parametroFormatoPipe.LICENCIA_COMISION == this.actoAusenciaDTO.formatoDTO.accion;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Metodo que controla el tercer proceso que es donde se verifican los datos\n\t * ingresados y se crea/registra el acto administrativo\n\t */\n\tpublic async siguienteAdicional() {\n\n\t\tif (!this.formularioDinamico.validar()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\n\t\t// colocamos los valores del formulario en el dto que tenemos en el\n\t\t// formulario\n\t\t// dinamico\n\t\t\n\t\tvar resultado = this.actoAusenciaDTO;\n\t\tthis.actoAusenciaDTO = this.formularioDinamico.getObjecto();\n\t\tthis.actoAusenciaDTO.listaprogramada = resultado.listaprogramada;\n\t\tthis.configurarCamposHora();\n\n\t\tif (!this.validarCampoHora()) {\n\t\t\tthis.notificacionesService.showWarning('La hora salida es mayor a la hora termina.');\n\t\t\treturn;\n\t\t}\n\n   \t\tthis.actoAusenciaDTO.variablesActo = this.obtenerVariablesFormato();\n\t\tresultado = await this.actoAusenciaService.insertarElaborarActoAusencia( {actoAusenciaDTO: this.actoAusenciaDTO, usuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\tresultado.llaveActoBase = resultado.llave;\n\t\tresultado.nroDocumento = this.actoAusenciaDTO.nroDocumento;\n\t\tresultado.descripcionAntecesor = this.actoAusenciaDTO.descripcionAntecesor;\n\t\tresultado.nombreCompleto = this.actoAusenciaDTO.nombreCompleto;\n\t\tthis.actoAusenciaDTO = resultado;\n\t\tif (!this.utilsService.isBlank(this.actoAusenciaDTO.mensaje)) {\n\t\t\tthis.notificacionesService.showInfo(this.actoAusenciaDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tthis.valoresEditablesFormulario(true);\n\n\t\tawait this.decideQueMostrar();\n\t}\n\n\tprivate configurarCamposHora() {\n\t\tif (this.actoAusenciaDTO.horaSalida != null) {\n\t\t\tthis.actoAusenciaDTO.horaSalida = this.horaConFechaActual(this.actoAusenciaDTO.horaSalida);\n\t\t}\n\t\tif (this.actoAusenciaDTO.horaTermina != null) {\n\t\t\tthis.actoAusenciaDTO.horaTermina = this.horaConFechaActual(this.actoAusenciaDTO.horaTermina);\n\t\t}\n\t}\n\n\tprivate validarCampoHora() {\n\t\tif (this.actoAusenciaDTO.horaSalida != null && this.actoAusenciaDTO.horaTermina != null) {\n\t\t\t//return Validador.validarHoras(this.actoAusenciaDTO.horaSalida, actoAusenciaDTO.horaTermina, '');\n\t\t}\n\t\treturn true;\n\t}\n\n\tprivate horaConFechaActual(hora: Date) {\n\t\treturn hora;\n\t\t/*Calendar horaC = Calendar.Instance();\n\t\thoraC.Time(hora);\n\n\t\tCalendar fechaHora = Calendar.Instance();\n\t\tfechaHora.(Calendar.HOUR_OF_DAY, horaC.(Calendar.HOUR_OF_DAY));\n\t\tfechaHora.(Calendar.MINUTE, horaC.(Calendar.MINUTE));\n\n\t\treturn fechaHora.Time();*/\n\t}\n\n\t/**\n\t * Metodo que me genera el reporte pdf\n\t */\n\tpublic async procesoCombinacion() {\n\n\t\t// cada vez que se genere un proceso de combinacion el nombre de archivo\n\t\t// quedara\n\t\t// null, en donde nos sirvara para saber si el\n\t\t// proceso de combinacion se efectuo bien, por si este se genero\n\t\t// correctamente\n\t\t// esta variable que da con el nombre con que se genero el\n\t\t// el archivo..\n\n\t\tthis.llaveNombreArchivoProcesoCombinacion = null;\n\n\t\t\n\t\tvar listaMarcador: any[] = [];\n\t\tvar columnas: string[] = [];\n\t\tcolumnas.push('C_LLAVE');\n\t\tvar valores: any[] = [];\n\t\tvalores.push(this.actoAusenciaDTO.llave);;\n\n\t\tvar usf = new UsuarioFormatoModel();\n\t\tusf.usuario = this.authService.getTokenKey('usuario');\n\t\tusf.grupo = this.actoAusenciaDTO.grupoVincula;\n\t\tusf.formato = this.actoAusenciaDTO.formatoDTO.llave;\n\t\tusf.tipo = 'US';\n\t\tusf = await this.generalService.queryForObject(new GeneralModel('UsuarioFormatoDTO', null, false, usf)).toPromise(); \n\t\tvar mostrarPdfoWord: boolean;\n\t\t// verificamos en que formato vamos a mostrar este acto\n\t\t// si en formato pdf o formato word\n\t\tif (usf == null || usf.informe == null) {\n\t\t\tmostrarPdfoWord = false;\n\t\t} else {\n\t\t\t// si es F, Mostramos pdf\n\t\t\t// sino, mostramos word\n\t\t\tmostrarPdfoWord = ('F' == (usf.informe.trim()));\n\t\t}\n\n\t\tthis.actoDtoPdf = await this.actoCambioEmpleadoService.generarPdf({\n\t\t\tcolumnas: columnas, valores: valores, listaMarcador: listaMarcador, soportePlanilla: this.actoAusenciaDTO.soporte\n\t\t}).toPromise()\n\t\tthis.vistaVisualizar = 'mostrarDatosCombinacion';\n\t\tawait this.utilsService.sleep(500)\n\t\tif (!this.actoDtoPdf.resultado) {\n\t\t\tif (this.actoDtoPdf.mensaje != null) {\n\t\t\t\tthis.notificacionesService.showWarning(this.actoDtoPdf.mensaje);\n\t\t\t/*} else if (this.actoDtoPdf.ExceptionResultado() != null) {\n\t\t\t\terror(this.actoDtoPdf.ExceptionResultado());*/\n\t\t\t}\n\t\t}\n\n\t\n\t\tthis.mostrarCombinacion.actoAusenciaDTO = this.actoAusenciaDTO;\n\t\tthis.mostrarCombinacion.deDondeVengo = this.deDondeVengo;\n\t\tthis.mostrarCombinacion.formatoDTO = this.actoAusenciaDTO.formatoDTO;\n\t\tthis.mostrarCombinacion.LLAVE_BASE = this.llaveBase;\n\t\tthis.mostrarCombinacion.mostrarWord = !mostrarPdfoWord;\n\t\tthis.mostrarCombinacion.mostrarPdf = this.actoDtoPdf.resultado;\n\t\tthis.mostrarCombinacion.rutaFisicaWord = this.actoDtoPdf.rutaWord;\n\t\tif (this.actoDtoPdf.resultado) {\n\t\t\tthis.mostrarCombinacion.ruta = this.actoDtoPdf.rutaPdf;\n\t\t\tthis.llaveNombreArchivoProcesoCombinacion = this.actoDtoPdf.rutaPdf;\n\t\t}\n\t\tthis.mostrarCombinacion.mostrarFotoEml = true;\n\t\tthis.mostrarCombinacion.mostrarFotoHojaVida = false;\n\t\tthis.mostrarCombinacion.accion = this.accion;\n\t\tthis.mostrarCombinacion.etapa = this.etapa;\n\t\tthis.mostrarCombinacion.campos = this.campos;\n\t\tthis.mostrarCombinacion.mostrar = true;\n\t\tthis.vistaVisualizar = 'mostrarDatosCombinacion';\n\t\tawait this.cargarEmpleado(this.actoAusenciaDTO.identifica, this.actoAusenciaDTO.empresa);\n\t\t\n\t\tif (this.etapa != null && (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION || this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tthis.borrarRegistro();\n\t\t}\n\t\tif (this.etapa != null && this.etapa != this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\tawait this.generalService.delete(new GeneralModel('DatoActoAdmonDTO', 'DatoActoAdmon.eliminarActoAdministativo', false, {actoAdmon: this.actoAusenciaDTO.llave})).toPromise()\n\t\t}\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t}\n \n\tprivate async cargarEmpleado(contrato: number, empresa: number)  {\n\t\tif ( this.isProcesoMasivo() ) {\n\t\t\treturn;\n\t\t}\n\t\tvar empleadoDTO = new EmpleadoModel();\n\t\templeadoDTO.contrato = contrato;\n\t\templeadoDTO.empresa = empresa;\n\t\templeadoDTO = await  this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\tif (empleadoDTO != null) {\n\t\t\tthis.setFuncionario(empleadoDTO);\n\t\t}\n\t}\n\n\tpublic async procesoGeneralAnexo() {\n\t\t\n\t\t// despues de cada aplicar y que el proceso se realize de forma\n\t\t// correcta\n\t\t// guardamos una registro de ese archivo en la tabla\n\t\t// anexoHojaVida_ahv\n\t\t// 1. SI ESTAMOS REALIZANDO UNA ELABORACION, INSERTAMOS UN NUEVO\n\t\t// REGISTRO ANEXO\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION) {\n\t\t\tawait this.actoAusenciaService.registrarAnexoHojaActoAusencia({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, \n\t\t\t\tactoAusenciaDTO: this.actoAusenciaDTO, eliminar: false, llaveElimina: null, login: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t}\n\t\t// 2.SI ESTAMOS RELIZANDO UNA MODIFICACION o LEGALIZACION,\n\t\t// ELIMINAMOS EL AL\n\t\t// ANTERIOR E INSERTAMOS UNO NUEVO\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR || this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\tawait this.actoAusenciaService.registrarAnexoHojaActoAusencia({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, \n\t\t\t\tactoAusenciaDTO: this.actoAusenciaDTO, eliminar: true, llaveElimina: this.llaveBase, login: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t}\n\t\t// 2.SI ESTAMOS RELIZANDO UNA ELIMINACION, ELIMINAMOS EL ANEXO\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION) {\n\t\t\tawait this.actoAusenciaService.registrarAnexoHojaActoAusencia({llaveNombreArchivoProcesoCombinacion: null, actoAusenciaDTO: this.actoAusenciaDTO,\n\t\t\t\teliminar: true, llaveElimina: this.llaveBase, login: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t}\n\t\t\n\t}\n\n\t/**\n\t * Accion final que sea aplica sobre el acto administrativo de acuerdo con\n\t * la this.etapa del proceso (ELABORACION/MODIFICACION, ELIMINACION,\n\t * LEGALIZACION)\n\t */\n\tpublic async aplicarFinal() {\n\t\tvar llaveSeguimiento = this.seguimiento ? this.utilsService.generarLlave() : null;\n\t\tthis.actoAusenciaDTO.variablesActo  = this.obtenerVariablesFormato();\n\t\tvar resultado: ActoAusenciaModel  = await this.actoAusenciaService.legalizarActoAusencia({actoAusenciaDTO: this.actoAusenciaDTO, usuario: this.authService.getTokenKey('usuario'), etapa: this.etapa, llaveBase: this.llaveBase, seguimiento: llaveSeguimiento}).toPromise();\n\t\tresultado.llaveActoBase = resultado.llave;\n\t\tresultado.nroDocumento = this.actoAusenciaDTO.nroDocumento;\n\t\tresultado.descripcionAntecesor = this.actoAusenciaDTO.descripcionAntecesor;\n\t\tresultado.nombreCompleto = this.actoAusenciaDTO.nombreCompleto;\n\t\tthis.actoAusenciaDTO = resultado;\n\t\tconsole.log('aplicatFinal')\n\t\tconsole.log(this.actoAusenciaDTO)\n\t\tif (this.actoAusenciaDTO != null && this.actoAusenciaDTO.mensaje != null && this.actoAusenciaDTO.mensaje.trim().length != 0) {\n\t\t\tthis.notificacionesService.showInfo(this.actoAusenciaDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n\n\t\tawait this.procesoGeneralAnexo();\n\n\t\tif (this.parametroFormatoPipe.NOREQUIERE == (this.actoAusenciaDTO.formatoDTO.legalUnico) || this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\tvar formato = new FormatoModel();\n\t\t\tformato.llave = this.actoAusenciaDTO.formato;\n\t\t\tformato = await this.generalService.queryForObject(new GeneralModel('FormatoDTO', null, false, formato)).toPromise();\n\t\t\tthis.periodoReversar = null;\n\t\t\tif (formato != null && formato.accion == (this.parametroFormatoPipe.LIQUIDACION_CONTRATO)) {\n\t\t\t\tthis.periodoReversar = await this.actoAusenciaService.actoAusenciaRetiroNomina({actoAusenciaDTO: this.actoAusenciaDTO}).toPromise();\n\t\t\t}\n\n\t\t\t// Verificamos que el archivo de este acto se haya genereado\n\t\t\t// bien\n\t\t\tif (this.periodoReversar == null) {\n\t\t\t\tvar nombreArchivo //= getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA) + llaveBase + this.generalPipe.PUNTO + ConstantesGenerales.ARCHIVO_PDF;\n\t\t\t\tif (this.actoDtoPdf != null && this.actoDtoPdf.rutaPdf != null && this.actoDtoPdf.mensaje == null) {\n\t\t\t\t\tthis.mostrarPopupSubirArchivo = true;\n\t\t\t\t\tawait this.utilsService.sleep(1100)\n\t\t\t\t\tthis.popupSubirArchivo.buscar(this.actoAusenciaDTO.formatoDTO, nombreArchivo)\n\t\t\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actosAusenciaTerminacionBean.terminar}', this.actoAusenciaDTO.formatoDTO, nombreArchivo);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.confirmationService.confirm({\n\t\t\t\t\ttarget: event.target,\n\t\t\t\t\tmessage:  'Empleado contiene registro de Nómina, ¿Desea eliminar estos conceptos?',\n\t\t\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\t\t\taccept: async () => {\n\t\t\t\t\t\tawait this.setEliminarNomina()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\t// Muestra el popup de seguimiento. Al cerrarlo muestra el mensaje\n\t\t// de éxito del\n\t\t// proceso\n\t\tif (this.seguimiento) {\n\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actosAusenciaTerminacionBean.cierreSeguimiento}');\n\t\t} else {\n\t\t\t// Muestra el mensaje de éxito del proceso\n\t\t\tvar titulo = this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t\tthis.notificacionesService.showInfo(titulo);\n\t\t\tthis.setTerminar({});\n\t\t}\n\t}\n\n\t/**\n\t * Método de retorno del evento de cierre del popup de seguimiento Muestra\n\t * mensaje de éxito del proceso\n\t * \n\t * @param objeto\n\t *            Se utiliza este parámetro para dar al método la forma de un\n\t *            método SET\n\t */\n\tpublic setCierreSeguimiento(objeto) {\n\t\t\n\t\tvar titulo: string = this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\tthis.notificacionesService.showInfo(titulo);\n\t\tthis.setTerminar({})\n\t}\n\n\tpublic async setEliminarNomina() {\n\t\tawait this.actoAusenciaService.eliminarNominaActoAusencia({actoAusenciaDTO: this.actoAusenciaDTO, periodoReversar: this.periodoReversar, usuario: this.authService.getTokenKey('usuario')}).toPromise();\n\t\tvar nombreArchivo: string// = getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA) + llaveBase + this.generalPipe.PUNTO + ConstantesGenerales.ARCHIVO_PDF;\n\t\tif (this.actoDtoPdf != null && this.actoDtoPdf.rutaPdf != null && this.actoDtoPdf.mensaje == null) {\n\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actosAusenciaTerminacionBean.terminar}', this.actoAusenciaDTO.formatoDTO, nombreArchivo);\n\t\t\tthis.mostrarPopupSubirArchivo = true;\n\t\t\tawait this.utilsService.sleep(1100)\n\t\t\tthis.popupSubirArchivo.buscar(this.actoAusenciaDTO.formatoDTO, nombreArchivo)\n\t\t\treturn;\n\t\t}\n\t\tvar titulo: string = this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\tthis.notificacionesService.showInfo(titulo);\n\t}\n\n\tpublic setTerminar(s) {\n\t\tthis.mostrarPopupSubirArchivo = false;\n\t\tthis.regresarActoAdmin();\n\t}\n\n\t/**\n\t * Metodo que borra el registro insertado cuando se genera algun error..\n\t */\n\tpublic borrarRegistro() {\n\t\t// BORRAMOS EL REGITRO\n\t\tif (this.actoAusenciaDTO != null) {\n\t\t\tthis.actoAusenciaService.borrarRegistroAusencia({llave: this.actoAusenciaDTO.llave}).subscribe(data => {});\n\t\t}\n\t}\n\n\tpublic noMostrarDatosCombinacion() {\n\t\tthis.vistaVisualizar = null;\n\t}\n\n\tpublic validarDatosCedulaEmpleado() {\n\t\tvar valida: boolean = true;\n\t\t//valida &= Validador.validarDecimal(this.actoAusenciaDTO.identifica, idForm + ':identificaActoRetiro', true, 22, 126);\n\t\t// VALIDAMOS LA INCLUSION DE ALGUN DATO EN\n\t\t// actoAusenciaDTO.ANTECESOR\n\t\tif (this.actoAusenciaDTO.formatoDTO.formPadre != 0) {\n\t\t\t//valida &= Validador.validarTexto(this.actoAusenciaDTO.antecesor, idForm + ':antecesorActoRetiro', true, 32);\n\t\t}\n\n\t\treturn valida;\n\t}\n\n\t/**\n\t * Accion que se ejecuta tras dar clic en Continuar después de ingresar los\n\t * datos adicionales\n\t * \n\t * @return\n\t * @\n\t */\n\tpublic async actionSiguienteAdicional() {\n\t\tif (this.utilsService.isNotBlank(this.actoAusenciaDTO.formatoDTO.servicioValidador)) {\n\t\t\tthis.actoAusenciaDTO = await this.actoAusenciaService.validadorActosAdmin({actoAusenciaDTO: this.actoAusenciaDTO}).toPromise();\n\t\t\tif (this.utilsService.isNotBlank(this.actoAusenciaDTO.mensaje)) {\n\t\t\t\tthis.notificacionesService.showWarning(this.actoAusenciaDTO.mensaje);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tawait this.siguienteAdicional();\n\t}\n\n\tpublic valoresEditablesFormulario(editable: boolean) {\n\t\tthis.formularioDinamico.editable = editable;\n\t\tthis.habilitarCombosUnidadCargo = editable;\n\t}\n\n\t/**\n\t * Metodo que controla el proceso de legalizacion Validando los campos de\n\t * listaparacamposlegaliza\n\t */\n\tpublic async siguienteDatosLegalizar() {\n\t\t// VALIDAMOS LA INCLUISION DE LISTAPARACAMPOLEGALIZA\n\t\tif (!this.formularioDinamico.validar()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn null;\n\t\t}\n\t\t// colocamos los valores del formulario en el dto que tenemos en el\n\t\t// formulario\n\t\t// dinamico\n\t\tthis.actoAusenciaDTO = this.formularioDinamico.getObjecto();\n\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\t/**\n\t\t\t * Si paso las validaciones hacemos una actualizacion del registro\n\t\t\t * actoAusenciaDTO\n\t\t\t */\n\t\t\tthis.actoAusenciaDTO.empleadoDTO = null;\n\t\t\tthis.actoAusenciaDTO = await this.actoAusenciaService.actualizarActoAusencia(this.actoAusenciaDTO).toPromise();\n\t\t\tthis.actoAusenciaDTO = this.actoAusenciaService.formatearActoAusencia(this.actoAusenciaDTO);\n\t\t\tthis.pasoAnterior = this.paso;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.decideQueMostrar();\n\t\t} else if (this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION) {\n\t\t\tthis.pasoAnterior = this.paso;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.decideQueMostrar();\n\t\t}\n\t}\n\n\t/**\n\t * Este metodo cargo todos los combos que necesitan entre\n\t * ellos..(ListaSoporte, ListaCargo, ListaUnidadOrganizacion etc...\n\t * \n\t * @param formato\n\t */\n\tprivate async cargarCombos(formato: number) {\n\t\tvar formatoDatoDTO = new FormatoDatoModel();\n\t\tformatoDatoDTO.formato = formato;\n\t\tformatoDatoDTO.tipo = 'TD';\n\t\tthis.listaFormatoDatoDocumentoItem = this.selectListActos.getSelectItemFormatoDatoDocumentoItem(await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, formatoDatoDTO)).toPromise());\n\t\tthis.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).toPromise());\n\n\t\tthis.listaMotivoRetiro = await this.selectListCompensa.getListaMotivoRetiro('T');\n\t\tvar rolesDTO = new RolesModel();\n\t\trolesDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tthis.listaRoloItem = this.selectListActos.getSelectItemRolItem(await this.generalService.queryForList(new GeneralModel('RolesDTO', null, false, rolesDTO)).toPromise());\n\t\tthis.listaTipoCambioItem = this.selectListActos.getSelectItemTipoCambioItem(await this.generalService.queryForList(new GeneralModel('TipoCambioEmpleadoDTO', null, false, {})).toPromise());\n\t\tthis.listaSoporteItem = this.selectListActos.getSelectItemSoporteItem(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarListaSoporteDocumento', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),formato: formato, tipoSoporte: 'W'})).toPromise());\n\n\t\tvar cargoDTO = new CargoModel();\n\t\tcargoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n\t\tthis.listaSucursalItem = this.selectListActos.getListaSucursaActo(await this.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', 'LoginAccesoSara.consultarListaVistaSucursal', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), aliasRol: this.authService.getTokenKey('aliasRol'), login: this.authService.getTokenKey('usuario')})).toPromise());\n\n\t\tvar entidadDTO = new EntidadModel();\n\t\t\n\t\tvar empresa = await this.saraAplicacionService.getEmpresa();\n\t\tif (empresa != null) {\n\t\t\tentidadDTO.modo = empresa.modoCompensacion;\n\t\t}\n\n\t\tthis.listaEntidad = [];\n\t\tvar lista: EntidadModel[] = await this.generalService.queryForList(new GeneralModel('EntidadDTO', 'Entidad.listaEntidadesIncapacidad', false, entidadDTO)).toPromise();\n\t\tfor (var intt of lista) {\n\t\t\tthis.listaEntidad.push({value: intt.llave, label: intt.descripcion});\n\t\t}\n\t\tthis.listaModalidadAcademica = await this.selectListCompensa.getListaNivelAcademico();\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la lista para campo\n\t */\n\tpublic async crearFormularioListaParaCampo() {\n\t\tconsole.trace('entra crearFormularioListaParaCampo')\n\t\tvar campos2:CampoFormularioModel[] = await this.actoAusenciaService.listaCampoTerminacionContrato().toPromise();\n\t\tawait this.utilsService.sleep(500);\n\t\tthis.formularioDinamico?.limpiar();\n\t\tthis.formularioDinamico?.camposCaracteristicaClear();\n\t\tfor (var dato of this.listaParaCampos) {\n\t\t\tfor (var campo of campos2) {\n\t\t\t\tif (campo.descripcion == dato.campo.trim()) {\n\t\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t\t// CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS\n\t\t\t\t\t// QUE CUMPLAN CON DICHO\n\t\t\t\t\t// CONDICION\n\t\t\t\t\tif (dato.accion != null && dato.accion.trim() != this.parametroFormatoPipe.INGRESARE) {\n\t\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t\t}\n\t\t\t\t\t// verificamos si el campo solo se pude visualizar\n\t\t\t\t\tif (dato.accion != null && dato.accion.trim() == this.parametroFormatoPipe.VISUALIZAR) {\n\t\t\t\t\t\tcampo.editable = 'L';\n\t\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t\t}\n\t\t\t\t\t// CARGAMOS EL COMBO PARA CADA CAMPO\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.MOTIVO)) {\n\t\t\t\t\t\tcampo.lista = (this.listaMotivoRetiro);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.ENTIDAD)) {\n\t\t\t\t\t\tcampo.lista = (this.listaEntidad);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.ROL)) {\n\t\t\t\t\t\tcampo.lista = (this.listaRoloItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)) {\n\t\t\t\t\t\tcampo.lista = (this.listaTipoCambioItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.MODALIDAD_ACADEMICA)) {\n\t\t\t\t\t\tcampo.lista = (this.listaModalidadAcademica);\n\t\t\t\t\t}\n\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.formularioDinamico?.modificar(this.actoAusenciaDTO, true);\n\t\tawait this.setValorCampos();\n\t}\n\n\tprivate async cargarVariableFormato(acto: string)  {\n\t\tthis.formularioDinamico?.camposCaracteristicaClear();\n\t\t// Carga las variables del formato\n\t\tvar longitud: number = 0;\n\t\tvar campoVariable: CampoFormularioModel;\n\t\tvar tipoDato: string;\n\t\tfor (var variableConfigurada of  this.actoAusenciaDTO.formatoDTO.listadoVariables) {\n\t\t\ttipoDato = variableConfigurada.tipoDato;\n\t\t\tif ('A' == (variableConfigurada.tipoDato)) {\n\t\t\t\tlongitud = 100;\n\t\t\t\ttipoDato = 'T';\n\t\t\t} else if ('N' == (variableConfigurada.tipoDato)) {\n\t\t\t\tlongitud = 20;\n\t\t\t}\n\t\t\tcampoVariable = new CampoFormularioModel(tipoDato, variableConfigurada.titulo, longitud, 0, variableConfigurada.llave,\n\t\t\t\t\tthis.generalPipe.SI == variableConfigurada.obligatorio, null, this.generalPipe.ESPACIO_NULO, 'E');\n\t\t\tcampoVariable.orden = variableConfigurada.orden;\n\t\t\tcampoVariable.campoTabla = variableConfigurada.llave;\n\t\t\tcampoVariable.caracteristica = true;\n\n\t\t\tthis.campos.push(campoVariable);\n\t\t}\n\n\t\tif (this.utilsService.isNotBlank(this.actoAusenciaDTO.llave)) {\n\t\t\tvar datoActoAdmonDTO = new DatoActoAdmonModel();\n\t\t\tdatoActoAdmonDTO.actoAdmon = acto;\n\t\t\tdatoActoAdmonDTO.tipoServicio = 'VF';\n\t\t\tvar datosVariables: DatoActoAdmonModel[] = await this.generalService.queryForList(new GeneralModel('DatoActoAdmonDTO', null, false, datoActoAdmonDTO)).toPromise();\n\n\t\t\tfor (var variable of datosVariables) {\n\t\t\t\tif (variable.tipoReferencia == null) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, null, variable);\n\t\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.NUMERO) || variable.tipoReferencia == (this.campoFormularioPipe.DECIMAL)) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.valor, variable);\n\t\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.FECHA) ) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.fecha, variable);\n\t\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.TEXTO) ) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.cadena, variable);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\tpublic async setAntecesor(actoDTO: ActoIngresoAusenciaModel) {\n\t\tif (actoDTO != null) {\n\t\t\tthis.actoAusenciaDTO.antecesor = actoDTO.llaveActo;\n\t\t\tthis.actoAusenciaDTO.antecesorNumero  = actoDTO.consecutivo;\n\t\t\tthis.actoAusenciaDTO.descripcionAntecesor = actoDTO.descripcion;\n\t\t\tawait this.actionEnviarSiguienteCedula();\n\t\t}\n\t}\n\n\tpublic verPopupAntecesor() {\n\t\tvar actoDTO = new ActoIngresoAusenciaModel();\n\t\tactoDTO.formatoPadre = this.actoAusenciaDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoAusenciaDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoAusenciaDTO.formatoDTO.accion;\n\t\tactoDTO.estado = 6;\n\t\tactoDTO.contrato = this.actoAusenciaDTO.identifica;\n\t\tactoDTO.empresa = this.actoAusenciaDTO.empresa;\n\t\t//getBean(PopupAntecesorBean.class).buscar('#{actosAusenciaTerminacionBean.antecesor}', actoDTO, this.parametroFormatoPipe.TIPO_ACTO_AUSENCIA);\n\t}\n\n\tasync verPopupHojaVida(event){\n\t\tthis.setFuncionario(event);\n\t\tif (!this.isMostrarSeleccionFormatoPadre()) {\n\t\t\tawait this.actionEnviarSiguienteCedula();\n\t\t}\n\t\t\n\t\t//this.actionSiguienteAdicional().then(data =>{})\n\t\t//getBean(PopupEmpleado.class).buscar('#{actoCambioPuestoBean.funcionario}');\n\t}\t\n\t\n\tfiltrarEnter(event) {\n\t\tif (event.key === 'Enter') {\n\t\t\tvar filtroEmpleado: EmpleadoModel = new EmpleadoModel;\n\t\t\tfiltroEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'))\n\t\t\tfiltroEmpleado.documento = this.cedulaFiltro,\n\t\t\tfiltroEmpleado.soloActivos = 'L'\n\t\t\tthis.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, filtroEmpleado)).subscribe(data => {\n\t\t\tif (data.length == 1){\n\t\t\t\tthis.verPopupHojaVida(data[0]).then(data => {})\n\t\t\t} else {\n\t\t\t\tthis.inputEmpleado.openDataTable()\n\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\thandleEnterKey(event) {\n\t\tevent.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t}\n\n\tpublic setFuncionario(empleadoDTO: EmpleadoModel) {\n\t\tif (empleadoDTO != null) {\n\t\t\tif ( this.parametroFormatoPipe.PASO_ADICIONAL == this.paso) {\n\t\t\t\tfor (var unActo of  this.actoAusenciaDTO.listaprogramada) {\n\t\t\t\t\tif ( unActo.identifica == empleadoDTO.contrato) {\n\t\t\t\t\t\tthis.notificacionesService.showWarning('Documento ya relacionado');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconsole.log('entra aca')\n\t\t\t\tthis.actoHijoAdicionar.documentoEmpleado = empleadoDTO.documento;\n\t\t\t\tthis.actoHijoAdicionar.empresa = empleadoDTO.empresa;\n\t\t\t\tthis.actoHijoAdicionar.identifica = empleadoDTO.contrato;\n\t\t\t\tthis.actoHijoAdicionar.nombreEmpleado = empleadoDTO.nombreCompleto;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// this.empleadoDTO = empleadoDTO;\n\t\t\tconsole.log('entra aca 2')\n\t\t\tthis.mostrarFoto = true;\n\t\t\tthis.cedulaFiltro = empleadoDTO.documento;\n\t\t\tthis.actoAusenciaDTO.identifica = empleadoDTO.contrato;\n\t\t\tthis.actoAusenciaDTO.nroDocumento = empleadoDTO.documento;\n\t\t\tthis.actoAusenciaDTO.nombreCompleto = empleadoDTO.nombreCompleto;\n\t\t\tthis.actoAusenciaDTO.identifica = empleadoDTO.contrato;\n\t\t\tthis.actoAusenciaDTO.cedula = empleadoDTO.cedula;\n\t\t\tthis.actoAusenciaDTO.alternoHojaVida = empleadoDTO.alternoHojaVida;\n\t\t\tthis.actoAusenciaDTO.empleadoDTO = empleadoDTO;\n\t\t\tthis.empleadoDTO = empleadoDTO;\n\t\t\t//getBean(CabeceraEmpleadoBean.class).EmpleadoDTO(empleadoDTO);\n\t\t\tthis.mostrarBuscarAntecesor = true;\n\t\t}\n\t}\n\n\tpublic async actionEnviarSiguienteCedula() {\n\t\tawait this.siguienteCedula();\n\t}\n\n\tpublic regresarActoAdmin() {\n\t\tthis.regresarAction.emit(false);\n\t\t//this.empleadoDTO = new EmpleadoModel();\n\t\t//getBean(CabeceraEmpleadoBean.class).EmpleadoDTO(null);\n\t\t//if (this.deDondeVengo != null && this.deDondeVengo == (this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO)) {\n\t\t\t//getBean(ActosEmpleadoBean.class).Regresar();\n\t\t\t//return null;\n\t\t//} else if (this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.deDondeVengo) {\n\t\t\t//ListadoNovedadEmpleadoBean listaNovedad = getBean(ListadoNovedadEmpleadoBean.class);\n\t\t\t//listaNovedad.traerListado(this.actoAusenciaDTO.EmpleadoDTO());\n\t\t\t//listaNovedad.VerDetalle(false);\n\t\t\t//listaNovedad.Panel(0);\n\t\t\t//return null;\n\t\t//} else if (this.novedadPipe.ORIGEN_APLICAR_NOVEDAD == this.deDondeVengo) {\n\t\t\t//getBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).MostrarListadoNovedades(false);\n\t\t\t//return null;\n\t\t//} else if (this.novedadPipe.ORIGEN_ACTIVIDAD_NOVEDAD_EMPLEADO == this.deDondeVengo) {\n\t\t\t//navegar(getReglaNavegacion());\n\t\t\t//return null;\n\t\t//}\n\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t\treturn null;\n\t}\n\n\tprivate obtenerVariablesFormato()  {\n\t\tvar listadoVariablesFormulario: CampoFormularioModel[] = this.formularioDinamico.getCamposCaracteristica();\n\t\tvar datosVariableFormato: DatoActoAdmonModel[] = [];\n\t\tvar datoActoAdmonDTO: DatoActoAdmonModel;\n\t\tif (listadoVariablesFormulario != null) {\n\t\t\tfor (var variable of listadoVariablesFormulario) {\n\t\t\t\tdatoActoAdmonDTO = new DatoActoAdmonModel();\n\t\t\t\tdatoActoAdmonDTO.formatoDato = variable.campo;\n\t\t\t\tdatoActoAdmonDTO.tipoReferencia = variable.tipo;\n\t\t\t\tdatoActoAdmonDTO.tipoServicio = 'VF';\n\t\t\t\tif (variable.tipo == (this.campoFormularioPipe.NUMERO) || variable.tipo == (this.campoFormularioPipe.DECIMAL)) {\n\t\t\t\t\tif (variable.valor == null || variable.valor.toString() == this.generalPipe.ESPACIO_NULO) {\n\t\t\t\t\t\tdatoActoAdmonDTO.valor = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdatoActoAdmonDTO.valor  = parseInt(variable.valor.toString());\n\t\t\t\t\t}\n\t\t\t\t} else if (variable.tipo == (this.campoFormularioPipe.FECHA)) {\n\t\t\t\t\tdatoActoAdmonDTO.fecha = new  Date (variable.valor);\n\t\t\t\t} else {\n\t\t\t\t\tdatoActoAdmonDTO.cadena = variable.valor;\n\t\t\t\t}\n\t\t\t\tdatosVariableFormato.push(datoActoAdmonDTO);\n\t\t\t}\n\t\t}\n\t\treturn datosVariableFormato;\n\t}\n\n\tpublic async verFormularioParaBPM(llave: string) {\n\t\tawait this.legalizar(llave);\n\t}\n\n\tobtenerDatoAntecesor(): ActoIngresoAusenciaModel {\n\t\tvar actoDTO = new ActoIngresoAusenciaModel;\n\t\tif (!this.actoAusenciaDTO){\n\t\t\treturn actoDTO;\n\t\t}\n\t\tactoDTO.formatoPadre = this.actoAusenciaDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoAusenciaDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoAusenciaDTO.formatoDTO.accion;\n\t\tactoDTO.estado = 6;\n\t\tactoDTO.contrato = this.actoAusenciaDTO.identifica;\n\t\tactoDTO.empresa = this.actoAusenciaDTO.empresa;\n\t\tactoDTO.descripcionFormato = this.actoAusenciaDTO.formatoDTO.nombreFormPadre;\n\t\t//actoDTO.campoEstado = this.parametroFormatoPipe.PARAMETRO_L_AUSENCIA;\n\t\treturn actoDTO;\n\t}\n\n\tasync setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.campos.forEach(async element => {\n\t\t\t\n\t\t\tif (element.tipo === 'F'){\n\t\t\t  \telement.valor = element.valor ? new Date(element.valor) : null;\n\t\t\t} else if (element.tipo === 'H'){\n\t\t\t  \tif (element.valor){\n\t\t\t\t\tlet listaValortemp = [];\n\t\t\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t\tlistaValortemp.push ({label: element2, value:element2})\n\t\t\t\t\t})\n\t\t\t\t\telement.valor = listaValortemp\n\t\t\t\t}\n\t\t\t} else if (element.tipo === 'P'){\n\t\t\t  \tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id ){\n\t\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t  readonly: !this.formularioDinamico?.editable,\n\t\t\t\t\t  showDialog: false,\n\t\t\t\t\t  label: element.valor,\n\t\t\t\t\t  mostrarX: false,\n\t\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t\t}\n\t\t\t  });\n\t\n\t\t\t} else {\n\t\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\t\telement.valor = element.valor.trim()\n\t\t\t\t  }\n\t\t\t}\n\t\t  });\n\t\t  await this.utilsService.sleep(500)\n\t\n\t\t  this.formularioDinamico?.ngAfterViewInit();\n\t\t  this.utilsService.resizeWindowIFrame();\n\t\n\t\t  //this.formularioDinamico.campos = this.campos;\n\t}\n\n\tpublic isMostrarSeleccionFormatoPadre() {\n\t\tif (this.actoAusenciaDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.actoAusenciaDTO.formatoDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (this.actoAusenciaDTO.formatoDTO.formPadre != null && this.actoAusenciaDTO.formatoDTO.formPadre != 0);\n\t}\n\n\tpublic setDeDondeVengo(deDondeVengo: string, idForm: string) {\n\t\tthis.idForm = idForm;\n\t\tthis.deDondeVengo = deDondeVengo;\n\t}\n\n\tpublic getDescripcionTipo() {\n\t\tif (this.actoAusenciaDTO != null) {\n\t\t\tthis.descripcionTipo = this.mapaActosAdmin.filter(data => data.codigo == this.actoAusenciaDTO.formatoDTO.tipo)[0].nombre;\n\t\t\treturn this.descripcionTipo;\n\t\t}\n\t\treturn '';\n\t}\n\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n        <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n        \n        <button pButton pRipple (click)=\"decideQueNoMostrar()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" \n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n    </div>\n    @if (isProcesoMasivo()) {\n        <h4>{{actoAusenciaDTO.formatoDTO.descripcion}}</h4>\n        <h4>{{accion}} - {{etapa}}</h4>\n    }\n    <app-cabecera-empleado [empleado]=\"empleadoDTO\" *ngIf=\"mostrarFoto && empleadoDTO != null && empleadoDTO != undefined && !isProcesoMasivo() && !parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO\"></app-cabecera-empleado>\n    <div class=\"p-fluid grid\" [ngStyle]=\"vistaVisualizar == null ? {} : {'display': 'none'}\" >\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mb-2\">\n                    <!-- PASO 1 - DATOS CEDULA -->\n                    <p-fieldset  *ngIf=\"mostrarDatosCedulaCampos && !isProcesoMasivo()\">\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{actoAusenciaDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid grid\">\n                            <!-- IDENTIFICACION -->\n                            <div class=\"col-12 md:col-12 lg:col-6 responsivetablet\" *ngIf=\"mostrarDatosCedulaCampos\">\n                                <app-input-helper-empleado-boton #inputEmpleado (onSelected)=\"verPopupHojaVida($event)\" *ngIf=\"mostrarDatosCedulaCampos\"\n                                    [nombreInput]=\"'empleado' | translate\" [mostrarX]=\"false\"\n                                    [label]=\"empleadoDTO.nombreCompleto != null ? empleadoDTO.contrato + ' - ' + empleadoDTO.nombreCompleto : ''\" >\n                                </app-input-helper-empleado-boton>\n                            </div>\n                            <div class=\"col-12 md:col-12 lg:col-6\" *ngIf=\"mostrarDatosCedulaCampos\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"documento\" [(ngModel)]=\"cedulaFiltro\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'cedula' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ANTECESOR -->\n                            <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"isMostrarSeleccionFormatoPadre()\">\n                                <app-popup-antecesor [nombreInput]=\"actoAusenciaDTO.formatoDTO.nombreFormPadre\" [actoIngresoAusenciaDTO]=\"obtenerDatoAntecesor()\"\n                                    [booleano]=\"utilsService.validarCampoObligatorio(actoAusenciaDTO.antecesor) && validaPasoCedula\"\n                                    [label]=\"actoAusenciaDTO.descripcionAntecesor ? (actoAusenciaDTO.descripcionAntecesor) : ''\" [tipo]=\"parametroFormatoPipe.TIPO_ACTO_AUSENCIA\"\n                                    (onSelected)=\"setAntecesor($event)\" ></app-popup-antecesor>\n                            </div>\n                        </div>\n                    </p-fieldset>\n\n                    <!-- PASO 2 ADICIONAL  -->\n                    \n                    <div [ngStyle]=\"mostrarDatosAdicional || mostrarLegalizar ? {} : {'display': 'none'}\">\n                        <formulario-dinamico #formulario [campos]=\"campos\" [objeto]=\"actoAusenciaDTO\" ></formulario-dinamico>\n                        \n                        <div class=\"flex justify-content-between align-items-center mb-3 mt-3\" *ngIf=\"isProcesoMasivo()\">\n                            <h1 class=\"text-xl mb-1\">{{'funcionario' | translate}}</h1>\n                            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"mostrarNuevo()\"\n                                label=\"{{'link_nuevo' | translate}}\" [disabled]=\"inhabilitaBotonesTabla || etapa == 'LEGALIZACION'\" >\n                            </button>\n                        </div>\n                        <p-table #tablaGeneral [value]=\"actoAusenciaDTO.listaprogramada\" [scrollable]=\"true\" responsiveLayout=\"scroll\" *ngIf=\"isProcesoMasivo()\"\n                            styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"actoAusenciaDTO.listaprogramada.length\"\n                            [paginator]=\"actoAusenciaDTO.listaprogramada.length > 10\" dataKey=\"llaveTabla\" [showCurrentPageReport]=\"true\"\n                            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" editMode=\"row\">\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th style=\"width: 30%;\">{{'identifica' | translate}}</th>\n                                    <th style=\"width: 30%;\">{{'nombre' | translate}}</th>\n                                    <th style=\"width: 15%;\">{{'mensaje' | translate}}</th>\n                                    <th style=\"width: 5%;\"></th>\n                                </tr>\n                                <tr *ngIf=\"nuevoRegistroTabla\" class=\"TablaNuevoRegistro\">\n                                    <td style=\"width: 30%;\">\n                                        <input pInputText #idEmpleadoNuevo=\"ngModel\" id=\"codigo\" type=\"text\" [disabled]=\"true\"\n                                            [class]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.documentoEmpleado) && validarHijo ? 'ng-dirty ng-invalid' : ''\"\n                                            [(ngModel)]=\"actoHijoAdicionar.documentoEmpleado\"  />\n                                    </td>\n                                    <td style=\"width: 30%;\">\n                                        <app-input-helper-empleado-boton (onSelected)=\"setFuncionario($event)\" [mostrarX]=\"false\"\n                                            [booleano]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.documentoEmpleado) && validarHijo\"\n                                            [label]=\"actoHijoAdicionar.nombreEmpleado != null ?  actoHijoAdicionar.nombreEmpleado : ''\" >\n                                        </app-input-helper-empleado-boton>\n                                    </td>\n                                    <td style=\"width: 15%;\">\n                                    </td>\n                                    <!-- BOTONES NUEVO REGISTRO -->\n                                    <td class=\"flex justify-content-end\">\n                                        <button pButton pRipple type=\"button\" \n                                            icon=\"pi pi-check\"\n                                            class=\"p-element p-ripple p-button-rounded p-button-success mb-2 p-button p-component p-button-icon-only ng-star-inserted\"\n                                            (click)=\"adicionarHijoActo()\"></button>\n                                        <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoHijo()\"\n                                            class=\"p-element p-ripple p-button-rounded p-button-danger mb-2 p-button p-component p-button-icon-only\"></button>\n                                    </td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-hijoActo let-editing=\"editing\" let-ri=\"rowIndex\">\n                                <tr [pEditableRow]=\"hijoActo\">\n                                    <td style=\"width: 30%;\">\n                                        <p-cellEditor>\n                                            <ng-template pTemplate=\"output\">\n                                                {{hijoActo.documentoEmpleado}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <td style=\"width: 30%;\">\n                                        <p-cellEditor style=\"width:100%;\">\n                                            <ng-template pTemplate=\"output\">\n                                                {{hijoActo.nombreEmpleado}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <td style=\"width: 15%;\">\n                                        <p-cellEditor>\n                                            <ng-template pTemplate=\"output\">\n                                                {{hijoActo.mensaje}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <!-- BOTONES -->\n                                    <td style=\"width: 5%;\" class=\"flex justify-content-end\" style=\"padding: 0.75rem 0.6rem\">\n                                        <!-- ELIMINAR -->\n                                        <button *ngIf=\"!editing && etapa != 'LEGALIZACION'\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                            (click)=\"eliminarHijoActo($event, hijoActo)\"\n                                            class=\"p-element p-ripple p-button-rounded p-button-outlined  mb-2 p-button p-component p-button-icon-only\"\n                                            [disabled]=\"inhabilitaBotonesTabla\"></button>\n                                    </td>\n                                </tr>\n                            </ng-template>\n                        </p-table>\n                    </div>\n                        <!-- PANEL GRID CONTINUAR Y ATRAS, DATOS ADICIONAL -->\n                    <div class=\"flex justify-content-end\" *ngIf=\"!(etapa == 'LEGALIZACION' || etapa == 'ELIMINACION')\">\n                        <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-chevron-right\" \n                            label=\"{{'link_continuar' | translate}}\" (click)=\"actionSiguienteAdicional()\">\n                        </button>\n                    </div>\n                    <div class=\"flex justify-content-end\" *ngIf=\"(etapa == 'LEGALIZACION' || etapa == 'ELIMINACION')\">\n                        <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-chevron-right\" \n                            label=\"{{'link_continuar' | translate}}\" (click)=\"siguienteDatosLegalizar()\">\n                        </button>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div *ngIf=\"vistaVisualizar == 'mostrarDatosCombinacion'\">\n        <app-mostrar-datos-combinacion-acto-ausencia #mostrarDatosCombinacionActoAusencia (aplicar)=\"aplicarFinal()\" ></app-mostrar-datos-combinacion-acto-ausencia>\n    </div>\n    <app-popup-subir-archivo-actos (regresar)=\"setTerminar($event)\" *ngIf=\"mostrarPopupSubirArchivo\"></app-popup-subir-archivo-actos>\n</div>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport Swal from 'sweetalert2';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class TipoNovedadService {\n\n    listProcedure(objetoFiltro: GeneralModel) {\n        throw new Error('Method not implemented.');\n        }\n\n        constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n        }\n\n        private handleError(error: HttpErrorResponse) {\n            if (error.status === 500) {\n              //Llamado a interceptor\n              this.errorInterceptor.showError(JSON.stringify(error.error));\n              // A client-side or network error occurred. Handle it accordingly.\n              console.error('An error occurred:', error.error);\n            } else {\n              // The backend returned an unsuccessful response code.\n              // The response body may contain clues as to what went wrong.\n              console.error(\n                `Backend returned code ${error.status}, body was: `, error.error);\n            }\n            // Return an observable with a user-facing error message.\n            return throwError(() => new Error('Something bad happened; please try again later.'));\n          }\n          \n    obtenerCamposAdicionales(): Observable<any[]> {\n        return this.httpClient.get<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/obtenerCamposAdicionales`).pipe(\n            catchError(this.handleError)\n          );\n    }\n\n    obtenerTipoNovedadEmpleado(objeto): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/obtenerTipoNovedadEmpleado`, objeto).pipe(\n          catchError(this.handleError)\n        );\n    }\n\n    obtenerTipoNovedadesPadreConHijos(objeto): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/obtenerTipoNovedadesPadreConHijos`, objeto).pipe(\n          catchError(this.handleError)\n        );\n    }\n    \n\n}\n\n","export class ProcedimientoNovedadDTO {\n\n\t\n\tllave: String;\n\tusuario: String;\n\taccion: String;\n\tempresa: number;\n\tseguimiento: String;\n\t\n\t\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { catchError, Observable, throwError } from 'rxjs';\nimport { ProcedimientoNovedadDTO } from '../models/ProcedimientoNovedadModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SolicitudService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async ejecutarProcedimientoNovedad(llave: string, accion: string, usuario: string, empresa: number, llaveSeguimiento: string) {\n\n    let procedimientoDTO = new ProcedimientoNovedadDTO();\n    procedimientoDTO.llave = llave;\n    procedimientoDTO.accion = accion;\n    procedimientoDTO.empresa = empresa;\n    procedimientoDTO.usuario = usuario;\n    procedimientoDTO.seguimiento = llaveSeguimiento;\n\n    const dato = this.generalService\n      .procedure(new GeneralModel('ProcedimientoNovedadDTO', 'Solicitud.procedimientoNovedad', false, procedimientoDTO)).toPromise();\n  }\n\n  traerSolicitud(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/traerSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  consultarArchivo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/consultarArchivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  iniciarSolicitud(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/iniciarSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  autorizarSolicitud(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/autorizarSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarSolicitud(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/guardarSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarSolicitud(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/legalizarSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarSolicitud(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/eliminarSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  reversarSolicitud(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/reversarSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  enviarSimualacionPorEmail(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/enviarSimualacionPorEmail`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarCaracteristicas(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/cargarCaracteristicas`, general).pipe(\n    );\n  }\n\n  cargarFormulario(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/solicitud/cargarFormulario`, general).pipe(\n    );\n  }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, firstValueFrom, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { EmpleadoModel } from '../models/EmpleadoModel';\nimport { TipoNovedadModel } from '../models/TipoNovedadModel';\nimport { TipoNovedadCons } from '../../../shared/pipes/tipoNovedadCons.pipe';\nimport { NovedadModel } from '../models/NovedadModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { SolicitudService } from './solicitud.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NovedadService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private tipoNovedadCons: TipoNovedadCons, private utilsService: UtilsService,\n    private generalService: GeneralService, private solicitudServices: SolicitudService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  novedadAutorizarDirecta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/novedadAutorizarDirecta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  autorizarAusentismoDirecta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/autorizarAusentismoDirecta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  autorizarAjusteNominaDirecta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/autorizarAjusteNominaDirecta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarSolicitudesDirecta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/actualizarSolicitudesDirecta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarNovedadesMasivoNovedad(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/legalizarNovedadesMasivoNovedad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarAusentismosMasivo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/legalizarAusentismosMasivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarNovedad(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/actualizarNovedad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarNovedadMasivo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/actualizarNovedadMasivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarNovedadDirecta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/legalizarNovedadDirecta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  autorizarNovedad(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/autorizarNovedad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  noAutorizarNovedades(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/noAutorizarNovedades`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarNovedades(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/legalizarNovedades`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  noLegalizarNovedades(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/noLegalizarNovedades`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarNovedad(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/novedad/eliminarNovedad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async terminacionProrroga(listaEmpleados: EmpleadoModel[], usuario: string, llaveProceso: string, prorroga: boolean, seguimiento: string): Promise<EmpleadoModel[]> {\n\n    let listaEmpleadoMensaje: EmpleadoModel[] = [];\n    let tipoNovedadDTO: TipoNovedadModel = new TipoNovedadModel();\n    tipoNovedadDTO.tipo = prorroga ? this.tipoNovedadCons.PRORROGA : this.tipoNovedadCons.TERMINACION_CONTRATO;\n    let objeto: GeneralModel = new GeneralModel('TipoNovedadDTO', null, false, tipoNovedadDTO);\n    let listaTipoNovedad = await this.generalService.queryForList(objeto).toPromise();\n    let novedadProrrogaDTO: NovedadModel = new NovedadModel();\n\n    for (let empleadoDTO of listaEmpleados) {\n\n      novedadProrrogaDTO.empresa = empleadoDTO.empresa;\n      novedadProrrogaDTO.contrato = empleadoDTO.contrato;\n      if (await (this.cantidadNovedadProrroga(novedadProrrogaDTO)) > 0) {\n        empleadoDTO.mensaje = \"Ya existe un proceso de prorroga del empleado o terminación contrato\";\n        listaEmpleadoMensaje.push(empleadoDTO);\n        continue;\n      }\n\n      tipoNovedadDTO = null;\n\n      for (let itemTipoNovedad of listaTipoNovedad) {\n\n        let filtroEmpleadoDTO = new EmpleadoModel();\n        filtroEmpleadoDTO.empresa = empleadoDTO.empresa;\n        filtroEmpleadoDTO.contrato = empleadoDTO.contrato;\n        filtroEmpleadoDTO.filtroCondicion = itemTipoNovedad.filtro;\n\n        let objetoFiltroEmpleado: GeneralModel = new GeneralModel('EmpleadoDTO', null, false, filtroEmpleadoDTO);\n\n        if (await firstValueFrom(this.generalService.cantidadRegistros(objetoFiltroEmpleado)) < 1) {\n          continue;\n        }\n\n        tipoNovedadDTO = itemTipoNovedad;\n        break;\n      }\n\n      if (tipoNovedadDTO == null) {\n        empleadoDTO.mensaje = \"No se encontro Tipo Novedad relacionada\";\n        listaEmpleadoMensaje.push(empleadoDTO);\n        continue;\n\n      }\n\n      let novedadDTO = new NovedadModel();\n      novedadDTO.empresa = empleadoDTO.empresa;\n      novedadDTO.contrato = empleadoDTO.contrato\n      novedadDTO.tiponovedad = tipoNovedadDTO.llave;\n      novedadDTO.fechaCancelacion = new Date(empleadoDTO.fechaTermina);\n      novedadDTO.estado = Constantes.CONSTANTE_SI;\n      novedadDTO.llaveActividad = llaveProceso;\n\n      let objetoCrear: GeneralModel = new GeneralModel('NovedadDTO', null, false, novedadDTO);\n      novedadDTO = await firstValueFrom(this.generalService.crearRegistro(objetoCrear));\n\n      await this.solicitudServices.ejecutarProcedimientoNovedad(novedadDTO.llaveTabla, 'N', usuario, novedadDTO.empresa, seguimiento);\n\n      //Tiempo de espera para ejecutar el procedimiento\n      const sleep = (m) => new Promise((r) => setTimeout(r, m));\n      await sleep(500);\n\n      let nuevaNovedadDTO = new NovedadModel();\n      let filtroNuevaNovedadDTO = new NovedadModel();\n      filtroNuevaNovedadDTO.llaveTabla = novedadDTO.llaveTabla;\n      let objetoNueva: GeneralModel = new GeneralModel('NovedadDTO', null, false, filtroNuevaNovedadDTO);\n      nuevaNovedadDTO = await firstValueFrom(this.generalService.queryForObject(objetoNueva));\n\n      if (nuevaNovedadDTO.mensaje != null) {\n        empleadoDTO.mensaje = nuevaNovedadDTO.mensaje;\n        listaEmpleadoMensaje.push(empleadoDTO);\n        nuevaNovedadDTO = await this.formatearFechas(nuevaNovedadDTO);\n        const filtroEliminar: GeneralModel = new GeneralModel('NovedadDTO', null, false, nuevaNovedadDTO);\n        await firstValueFrom(this.generalService.delete(filtroEliminar));\n      }\n\n      if (prorroga && nuevaNovedadDTO.hasta == null) {\n        empleadoDTO.mensaje = \"Fecha Terminacion no es valida\";\n        listaEmpleadoMensaje.push(empleadoDTO);\n        nuevaNovedadDTO = await this.formatearFechas(nuevaNovedadDTO);\n        const filtroEliminar: GeneralModel = new GeneralModel('NovedadDTO', null, false, nuevaNovedadDTO);\n        await firstValueFrom(this.generalService.delete(filtroEliminar));\n\n      }\n\n    }\n\n    return listaEmpleadoMensaje;\n  }\n\n  async formatearFechas(novedad: NovedadModel): Promise<NovedadModel> {\n\n    novedad.fechaAdicionado = new Date(novedad.fechaAdicionado);\n    novedad.fechaModificado = new Date(novedad.fechaModificado);\n    novedad.fechapago = new Date(novedad.fechapago);\n    novedad.fechaCancelacion = new Date(novedad.fechaCancelacion);\n    novedad.fechaDesembolso = new Date(novedad.fechaDesembolso);\n    novedad.fechaFinal = new Date(novedad.fechaFinal);\n    novedad.fechaIniciaInteres = new Date(novedad.fechaIniciaInteres);\n    novedad.fechaInicial = new Date(novedad.fechaInicial);\n    novedad.fechaPresupuestal = new Date(novedad.fechaPresupuestal);\n    novedad.desde = new Date(novedad.desde);\n    novedad.hasta = new Date(novedad.hasta);\n\n    return await novedad;\n  }\n\n  async cantidadNovedadProrroga(novedadDTO: NovedadModel): Promise<number> {\n    let objeto: GeneralModel = new GeneralModel('NovedadDTO', 'Novedad.cantidadNovedadProrroga', false, novedadDTO);\n    return await this.generalService.cantidadRegistros(objeto).toPromise();\n  }\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel } from 'general-library-union';\nimport { throwError } from 'rxjs';\nimport { UsuarioFormatoModel } from '../../actos/models/UsuarioFormatoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UsuarioFormatoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService) { }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async buscarFormatoGrupo(vinculacion: number, accion: string, formato: number, tipoFormato: String): Promise<UsuarioFormatoModel[]> {\n\n    let usuarioFormatoDTO = new UsuarioFormatoModel;\n    usuarioFormatoDTO.vinculacion = vinculacion;\n    usuarioFormatoDTO.accion = accion;\n    usuarioFormatoDTO.formato = formato;\n    usuarioFormatoDTO.tipo = tipoFormato ? tipoFormato.toString() : null;\n\n    let objetoFiltro: GeneralModel = new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.buscaFormatoGrupo', false, usuarioFormatoDTO);\n    return await this.generalService.queryForList(objetoFiltro).toPromise();\n  }\n}\n","import { Component, ElementRef, EventEmitter, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { TipoNovedadModel } from '../../../models/TipoNovedadModel';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { MomentoDocumentoModel } from '../../../../talento/models/MomentoDocumentoModel';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { EntidadEmpleadoModel } from '../../../models/EntidadEmpleadoModel';\nimport { LiquidacionperModel } from '../../../models/LiquidacionperModel';\nimport { RequisitoHojaModel } from '../../../../talento/models/RequisitoHojaModel';\nimport { NovedadDatoModel } from '../../../models/NovedadDatoModel';\nimport { PeriodoConcBaseModel } from '../../../models/PeriodoConcBaseModel';\nimport { LiquidacionPerPipe } from '../../../pipes/liquidacionper.pipe';\nimport { ArchivoModel } from '../../../../hojavida/models/ArchivoModel';\nimport { NovedadModel } from '../../../models/NovedadModel';\nimport { TipoServicioModel } from '../../../models/TipoServicioModel';\nimport { VariableModel } from '../../../models/VariableModel';\nimport { VariableFechaModel } from '../../../models/VariableFechaModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { EmpresaModel } from '../../../models/EmpresaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { HojaVidaPipe } from '../../../../../shared/pipes/hojavida.pipe';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { TipoNovedadService } from '../../../services/tiponovedad.service';\nimport { CodigoBaseCompensacionModel } from '../../../models/CodigoBaseCompensacionModel';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { TipoLiquidacionPeriodicaModel } from '../../../models/TipoLiquidacionPeriodicaModel';\nimport { EntidadModel } from '../../../models/EntidadModel';\nimport { ServicioEntidadExternaModel } from '../../../models/ServicioEntidadExternaModel';\nimport { LineaCostoModel } from '../../../models/LineaCostoModel';\nimport { MateriaModel } from '../../../models/MateriaModel';\nimport { TipoAusenciaModel } from '../../../models/TipoAusenciaModel';\nimport { TipoDocumentoModel } from '../../../../hojavida/models/TipoDocumentoModel';\nimport { LoginAccesoModel } from '../../../../sarageneral/models/LoginAccesoModel';\nimport { CentroCostoModel } from '../../../models/CentroCostoModel';\nimport { TipoNovedadCons } from '../../../../../shared/pipes/tipoNovedadCons.pipe';\nimport { PopupDocumentoNovedadComponent } from '../../../popups/popup-documento-novedad/popup-documento-novedad.component';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { NovedadService } from '../../../services/novedad.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { ItemTipoNovedadModel } from '../../../models/ItemTipoNovedadModel';\nimport { ParametrosPipe } from '../../../../../shared/pipes/parametros.pipe';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { ActividadFuenteTareaModel } from '../../../../talento/models/ActividadFuenteTareaModel';\nimport { EjecucionAutorizacionComponent } from '../../../../sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\nimport { EjecucionEncuestaComponent } from '../../../../sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { PopupSeleccionNovedadMultipleComponent } from '../../../popups/popup-seleccion-novedad-multiple/popup-seleccion-novedad-multiple.component';\nimport { PopupSeguimientoComponent } from '../../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputHelperHojaVidaComponent as InputHelperHojaVidaComponent_1 } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputHelperSeleccionSucursalEntidadComponent } from '../../../../../shared/componentes/input-helper-seleccion-sucursal-entidad/input-helper-seleccion-sucursal-entidad.component';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { TurnoModel } from '../../../../talento/models/TurnoModel';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { HttpEventType } from '@angular/common/http';\nimport { HojaVidaService } from '../../../../hojavida/services/hojavida.service';\nimport { ArchivoAnexoHojaVidaService } from '../../../../hojavida/services/archivo-anexo-hoja-vida.service';\nimport { ActoTrasladoComponent } from '../../../../actos/pages/actos-administrativos/acto-traslado/acto-traslado.component'\nimport { ActoCambioPuestoComponent } from '../../../../actos/pages/actos-administrativos/acto-cambio-puesto/acto-cambio-puesto.component';\nimport { ActosAusenciaTerminacionComponent } from '../../../../actos/pages/actos-administrativos/actos-ausencia-terminacion/actos-ausencia-terminacion.component';\nimport { FormatoModel } from '../../../../actos/models/FormatoModel';\nimport { UsuarioFormatoService } from '../../../services/usuario-formato.service';\nimport { UsuarioFormatoModel } from '../../../../actos/models/UsuarioFormatoModel';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\n\n@Component({\n    selector: 'app-mantenimiento-detalle-novedad',\n    templateUrl: './mantenimiento-detalle-novedad.component.html',\n    styleUrls: ['./mantenimiento-detalle-novedad.component.scss'],\n    standalone: true,\n    imports: [ConfirmDialogModule, PrimeTemplate, ButtonDirective, NgIf, CabeceraEmpleadoComponent, ProgressBarModule, FormsModule, ReactiveFormsModule, InputTextModule, Ripple, TableModule, TemplateTablaVaciaComponent, CalendarModule, InputNumberModule, DropdownModule, InputHelperSeleccionZonaCentroComponent, FieldsetModule, InputHelperSeleccionSucursalEntidadComponent, InputHelperHojaVidaComponent_1, InputTextareaModule, CheckboxModule, SplitButtonModule, EjecucionAutorizacionComponent, EjecucionEncuestaComponent, InputHelperEmpleadoBotonComponent, PopupSeguimientoComponent, PopupSeleccionNovedadMultipleComponent, PopupDocumentoNovedadComponent, DatePipe, TranslateModule, GeneralPipe, ListaConstantesPipe, FiltroGeneralComponent, FileUploadModule, LiquidacionPerPipe, ActoTrasladoComponent, ActoCambioPuestoComponent, ActosAusenciaTerminacionComponent]\n})\nexport class MantenimientoDetalleNovedadComponent implements OnInit, OnChanges {\n\n  public encuesta: boolean;\n\tpublic procesoAutorizacion: boolean;\n\tpublic puedeActualizar: boolean;\n\tpublic desabilitarCampos: boolean;\n\tpublic llaveNovedadHijo: string;\n\tpublic filtroCondicionNovedad: string;\n\tpublic estado: string;\n\tpublic parametroBusqueda: string;\n\tpublic formValidacion: string;\n\tpublic tareaOrigen: string;\n\tpublic controles: Map<string, boolean>;\n\tpublic tipoNovedadHija: TipoNovedadModel;\n\tpublic empleadoDTO: EmpleadoModel;\n\tpublic listadoNovedades: TipoNovedadModel[];\n\tpublic novedadesBase: TipoNovedadModel[];\n\tpublic momentoDocumentoDTO: MomentoDocumentoModel;\n\tpublic listaDocumentoTipoNovedad: MomentoDocumentoModel[] = [];\n\n\tpublic actoTraslado: boolean;\n\tpublic actoCambioPuesto: boolean;\n\tpublic aceptoTerminos: boolean;\n\tpublic actoRetiro: boolean;\n\tpublic parametroFiltro: string;\n\tpublic parametroHijos: string;\n\n  //** PARAMETROS DE this */\n  public listaHora: any[];\n\tpublic listaMinutos: any[];\n\tpublic listaTipoNovedad: any[];\n\tpublic listaTipoServicio: any[];\n\tpublic listaServicio: any[];\n\tpublic listaEntidad: any[];\n\tpublic listaPrestamos: any[];\n\tpublic listaAccionesPrestamo: any[];\n\tpublic listaMateria: any[];\n\tpublic listaLineaCosto: any[];\n\tpublic listaFormaDesembolso: any[];\n\tpublic listaMotivoRetiro: any[];\n\tpublic listaMotivoLiquidacion: any[];\n\tpublic listaCiclos: any[];\n\tpublic listatipoEmbargo: any[];\n\tpublic listatipoDocumento: any[];\n\tpublic listaTurno: any[];\n\n\tpublic listaCampos: DatoorganizacionModel[];\n\tpublic listadoTipoNovedadHijos: TipoNovedadModel[];\n\tpublic listaEntidadServicio: EntidadEmpleadoModel[] = [];\n\tpublic listaLiquidacionPeriodica: LiquidacionperModel[];\n\tpublic listaRequisitoHoja: RequisitoHojaModel[];\n\tpublic listaRequisitoHojaBorrar: RequisitoHojaModel[];\n\n\tpublic listaNovedadDato: NovedadDatoModel[];\n\tpublic listaBorrarNovedadDato: NovedadDatoModel[];\n\tpublic listaBasePrestamo: PeriodoConcBaseModel[];\n\tpublic listaBorrarBasePrestamo: PeriodoConcBaseModel[];\n\tpublic mapaTipo;\n\n\tpublic prestamoCancelar: NovedadDatoModel;\n\n\tpublic hora: string;\n\tpublic minutos: string;\n\tpublic descTipoNovedadPadre: string;\n\tpublic modo: string;\n\tpublic llaveActividad: string;\n\tpublic usuario: string;\n\tpublic rol: string;\n\n\tpublic nroDocConfigurado: number;\n\n\tpublic nuevo: boolean;\n\tpublic mostrar: boolean;\n\tpublic modificar: boolean;\n\tpublic sinBPM: boolean;\n\tpublic mostrartipoServicoAlterno: boolean;\n\tpublic mostrarAplicarValidacionDoc: boolean;\n\tpublic unicoAdjunto: ArchivoModel = new ArchivoModel();\n\tpublic mostrarTablaBases: boolean;\n\n\t//public empleadoDTO: EmpleadoModel = new EmpleadoModel();\n\tpublic novedadDTO: NovedadModel = new NovedadModel();\n\tpublic tipoNovedadDTO: TipoNovedadModel;\n\tpublic tipoServico: TipoServicioModel = new TipoServicioModel();\n\tpublic variableDTO: VariableModel;\n\tpublic variableFechaDTO: VariableFechaModel;\n\tpublic seguimiento: boolean;\n\n\tpublic mapaCampos: Map<string, boolean> = new Map<string, boolean>();\n\tpublic mapaEstadoDoc: any[];\n\n\t//public tareaOrigen: string;\n\tpublic codNovedadesHijas: string;\n\tpublic codNovedadesPadre: string;\n\n\tpublic empresaDTO: EmpresaModel = new EmpresaModel();\n\tpublic mostrarDetalle: boolean;\n\tpublic mostrarPopupEmpleado: boolean;\n\tpublic clickGuardar: boolean = false;\n\n\t@ViewChild(PopupDocumentoNovedadComponent) popupDocumentoNovedad: PopupDocumentoNovedadComponent;\n\t@ViewChild(InputHelperHojaVidaComponent) inputHoja: InputHelperHojaVidaComponent;\n\tpublic mostrarPopupSeguimiento: boolean;\n\tpublic llaveSeguimiento: string;\n\n\t@Output() public regresar = new EventEmitter;\n\t@Output() public regresarMasivo = new EventEmitter;\n\tpublic mostrarPopupSeleccionNovedadMultiple: boolean = false;\n\tpublic renderNovedadMultiple: boolean = false;\n\tpublic itemsBotonAcciones: MenuItem[] = [];\n\tpublic ocultarBotones: boolean = false;\n\n\t@ViewChild('inputprueba' ) listaEntidadTabla: ElementRef;\n\n\tpublic paginator = {\n\t\trows: 10,\n\t\ttotalRecords: 0\n\t}\n\tpublic paginadorCargado: boolean = false;\n\tpublic filters = [];\n\t@ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n\t@ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\tpublic archivoSeleccionadoAnexo: File;\n\n\tpublic vistaVisualizarDetalle: string;\n\tpublic vistaVisualizarBasePrestamo: string;\n\tpublic nuevoRegistroPeriodoConBase: PeriodoConcBaseModel = new PeriodoConcBaseModel();\n\tpublic clickGuardarBasePrestamo: boolean;\n\tpublic mapNewConceptoDown;\n  \tpublic mapNewConsolidadorDown;\n\tpublic clickGuardarPrestamo: boolean;\n\tpublic habilitaCampo: boolean;\n\t@ViewChild(ActoTrasladoComponent) actoTrasladoComponent: ActoTrasladoComponent;\n\t@ViewChild(ActoCambioPuestoComponent) actoCambioPuestoComponent: ActoCambioPuestoComponent;\n\t@ViewChild(ActosAusenciaTerminacionComponent) actoTerminacionComponent: ActosAusenciaTerminacionComponent;\n\n\tconstructor(public liquidacionPerPipe: LiquidacionPerPipe,\n\t\t\t\tprivate generalService: GeneralService,\n\t\t\t\tprivate authService: AuthService,\n\t\t\t\tprivate parametrosPipe: ParametrosPipe,\n\t\t\t\tprivate hojaVidaPipe: HojaVidaPipe,\n\t\t\t\tprivate tipoNovedadService: TipoNovedadService,\n\t\t\t\tprivate tipoNovedadPipe: TipoNovedadCons,\n\t\t\t\tprivate generalPipe: GeneralPipe,\n\t\t\t\tprivate translateService: TranslateService,\n\t\t\t\tpublic controlFuncionService: CargarControlFuncionalidadService,\n\t\t\t\tpublic novedadPipe: NovedadPipe,\n\t\t\t\tpublic utilsService: UtilsService,\n\t\t\t\tprivate novedadService: NovedadService,\n\t\t\t\tprivate workFlowPipe: WorkflowPipe,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tprivate datoOrganizacionPipe: DatoOrganizacionPipe,\n\t\t\t\tprivate confirmationService: ConfirmationService,\n\t\t\t\tprivate cargarArchivo: CargarArchivosService,\n\t\t\t\tprivate encriptadorBasico: EncriptadoBasicoService,\n\t\t\t\tprivate hojaVidaService: HojaVidaService,\n\t\t\t\tprivate archivoAnexoHojaVidaService: ArchivoAnexoHojaVidaService,\n\t\t\t\tprivate menuService: MenuService,\n\t\t\t\tprivate parametroFormatoPipe: ParametroFormatoPipe,\n\t\t\t\tprivate usuarioFormatoService: UsuarioFormatoService, \n\t\t\t\tprivate listaConstantesPipe: ListaConstantesPipe) { }\n\n\tngOnInit(): void {\t\n\t\tthis.mapaEstadoDoc = this.listaConstantesPipe.CUMPLIDO_REQ;\n\t\tthis.mapaTipo = this.liquidacionPerPipe.TIPO;\n\t\tthis.listaRequisitoHoja = [];\n\t\tthis.listaRequisitoHojaBorrar = [];\n\t\tthis.sinBPM = false;\n\t\tthis.filters = [\n\t\t\t{\n\t\t\t  field: 'comodinBusqueda',\n\t\t\t  header: this.translateService.instant('busqueda'),\n\t\t\t  matchMode: 'equal',\n\t\t\t}\n\t\t  ]\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\t//await this.cargarAccionesBotones();\n\t}\n\n\tgetControl(control: string): boolean {\n\t\tif (!control){\n\t\t\treturn false;\n\t\t}\n\t\tvar getter = this.controles.get(control);\n\t\tif (getter === undefined){\n\t\t\treturn false;\n\t\t}\n\t\treturn getter;\n\t}\n\n\tasync cargarAccionesBotones() {\n\t\tthis.itemsBotonAcciones = [\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_guardar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t  \tvisible: this.isVerBtnGuardar(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.crearAction();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_legalizardirecto'), \n\t\t\t  \ticon: \"glyphicons glyphicons-pencil\",\n\t\t\t  \tvisible: this.getControl('legalizardirecto') && this.isVerBtnAutorizar(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.legalizarDirecto();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_autorizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-check\",\n\t\t\t  \tvisible: this.getControl('autorizar') && this.isVerBtnAutorizar(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.autorizarNovedad();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_noautorizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-remove\",\n\t\t\t  \tvisible: this.getControl('autorizar') && this.isVerBtnAutorizar(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.noAutorizarNovedad();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_legalizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-pencil\",\n\t\t\t  \tvisible: this.getControl('legalizar') && this.isVerBtnLegalizar(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.legalizarNovedad();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('nolegalizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-remove\",\n\t\t\t  \tvisible: this.getControl('legalizar') && this.isVerBtnLegalizar(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.nolegalizarNovedad();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_cambiardato'), \n\t\t\t  \ticon: \"glyphicons glyphicons-random\",\n\t\t\t  \tvisible: this.getControl('cambioDato') && this.isVerBtnCambiarDatos(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.cambiarDatos();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('cambiardatosinbpm'), \n\t\t\t  \ticon: \"glyphicons glyphicons-refresh\",\n\t\t\t  \tvisible: this.controlFuncionService.getControlFuncionalidad('ingnov:cambioDatoSinBPM') && this.isVerBtnCambiarDatos(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.cambiarDatosNoBPM();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_eliminar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-bin\",\n\t\t\t  \tvisible: this.getControl('eliminar') && !this.isNovedadNomina() && this.isVerBtnEliminar(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.eliminarAction();\n\t\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t];\n\t\tawait this.utilsService.sleep(500);\n\t\tif (this.itemsBotonAcciones.filter(data => data.visible).length <= 0 ) {\n\t\t\tthis.ocultarBotones = true;\n\t\t}\n\t}\n\n\tasync crearAction(){\n\t\ttry {\n\t\t\tthis.clickGuardar = true;\n\t\t\tif (!this.validar()){\n\t\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.isEsPrestamo() && (this.novedadDTO.empresa == undefined || this.novedadDTO.empresa == null)){\n\t\t\t\tthis.novedadDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t} \n\t\t\tvar llaveSeguimiento = null;\n\t\t\tif (this.seguimiento){\n\t\t\t\tllaveSeguimiento = this.utilsService.generarLlave();\n\t\t\t}\n\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\tvar data = await this.novedadService.actualizarNovedad({\n\t\t\t\tnuevo: this.nuevo,\n\t\t\t\tsinBPM: this.sinBPM ? this.sinBPM : false,\n\t\t\t\templeadoDTO: this.empleadoDTO,\n\t\t\t\tnovedadDTO: this.novedadDTO,\n\t\t\t\tusuario: this.usuario,\n\t\t\t\tllaveSeguimiento: llaveSeguimiento,\n\t\t\t\tlistaRequisitoHoja: this.listaRequisitoHoja,\n\t\t\t\tlistaNovedadDato: this.listaNovedadDato,\n\t\t\t\tlistaBorrarNovedadDato: this.listaBorrarNovedadDato,\n\t\t\t\tlistaBasePrestamo: this.listaBasePrestamo,\n\t\t\t\tlistaBorrarBasePrestamo: this.listaBorrarBasePrestamo\n\t\t\t}).toPromise();\n\t\t\tthis.listaBorrarNovedadDato = [];\n\t\t\tthis.nroDocConfigurado = data.nroDocConfigurado\n\t\t\tthis.nuevo = data.nuevo\n\t\t\tthis.novedadDTO = data.novedadDTO\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO)\n\t\t\tthis.novedadDTO.tiponovedad = this.tipoNovedadDTO.llave;\n\t\t\tthis.novedadDTO.tipoNovedadDescripcion = this.tipoNovedadDTO.descripcion;\n\t\t\tthis.novedadDTO.mensajeTipoNovedad = this.tipoNovedadDTO.mensaje;\n\t\t\tthis.novedadDTO.tipoTipoNovedad = this.tipoNovedadDTO.tipo;\n\t\t\tawait this.guardarAnexo();\n\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\t\tthis.sinBPM = false;\n\t\t\tawait this.ControlBotones();\n\t\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t\t\tif (llaveSeguimiento != null){\n\t\t\t\tthis.llaveSeguimiento = llaveSeguimiento;\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t}\n\t\t\tthis.modificar = false;\n\t\t} catch (error) {\n\t\t\tif (this.novedadDTO.llaveTabla) {\n\t\t\t\tthis.nuevo = false;\n\t\t\t\tthis.novedadDTO = await this.generalService.queryForObject(new GeneralModel('NovedadDTO', null, false, {llaveTabla: this.novedadDTO.llaveTabla})).toPromise()\n\t\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\t\tawait this.ControlBotones();\n\t\t\t\tawait this.cargarAccionesBotones();\n\t\t\t}\n\t\t}\n\t}\n\n\tasync legalizarDirecto(){\n\t\tif (this.utilsService.isNotBlank(this.novedadDTO.mensaje)) {\n\t\t\tthis.notificacionesService.showInfo('La novedad no se puede legalizar debido a: ' + this.novedadDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\t\tif (this.validar()) {\n\t\t\tif (this.novedadDTO.lineacosto == null || this.novedadDTO.lineacosto == undefined || this.novedadDTO.lineacosto == '') {\n\t\t\t\tthis.novedadDTO.lineacosto = '.';\n\t\t\t}\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\tvar data  = await this.novedadService.legalizarNovedadDirecta({\n\t\t\t\tnovedadDTO: this.novedadDTO,\n\t\t\t\tusuario: this.usuario\n\t\t\t}).toPromise();\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(data);\n\n\t\t\tif (this.utilsService.isNotBlank(this.novedadDTO.mensaje)) {\n\t\t\t\tthis.notificacionesService.showInfo(this.novedadDTO.mensaje);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.ControlBotones();\n\t\t\tthis.notificacionesService.showInfo('Se legalizó la novedad');\n\t\t\n\t\t}\n\t}\n\n\tasync autorizarNovedad() {\t\t \n\t\tif (this.utilsService.isNotBlank(this.novedadDTO.mensaje)) {\n\t\t\tthis.notificacionesService.showInfo('La novedad no se puede autorizar debido a: ' + this.novedadDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\t\tif (this.validar()) {\n\t\t\tif (this.novedadDTO.lineacosto == null || this.novedadDTO.lineacosto == undefined || this.novedadDTO.lineacosto == '') {\n\t\t\t\tthis.novedadDTO.lineacosto = '.';\n\t\t\t}\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\tvar data = await this.novedadService.autorizarNovedad(this.novedadDTO).toPromise();\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(data);\n\t\t\tthis.notificacionesService.showInfo('Se autorizó la novedad');\n\t\t\tawait this.ControlBotones();\n\t\t}\n\t}\n\n\tasync noAutorizarNovedad(){\n\t\tif (this.validar()) {\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\tvar data = await this.novedadService.noAutorizarNovedades(this.novedadDTO).toPromise()\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(data);\n\t\t\tthis.notificacionesService.showInfo('No se ha autorizado la novedad');\n\t\t\tawait this.ControlBotones();\n\t\t}\n\t}\n\n\tasync legalizarNovedad(){\n\t\tif (this.utilsService.isNotBlank(this.novedadDTO.mensaje)) {\n\t\t\tthis.notificacionesService.showInfo('La novedad no se puede legalizar debido a:' + this.novedadDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\t\tif (this.validar()) {\n\t\t\tif (this.novedadDTO.lineacosto == null || this.novedadDTO.lineacosto == undefined || this.novedadDTO.lineacosto == '') {\n\t\t\t\tthis.novedadDTO.lineacosto = '.';\n\t\t\t}\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\tlet data = await this.novedadService.legalizarNovedades(this.novedadDTO).toPromise();\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(data);\n\t\t\tthis.notificacionesService.showInfo('Se legalizó la novedad');\n\t\t\tawait this.ControlBotones();\n\t\t}\n\t}\n\n\tasync nolegalizarNovedad(){\n\t\tif (this.validar()) {\n\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\tvar data = this.novedadService.noLegalizarNovedades(this.novedadDTO).toPromise()\n\t\t\tthis.notificacionesService.showInfo('No se ha legalizado la novedad');\n\t\t\tawait this.ControlBotones();\n\t\t}\n\t}\n\n\tasync cambiarDatos(){\n\t\tthis.seguimiento = false;\n\t\tthis.novedadDTO.estado = this.novedadPipe.NUEVA;\n\t\tthis.modificar = true;\n\t\tthis.sinBPM = false;\n\t\tawait this.ControlBotones();\n\t}\n\n\tasync cambiarDatosNoBPM() {\n\t\tthis.seguimiento = false;\n\t\tthis.modificar = true;\n\t\tthis.sinBPM = true;\n\t\tawait this.ControlBotones();\n\t}\n\n\tasync eliminarAction(){\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tkey: 'eliminar',\n\t\t\tmessage:  this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\taccept: () => {\n\t\t\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t\t\t\tthis.novedadService.eliminarNovedad(this.novedadDTO).subscribe(data => {\n\t\t\t\t\tthis.cerrarAction();\n\t\t\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\t\t});\n\t\t\t},\n\t\t\treject: () => {\n\t\t\t}\n\t\t});\n\t}\n\n\tcerrarAction(){\n\t\tthis.regresar.emit();\n\t}\n\n\tregresarActos(event){\n\t\tthis.regresar.emit();\n\t}\n\n\tregresarPopupSeguimiento(){\n\t\tthis.mostrarPopupSeguimiento = false;\n\t}\n\n\tregresarPopupSeleccionNovedadMultiple(){\n\t\tthis.renderNovedadMultiple = false;\n\t\tthis.mostrarPopupSeleccionNovedadMultiple = false;\n\t}\n\tvalidar(){\n\t\tvar validador = true;\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO VARIABLE\n\t\t// EMPLEADO ----------------------- //\n\t\tif (this.isEsVariableEmpleado() || this.isEsVariableFechaEmpleado()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.desde);\n\t\t\tif (this.isEsVariableEmpleado()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.ciclo);\n\t\t\t}\n\t\t\tif (this.isRenderValor() || this.isValor()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t\t} else if (this.isRenderFecha()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.dato);\n\t\t\t}\n\t\t\tif (this.novedadDTO.hasta != null || this.novedadDTO.hasta != undefined){\n\t\t\t\tif (this.novedadDTO.desde != null && this.novedadDTO.hasta != null && this.novedadDTO.desde > this.novedadDTO.hasta){\n\t\t\t\t\tthis.notificacionesService.showWarning('La fecha ' + this.novedadDTO.hasta + ' debe ser menor a la fecha ' + this.novedadDTO.desde);\n\t\t\t\t\tvalidador = validador && false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO CONCEPTO\n\t\t// EMPLEADO ----------------------- //\n\t\telse if (this.isEsConceptoEmpleado()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.desde);\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.ciclo);\n\t\t\tif (this.novedadDTO.hasta != null || this.novedadDTO.hasta != undefined){\n\t\t\t\tif (this.novedadDTO.desde != null && this.novedadDTO.hasta != null && this.novedadDTO.desde > this.novedadDTO.hasta){\n\t\t\t\t\tthis.notificacionesService.showWarning('La fecha ' + this.novedadDTO.hasta + ' debe ser menor a la fecha ' + this.novedadDTO.desde);\n\t\t\t\t\tvalidador = validador && false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO VARIABLE\n\t\t// PERIODO ----------------------- //\n\t\telse if (this.isEsVariablePeriodo()) {\n\t\t\tif (this.isRenderValor() || this.isValor()) {\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t\t} else if (this.isRenderFecha()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.dato);\n\t\t\t}\t\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO CONCEPTO\n\t\t// PERIODO ----------------------- //\n\t\telse if (this.isEsConceptoPeriodo()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t}\n\t\t//TIPO TURNO\n\t\telse if (this.esCambioTurno()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.desde);\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.concepto);\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO VARIABLE\n\t\t// PERIODO FECHA ----------------------- //\n\t\telse if (this.isEsVariableFechaPeriodo()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t\tif (this.isRenderFecha()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.dato);\n\t\t\t} else if (this.isCantidad()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.cantidad);\n\t\t\t}\n\t\t\tif (this.novedadDTO.materia == null || this.novedadDTO.materia == undefined){\n\t\t\t\tthis.novedadDTO.materia = '.';\n\t\t\t}\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO EMBARGO\n\t\t// ----------------------- //\n\t\telse if (this.isEsEmbargo()) {\n\t\t\tif (this.isPrestamoNuevo()) {\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.montoInicial);\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.interes);\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.cuota);\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.desde);\n\t\t\t} else if (this.isPrestamoCancelacion()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.fechaCancelacion);\n\t\t\t} else {\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.desde);\n\t\t\t}\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO LIQUIDACION\n\t\t// PERIODICA ----------------------- //\n\t\telse if (this.isEsPrestamo()) {\n\t\t\tif (this.isPrestamoNuevo()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.montoInicial);\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.desde);\n\t\t\t\tif (this.mapaCampos.get('valorPrimerCuota')){\n\t\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.primerCuota);\n\t\t\t\t}\n\t\t\t\tif (this.mapaCampos.get('valorUltimaCuota')){\n\t\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.ultimaCuota);\n\t\t\t\t}\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.valor);\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.cuota);\n\t\t\t}\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO CAMBIO ENTIDAD\n\t\t// ----------------------- //\n\t\telse if (this.isEsCambioEntidad()) {\n\t\t\tif (this.isNuevaCambioEntidad()) {\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.desde);\n\t\t\t}\n\t\t\tif (this.isBorrarCambioEntidad()){\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.hasta);\n\t\t\t}\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.entidad);\n\t\t\tif (this.novedadDTO.hasta != null || this.novedadDTO.hasta != undefined){\n\t\t\t\tif (this.novedadDTO.desde != null && this.novedadDTO.hasta != null && this.novedadDTO.desde > this.novedadDTO.hasta){\n\t\t\t\t\tthis.notificacionesService.showWarning('La fecha ' + this.novedadDTO.hasta + ' debe ser menor a la fecha ' + this.novedadDTO.desde);\n\t\t\t\t\tvalidador = validador && false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE TIPO TERMINACION\n\t\t// CONTRATO ----------------------- //\n\t\telse if (this.isEsTerminacionContrato()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.fechaCancelacion);\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.motivoLiquidacion);\n\t\t}\n\t\t// ----------------------- VALIDAR CAMPOS DEL BLOQUE PRORROGA\n\t\t// CONTRATO----------------------- //\n\t\telse if (this.isEsProrroga()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.novedadDTO.fechaCancelacion);\n\t\t}\n\n\t\tif (this.isMostrarTerminos()){\n\t\t\tif (!this.aceptoTerminos){\n\t\t\t\tthis.notificacionesService.showWarning(this.translateService.instant('aceptaterminos'))\n\t\t\t\tvalidador = false;\n\t\t\t}\n\t\t}\n\t\t//validacion documento novedad\n\t\tvar validacionAnexo = this.validarAnexoObligatorio();\n\t\tvalidador = validador && validacionAnexo;\n\t\treturn validador;\n\t}\n\n\tvalidarAnexoObligatorio(): boolean {\n\t\tvar retorno = true;\n\t\tfor(var momentoDocumentoDTO of this.listaDocumentoTipoNovedad) {\n\t\t\tif ('N' == momentoDocumentoDTO.opcional) {\n\t\t\t\tif (momentoDocumentoDTO.requisitoHojaDTO?.llave == null || momentoDocumentoDTO.requisitoHojaDTO?.llave == undefined) {\n\t\t\t\t\tthis.notificacionesService.showWarning('Debe incluir el anexo: ' + momentoDocumentoDTO.nombreTipoDocumento);\n\t\t\t\t\tretorno = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn retorno\n\t}\n\n\tcargarListaNovedades(event){\n\t\tvar listaBase: TipoNovedadModel[] = this.novedadesBase;\n\t\t//var cantidad = event.rows\n\t\t//var registroInicial = event.first\n\t\tif ( event?.comodinBusqueda ) {\n\t\t\tvar parametroBusqueda: string = event?.comodinBusqueda.value\n\t\t\tlistaBase = [];\n\t\t\tthis.novedadesBase.forEach(unTipoNovedad => {\n\t\t\t\tunTipoNovedad.descripcion = unTipoNovedad.descripcion ? unTipoNovedad.descripcion : '';\n\t\t\t\tif ( unTipoNovedad.descripcion.toLowerCase().includes(parametroBusqueda.toLowerCase())) {\n\t\t\t\t\tlistaBase.push(unTipoNovedad);\n\t\t\t\t}\n\t\t\t\telse if ( unTipoNovedad.descripcionPadre!=null && unTipoNovedad.descripcionPadre.toLowerCase().includes(parametroBusqueda.toLowerCase())) {\n\t\t\t\t\tlistaBase.push(unTipoNovedad);\n\t\t\t\t}\t\n\t\t\t})\n\t\t}\n\t\tthis.paginator.totalRecords = listaBase.length;\n\t\tthis.listadoNovedades = listaBase;\n\t\tthis.paginadorCargado = true;\n\t\t/*if ( listaBase.length == 0) {\n\t\t\tthis.listadoNovedades = listaBase;\n\t\t\treturn listaBase;\n\t\t}\n\t\tif (listaBase.length <= cantidad) {\n\t\t\tregistroInicial = 0;\n\t\t}\n\t\tif (listaBase.length < registroInicial + cantidad) {\n\t\t\tthis.listadoNovedades = listaBase.slice(registroInicial, listaBase.length);\n\t\t\treturn listaBase.slice(registroInicial, listaBase.length);\n\t\t} else {\n\t\t\tthis.listadoNovedades = listaBase.slice(registroInicial, registroInicial + cantidad);\n\t\t\treturn listaBase.slice(registroInicial, registroInicial + cantidad);\n\t\t}*/\n\t}\n\n\tasync seleccionarHijoAction(event){\n\t\tthis.actoTraslado = false;\n\t\tthis.actoCambioPuesto = false;\n\t\tthis.sinBPM = false;\n\n\t\tif (!this.modificar) {\n\t\t\tthis.notificacionesService.showWarning('No se puede modificar');\n\t\t}\n\t\tthis.tipoNovedadHija = event.data;\n\t\tthis.llaveNovedadHijo = this.tipoNovedadHija.llave;\n\t\tthis.limpiarDescripcionesNovedadMultiple();\n\t\tif (this.tipoNovedadPipe.TIPO_NOVEDAD_UNICO == this.tipoNovedadHija.tipoRelacion) {\n\t\t\tthis.setRelacionNovedadUnica(this.tipoNovedadHija);\n\t\t\tawait this.crearNovedad();\n\t\t} else if (this.tipoNovedadPipe.TIPO_NOVEDAD_MULTIPLE == this.tipoNovedadHija.tipoRelacion) {\n\t\t\tthis.renderNovedadMultiple = true;\n\t\t\tthis.mostrarPopupSeleccionNovedadMultiple = true;\n\t\t} else if (this.tipoNovedadPipe.TIPO_NOVEDAD_MULTIPLE_MASIVO == this.tipoNovedadHija.tipoRelacion) {\n\t\t\tthis.tipoNovedadDTO = this.tipoNovedadHija;\n\t\t\tif (this.isNovedadMasivaSoportada()) {\n\t\t\t\tif (this.empleadoDTO != null) {\n\t\t\t\t\tawait this.setEmpleadoPopup(this.empleadoDTO);\n\t\t\t\t} else {\n\t\t\t\t\tthis.verPopupEmpleadoAction();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.notificacionesService.showWarning('El tipo de relacion Ingreso Masivo Multiple de la novedad, no esta habilitado');\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.notificacionesService.showWarning('Tipo novedad sin tipo de relación');\n\t\t}\n\t}\n\n\tsetRelacionNovedad(itemRelacion: ItemTipoNovedadModel) {\n\t\tthis.setRelacionNovedadMultiple(itemRelacion, this.tipoNovedadHija);\n\t\tthis.crearNovedad().then(data => {});\n\t}\n\n\tsetRelacionNovedadMultiple(itemRelacion: ItemTipoNovedadModel, tipoNovedad: TipoNovedadModel) {\n\t\tif(this.tipoNovedadPipe.VARIABLE_EMPLEADO == tipoNovedad.tipo || this.tipoNovedadPipe.VARIABLE_PERIODO == tipoNovedad.tipo){\n\t\t\tthis.novedadDTO.variable = itemRelacion.variable;\n\t\t\tthis.novedadDTO.descripcionVariable = itemRelacion.descripcionVariable;\n\t\t}else if(this.tipoNovedadPipe.VARIABLE_PERIODO_FECHAS == tipoNovedad.tipo || this.tipoNovedadPipe.VARIABLE_EMPLEADO_FECHAS == tipoNovedad.tipo){\n\t\t\tthis.cargarCamposFormularioVariableFecha(itemRelacion.variableFecha).then(data => {\n\t\t\t\tthis.novedadDTO.variableFecha = itemRelacion.variableFecha;\n\t\t\t\tthis.novedadDTO.codigoVariableFecha = itemRelacion.codigoVariableFecha;\n\t\t\t\tthis.novedadDTO.descripcionVariableFecha = itemRelacion.descripcionVariableFecha;\n\t\t\t});\n\t\t}else if (this.tipoNovedadPipe.CONCEPTO_EMPLEADO == tipoNovedad.tipo || this.tipoNovedadPipe.CONCEPTO_PERIODO == tipoNovedad.tipo){\n\t\t\tthis.novedadDTO.concepto = itemRelacion.concepto;\n\t\t\tthis.novedadDTO.descripcionConcepto = itemRelacion.descripcionConcepto;\n\t\t}else if(this.tipoNovedadPipe.EMBARGO == tipoNovedad.tipo || this.tipoNovedadPipe.LIQUIDACION_PERIODICA == tipoNovedad.tipo){\n\t\t\tthis.novedadDTO.liquidacionPeriodica = itemRelacion.tipoLiquidacionPeriodica;\n\t\t\tthis.novedadDTO.descripcionLiquidaPeriodica = itemRelacion.descripcionLiquidaPeriodica;\n\t\t}\n\t}\n\n\tasync crearNovedad() {\n\t\tif (this.empleadoDTO != null) {\n\t\t\tvar msj: string = await this.seleccionarHijoAction2(this.llaveNovedadHijo);\n\t\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t\t\tif (this.utilsService.isNotBlank(msj) && 'NOENT' == msj) {\n\t\t\t\tthis.notificacionesService.showWarning('No hay entidades relacionadas al empleado');\n\t\t\t}\n\t\t\tif (this.utilsService.isNotBlank(msj) && 'NOLIP' == msj) {\n\t\t\t\tthis.notificacionesService.showWarning('No hay liquidacion periodicas relacionadas al empleado');\n\t\t\t}\n\t\t\tif (this.isEsTipoCambioEmpleado()) {\n\t\t\t\tawait this.seleccionarFormato(this.tipoNovedadDTO.formatoActo);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.verPopupEmpleadoAction();\n\t\t}\n\t}\n\n\tverPopupEmpleadoAction(){\n\t\tthis.mostrarPopupEmpleado = true;\n\t}\n\n\tasync setEmpleadoPopup(empleadoDTO: EmpleadoModel){\n\t\tthis.mostrarPopupEmpleado = false;\n\t\tif (this.novedadPipe.ORIGEN_APLICAR_NOVEDAD == this.tareaOrigen) {\n\t\t\tvar data = await this.generalService.queryForObject(new GeneralModel('LoginAccesoDTO', null, false, {\n\t\t\t\tlogin: this.authService.getTokenKey('usuario'),\n\t\t\t\ttipo: 'TN',\n\t\t\t\tllaveReferencia: this.tipoNovedadHija.llave,\n\t\t\t\torigen: 'U'\n\t\t\t})).toPromise();\n\t\t\tvar loginAccesoDTO: LoginAccesoModel = data;\n\t\t\tthis.filtroCondicionNovedad = (loginAccesoDTO != null && this.utilsService.isNotBlank(loginAccesoDTO.filtroCondicion)) ? loginAccesoDTO.filtroCondicion : '';\n\t\t\tif (this.utilsService.isBlank(this.filtroCondicionNovedad)  && this.utilsService.isBlank(this.tipoNovedadHija.filtro)) {\n\t\t\t\tthis.filtroCondicionNovedad = null;\n\t\t\t} else if (this.utilsService.isBlank(this.filtroCondicionNovedad) && this.utilsService.isNotBlank(this.tipoNovedadHija.filtro)) {\n\t\t\t\tthis.filtroCondicionNovedad = this.tipoNovedadHija.filtro;\n\t\t\t} else if (this.utilsService.isNotBlank(this.filtroCondicionNovedad) && this.utilsService.isNotBlank(this.tipoNovedadHija.filtro)) {\n\t\t\t\tthis.filtroCondicionNovedad += ' and ' + this.tipoNovedadHija.filtro;\n\t\t\t}\n\t\t\tvar data2 = await this.generalService.cantidadRegistros(new GeneralModel('FiltroEmpleadoDTO', null, false, {\n\t\t\t\thojaVida: empleadoDTO.cedula,\n\t\t\t\tempresa: empleadoDTO.empresa,\n\t\t\t\tcontrato: empleadoDTO.contrato,\n\t\t\t\tfiltro: this.filtroCondicionNovedad\n\t\t\t})).toPromise();\n\t\t\tvar cantidad: number = data2;\n\t\t\tif (cantidad <= 0) {\n\t\t\t\tthis.notificacionesService.showWarning('EL empleado seleccionado no cumple las condiciones');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\t\t\n\t\tif (this.tipoNovedadHija != null && this.tipoNovedadPipe.TIPO_NOVEDAD_MULTIPLE_MASIVO == this.tipoNovedadHija.tipoRelacion) {\n\t\t\tthis.mostrarPanelNovedadMasiva();\n\t\t\t//getBean(RegistroNovedadMasivaBean.class).init(tipoNovedadHija.llave, empleado, true, null, formValidacion, tareaOrigen);\n\t\t\treturn;\n\t\t}\n\t\tthis.empleadoDTO = empleadoDTO;\n\t\tif (this.utilsService.isNotBlank(this.llaveNovedadHijo)) {\n\t\t\tlet data = await this.seleccionarHijoAction2(this.llaveNovedadHijo) \n\t\t\t\tif (data) {\n\t\t\t\t\tif (this.utilsService.isNotBlank(data) && 'NOENT' == data) {\n\t\t\t\t\t\tthis.notificacionesService.showWarning('No hay entidades relacionadas al empleado');\n\t\t\t\t\t}\n\t\t\t\t\tif (this.utilsService.isNotBlank(data) && 'NOLIP' == data) {\n\t\t\t\t\t\tthis.notificacionesService.showWarning('No hay liquidacion periodicas relacionadas al empleado');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.cargarListaDocumentoTipoNovedad().then(data => {});\n\t\t\t\t}\n\t\t\tif (this.isEsTipoCambioEmpleado()) {\n\t\t\t\tawait this.seleccionarFormato(this.tipoNovedadDTO.formatoActo);\n\t\t\t}\n\t\t}\n\t\tthis.usuario = this.authService.getTokenKey('usuario');\n\t\tthis.rol = this.authService.getTokenKey('aliasRol');\n\t\tthis.codNovedadesHijas = this.parametroHijos;\n\t\tthis.codNovedadesPadre = this.parametroFiltro;\n\t\tthis.listarTiposNovedades(this.empresaDTO.modoCompensacion);\n\t\tthis.paginadorCargado = false;\n\t}\n\n\tlistarTiposNovedades(modo: string) {\n\t\tthis.listaTipoNovedad = [];\n\t\tthis.tipoNovedadService.obtenerTipoNovedadesPadreConHijos({\n\t\t\tempresa: this.empleadoDTO.empresa, \n\t\t\tcontrato: this.empleadoDTO.contrato,\n\t\t\tusuario: this.usuario, \n\t\t\trol: this.rol, \n\t\t\tsolicitud: 'N', \n\t\t\tmodo: modo, \n\t\t\tcodNovedadesHijas: this.codNovedadesHijas, \n\t\t\tcodNovedadesPadre: this.codNovedadesPadre,\n\t\t\ttipo: null}).subscribe(data => {\n\t\t\t\tvar listaTipoNovedadAux: TipoNovedadModel[] = data;\n\t\t\t\tif (listaTipoNovedadAux != null && listaTipoNovedadAux.length > 0) {\n\t\t\t\t\tlistaTipoNovedadAux.forEach(element => {\n\t\t\t\t\t\tthis.listaTipoNovedad.push({codigo: element.llave, nombre: element.descripcion});\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tmostrarPanelNovedadMasiva(){\n\t\tif (this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.tareaOrigen) {\n\t\t\tthis.regresarMasivo.emit({ver: true, tareaOrigen: this.tareaOrigen, llaveTipoNovedad: this.tipoNovedadHija.llave})\n\t\t\t//ListadoNovedadEmpleadoBean listaNovedad = getBean(ListadoNovedadEmpleadoBean.class);\n\t\t\t//listaNovedad.traerListado(this.empleadoDTO);\n\t\t\t//listaNovedad.setVerDetalle(false);\n\t\t\t//listaNovedad.setVerDetalleMasivo(true);\n\t\t\t//listaNovedad.setPanel(3);\n\t\t\t//formValidacion = \"form_novedadesEmpleado:tabsNovedades:0\";\n\t\t} else if (this.novedadPipe.ORIGEN_APLICAR_NOVEDAD == this.tareaOrigen) {\n\t\t\tthis.regresarMasivo.emit({ver: true, tareaOrigen: this.tareaOrigen, llaveTipoNovedad: this.tipoNovedadHija.llave})\n\t\t\t//FacesUtils.setValorEL(\"listadoAplicarNovedadProcesoEmpleadoBean.mostrarNovedadesMasivas\", true);\n\t\t\t//formValidacion = \"aplicaNovedadProceso\";\n\t\t} else if (this.novedadPipe.ORIGEN_NOVEDAD_LIQ_MASIVA == this.tareaOrigen) {\n\t\t\t//FacesUtils.setValorEL(\"novedadesNominaLiqMasivaBean.mostrarNovedadesMasivas\", true);\n\t\t\t//formValidacion = \"novedadesNominaLiqMasiva\";\n\t\t}\n\t}\n\n\tregresarPopupEmpleado(event){\n\t\tthis.mostrarPopupEmpleado = false;\n\t}\n\n\tsetRelacionNovedadUnica(tipoNovedad: TipoNovedadModel) {\n\t\tif(this.tipoNovedadPipe.VARIABLE_EMPLEADO == tipoNovedad.tipo || this.tipoNovedadPipe.VARIABLE_PERIODO == tipoNovedad.tipo){\n\t\t\tthis.novedadDTO.variable = tipoNovedad.variable;\n\t\t\tthis.novedadDTO.descripcionVariable = tipoNovedad.descripcionVariable;\n\t\t}else if(this.tipoNovedadPipe.VARIABLE_PERIODO_FECHAS == tipoNovedad.tipo || this.tipoNovedadPipe.VARIABLE_EMPLEADO_FECHAS == tipoNovedad.tipo){\n\t\t\tthis.novedadDTO.variableFecha = tipoNovedad.variableFecha;\n\t\t\tthis.novedadDTO.codigoVariableFecha = tipoNovedad.codigoVariableFecha;\n\t\t\tthis.novedadDTO.descripcionVariableFecha = tipoNovedad.descripcionVariable;\n\t\t}else if (this.tipoNovedadPipe.CONCEPTO_EMPLEADO == tipoNovedad.tipo || this.tipoNovedadPipe.CONCEPTO_PERIODO == tipoNovedad.tipo){\n\t\t\tthis.novedadDTO.concepto = tipoNovedad.concepto;\n\t\t\tthis.novedadDTO.descripcionConcepto = tipoNovedad.descripcionConcepto;\n\t\t}else if(this.tipoNovedadPipe.EMBARGO == tipoNovedad.tipo || this.tipoNovedadPipe.LIQUIDACION_PERIODICA\t == tipoNovedad.tipo){\n\t\t\tthis.novedadDTO.liquidacionPeriodica = tipoNovedad.tipoliquidape;\n\t\t\tthis.novedadDTO.descripcionLiquidaPeriodica = tipoNovedad.descripcionLiquidaPeriodica;\n\t\t}\n\t}\n\n\tlimpiarDescripcionesNovedadMultiple() {\n\t\tthis.novedadDTO.variable = null;\n\t\tthis.novedadDTO.descripcionVariable = null;\n\t\tthis.novedadDTO.variableFecha = null;\n\t\tthis.novedadDTO.codigoVariableFecha = null;\n\t\tthis.novedadDTO.descripcionVariableFecha = null;\n\t\tthis.novedadDTO.concepto = null;\n\t\tthis.novedadDTO.descripcionConcepto = null;\n\t\tthis.novedadDTO.liquidacionPeriodica = null;\n\t\tthis.novedadDTO.descripcionLiquidaPeriodica = null;\n\t}\n\n\tasync seleccionarHijoAction2(llaveHijo: string) {\n\t\tthis.tipoNovedadDTO = new TipoNovedadModel();\n\t\tthis.tipoNovedadDTO.llave = this.utilsService.rightpad(llaveHijo, 32, ' ');\n\t\tthis.tipoNovedadDTO.solicitud = 'N';\n\t\tvar lista: TipoNovedadModel[] =  await this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', null, false, this.tipoNovedadDTO)).toPromise();\n\t\tif (lista.length > 0) {\n\t\t\tthis.tipoNovedadDTO = new TipoNovedadModel();\n\t\t\tthis.tipoNovedadDTO = lista[0];\n\n\t\t\tif (this.isEsPrestamo()) {\n\t\t\t\tawait this.cargarCamposFormularioLiquidacionPeriodica(this.tipoNovedadDTO.tipoliquidape);\n\t\t\t}\n\n\t\t\tthis.novedadDTO.tiponovedad = this.tipoNovedadDTO.llave;\n\t\t\tthis.novedadDTO.tipoNovedadDescripcion = this.tipoNovedadDTO.descripcion;\n\t\t\tthis.novedadDTO.mensajeTipoNovedad = this.tipoNovedadDTO.mensaje;\n\t\t\tthis.novedadDTO.tipoTipoNovedad = this.tipoNovedadDTO.tipo;\n\t\t\tif (this.tipoNovedadPipe.CAMBIOENTIDAD == this.tipoNovedadDTO.tipo) {\n\t\t\t\tif (this.isBorrarCambioEntidad() || this.isModificarCambioEntidad()) {\n\t\t\t\t\tawait this.cargarListaEntidades(this.tipoNovedadDTO.tipoServicio);\n\t\t\t\t\tif(this.listaEntidadServicio.length == 0){\n\t\t\t\t\t\treturn 'NOENT';\n\t\t\t\t\t}else if(this.listaEntidadServicio.length == 1){\n\t\t\t\t\t\tawait this.cargarEntidad({data: this.listaEntidadServicio[0]});\n\t\t\t\t\t}else if(this.listaEntidadServicio.length > 1) {\n\t\t\t\t\t\tawait this.utilsService.sleep(200) \n\t\t\t\t\t\tthis.listaEntidadTabla.nativeElement.focus();\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.listaEntidadServicio = [];\n\t\t\t\t}\n\n\t\t\t\tawait this.definirTipoServicioEntidad(this.tipoNovedadDTO.tipoServicio);\n\n\t\t\t}\n\t\t\tif (this.tipoNovedadPipe.LIQUIDACION_PERIODICA == this.tipoNovedadDTO.tipo) {\n\t\t\t\tif (this.isPrestamoNuevo()) {\n\t\t\t\t\tawait this.cargarListasPrestamoRecojer();\n\t\t\t\t\tthis.novedadDTO.cuotaPeriodo = 1;\n\t\t\t\t\tthis.novedadDTO.accion = this.tipoNovedadDTO.accion;\n\t\t\t\t\tthis.novedadDTO.empresa = this.tipoNovedadDTO.empresa;\n\t\t\t\t} else {\n\t\t\t\t\tawait this.cargarListasPrestamo();\n\t\t\t\t\tif(this.listaLiquidacionPeriodica.length == 0){\n\t\t\t\t\t\treturn 'NOLIP';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tif (this.listaLiquidacionPeriodica.length > 0){\n\t\t\t\t\t\t\tawait this.utilsService.sleep(200)\n\t\t\t\t\t\t\tthis.listaEntidadTabla.nativeElement.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}else if(this.isEsTerminacionContrato()){\n\t\t\t\tawait this.cargarListasTerminacionContrato(this.empresaDTO.modoCompensacion);\n\t\t\t}else if(this.isEsVariableFecha()){\n\t\t\t\tawait this.cargarListaLineaCosto(this.empleadoDTO.empresa);\n\t\t\t\tawait this.cargarListaMateria();\n\t\t\t\tawait this.obtenerVariableFecha();\n\t\t\t\tthis.cargarListaEntidadesPorServicio(this.variableFechaDTO.tipoServicio);\n\t\t\t}else if(this.isEsEmbargo()){\n\t\t\t\tif (this.isPrestamoNuevo()) {\n\t\t\t\t\tawait this.cargarListasEmbargo();\n\t\t\t\t\tawait this.cargarListaEntidadLiquidacionesPeriodicas();\n\t\t\t\t} else {\n\t\t\t\t\tawait this.cargarListasPrestamo();\n\t\t\t\t\tif(this.listaLiquidacionPeriodica.length == 0){\n\t\t\t\t\t\treturn 'NOLIP';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tif (this.listaLiquidacionPeriodica.length > 0){\n\t\t\t\t\t\t\tawait this.utilsService.sleep(200)\n\t\t\t\t\t\t\tthis.listaEntidadTabla.nativeElement.focus();\n\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}else if(this.isEsVariable()){\n\t\t\t\tthis.novedadDTO.variable = this.tipoNovedadDTO.variable;\n\t\t\t\tawait this.obtenerVariable();\n\t\t\t}\n\n\t\t\tif(this.isEsVariableEmpleado() || this.isEsVariableFechaEmpleado() || this.isEsConceptoEmpleado() || this.isPrestamoAbonoExtra()){\n\t\t\t\tawait this.cargarListasCiclosNomina(this.empleadoDTO.tipoPeriodo);\n\t\t\t}\n\t\t\tif((this.isEsVariableFechaEmpleado() || this.isEsVariableFechaPeriodo()) && !this.isNovedadMultiple()) {\n\t\t\t\tawait this.cargarCamposFormularioVariableFecha(this.tipoNovedadDTO.variableFecha);\n\t\t\t}\n\t\t\tthis.mostrar = true;\n\t\t} else {\n\t\t\tthis.mostrar = false;\n\t\t}\n\t\t\n\t\treturn null;\n\t}\n\n\tcargarLiquidacionPeriodica(event){\n\t\tvar liquidacionPeriodica = event.data;\n\t\tthis.listaAccionesPrestamo = this.tipoNovedadPipe.LISTA_ACCIONES_PRESTAMO;\n\t\tthis.novedadDTO.numero = liquidacionPeriodica.numero;\n\t\tthis.novedadDTO.referencia= liquidacionPeriodica.referencia;\n\t\tthis.novedadDTO.accion = this.tipoNovedadDTO.accion;\n\t\tthis.novedadDTO.empresa = this.tipoNovedadDTO.empresa;\n\t\tthis.mostrar=true;\n\t}\n\n\tasync obtenerVariable() {\n\t\tthis.variableDTO = new VariableModel();\n\t\tif(this.novedadDTO != null && this.novedadDTO.variable != null){\n\t\t\tvar comodin: VariableModel = new VariableModel();\n\t\t\tcomodin.variable = this.utilsService.rightpad(this.novedadDTO.variable, 5, ' ');\t\t\t\t\n\t\t\tthis.variableDTO = await this.generalService.queryForObject(new GeneralModel('VariableDTO', null, false, comodin)).toPromise();\n\t\t}\n\t\tif (this.variableDTO == null) {\n\t\t\tthis.variableDTO = new VariableModel();\n\t\t\tthis.variableDTO.variable = this.utilsService.rightpad(this.novedadDTO.variable, 5, ' ');\n\t\t\tthis.variableDTO.tipo = 'N';\n\t\t}\n\t}\n\n\tasync obtenerVariableFecha() {\n\t\tthis.variableFechaDTO = new VariableFechaModel();\n\t\tvar tmp: VariableFechaModel = new VariableFechaModel();\n\t\tif(this.novedadDTO != null && this.novedadDTO.variableFecha != null){\n\t\t\ttmp.llaveTabla = this.novedadDTO.variableFecha;\t\t\t\t\n\t\t\tthis.variableFechaDTO = await this.generalService.queryForObject(new GeneralModel('VariableFechaDTO', null, false, tmp)).toPromise();\n\t\t}\n\t\tif (this.variableFechaDTO == null) {\n\t\t\tthis.variableFechaDTO = new VariableFechaModel();\n\t\t\tthis.variableFechaDTO.llaveTabla = this.novedadDTO.variableFecha;\n\t\t}\n\t}\n\n\tasync cargarEntidad(event) {\n\t\tvar entidadempleado: EntidadEmpleadoModel = event.data;\n\t\tthis.novedadDTO.entidad = entidadempleado.entidad;\n\t\tthis.novedadDTO.sucursal = entidadempleado.sucursal;\n\t\tthis.novedadDTO.nombreEntidad = entidadempleado.nombreEntidad;\n\t\tthis.novedadDTO.nombreSucursal = entidadempleado.sucursal + ' - ' + entidadempleado.nombreSucursal;\n\t\tthis.novedadDTO.valor = entidadempleado.valor;\n\t\tthis.novedadDTO.tipo = entidadempleado.tipo;\n\t\tthis.novedadDTO.tipoReferencia = entidadempleado.tipoReferencia;\n\t\tthis.novedadDTO.ciclo = entidadempleado.ciclo;\n\t\tthis.novedadDTO.referencia = entidadempleado.referencia;\n\t\tthis.novedadDTO.sucursalReferencia = entidadempleado.sucReferencia;\n\t\tthis.novedadDTO.beneficiario = entidadempleado.beneficiario;\n\t\tthis.novedadDTO.nombreBeneficiario = entidadempleado.beneficiario + ' - ' + entidadempleado.nombreBeneficiario;\n\t\tthis.novedadDTO.entidadAuxiliar = entidadempleado.entidadAux;\n\t\tthis.novedadDTO.desde = entidadempleado.fechaAfiliacion;\n\t\tthis.novedadDTO.ausencia = entidadempleado.llave;\n\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO)\n\t\tawait this.definirTipoServicioEntidad(entidadempleado.tipoServicio);\n\t\tthis.mostrar = true;\n\n\t}\n\n\tasync cargarListaEntidades( tipoServicio: string) {\n\t\tthis.listaEntidadServicio = [];\n\t\tvar entidadEmpleado: EntidadEmpleadoModel = new EntidadEmpleadoModel();\n\t\tentidadEmpleado.tipoServicio = tipoServicio;\n\t\tentidadEmpleado.empresa = this.empleadoDTO.empresa;\n\t\tentidadEmpleado.identificacion = this.empleadoDTO.contrato;\n\t\tentidadEmpleado.activas = 'A';\n\t\tthis.listaEntidadServicio = await this.generalService.queryForList(new GeneralModel('EntidadEmpleadoDTO', null, false,entidadEmpleado)).toPromise();\n\t\t\n\t}\n\n\tpublic setBeneficiarioPopup(hojaVidaDTO: HojaVidaModel) {\n\t\tthis.novedadDTO.beneficiario = hojaVidaDTO.identifica;\n\t\tlet hoja2 = new HojaVidaModel();\n\t\thoja2.nombres = hojaVidaDTO.nombres;\n\t\thoja2.primerapellid = hojaVidaDTO.primerapellid;\n\t\thoja2.segundoapelli = hojaVidaDTO.segundoapelli;\n\t\tthis.novedadDTO.nombreBeneficiario =  hoja2.getNombreCompleto();\n\t\tthis.inputHoja.label = this.novedadDTO.nombreBeneficiario;\n\t}\n\n\tasync cargarInit(){\n\t\tthis.empresaDTO = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false,{empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))})).toPromise();\n\t\tawait this.getListatipoDocumento();\n\t}\n\n\tasync getListatipoDocumento(){\n\t\tvar data: TipoDocumentoModel[] = await this.generalService.queryForList(new GeneralModel('TipoDocumentoDTO', null, false, {origen: this.hojaVidaPipe.TIO_HOJAVIDA, modo: this.empresaDTO.modoHojavida})).toPromise();\n\t\tthis.listatipoDocumento = []\n\t\tdata.forEach(element => {\n\t\t\tthis.listatipoDocumento.push({codigo: element.documento, nombre: element.descripcion})\n\t\t});\n\n\t}\n\n\tasync cargarBean2(tareaOrigen: string, nuevo: boolean, novedad: NovedadModel, empleado: EmpleadoModel, formValidacion: string, mostrarDetalle: boolean){\n\t\tawait this.cargarInit();\n\t\tthis.mostrarDetalle = mostrarDetalle;\n\t\tthis.encuesta = false;\n\t\tthis.procesoAutorizacion = false;\n\t\tthis.formValidacion = formValidacion;\n\t\tthis.tareaOrigen = tareaOrigen;\n\t\tawait this.cargarInformacion(nuevo, novedad, empleado);\n\t}\n\n\tasync cargarBean(tareaOrigen: string, nuevo: boolean, novedad: NovedadModel, empleado: EmpleadoModel, estado: string, formValidacion: string, mostrarDetalle: boolean){\n\t\tawait this.cargarInit();\n\t\tthis.clickGuardar = false;\n\t\tthis.encuesta = false;\n\t\tthis.procesoAutorizacion = false;\n\t\tthis.estado = estado;\n\t\tthis.formValidacion = formValidacion;\n\t\tthis.tareaOrigen = tareaOrigen;\n\t\tawait this.cargarInformacion(nuevo, novedad, empleado);\n\t\tthis.mostrarDetalle = mostrarDetalle;\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.utilsService.resizeWindowIFrame()\n\n\t}\n\n\tasync cargarInformacion(nuevo: boolean, novedad: NovedadModel, empleado: EmpleadoModel) {\n\t\tthis.empleadoDTO = empleado;\n\t\tthis.actoTraslado = false;\n\t\tthis.actoCambioPuesto = false;\n\t\tvar archivoDTO = new ArchivoModel();\n\t\tif (!nuevo){\n\t\t\tarchivoDTO = await this.traerUnicoAdjunto(novedad.llaveTabla);\n\t\t} else {\n\t\t\tthis.parametroBusqueda = null;\n\t\t\tawait this.traerListadoNovedad();\n\t\t}\n\n\t\tawait this.cargarInformacion2(nuevo, novedad, archivoDTO, this.empresaDTO.modoCompensacion, empleado, this.authService.getTokenKey('usuario'), this.authService.getTokenKey('aliasRol'));\n\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t\tawait this.ControlBotones();\n\t\tif (this.tipoNovedadDTO != null && this.tipoNovedadPipe.CAMBIO_EMPLEADO == this.tipoNovedadDTO.tipo) {\n\t\t\tawait this.seleccionarFormato(this.tipoNovedadDTO.formatoActo);\n\t\t}\n\n\t\tif (!nuevo && this.isMostrarTerminos()) {\n\t\t\tthis.aceptoTerminos = true;\n\t\t}\n\t\tawait this.cargarAccionesBotones();\n\t\tthis.novedadDTO = this.formatearDateNovedad(this.novedadDTO);\n\t}\n\t\n\tasync seleccionarFormato(formatoActo: number){\n\t\tvar formato = new FormatoModel();\n\t\tformato.llave = formatoActo;\n\t\tformato = await this.generalService.queryForObject(new GeneralModel('FormatoDTO', null, false, formato)).toPromise();\n\t\tif (formato == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.nuevo) {\n\t\t\tawait this.elaboracionActosNovedad(formato);\n\t\t} else if (this.isPorSolicitar() || this.isPorAutorizar() || this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.tareaOrigen) {\n\t\t\tawait this.modificacionActosNovedad(formato);\n\t\t} else if (this.isPorLegalizar() || this.encuesta || this.procesoAutorizacion) {\n\t\t\tawait this.legalizacionActosNovedad(formato);\n\t\t}\n\t}\n\n\tprivate async elaboracionActosNovedad(formato: FormatoModel) {\n\t\tif (this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO == formato.tipo) {\n\t\t\tvar grupo: number;\n\t\t\tif (formato.accion == (this.parametroFormatoPipe.TRASLADODEFINITIVO) || formato.accion == (this.parametroFormatoPipe.TRASLADOENCARGO)\n\t\t\t\t\t|| formato.accion == (this.parametroFormatoPipe.TRASDEFINITIVOTEM) || formato.accion == (this.parametroFormatoPipe.TRASLADOENFUNCION)\n\t\t\t\t\t|| formato.accion == (this.parametroFormatoPipe.ASIGNACIONFUNCIONES)) {\n\t\t\t\tgrupo = await this.obtenerGrupo(formato.llave, this.empleadoDTO.vinculacion);\n\t\t\t\tif ( grupo == null) {\n\t\t\t\t\tthis.notificacionesService.showInfo(\"Grupo de actos no relacionado a la vinculacion \"+this.empleadoDTO.vinculacion+\" Formato \" +formato.llave);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.actoTraslado = true;\n\t\t\t\tawait this.utilsService.sleep(0);\n\t\t\t\tawait this.actoTrasladoComponent.nuevoActoNovedad(this.empleadoDTO.empresa, 0, formato.llave, grupo,\tthis.tipoNovedadDTO.llave);\n\t\t\t\tthis.actoTrasladoComponent.setFuncionario(this.empleadoDTO);\n\t\t\t\tthis.actoTrasladoComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t\t} else if (formato.accion == (this.parametroFormatoPipe.CAMBIOPUESTOTRA)) {\n\t\t\t\tgrupo = await this.obtenerGrupo(formato.llave, this.empleadoDTO.vinculacion);\n\t\t\t\tif ( grupo == null) {\n\t\t\t\t\tthis.notificacionesService.showInfo(\"Grupo de actos no relacionado a la vinculacion \"+this.empleadoDTO.vinculacion+\" Formato \" +formato.llave);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.actoCambioPuesto = true;\n\t\t\t\tawait this.utilsService.sleep(0);\n\t\t\t\tawait this.actoCambioPuestoComponent.nuevoActoNovedad(this.empleadoDTO.empresa, 0, formato.llave, grupo,\tthis.tipoNovedadDTO.llave);\n\t\t\t\tthis.actoCambioPuestoComponent.setFuncionario(this.empleadoDTO);\n\t\t\t\tthis.actoCambioPuestoComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t\t}\n\t\t} else if (this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO == formato.tipo) {\n\t\t\tif (formato.accion == (this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO) || formato.accion == (this.parametroFormatoPipe.LIQUIDACION_DEFINITIVO)) {\n\t\t\t\tgrupo = await this.obtenerGrupo(formato.llave, this.empleadoDTO.vinculacion);\n\t\t\t\tif ( grupo == null) {\n\t\t\t\t\tthis.notificacionesService.showInfo(\"Grupo de actos no relacionado a la vinculacion \"+this.empleadoDTO.vinculacion+\" Formato \" +formato.llave);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.actoRetiro = true;\n\t\t\t\tawait this.utilsService.sleep(0);\n\t\t\t\tawait this.actoTerminacionComponent.nuevoActoNovedad(this.empleadoDTO.empresa, formato.llave, grupo,\tthis.tipoNovedadDTO.llave);\n\t\t\t\tthis.actoTerminacionComponent.setFuncionario(this.empleadoDTO);\n\t\t\t\tthis.actoTerminacionComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async obtenerGrupo(formato: number, vinculacion: number) {\n\t\tvar listagrupoformato: UsuarioFormatoModel[] = await this.usuarioFormatoService.buscarFormatoGrupo(vinculacion, null,formato,null);\n\t\tif ( listagrupoformato.length != 0 ) {\n\t\t\treturn listagrupoformato[0].grupo;\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate async modificacionActosNovedad(formato: FormatoModel) {\n\t\tif (this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO == formato.tipo) {\n\t\t\tif (formato.accion == (this.parametroFormatoPipe.TRASLADODEFINITIVO) || formato.accion == (this.parametroFormatoPipe.TRASLADOENCARGO)\n\t\t\t\t\t|| formato.accion == (this.parametroFormatoPipe.TRASDEFINITIVOTEM) || formato.accion == (this.parametroFormatoPipe.TRASLADOENFUNCION)\n\t\t\t\t\t|| formato.accion == (this.parametroFormatoPipe.ASIGNACIONFUNCIONES)) {\n\t\t\t\tthis.actoTraslado = true;\n\t\t\t\tawait this.utilsService.sleep(0);\n\t\t\t\tawait this.actoTrasladoComponent.modificar(this.novedadDTO.llaveActo);\n\t\t\t\tthis.actoTrasladoComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t\t} else if (formato.accion == (this.parametroFormatoPipe.CAMBIOPUESTOTRA)) {\n\t\t\t\tthis.actoCambioPuesto = true;\n\t\t\t\tawait this.utilsService.sleep(0);\n\t\t\t\tawait this.actoCambioPuestoComponent.modificar(this.novedadDTO.llaveActo);\n\t\t\t\tthis.actoCambioPuestoComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t\t\t\n\t\t\t}\n\t\t} else if (this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO == formato.tipo) {\n\t\t\tif (formato.accion == (this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO) || formato.accion == (this.parametroFormatoPipe.LIQUIDACION_DEFINITIVO)) {\n\t\t\t\tthis.actoRetiro = true;\n\t\t\t\tawait this.actoTerminacionComponent.modificar(this.novedadDTO.llaveActo);\n\t\t\t\tthis.actoTerminacionComponent.setFuncionario(this.empleadoDTO);\n\t\t\t\tthis.actoTerminacionComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async legalizacionActosNovedad(formato: FormatoModel) {\n\t\tif (this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO == formato.tipo && this.parametroFormatoPipe.CAMBIOPUESTOTRA != (formato.accion)) {\n\t\t\tthis.actoTraslado = true;\n\t\t\tawait this.utilsService.sleep(0);\n\t\t\tif (this.encuesta || this.procesoAutorizacion) {\n\t\t\t\tawait this.actoTrasladoComponent.verFormularioParaBPM(this.novedadDTO.llaveActo);\n\t\t\t\t//this.actoTrasladoComponent.setDestino(getReglaNavegacion());\n\t\t\t} else {\n\t\t\t\tawait this.actoTrasladoComponent.legalizacion(this.novedadDTO.llaveActo);\n\t\t\t}\n\t\t\tthis.actoTrasladoComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t} else if (formato.accion == (this.parametroFormatoPipe.CAMBIOPUESTOTRA)) {\n\t\t\tthis.actoCambioPuesto = true;\n\t\t\tawait this.utilsService.sleep(0);\n\t\t\tif (this.encuesta || this.procesoAutorizacion) {\n\t\t\t\tawait this.actoCambioPuestoComponent.verFormularioParaBPM(this.novedadDTO.llaveActo);\n\t\t\t\t//this.actoCambioPuestoComponent.setDestino(getReglaNavegacion());\n\t\t\t} else {\n\t\t\t\tthis.actoCambioPuestoComponent.legalizacion(this.novedadDTO.llaveActo);\n\t\t\t}\n\t\t\tthis.actoCambioPuestoComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t} else if (this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO == formato.tipo) {\n\t\t\tif (formato.accion == (this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO) || formato.accion == (this.parametroFormatoPipe.LIQUIDACION_DEFINITIVO)) {\n\t\t\t\tthis.actoRetiro = true;\n\t\t\t\tawait this.utilsService.sleep(0);\n\t\t\t\tif (this.encuesta || this.procesoAutorizacion) {\n\t\t\t\t\tthis.actoTerminacionComponent.verFormularioParaBPM(this.novedadDTO.llaveActo);\n\t\t\t\t\t//this.actoTerminacionComponent.setDestino(getReglaNavegacion());\n\t\t\t\t} else {\n\t\t\t\t\tawait this.actoTerminacionComponent.legalizar(this.novedadDTO.llaveActo);\n\t\t\t\t}\n\t\t\t\tthis.actoTerminacionComponent.setFuncionario(this.empleadoDTO);\n\t\t\t\tthis.actoTerminacionComponent.setDeDondeVengo(this.tareaOrigen, this.formValidacion);\n\t\t\t\t//this.actoTerminacionComponent.setReglaNavegacion(getReglaNavegacion());\n\t\t\t}\n\t\t}\n\t}\n\n\tasync ControlBotones() {\n\t\tvar valor = '';\n\t\tthis.controles = new Map<string, boolean>();\n\t\tif (!this.isExisteNovedad()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.novedadDTO.estado == (this.novedadPipe.SOLICITUDINCONSISTENCIA) || this.novedadDTO.estado == this.novedadPipe.NUEVA\n\t\t\t\t|| this.sinBPM) {\n\t\t\tvalor = 'guardar';\n\t\t}\n\n\t\tif (this.authService.getTokenKey('tipoLogin') == 'U') {\n\t\t\tif (this.novedadDTO.estado == (this.novedadPipe.SOLICITUD) || this.novedadDTO.estado == (this.novedadPipe.AUTORIZADA)\n\t\t\t\t\t|| this.novedadDTO.estado == (this.novedadPipe.NOAUTORIZADA) || this.novedadDTO.estado == (this.novedadPipe.NO_LEGALIZADA)) {\n\t\t\t\tthis.controles.set('cambioDato', this.controlFuncionService.getControlFuncionalidad('ingnov:guardar'));\n\t\t\t}\n\t\t}\n\n\t\tthis.controles.set('eliminar', this.controlFuncionService.getControlFuncionalidad('ingnov:eliminar'));\n\n\t\tif (this.authService.getTokenKey('tipoLogin') == 'U' && (this.novedadPipe.SOLICITUD == this.novedadDTO.estado\n\t\t\t\t|| this.novedadDTO.estado == this.novedadPipe.NOAUTORIZADA || this.novedadDTO.estado == this.novedadPipe.NO_LEGALIZADA)) {\n\t\t\tvalor = 'autorizar';\n\t\t\tthis.controles.set('legalizardirecto', this.controlFuncionService.getControlFuncionalidad('ingnov:legalizardirecto'));\n\t\t} else {\n\t\t\tif (this.authService.getTokenKey('usuario') == this.novedadDTO.loginAutorizaNovedad) {\n\t\t\t\tthis.controles.set('autorizar', true);\n\t\t\t\tthis.controles.set('legalizardirecto', this.controlFuncionService.getControlFuncionalidad('ingnov:legalizardirecto'));\n\t\t\t} else {\n\t\t\t\tthis.controles.set('autorizar', false);\n\t\t\t}\n\t\t}\n\n\t\tif (valor == '') {\n\t\t\tif (this.novedadDTO.tipoTipoNovedad != this.novedadPipe.CONCEPTOPERIODO && this.novedadDTO.tipoTipoNovedad != this.novedadPipe.VARIABLEPERIODO\n\t\t\t\t\t&& this.novedadDTO.tipoTipoNovedad != this.novedadPipe.VARIABLEPERIODOFECHA) {\n\t\t\t\tif (this.novedadDTO.estado == (this.novedadPipe.AUTORIZADA)) {\n\t\t\t\t\tvalor = 'legalizar';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.desabilitarCampos = true;\n\t\t\t}\n\t\t}\n\t\tthis.controles.set(valor, this.controlFuncionService.getControlFuncionalidad('ingnov:' + valor));\n\t\tif (valor != '') {\n\t\t\tthis.desabilitarValor(valor);\n\t\t}\n\n\t}\n\n\tdesabilitarValor(comando: string) {\n\t\tif (comando == 'aplicar' || comando == 'guardar') {\n\t\t\tthis.desabilitarCampos = false;\n\t\t} else {\n\t\t\tthis.desabilitarCampos = true;\n\t\t}\n\t}\n\n\tasync cargarListaDocumentoTipoNovedad() {\n\t\tthis.listaRequisitoHoja = [];\n\t\tthis.listaDocumentoTipoNovedad = []\n\t\tif (this.tipoNovedadDTO == null || this.tipoNovedadDTO.llave == null) {\n\t\t\treturn;\n\t\t}\n\t\tvar requisitoHojaDTO: RequisitoHojaModel = new RequisitoHojaModel();\n\t\trequisitoHojaDTO.actoAdministrativo = this.novedadDTO.llaveTabla;\n\n\t\tvar momentoDocumento: MomentoDocumentoModel = new MomentoDocumentoModel();\n\t\tmomentoDocumento.momento = this.novedadDTO.tiponovedad;\n\t\tmomentoDocumento.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n\t\tthis.listaDocumentoTipoNovedad = await this.generalService.queryForList(new GeneralModel('MomentoDocumentoDTO', null, false, momentoDocumento)).toPromise();\n\t\tif (this.novedadDTO.llaveTabla == null) {\n\t\t\treturn;\n\t\t}\n\t\tvar extensionArchivo: string[] = null;\n\t\tthis.listaDocumentoTipoNovedad.forEach(async documento =>  {\n\t\t\t// Se valida si el tipoDocumento ya tiene un archivo\n\t\t\t// asociado\n\t\t\tvar requisitoHojaFiltro = new RequisitoHojaModel();\n\t\t\tdocumento.requisitoHojaDTO = requisitoHojaFiltro;\n\t\t\trequisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n\t\t\trequisitoHojaFiltro.actoAdministrativo = this.novedadDTO.llaveTabla;\n\t\t\trequisitoHojaFiltro = await this.generalService.queryForObject(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise()\n\t\t\tif (requisitoHojaFiltro != null) {\n\t\t\t\tdocumento.requisitoHojaDTO = requisitoHojaFiltro;\n\t\t\t}\n\t\t\t/*\tif (documento.tipo != null && documento.tipo != undefined && documento.tipo == 'I') {\n\t\t\t\t\textensionArchivo = requisitoHojaFiltro.getArchivo().split('\\\\.');\n\t\t\t\t\tif (ListaConstantes.CUMPLIDO == requisitoHojaFiltro.getEstado())) {\n\t\t\t\t\t\tString rutaArchivo = getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA) + requisitoHojaFiltro.llave + ConstantesGenerales.PUNTO\n\t\t\t\t\t\t\t\t+ extensionArchivo[extensionArchivo.length - 1];\n\t\t\t\t\t\tdocumento.setRuta(EncriptadorBasico.encriptar(FacesUtils.setParametroRutaSession(rutaArchivo)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}*/\n\t\t})\n\t}\n\n\tasync cargarInformacion2(nuevo: boolean, novedad: NovedadModel, archivoDTO: ArchivoModel, modo: string, empleado: EmpleadoModel, usuario: string, rol: string){\n\t\tthis.tipoNovedadDTO = null;\n\t\tthis.modo = modo;\n\t\tthis.seguimiento = false;\n\t\tthis.listadoTipoNovedadHijos = [];\n\t\tthis.listaMinutos = this.liquidacionPerPipe.LISTADOMINUTOS;\n\t\tthis.listaHora =  this.liquidacionPerPipe.LISTADOHORAS;\n\t\tthis.listaEntidadServicio = [];\n\t\tthis.listaLiquidacionPeriodica = [];\n\t\tthis.empleadoDTO = empleado;\n\t\tthis.rol = rol;\n\t\tthis.usuario = usuario;\n\t\tthis.listaBorrarNovedadDato = []\n\t\tthis.listaNovedadDato = [];\n\t\tthis.listaBasePrestamo = [];\n\t\tthis.listaBorrarBasePrestamo = [];\n\t\tthis.cargarListasTurno();\n\n\t\tthis.unicoAdjunto = archivoDTO ? archivoDTO : new ArchivoModel();\n\t\tthis.mostrarTablaBases=false;\n\t\t\n\t\tthis.prestamoCancelar = new NovedadDatoModel();\n\t\tthis.prestamoCancelar.numero = 0;\n\n\t\tif (empleado != null) {\n\t\t\tawait this.cargarListasCiclosNomina(empleado.tipoPeriodo);\n\t\t}\n\n\n\t\tthis.hora = null;\n\t\tthis.minutos = null;\n\t\tthis.nuevo = nuevo;\n\t\tif (nuevo) {\n\t\t\tthis.mostrar = false;\n\t\t\tthis.novedadDTO = new NovedadModel();\n\t\t\tthis.novedadDTO.llaveTabla = this.utilsService.generarLlave();\n\t\t\tthis.novedadDTO.estado = this.novedadPipe.NUEVA;\n\t\t\tthis.novedadDTO.tipoNovedadDescripcion = '';\n\t\t\tthis.novedadDTO.valor = 0;\n\t\t\tthis.novedadDTO.valor2 = 0;\n\t\t\tthis.novedadDTO.beneficiario = 0;\n\t\t\tthis.novedadDTO.ciclo = 0;\n\t\t\tif(this.isLiquidacionMasivaNueva()) {\n\t\t\t\tthis.novedadDTO.aplicaMasivo = 'S';\n\t\t\t}\n\t\t\tthis.listadoTipoNovedadHijos = [];\n\t\t\tthis.modificar = true;\n\t\t} else {\n\t\t\tthis.listadoTipoNovedadHijos = [];\n\t\t\tthis.mostrar = true;\n\t\t\tthis.novedadDTO = novedad;\n\t\t\tthis.modificar = false;\n\t\t\tvar tmp1 = new TipoNovedadModel();\n\t\t\ttmp1.llave = this.utilsService.rightpad(this.novedadDTO.tiponovedad, 32, ' ');\n\t\t\ttmp1.solicitud = 'N';\n\n\t\t\t//var aux: TipoNovedadModel[] = tipoNovedadSvc.obtener(dataSourceIbatis, tmp1);\n\t\t\tvar aux: TipoNovedadModel[] =  await this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', null, false, tmp1)).toPromise();\n\t\t\tif (aux.length == 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.novedadDTO.tiponovedad = aux[0].llave;\n\n\t\t\n\t\t\tif (this.novedadDTO.cantidad != null) {\n\t\t\t\tvar va = this.novedadDTO.cantidad.toString();\n\t\t\t\tif (va.indexOf('.') > 0) {\n\t\t\t\t\tthis.hora = va.substring(0, va.indexOf('.'));\n\t\t\t\t\tthis.minutos = va.substring(va.indexOf('.') + 1);\n\t\t\t\t} else if ('0' == va) {\n\t\t\t\t\tthis.minutos = '00';\n\t\t\t\t} else {\n\t\t\t\t\tthis.minutos = va;\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t// //////////////////////////\n\t\t\tvar tmp2: TipoNovedadModel = new TipoNovedadModel();\n\t\t\ttmp2.llave = this.utilsService.rightpad(aux[0].depende, 32, ' ');\n\t\t\ttmp2.solicitud = 'N';\n\t\t\tvar aux2: TipoNovedadModel[] = await this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', null, false, tmp2)).toPromise();\n\n\t\t\tif (aux2.length == 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.descTipoNovedadPadre = aux2[0].descripcion;\n\n\t\t\tvar tipo = new TipoNovedadModel();\n\t\t\ttipo.depende = aux2[0].llave;\n\t\t\ttipo.solicitud = 'N'\n\t\t\tthis.listadoTipoNovedadHijos = await this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', null, false, tipo)).toPromise();\n\n\t\t\tif (this.listadoTipoNovedadHijos.length==0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.novedadDTO.tipoNovedadDescripcion = aux[0].descripcion;\n\t\t\tthis.novedadDTO.mensajeTipoNovedad = aux[0].mensaje;\n\t\t\t//this.novedadDTO.tiponovedad = aux[0].llave;\n\t\t\tthis.tipoNovedadDTO = new TipoNovedadModel();\n\t\t\tthis.tipoNovedadDTO.llave = this.utilsService.rightpad(this.novedadDTO.tiponovedad, 32, ' ');\n\t\t\tthis.tipoNovedadDTO.solicitud = 'N'\n\t\t\tvar lista: TipoNovedadModel[] = await this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', null, false, this.tipoNovedadDTO)).toPromise();\n\t\t\tthis.tipoNovedadDTO = Object.assign({}, lista[0]);\n\t\t\tthis.nroDocConfigurado = await this.cantidadDocumentoConfigurados();\n\t\t\tif (this.isEsPrestamo()) {\n\t\t\t\tawait this.cargarListasPrestamoRecojer();\n\t\t\t\tawait this.cargarCamposFormularioLiquidacionPeriodica(this.tipoNovedadDTO.tipoliquidape);\n\t\t\t}else if (this.isEsCambioEntidad()) {\n\t\t\t\tawait this.definirTipoServicioEntidad(this.tipoNovedadDTO.tipoServicio);\n\t\t\t}else if(this.isEsVariableFechaPeriodo() || this.isEsVariableFechaEmpleado()){\n\t\t\t\tawait this.cargarListaLineaCosto(this.empleadoDTO.empresa);\n\t\t\t\tawait this.cargarListaMateria();\n\t\t\t}else if(this.isEsTerminacionContrato()){\n\t\t\t\tawait this.cargarListasTerminacionContrato(modo);\n\t\t\t}else if(this.isEsEmbargo()){\n\t\t\t\tawait this.cargarListasEmbargo();\n\t\t\t\tawait this.cargarListaEntidadLiquidacionesPeriodicas();\n\t\t\t}\n\t\t\tif(this.isEsVariableEmpleado() || this.isEsVariableFechaEmpleado() || this.isEsConceptoEmpleado() || this.isPrestamoAbonoExtra() || this.isEsPrestamo()){\n\t\t\t\tawait this.cargarListasCiclosNomina(this.empleadoDTO.tipoPeriodo);\n\t\t\t}\n\t\t\tif(this.isEsVariableFechaEmpleado() || this.isEsVariableFechaPeriodo()) {\n\t\t\t\tawait this.cargarCamposFormularioVariableFecha(this.tipoNovedadDTO.variableFecha);\n\t\t\t}\n\t\t\t\n\t\t\tif ( novedad!=null && novedad.llaveTabla!=null) {\n\t\t\t\tvar periodoConcBaseDTO: PeriodoConcBaseModel = new PeriodoConcBaseModel();\n\t\t\t\tperiodoConcBaseDTO.novedad = novedad.llaveTabla;\n\t\t\t\tthis.listaBasePrestamo = await this.generalService.queryForList(new GeneralModel('PeriodoConcBaseDTO', null, false, periodoConcBaseDTO)).toPromise();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.listaBasePrestamo = [];\n\t\t\t}\n\t\t\t\n\t\t\tif ( this.isPrestamoCompraCartera() && novedad!=null && novedad.llaveTabla!=null) {\n\t\t\t\tvar novedadDato: NovedadDatoModel = new NovedadDatoModel();\n\t\t\t\tnovedadDato.novedad = novedad.llaveTabla;\n\t\t\t\tthis.listaNovedadDato = await this.generalService.queryForList(new GeneralModel('NovedadDatoDTO', null, false, novedadDato)).toPromise();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.listaNovedadDato = [];\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\tasync cargarCamposFormularioVariableFecha(llaveBase: string) {\n\t\tvar datoorganizacionDTO = new DatoorganizacionModel();\n\t\tdatoorganizacionDTO.tipo = this.datoOrganizacionPipe.TIPO_VARIABLE_FECHA;\n\t\tdatoorganizacionDTO.tabla = this.datoOrganizacionPipe.VARIABLE_FECHA\n\t\tdatoorganizacionDTO.llaveBase = this.utilsService.rightpad(llaveBase, 32, ' ');\n\t\tvar listaDatoorganizacionDTO: DatoorganizacionModel[] = await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoorganizacionDTO)).toPromise();\n\t\tthis.mapaCampos = new Map<string, boolean>();\n\t\tlistaDatoorganizacionDTO.forEach(data => {\n\t\t\tthis.mapaCampos.set(data.campo, true);\n\t\t})\n\t}\n\n\tasync cargarListasPrestamo() {\n\t\tthis.listaLiquidacionPeriodica = [];\n\t\tif ( this.empleadoDTO != null) {\n\t\t\tvar liquidacionperDTO: LiquidacionperModel = new LiquidacionperModel();\n\t\t\tliquidacionperDTO.empresa = this.empleadoDTO.empresa;\n\t\t\tliquidacionperDTO.identifica = this.empleadoDTO.contrato;\n\t\t\tliquidacionperDTO.estado = 'A';\n\t\t\tif ( this.tipoNovedadDTO.tipoliquidape!=null) {\n\t\t\t\tliquidacionperDTO.tipoliquidape = this.tipoNovedadDTO.tipoliquidape;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tliquidacionperDTO.tipoliquidape = this.novedadDTO.liquidacionPeriodica;\n\t\t\t}\n\t\t\tvar lista: LiquidacionperModel[] = await this.generalService.queryForList(new GeneralModel('LiquidacionperDTO', null, false, liquidacionperDTO)).toPromise()\n\t\t\tthis.listaLiquidacionPeriodica = lista;\n\t\t}\n\t}\n\n\tasync cargarListasEmbargo() {\n\t\tthis.listatipoEmbargo = this.tipoNovedadPipe.TIPOS_EMBARGOS;\n\t}\n\n\tasync cargarListasTerminacionContrato(modo: string) {\n\t\tthis.listaMotivoLiquidacion = [];\n\n\t\tvar tipoAusenciaDTO: TipoAusenciaModel = new TipoAusenciaModel();\n\t\ttipoAusenciaDTO.origen = this.tipoNovedadPipe.TERMINACION;\n\t\ttipoAusenciaDTO.modo = modo;\n\n\t\tvar listaTipoAusenciaDTO: TipoAusenciaModel[] = await this.generalService.queryForList(new GeneralModel('TipoAusenciaDTO', 'TipoAusencia.listaMotivo', false, tipoAusenciaDTO)).toPromise();\n\t\tlistaTipoAusenciaDTO.forEach(lis => {\n\t\t\tthis.listaMotivoLiquidacion.push({codigo: lis.llaveTabla, nombre: lis.descripcion});\n\t\t})\n\n\t\tthis.listaMotivoRetiro = [];\n\t\tvar codigoBaseCompensacionDTO = new CodigoBaseCompensacionModel();\n\t\tcodigoBaseCompensacionDTO.empresa = this.empleadoDTO.empresa;\n\t\tcodigoBaseCompensacionDTO.tipo = this.tipoNovedadPipe.CODIGO_BASE_TERMINACION_CONTRATO;\n\t\tvar listaCodigoBaseCompensacionDTO: CodigoBaseCompensacionModel[] = await this.generalService.queryForList(new GeneralModel('CodigoBaseCompensacionDTO', null, false, codigoBaseCompensacionDTO)).toPromise();\n\t\tlistaCodigoBaseCompensacionDTO.forEach(lis =>  {\n\t\t\tthis.listaMotivoRetiro.push({codigo: lis.llaveTabla, nombre: lis.descripcion});\n\t\t})\n\t}\n\n\tasync cargarListaMateria() {\n\t\tif (this.listaMateria == null) {\n\t\t\tthis.listaMateria = [];\n\t\t\tvar listatipo: MateriaModel[] = [];\n\t\t\tlistatipo = await this.generalService.queryForList(new GeneralModel('MateriaDTO', null, false, {})).toPromise();\n\t\t\tlistatipo.forEach(element => {\n\t\t\t\tthis.listaMateria.push({codigo: element.materia, nombre: element.descripcion});\n\t\t\t})\n\n\t\t}\n\t}\n\n\tasync cargarListaLineaCosto(empresa: number) {\n\t\tif (this.listaLineaCosto == null) {\n\t\t\tthis.listaLineaCosto = [];\n\t\t\tvar listaLineaCostoDTO: LineaCostoModel[] = [];\n\t\t\tvar lineaCostoDTO: LineaCostoModel = new LineaCostoModel();\n\t\t\tlineaCostoDTO.empresa = empresa;\n\t\t\tlistaLineaCostoDTO = await this.generalService.queryForList(new GeneralModel('LineaCostoDTO', null, false, lineaCostoDTO)).toPromise();\n\t\t\tlistaLineaCostoDTO.forEach(element =>  {\n\t\t\t\tthis.listaLineaCosto.push({codigo: element.lineaCosto, nombre: (element.lineaCosto + ' - ' + element.descripcion)});\n\t\t\t})\n\t\t}\n\t}\n\n\tasync definirTipoServicioEntidad(tipoServicio: string) {\n\t\tthis.tipoServico=new TipoServicioModel();\n\t\tthis.tipoServico.tipoServicio = tipoServicio;\n\t\tthis.tipoServico = await this.generalService.queryForObject(new GeneralModel('TipoServicioDTO', null, false, this.tipoServico)).toPromise();\n\t\tawait this.cargarListaCampos();\n\t\tawait this.cargarListasCiclosNomina(this.empleadoDTO.tipoPeriodo);\n\t\tif(this.tipoServico.tipoServicioExterno != null){\n\t\t\tthis.mostrartipoServicoAlterno=true;\n\t\t\tthis.listaTipoServicio=[];\n\t\t\tvar servicioEntidad: ServicioEntidadExternaModel=new ServicioEntidadExternaModel();\n\t\t\tservicioEntidad.tipoServicio = this.tipoServico.tipoServicioExterno;\n\t\t\tvar listaServicio: ServicioEntidadExternaModel[] = await this.generalService.queryForList(new GeneralModel('ServicioEntidadExternaDTO', 'ServicioEntidad.listaTipoServicioExterno', false, servicioEntidad)).toPromise();\n\t\t\tlistaServicio.forEach(serent =>  {\n\t\t\t\tthis.listaTipoServicio.push({codigo: serent.entidad, nombre: serent.nombreEntidad});\n\t\t\t})\n\t\t}else{\n\t\t\tthis.mostrartipoServicoAlterno=false;\n\t\t}\n\t\tawait this.utilsService.sleep(500);\n\t\tthis.utilsService.resizeWindowIFrame();\n\t}\n\n\tasync cargarListasCiclosNomina(tipoPeriodo: number) {\n\t\tvar lista: CodigoBaseCompensacionModel[] = await this.generalService.queryForList(new GeneralModel('CodigoBaseCompensacionDTO', null, false, {\n\t\t\ttipo: 'CICLO',\n\t\t\ttipoPeriodo: tipoPeriodo\n\t\t})).toPromise();\n\t\tthis.listaCiclos = [];\n\t\tlista.forEach(element => {\n\t\t\tthis.listaCiclos.push({codigo: element.numero, nombre: element.descripcion});\n\t\t});\n\t}\n\n\tasync cargarListaCampos() {\n\t\tthis.listaCampos = [];\n\t\tvar datoFiltro: DatoorganizacionModel = new DatoorganizacionModel();\n\t\tdatoFiltro.llaveBase = this.utilsService.rightpad(this.tipoServico.tipoServicio, 32, ' ');\n\t\tdatoFiltro.tabla = this.datoOrganizacionPipe.TIPOSERVICIO;\n\t\tdatoFiltro.tipo = this.datoOrganizacionPipe.CAMPOENTRADA;\n\t\tdatoFiltro.cadena = this.datoOrganizacionPipe.ENTIDADEMPLEADO;\n\t\tthis.listaCampos = await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoFiltro)).toPromise();\n\t}\n\n\tasync cargarCamposFormularioLiquidacionPeriodica(llaveBase){\n\t\tvar datoorganizacionDTO = new DatoorganizacionModel();\n\t\tdatoorganizacionDTO.tipo = this.datoOrganizacionPipe.TIPO_LIQUIDACION;\n\t\tdatoorganizacionDTO.tabla = this.datoOrganizacionPipe.TIPOLIQUIDAPER_TLP\n\t\tdatoorganizacionDTO.llaveBase = this.utilsService.rightpad(llaveBase, 32, ' ');\n\t\tvar listaDatoorganizacionDTO: DatoorganizacionModel[] =await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoorganizacionDTO)).toPromise();\n\t\tthis.mapaCampos = new Map<string, boolean>();\n\t\tlistaDatoorganizacionDTO.forEach(data => {\n\t\t\tthis.mapaCampos.set(data.campo, true);\n\t\t})\n\t\tthis.listaFormaDesembolso = this.tipoNovedadPipe.LISTA_FORMA_DESEMBOLSO;\n\t\tawait \tthis.cargarListaEntidadLiquidacionesPeriodicas();\n\t}\n\n\tasync cargarListaEntidadLiquidacionesPeriodicas()  {\n\t\tif (this.utilsService.isNotBlank(this.tipoNovedadDTO.tipoliquidape)) {\n\t\t\tvar tipoLiquidacionPeriodicaDTO: TipoLiquidacionPeriodicaModel = await this.generalService.queryForObject(new GeneralModel('TipoLiquidacionPeriodicaDTO', null, false, {tipoLiquidacionPeriodica: this.tipoNovedadDTO.tipoliquidape})).toPromise();\n\t\t\tthis.mostrarTablaBases = 'S' == tipoLiquidacionPeriodicaDTO.mostrarBase;\n\t\t\tawait this.cargarListaEntidadesPorServicio(tipoLiquidacionPeriodicaDTO.tipoServicio);\n\t\t}\n\t}\n\n\tasync cargarListaEntidadesPorServicio(tipoServicio: string) {\n\t\tthis.listaEntidad = []\n\t\tif (this.utilsService.isNotBlank(tipoServicio)) {\n\t\t\tvar entidadDTO: EntidadModel = new EntidadModel();\n\t\t\tentidadDTO.filtroTipoServicio = tipoServicio;\n\t\t\tentidadDTO.modo = this.modo;\n\t\t\tvar lista: EntidadModel[] = await this.generalService.queryForList(new GeneralModel('EntidadDTO', null, false, entidadDTO)).toPromise();\n\t\t\tlista.forEach(lis =>  {\n\t\t\t\tthis.listaEntidad.push({codigo: lis.llave, nombre: lis.descripcion});\n\t\t\t})\n\t\t}\n\t}\n\n\tcargarListasTurno() {\n\t\tthis.listaTurno = [];\n\t\tvar turno = new TurnoModel();\n\t\tturno.tipo = this.generalPipe.NO;\n\t\tthis.generalService.queryForList(new GeneralModel('TurnoDTO', null, false, turno)).subscribe(data => {\n\t\t\tdata.forEach(unTurno => {\n\t\t\t\tif ( unTurno.turno != 0) {\n\t\t\t\t\tthis.listaTurno.push({codigo: unTurno.turno, nombre: this.utilsService.capitalizeFully(unTurno.descripcion)});\t\n\t\t\t\t}\n\t\t\t})\n\t\t});\n\t}\n\n\tasync cargarListasPrestamoRecojer() {\n\t\tthis.listaAccionesPrestamo = this.tipoNovedadPipe.LISTA_ACCIONES_PRESTAMO;\n\t\tthis.listaPrestamos = [];\n\t\tif ( this.empleadoDTO == null ) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif ( this.isPrestamoCompraCartera()) {\n\t\t\tvar descripcion;\n\t\t\tvar liquidacionperDTO = new LiquidacionperModel();\n\t\t\tliquidacionperDTO.empresa = this.empleadoDTO.empresa;\n\t\t\tliquidacionperDTO.identifica = this.empleadoDTO.contrato;\n\t\t\tliquidacionperDTO.judicial = 'N';\n\t\t\tliquidacionperDTO.estado = 'A';\n\t\t\tvar lista: LiquidacionperModel[] = await this.generalService.queryForList(new GeneralModel('LiquidacionperDTO', null, false, liquidacionperDTO)).toPromise();\n\t\t\tlista.forEach(unPrestamo => {\n\t\t\t\tdescripcion = unPrestamo.numeroProceso != null ? unPrestamo.numeroProceso : unPrestamo.numero.toString();\n\t\t\t\tdescripcion = descripcion + ' - '+ unPrestamo.descripcion;\n\t\t\t\tif (unPrestamo.valorCuotaActual != null ) {\n\t\t\t\t\tdescripcion = descripcion + ' : Cuota Actual = '+ unPrestamo.valorCuotaActual;//NumeroUtils.decimalToString(unPrestamo.getValorCuotaActual(), '$###,###.00');\n\t\t\t\t}\n\t\t\t\tthis.listaPrestamos.push({codigo: unPrestamo.numero, nombre: descripcion});\n\t\t\t})\n\t\t}\n\t\tlet mapaRetorna: Map<number, String> = new Map<number, String>();\n\t\tthis.generalService.queryForList({\n\t\t\tnombreConsulta: 'Concepto.consultarConcepto',\n\t\t\tnombreDTO: 'ConceptoDTO',\n\t\t\tseguridad: false,\n\t\t\tobjeto: {\n\t\t\tmodo: this.empresaDTO.modoCompensacion\n\t\t\t}\n\t\t}).subscribe((data) => {\n\t\t\tdata.forEach(item => {\n\t\t\tmapaRetorna.set(item.concepto, item.concepto.toString() + ' : ' + item.descripcion)\n\t\t\t});\n\t\t\tthis.mapNewConceptoDown = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n\t\t});\n\t\tlet mapaRetorna2: Map<number, String> = new Map<number, String>();\n\t\tthis.generalService.queryForList({\n\t\t\tnombreConsulta: null,\n\t\t\tnombreDTO: 'ConsolidadorDTO',\n\t\t\tseguridad: false,\n\t\t\tobjeto: {\n\t\t\tmodo: this.empresaDTO.modoCompensacion,\n\t\t\torigen: 'N'\n\t\t\t}\n\t\t}).subscribe((data) => {\n\t\t\tdata.forEach(item => {\n\t\t\tmapaRetorna2.set(item.consolidador, item.consolidador.toString() + ' : ' + item.descripcion)\n\t\t\t});\n\t\t\tthis.mapNewConsolidadorDown = Array.from(mapaRetorna2, ([key, label]) => ({ key, label }));\n\t\t});\n\t}\n\n\tasync cantidadDocumentoConfigurados() {\n\t\tvar filtro = new MomentoDocumentoModel();\n\t\tfiltro.momento = this.tipoNovedadDTO.llave;\n\t\tfiltro.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n\t\treturn await this.generalService.cantidadRegistros(new GeneralModel('MomentoDocumentoDTO', null, false, filtro)).toPromise();\n\t}\n\n\tprivate async traerListadoNovedad() {\n\t\tthis.paginadorCargado = false;\n\t\tvar filtroTipoNovedadPadre: TipoNovedadModel = new TipoNovedadModel();\n\t\tfiltroTipoNovedadPadre.origenFiltroNovedad = (this.getOrigenFiltro());\n\t\tfiltroTipoNovedadPadre.solicitud = 'N';\n\t\tfiltroTipoNovedadPadre.modo = this.empresaDTO.modoCompensacion;\n\t\tfiltroTipoNovedadPadre.login = this.authService.getTokenKey('usuario');\n\t\tfiltroTipoNovedadPadre.rolUsuario = this.authService.getTokenKey('aliasRol');\n\t\tfiltroTipoNovedadPadre.identifica = this.empleadoDTO != null ? this.empleadoDTO.contrato : null;\n\t\tfiltroTipoNovedadPadre.empresa = this.empleadoDTO != null ? this.empleadoDTO.empresa : null;\n\t\tfiltroTipoNovedadPadre.comodinBusqueda = this.parametroBusqueda != null ? '%' + this.parametroBusqueda + '%' : null;\n\t\t/*if (isAutoServicioPortal()) {\n\t\t\tif (this.utilsService.isNotBlank(parametroHijos)) {\n\t\t\t\tfiltroTipoNovedadPadre.CodNovedadesHijas(parametroHijos);\n\t\t\t}\n\t\t\tif (this.utilsService.isBlank(parametroHijos) && this.utilsService.isNotBlank(parametroFiltro)) {\n\t\t\t\tfiltroTipoNovedadPadre.CodNovedadesPadre(parametroFiltro);\n\t\t\t}\n\t\t}*/\n\t\tthis.novedadesBase = await this.tipoNovedadService.obtenerTipoNovedadEmpleado(filtroTipoNovedadPadre).toPromise();\n\t\tthis.cargarListaNovedades({});\n\t}\n\n\tasync traerUnicoAdjunto(llaveNovedad: string) {\n\t\tif (llaveNovedad == null) {\n\t\t\treturn new ArchivoModel();\n\t\t}\n\t\tvar unicoAdjunto = new ArchivoModel();\n\t\tunicoAdjunto.novedad = llaveNovedad;\n\t\tunicoAdjunto = await this.generalService.queryForObject(new GeneralModel('ArchivoDTO', null, false, unicoAdjunto)).toPromise(); \n\t\tif (unicoAdjunto == null || unicoAdjunto == undefined)  {\n\t\t\tunicoAdjunto = new ArchivoModel();\n\t\t\treturn unicoAdjunto;\n\t\t}\n\t\treturn unicoAdjunto;\n\t}\n\n\tpublic async nuevoDocumento(event) {\n\t\tthis.momentoDocumentoDTO = event.data;\n\t\tawait this.popupDocumentoNovedad.cargarDocumento(this.momentoDocumentoDTO, this.novedadDTO, this.encuesta || this.procesoAutorizacion, this.momentoDocumentoDTO.tipoDocumento)\n\t}\n\n\tpublic cargarDocumento(event) {\n\t\tthis.momentoDocumentoDTO = event.data;\n\t\tthis.popupDocumentoNovedad.cargarDocumento(this.momentoDocumentoDTO, this.novedadDTO, this.encuesta || this.procesoAutorizacion);\n\t}\n\n\tsetDocumento(requisitoHojaDTO: RequisitoHojaModel) {\n\t\tif (requisitoHojaDTO != null) {\n\t\t\tif (!requisitoHojaDTO.eliminarRegistro) {\n\t\t\t\tthis.adicionarModificarAnexo(requisitoHojaDTO);\n\t\t\t} else {\n\t\t\t\tthis.eliminarAnexo(requisitoHojaDTO).then(data => {});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.momentoDocumentoDTO.ruta = null;\n\t\t}\n\t}\n\n\tasync eliminarAnexo(requisitoAnexo: RequisitoHojaModel) {\n\t\tif (this.nuevo) {\n\t\t\tthis.listaRequisitoHoja.filter(objeto => objeto.archivo !== requisitoAnexo.archivo);\n\t\t} else {\n\t\t\tawait this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoAnexo)).toPromise();\n\t\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t\t}\n\t}\n\n\tprivate validarRequisitoRepetido(requisitoHojaDTO: RequisitoHojaModel) {\n\t\tvar listaRemover = [];\n\t\tthis.listaRequisitoHoja.forEach(requisito => {\n\t\t\tif (requisitoHojaDTO.tipoDocumento == requisito.tipoDocumento) {\n\t\t\t\tlistaRemover.push(requisito);\n\t\t\t}\n\t\t})\n\t\tthis.listaRequisitoHoja = this.listaRequisitoHoja.filter(itemA => !listaRemover.includes(itemA));\n\t}\n\n\tprivate adicionarModificarAnexo(requisitoAnexo: RequisitoHojaModel) {\n\t\tvar extensionArchivo: string[] = requisitoAnexo.archivo != null ? requisitoAnexo.archivo.split('\\\\.')\n\t\t\t\t: null;\n\t\tthis.validarRequisitoRepetido(requisitoAnexo);\n\n\t\tthis.listaRequisitoHoja.push(requisitoAnexo);\n\t\tthis.listaDocumentoTipoNovedad.forEach(documento => {\n\t\t\tif (documento.tipoDocumento != null\n\t\t\t\t\t&& documento.tipoDocumento == requisitoAnexo.tipoDocumento) {\n\t\t\t\tdocumento.requisitoHojaDTO = requisitoAnexo;\n\t\t\t\tif (this.generalPipe.SI == requisitoAnexo.anexo) {\n\t\t\t\t\t//String rutaArchivo = getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)\n\t\t\t\t\t//\t\t+ requisitoAnexo.llave + this.generalPipe.PUNTO\n\t\t\t\t\t//\t\t+ extensionArchivo[extensionArchivo.length - 1];\n\t\t\t\t\t//documento.Ruta(EncriptadorBasico.encriptar(FacesUtils.ParametroRutaSession(rutaArchivo)));\n\t\t\t\t}\n\t\t\t\t//break;\n\t\t\t}\n\t\t})\n\t\tif (!this.nuevo) {\n\t\t\tthis.guardarListaDocumentosNovedad();\n\t\t}\n\t}\n\n\tpublic guardarListaDocumentosNovedad() {\n\t\tthis.listaRequisitoHojaBorrar?.forEach(async requisitoHojaBorrar => {\n\t\t\tawait this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaBorrar)).toPromise();\n\t\t})\n\n\t\tthis.listaRequisitoHoja.forEach(async requisitoHojaDTO => {\n\t\t\tvar tipoDocumento = new TipoDocumentoModel();\n\t\t\ttipoDocumento = await this.generalService.queryForObject(new GeneralModel('TipoDocumentoDTO', null, false, {documento: requisitoHojaDTO.tipoDocumento})).toPromise();\n\n\t\t\tvar exiteRequisito: boolean = await this.generalService.cantidadRegistros(new GeneralModel('RequisitoHojaDTO', null, false, {llave: requisitoHojaDTO.llave})).toPromise() > 0;\n\t\t\tif (!exiteRequisito) {\n\t\t\t\trequisitoHojaDTO.contrato =  0;\n\t\t\t\tif (this.parametrosPipe.DOCUMENTO_ANEXO == (tipoDocumento.tipoDocumento)) {\n\t\t\t\t\tif (requisitoHojaDTO.archivo != null) {\n\t\t\t\t\t\trequisitoHojaDTO.estado = this.listaConstantesPipe.CUMPLIDO;\n\t\t\t\t\t\trequisitoHojaDTO.cumplido = new Date();\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequisitoHojaDTO.estado = this.listaConstantesPipe.NOCUMPLIDO;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trequisitoHojaDTO.actoAdministrativo = this.novedadDTO.llaveTabla;\n\t\t\t\trequisitoHojaDTO = await this.generalService.crearRegistro(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaDTO)).toPromise();\n\t\t\t} else {\n\t\t\t\t// Si requisitoHojaDTO no es nuevo se actualiza\n\t\t\t\tif (this.generalPipe.SI == requisitoHojaDTO.anexo\n\t\t\t\t\t\t&& this.parametrosPipe.DOCUMENTO_ANEXO == tipoDocumento.tipoDocumento) {\n\t\t\t\t\trequisitoHojaDTO.estado = this.listaConstantesPipe.CUMPLIDO;\n\t\t\t\t\trequisitoHojaDTO.cumplido = new Date();\n\t\t\t\t}\n\t\t\t\tawait this.generalService.update(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaDTO)).toPromise();\n\t\t\t}\n\t\t})\n\t\tthis.listaRequisitoHoja = [];\n\t}\n\n\tsetZonaCentro(centroCostoDTO: CentroCostoModel) {\n\t\tif (centroCostoDTO.descripcion != null) {\n\t\t\tthis.novedadDTO.zonaeconomica = centroCostoDTO.zonaEconomica;\n\t\t\tthis.novedadDTO.nombreZonaEconomica = centroCostoDTO.descripcionZona;\n\t\t\tthis.novedadDTO.centrocosto = centroCostoDTO.centroCosto;\n\t\t\tthis.novedadDTO.nombreCentroCosto = centroCostoDTO.descripcion;\n\n\t\t}\n\t}\n\n\tregresarAction(){\n\t\tthis.listaLiquidacionPeriodica = []\n\t\tthis.listaEntidadServicio = []\n\t\tthis.mostrar = false;\n\t}\n\n\tsetSucursalEntidad(sucursalEntidadDTO: any) {\n\t\tthis.novedadDTO.entidad = sucursalEntidadDTO.entidad;\n\t\tthis.novedadDTO.nombreEntidad = sucursalEntidadDTO.nombreEntidad;\n\t\tthis.novedadDTO.sucursal = sucursalEntidadDTO.sucursal;\n\t\tthis.novedadDTO.nombreSucursal = sucursalEntidadDTO.sucursal + ' - ' + sucursalEntidadDTO.nombreSucursal;\n\t\tthis.novedadDTO.nombreServicio = sucursalEntidadDTO.nombreTipoServicio;\n\t}\n\n\tdescargarAnexo(documento) {\n\t\tlet propiedad = 'ruta_anexosHojaVida';\n\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\t//Ruta archivo\n\t\tvar extension = documento.requisitoHojaDTO.archivo.split('?')[0].split('.').pop();\n\t\tvar nombrearchivo = this.encriptadorBasico.encriptar(documento.requisitoHojaDTO.llave + '.' + extension )\n\t\tthis.cargarArchivo.descargarArchivo(nombrearchivo, propiedad, aplicacion).subscribe(blob => {\n\t\t  const a = document.createElement('a')\n\t\t  const objectUrl = URL.createObjectURL(blob)\n\t\t  a.href = objectUrl\n\t\t  a.download = documento.requisitoHojaDTO.archivo;\n\t\t  a.click();\n\t\t  URL.revokeObjectURL(objectUrl);\n\t\t});\n\t\n\t}\n\n\tdescargarAnexoUnico() {\n\t\tlet propiedad = 'ruta_anexosHojaVida';\n\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.getRutaFisicaUnicoAdjunto()), propiedad, aplicacion).subscribe(blob => {\n\t\t  const a = document.createElement('a')\n\t\t  const objectUrl = URL.createObjectURL(blob)\n\t\t  a.href = objectUrl\n\t\t  a.download = this.unicoAdjunto.archivoorigen;\n\t\t  a.click();\n\t\t  URL.revokeObjectURL(objectUrl);\n\t\t});\n\t\n\t}\n\n\tgetRutaFisicaUnicoAdjunto(tabla?: string) {\n\t\tif (this.unicoAdjunto.archivoorigen === null) {\n\t\t  return null;\n\t\t}\n\t\n\t\tconst indice = this.unicoAdjunto.archivoorigen.lastIndexOf('.');\n\t\tlet extension = 'pdf';\n\t\n\t\tif (indice !== -1) {\n\t\t  extension = this.unicoAdjunto.archivoorigen.substring(indice + 1);\n\t\t}\n\t\tlet retorno = tabla ? tabla : '';\n\t\tif (this.unicoAdjunto.carpeta === null) {\n\t\t  retorno = retorno + this.unicoAdjunto.llaveTabla + '.' + extension;\n\t\t} else {\n\t\t  retorno = retorno + this.unicoAdjunto.carpeta + this.unicoAdjunto.llaveTabla + '.' + extension;\n\t\t}\n\t\treturn retorno;\n\t  }\n\t\n\tasync eliminarAnexoUnico(documento) {\n\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\tlet data = await this.archivoAnexoHojaVidaService.eliminarAnexo(documento).toPromise();\n\t\tif (data == 1) {\n\t\t\tawait this.cargarArchivo.eliminarArchivo(this.encriptadorBasico.encriptar(this.getRutaFisicaUnicoAdjunto()), propiedad, aplicacion).toPromise();\n\t\t}\n\t  }\n\n\tisConceptoPeriodoValorFijo() {\n\t\treturn this.validarConceptoValorFijoSegunTipoNovedad(this.tipoNovedadPipe.CONCEPTO_PERIODO);\n\t}\n\n\tgetNombreEstado() {\n\t\tvar nombreEstado = 'ESTADO NO DEFINIDO';\n\t\tif (this.novedadDTO.estado == null || this.novedadDTO.estado == undefined) {\n\t\t\treturn '';\n\t\t} \n\t\tif ( this.novedadDTO.estado == this.novedadPipe.PROGRAMADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCPROGRAMADA;\n\t\t} else if ( this.novedadDTO.estado == this.novedadPipe.LEGALIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCLEGALIZADA;\n\t\t} else if ( this.novedadDTO.estado == this.novedadPipe.NO_LEGALIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.NO_LEGALIZADA_DESC;\n\t\t} else if ( this.novedadDTO.estado == this.novedadPipe.AUTORIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCAUTORIZADA;\n\t\t} else if ( this.novedadDTO.estado == this.novedadPipe.NOAUTORIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCNOAUTORIZADA;\n\t\t} else if ( this.novedadDTO.estado == this.novedadPipe.SOLICITUD) {\n\t\t\tnombreEstado = this.novedadPipe.DESCSOLICITUD;\n\t\t} else if ( this.novedadDTO.estado == this.novedadPipe.PRELIQUIDACION) {\n\t\t\tnombreEstado = this.novedadPipe.DESCPRELIQUIDACION;\n\t\t}\n\t\treturn nombreEstado;\n\t}\n\n\tgetEstadoDoc(estado: string){\n\t\tvar estadoRetorno= '';\n\t\tvar retorno = this.mapaEstadoDoc.filter(element => element.codigo == estado)\n\t\tif (retorno?.length > 0){\n\t\t\testadoRetorno = retorno[0].nombre\n\t\t}\n\t\treturn estadoRetorno;\n\t}\n\n\tisPeriodoAplica() {\n\t\treturn this.novedadDTO !=null && this.novedadDTO != undefined && this.novedadDTO.periodoAplica != null && this.novedadDTO.periodoAplica != undefined;\n\t}\n\t\n\t/**\n\t * Valida si la novedad es concepto empleado y el concepto es valor fijo para habilitar el diligenciamiento del campo valor en la novedad\n\t * @return true si la novedad es concepto empleado y el concepto es valor fijo, en caso contrario retorna false\n\t */\n\tisConceptoEmpleadoValorFijo() {\n\t\treturn this.validarConceptoValorFijoSegunTipoNovedad(this.tipoNovedadPipe.CONCEPTO_EMPLEADO);\n\t}\n\t\n\tvalidarConceptoValorFijoSegunTipoNovedad(tipoNovedad: string) {\n\t\tif (this.tipoNovedadDTO != null && tipoNovedad != null && tipoNovedad == this.tipoNovedadDTO.tipo\n\t\t\t\t&& this.tipoNovedadDTO.concepto != null) {\n\t\t\treturn ('V' == this.tipoNovedadDTO.conceptoEsFormula || 'M' == this.tipoNovedadDTO.conceptoEsFormula ) ? true : false;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisRenderEntidad() {\n\t\tif (this.tipoNovedadDTO == null) {\n\t\t\treturn false;\n\t\t} \n\n\t\tthis.listaEntidad = [];\n\t\tif (this.isEsConceptoPeriodo()) {\n\t\t\t\n\t\t\tif (this.tipoNovedadDTO.conceptoUnico != null && this.tipoNovedadDTO.conceptoUnico != 'N' && this.tipoNovedadDTO.conceptoTipoServicio != null && this.tipoNovedadDTO.conceptoTipoServicio.trim() != '.') {\n\t\t\t\tthis.generalService.queryForList(new GeneralModel('EntidadDTO', 'Entidad.entidadesTipoNovedad', false, {llave: this.tipoNovedadDTO.llave})).subscribe(data => {\n\t\t\t\t\tvar entidades = data;\n\t\t\t\t\tthis.listaEntidad = [];\n\t\t\t\t\tif (entidades.length > 0) {\n\t\t\t\t\t\tentidades.forEach(entidadDTO => {\n\t\t\t\t\t\t\tthis.listaEntidad.push({codigo: entidadDTO.llave, nombre: entidadDTO.descripcion});\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tisNovedadNomina() {\n\t\treturn this.novedadPipe.ORIGEN_NOVEDAD_NOMINA == this.tareaOrigen;\n\t}\n\n\tisActividadNovedad() {\n\t\treturn this.novedadPipe.ORIGEN_ACTIVIDAD_NOVEDAD_EMPLEADO == this.tareaOrigen;\n\t}\n\n\tisNovedadEmpleado() {\n\t\treturn this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.tareaOrigen;\n\t}\n\n\tisLiquidacionMasivaNueva() {\n\t\treturn this.tareaOrigen == ( this.novedadPipe.ORIGEN_NOVEDAD_LIQ_MASIVA) && this.nuevo; \n\t}\n\n\tgetOrigenFiltro() {\n\t\tif(this.isLiquidacionMasivaNueva()) {\n\t\t\treturn this.novedadPipe.ORIGEN_FILTRO_NOVEDAD_LIQ_MASIVA;\n\t\t}\n\t\treturn null;\n\t}\n\n\tisExisteNovedad() {\n\t\tif ( this.novedadDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.novedadDTO.estado != null;\n\t}\n\n\tisMostrarTerminos(){\n\t\treturn this.tipoNovedadDTO != null && this.utilsService.isNotBlank(this.tipoNovedadDTO.termino);  \n\t}\n\t\n\tisVerPresupuestal(){\n\t\treturn this.tipoNovedadDTO != null && this.utilsService.isNotBlank(this.tipoNovedadDTO.servicioValidador); \n\t}\n\t\n\tisNovedadMultiple() {\n\t\treturn this.tipoNovedadPipe.TIPO_NOVEDAD_MULTIPLE == this.tipoNovedadDTO.tipoRelacion;\n\t}\n\n\tisEsVariable() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_EMPLEADO == this.tipoNovedadDTO.tipo || this.tipoNovedadPipe.VARIABLE_PERIODO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsVariableEmpleado() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_EMPLEADO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsVariablePeriodo() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_PERIODO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsVariableFecha() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_PERIODO_FECHAS == this.tipoNovedadDTO.tipo || this.tipoNovedadPipe.VARIABLE_EMPLEADO_FECHAS == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsVariableFechaPeriodo() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_PERIODO_FECHAS == this.tipoNovedadDTO.tipo;\n\t}\n\t\n\tisEsVariableFechaEmpleado() {\n\t\treturn this.tipoNovedadPipe.VARIABLE_EMPLEADO_FECHAS == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsConcepto() {\n\t\treturn this.tipoNovedadPipe.CONCEPTO_EMPLEADO == this.tipoNovedadDTO.tipo || this.tipoNovedadPipe.CONCEPTO_PERIODO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsConceptoEmpleado() {\n\t\treturn this.tipoNovedadPipe.CONCEPTO_EMPLEADO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsConceptoPeriodo() {\n\t\treturn this.tipoNovedadPipe.CONCEPTO_PERIODO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsEmbargo() {\n\t\treturn this.tipoNovedadPipe.EMBARGO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsPrestamo() {\n\t\treturn this.tipoNovedadPipe.LIQUIDACION_PERIODICA == this.tipoNovedadDTO.tipo;\n\t}\n\n\tisEsCambioEntidad() {\n\t\treturn this.tipoNovedadPipe.CAMBIOENTIDAD == this.tipoNovedadDTO.tipo;\n\t}\n\t\n\tisEsProrroga() {\n\t\treturn this.tipoNovedadPipe.PRORROGA == this.tipoNovedadDTO.tipo;\n\t}\n\t\n\tisEsTipoCambioEmpleado() {\n\t\treturn this.tipoNovedadDTO != null && this.tipoNovedadPipe.CAMBIO_EMPLEADO == this.tipoNovedadDTO.tipo;\n\t}\n\n\n\tisNuevaCambioEntidad(){\n\t\tif ( !this.isEsCambioEntidad()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.NUEVA_CAMBIO_ENTIDAD == this.tipoNovedadDTO.accion;\n\t}\n\n\tisBorrarCambioEntidad(){\n\t\tif ( !this.isEsCambioEntidad()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.BORRAR_CAMBIO_ENTIDAD == this.tipoNovedadDTO.accion;\n\t}\n\t\n\tisModificarCambioEntidad(){\n\t\tif ( !this.isEsCambioEntidad()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.MODIFICAR_CAMBIO_ENTIDAD == this.tipoNovedadDTO.accion;\n\t}\n\n\tisEsTerminacionContrato() {\n\t\treturn this.tipoNovedadPipe.TERMINACION_CONTRATO == this.tipoNovedadDTO.tipo;\n\t}\n\t\n\tisPrestamoAbonoExtra() {\n\t\tif ( !this.isEsPrestamo() && !this.isEsEmbargo()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.NOVEDAD_PRESTAMO_ABONO_EXTRA == this.tipoNovedadDTO.accion;\n\t}\n\t\n\tisPrestamoAbonoFuera() {\n\t\tif ( !this.isEsPrestamo() && !this.isEsEmbargo()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.NOVEDAD_PRESTAMO_ABONO_FUERA == this.tipoNovedadDTO.accion;\n\t}\n\n\tisPrestamoCancelacion() {\n\t\tif ( !this.isEsPrestamo() && !this.isEsEmbargo()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.NOVEDAD_PRESTAMO_CANCELACION == this.tipoNovedadDTO.accion;\n\t}\n\n\tisPrestamoCambioCuota() {\n\t\tif ( !this.isEsPrestamo() && !this.isEsEmbargo()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.NOVEDAD_PRESTAMO_CAMBIO_CUOTA == this.tipoNovedadDTO.accion;\n\t}\n\t\n\t\n\tisPrestamoNuevo() {\n\t\tif ( !this.isEsPrestamo() && !this.isEsEmbargo()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.NOVEDAD_PRESTAMO_NUEVO == this.tipoNovedadDTO.accion || this.tipoNovedadPipe.NOVEDAD_PRESTAMO_NUEVO_COMPRA == this.tipoNovedadDTO.accion;\n\t}\n\n\tisPrestamoCompraCartera() {\n\t\tif ( !this.isEsPrestamo() && !this.isEsEmbargo()) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.tipoNovedadPipe.NOVEDAD_PRESTAMO_NUEVO_COMPRA == this.tipoNovedadDTO.accion;\n\t}\n\n\tisPeriodoNomina() {\n\t\tif (this.tipoNovedadDTO.tipo != null) {\n\t\t\tif ( this.tipoNovedadDTO.tipo == this.tipoNovedadPipe.VARIABLE_PERIODO || this.tipoNovedadDTO.tipo == this.tipoNovedadPipe.CONCEPTO_PERIODO || this.tipoNovedadDTO.tipo == this.tipoNovedadPipe.VARIABLE_PERIODO_FECHAS) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tisNovedadMasivaSoportada() {\n\t\treturn this.isEsVariablePeriodo() || this.isEsConceptoPeriodo()\n\t\t\t\t|| this.isEsVariableFechaPeriodo();\n\t}\n\n\tobtenerDescripcionTipoNovedad(){\n\t\tvar inicio: string = this.novedadDTO.tipoNovedadDescripcion ? this.novedadDTO.tipoNovedadDescripcion : '';\n\t\tvar respuesta: string = inicio;\n\t\tif (this.novedadDTO.variable){\n\t\t\trespuesta = respuesta + (' - ('+this.novedadDTO.variable+') '+ (this.novedadDTO.descripcionVariable ? this.novedadDTO.descripcionVariable : ''))\n\t\t}\n\t\tif (this.novedadDTO.concepto) {\n\t\t\trespuesta = respuesta + (' - ('+this.novedadDTO.concepto+') '+(this.novedadDTO.descripcionConcepto ? this.novedadDTO.descripcionConcepto : ''))\n\t\t}\n\t\tif (this.novedadDTO.variableFecha) {\n\t\t\trespuesta = respuesta + (' - ('+this.novedadDTO.codigoVariableFecha+') '+(this.novedadDTO.descripcionVariableFecha ? this.novedadDTO.descripcionVariableFecha : ''))\n\t\t}\n\t\tif (this.novedadDTO.liquidacionPeriodica) {\n\t\t\trespuesta = respuesta + (' - ('+this.novedadDTO.liquidacionPeriodica+') '+(this.novedadDTO.descripcionLiquidaPeriodica ? this.novedadDTO.descripcionLiquidaPeriodica : ''))\n\t\t}\n\t\treturn respuesta.toUpperCase();\n\t}\n\n\tpublic async verAutorizacion(llaveActividad: string) {\n\t\tthis.mostrar = true;\n\t\tthis.paginator.totalRecords = 1\n\t\tvar actividad = new ActividadFuenteTareaModel();\n\t\tactividad.llaveTabla = llaveActividad;\n\t\tactividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n\n\t\tvar novedad = new NovedadModel();\n\t\tnovedad.llaveTabla = actividad.llaveTablaBase;\n\t\tnovedad = await this.generalService.queryForObject(new GeneralModel('NovedadDTO', null, false, novedad)).toPromise();\n\n\t\tif (novedad == null) {\n\t\t\tthis.notificacionesService.showError(\"Registro no encontrado\");\n\t\t\tthis.regresarAction();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.encuesta = false;\n\t\tthis.procesoAutorizacion = true;\n\n\t\tawait this.utilsService.sleep(300);\n\t\t//this.ejecucionAutorizacion.setNavegacion(getReglaNavegacion());\n\t\tawait this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESONOVEDAD, novedad);\n\n\t\tthis.empleadoDTO = new EmpleadoModel();\n\t\tthis.empleadoDTO.contrato = novedad.contrato;\n\t\tthis.empleadoDTO.empresa = novedad.empresa;\n\t\tthis.empleadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleadoDTO)).toPromise();\n\n\t\tthis.mostrarDetalle = true;\n\t\t\n\t\tawait this.buscarBPM(this.novedadPipe.ORIGEN_ACTIVIDAD_NOVEDAD_EMPLEADO, false, novedad, this.empleadoDTO);\n\t\tthis.mostrar = true;\n\t}\n\n\tpublic async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n\t\tvar actividad = new ActividadFuenteTareaModel();\n\t\tactividad.llaveTabla = llaveActividad;\n\t\tactividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n\n\t\tvar novedad = new NovedadModel();\n\t\tnovedad.llaveTabla = actividad.llaveTablaBase;\n\t\tnovedad = await this.generalService.queryForObject(new GeneralModel('NovedadDTO', null, false, novedad)).toPromise();\n\n\t\tif (novedad == null) {\n\t\t\tthis.notificacionesService.showError(\"Registro no encontrado\");\n\t\t\tthis.regresarAction();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.encuesta = true;\n\t\tthis.procesoAutorizacion = false;\n\n\t\tawait this.utilsService.sleep(300);\n\t\t//bean.setReglaNavegacion(getReglaNavegacion());\n\t\tawait this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, novedad);\n\n\t\tthis.empleadoDTO = new EmpleadoModel();\n\t\tthis.empleadoDTO.contrato = novedad.contrato;\n\t\tthis.empleadoDTO.empresa = novedad.empresa;\n\t\tthis.empleadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleadoDTO)).toPromise();\n\n\t\t\n\t\tawait this.buscarBPM(this.novedadPipe.ORIGEN_ACTIVIDAD_NOVEDAD_EMPLEADO, false, novedad, this.empleadoDTO);\n\t\tthis.mostrar = true;\n\t\tthis.mostrarDetalle = true;\n\n\t}\n\n\tasync buscarBPM(tareaOrigen: string, nuevo: boolean, novedad: NovedadModel, empleado: EmpleadoModel) {\n\t\tawait this.cargarInit();\n\t\tthis.tareaOrigen = tareaOrigen;\n\t\tawait this.cargarInformacion(nuevo, novedad, empleado);\n\t}\n\n\tconsultarBeneficiario() {\n\t\tthis.novedadDTO.nombreBeneficiario = '';\n\t\tif (!this.novedadDTO.beneficiario){\n\t\t\treturn;\n\t\t}\n\t\tthis.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, {identifica: this.novedadDTO.beneficiario})).subscribe(data => {\n\t\t\tif (data) {\n\t\t\t\tlet hojaVida: HojaVidaModel = new HojaVidaModel();\n\t\t\t\thojaVida.nombres = data.nombres;\n\t\t\t\thojaVida.primerapellid = data.primerapellid;\n\t\t\t\thojaVida.segundoapelli = data.segundoapelli;\n\t\t\t\tthis.novedadDTO.nombreBeneficiario = hojaVida.getNombreCompleto();\n\t\t\t}\n\t\t})\n\t}\n\n\tvalidarExtensiones() {\n\t\tlet extensionesPermitidas: string[] = ['pdf', 'PDF', 'doc', 'DOC', 'docx', 'DOCX', 'xls', 'XLS', 'xlsx', 'XLSX'];\n\t\treturn extensionesPermitidas.map(ext => `.${ext}`).join(',');\n\t}\n\n\tsetAdjunto(data: any, fubauto) {\n\t\tthis.archivoSeleccionadoAnexo = data.files[0];\n\t\tlet extArchivo = this.archivoSeleccionadoAnexo.name.split('.')[1];\n\t\tlet extPermitidas = fubauto.accept.split(',');\n\t\textPermitidas = extPermitidas.map(ext => ext.trim().toLowerCase());\n\t\tif (extPermitidas.includes('.' + extArchivo.toLowerCase())) {\n\t\t  this.readFile(this.archivoSeleccionadoAnexo);\n\t\t  this.unicoAdjunto.descripcion = (this.tipoNovedadDTO.descripcion);\n\t\t  this.unicoAdjunto.contrato = (this.novedadDTO.contrato);\n\t\t  this.unicoAdjunto.empresa = (this.novedadDTO.empresa);\n\t\t  this.unicoAdjunto.novedad = (this.novedadDTO.llaveTabla);\n\t\t  this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n\t\t  fubauto.clear();\n\t\t} else {\n\t\t  this.notificacionesService.showError('Solo son permitidas las extensiones '+fubauto.accept);\n\t\t  return;\n\t\t}\n\t}\n\n\tprivate readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n\t\tthis.unicoAdjunto.archivoorigen = file.name;\n\t}\n\n\tasync guardarAnexo() {\n\t\tif (!this.archivoSeleccionadoAnexo) {\n\t\t\treturn;\n\t\t}\n\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\tlet rutaCarpeta = this.crearEstructuraAnexo()\n\t\tlet codigoAplicacion = this.authService.getTokenKey('aplicacion');\n\t\tlet llaveNuevoReg: string = '';\n\t\tif (this.unicoAdjunto.llaveTabla != null) {\n\t\t  this.cargarArchivo.eliminarArchivo(this.encriptadorBasico.encriptar(this.getRutaFisicaUnicoAdjunto() ), propiedad, codigoAplicacion).subscribe(blob => { });\n\t\t  llaveNuevoReg = this.unicoAdjunto.llaveTabla\n\t\t} else {\n\t\t  llaveNuevoReg = this.utilsService.generarLlave();\n\t\t}\n\t\tlet fileExtension: string = this.archivoSeleccionadoAnexo.name.split('?')[0].split('.').pop();\n\t\tthis.archivoSeleccionadoAnexo = new File([this.archivoSeleccionadoAnexo], llaveNuevoReg + '.' + fileExtension);\n\t\tawait this.cargarArchivo.cargarArchivo(this.archivoSeleccionadoAnexo, rutaCarpeta, propiedad, codigoAplicacion).subscribe({\n\t\t  next: async (event) => {\n\t\t\tif (event.type === HttpEventType.Response) {\n\t\t\t  let response: any = event.body;\n\t\t\t  //this.unicoAdjunto.archivoorigen = this.nombreArchivo;\n\t\t\t  this.unicoAdjunto.llaveTemporal = llaveNuevoReg;\n\t\t\t  await this.hojaVidaService.insertAdjuntoTabla({ archivo: this.unicoAdjunto, tabla: 'novedad_nov', llaveBase: this.novedadDTO.llaveTabla }).subscribe({\n\t\t\t\tnext: async (data) => {\n\t\t\t\t  if (data != null) {\n\t\t\t\t\tthis.unicoAdjunto = await this.traerUnicoAdjunto(this.novedadDTO.llaveTabla);\n\t\t\t\t  } else {\n\t\t\t\t\tthis.notificacionesService.showError('Error en el método de agregar anexo');\n\t\t\t\t  }\n\t\t\t\t},\n\t\t\t  });\n\t\t\t}\n\t\t  },\n\t\t});\n\t}\n\n\tcancelarGuardarPrestamo() {\n\t\tthis.vistaVisualizarDetalle = null;\n\t\tthis.habilitaCampo = false;\n\t\tthis.prestamoCancelar = new NovedadDatoModel();\n\t}\n\t\n\tadicionarPrestamoCancelar() {\n\t\tif ( this.prestamoCancelar.numero != null && this.prestamoCancelar.numero ==0) {\n\t\t\tthis.prestamoCancelar.numero == null;\n\t\t}\n\n\t\tvar validar = this.utilsService.validarCampoObligatorio(this.prestamoCancelar.numero);\n\n\t\tif (!validar) {\n\t\t\tif ( this.prestamoCancelar.numero == null) {\n\t\t\t\tthis.prestamoCancelar.numero == 0;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tfor (var unNovedadDato of this.listaNovedadDato) {\n\t\t\tif (this.prestamoCancelar.numero == unNovedadDato.numero) {\n\t\t\t\tthis.notificacionesService.showWarning(\"Numero ya relacionado\");\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tthis.listaNovedadDato.push(this.prestamoCancelar);\n\t\tthis.prestamoCancelar = new NovedadDatoModel();\n\t\tthis.prestamoCancelar.numero == 0;\n\t\tthis.vistaVisualizarDetalle = null;\n\t\tthis.habilitaCampo = false;\n\t\treturn null;\n\t}\n\n\tnuevoPrestamoCancelar() {\n\t\tthis.habilitaCampo = true;\n\t\tthis.prestamoCancelar = new NovedadDatoModel();\n\t\tthis.vistaVisualizarDetalle = 'nuevoPrestamoCancelar'\n\t  }\n\n\teliminarPrestamoCancelar(event) {\n\t\tvar eliminar: NovedadDatoModel = event;\n\n\t\tthis.listaNovedadDato = this.eliminarObjetoDeArray(this.listaNovedadDato, eliminar);\n\t\tif (eliminar.llaveTabla == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.listaBorrarNovedadDato.push(eliminar);\n\t}\n\n\tvalidarPeriodoConBase() {\n\t\tvar validador = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.nuevoRegistroPeriodoConBase.tipo);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.nuevoRegistroPeriodoConBase.vigencia);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.nuevoRegistroPeriodoConBase.factor);\n\t\tif (this.nuevoRegistroPeriodoConBase.tipo == this.liquidacionPerPipe.CONCEPTO) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.nuevoRegistroPeriodoConBase.concepto);\n\t\t}\n\t\tif (this.nuevoRegistroPeriodoConBase.tipo == this.liquidacionPerPipe.CONSOLIDADOR) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.nuevoRegistroPeriodoConBase.consolidador);\n\t\t}\n\t\treturn validador;\n\t}\n\n\tadicionarBasePrestamo() {\n\t\tthis.clickGuardarBasePrestamo = true;\n\t\tif (!this.validarPeriodoConBase()) {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarBasePrestamo = false;\n\t\tthis.nuevoRegistroPeriodoConBase.origen = 'B';\n\t\tif (this.nuevoRegistroPeriodoConBase.tipo == this.liquidacionPerPipe.CONCEPTO) {\n\t\t\tthis.nuevoRegistroPeriodoConBase.descripcionConcepto = this.mapNewConceptoDown.filter(data => data.key == this.nuevoRegistroPeriodoConBase.concepto)[0].label;\n\t\t\tthis.nuevoRegistroPeriodoConBase.consolidador = 0\n\t\t} else {\n\t\t\tthis.nuevoRegistroPeriodoConBase.descripcionConsolidador = this.mapNewConsolidadorDown.filter(data => data.key == this.nuevoRegistroPeriodoConBase.concepto)[0].label;\n\t\t\tthis.nuevoRegistroPeriodoConBase.concepto = 0\n\t\t}\n\n\t\tthis.listaBasePrestamo.push(this.nuevoRegistroPeriodoConBase);\n\n\t\tthis.vistaVisualizarBasePrestamo = null;\n\t\tthis.nuevoRegistroPeriodoConBase = new PeriodoConcBaseModel;\n\t}\n\n\tnuevoBasePrestamo() {\n\t\tthis.vistaVisualizarBasePrestamo = 'nuevo'\n\t\tthis.nuevoRegistroPeriodoConBase = new PeriodoConcBaseModel();\n\t}\n\n\tcancelarBasePrestamo() {\n\t\tthis.vistaVisualizarBasePrestamo = null;\n\t\tthis.nuevoRegistroPeriodoConBase = new PeriodoConcBaseModel();\n\t}\n\n\teliminarBasePrestamo(event) {\n\t\tvar eliminar: PeriodoConcBaseModel = event;\n\t\tthis.listaBasePrestamo = this.eliminarObjetoDeArray(this.listaBasePrestamo, eliminar);\n\t\tif (eliminar.llave == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.listaBorrarBasePrestamo.push(eliminar);\n\t}\n\n\teliminarObjetoDeArray(array: any[], objeto: any): any[] {\n\t\tconst objetoCadena = JSON.stringify(objeto);\n  \t\treturn array.filter(obj => JSON.stringify(obj) !== objetoCadena);\n\t}\n\n\tcrearEstructuraAnexo(): string {\n\n\t\tconst fecha = new Date();\n\t\n\t\tlet anio = fecha.getFullYear();\n\t\tlet mes = fecha.getMonth() + 1;\n\t\tlet ruta = \"\";\n\t\truta = '/' + 'novedad_nov' + '/' + anio + '/' + mes + '/';\n\t\treturn ruta;\n\t  }\n\n\tasync isRenderValor() {\n\t\tif (!this.variableDTO) {\n\t\t\tawait this.obtenerVariable();\n\t\t}\n\t\tif (!this.tipoNovedadDTO || !this.variableDTO ) {\n\t\t\treturn false;\n\t\t}\n\t\tif ((this.isEsVariableEmpleado() && this.variableDTO.tipo && this.variableDTO.tipo == 'N')\n\t\t\t\t|| this.isEsConceptoEmpleado()\n\t\t\t\t|| (this.isEsVariablePeriodo() && this.variableDTO.tipo && this.variableDTO.tipo == 'N')\n\t\t\t\t|| this.isEsConceptoPeriodo()\n\t\t\t\t|| this.isEsVariableFechaPeriodo()) {\n\t\t\treturn true;\n\t\t} \n\t\treturn false;\n\t}\n\n\tisTieneEmpleado(): boolean{\n\t\treturn this.empleadoDTO != null && this.empleadoDTO != undefined && this.empleadoDTO.contrato != null && this.empleadoDTO.contrato != undefined ;\n\t}\n\n\tisSucursalReferencia() {\n\t\treturn this.tipoServico != null && this.tipoServico != undefined  && this.utilsService.isNotBlank(this.tipoServico.tituloSucuarsalReferencia);\n\t}\n\n\tisReferencia() {\n\t\treturn this.tipoServico != null && this.tipoServico != undefined  && this.utilsService.isNotBlank(this.tipoServico.tituloReferencia);\n\t}\n\n\tisValor() {\n\t\treturn this.tipoServico != null && this.tipoServico != undefined  && this.utilsService.isNotBlank(this.tipoServico.tituloValor);\n\t}\n\n\tisTipo() {\n\t\treturn this.tipoServico != null && this.tipoServico != undefined  && this.utilsService.isNotBlank(this.tipoServico.tituloTipo);\n\t}\n\n\tisCiclo() {\n\t\treturn this.tipoServico != null && this.tipoServico != undefined  && this.utilsService.isNotBlank(this.tipoServico.tituloCiclo);\n\t}\n\n\tisBeneficiario() {\n\t\treturn this.tipoServico != null && this.tipoServico != undefined   && !this.utilsService.isBlank(this.tipoServico.tituloBeneficiario);\n\t}\n\n\tisTipoReferencia() {\n\t\treturn this.tipoServico != null && this.tipoServico != undefined  && this.utilsService.isNotBlank(this.tipoServico.tituloTipoReferencia);\n\t}\n\n\tisMotivo(){\n\t\treturn this.tipoServico != null && this.tipoServico != undefined  && this.utilsService.isNotBlank(this.tipoServico.tituloMotivo);\n\t}\n\n\tisVerTabAdjuntar() {\n\t\treturn !this.nuevo && this.nroDocConfigurado>0;\n\t}\n\n\tisRenderFecha() {\n\t\tif (this.tipoNovedadDTO == null || this.tipoNovedadDTO == undefined) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.variableDTO == null || this.variableDTO == undefined) {\n\t\t\tthis.obtenerVariable().then(data => {});\n\t\t}\n\t\tif (this.variableDTO.tipo != null && this.variableDTO.tipo != undefined && this.variableDTO.tipo == 'F') {\n\t\t\tif (this.isEsVariableFechaPeriodo() || this.isEsVariablePeriodo() || this.isEsVariableEmpleado()) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tisRenderHoras() {\n\t\tif (this.tipoNovedadDTO == null || this.tipoNovedadDTO == undefined) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.variableDTO == null || this.variableDTO == undefined) {\n\t\t\tthis.obtenerVariable().then(data => {});\n\t\t}\t\n\t\tif (this.variableDTO.tipo != null && this.variableDTO.tipo != undefined && this.variableDTO.tipo == 'H') {\n\t\t\tif (this.isEsVariableFechaPeriodo() || this.isEsVariablePeriodo() || this.isEsVariableEmpleado()) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\t\t\n\t\treturn false;\n\t}\n\n\tisCantidad(){\n\t\tif (this.tipoNovedadDTO == null || this.tipoNovedadDTO == undefined) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.variableDTO == null || this.variableDTO == undefined) {\n\t\t\tthis.obtenerVariable().then(data => {});\n\t\t}\n\t\treturn this.isEsVariableFechaPeriodo() && this.variableDTO.tipo != null && this.variableDTO.tipo != undefined && 'N' == this.variableDTO.tipo;\n\t}\n\n\tisPorLegalizar() {\n\t\treturn this.novedadPipe.NOVEDAD_POR_LEGALIZAR == this.estado;\n\t}\n\n\tisPorAutorizar() {\n\t\treturn this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estado;\n\t}\n\n\tisPorSolicitar() {\n\t\treturn this.novedadPipe.NOVEDAD_POR_SOLICITAR == this.estado;\n\t}\n\n\tisVerBtnGuardar() {\n\t\treturn this.controles != null && (this.getControl('guardar')  || this.getControl('aplicar') );\n\t}\n\n\tisVerBtnCambiarDatos() {\n\t\treturn !this.nuevo && !this.isPorAutorizar() && !this.isPorLegalizar() && !this.sinBPM && this.novedadPipe.LEGALIZADA != this.novedadDTO.estado;\n\t}\n\n\tisVerBtnAutorizar() {\n\t\treturn (this.utilsService.isBlank(this.estado) || this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estado) && this.novedadPipe.SOLICITUD == this.novedadDTO.estado;\n\t}\n\n\tisVerBtnLegalizar() {\n\t\treturn (this.utilsService.isBlank(this.estado) || this.isPorLegalizar()) && this.novedadPipe.AUTORIZADA == this.novedadDTO.estado;\n\t}\n\t\n\tisVerBtnEliminar() {\n\t\treturn !this.nuevo// && this.novedadPipe.LEGALIZADA != this.novedadDTO.estado;\n\t}\n\n\tformatearDateNovedad(novedad: NovedadModel){\n\t\tnovedad.dato = novedad.dato ? new Date(novedad.dato) : null;\n\t\tnovedad.hasta = novedad.hasta ? new Date(novedad.hasta) : null;\n\t\tnovedad.desde = novedad.desde ? new Date(novedad.desde) : null;\n\t\tnovedad.aprobado = novedad.aprobado ? new Date(novedad.aprobado) : null;\n\t\tnovedad.aplicado = novedad.aplicado ? new Date(novedad.aplicado) : null;\n\t\tnovedad.fechaInicial = novedad.fechaInicial ? new Date(novedad.fechaInicial) : null;\n\t\tnovedad.fechaFinal = novedad.fechaFinal ? new Date(novedad.fechaFinal) : null;\n\t\tnovedad.fechapago = novedad.fechapago ? new Date(novedad.fechapago) : null;\n\t\tnovedad.fechaCancelacion = novedad.fechaCancelacion ? new Date(novedad.fechaCancelacion) : null;\n\t\tnovedad.fechaDesembolso = novedad.fechaDesembolso ? new Date(novedad.fechaDesembolso) : null;\n\t\tnovedad.fechaIniciaInteres = novedad.fechaIniciaInteres ? new Date(novedad.fechaIniciaInteres) : null;\n\t\tnovedad.fechaPresupuestal = novedad.fechaPresupuestal ? new Date(novedad.fechaPresupuestal) : null;\n\t\tnovedad.actoFechaCambio = novedad.actoFechaCambio ? new Date(novedad.actoFechaCambio) : null;\n\t\tnovedad.horaInicial = novedad.horaInicial ? new Date(novedad.horaInicial) : null;\n\t\tnovedad.horaFinal = novedad.horaFinal ? new Date(novedad.horaFinal) : null;\n\t\tnovedad.fechaAdicionado = novedad.fechaAdicionado ? new Date(novedad.fechaAdicionado) : null;\n\t\tnovedad.fechaModificado = novedad.fechaModificado ? new Date(novedad.fechaModificado) : null;\n\t\tnovedad.nombreSucursal = novedad.nombreSucursal ? novedad.sucursal + ' - ' + novedad.nombreSucursal : '';\n\t\treturn novedad\n\t  }\n\n\t  esCambioTurno() {\n\t\treturn this.tipoNovedadPipe.CAMBIOTURNO == this.tipoNovedadDTO.tipo;\n\t  }\n}\n","<p-confirmDialog #cd key=\"eliminar\">\n    <ng-template pTemplate=\"footer\">\n        <div class=\"mt-3\">\n            <button type=\"button\"\n                class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\" pButton\n                icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n            <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                (click)=\"cd.accept()\"></button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n<app-cabecera-empleado [empleado]=\"empleadoDTO\" *ngIf=\"mostrarDetalle && empleadoDTO != null && tareaOrigen != this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO && tareaOrigen != this.novedadPipe.ORIGEN_NOVEDAD_HISTORICO_EMPLEADO\"></app-cabecera-empleado>\n<div *ngIf=\"!mostrar && paginator.totalRecords == 0\">\n    <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\" ></p-progressBar>\n</div>\n<div *ngIf=\"mostrarDetalle\">\n    <div *ngIf=\"!mostrar\">\n        <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n            <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargarListaNovedades($event)\">\n                <ng-template let-form>\n                  <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                      <span class=\"p-float-label\">\n                        <input pInputText autofocus type=\"text\" formControlName=\"comodinBusqueda\" autocomplete=\"off\" />\n                        <label>{{'busqueda' | translate}}</label>\n                      </span>\n                    </div>\n                  </ng-container>\n                </ng-template>\n            </app-filtro-general>\n            <button pButton pRipple (click)=\"cerrarAction()\" label= \"{{'listadonovedades' | translate}}\" \n                icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n        </div>\n        \n        <p-table #tablaGeneral [value]=\"listadoNovedades\" styleClass=\"p-datatable-striped\"\n            responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"paginator.rows\"\n            [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n            [showCurrentPageReport]=\"true\" *ngIf=\"mostrarDetalle && paginadorCargado\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n             selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            [showCurrentPageReport]=\"true\" (onRowSelect)=\"seleccionarHijoAction($event)\" (onRowUnselect)=\"seleccionarHijoAction($event)\" \n            [(selection)]=\"tipoNovedadHija\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th class=\"w-6rem\"></th>\n                    <th class=\"w-6rem\">{{'novedad' | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean>\n                <tr [pSelectableRow]=\"bean\">\n                    <td>\n                        {{bean.descripcionPadre | generalPipe : 'capitallizeFully' }}\n                    </td>\n                    <td>\n                        {{bean.descripcion | generalPipe : 'capitallizeFully' }}\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n    <input style=\"position: absolute; left: -9999px;\" tabindex=\"-1\" #inputprueba />\n    <p-table #listaEntidad [value]=\"listaEntidadServicio\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\"\n        [rows]=\"10\" [paginator]=\"listaEntidadServicio.length > 10\" [totalRecords]=\"listaEntidadServicio.length\"\n        [showCurrentPageReport]=\"true\" *ngIf=\"listaEntidadServicio.length > 0 && !mostrar \"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" selectionMode=\"single\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" (onRowSelect)=\"cargarEntidad($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th class=\"w-6rem\">{{'entidad' | translate}}</th>\n                <th class=\"w-6rem\">{{'sucursal' | translate}}</th>\n                <th class=\"w-6rem\">{{'afiliacion' | translate}}</th>\n                <th class=\"w-6rem\">{{'valor' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n                <td>{{bean.nombreEntidad}}</td>\n                <td>{{bean.sucursal}}</td>\n                <td>{{bean.fechaAfiliacion | date : ('formatofecha' | translate)}}</td>\n                <td>{{bean.valor}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n    <p-table #listaPrestamos [value]=\"listaLiquidacionPeriodica\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\"\n        [rows]=\"10\" [paginator]=\"listaLiquidacionPeriodica.length > 10\"\n        [totalRecords]=\"listaLiquidacionPeriodica.length\" [showCurrentPageReport]=\"true\"\n        *ngIf=\"listaLiquidacionPeriodica.length > 0 && !mostrar \"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" selectionMode=\"single\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n        (onRowSelect)=\"cargarLiquidacionPeriodica($event)\" (onRowUnselect)=\"cargarLiquidacionPeriodica($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th class=\"w-6rem\">{{'numero' | translate}}</th>\n                <th class=\"w-6rem\">{{'referencia' | translate}}</th>\n                <th class=\"w-6rem\">{{'proceso' | translate}}</th>\n                <th class=\"w-6rem\">{{'inicia' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n                <td>{{bean.numero}}</td>\n                <td>{{bean.referencia}}</td>\n                <td>{{bean.numeroProceso}}</td>\n                <td>{{bean.inicia | date : ('formatofecha' | translate)}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n    <div *ngIf=\"mostrar || !nuevo\">\n        <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n            <h4 class=\"mt-1\">{{obtenerDescripcionTipoNovedad() | generalPipe : 'capitallizeFully'}}</h4>\n            <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n              (click)=\"cerrarAction()\" label=\"Listado Novedades\" >\n            </button>\n        </div>\n        <div class=\"cardInstrucciones\" *ngIf=\"novedadDTO.mensajeTipoNovedad\">\n            <div class=\"flex\">\n                <div class=\"icono\">\n                    <i class=\"pi pi-info\"></i>\n                </div>\n                <div class=\"contenedor\">\n                    <label>{{novedadDTO.mensajeTipoNovedad}}</label>\n                </div>\n            </div>\n        </div>\n        <div class=\"card\">\n            <!--  VARIABLE EMPLEADO -->\n            <div *ngIf=\"isEsVariableEmpleado()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                        [showIcon]=\"true\" [disabled]=\"desabilitarCampos\"></p-calendar>\n                                    <label>{{('vigencia') | translate}}*</label>\n                                </span>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.hasta\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'hasta' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isRenderValor() || isValor()\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valor\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label *ngIf=\"isRenderValor()\">{{'valor' | translate}}*</label>\n                                <label *ngIf=\"isValor()\">{{tipoServico.tituloValor}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isRenderFecha()\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.dato\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.dato) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.dato) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'novedad_fecha' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!--pte horas-->\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isRenderHoras()\">\n                            <div class=\"p-fluid p-formgrid grid\" >\n                                <div class=\"col-12 md:col-6 lg:col-6\">\n                                    <div class=\"field\">\n                                        <span class=\"p-float-label\">\n                                            <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaHora\" optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" [(ngModel)]=\"hora\" ></p-dropdown>\n                                            <label>{{'horas' | translate}}</label>\n                                        </span>\n                                    </div>\n                                </div>\n                                <div class=\"col-12 md:col-6 lg:col-6\">\n                                    <div class=\"field\">\n                                        <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaMinutos\" optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" [(ngModel)]=\"minutos\" ></p-dropdown>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaCiclos\" [(ngModel)]=\"novedadDTO.ciclo\"  [disabled]=\"desabilitarCampos\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.ciclo) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.ciclo) && clickGuardar\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'ciclo' | translate}}*</label>\n                            </span>\n                        </div>\n\n                    </div>\n                </div>\n            </div>\n            <!--  VARIABLE EMPLEADO FECHA  -->\n            <div *ngIf=\"isEsVariableFechaEmpleado()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'vigencia' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.hasta\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'hasta' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valor\"\n                                    [maxFractionDigits]=\"5\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'base' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.cantidad\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'cantidad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('zonaeconomica')\">\n                            <app-input-helper-seleccion-zona-centro [value]=\"novedadDTO.centrocosto\" [mostrarZonaLabel]=\"true\" [readonly]=\"desabilitarCampos\" [mostrarX]=\"!desabilitarCampos\" [labelIntput]=\"'centrocosto' | translate\"\n                                [label]=\"novedadDTO.nombreCentroCosto ? novedadDTO.nombreCentroCosto : ''\" (onSelected)=\"setZonaCentro($event)\">\n                            </app-input-helper-seleccion-zona-centro>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('zonaeconomica')\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [(ngModel)]=\"novedadDTO.nombreZonaEconomica\" autocomplete=\"off\" />\n                                <label>{{'zonaeconomica' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('lineacosto')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaLineaCosto\" [(ngModel)]=\"novedadDTO.lineacosto\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'lineacosto' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('materia')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaMateria\" [(ngModel)]=\"novedadDTO.materia\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'actividad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.dato\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'novedad_fecha' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaCiclos\" [(ngModel)]=\"novedadDTO.ciclo\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'ciclo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('entidad')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaEntidad\" [(ngModel)]=\"novedadDTO.entidad\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'entidad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('presupuestal') && isVerPresupuestal()\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.presupuestal\" autocomplete=\"off\" />\n                                <label>{{'presupuestal' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('horaInicial')\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.horaInicial\" [disabled]=\"desabilitarCampos\"\n                                    [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\" DateFormat=\"HH:mm:ss\"></p-calendar>\n                                <label>{{'horainicial' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('horaFinal')\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.horaFinal\" [disabled]=\"desabilitarCampos\"\n                                    [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\" DateFormat=\"HH:mm:ss\" ></p-calendar>\n                                <label>{{'horafinal' | translate}}</label>\n                            </span>\n                        </div>\n\n                    </div>\n                </div>\n            </div>\n            <!--  CONCEPTO EMPLEADO  -->\n            <div *ngIf=\"isEsConceptoEmpleado()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'vigencia' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.hasta\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'hasta' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos || !isConceptoEmpleadoValorFijo()\" [(ngModel)]=\"novedadDTO.valor\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valor' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaCiclos\" [(ngModel)]=\"novedadDTO.ciclo\"  [disabled]=\"desabilitarCampos\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.ciclo) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.ciclo) && clickGuardar\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'ciclo' | translate}}*</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <!-- VARIABLE PERIODO -->\n            <div *ngIf=\"isEsVariablePeriodo()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valor\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label *ngIf=\"isRenderValor()\">{{'valor' | translate}}*</label>\n                                <label *ngIf=\"isValor()\">{{tipoServico.tituloValor}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isRenderFecha()\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.dato\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.dato) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.dato) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'novedad_fecha' | translate}}</label>\n                            </span>\n                        </div>\n                        <!--pte horas-->\n                    </div>\n                </div>\n            </div>\n            <!--  CONCEPTO PERIODO  -->\n            <div *ngIf=\"isEsConceptoPeriodo()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos || !isConceptoPeriodoValorFijo()\" [(ngModel)]=\"novedadDTO.valor\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valor' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isRenderEntidad() && listaEntidad?.length > 0\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaEntidad\" [(ngModel)]=\"novedadDTO.entidad\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'entidad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isVerPresupuestal()\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.presupuestal\" autocomplete=\"off\" />\n                                <label>{{'presupuestal' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <!--  VARIABLE PERIODO FECHA  -->\n            <div *ngIf=\"isEsVariableFechaPeriodo()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fecha' | translate}} {{'suceso' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.cantidad\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'cantidad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valor\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valor' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('zonaeconomica')\">\n                            <app-input-helper-seleccion-zona-centro [value]=\"novedadDTO.centrocosto\" [mostrarZonaLabel]=\"true\" [readonly]=\"desabilitarCampos\" [mostrarX]=\"!desabilitarCampos\" [labelIntput]=\"'centrocosto' | translate\"\n                                [label]=\"novedadDTO.nombreCentroCosto ? novedadDTO.nombreCentroCosto : ''\" (onSelected)=\"setZonaCentro($event)\">\n                            </app-input-helper-seleccion-zona-centro>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('zonaeconomica')\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [(ngModel)]=\"novedadDTO.nombreZonaEconomica\" autocomplete=\"off\" />\n                                <label>{{'zonaeconomica' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('lineacosto')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaLineaCosto\" [(ngModel)]=\"novedadDTO.lineacosto\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'lineacosto' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('materia')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaMateria\" [(ngModel)]=\"novedadDTO.materia\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'actividad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.dato\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'novedad_fecha' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('entidad')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaEntidad\" [(ngModel)]=\"novedadDTO.entidad\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'entidad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('presupuestal') && isVerPresupuestal()\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.presupuestal\" autocomplete=\"off\" />\n                                <label>{{'presupuestal' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('horaInicial')\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.horaInicial\" [disabled]=\"desabilitarCampos\"\n                                    [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\" DateFormat=\"HH:mm:ss\" ></p-calendar>\n                                <label>{{'horainicial' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('horaFinal')\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.horaFinal\" [disabled]=\"desabilitarCampos\"\n                                    [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\" DateFormat=\"HH:mm:ss\" ></p-calendar>\n                                <label>{{'horafinal' | translate}}</label>\n                            </span>\n                        </div>\n\n                    </div>\n                </div>\n            </div>\n            <!--  EMBARGO  -->\n            <div *ngIf=\"isEsEmbargo()\">\n        \n                <p-fieldset class=\"mt-0\">\n                    <ng-template pTemplate=\"header\">\n                        <div>\n                            <span class=\"glyphicons glyphicons-book\" style=\"color:var(--color-400)\"></span>\n                            <span>{{'detalle' | translate}} {{'liquidacion' | translate}}</span>\n                        </div>\n                    </ng-template>\n                    <div class=\"p-fluid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.numeroProceso\" autocomplete=\"off\" />\n                                <label>{{'numeroproceso' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </p-fieldset>\n\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-4 lg:col-4\">\n                            <div class=\"mb-4\">\n                                <span class=\"p-float-label\">\n                                    <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.montoInicial\"\n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.montoInicial) && clickGuardar\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.montoInicial) && clickGuardar\"\n                                        [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                    <label>{{'montoinicial' | translate}}*</label>\n                                </span>\n                            </div>\n\n                            <div class=\"mb-4\">\n                                <span class=\"p-float-label\">\n                                    <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valor\"\n                                        [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                    <label>{{'totalabonado' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n\n                        <div class=\"field col-12 md:col-4 lg:col-8\">\n                            <p-fieldset class=\"fieltsintitulo\">\n                                <div class=\"p-fluid grid\">\n                            \n                                    <div class=\"field col-12 md:col-6 lg:col-6\">\n                                        <span class=\"p-float-label\">\n                                            <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.cuota\"\n                                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.cuota) && clickGuardar\"\n                                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.cuota) && clickGuardar\"\n                                                [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                            <label>{{'valorcuota' | translate}}*</label>\n                                        </span>\n                                    </div>\n\n                                    <div class=\"field col-12 md:col-6 lg:col-6\">\n                                        <span class=\"p-float-label\">\n                                            <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.interes\"\n                                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.interes) && clickGuardar\"\n                                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.interes) && clickGuardar\"\n                                                [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                            <label>{{'porcentajeinteres' | translate}}*</label>\n                                        </span>\n                                    </div>\n                                </div>\n                            </p-fieldset>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.ciclo\" [maxlength]=\"6\" ></p-inputNumber>\n                                <label>{{'ciclo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fechainicial' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.fechaCancelacion\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"true\" ></p-calendar>\n                                <label>{{'fechacancelacion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.nroCuotas\" [maxlength]=\"6\" ></p-inputNumber>\n                                <label>{{'numerocuotas' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"true\" [(ngModel)]=\"novedadDTO.cuotaPeriodo\" [maxlength]=\"6\" ></p-inputNumber>\n                                <label>{{'cuotaperiodo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.beneficiario\" [maxlength]=\"18\" (onBlur)=\"consultarBeneficiario()\" ></p-inputNumber>\n                                <label>{{'identificacion' | translate}} {{'beneficiario' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [(ngModel)]=\"novedadDTO.nombreBeneficiario\" autocomplete=\"off\" />\n                                <label>{{'nombre' | translate}} {{'beneficiario' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.referencia\" autocomplete=\"off\" />\n                                <label>{{'referencia' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\"></div>\n\n                        <div class=\"field col-12 md:col-4 lg:col-12\">\n                            <p-fieldset class=\"mt-0\" >\n                                <ng-template pTemplate=\"header\">\n                                    <div>\n                                        <span class=\"glyphicons glyphicons-plus-sign\" style=\"color:var(--color-400)\"></span>\n                                        <span>{{'adicional' | translate}}</span>\n                                    </div>\n                                </ng-template>\n                                <div class=\"contenedor p-fluid grid\">\n                                    <div class=\"field col-12 md:col-6 lg:col-6\">\n                                        <span class=\"p-float-label\">\n                                            <p-dropdown [options]=\"listaEntidad\" [(ngModel)]=\"novedadDTO.entidad\"  [disabled]=\"desabilitarCampos\"\n                                                optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                            </p-dropdown>\n                                            <label>{{'entidaddeposito' | translate}}</label>\n                                        </span>\n                                    </div>\n\n                                    <div class=\"field col-12 md:col-6 lg:col-6\">\n                                        <span class=\"p-float-label\">\n                                            <p-dropdown [options]=\"listatipoEmbargo\" [(ngModel)]=\"novedadDTO.embargo\"  [disabled]=\"desabilitarCampos\"\n                                                optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                            </p-dropdown>\n                                            <label>{{'tipoembargo' | translate}}</label>\n                                        </span>\n                                    </div>\n                                </div>\n                            </p-fieldset>\n                        </div>\n\n                        <div class=\"field col-12 md:col-4 lg:col-12\">\n                            <p-fieldset class=\"mt-0\" >\n                                <ng-template pTemplate=\"header\">\n                                    <div>\n                                        <span class=\"glyphicons glyphicons-briefcase\" style=\"color:var(--color-400)\"></span>\n                                        <span>{{'demandante' | translate}}</span>\n                                    </div>\n                                </ng-template>\n                                <div class=\"p-fluid grid\">\n\n                                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                                        <span class=\"p-float-label\">\n                                            <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.demandante\" [maxlength]=\"18\" ></p-inputNumber>\n                                            <label>{{'identificacion' | translate}}</label>\n                                        </span>\n                                    </div>\n\n                                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                                        <span class=\"p-float-label\">\n                                            <p-dropdown [options]=\"listatipoDocumento\" [(ngModel)]=\"novedadDTO.tipoDocumentoDemandante\"  [disabled]=\"desabilitarCampos\"\n                                                optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                            </p-dropdown>\n                                            <label>{{'tipodocumento' | translate}}</label>\n                                        </span>\n                                    </div>\n\n                                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                                        <span class=\"p-float-label\">\n                                            <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.nombreDemandante\" autocomplete=\"off\" />\n                                            <label>{{'nombredemandante' | translate}}</label>\n                                        </span>\n                                    </div>\n\n                                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                                        <span class=\"p-float-label\">\n                                            <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.apellidoDemandante\" autocomplete=\"off\" />\n                                            <label>{{'apellidosdemandante' | translate}}</label>\n                                        </span>\n                                    </div>\n\n                                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                                        <span class=\"p-float-label\">\n                                            <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.referenciaDemandante\" autocomplete=\"off\" />\n                                            <label>{{'referencia' | translate}}</label>\n                                        </span>\n                                    </div>\n\n                                    <!--<div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isPrestamoNuevo()\">\n                                        <span class=\"p-float-label\">\n                                            <p-inputNumber [disabled]=\"true\" [(ngModel)]=\"novedadDTO.numero\" [maxlength]=\"6\" ></p-inputNumber>\n                                            <label>{{'numero' | translate}}</label>\n                                        </span>\n                                    </div>\n\n                                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isPrestamoNuevo()\">\n                                        <span class=\"p-float-label\">\n                                            <input pInputText autofocus type=\"text\" [disabled]=\"true\" [(ngModel)]=\"novedadDTO.numeroProceso\" autocomplete=\"off\" />\n                                            <label>{{'numeroproceso' | translate}}</label>\n                                        </span>\n                                    </div>-->\n                                </div>\n                            </p-fieldset>\n                        </div>\n\n                    </div>\n                </div>\n            </div>\n            <!--  LIQUIDACION PERIODICA  -->\n            <div *ngIf=\"isEsPrestamo()\">\n                <div class=\"col-md-12 mt-3\" >\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaAccionesPrestamo\" [(ngModel)]=\"novedadDTO.accion\"  [disabled]=\"true\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'accion' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"col-md-12 mt-3\" *ngIf=\"isPrestamoNuevo()\">\n                    <div class=\"p-fluid p-formgrid grid\">\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('numeroProceso')\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.numeroProceso\" autocomplete=\"off\" />\n                                <label>{{'numeroproceso' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.montoInicial\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.montoInicial) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.montoInicial) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'montoinicial' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\"></div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valor\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.valor) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'totalabonado' | translate}}*</label>\n                            </span>\n                        </div>\n\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('valorPrimerCuota')\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.primerCuota\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.primerCuota) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.primerCuota) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valorprimercuota' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('valorUltimaCuota')\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.ultimaCuota\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.ultimaCuota) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.ultimaCuota) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valorultimacuota' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.cuota\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.cuota) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.cuota) && clickGuardar\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valorcuota' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.interes\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'porcentajeinteres' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('fechaInicioInteres')\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.fechaIniciaInteres\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fechainiciointeres' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('cantidad')\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.nroCuotas\"\n                                    [maxlength]=\"6\"></p-inputNumber>\n                                <label>{{'numerocuotas' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaCiclos\" [(ngModel)]=\"novedadDTO.ciclo\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'ciclo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('numerocuotas')\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"true\" [(ngModel)]=\"novedadDTO.cuotaPeriodo\" [maxlength]=\"6\" ></p-inputNumber>\n                                <label>{{'cuotaperiodo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fechainicial' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('fechaDesembolso')\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.fechaDesembolso\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fechadesembolso' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('valorDesembolso')\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valorDesembolso\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valordesembolso' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('valorDesembolso')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaFormaDesembolso\" [(ngModel)]=\"novedadDTO.formaDesembolso\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'formadesembolso' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('beneficiario')\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.beneficiario\" [maxlength]=\"18\" ></p-inputNumber>\n                                <label>{{'identificacion' | translate}} {{'beneficiario' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('beneficiario')\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [(ngModel)]=\"novedadDTO.nombreBeneficiario\" autocomplete=\"off\" />\n                                <label>{{'nombre' | translate}} {{'beneficiario' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('referencia')\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [maxlength]=\"20\" [(ngModel)]=\"novedadDTO.referencia\" autocomplete=\"off\" />\n                                <label>{{'referencia' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"mapaCampos.get('entidad')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaEntidad\" [(ngModel)]=\"novedadDTO.entidad\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'codigoentidad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" id=\"btn-cargar-popup\">\n                            <div [class]=\"'p-inputgroup'\">\n                                <span class=\"p-float-label nomostrar\">\n                                    <input pInputText #inputText [disabled]=\"true\" [(ngModel)]=\"unicoAdjunto.archivoorigen\"  />\n                                    <label>{{'adjunto' | translate}}</label>\n                                    <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" [accept]=\"validarExtensiones()\" *ngIf=\"!desabilitarCampos\"\n                                        (onSelect)=\"setAdjunto($event, fubauto)\" chooseIcon=\"pi pi-paperclip\" ></p-fileUpload>\n                                    <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\"\n                                            (click)=\"descargarAnexoUnico()\" type=\"file\" *ngIf=\"unicoAdjunto.llaveTabla\"></button>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n                @if (isPrestamoCompraCartera()) {\n                    <div class=\"cardInstrucciones\" >\n                        <div class=\"flex\">\n                            <div class=\"icono\">\n                                <i class=\"pi pi-info\"></i>\n                            </div>\n                            <div class=\"contenedor\">\n                                <label>{{'compracartera' | translate}}</label>\n                            </div>\n                        </div>\n                    </div>\n\n                    <div class=\"flex justify-content-end align-items-center mb-2\" *ngIf=\"isVerBtnGuardar()\">\n                        <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoPrestamoCancelar()\" icon=\"pi pi-plus\" [disabled]=\"habilitaCampo\"\n                            class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n                    </div>\n                    <p-table #tablaGeneral [value]=\"listaNovedadDato\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n                        [rows]=\"10\" [totalRecords]=\"listaNovedadDato.length\"\n                        [paginator]=\"listaNovedadDato.length > 10\" editMode=\"row\" dataKey=\"llaveTabla\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                        <ng-template pTemplate=\"header\">\n                            <tr class=\"fondoTablaPincipal\">\n                                <th style=\"width: 90%;\">{{'numero' | translate}}</th>\n                                <th style=\"width: 10%;\"> </th>\n                            </tr>\n                            <tr class=\"TablaNuevoRegistro\" *ngIf=\"vistaVisualizarDetalle === 'nuevoPrestamoCancelar'\">\n                                <td style=\"width: 90%;\">\n                                    <p-dropdown [options]=\"listaPrestamos\" optionValue=\"codigo\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(prestamoCancelar.numero) && clickGuardarPrestamo  ? 'ng-invalid ng-dirty' : ''\"\n                                        [autoDisplayFirst]=\"false \"optionLabel=\"nombre\" appendTo=\"body\" [autoZIndex]=\"false\"\n                                        [(ngModel)]=\"prestamoCancelar.numero\"></p-dropdown>\n                                </td>\n                                <td style=\"width: 10%;\">\n                                    <div class=\"flex justify-content-end\" *ngIf=\"isVerBtnGuardar()\">\n                                        <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"adicionarPrestamoCancelar()\"\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>\n                                        <button pButton pRipple type=\"button\" (click)=\"cancelarGuardarPrestamo()\" icon=\"pi pi-times\"\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>\n                                    </div>\n                                </td>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-prestamo let-editing=\"editing\" let-ri=\"rowIndex\">\n                            <tr [pEditableRow]=\"prestamo\" >\n                                <td style=\"width: 90%;\">\n                                    <p-cellEditor>\n                                        <ng-template pTemplate=\"output\">\n                                            <p-dropdown [options]=\"listaPrestamos\" optionValue=\"codigo\" [disabled]=\"true\"\n                                                [autoDisplayFirst]=\"false \"optionLabel=\"nombre\" appendTo=\"body\" [autoZIndex]=\"false\"\n                                                [(ngModel)]=\"prestamo.numero\"></p-dropdown>\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n                                <td style=\"width: 10%;\">\n                                    <div class=\"flex justify-content-end\" *ngIf=\"isVerBtnGuardar()\">\n                                        <!-- ELIMINAR -->\n                                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n                                            icon=\"pi pi-trash\" (click)=\"eliminarPrestamoCancelar(prestamo)\" [disabled]=\"habilitaCampo\"\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>\n                                    </div>\n                                </td>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    </p-table>\n                }\n\n                @if (mostrarTablaBases) {\n                    <div class=\"flex justify-content-end align-items-center mb-2\" *ngIf=\"isVerBtnGuardar()\">\n                        <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoBasePrestamo()\" icon=\"pi pi-plus\" \n                            class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n                    </div>\n                    <p-table #tabla [value]=\"listaBasePrestamo\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"5\"\n                        [totalRecords]=\"listaBasePrestamo.length\" [scrollable]=\"true\" [paginator]=\"listaBasePrestamo.length > 5\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                        editMode=\"row\" dataKey=\"llave\" >\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        <ng-template pTemplate=\"header\">\n                            <tr class=\"fondoTablaPincipal\">\n                                <th style=\"width: 15%;\">{{'tipo' | translate}}</th>\n                                <th style=\"width: 30%;\">{{'descripcion' | translate}}</th>\n                                <th style=\"width: 20%;\">{{'vigencia' | translate}}</th>\n                                <th style=\"width: 20%;\">{{'fechatermina' | translate}}</th>\n                                <th style=\"width: 15%;\">{{'factor' | translate}}</th>\n                                <th style=\"width: 15%;\"></th>\n                            </tr>\n                            <tr *ngIf=\"vistaVisualizarBasePrestamo == 'nuevo' \" class=\"TablaNuevoRegistro\">\n                                <td style=\"width: 15%;\">\n                                    <p-dropdown #idNuevoTipo=\"ngModel\" [(ngModel)]=\"nuevoRegistroPeriodoConBase.tipo\"\n                                        [options]=\"mapaTipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                                        [autoDisplayFirst]=\"false\" appendTo=\"body\" \n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.tipo) && clickGuardarBasePrestamo\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.tipo) && clickGuardarBasePrestamo\">\n                                    </p-dropdown>\n                                </td>\n                                <td style=\"width: 30%;\">\n                                    <p-dropdown *ngIf=\"nuevoRegistroPeriodoConBase.tipo == liquidacionPerPipe.CONCEPTO\" #idNuevoDato=\"ngModel\"\n                                        [(ngModel)]=\"nuevoRegistroPeriodoConBase.concepto\" [options]=\"this.mapNewConceptoDown\"\n                                        optionLabel=\"label\" optionValue=\"key\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.concepto) && clickGuardarBasePrestamo\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.concepto) && clickGuardarBasePrestamo\">\n                                    </p-dropdown>\n                                    <p-dropdown *ngIf=\"nuevoRegistroPeriodoConBase.tipo == liquidacionPerPipe.CONSOLIDADOR\" #idNuevoDato=\"ngModel\"\n                                        [(ngModel)]=\"nuevoRegistroPeriodoConBase.consolidador\"\n                                        [options]=\"this.mapNewConsolidadorDown\" optionLabel=\"label\" optionValue=\"key\"\n                                        [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.consolidador) && clickGuardarBasePrestamo\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.consolidador) && clickGuardarBasePrestamo\">\n                                    </p-dropdown>\n                                </td>\n                                <td style=\"width: 20%;\">\n                                    <p-calendar #idNuevoVigencia=\"ngModel\" [showIcon]=\"true\" id=\"vigencia\"\n                                        [(ngModel)]=\"nuevoRegistroPeriodoConBase.vigencia\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.vigencia) && clickGuardarBasePrestamo\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.vigencia) && clickGuardarBasePrestamo\"></p-calendar>\n                                </td>\n                                <td style=\"width: 20%;\">\n                                    <p-calendar #idNuevoTermina=\"ngModel\" [showIcon]=\"true\" id=\"hasta\"\n                                        [(ngModel)]=\"nuevoRegistroPeriodoConBase.hasta\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.hasta) && clickGuardarBasePrestamo\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.hasta) && clickGuardarBasePrestamo\"></p-calendar>\n                                </td>\n                                <td style=\"width: 15%;\">\n                                    <input #idNuevoFactor=\"ngModel\" type=\"text\" pInputText id=\"id_valor\"\n                                        [(ngModel)]=\"nuevoRegistroPeriodoConBase.factor\" [maxLength]=\"17\"\n                                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0,17)\"\n                                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.factor) && clickGuardarBasePrestamo\"\n                                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(nuevoRegistroPeriodoConBase.factor) && clickGuardarBasePrestamo\">\n                                </td>\n                                <!-- BOTONES NUEVO REGISTRO -->\n                                <td style=\"width: 15%;\">\n                                    <div class=\"flex justify-content-end\">\n                                        <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only ng-star-inserted\"\n                                            (click)=\"adicionarBasePrestamo()\"\n                                            *ngIf=\"isVerBtnGuardar()\"></button>\n                                        <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarBasePrestamo()\"\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>\n                                    </div>\n                                </td>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-data let-editing=\"editing\" let-ri=\"rowIndex\">\n                            <tr [pEditableRow]=\"data\">\n                                <td style=\"width: 15%;\">\n                                    <p-cellEditor>\n                                        <ng-template pTemplate=\"output\">\n                                            {{data.tipo | liquidacionPerPipe: 'listaTipo'}}\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n                                <td style=\"width: 30%;\">\n                                    <p-cellEditor>\n                                        <ng-template pTemplate=\"output\">\n                                            {{data.concepto != 0 ? data.descripcionConcepto : data.descripcionConsolidador}}\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n                                <td style=\"width: 20%;\">\n                                    <p-cellEditor>\n                                        <ng-template pTemplate=\"output\">\n                                            {{data.vigencia | date:'dd/MM/yyyy'}}\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n                                <td style=\"width: 20%;\">\n                                    <p-cellEditor>\n                                        <ng-template pTemplate=\"output\">\n                                            {{data.hasta | date:'dd/MM/yyyy'}}\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n                                <td style=\"width: 15%;\">\n                                    <p-cellEditor>\n                                        <ng-template pTemplate=\"output\">\n                                            {{data.factor}}\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n                                <td style=\"width: 15%;\">\n                                    <div class=\"flex justify-content-end\">\n                                        <!-- ELIMINAR -->\n                                        <button\n                                            *ngIf=\"isVerBtnGuardar()\"\n                                            pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                            (click)=\"eliminarBasePrestamo(data)\" \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>\n                                    </div>\n                                </td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                }\n\n                <div class=\"col-md-12 mt-3\" *ngIf=\"!isPrestamoNuevo()\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\" id=\"btn-cargar-popup\"  *ngIf=\"isPrestamoNuevo()\">\n                            <div [class]=\"'p-inputgroup'\">\n                                <span class=\"p-float-label nomostrar\">\n                                    <input pInputText #inputText [disabled]=\"true\" [(ngModel)]=\"unicoAdjunto.archivoorigen\"  />\n                                    <label>{{'adjunto' | translate}}</label>\n                                    <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" [accept]=\"validarExtensiones()\" *ngIf=\"!desabilitarCampos\"\n                                        (onSelect)=\"setAdjunto($event, fubauto)\" chooseIcon=\"pi pi-paperclip\" ></p-fileUpload>\n                                    <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\"\n                                            (click)=\"descargarAnexoUnico()\" type=\"file\" *ngIf=\"unicoAdjunto.llaveTabla\"></button>\n                                </span>\n                            </div>\n                        </div>\n                        <div class=\"field col-12 md:col-6 lg:col-4\" >\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"true\" [(ngModel)]=\"novedadDTO.numero\" [maxlength]=\"6\" ></p-inputNumber>\n                                <label>{{'numero' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"novedadDTO.referencia && mapaCampos.get('referencia')\" >\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\" [(ngModel)]=\"novedadDTO.referencia\" autocomplete=\"off\" />\n                                <label>{{'referencia' | translate}}</label>\n                            </span>\n                        </div>\n                        \n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!isPrestamoCancelacion()\" >\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"desabilitarCampos\" [(ngModel)]=\"novedadDTO.valor\"\n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label>{{'valor' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!isPrestamoCancelacion()\" >\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fecha' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isPrestamoAbonoExtra()\" >\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaCiclos\" [(ngModel)]=\"novedadDTO.ciclo\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'ciclo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isPrestamoCancelacion()\" >\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.fechaCancelacion\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fecha' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n            <!-- CAMBIO ENTIDAD -->\n            <div *ngIf=\"isEsCambioEntidad()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"isBorrarCambioEntidad() || isModificarCambioEntidad() || desabilitarCampos\" ></p-calendar>\n                                <label>{{'desde' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!isModificarCambioEntidad()\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.hasta\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.hasta) && clickGuardar && isBorrarCambioEntidad()\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.hasta) && clickGuardar && isBorrarCambioEntidad()\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'hasta' | translate}}</label>\n                            </span>\n                        </div>\n        \n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"desabilitarCampos || (!isModificarCambioEntidad())\">\n                            <app-input-helper-seleccion-sucursal-entidad\n                                [readonly]=\"isBorrarCambioEntidad()\" [header]=\"('entidadexterna' | translate) + '*'\"\n                                [value]=\"novedadDTO.entidad\" [mostrarX]=\"false\" [boolean]=\"!utilsService.validarCampoObligatorio(novedadDTO.entidad) && clickGuardar\"\n                                [label]=\"novedadDTO.nombreEntidad ? novedadDTO.entidad.trim() + ' - ' + novedadDTO.nombreEntidad : ''  \"\n                                (onSelected)=\"setSucursalEntidad($event)\" [tipoServicio]=\"tipoNovedadDTO.tipoServicio\" [tipoPeriodo]=\"empleadoDTO == null ? null : empleadoDTO.tipoPeriodo\">\n                            </app-input-helper-seleccion-sucursal-entidad>\n                        </div>\n\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"desabilitarCampos || (!isModificarCambioEntidad())\" >\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" [(ngModel)]=\"novedadDTO.nombreSucursal\" [disabled]=\"true\" />\n                                <label >{{'sucursalentidad' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"mostrartipoServicoAlterno\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaTipoServicio\" [(ngModel)]=\"novedadDTO.entidadAuxiliar\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'entidadauxiliar' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <p-table [value]=\"listaCampos\" *ngIf=\"listaCampos.length > 0\">\n                                <ng-template pTemplate=\"body\" let-campo>\n                                    <tr [pSelectableRow]=\"campo\">\n                                        <td>\n                                            <label>{{ campo.descripcion }}</label>\n                                            <label *ngIf=\"campo.requerido == 'S'\">*</label>\n                                        </td>\n                                        <td>\n\n                                            <input pInputText [(ngModel)]=\"novedadDTO.referencia\" *ngIf=\"campo.campo == 'referencia'\"\n                                                [class]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.referencia) ? 'ng-invalid ng-dirty' : ''\"\n                                                [disabled]=\"isBorrarCambioEntidad() || desabilitarCampos\" [maxlength]=\"20\" />\n\n                                            <p-inputNumber [(ngModel)]=\"novedadDTO.valor\" *ngIf=\"campo.campo == 'valor'\"\n                                            [class]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.valor) ? 'ng-invalid ng-dirty' : ''\"\n                                                [disabled]=\"isBorrarCambioEntidad() || desabilitarCampos\" [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n\n                                            <p-inputNumber [(ngModel)]=\"novedadDTO.tipo\" *ngIf=\"campo.campo == 'tipo'\"\n                                            [class]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.tipo) ? 'ng-invalid ng-dirty' : ''\"\n                                                [disabled]=\"isBorrarCambioEntidad() || desabilitarCampos\" [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n\n                                            <input pInputText [(ngModel)]=\"novedadDTO.sucursalReferencia\" *ngIf=\"campo.campo == 'sucreferencia'\"\n                                            [class]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.sucursalReferencia) ? 'ng-invalid ng-dirty' : ''\"\n                                                [disabled]=\"isBorrarCambioEntidad() || desabilitarCampos\" [maxlength]=\"8\" />\n\n                                            <p-dropdown [options]=\"listaCiclos\" [(ngModel)]=\"novedadDTO.ciclo\"  *ngIf=\"campo.campo == 'ciclo'\"\n                                            [class]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.ciclo) ? 'ng-invalid ng-dirty' : ''\"\n                                                [disabled]=\"isBorrarCambioEntidad() || desabilitarCampos\" optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                            </p-dropdown>\n\n                                            <input pInputText [(ngModel)]=\"novedadDTO.tipoReferencia\" *ngIf=\"campo.campo == 'tiporeferencia'\"\n                                            [class]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.tipoReferencia) ? 'ng-invalid ng-dirty' : ''\"\n                                                [disabled]=\"isBorrarCambioEntidad() || desabilitarCampos\" [maxlength]=\"4\" />\n\n                                            <input pInputText [(ngModel)]=\"novedadDTO.motivo\" *ngIf=\"campo.campo == 'motivo'\"\n                                            [class]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.motivo) ? 'ng-invalid ng-dirty' : ''\"\n                                                [disabled]=\"isBorrarCambioEntidad() || desabilitarCampos\" [maxlength]=\"100\" />\n\n                                            <app-input-helper-hoja-vida [readonly]=\"isBorrarCambioEntidad() || desabilitarCampos\" *ngIf=\"campo.campo == 'beneficiario'\"\n                                                [label]=\"novedadDTO.nombreBeneficiario ? novedadDTO.beneficiario + ' - ' + novedadDTO.nombreBeneficiario : ''\" [booleano]=\"campo.requerido=='S' && clickGuardar && !utilsService.validarCampoObligatorio(novedadDTO.nombreBeneficiario)\"\n                                                (onSelected)=\"setBeneficiarioPopup($event)\" ></app-input-helper-hoja-vida>\n\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                            </p-table>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"listaCampos.length > 0\">\n                        </div>\n\n                        \n                    </div>\n                </div>\n            </div>\n            <!-- TERMINACION CONTRATO -->\n            <div *ngIf=\"isEsTerminacionContrato()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.fechaCancelacion\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.fechaCancelacion) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.fechaCancelacion) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fecharetiro' | translate}}*</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaMotivoLiquidacion\" [(ngModel)]=\"novedadDTO.motivoLiquidacion\"  [disabled]=\"desabilitarCampos\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.motivoLiquidacion) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.motivoLiquidacion) && clickGuardar\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'motivoliquidacion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaMotivoRetiro\" [(ngModel)]=\"novedadDTO.motivoRetiro\"  [disabled]=\"desabilitarCampos\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'motivoretiro' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <!-- PRORROGA -->\n            <div *ngIf=\"isEsProrroga()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.fechaCancelacion\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.fechaCancelacion) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.fechaCancelacion) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'fechahasta' | translate}}*</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <!-- CAMBIO TURNO -->\n             <div *ngIf=\"esCambioTurno()\">\n                <div class=\"col-md-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"novedadDTO.desde\" dateFormat=\"dd/mm/yy\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.desde) && clickGuardar\"\n                                    [showIcon]=\"true\" [disabled]=\"desabilitarCampos\" ></p-calendar>\n                                <label>{{'vigencia' | translate}}*</label>\n                            </span>\n                        </div>\n                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaTurno\" [(ngModel)]=\"novedadDTO.concepto\"  [disabled]=\"desabilitarCampos\"\n                                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(novedadDTO.concepto) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(novedadDTO.concepto) && clickGuardar\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'turno' | translate}}*</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n             </div>\n\n\t\t\t<!-- Cambio Empleado Accion: Traslados  -->\n             <div *ngIf=\"isEsTipoCambioEmpleado() && actoTraslado\">\n                <app-acto-traslado (regresarAction)=\"regresarActos($event)\"></app-acto-traslado>\n             </div>\n            <!-- Cambio Empleado Accion: Cambio Puesto  -->\n            <div *ngIf=\"isEsTipoCambioEmpleado() && actoCambioPuesto\">\n                <app-acto-cambio-puesto (regresarAction)=\"regresarActos($event)\"></app-acto-cambio-puesto>\n             </div>\n            <!-- Cambio Empleado Accion: Retiro  -->\n            <div *ngIf=\"isEsTipoCambioEmpleado() && actoRetiro\">\n                <app-actos-ausencia-terminacion (regresarAction)=\"regresarActos($event)\"></app-actos-ausencia-terminacion>\n            </div>\n\n            <!--  CAMPOS COMUN A TODOS LOS TIPOS  -->\n            <div class=\"mt-3\">\n                <div class=\"col-md-12\">\n                    <div class=\"p-fluid p-formgrid grid\">\n                        <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"(!isEsPrestamo() || mapaCampos.get('observacion')) && !isEsTipoCambioEmpleado()\">\n                            <span class=\"p-float-label\">\n                                <textarea pInputTextarea [(ngModel)]=\"novedadDTO.observacion\" rows=\"5\" cols=\"30\" [disabled]=\"desabilitarCampos\"\n                                    class=\"w-full min-h-100 max-h-150\">\n                                </textarea>\n                                <label>{{'observacion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isMostrarTerminos()\">\n                            <div class=\"flex align-items-center gap-1\">\n                                <p-checkbox class=\"ml-1\" [(ngModel)]=\"aceptoTerminos\" [binary]=\"true\" [disabled]=\"desabilitarCampos\"></p-checkbox>\n                                <label class=\"ml-1 font-semibold\">{{'termino' | translate}}:</label> \n                                <label class=\"ml-1\" *ngIf=\"tipoNovedadDTO.termino?.length <= 100\">{{tipoNovedadDTO.termino}}</label>\n                                <!-- <textarea pInputTextarea [(ngModel)]=\"novedadDTO.termino\" rows=\"5\" cols=\"30\" [disabled]=\"true\"\n                                    *ngIf=\"tipoNovedadDTO.termino?.length > 100\" class=\"w-full min-h-100 max-h-150\">\n                                </textarea> -->\n                            </div>\n                        </div>\n\n                        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isMostrarTerminos()\"></div>\n                        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isMostrarTerminos()\"></div>\n\n                        <div class=\"col-12 md:col-1 lg:col-1\" *ngIf=\"(!isEsPrestamo() || mapaCampos.get('observacion')) && !isEsTipoCambioEmpleado()\">\n                            <label>{{'estado' | translate}}</label>\n                        </div>\n                        <div class=\"col-12 md:col-11 lg:col-11\" *ngIf=\"(!isEsPrestamo() || mapaCampos.get('observacion')) && !isEsTipoCambioEmpleado()\">\n                            <h5>{{getNombreEstado()}}</h5>\n                        </div>\n\n                        <p-fieldset class=\"col-12\" *ngIf=\"novedadDTO.autorizadorBPM != null\">\n                            <ng-template pTemplate=\"header\">\n                                <div class=\"flex align-items-center\">\n                                    <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                    <span class=\"font-bold\">{{'autorizadorbpm' | translate}}</span>\n                                </div>\n                            </ng-template>\n\n                            <div class=\"p-fluid p-formgrid grid\" >\n                                <div class=\"col-12 md:col-4 lg:col-4\">\n                                    <span class=\"p-float-label\">\n                                        <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\" [(ngModel)]=\"novedadDTO.autorizadorBPM\" autocomplete=\"off\" />\n                                        <label>{{'identificacion' | translate}} {{'autorizadorbpm' | translate}}</label>\n                                    </span>\n                                </div>\n        \n                                <div class=\"col-12 md:col-4 lg:col-4\">\n                                    <span class=\"p-float-label\">\n                                        <input pInputText autofocus type=\"text\" [disabled]=\"true\" [maxlength]=\"20\" [(ngModel)]=\"novedadDTO.nombreAutorizadorBPM\" autocomplete=\"off\" />\n                                        <label>{{'nombre' | translate}} {{'autorizadorbpm' | translate}}</label>\n                                    </span>\n                                </div>\n                            </div>\n                        </p-fieldset>\n                        \n                        <div class=\"field col-12 md:col-3 lg:col-4\" *ngIf=\"!isEsTipoCambioEmpleado() && isPeriodoAplica()\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"desabilitarCampos\" [maxlength]=\"20\" [(ngModel)]=\"novedadDTO.periodoAplica\" autocomplete=\"off\" />\n                                <label>{{'periodoaplica' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-6 lg:col-8\" *ngIf=\"!isEsTipoCambioEmpleado() && isPeriodoAplica()\"></div>\n\n\n                        <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"novedadDTO.mensaje != null\">\n                            <span class=\"p-float-label\">\n                                <textarea pInputTextarea [(ngModel)]=\"novedadDTO.mensaje\" rows=\"5\" cols=\"30\" [disabled]=\"true\"\n                                    class=\"w-full min-h-100 max-h-150\">\n                                </textarea>\n                                <label>{{'mensaje' | translate}}</label>\n                            </span>\n                        </div>\n                        \n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"mt-3\" *ngIf=\"(listaDocumentoTipoNovedad.length > 0 || isActividadNovedad()) && !isEsTipoCambioEmpleado()\">\n            <p-table [value]=\"listaDocumentoTipoNovedad\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                [selectionMode]=\"modificar ? 'single' : null\" \n                [rows]=\"10\" [paginator]=\"listaDocumentoTipoNovedad.length > 10\" [totalRecords]=\"listaDocumentoTipoNovedad.length\"\n                (onRowSelect)=\"nuevoDocumento($event)\" (onRowUnselect)=\"nuevoDocumento($event)\">\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th style=\"min-width: 20%;\">{{'tipodocumento' | translate}}</th>\n                        <th style=\"min-width: 30%;\">{{'requisito' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'estado' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'cumplido' | translate}}</th>\n                        <th style=\"min-width: 10%;\">{{'vigencia' | translate}}</th>\n                        <th style=\"min-width: 15%;\">{{'observacion' | translate}}</th>\n                        <th style=\"min-width: 5%;\"></th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n                    <tr [pSelectableRow]=\"data\">\n                        <td style=\"min-width: 20%;\"><i class=\"pi pi\n                            -upload\"></i> {{data.nombreTipoDocumento}}</td>\n                        <td style=\"min-width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.archivo\">{{data.requisitoHojaDTO.archivo}}\n                        </td>\n                        <td style=\"min-width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.nombreFormato\">\n                            {{data.requisitoHojaDTO.nombreFormato}}</td>\n                        <td style=\"min-width: 30%;\"\n                            *ngIf=\"!data.requisitoHojaDTO?.archivo && !data.requisitoHojaDTO?.nombreFormato\"></td>\n                        <td style=\"min-width: 10%;\">{{data.requisitoHojaDTO?.estado\n                            |listaConstantesPipe:'listaCumplidoReq'}}</td>\n                        <td style=\"min-width: 10%;\">{{data.requisitoHojaDTO?.cumplido | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"min-width: 10%;\">{{data.requisitoHojaDTO?.vigencia | date: 'dd/MM/yyyy'}}</td>\n                        <td style=\"min-width: 15%;\">{{data.requisitoHojaDTO?.observacion }}</td>\n                        <td  style=\"min-width: 5%;\">\n                            <button pButton pRipple class=\"m-2 p-button p-button-secondary p-button-rounded\" *ngIf=\"data.tipoDocumentoTipo == 'I' && data.requisitoHojaDTO?.archivo != null\"\n                                icon=\"glyphicons glyphicons-paperclip\" (click)=\"descargarAnexo(data)\" type=\"file\" ></button>\n                        </td>\n                    </tr>\n                </ng-template>\n            </p-table>\n\n            <!--<p-table [value]=\"listaDocumentoTipoNovedad\" [scrollable]=\"true\"\n                [rows]=\"paginator.rows\" [paginator]=\"true\" [totalRecords]=\"paginator.totalRecords\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                [showCurrentPageReport]=\"true\" >\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th>{{'tipodocumento' | translate}}</th>\n                        <th>{{'requisito' | translate}}</th>\n                        <th>{{'estado' | translate}}</th>\n                        <th>{{'cumplido' | translate}}</th>\n                        <th>{{'vigencia' | translate}}</th>\n                        <th>{{'observacion' | translate}}</th>\n                        <th> </th>\n                        <th> </th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-documento>\n                    <tr>\n                        <td>{{documento.nombreTipoDocumento}}</td>\n                        <td>\n                            <label *ngIf=\"documento.requisitoHojaDTO.archivo != null\">{{documento.requisitoHojaDTO.archivo}}</label>\n                            <label *ngIf=\"documento.requisitoHojaDTO.nombreFormato != null\">{{documento.requisitoHojaDTO.nombreFormato}}</label>\n                        </td>\n                        <td>{{getEstadoDoc(documento.requisitoHojaDTO.estado)}}</td>\n                        <td>{{documento.requisitoHojaDTO.cumplido | date: ('formatofecha' | translate)}}</td>\n                        <td>{{documento.requisitoHojaDTO.vigencia | date: ('formatofecha' | translate)}}</td>\n                        <td>{{documento.requisitoHojaDTO.observacion}}</td>\n                        <td><button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-paperclip\"\n                            *ngIf=\"documento.tipo == 'I' && !nuevo \" (click)=\"descargarAnexo(documento)\" type=\"file\"></button></td>\n                        <td><button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-plus\" *ngIf=\"isVerBtnGuardar()\"\n                            (click)=\"nuevoDocumento(documento)\" type=\"file\"></button></td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>-->\n\n        </div>\n    </div>\n\n    <div class=\"mt-2\" *ngIf=\"!encuesta && !procesoAutorizacion && !mostrarAplicarValidacionDoc && !isEsTipoCambioEmpleado()\" >\n        <!--botones-->\n        <div [class]=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento') && mostrar && isVerBtnGuardar() ? 'flex justify-content-end align-items-center mt-3' : 'flex justify-content-end align-items-center mt-3'\" *ngIf=\"mostrar\">\n            <div class=\"flex align-items-center gap-1 mr-3\" *ngIf=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento') && mostrar && isVerBtnGuardar()\">\n                <p-checkbox class=\"ml-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                <label class=\"ml-1\">{{'seguimiento' | translate}}</label>\n            </div>\n            <div class=\"splitbuttonOscuro\">\n                <!--CRUD BOTONES-->\n                <p-splitButton label=\"Acciones novedad\" icon=\"glyphicons glyphicons-list\" *ngIf=\"!ocultarBotones\"\n                    [model]=\"itemsBotonAcciones\"></p-splitButton>\n            </div>\n        </div>\n    </div>\n    <!--<div *ngIf=\"!isEsTipoCambioEmpleado() && !encuesta && !procesoAutorizacion\">\n        <div class=\"flex justify-content-end mt-4\">\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n                label=\"{{'link_cancelar' | translate}}\" (click)=\"cerrarAction()\">\n            </button>\n        </div>\n    </div>-->\n\n</div>\n\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"cerrarAction()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"cerrarAction()\"></app-ejecucion-encuesta>\n\n<app-input-helper-empleado-boton [showDialog]=\"mostrarPopupEmpleado\" [soloPopup]=\"true\"\n    (regresar)=\"regresarPopupEmpleado($event)\" (onSelected)=\"setEmpleadoPopup($event)\"></app-input-helper-empleado-boton>\n<!--<app-popup-documento-novedad (destino)=\"setDocumento($event)\"></app-popup-documento-novedad>-->\n<app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\" (regresar)=\"regresarPopupSeguimiento()\"></app-popup-seguimiento>\n<div *ngIf=\"renderNovedadMultiple\">\n    <app-popup-seleccion-novedad-multiple [mostrarPopup]=\"mostrarPopupSeleccionNovedadMultiple\" (regresar)=\"regresarPopupSeleccionNovedadMultiple()\"\n        (seleccionar)=\"setRelacionNovedad($event)\" [tipoNovedadDTO]=\"tipoNovedadHija\" [empleadoDTO]=\"empleadoDTO\"></app-popup-seleccion-novedad-multiple>\n</div>\n<app-popup-documento-novedad (destino)=\"setDocumento($event)\"></app-popup-documento-novedad>\n","import { UnionModel } from 'general-library-union'\nimport { NovedadModel } from './NovedadModel';\n\nexport class NovedadMasivaWrapperModel extends UnionModel {\n\t\n\tnovedadDTO:NovedadModel;\n\tlistaEntidad: any[];\n\trenderHoras: boolean;\n\trenderFecha: boolean;\n\trenderValor: boolean;\n\tcantidad: boolean;\n\tvalor: boolean;\n\tmapaCampos: Map<string, boolean> ;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class MateriaModel extends UnionModel {\n\n\t\n    materia: string;\n\tdescripcion: string;\n\tparametroBusqueda: string;\n\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { NovedadMasivaWrapperModel } from '../../../models/NovedadMasivaWrapper';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { TipoNovedadModel } from '../../../models/TipoNovedadModel';\nimport { TipoServicioModel } from '../../../models/TipoServicioModel';\nimport { NovedadModel } from '../../../models/NovedadModel';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ItemTipoNovedadModel } from '../../../models/ItemTipoNovedadModel';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { ConceptoModel } from '../../../models/ConceptoModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { EntidadModel } from '../../../models/EntidadModel';\nimport { VariableModel } from '../../../models/VariableModel';\nimport { TipoNovedadPipe } from '../../../pipes/tipoNovedad.pipe';\nimport { LiquidacionPerPipe } from '../../../pipes/liquidacionper.pipe';\nimport { VariableFechaModel } from '../../../models/VariableFechaModel';\nimport { CentroCostoModel } from '../../../models/CentroCostoModel';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { LineaCostoModel } from '../../../models/LineaCostoModel';\nimport { MateriaModel } from '../../../models/MateriaModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { NovedadService } from '../../../services/novedad.service';\nimport { MenuItem, PrimeTemplate } from 'primeng/api';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-registro-novedad-masiva-cont',\n    templateUrl: './registro-novedad-masiva-cont.component.html',\n    styleUrls: ['./registro-novedad-masiva-cont.component.scss'],\n    standalone: true,\n    imports: [NgIf, CabeceraEmpleadoComponent, ButtonDirective, Ripple, CheckboxModule, FormsModule, InputTextareaModule, SplitButtonModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, InputNumberModule, InputTextModule, DropdownModule, CalendarModule, InputHelperSeleccionZonaCentroComponent, TranslateModule]\n})\nexport class RegistroNovedadMasivaContComponent implements OnInit {\n\n  public listadoNovedades: NovedadMasivaWrapperModel[];\n\tpublic listaLineaCosto: any[];\n\tpublic listaMateria: any[];\n\tpublic verEntidadConcepto: boolean;\n\tpublic nuevo: boolean;\n\tpublic deshabilitarCampos: boolean;\n\tpublic aceptoTerminos: boolean;\n\tpublic empleado: EmpleadoModel;\n\tpublic tipoNovedadDTO: TipoNovedadModel;\n\tpublic tipoServico: TipoServicioModel;\n\tpublic cantidadNovFecha: number = 0;\n\tpublic cantidadNovHora: number = 0;\n\tpublic llaveProceso: string;\n\tpublic origenTarea: string;\n\tpublic idForm: string;\n\tpublic novedadActual: NovedadMasivaWrapperModel;\n\tpublic grupoNovedad: NovedadModel[];\n\n\tpublic mostrarDetalle: boolean = false;\n\tpublic clickGuardar: boolean = false;\n\tpublic itemsBotonAcciones: MenuItem[];\n\t@Output() public regresar = new EventEmitter;\n\n  \n  constructor(public utilsService: UtilsService,\n              private notificacionesService: ToastService,\n              public novedadPipe: NovedadPipe,\n              private authService: AuthService,\n              private generalPipe: GeneralPipe,\n\t\t\t  private tipoNovedadPipe: TipoNovedadPipe,\n\t\t\t  private novedadService: NovedadService,\n\t\t\t  private liquidacionPerPipe: LiquidacionPerPipe,\n\t\t\t  private saraAplicacionService: SaraAplicacionService,\n\t\t\t  private translateService: TranslateService,\n\t\t\t  private datoOrganizacionalPipe: DatoOrganizacionPipe,\n              private generalService: GeneralService,) { }\n\n  ngOnInit(): void {\n  }\n\n  cargarAccionesBotones() {\n\tthis.itemsBotonAcciones = [\n\t\t{\n\t\t\tlabel: this.translateService.instant('link_guardar'), \n\t\t\t  icon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t  visible: !this.deshabilitarCampos && (this.isConceptoPeriodo() || this.isVariablePeriodo() || this.isVariablePeriodoFecha()) ,\n\t\t\t  command: async (event) => {\n\t\t\t\tif (this.isConceptoPeriodo()) {\n\t\t\t\t\tawait this.insertarConceptoPeriodo();\n\t\t\t\t} else if (this.isVariablePeriodo()) {\n\t\t\t\t\tawait this.insertarVariablePeriodo();\n\t\t\t\t} else if (this.isVariablePeriodoFecha()){\n\t\t\t\t\tawait this.insertarVariablePeriodoFecha();\n\t\t\t\t}\n\t\t\t\tthis.cargarAccionesBotones();\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tlabel: this.translateService.instant('link_cambiardato'), \n\t\t\t  icon: \"glyphicons glyphicons-random\",\n\t\t\t  visible: !this.nuevo && this.deshabilitarCampos,\n\t\t\t  command: async (event) => {\n\t\t\t\tthis.cambiarDatos();\n\t\t\t\tthis.cargarAccionesBotones();\n\t\t\t}\n\t\t},\n\t]\n}\n\n  public async init(llaveTipoNovedad: string, empleado: EmpleadoModel, nuevo: boolean, llaveNovedadMasiva: string, idForm: string, origenTarea: string) {\n\t\t\n\t\tthis.origenTarea = origenTarea;\n\t\tthis.idForm = idForm;\n\t\tif (nuevo) {\n\t\t\tthis.llaveProceso = this.utilsService.generarLlave();\n\t\t\tthis.grupoNovedad = [];\n\t\t\tthis.deshabilitarCampos = false;\n\t\t} else {\n\t\t\tthis.deshabilitarCampos = true;\n\t\t\tthis.llaveProceso = llaveNovedadMasiva;\n\t\t\tvar novedadDTO = new NovedadModel();\n\t\t\tnovedadDTO.dependeNovedad = llaveNovedadMasiva;\n\t\t\tthis.aceptoTerminos = true;\n\t\t\tthis.grupoNovedad = await this.generalService.queryForList(new GeneralModel('NovedadDTO', null, false, novedadDTO)).toPromise();\n\t\t}\n\n\t\tthis.nuevo = nuevo;\n\t\tthis.empleado = empleado;\n\t\tthis.tipoNovedadDTO = new TipoNovedadModel();\n\t\tthis.tipoNovedadDTO.llave = llaveTipoNovedad;\n\t\tthis.tipoNovedadDTO = await this.generalService.queryForObject(new GeneralModel('TipoNovedadDTO', null, false, this.tipoNovedadDTO)).toPromise();\n\t\tthis.definirTipoServicioEntidad(this.tipoNovedadDTO.tipoServicio);\n\t\tvar itemTipoNovedadDTO = new ItemTipoNovedadModel();\n\t\titemTipoNovedadDTO.tipoNovedad = this.tipoNovedadDTO.llave;\n\t\tvar listadoRelacion: ItemTipoNovedadModel[] = await this.generalService.queryForList(new GeneralModel('ItemTipoNovedadDTO', null, false, itemTipoNovedadDTO)).toPromise()\n\t\tif (this.isConceptoPeriodo()) {\n\t\t\tawait this.cargarConceptoPeriodo(listadoRelacion);\n\t\t} else if (this.isVariablePeriodo()) {\n\t\t\tawait this.cargarVariablePeriodo(listadoRelacion);\n\t\t} else if (this.isVariablePeriodoFecha()) {\n\t\t\tawait this.cargarVariablePeriodoFecha(listadoRelacion);\n\t\t}\n\t\tawait this.cargarListaLineaCosto();\n\t\tawait this.cargarListaMateria();\n\t\tthis.mostrarDetalle = true;\n\t\tthis.cargarAccionesBotones();\n\t\tthis.utilsService.resizeWindowIFrame()\n\t}\n\n\tprivate async cargarRelacion(): Promise<ItemTipoNovedadModel[]> {\n\t\tvar itemTipoNovedadDTO = new ItemTipoNovedadModel();\n\t\titemTipoNovedadDTO.tipoNovedad = this.tipoNovedadDTO.llave;\n\t\tlet data: ItemTipoNovedadModel[] =[]// await this.generalService.queryForList(new GeneralModel('ItemTipoNovedadDTO', null, false, itemTipoNovedadDTO)).toPromise()\n\t\treturn data;\n\t}\n\n\tprivate async cargarConceptoPeriodo(listadoRelacion) {\n\t\tthis.listadoNovedades = [];\n\t\tvar novedad: NovedadModel = null;\n\t\tvar novedadWrapper: NovedadMasivaWrapperModel = null;\n\t\tfor (let i = 0; i < listadoRelacion.length; i++){\n\t\t\tvar itemRelacion = listadoRelacion[i];\n\t\t\tnovedad = null;\n\t\t\tfor (let j = 0; j < this.grupoNovedad.length; j++) {\n\t\t\t\tvar novedadGuardada = this.grupoNovedad[j];\n\t\t\t\tif (itemRelacion.concepto == novedadGuardada.concepto) {\n\t\t\t\t\tnovedad = novedadGuardada;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (novedad == null) {\n\t\t\t\tnovedad = new NovedadModel();\n\t\t\t\tnovedad.estado = this.novedadPipe.NUEVA;\n\t\t\t\tnovedad.tiponovedad = this.tipoNovedadDTO.llave;\n\t\t\t\tnovedad.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\tnovedad.concepto = itemRelacion.concepto;\n\t\t\t\tnovedad.descripcionConcepto = itemRelacion.descripcionConcepto;\n\t\t\t}\n\t\t\tnovedadWrapper = new NovedadMasivaWrapperModel();\n\t\t\tnovedadWrapper.novedadDTO = novedad;\n\t\t\tnovedadWrapper.listaEntidad = await this.cargarEntidadConceptoPeriodo(itemRelacion.concepto);\n\t\t\tthis.listadoNovedades.push(novedadWrapper);\n\t\t}\n\n\t}\n\n\tprivate async cargarEntidadConceptoPeriodo(nroConcepto: number) {\n\t\tvar listaEntidad: any[] = null;\n\t\tvar concepto = new ConceptoModel();\n\t\tconcepto.concepto = nroConcepto;\n\t\tconcepto = await this.generalService.queryForObject(new GeneralModel('ConceptoDTO', null, false, concepto)).toPromise();\n\n\t\tif (concepto != null && concepto.unico != null && concepto.unico != this.generalPipe.NO && concepto.tipoServicio != null\n\t\t\t\t&& concepto.tipoServicio.trim() != this.generalPipe.PUNTO) {\n\t\t\tvar entidades: EntidadModel[] = await this.generalService.queryForList(new GeneralModel('EntidadDTO', 'Entidad.entidadesTipoNovedad', false, {llave: this.tipoNovedadDTO.llave})).toPromise();\n\t\t\tlistaEntidad = [];\n\t\t\tif (entidades.length > 0) {\n\t\t\t\tentidades.forEach(entidadDTO => {\n\t\t\t\t\tlistaEntidad.push({value: entidadDTO.llave, label: entidadDTO.descripcion});\n\t\t\t\t})\n\t\t\t\tthis.verEntidadConcepto = true;\n\t\t\t\treturn listaEntidad;\n\t\t\t}\n\t\t}\n\t\tthis.verEntidadConcepto = false;\n\t\treturn [];\n\t}\n\n\tprivate async cargarVariablePeriodo(listadoRelacion) {\n\t\tthis.listadoNovedades = [];\n\t\tvar novedad: NovedadModel = null;\n\t\tvar novedadWrapper: NovedadMasivaWrapperModel = null;\n\t\tvar variable: VariableModel = null;\n\n\t\tfor (let i = 0; i < listadoRelacion.length; i++){\n\t\t\tvar itemRelacion = listadoRelacion[i];\n\t\t\tnovedad = null;\n\t\t\tfor (let j = 0; j < this.grupoNovedad.length; j++) {\n\t\t\t\tvar novedadGuardada = this.grupoNovedad[j];\n\t\t\t\tif (itemRelacion.variable == novedadGuardada.variable) {\n\t\t\t\t\tnovedad = novedadGuardada;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (novedad == null) {\n\t\t\t\tnovedad = new NovedadModel();\n\t\t\t\tnovedad.estado = this.novedadPipe.NUEVA;\n\t\t\t\tnovedad.tiponovedad = this.tipoNovedadDTO.llave;\n\t\t\t\tnovedad.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\tnovedad.variable = itemRelacion.variable;\n\t\t\t\tnovedad.descripcionVariable = itemRelacion.descripcionVariable;\n\t\t\t}\n\n\t\t\tvariable = await this.obtenerVariable(itemRelacion.variable);\n\t\t\tnovedadWrapper = new NovedadMasivaWrapperModel();\n\t\t\tnovedadWrapper.novedadDTO = novedad;\n\t\t\tnovedadWrapper.renderHoras = this.isRenderHoras(variable);\n\t\t\tnovedadWrapper.renderFecha = this.isRenderFecha(variable);\n\t\t\tnovedadWrapper.cantidad = this.isCantidad(variable);\n\n\t\t\tif (this.isRenderFecha(variable)) {\n\t\t\t\tthis.cantidadNovFecha++;\n\t\t\t}\n\t\t\tif (this.isRenderHoras(variable)) {\n\t\t\t\tthis.cantidadNovHora++;\n\t\t\t}\n\n\t\t\tnovedadWrapper.valor = this.isValor();\n\t\t\tnovedadWrapper.renderValor = this.isRenderValor(variable);\n\t\t\tthis.listadoNovedades.push(novedadWrapper);\n\t\t}\n\t}\n\n\tprivate async cargarVariablePeriodoFecha(listadoRelacion) {\n\t\tthis.listadoNovedades = [];\n\t\tvar novedad: NovedadModel = null;\n\t\tvar novedadWrapper: NovedadMasivaWrapperModel = null;\n\t\tvar variable: VariableFechaModel = null;\n\t\tfor (let i = 0; i < listadoRelacion.length; i++){\n\t\t\tvar itemRelacion = listadoRelacion[i];\n\t\t\tnovedad = null;\n\t\t\tfor (let j = 0; j < this.grupoNovedad.length; j++) {\n\t\t\t\tvar novedadGuardada = this.grupoNovedad[j];\n\t\t\t\tif (itemRelacion.variableFecha == novedadGuardada.variableFecha) {\n\t\t\t\t\tnovedad = novedadGuardada;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (novedad == null) {\n\t\t\t\tnovedad = new NovedadModel();\n\t\t\t\tnovedad.estado = this.novedadPipe.NUEVA;\n\t\t\t\tnovedad.tiponovedad = this.tipoNovedadDTO.llave;\n\t\t\t\tnovedad.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\tnovedad.variableFecha = itemRelacion.variableFecha;\n\t\t\t\tnovedad.codigoVariableFecha = itemRelacion.codigoVariableFecha;\n\t\t\t\tnovedad.descripcionVariableFecha = itemRelacion.descripcionVariableFecha;\n\t\t\t}\n\n\t\t\tvariable = await this.obtenerVariableFecha(itemRelacion.variableFecha);\n\t\t\tnovedadWrapper = new NovedadMasivaWrapperModel();\n\t\t\tnovedadWrapper.mapaCampos = await this.cargarCamposFormularioVariableFecha(itemRelacion.variableFecha);\n\t\t\tnovedadWrapper.novedadDTO = novedad;\n\t\t\tnovedadWrapper.listaEntidad = await this.cargarListaEntidadesPorServicio(variable.tipoServicio);\n\n\t\t\tthis.listadoNovedades.push(novedadWrapper);\n\t\t}\n\t}\n\n\tprivate validarConceptoPeriodo(novedad: NovedadModel, index: number) {\n\t\tvar validador = true;\n\t\t\n\t\t//Si los campos obligatorios todos son nulos no genera msjs de validacion y no se guarda el registro\n\t\tif (novedad.valor == null) {\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(novedad.valor);\n\t\treturn validador;\n\t}\n\n\tprivate validarVariablePeriodo(novedadWrapper: NovedadMasivaWrapperModel, index: number) {\n\t\tvar validador = true;\n\t\t\n\t\tif((novedadWrapper.renderValor || novedadWrapper.valor) && novedadWrapper.novedadDTO.valor == null) {\n\t\t\treturn false;\n\t\t}else if (novedadWrapper.renderFecha && novedadWrapper.novedadDTO.dato == null){\n\t\t\treturn false;\n\t\t}\n\n\t\tif (novedadWrapper.renderValor || novedadWrapper.valor) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(novedadWrapper.novedadDTO.valor);\n\t\t} else if (novedadWrapper.renderFecha) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(novedadWrapper.novedadDTO.dato);\n\t\t} else if (novedadWrapper.renderHoras) {\n\t\t\tif (novedadWrapper.novedadDTO.minutos == null && novedadWrapper.novedadDTO.hora == null) {\n\t\t\t\tnovedadWrapper.novedadDTO.cantidad = null;\n\t\t\t} else {\n\t\t\t\tnovedadWrapper.novedadDTO.cantidad =\n\t\t\t\t\t\tparseInt((novedadWrapper.novedadDTO.hora == null ? 0 : novedadWrapper.novedadDTO.hora) + this.generalPipe.PUNTO\n\t\t\t\t\t\t\t\t+ (novedadWrapper.novedadDTO.minutos == null ? 0 : novedadWrapper.novedadDTO.minutos));\n\t\t\t}\n\t\t}\n\n\t\treturn validador;\n\t}\n\tprivate validarVariablePeriodoFecha(novedadWrapper: NovedadMasivaWrapperModel, index: number) {\n\t\tvar validador: boolean = true;\n\t\t\n\t\t//Si los campos obligatorios todos son nulos no genera msjs de validacion y no se guarda el registro\n\t\tif(novedadWrapper.novedadDTO.desde==null && novedadWrapper.novedadDTO.valor== null && novedadWrapper.novedadDTO.cantidad == null) {\n\t\t\treturn false;\n\t\t}\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(novedadWrapper.novedadDTO.valor);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(novedadWrapper.novedadDTO.cantidad);\n\t\tif (novedadWrapper.novedadDTO.materia == null) {\n\t\t\tnovedadWrapper.novedadDTO.materia = this.generalPipe.PUNTO;\n\t\t}\n\t\treturn validador;\n\t}\n\n\tpublic async insertarConceptoPeriodo() {\n\t\tif (!this.validarTerminos()) {\n\t\t\treturn;\n\t\t}\n\t\tvar indexValidar: number = 0;\n\t\tvar primeraInsercion: number = 0;\n\n\t\tfor (let i = 0; i < this.listadoNovedades.length; i++) {\n\t\t\tvar novedad = this.listadoNovedades[i];\n\t\t\tif (!this.validarConceptoPeriodo(novedad.novedadDTO, indexValidar)) {\n\t\t\t\tindexValidar++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnovedad.novedadDTO = await this.insertarNovedad(primeraInsercion, novedad.novedadDTO);\n\t\t\tindexValidar++;\n\t\t\tprimeraInsercion++;\n\t\t}\n\t\tthis.validacionFinal(primeraInsercion);\n\t}\n\n\tpublic async insertarVariablePeriodo() {\n\t\tif (!this.validarTerminos()) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar indexValidar: number = 0;\n\t\tvar primeraInsercion: number = 0;\n\n\t\tfor (let i = 0; i < this.listadoNovedades.length; i++) {\n\t\t\tvar novedad = this.listadoNovedades[i];\n\t\t\t\tif (!this.validarVariablePeriodo(novedad, indexValidar)) {\n\t\t\t\tindexValidar++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnovedad.novedadDTO = await this.insertarNovedad(primeraInsercion, novedad.novedadDTO);\n\t\t\tindexValidar++;\n\t\t\tprimeraInsercion++;\n\t\t}\n\t\tthis.validacionFinal(primeraInsercion);\n\t}\n\n\tpublic async insertarVariablePeriodoFecha() {\n\t\tif (!this.validarTerminos()) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar indexValidar: number = 0;\n\t\tvar primeraInsercion: number = 0;\n\n\t\tfor (let i = 0; i < this.listadoNovedades.length; i++) {\n\t\t\tvar novedad = this.listadoNovedades[i];\n\t\t\t\tif (!this.validarVariablePeriodoFecha(novedad, indexValidar)) {\n\t\t\t\tindexValidar++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tnovedad.novedadDTO = await this.insertarNovedad(primeraInsercion, novedad.novedadDTO);\n\t\t\tindexValidar++;\n\t\t\tprimeraInsercion++;\n\t\t}\n\t\tthis.validacionFinal(primeraInsercion);\n\t}\n\n\tprivate async insertarNovedad(primeraInsercion: number, novedad: NovedadModel) {\n\t\tif (this.nuevo && primeraInsercion == 0) {\n\t\t\tnovedad.llaveTabla = this.llaveProceso;\n\t\t}\n\t\tnovedad.dependeNovedad = this.llaveProceso;\n\t\t\n\t\tif(this.novedadPipe.ORIGEN_NOVEDAD_LIQ_MASIVA == this.origenTarea) {\n\t\t\tnovedad.aplicaMasivo = this.generalPipe.SI;\n\t\t}\n\t\tvar data = await this.novedadService.actualizarNovedadMasivo({novedadDTO: novedad, empleadoDTO: this.empleado, nuevo: this.nuevo || novedad.llaveTabla == null, usuario: this.authService.getTokenKey('usuario'), sinBPM: false, llaveSeguimiento: null}).toPromise();\n\t\tnovedad = data.novedad;\n\t\treturn novedad;\n\t}\n\n\tprivate validacionFinal(primeraInsercion: number) {\n\t\tif (primeraInsercion == 0) {\n\t\t\tthis.notificacionesService.showWarning('No se inserto ninguna novedad');\n\t\t\treturn;\n\t\t}\n\t\tthis.nuevo = false;\n\t\tthis.deshabilitarCampos = true;\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t}\n\n\tpublic cambiarDatos() {\n\t\tthis.deshabilitarCampos = false;\n\t}\n\n\tpublic setZonaCentro(centroCostoDTO: CentroCostoModel, novedadActual: NovedadMasivaWrapperModel) {\n\t\tif (centroCostoDTO.descripcion != null) {\n\t\t\tnovedadActual.novedadDTO.zonaeconomica = centroCostoDTO.zonaEconomica;\n\t\t\tnovedadActual.novedadDTO.nombreZonaEconomica = centroCostoDTO.descripcionZona;\n\t\t\tnovedadActual.novedadDTO.centrocosto = centroCostoDTO.centroCosto;\n\t\t\tnovedadActual.novedadDTO.nombreCentroCosto = centroCostoDTO.descripcion;\n\n\t\t}\n\t}\n\n\tprivate validarTerminos() {\n\t\tif (this.utilsService.isNotBlank(this.getTerminos())) {\n\t\t\tif (!this.aceptoTerminos) {\n\t\t\t\tthis.notificacionesService.showWarning('Por favor acepte los terminos y condiciones para continuar.');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic isRenderFecha(variableDTO: VariableModel) {\n\t\tif (variableDTO.tipo != null && variableDTO.tipo == 'F') {\n\t\t\tif (this.isVariablePeriodo()) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t\n\tpublic regresarAction(){\n\t\tthis.regresar.emit(true);\n\t\tif(this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO == this.origenTarea){\n\t\t\t//ListadoNovedadEmpleadoBean listaNovedad = getBean(ListadoNovedadEmpleadoBean.class);\n\t\t\t//listaNovedad.traerListado(empleado);\n\t\t\t//listaNovedad.VerDetalleMasivo(false);\n\t\t\t//listaNovedad.Panel(0);\n\t\t}else if (this.novedadPipe.ORIGEN_APLICAR_NOVEDAD == this.origenTarea){\n\t\t\t//FacesUtils.ValorEL('listadoAplicarNovedadProcesoEmpleadoBean.mostrarListadoNovedades', null);\n\t\t}else if (this.novedadPipe.ORIGEN_NOVEDAD_LIQ_MASIVA == this.origenTarea){\n\t\t\t//FacesUtils.ValorEL('novedadesNominaLiqMasivaBean.mostrarNovedadesMasivas', false);\n\t\t}\n\t}\n\n\tpublic isRenderHoras(variableDTO: VariableModel) {\n\t\tif (variableDTO.tipo != null && variableDTO.tipo == 'H') {\n\t\t\tif (this.isVariablePeriodo()) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic isRenderValor(variableDTO: VariableModel) {\n\t\tif (this.isVariablePeriodo() && variableDTO.tipo != null && variableDTO.tipo == this.generalPipe.NO) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic isCantidad(variableDTO: VariableModel) {\n\t\treturn variableDTO.tipo != null && this.generalPipe.NO == variableDTO.tipo;\n\t}\n\n\tpublic isValor() {\n\t\treturn this.tipoServico != null && this.utilsService.isNotBlank(this.tipoServico.tituloValor);\n\t}\n\n\tprivate async obtenerVariable(variable: string) {\n\t\tvar variableDTO = new VariableModel();\n\t\tif (variable != null) {\n\t\t\tvariableDTO.variable = this.utilsService.rightpad(variable, 5, ' ');\n\t\t\tvariableDTO = await this.generalService.queryForObject(new GeneralModel('VariableDTO', null, false, variableDTO)).toPromise();\n\t\t}\n\t\tif (variableDTO == null) {\n\t\t\tvariableDTO = new VariableModel();\n\t\t\tvariableDTO.variable = this.utilsService.rightpad(variable, 5, ' ');\n\t\t\tvariableDTO.tipo = this.generalPipe.NO;\n\t\t}\n\t\treturn variableDTO;\n\t}\n\n\tprivate async obtenerVariableFecha(llaveVariableFecha: string) {\n\t\tvar variableFechaDTO = new VariableFechaModel();\n\t\tif (this.utilsService.isNotBlank(llaveVariableFecha)) {\n\t\t\tvariableFechaDTO.llaveTabla = llaveVariableFecha;\n\t\t\tvariableFechaDTO = await this.generalService.queryForObject(new GeneralModel('VariableFechaDTO', null, false, variableFechaDTO)).toPromise();\n\t\t}\n\t\tif (variableFechaDTO == null) {\n\t\t\tvariableFechaDTO = new VariableFechaModel();\n\t\t\tvariableFechaDTO.llaveTabla = llaveVariableFecha;\n\t\t}\n\t\treturn variableFechaDTO;\n\t}\n\t\n\tprivate async cargarCamposFormularioVariableFecha(llaveBase: string) {\n\t\tvar datoorganizacionDTO = new DatoorganizacionModel();\n\t\tdatoorganizacionDTO.tipo = this.datoOrganizacionalPipe.TIPO_VARIABLE_FECHA;\n\t\tdatoorganizacionDTO.tabla = this.datoOrganizacionalPipe.VARIABLE_FECHA;\n\t\tdatoorganizacionDTO.llaveBase = this.utilsService.rightpad(llaveBase, 32, ' ');\n\t\tvar listaDatoorganizacionDTO: DatoorganizacionModel[] = await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoorganizacionDTO)).toPromise();\n\t\tvar mapaCampos = new Map<string, boolean>();\n\t\tlistaDatoorganizacionDTO.forEach(datoorganizacionLista => {\n\t\t\tmapaCampos.set(datoorganizacionLista.campo, true);\n\t\t})\n\t\treturn mapaCampos;\n\t}\n\n\tprivate async cargarListaLineaCosto() {\n\t\tif (this.listaLineaCosto == null) {\n\t\t\tthis.listaLineaCosto = [];\n\t\t\tvar listaLineaCostoDTO: LineaCostoModel[] = [];\n\t\t\tvar lineaCostoDTO = new LineaCostoModel();\n\t\t\tlineaCostoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\tlistaLineaCostoDTO = await this.generalService.queryForList(new GeneralModel('LineaCostoDTO', null, false, lineaCostoDTO)).toPromise();\n\t\t\tlistaLineaCostoDTO.forEach(element =>  {\n\t\t\t\tthis.listaLineaCosto.push({value: element.lineaCosto, label: (element.lineaCosto + ' - ' + element.descripcion)});\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async cargarListaMateria() {\n\t\tif (this.listaMateria == null) {\n\t\t\tthis.listaMateria = [];\n\t\t\tvar listatipo: MateriaModel[] = [];\n\t\t\tlistatipo = await this.generalService.queryForList(new GeneralModel('MateriaDTO', null, false, new MateriaModel())).toPromise();\n\t\t\tlistatipo.forEach(element => {\n\t\t\t\tthis.listaMateria.push({value: element.materia, label: element.descripcion});\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate async cargarListaEntidadesPorServicio(tipoServicio: string) {\n\t\tvar listaEntidad: any[] = [];\n\t\tif (this.utilsService.isNotBlank(tipoServicio)) {\n\t\t\tvar entidadDTO = new EntidadModel();\n\t\t\tentidadDTO.filtroTipoServicio = tipoServicio;\n\t\t\tentidadDTO.modo = (await this.saraAplicacionService.getEmpresa()).modoCompensacion;\n\t\t\tvar lista = await this.generalService.queryForList(new GeneralModel('EntidadDTO', null, false, entidadDTO)).toPromise();\n\t\t\tlista.forEach(lis => {\n\t\t\t\tlistaEntidad.push({value: lis.llave, label: lis.descripcion});\n\t\t\t})\n\t\t\treturn listaEntidad;\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tprivate async definirTipoServicioEntidad(tipoServicio: string) {\n\t\tthis.tipoServico = new TipoServicioModel();\n\t\tif (tipoServicio == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.tipoServico.tipoServicio = tipoServicio;\n\t\tthis.tipoServico = await this.generalService.queryForObject(new GeneralModel('TipoServicioDTO', null, false, this.tipoServico)).toPromise();\n\t}\n\n\tpublic desabilitarValor(comando) {\n\t\tif (comando == 'aplicar' || comando == 'guardar') {\n\t\t\tthis.deshabilitarCampos = false;\n\t\t} else {\n\t\t\tthis.deshabilitarCampos = true;\n\t\t}\n\t}\n\n\tpublic isVerEntidadConcepto() {\n\t\treturn this.verEntidadConcepto;\n\t}\n\n\tpublic isVariablePeriodo() {\n\t\treturn this.tipoNovedadDTO != null && this.tipoNovedadPipe.VARIABLE_PERIODO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tpublic isConceptoPeriodo() {\n\t\treturn this.tipoNovedadDTO != null && this.tipoNovedadPipe.CONCEPTO_PERIODO == this.tipoNovedadDTO.tipo;\n\t}\n\n\tpublic isVariablePeriodoFecha() {\n\t\treturn this.tipoNovedadDTO != null && this.tipoNovedadPipe.VARIABLE_PERIODO_FECHAS == this.tipoNovedadDTO.tipo;\n\t}\n\n\tpublic getListaHoras() {\n\t\treturn this.liquidacionPerPipe.LISTADOHORAS;\n\t}\n\n\tpublic getListaMinutos() {\n\t\treturn this.liquidacionPerPipe.LISTADOMINUTOS;\n\t}\n\n\tpublic getTerminos() {\n\t\treturn this.tipoNovedadDTO.termino;\n\t}\n\n\tpublic getMensajeNovedad() {\n\t\treturn this.tipoNovedadDTO.mensaje;\n\t}\n\n\tpublic isMostrarColumnaFecha() {\n\t\treturn this.cantidadNovFecha > 0;\n\t}\n\n\tpublic isMostrarColumnaHora() {\n\t\treturn this.cantidadNovHora > 0;\n\t}\n\n\t\n\tpublic isVerCosteo() {\n\t\tif(this.listadoNovedades==null) {\n\t\t\treturn false;\n\t\t}\n\t\tvar retorno = false;\n\t\tthis.listadoNovedades.forEach(novedad => {\n\t\t\tif(novedad.mapaCampos==null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(novedad.mapaCampos.get('zonaeconomica') !=null ||\n\t\t\t   novedad.mapaCampos.get('centrocosto') !=null ||\n\t\t\t   novedad.mapaCampos.get('lineacosto') !=null ||\n\t\t\t   novedad.mapaCampos.get('materia') !=null ||\n\t\t\t   novedad.mapaCampos.get('entidad') !=null) {\n\t\t\t\tretorno = true;\n\t\t\t}\n\t\t})\n\t\treturn retorno;\n\t}\n\n\tgetNombreEstado(novedadDTO: NovedadModel) {\n\t\tvar nombreEstado = 'ESTADO NO DEFINIDO';\n\t\tif (novedadDTO.estado == null || novedadDTO.estado == undefined) {\n\t\t\treturn '';\n\t\t} \n\t\tif ( novedadDTO.estado == this.novedadPipe.PROGRAMADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCPROGRAMADA;\n\t\t} else if ( novedadDTO.estado == this.novedadPipe.LEGALIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCLEGALIZADA;\n\t\t} else if ( novedadDTO.estado == this.novedadPipe.NO_LEGALIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.NO_LEGALIZADA_DESC;\n\t\t} else if ( novedadDTO.estado == this.novedadPipe.AUTORIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCAUTORIZADA;\n\t\t} else if ( novedadDTO.estado == this.novedadPipe.NOAUTORIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCNOAUTORIZADA;\n\t\t} else if ( novedadDTO.estado == this.novedadPipe.SOLICITUD) {\n\t\t\tnombreEstado = this.novedadPipe.DESCSOLICITUD;\n\t\t} else if ( novedadDTO.estado == this.novedadPipe.PRELIQUIDACION) {\n\t\t\tnombreEstado = this.novedadPipe.DESCPRELIQUIDACION;\n\t\t}\n\t\treturn nombreEstado;\n\t}\n\n}","<app-cabecera-empleado [empleado]=\"empleado\" *ngIf=\"empleado != null && origenTarea != this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO && origenTarea != this.novedadPipe.ORIGEN_NOVEDAD_HISTORICO_EMPLEADO\"></app-cabecera-empleado>\n<div *ngIf=\"mostrarDetalle\">\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-2\"  >\n        <h1 class=\"text-xl mb-1\">{{'registronovedadmasiva' | translate}}</h1>\n        <button pButton pRipple (click)=\"regresarAction()\" label= \"{{'listadonovedades' | translate}}\" \n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n    </div>\n    <div class=\"cardInstrucciones\" *ngIf=\"getMensajeNovedad()\">\n        <div class=\"flex\">\n            <div class=\"icono\">\n                <i class=\"pi pi-info\"></i>\n            </div>\n            <div class=\"contenedor\">\n                <label>{{getMensajeNovedad()}}</label>\n            </div>\n        </div>\n    </div>\n    <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"getTerminos()\">\n        <div class=\"flex align-items-center gap-1\">\n            <p-checkbox class=\"ml-1\" [(ngModel)]=\"aceptoTerminos\" [binary]=\"true\" [disabled]=\"deshabilitarCampos\"></p-checkbox>\n            <label class=\"ml-1 font-semibold\" >{{'termino' | translate}}:</label>\n            <label class=\"ml-1\" *ngIf=\"getTerminos()?.length <= 100\">{{getTerminos()}}</label>\n        </div>\n    </div>\n\n    <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"getTerminos()\">\n        <textarea pInputTextarea [(ngModel)]=\"tipoNovedadDTO.termino\" rows=\"5\" cols=\"30\" [disabled]=\"true\"\n            *ngIf=\"getTerminos()?.length > 100\" class=\"w-full min-h-100\">\n        </textarea>\n    </div>\n\n    <div class=\"mb-3 flex justify-content-end\" >\n        <p-splitButton label=\"Acciones novedades\" icon=\"glyphicons glyphicons-list\"\n            [model]=\"itemsBotonAcciones\"></p-splitButton>\n    </div>\n\n    <!--  CONCEPTO PERIODO  -->\n    <p-table [value]=\"listadoNovedades\" styleClass=\"p-datatable-striped\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"10\"\n        [paginator]=\"listadoNovedades.length > 10\" [totalRecords]=\"listadoNovedades.length\" *ngIf=\"isConceptoPeriodo()\" \n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" >\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'concepto' | translate}}</th>\n                <th>{{'detalle' | translate}}</th>\n                <th>{{'observacion' | translate}}</th>\n                <th>{{'otros' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr>\n                <td>\n                    <h6>{{bean.novedadDTO.concepto}} - {{bean.novedadDTO.descripcionConcepto}}</h6>\n                </td>\n                <td>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <!--VALOR-->\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"deshabilitarCampos\" [(ngModel)]=\"bean.novedadDTO.valor\"\n                                    [class]=\"!utilsService.validarCampoObligatorio(bean.novedadDTO.valor) && clickGuardar  ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\"    \n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label >{{'valor' | translate}}*</label>\n                            </span>\n                        </div>\n                        <!--PRESUPUESTAL-->\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"deshabilitarCampos\" [(ngModel)]=\"bean.novedadDTO.presupuestal\" [maxlength]=\"30\" autocomplete=\"off\" />\n                                <label>{{'presupuestal' | translate}}</label>\n                            </span>\n                        </div>\n                        <!--ENTIDAD-->\n                        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"bean.listaEntidad.length > 0\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"bean.listaEntidad\" [(ngModel)]=\"bean.novedadDTO.entidad\"  [disabled]=\"deshabilitarCampos\" appendTo=\"body\" \n                                    [autoDisplayFirst]=\"false\" >\n                                </p-dropdown>\n                                <label>{{'entidad' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <td>\n                    <textarea pInputTextarea [(ngModel)]=\"bean.novedadDTO.observacion\" rows=\"5\" cols=\"30\" [disabled]=\"deshabilitarCampos\" class=\"w-full min-h-50 max-h-60\">\n                    </textarea>\n                </td>\n                <td>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <!--ESTADO-->\n                        <div class=\"col-12 md:col-4 lg:col-4\">\n                            <label class=\" font-semibold\">{{'estado' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\">\n                            <p class=\"font-medium font-semibold\">{{getNombreEstado(bean.novedadDTO)}}</p>\n                        </div>\n                        <!--AUTORIZADOR BPM-->\n                        <div class=\"col-12 md:col-4 lg:col-4\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label class=\" font-semibold\">{{'autorizadorbpm' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label>{{bean.novedadDTO.autorizadorBPM}} - {{bean.novedadDTO.nombreAutorizadorBPM}}</label>\n                        </div>\n                        <!--MENSAJE-->\n                        <div class=\"col-12 md:col-4 lg:col-4\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label class=\" font-semibold\">{{'mensaje' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\" *ngIf=\"bean.novedadDTO.mensaje\" >\n                            <label>{{bean.novedadDTO.mensaje}}</label>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n    <!--  VARIABLE PERIODO  -->\n    <p-table [value]=\"listadoNovedades\" styleClass=\"p-datatable-striped\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"10\"\n        [paginator]=\"listadoNovedades.length > 10\" [totalRecords]=\"listadoNovedades.length\" *ngIf=\"isVariablePeriodo()\" \n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" >\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'variable' | translate}}</th>\n                <th>{{'valor' | translate}}</th>\n                <th *ngIf=\"isMostrarColumnaFecha()\">{{'novedad_fecha' | translate}}</th>\n                <th *ngIf=\"isMostrarColumnaHora()\">{{'horas' | translate}}</th>\n                <th>{{'observacion' | translate}}</th>\n                <th>{{'otros' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr>\n                <td>\n                    <h6>{{bean.novedadDTO.variable}} - {{bean.novedadDTO.descripcionVariable}}</h6>\n                </td>\n                <td>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <!--VALOR-->\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"deshabilitarCampos\" [(ngModel)]=\"bean.novedadDTO.valor\"\n                                    [class]=\"!utilsService.validarCampoObligatorio(bean.novedadDTO.valor) && clickGuardar  ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\"    \n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label >{{'valor' | translate}}*</label>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <td *ngIf=\"isMostrarColumnaFecha()\">\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"bean.novedadDTO.dato\" dateFormat=\"dd/mm/yy\" appendTo=\"body\" \n                                    [showIcon]=\"true\" [disabled]=\"deshabilitarCampos\" ></p-calendar>\n                                <label>{{'novedad_fecha' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <td *ngIf=\"isMostrarColumnaHora()\">\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <div class=\"col-12 md:col-6 lg:col-6\">\n                            <div class=\"field\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"getListaHoras()\" optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" [(ngModel)]=\"bean.novedadDTO.hora\" appendTo=\"body\"  ></p-dropdown>\n                                    <label>{{'horas' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                        <div class=\"col-12 md:col-6 lg:col-6\">\n                            <div class=\"field\">\n                                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"getListaMinutos()\" optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\" [(ngModel)]=\"bean.novedadDTO.minutos\" appendTo=\"body\"  ></p-dropdown>\n                            </div>\n                        </div>\n                    </div>\n                </td>\n                <td>\n                    <textarea pInputTextarea [(ngModel)]=\"bean.novedadDTO.observacion\" rows=\"5\" cols=\"30\" [disabled]=\"deshabilitarCampos\" class=\"w-full min-h-50 max-h-60\">\n                    </textarea>\n                </td>\n                <td>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <!--ESTADO-->\n                        <div class=\"col-12 md:col-4 lg:col-4\">\n                            <label class=\" font-semibold\">{{'estado' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\">\n                            <h6>{{getNombreEstado(bean.novedadDTO)}}</h6>\n                        </div>\n                        <!--AUTORIZADOR BPM-->\n                        <div class=\"col-12 md:col-4 lg:col-4\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label class=\" font-semibold\">{{'autorizadorbpm' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label>{{bean.novedadDTO.autorizadorBPM}} - {{bean.novedadDTO.nombreAutorizadorBPM}}</label>\n                        </div>\n                        <!--MENSAJE-->\n                        <div class=\"col-12 md:col-4 lg:col-4\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label class=\" font-semibold\">{{'mensaje' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\" *ngIf=\"bean.novedadDTO.mensaje\" >\n                            <label>{{bean.novedadDTO.mensaje}}</label>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n    <!--  VARIABLE PERIODO FECHA  -->\n    <p-table [value]=\"listadoNovedades\" styleClass=\"p-datatable-striped\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [rows]=\"10\"\n        [paginator]=\"listadoNovedades.length > 10\" [totalRecords]=\"listadoNovedades.length\" *ngIf=\"isVariablePeriodoFecha()\" \n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" >\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'variable' | translate}}</th>\n                <th>{{'detalle' | translate}}</th>\n                <th *ngIf=\"isVerCosteo()\">{{'costeo' | translate}}</th>\n                <th>{{'observacion' | translate}}</th>\n                <th>{{'otros' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr>\n                <td>\n                    <h6>{{bean.novedadDTO.codigoVariableFecha}} - {{bean.novedadDTO.descripcionVariableFecha}}</h6>\n                </td>\n                <td>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <!--FECHA SUCESO-->\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"bean.novedadDTO.desde\" dateFormat=\"dd/mm/yy\" appendTo=\"body\" \n                                    [showIcon]=\"true\" [disabled]=\"deshabilitarCampos\" ></p-calendar>\n                                <label>{{'fechasuceso' | translate}}*</label>\n                            </span>\n                        </div>\n                        <!--CANTIDAD-->\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"deshabilitarCampos\" [(ngModel)]=\"bean.novedadDTO.cantidad\"\n                                    [class]=\"!utilsService.validarCampoObligatorio(bean.novedadDTO.valor) && clickGuardar  ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\"    \n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label >{{'cantidad' | translate}}*</label>\n                            </span>\n                        </div>\n                        <!--VALOR-->\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [disabled]=\"deshabilitarCampos\" [(ngModel)]=\"bean.novedadDTO.valor\"\n                                    [class]=\"!utilsService.validarCampoObligatorio(bean.novedadDTO.valor) && clickGuardar  ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\"    \n                                    [minFractionDigits]=\"0\" [maxFractionDigits]=\"10\" mode=\"decimal\"></p-inputNumber>\n                                <label >{{'valor' | translate}}*</label>\n                            </span>\n                        </div>\n                        <!--PRESUPUESTAL-->\n                        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"bean.mapaCampos.get('presupuestal')\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"deshabilitarCampos\" [(ngModel)]=\"bean.novedadDTO.presupuestal\" [maxlength]=\"30\" autocomplete=\"off\" />\n                                <label>{{'presupuestal' | translate}}</label>\n                            </span>\n                        </div>\n                        <!--NOVEDAD FECHA-->\n                        <div class=\"col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"bean.novedadDTO.dato\" dateFormat=\"dd/mm/yy\" appendTo=\"body\" \n                                    [showIcon]=\"true\" [disabled]=\"deshabilitarCampos\" ></p-calendar>\n                                <label>{{'fechasuceso' | translate}}*</label>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <td *ngIf=\"isVerCosteo()\">\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"bean.mapaCampos.get('zonaeconomica')\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [disabled]=\"true\" [(ngModel)]=\"bean.novedadDTO.nombreZonaEconomica\" autocomplete=\"off\" />\n                                <label>{{'zonaeconomica' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"bean.mapaCampos.get('zonaeconomica')\">\n                            <app-input-helper-seleccion-zona-centro [value]=\"bean.novedadDTO.centrocosto\" [mostrarZonaLabel]=\"true\" [readonly]=\"deshabilitarCampos\" [mostrarX]=\"!deshabilitarCampos\" [labelIntput]=\"'centrocosto' | translate\"\n                                [label]=\"bean.novedadDTO.nombreCentroCosto ? bean.novedadDTO.nombreCentroCosto : ''\" (onSelected)=\"setZonaCentro($event, bean)\">\n                            </app-input-helper-seleccion-zona-centro>\n                        </div>\n                        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"bean.mapaCampos.get('lineacosto')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaLineaCosto\" [(ngModel)]=\"bean.novedadDTO.lineacosto\"  [disabled]=\"deshabilitarCampos\" [autoDisplayFirst]=\"false\" appendTo=\"body\"  >\n                                </p-dropdown>\n                                <label>{{'lineacosto' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"bean.mapaCampos.get('materia')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaMateria\" [(ngModel)]=\"bean.novedadDTO.materia\"  [disabled]=\"deshabilitarCampos\" [autoDisplayFirst]=\"false\" appendTo=\"body\"  >\n                                </p-dropdown>\n                                <label>{{'actividad' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"bean.mapaCampos.get('entidad')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"bean.listaEntidad\" [(ngModel)]=\"bean.novedadDTO.entidad\"  [disabled]=\"deshabilitarCampos\" [autoDisplayFirst]=\"false\" appendTo=\"body\" >\n                                </p-dropdown>\n                                <label>{{'entidad' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <td>\n                    <textarea pInputTextarea [(ngModel)]=\"bean.novedadDTO.observacion\" rows=\"5\" cols=\"30\" [disabled]=\"deshabilitarCampos\" class=\"w-full min-h-50 max-h-60\">\n                    </textarea>\n                </td>\n                <td>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: left\">\n                        <!--ESTADO-->\n                        <div class=\"col-12 md:col-4 lg:col-4\">\n                            <label class=\" font-semibold\">{{'estado' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\">\n                            <h6>{{getNombreEstado(bean.novedadDTO)}}</h6>\n                        </div>\n                        <!--AUTORIZADOR BPM-->\n                        <div class=\"col-12 md:col-4 lg:col-4\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label class=\" font-semibold\">{{'autorizadorbpm' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label>{{bean.novedadDTO.autorizadorBPM}} - {{bean.novedadDTO.nombreAutorizadorBPM}}</label>\n                        </div>\n                        <!--MENSAJE-->\n                        <div class=\"col-12 md:col-4 lg:col-4\" *ngIf=\"bean.novedadDTO.autorizadorBPM\" >\n                            <label class=\" font-semibold\">{{'mensaje' | translate}}:</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\" *ngIf=\"bean.novedadDTO.mensaje\" >\n                            <label>{{bean.novedadDTO.mensaje}}</label>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { NovedadModel } from '../../../models/NovedadModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { CargarControlFuncionalidadService, GeneralModel, UtilsService } from 'general-library-union';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { MantenimientoDetalleNovedadComponent } from '../../novedades/mantenimiento-detalle-novedad/mantenimiento-detalle-novedad.component';\nimport { RegistroNovedadMasivaContComponent } from '../../novedades/registro-novedad-masiva-cont/registro-novedad-masiva-cont.component';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { TabViewModule } from 'primeng/tabview';\n\n@Component({\n    selector: 'app-listado-novedad-empleado',\n    templateUrl: './listado-novedad-empleado.component.html',\n    styleUrls: ['./listado-novedad-empleado.component.scss'],\n    standalone: true,\n    imports: [TabViewModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, MantenimientoDetalleNovedadComponent, RegistroNovedadMasivaContComponent, DatePipe, TranslateModule, GeneralPipe]\n})\nexport class ListadoNovedadEmpleadoComponent implements OnInit {\n\n  public listaComandos: Map<string, boolean>;\n\tpublic novedades: NovedadModel[];\n\tpublic novedadesHistoricas: NovedadModel[];\n  public verNovedades: boolean;\n  public verNovedadesHistoricas: boolean;\n\tpublic verDetalle: boolean;\n\tpublic verDetalle2: boolean;\n\tpublic verDetalleMasivo: boolean;\n\tpublic descripcionDetalle: string;\n  public origenEmpleado: boolean = true;\n\t\n\t@Input() public parametroFiltro: string;\n\t@Input() public parametroHijos: string;\n  public opcionSeleccionada: string;\n  @Input() public empleado: EmpleadoModel;\n  public mapaestado;\n  @ViewChild('detalleNovedad') detalleNovedad: MantenimientoDetalleNovedadComponent;\n  @ViewChild('detalleNovedad2') detalleNovedad2: MantenimientoDetalleNovedadComponent;\n  @ViewChild('novedadMasiva') novedadMasiva: RegistroNovedadMasivaContComponent;\n\n  public paginatorNovedades = {\n    rows: 10,\n    totalRecords: 0\n  }\n  public paginatorNovedadesHistorico = {\n    rows: 10,\n    totalRecords: 0\n  }\n  constructor(private generalService: GeneralService,\n              private utilsService: UtilsService,\n              private translateService: TranslateService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              private novedadPipe: NovedadPipe) { }\n\n  ngOnInit(): void {\n    this.verDetalle = false;\n    this.verNovedades = true;\n    this.mapaestado = this.novedadPipe.ESTADONOVEDADLISTADO;\n  }\n\n  cambiarTab(event){\n    switch (event.index) {\n      case 0:\n        this.opcionSeleccionada = this.translateService.instant('novedad');\n        this.verNovedades = true;\n        this.verNovedadesHistoricas = false;\n        this.verDetalle = false;\n        break;\n      case 1:\n        this.opcionSeleccionada = this.translateService.instant('historico');\n        this.verNovedades = false;\n        this.verNovedadesHistoricas = true;\n        break;\n      default:\n        break;\n    }\n  }\n\n  cargarNovedades(event){\n    var objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      contrato: this.empleado.contrato,\n      empresa: this.empleado.empresa,\n      listadoNovedad: 'S',\n      tipoSolicitud: 'S'\n    }\n    this.generalService.queryForList(new GeneralModel('NovedadDTO', null, false, objeto)).subscribe(data => {\n      this.novedades = data;\n      this.generalService.cantidadRegistros(new GeneralModel('NovedadDTO', null, false, objeto)).subscribe(data => {\n        this.paginatorNovedades.totalRecords = data;\n        this.utilsService.resizeWindowIFrame()\n      })\n    })\n    \n  }\n\n  async detalleAction(event){\n    var novedad = event.data;\n    if(this.utilsService.isNotBlank( novedad.dependeNovedad) && this.novedadPipe.SOLICITUD == novedad.estado){\n\t\t\tthis.verDetalleMasivo = true;\n\t\t\tawait this.utilsService.sleep(1000)\n      await this.novedadMasiva.init(novedad.tiponovedad, this.empleado, false, novedad.dependeNovedad, null, this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO);\n\t\t\treturn;\n\t\t}\n    this.verDetalle = true;\n    this.verNovedades = false;\n    await this.utilsService.sleep(1000)\n    this.detalleNovedad.puedeActualizar = this.isEmpleadoActivo();\n    await this.detalleNovedad.cargarBean(this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO, false, event.data, this.empleado, null, \"aplicaNovedadProceso:\", true)\n  }\n\n  async verMasivo(event){    \n    if (event?.ver === true){\n      this.verDetalle = false;\n      this.verNovedades = false;\n      this.verDetalleMasivo = true;\n      await this.utilsService.sleep(2000)\n      await this.novedadMasiva.init(event.llaveTipoNovedad, this.empleado, true, null, null, event.tareaOrigen);\n    }\n  }\n\n  isEmpleadoActivo(): boolean {\n\t\treturn this.empleado != null && this.empleadoActivo();\n\t}\n\n  empleadoActivo() {\n\t\tif (this.empleado.estadoLaboral == null || this.empleado.estadoLaboralPeriodo == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.empleado.estadoLaboral == this.empleado.estadoLaboralPeriodo;\n\t}\n\n  regresarMantenimiento(){\n    if (this.detalleNovedad?.tareaOrigen == this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO) {\n      this.verDetalle = false;\n      this.verDetalleMasivo = false;\n      this.verNovedades = true;\n      this.verNovedadesHistoricas = false;\n    } else if (this.detalleNovedad2?.tareaOrigen == this.novedadPipe.ORIGEN_NOVEDAD_HISTORICO_EMPLEADO){\n      this.verDetalle2 = false;\n      this.verDetalleMasivo = false;\n      this.verNovedades = false;\n      this.verNovedadesHistoricas = true;\n    }\n    this.cargarNovedades({first: 0, rows: 10})\n  }\n\n  regresarMantenimientoMasivo(){\n    this.verDetalle = false;\n    this.verDetalleMasivo = false;\n    this.verNovedades = true;\n    this.verNovedadesHistoricas = false;\n    this.cargarNovedades({first: 0, rows: 10})\n  }\n\n  public obtenerMapaEstado(origen){\n    return this.mapaestado.filter(data => data.codigo == origen)[0]?.nombre\n  }\n\n  cargarNovedadesHistoricas(event){\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      contrato: this.empleado.contrato,\n      empresa: this.empleado.empresa,\n      estado: this.novedadPipe.BUSCAR_LIQUIDADAS,\n      tipoSolicitud: 'S'\n    };\n    this.generalService.queryForList(new GeneralModel('NovedadDTO', null, false, objeto)).subscribe(data => {\n      this.novedadesHistoricas = data;\n      this.generalService.cantidadRegistros(new GeneralModel('NovedadDTO', null, false, objeto)).subscribe(data => {\n        this.paginatorNovedadesHistorico.totalRecords = data;\n        this.utilsService.resizeWindowIFrame()\n      })\n    })\n  }\n\n async nuevoAction(){\n    this.verDetalle = true;\n    this.verNovedades = false;\n    await this.utilsService.sleep(1000)\n    this.detalleNovedad.parametroFiltro = this.parametroFiltro;\n    this.detalleNovedad.parametroHijos = this.parametroHijos;\n    this.detalleNovedad.setEmpleadoPopup(this.empleado);\n    this.detalleNovedad.puedeActualizar = this.isEmpleadoActivo();\n    await this.detalleNovedad.cargarBean(this.novedadPipe.ORIGEN_NOVEDAD_EMPLEADO, true, null, this.empleado, null, null, true)\n  }\n\n  async detalleActionHistorico(event) {\n    this.verDetalle2 = true;\n    this.verNovedadesHistoricas = false;\n    await this.utilsService.sleep(1000);\n    this.detalleNovedad2.puedeActualizar = this.isEmpleadoActivo();\n    await this.detalleNovedad2.cargarBean(this.novedadPipe.ORIGEN_NOVEDAD_HISTORICO_EMPLEADO, false, event.data, this.empleado, null, \"aplicaNovedadProceso:\", true)\n    this.detalleNovedad2.desabilitarCampos = true;\n  }\n\n}\n","<div class=\"flex justify-content-between align-items-center mt-2 mb-2\" *ngIf=\"origenEmpleado\">\n    <h1 class=\"text-xl mt-2\">{{'novedades' | translate}}</h1>\n</div>\n<p-tabView (onChange)=\"cambiarTab($event)\">\n    <p-tabPanel header=\"{{'novedad' | translate}}\" [selected]=\"true\">\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"verNovedades\">\n            <div class=\"flex justify-content-end align-items-center mb-2\">\n                <button pButton pRipple icon=\"pi pi-plus\" class=\"p-button-secondary font-semibold\"\n                    (click)=\"nuevoAction()\" label=\"{{'link_nuevo' | translate}}\" *ngIf=\"controlFuncionService.getControlFuncionalidad('ingnov:nuevo') && isEmpleadoActivo() && !verDetalle && !verDetalleMasivo\">\n                </button>\n            </div>\n            <p-table #tablaNovedades responsiveLayout=\"scroll\" [value]=\"novedades\" [rows]=\"paginatorNovedades.rows\"\n                [totalRecords]=\"paginatorNovedades.totalRecords\" [paginator]=\"paginatorNovedades.totalRecords > paginatorNovedades.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" *ngIf=\"!verDetalle && !verDetalleMasivo\"\n                [lazy]=\"true\" (onLazyLoad)=\"cargarNovedades($event)\" (onRowSelect)=\"detalleAction($event)\" (onRowUnselect)=\"detalleAction($event)\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th>{{'tiponovedad' | translate}}</th>   \n                        <th>{{'estado' | translate}}</th>\n                        <th>{{'fechasolicitud' | translate}}</th>\n                        <th>{{'valor' | translate}}</th>\n                        <th>{{'mensaje' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-bean>\n                    <tr [pSelectableRow]=\"bean\">\n                        <td> \n                            <div>\n                                <label>{{bean.tipoNovedadDescripcion | generalPipe : 'capitallizeFully' }}</label><br/>\n                                <label *ngIf=\"bean.variable != null\">({{bean.variable}}) {{bean.descripcionVariable}}</label>\n                                <label *ngIf=\"bean.codigoVariableFecha != null\">({{bean.codigoVariableFecha}}) {{bean.descripcionVariableFecha}}</label>\n                                <label *ngIf=\"bean.concepto != null && bean.tipoTipoNovedad != 'T'\">({{bean.concepto}}) {{bean.descripcionConcepto}}</label>\n                                <label *ngIf=\"bean.concepto != null && bean.tipoTipoNovedad == 'T'\">({{bean.concepto}}) {{bean.descripcionTurno}}</label>\n                                <label *ngIf=\"bean.liquidacionPeriodica != null\">({{bean.liquidacionPeriodica}}) {{bean.descripcionLiquidaPeriodica}}</label> \n                            </div>\n                        </td>\n                        <td>{{obtenerMapaEstado(bean.estado)}}</td>\n                        <td>{{bean.desde | date : ('formatofecha' | translate)}}</td>\n                        <td>{{bean.valor}}</td>\n                        <td>{{bean.mensaje}}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"verDetalle\">\n            <app-mantenimiento-detalle-novedad #detalleNovedad (regresarMasivo)=\"verMasivo($event)\" (regresar)=\"regresarMantenimiento()\"></app-mantenimiento-detalle-novedad>\n        </div>\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"verDetalleMasivo\">\n            <app-registro-novedad-masiva-cont #novedadMasiva (regresar)=\"regresarMantenimientoMasivo()\"></app-registro-novedad-masiva-cont>\n        </div>\n    </p-tabPanel>\n    <p-tabPanel header=\"{{'historico' | translate}}\" >\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"verNovedadesHistoricas\"> \n            <p-table #tablaNovedadesHistorico responsiveLayout=\"scroll\" [value]=\"novedadesHistoricas\" [rows]=\"paginatorNovedadesHistorico.rows\"\n                [totalRecords]=\"paginatorNovedadesHistorico.totalRecords\" [paginator]=\"paginatorNovedadesHistorico.totalRecords > paginatorNovedadesHistorico.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" \n                [lazy]=\"true\" (onLazyLoad)=\"cargarNovedadesHistoricas($event)\" (onRowSelect)=\"detalleActionHistorico($event)\" (onRowUnselect)=\"detalleActionHistorico($event)\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th>{{'tiponovedad' | translate}}</th>   \n                        <th>{{'estado' | translate}}</th>\n                        <th>{{'fechasolicitud' | translate}}</th>\n                        <th>{{'valor' | translate}}</th>\n                        <th>{{'mensaje' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-bean>\n                    <tr [pSelectableRow]=\"bean\">\n                        <td> \n                            <div>\n                                <label>{{bean.tipoNovedadDescripcion | generalPipe : 'capitallizeFully' }}</label><br/>\n                                <label *ngIf=\"bean.variable != null\">({{bean.variable}}) {{bean.descripcionVariable}}</label>\n                                <label *ngIf=\"bean.codigoVariableFecha != null\">({{bean.codigoVariableFecha}}) {{bean.descripcionVariableFecha}}</label>\n                                <label *ngIf=\"bean.concepto != null\">({{bean.concepto}}) {{bean.descripcionConcepto}}</label>\n                                <label *ngIf=\"bean.liquidacionPeriodica != null\">({{bean.liquidacionPeriodica}}) {{bean.descripcionLiquidaPeriodica}}</label> \n                            </div>\n                        </td>\n                        <td>{{obtenerMapaEstado(bean.estado)}}</td>\n                        <td>{{bean.desde | date : ('formatofecha' | translate)}}</td>\n                        <td>{{bean.valor}}</td>\n                        <td>{{bean.mensaje}}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"verDetalle2\">\n            <app-mantenimiento-detalle-novedad #detalleNovedad2 (regresar)=\"regresarMantenimiento()\"></app-mantenimiento-detalle-novedad>\n        </div>\n    </p-tabPanel>\n</p-tabView>","import { UnionModel } from 'general-library-union'\n\nexport class HojaCaracteristicaModel extends UnionModel {\n\n\t\n\t\n\t\n\tllave: string;\n\tidentifica: number;\n\ttipo: string;\n\tcadena: string;\n\tnumero: number;\n\tfecha: Date;\n\tpublica: string;\n\tcaracteristica: string;\n\trequerimiento: string;\n\ttabla: string;\n\tarea: string;\n\tllavecargo: string;\n\tnovedad: string;\n\thojaVidaCandidato: number;\n\tvalor: string;\n\n}\n","import { UnionModel } from 'general-library-union'\nimport { LiquidacionVariablesModel } from './LiquidacionVariablesModel';\n\nexport class SolicitudModel extends UnionModel {\n\n\tempresa: number;\n\tcontrato: number;\n\thojavida: number;\n\ttiponovedad: string;\n\tdato: Date;\n\tcantidad: number;\n\thasta: Date;\n\tdesde: Date;\n\tautoriza: number;\n\testado: string;\n\tmensaje: string;\n\taprobado: Date;\n\tperiodo: string;\n\taplicadopor: string;\n\taplicado: Date;\n\tunidad: string;\n\tnombreUnidad: string;\n\tnombreEstado: string;\n\tdesctiponovedad: string;\n\tmotivoliquida: number;\n\tmotivoliquidaDesc: string;\n\tobservacion: string;\n\tdirigidoA: string;\n\tfechasolicitud: Date;\n\tprimerApellido: string;\n\tsegundoApellido: string;\n\tnombres: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tentidad: string;\n\tvalor: number;\n\tvalor2: number;\n\tvalor3: number;\n\tvalor4: number;\n\tvalor5: number;\n\tvalor6: number;\n\tvalor7: number;\n\tvalor8: number;\n\tvalor9: number;\n\tvalor10: number;\n\tcampo2: string;\n\tcampo3: string;\n\tcampo4: string;\n\ttexto1: string;\n\tnombreEntidad: string;\n\tnivel: number;\n\tmotivoNoAutoriza: string;\n\tpublicacion: string;\n\trutaArchivo: string;\n\tbeneficiario: number;\n\tfechapago: Date;\n\ttipoEstado: string;\n\tpin: string;\n\tpinCompleto: string;\n\tsoloEmpleado: string;\n\trolUsuario: string;\n\tdocumento: string;\n\tnombresFuncionario: string;\n\tgrupoDepende: string;\n\tdepende: string;\n\tcodSolicitudes: string;\n\tcodSolicitudesHijas: string;\n\tsucursal: string;\n\ttiporol: string;\n\t\n\tlistaVariable: LiquidacionVariablesModel [];\n\tenviarMail: string;\n\ttipoGeneracion: string;\n\tplanilla: string;\n\tpublicacionWeb: string;\n\n\tcomodinBuscarNombre: string;\n\tfechasolicitudini: Date;\n\tfechasolicitudfin: Date;\n\n\tasegurado: string;\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ToastService, UtilsService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-motivo-no-solicitud',\n    templateUrl: './popup-motivo-no-solicitud.component.html',\n    styleUrls: ['./popup-motivo-no-solicitud.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, InputTextareaModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupMotivoNoSolicitudComponent implements OnInit {\n\n  @Input() mostrarPopup: boolean;\n  public motivo: string;\n  public clickGuardar: boolean = false;\n\t@Output() regresar = new EventEmitter;\n\n  constructor(public utilsService: UtilsService,\n              private notificacionesService: ToastService) { }\n\n  ngOnInit(): void {\n    this.motivo = null;\n    this.clickGuardar = false;\n  }\n\n  validar(): boolean {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.motivo);\n    return validador;\n  }\n\n  cerrarAction() {\n    this.clickGuardar = true;\n    if (!this.validar()){\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      return;\n    }\n    this.clickGuardar = false;\n    this.regresar.emit(this.motivo)\n  }\n\n  ocultar(){\n    this.regresar.emit(null);\n  }\n\n\n}\n","<p-dialog header=\"{{'motivo' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"Detallereporte mt-2\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <div class=\"field col-12 md:col-12 lg:col-12\" >\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea [(ngModel)]=\"motivo\" class=\"w-full min-h-150 max-h-200\"\n                        [class]=\"!utilsService.validarCampoObligatorio(motivo) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" >\n                    </textarea>\n                    <label>{{'motivo' | translate}}*</label>\n                </span>\n            </div>\n        </div>\n\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\" \n                label=\"{{'link_guardar' | translate}}\" (click)=\"cerrarAction()\">\n            </button>\n        </div>\n    </div>\n</p-dialog>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { AuthService, CargarControlFuncionalidadService, EncriptadoBasicoService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { HojaCaracteristicaModel } from '../../../../../modules/hojavida/models/HojaCaracteristicaModel';\nimport { ActividadFuenteTareaModel } from '../../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { MomentoDocumentoModel } from '../../../../../modules/talento/models/MomentoDocumentoModel';\nimport { RequisitoHojaModel } from '../../../../../modules/talento/models/RequisitoHojaModel';\nimport { TablaCaracteristicaModel } from '../../../../../modules/talento/models/TablaCaracteristicaModel';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { LiquidacionVariablesModel } from '../../../models/LiquidacionVariablesModel';\nimport { MotivoLiquidaModel } from '../../../models/MotivoLiquidaModel';\nimport { SolicitudModel } from '../../../models/SolicitudModel';\nimport { TipoNovedadModel } from '../../../models/TipoNovedadModel';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { TipoNovedadPipe } from '../../../pipes/tipoNovedad.pipe';\nimport { SolicitudService } from '../../../services/solicitud.service';\nimport { EntidadModel } from '../../../models/EntidadModel';\nimport { ParametrosPipe } from '../../../../../shared/pipes/parametros.pipe';\nimport { TipoDocumentoModel } from '../../../../../modules/hojavida/models/TipoDocumentoModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { CampoFormularioNuevoModel } from 'general-library-union';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { FormularioNuevoComponent } from '../../../../../modules/hojavida/pages/hojavida/formulario-nuevo/formulario-nuevo.component';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { PopupDocumentoNovedadComponent } from '../../../popups/popup-documento-novedad/popup-documento-novedad.component';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent } from '../../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\nimport { PopupMotivoNoSolicitudComponent } from '../../../popups/popup-motivo-no-solicitud/popup-motivo-no-solicitud.component';\nimport { EjecucionEncuestaComponent as EjecucionEncuestaComponent_1 } from '../../../../sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent as EjecucionAutorizacionComponent_1 } from '../../../../sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { FormularioNuevoComponent as FormularioNuevoComponent_1 } from '../../../../hojavida/pages/hojavida/formulario-nuevo/formulario-nuevo.component';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\n\n@Component({\n    selector: 'app-detalle-solicitud',\n    templateUrl: './detalle-solicitud.component.html',\n    styleUrls: ['./detalle-solicitud.component.scss'],\n    standalone: true,\n    imports: [ConfirmDialogModule, PrimeTemplate, ButtonDirective, NgIf, CabeceraEmpleadoComponent, Ripple, DropdownModule, FormsModule, FormularioNuevoComponent_1, TableModule, TemplateTablaVaciaComponent, SplitButtonModule, EjecucionAutorizacionComponent_1, EjecucionEncuestaComponent_1, PopupDocumentoNovedadComponent, PopupMotivoNoSolicitudComponent, DatePipe, TranslateModule, ListaConstantesPipe]\n})\nexport class DetalleSolicitudComponent implements OnInit {\n\n  public empleado: EmpleadoModel;\n\tpublic solicitud: SolicitudModel;\n\tpublic tipoNovedad: TipoNovedadModel = new TipoNovedadModel();\n\n\tpublic listadoMotivoliquida: any[] = [];\n\tpublic listaEntidades: any[] = [];\n\n\tpublic nuevo: boolean;\n\tpublic verDetalle: boolean;\n\tpublic tiposSolicitud: boolean;\n\tpublic noMostrarRegresar: boolean;\n\tpublic mostrarDescarga: boolean;\n\tpublic modificar: boolean;\n\tpublic modificarSolicitudPorGenerar: boolean;\n\tpublic previaMostrar: boolean;\n\tpublic descargarArchivo: boolean;\n\n\tpublic descTipoSolicitudPadre: string;\n\tpublic rutaTemporal: string ;\n\tpublic rutaDescarga:string = '';\n\tpublic archivoDescarga:string = '';\n\tpublic archivoContaminado:string = '';\n\tpublic destino:string;\n\tpublic rutaPreviav;\n\tpublic parametroHijos:string;\n\tpublic caracteristicas: TablaCaracteristicaModel[];\n\tpublic variablesLiquidacion: LiquidacionVariablesModel[];\n\tpublic listaDocumentoTipoSolicitud: MomentoDocumentoModel[] = [];\n\tpublic listaRequisitoHoja: RequisitoHojaModel[];\n\tpublic listaRequisitoHojaBorrar: RequisitoHojaModel[];\n\tpublic momentoDocumentoDTO: MomentoDocumentoModel;\n\n\tpublic caraDto: HojaCaracteristicaModel = new HojaCaracteristicaModel();\n\tpublic mostrar: Map<string, boolean> = new Map<string, boolean>();\n\n\tpublic solicitudesPadre: TipoNovedadModel[];\n\tpublic mapaEstadoDoc;\n\n\tpublic listaSolicitudesPadre: TipoNovedadModel[];\n\tpublic llaveMotivo: number;\n\tpublic listaMotivo: any[];\n\tpublic observacionMotivoSeleccionado: string;\n\tpublic mostrarMensaje: boolean;\n\tpublic motivoDto: MotivoLiquidaModel;\n\tpublic mostrarFormulario: boolean;\n\tpublic motivoLiquida: number;\n\tpublic llaveMotivoLiquidacion: string;\n\tpublic noEsNuevo: boolean;\n\tpublic origenTarea: string;\n\tpublic parametroFiltro: string;\n\tpublic nroDocConfigurado: number;\n\tpublic procesoAutorizacion: boolean;\n\tpublic encuesta: boolean;\n\tpublic tiponovedadPadre: string;\n\tprivate soyYo = false;\n\tpublic campos: CampoFormularioNuevoModel[]=[];\n\tpublic itemsBotonAcciones: MenuItem[];\n\n\t@Output() public regresar = new EventEmitter();\n\n\t@ViewChild('formularioNuevo') formularioNuevo: FormularioNuevoComponent;\n\t@ViewChild(PopupDocumentoNovedadComponent) popupDocumentoNovedad: PopupDocumentoNovedadComponent;\n\t@ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n\t@ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\tpublic verPopupMotivo: boolean = false;\n\tpublic urlSegura;\n\n  constructor(private listaConstantesPipe: ListaConstantesPipe,\n              private novedadPipe: NovedadPipe,\n              private tipoNovedadPipe: TipoNovedadPipe,\n              private generalPipe: GeneralPipe,\n\t\t\t  private translateService: TranslateService,\n              public utilsService: UtilsService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              private confirmationService: ConfirmationService,\n              private notificacionesService: ToastService,\n              private authService: AuthService,\n              private solicitudService: SolicitudService,\n              private generalService: GeneralService,\n\t\t\t  private sanitizer: DomSanitizer,\n\t\t\t  private parametrosPipe: ParametrosPipe,\n\t\t\t  private popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\t\t  private cargarArchivo: CargarArchivosService,\n\t\t\t  private encriptadorBasico: EncriptadoBasicoService,\n\t\t\t  private workFlowPipe: WorkflowPipe,\n              private saraAplicacionService: SaraAplicacionService) { }\n\n  ngOnInit(): void {\n\tthis.mapaEstadoDoc = this.listaConstantesPipe.CUMPLIDO_REQ;\n  }\n\n  private inicializar() {\n\tthis.listaSolicitudesPadre = [];\n\tthis.listaRequisitoHojaBorrar = [];\n}\n\ncargarAccionesBoton() {\n\tif (this.tipoNovedad.tipo != 'S'){\n\t\tthis.itemsBotonAcciones = [\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_guardar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t  \tvisible: this.nuevo && this.controlFuncionService.getControlFuncionalidad('solcomp:guardar') && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.guardar();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('guardarbpm'), \n\t\t\t  \ticon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t  \tvisible: this.nuevo && this.controlFuncionService.getControlFuncionalidad('solcomp:guardarBPM') && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.guardarBpm();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_actualizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-refresh\",\n\t\t\t  \tvisible: !this.nuevo && this.controlFuncionService.getControlFuncionalidad('solcomp:actualizar') && this.solicitud.estado != 'L' && this.modificar && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')) && !this.isBpm(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.guardar();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_cambiardato'), \n\t\t\t  \ticon: \"glyphicons glyphicons-random\",\n\t\t\t  \tvisible: !this.nuevo && this.controlFuncionService.getControlFuncionalidad('solcomp:actualizar') && !['N', 'L'].includes(this.solicitud.estado) && !this.modificar && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')) && !this.isBpm(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.cambiarDatos();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_autorizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-check\",\n\t\t\t  \tvisible: (this.isAutorizar() || this.controlFuncionService.getControlFuncionalidad('solcomp:autorizar')) && this.isAprobarSolicitud() && !this.modificar && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')) && !this.isBpm(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.aprobarAction();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_noautorizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-remove\",\n\t\t\t  \tvisible: (this.isAutorizar() || this.controlFuncionService.getControlFuncionalidad('solcomp:autorizar')) && this.isAprobarSolicitud() && !this.modificar && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')) && !this.isBpm(),\n\t\t\t  \tcommand: (event) => {\n\t\t\t\t\tthis.noAprobarAction();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_legalizar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-check\",\n\t\t\t  \tvisible: this.solicitud.estado == 'A' && this.controlFuncionService.getControlFuncionalidad('solcomp:legalizar') && !this.modificar && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')) && !this.isBpm(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.legalizar();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_eliminar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-bin\",\n\t\t\t  \tvisible: !this.nuevo && !this.modificar && this.controlFuncionService.getControlFuncionalidad('solcomp:eliminar') && this.solicitud.estado != 'L' && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')) && !this.isBpm(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.eliminarAction();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_reversar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-repeat\",\n\t\t\t  \tvisible: this.solicitud.estado == 'L' && this.controlFuncionService.getControlFuncionalidad('solcomp:reversar') && (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')) && !this.isBpm(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tawait this.reversarAction();\n\t\t\t\t\tthis.cargarAccionesBoton();\n\t\t\t\t}\n\t\t\t},\n\t\t]\n\t} else {\n\t\tthis.itemsBotonAcciones = [\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_guardar'), \n\t\t\t  \ticon: \"glyphicons glyphicons-floppy-save\",\n\t\t\t  \tvisible: (this.isEmpleadoActivo() || this.controlFuncionService.getControlFuncionalidad('solcomp:empRetirado')),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tthis.guardar();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('enviarcorreo'), \n\t\t\t  \ticon: \"glyphicons glyphicons-refresh\",\n\t\t\t  \tvisible: this.isVerEnviarSimulacion(),\n\t\t\t  \tcommand: async (event) => {\n\t\t\t\t\tthis.enviarSimulacionPorCorreo();\n\t\t\t\t}\n\t\t\t},\n\t\t]\n\t}\n    \n}\n\n\t/**\n\t * Permite realizar la configuracion del proceso de autorizacion de BPM para una\n\t * solicitud a partir de la llave de la actividad\n\t * \n\t * @param llaveActividad\n\t * @return\n\t */\n\tpublic async verAutorizacion(llaveActividad: string) {\n\t\tvar actividad: ActividadFuenteTareaModel = await this.obtenerActividadBPM(llaveActividad);\n\n\t\tvar buscarSolicitud = await this.generalService.queryForObject(new GeneralModel('SolicitudDTO', null, false, {llaveTabla: llaveActividad})).toPromise();\n\t\tif (buscarSolicitud == null) {\n\t\t\tthis.notificacionesService.showError('Registro no encontrado');\n      \t\treturn;\n\t\t}\n\t\tthis.procesoAutorizacion = true;\n\n\t\tawait this.utilsService.sleep(300);\n\t\tawait this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOSOLICITUDES, buscarSolicitud);\n\n\t\tawait this.inicializarObjetos(actividad.llaveTablaBase);\n\t}\n\n\t/**\n\t * Permite realizar la configuracion del proceso de encuesta de BPM para una\n\t * solicitud a partir de la llave de la actividad\n\t * \n\t * @param llaveActividad\n\t * @return\n\t */\n\tpublic async verEncuesta(llaveActividad: string, llaveEncuesta: string)  {\n\t\tvar actividad = await this.obtenerActividadBPM(llaveActividad);\n\n\t\tvar solicitudBPM = await this.inicializarObjetos(actividad.llaveTablaBase);\n\t\tif (solicitudBPM == null) {\n\t\t\tthis.notificacionesService.showError('Objeto no existe');\n\t\t}\n\t\tthis.encuesta = true;\n\n\t\tawait this.utilsService.sleep(300);\n\t\tawait this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, solicitudBPM);\n\t\tthis.verDetalle = true;\n\t\tawait this.inicializarObjetos(actividad.llaveTablaBase);\n\t\tthis.utilsService.resizeWindowIFrame();\n\t}\n\n\tprivate async obtenerActividadBPM(llaveActividad: string) {\n\t\treturn await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, {llaveTabla: llaveActividad})).toPromise();\n\t}\n\n\t/**\n\t * Realiza la configuracion correspondiente de los objetos necesarios de la\n\t * solicitud\n\t * \n\t * @param llaveBaseSolicitud\n\t * @return\n\t * @throws Exception\n\t */\n\tprivate async inicializarObjetos(llaveBaseSolicitud: string) {\n\t\tvar solicitudAutorizacion = await this.solicitudService.traerSolicitud({llaveSolicitud: llaveBaseSolicitud}).toPromise();\n\t\tif (solicitudAutorizacion == null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tvar empleado = new EmpleadoModel();\n\t\templeado.contrato = solicitudAutorizacion.contrato;\n\t\templeado.empresa = solicitudAutorizacion.empresa;\n\t\templeado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleado)).toPromise();\n\t\t\n\t\tawait this.mostrarSolicitud(llaveBaseSolicitud, empleado, null, this.novedadPipe.ORIGEN_ACTIVIDAD_SOLICITUD_EMPLEADO);\n\n\t\treturn solicitudAutorizacion;\n\t}\n\n\t/**\n\t * Muestra los tipos de novedad padres o el listado de tipos de novedad hijos\n\t * \n\t * @param llaveSolicitud\n\t * @param empleado\n\t * @param destino\n\t */\n\tpublic async mostrarSolicitud(llaveSolicitud: string, empleado: EmpleadoModel, destino: string, origenTarea: string) {\n\t\tthis.inicializar();\n\t\tthis.origenTarea = origenTarea;\n\t\tthis.noEsNuevo = true;\n\t\tthis.listaMotivo = [];\n\t\tthis.mostrarMensaje = false;\n\t\tthis.mostrarDescarga = false;\n\t\tthis.noMostrarRegresar = true;\n\t\tthis.destino = destino;\n\t\tthis.listaEntidades = [];\n\t\tthis.tiponovedadPadre = '';\n\t\tthis.listadoMotivoliquida = [];\n\t\tthis.mostrar.set(this.tipoNovedadPipe.VISUALIZAR_TIPOSOLICITUD, true);\n\t\tthis.mostrar.set(this.tipoNovedadPipe.NOAPLICA_TIPOSOLICITUD, false);\n\t\tthis.mostrar.set(this.tipoNovedadPipe.ENTRADA_TIPOSOLICITUD, true);\n\t\tthis.solicitud = new SolicitudModel();\n\t\t// se carga el tipo de solicitud padre\n\t\tif (llaveSolicitud == null) {\n\t\t\tthis.verDetalle = false;\n\t\t\tthis.tiposSolicitud = true;\n\t\t\tthis.nuevo = true;\n\t\t\tthis.modificar = true;\n\t\t\tthis.solicitud.estado = this.novedadPipe.SOLICITUD;\n\t\t\tthis.solicitud.nombreEstado = this.novedadPipe.DESCSOLICITUD;\n\t\t\tthis.solicitud.fechasolicitud = new Date();\n\t\t\tthis.solicitud.contrato = empleado.contrato;\n\t\t\tthis.solicitud.empresa = empleado.empresa;\n\t\t\tthis.solicitud.hojavida = empleado.cedula;\n\t\t\tthis.rutaTemporal = null;\n\t\t} else {\n\t\t\t// se carga la solicitud que fue creada\n\t\t\tthis.modificar = false;\n\t\t\tthis.verDetalle = true;\n\t\t\tthis.tiposSolicitud = false;\n\t\t\tthis.nuevo = false;\n\t\t\tthis.solicitud = await this.solicitudService.traerSolicitud({llaveSolicitud: llaveSolicitud}).toPromise();\n\t\t\tthis.tipoNovedad = new TipoNovedadModel();\n\t\t\tthis.tipoNovedad.llave = this.solicitud.tiponovedad;\n\t\t\tthis.tipoNovedad = await this.generalService.queryForObject(new GeneralModel('TipoNovedadDTO', null, false, this.tipoNovedad)).toPromise();\n\t\t\tawait this.cargarCombos();\n\t\t\tawait this.cargarFormulario();\n\t\t\tthis.rutaTemporal = null;\n\t\t\tthis.nuevo = false;\n\t\t\tawait this.traerObservacion();\n\t\t\tthis.nroDocConfigurado = await this.cantidadDocumentoConfigurados(this.solicitud.tiponovedad);\n\n\t\t\tif (!this.isCliente() && this.tipoNovedadPipe.MANUAL == (this.tipoNovedad.automatica)\n\t\t\t\t\t&& this.novedadPipe.AUTORIZADA == this.solicitud.estado\n\t\t\t\t\t&& this.tipoNovedadPipe.NO_APLICA != this.tipoNovedad.tipoTermina) {\n\t\t\t\tlet data = await this.solicitudService.consultarArchivo({solicitud: this.solicitud, tipoNovedad: this.tipoNovedad}).toPromise();\n\t\t\t\tif (data){\n\t\t\t\t\tthis.rutaTemporal = data.archivo;\n\t\t\t\t}\n\t\t\t\tthis.modificarSolicitudPorGenerar = true;\n\t\t\t\tthis.contaminarDescarga();\n\t\t\t\tawait this.utilsService.sleep(3000);\n\t\t\t\tthis.utilsService.resizeWindowIFrame();\n\t\t\t}\n\t\t}\n\t\tthis.mostrarDescargaPopUp();\n\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t\tthis.empleado = empleado;\n\t\tthis.cargarAccionesBoton();\n\t\tthis.utilsService.resizeWindowIFrame();\n\t}\n\n\tprivate mostrarDescargaPopUp() {\n\t\tif (this.tipoNovedad != null) {\n\t\t\tif (this.tipoNovedad.descargarFuente == null) {\n\t\t\t\tthis.descargarArchivo = false;\n\t\t\t} else if (this.tipoNovedad.descargarFuente == this.generalPipe.NO) {\n\t\t\t\tthis.descargarArchivo = false;\n\t\t\t} else if (this.tipoNovedad.descargarFuente == this.generalPipe.SI) {\n\t\t\t\tthis.descargarArchivo = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * se carga las caracteristicas y se asocian al formulario\n\t * \n\t * @throws Exception\n\t */\n\tpublic async cargarCaracteristicas() {\n\t\tif (this.solicitud == null) {\n\t\t\treturn;\n\t\t}\n\t\tvar data = await this.solicitudService.cargarCaracteristicas({tipoNovedad: this.tipoNovedad, solicitud: this.solicitud,\n\t\t\tmodificar: this.modificar, nuevo: this.nuevo}).toPromise();\n\t\tthis.caracteristicas = data.caracteristicas;\n\t\tthis.campos = this.campos.concat(data.campos);\n\t\tthis.setValorCampos()\n\t}\n\n\tsetValorCampos() {\n\t\tthis.campos.forEach(element => {\n\t\t  if (typeof element.valorNuevo === 'string') {\n\t\t\telement.valorNuevo = element.valorNuevo.trim()\n\t\t  }\n\t\t  if (element.tipo === 'F' || element.tipo === 'E') {\n\t\t\telement.valorNuevo = element.valorNuevo ? new Date(element.valorNuevo) : null;\n\t\t  } else if (element.tipo === 'H') {\n\t\t\tif (element.valorNuevo) {\n\t\t\t  let listaValortemp = [];\n\t\t\t  let valorRecorrer = element.valorNuevo.split(';')\n\t\t\t  valorRecorrer.forEach(element2 => {\n\t\t\t\tlistaValortemp.push({ label: element2, value: element2 })\n\t\t\t  })\n\t\t\t  element.valorNuevo = listaValortemp\n\t\t\t}\n\t\t  } else if (element.tipo === 'P') {\n\t\t\tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id) {\n\t\t\t\t\telement.popupComponent = pop.popup;\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\treadonly: false,\n\t\t\t\t\tshowDialog: false,\n\t\t\t\t\tlabel: element.valorNuevo,\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t  }\n\t\t\t});\n\t\t  }\n\t\t});\n\t  }\n\n\t/**\n\t * en este funcion se habilita para que se pueda modificar los datos en pantalla\n\t * \n\t * @return\n\t */\n\tpublic async cambiarDatos() {\n    this.modificar = true;\n    await this.cargarFormulario();\n    this.mostrarFormulario = true;\n    this.rutaTemporal = null;\n    this.archivoContaminado = null;\n    this.rutaDescarga = null;\n\t}\n\n\t/**\n\t * Carga el formulario asociado a la solicitud\n\t * \n\t * @throws Exception\n\t */\n\tprivate async cargarFormulario() {\n\n\t\t// Novedad tipo P : Liquidacion Periodica\n\t\tif (this.tipoNovedad.tipo != null && this.tipoNovedad.tipo == 'P') {\n\t\t\tthis.llaveMotivoLiquidacion = null;\n\t\t\tthis.motivoLiquida = 0;\n\t\t\tthis.mostrarFormulario = false;\n\t\t\tthis.listaMotivo = [];\n\t\t\tvar motivo = new MotivoLiquidaModel();\n\t\t\tmotivo.tipoLiquida = this.tipoNovedad.tipoLiquida;\n\t\t\tvar listadoMotivosLiquidacion: MotivoLiquidaModel[] = [];\n\t\t\tlistadoMotivosLiquidacion = await this.generalService.queryForList(new GeneralModel('MotivoLiquidaDTO', null, false, motivo)).toPromise();\n\t\t\tif (listadoMotivosLiquidacion.length != 0) {\n\t\t\t\tthis.listadoMotivoliquida = []\n\t\t\t\tfor (let data of listadoMotivosLiquidacion) {\n\t\t\t\t\tthis.listadoMotivoliquida.push({value: data.motivoLiquida, label: data.descripcion});\n\t\t\t\t\tthis.listaMotivo.push({value: data.tipoLiquida + ',' + data.motivoLiquida, label: data.descripcion});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.tipoNovedad.tipoLiquida != null && this.solicitud.motivoliquida != null) {\n\t\t\t\tthis.llaveMotivoLiquidacion = this.tipoNovedad.tipoLiquida + ',' + this.solicitud.motivoliquida;\n\t\t\t}\n\t\t}\n\n\t\tvar dato = await this.solicitudService.cargarFormulario({tipoNovedad: this.tipoNovedad, solicitud: this.solicitud,\n\t\t\tmodificar: this.modificar, nuevo: this.nuevo}).toPromise();\n\t\tthis.campos = dato.campos;\n\t\tawait this.cargarCaracteristicas();\n\t}\n\n\t/**\n\t * \n\t */\n\tprivate obligatorioInd(ind: string) {\n\t\treturn this.generalPipe.SI == ind;\n\t}\n\n\t/**\n\t * Carga los campos de formulario para el tipo de solicitud seleccionada\n\t * \n\t * @param event El evento que encapsula el tipo de solicitud seleccionada\n\t * @return null\n\t */\n\tpublic async seleccionarHijoAction(event) {\n\t\t\n\t\t\t// se trae de la vista la llave\n\t\t\tthis.modificarSolicitudPorGenerar = false;\n\t\t\tthis.mostrarMensaje = false;\n\t\t\tthis.modificar = true;\n\t\t\tthis.noEsNuevo = false;\n\t\t\tvar tipo: TipoNovedadModel = event.data;\n\t\t\tvar llaveHijo = tipo.llave;\n\t\t\tif (llaveHijo == null || llaveHijo == this.generalPipe.ESPACIO_NULO) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t//ListadoSolicitudBean listadoSolicitudBean = (ListadoSolicitudBean) FacesUtils\n\t\t\t\t//\t.Bean('listadoSolicitudBean');\n\t\t\t//listadoSolicitudBean.Expandido(false);\n\t\t\t//listadoSolicitudBean.Panel(2);\n\t\t\t//listadoSolicitudBean.DescripcionDetalle(dameValorBasicBundle('solicitud'));\n\t\t\t// se instancia una variable de solicitud para iniciar el tipo de solicitud\n\t\t\tvar tmp: TipoNovedadModel = new TipoNovedadModel();\n\t\t\ttmp.llave = this.utilsService.rightpad(llaveHijo, 32, ' ');\n\t\t\tthis.tipoNovedad = await this.generalService.queryForObject(new GeneralModel('TipoNovedadDTO', null, false, tmp)).toPromise();\n\t\t\tthis.solicitud = new SolicitudModel();\n\t\t\tthis.solicitud = await this.solicitudService.iniciarSolicitud({llaveTipoNovedad: this.tipoNovedad.llave, empresa: this.empleado.empresa,\n\t\t\t\t\tcontrato: this.empleado.contrato, cedula: this.empleado.cedula}).toPromise();\n\t\t\t// se cargan las caracteristicas de la solicitud\n\t\t\tawait this.cargarCombos();\n\t\t\tawait this.cargarFormulario();\n\t\t\tthis.cargarDatos(this.tipoNovedad);\n\t\t\t// se muestra la informacion del tipo de solicitud\n\t\t\tthis.mostrarDescargaPopUp();\n\t\t\tthis.verDetalle = true;\n\t\t\tthis.tiposSolicitud = false;\n\t\t\tthis.previaMostrar = false;\n\t\t\tthis.noMostrarRegresar = false;\n\t\t\tthis.origenTarea = this.novedadPipe.ORIGEN_SOLICITUD_EMPLEADO;\n\t\t\tthis.nroDocConfigurado = await this.cantidadDocumentoConfigurados(this.tipoNovedad.llave);\n\t\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t\t\tthis.cargarAccionesBoton();\n\t\t\tthis.utilsService.resizeWindowIFrame()\n\t}\n\n\t/**\n\t * en sesta funcion se instancia ehn la vista los campos para que se realice una\n\t * nueva solictud\n\t * \n\t * @param tipoNovedad\n\t */\n\tpublic cargarDatos(tipoNovedad: TipoNovedadModel) {\n\t\t//NuevoFormulario.Formulario().Editable(true);\n\t\tthis.solicitud.tiponovedad = tipoNovedad.llave;\n\t\tthis.solicitud.desctiponovedad = tipoNovedad.descripcion;\n\t\tthis.solicitud.enviarMail = tipoNovedad.enviocorreo;\n\t\t\n\t}\n\n\t/***\n\t * en esta funcion se vuelven a traer los listados de las entidades y los\n\t * motivos por que liquidan\n\t * \n\t * @throws Exception\n\t */\n\tprivate async cargarCombos() {\n\t\tthis.listaEntidades = [];\n\t\tthis.listadoMotivoliquida = [];\n\t\tif (this.tipoNovedad != null) {\n\t\t\tvar entidades: EntidadModel[] =  await this.generalService.queryForList(new GeneralModel('EntidadDTO', 'Entidad.entidadesTipoNovedad', false, {llave: this.tipoNovedad.llave})).toPromise();\n\t\t\tentidades.forEach(entidadDTO => {\n\t\t\t\tthis.listaEntidades.push({value: entidadDTO.llave, label: entidadDTO.descripcion});\n\t\t\t})\n\t\t\tif (this.tipoNovedad.tipoLiquida != null) {\n\t\t\t\tvar data = await this.generalService.queryForList(new GeneralModel('MotivoLiquidaDTO', null, false, {tipoLiquida: this.tipoNovedad.tipoLiquida})).toPromise();\n\t\t\t\tthis.listadoMotivoliquida = [];\n\t\t\t\tdata.forEach(element => {\n\t\t\t\t\tthis.listadoMotivoliquida.push({value: element.motivoLiquida, label: element.descripcion});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * funcion que vuelve a su estado inicial el formulario\n\t */\n\tpublic ocultarAction() {\n\t\tconsole.log(this.origenTarea)\n\t\tif (this.novedadPipe.ORIGEN_SOLICITUD_EMPLEADO == this.origenTarea) {\n\t\t\tthis.verDetalle = false;\n\t\t\tthis.tiposSolicitud = true;\n\t\t}\n\n\t\tif (this.novedadPipe.ORIGEN_ACTIVIDAD_SOLICITUD_EMPLEADO == this.origenTarea\n\t\t\t|| this.novedadPipe.ORIGEN_APLICAR_NOV_SOLICITUD_EMPLEADO == this.origenTarea) {\n\t\t\tthis.regresar.emit()\n\t\t\t//navegar(getReglaNavegacion());\n\t\t\treturn;\n\t\t}\n\n\t\tthis.verDetalle = false;\n\t\tthis.nuevo = true;\n\t\t//if (destino != null) {\n\t\t//\tFacesContext fc = FacesContext.CurrentInstance();\n\t\t//\tfc.Application().createValueBinding(destino).Value(fc, solicitud);\n\t\t//}\n\t\treturn null;\n\t}\n\n\tpublic reversarSolicitud() {\n\t}\n\n\t/**\n\t * funcion en la guarda la solicitud para que sea guardado p'or el administrador\n\t * o el que sea designado\n\t * \n\t * @return\n\t */\n\tpublic async guardar() {\n\t\tawait this.guardarSolicitud(false);\n\t}\n\n\t/**\n\t * Permite guardar la solicitud lanzando el BPM\n\t * \n\t * @return\n\t */\n\tpublic async guardarBpm() {\n\t\tawait this.guardarSolicitud(true);\n\t}\n\n\tpublic async guardarSolicitud(bpm: boolean) {\n\t\t// se valida que los camp_s obligatorios del formulario\n\t\t// dinamico esten deacuerdo con lo especificado en el tipo de\n\t\t// solicitud\n\t\tif (!this.validar()){\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (!this.validarAnexoObligatorio()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.formularioNuevo.validar()){\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\treturn;\n\t\t}\n\n\t\t/*if (this.tiponovedadPadre == null) {\n\t\t\tthis.notificacionesService.showWarning('No se pudo adicionar el registro.');\n\t\t\treturn;\n\t\t}*/\n\t\t\n\t\t//this.solicitud = this.formularioNuevo.getObjecto('Solicitud');\n\t\tthis.caracteristicas = this.formularioNuevo.getListaObjecto('TablaCaracteristica');\n\t\tthis.variablesLiquidacion = this.formularioNuevo.getListaObjecto('LiquidacionVariables');\n\t\tvar resultado = await this.solicitudService.guardarSolicitud({solicitud : this.formularioNuevo.getObjecto('Solicitud'), empleado: this.empleado,\n\t\t\t\ttipoNovedad: this.tipoNovedad, llaveMotivoLiquidacion: this.llaveMotivoLiquidacion,\n\t\t\t\tcaracteristicas: this.caracteristicas, variablesLiquidacion: this.variablesLiquidacion,\n\t\t\t\tbpm: bpm, campos: this.campos}).toPromise();\n\t\t\t\tconsole.log(resultado)\n\t\tif (resultado == null) {\n\t\t\tthis.notificacionesService.showInfo('Se presentó un inconveniente al actualizar');\n\t\t\treturn null;\n\t\t}\n\t\t//ListadoSolicitudBean listadoSolicitudBean = (ListadoSolicitudBean) FacesUtils\n\t\t//\t\t.Bean('listadoSolicitudBean');\n\t\t//listadoSolicitudBean.Empleado(empleado);\n\t\tif (!this.utilsService.isBlank(resultado.mensaje)) {\n\t\t\tthis.notificacionesService.showInfo(resultado.mensaje);\n\t\t\treturn null;\n\t\t}\n\n\t\tvar msj: string = this.utilsService.isBlank(this.tipoNovedad.mensaje) ? 'Se actualizó el registro satisfactoriamente'\n\t\t\t\t: this.tipoNovedad.mensaje;\n\t\tthis.notificacionesService.showInfo(msj);\n\n\t\tif (this.nuevo) {\n\t\t\tthis.guardarListaDocumentosNovedad();\n\t\t}\n\n\t\tthis.solicitud = resultado;\n\t\tif (this.tipoNovedad.tipo == (this.tipoNovedadPipe.SIMULACIONES)) {\n\t\t\tthis.noMostrarRegresar = false;\n\t\t\tthis.modificar = false;\n\t\t\tthis.nuevo = true;\n\t\t} else {\n\t\t\tthis.modificar = false;\n\t\t\tthis.nuevo = false;\n\t\t\tthis.noMostrarRegresar = true;\n\t\t}\n\t\tawait this.cargarFormulario();\n\n\t\tif (this.tipoNovedadPipe.MANUAL == this.tipoNovedad.automatica\n\t\t\t\t&& this.novedadPipe.AUTORIZADA == this.solicitud.estado\n\t\t\t\t&& this.tipoNovedadPipe.ARCHIVO == this.tipoNovedad.tipoTermina && this.modificarSolicitudPorGenerar) {\n\t\t\tthis.rutaTemporal = await this.solicitudService.consultarArchivo({solicitud: this.solicitud, tipoNovedad: this.tipoNovedad}).toPromise();\n\t\t} else {\n\t\t\tthis.rutaTemporal = this.solicitud.rutaArchivo;\n\t\t}\n\t\tthis.contaminarDescarga();\n\t\tthis.mostrarFormulario = true;\n\t\tawait this.utilsService.sleep(3000);\n\t\tthis.utilsService.resizeWindowIFrame();\n\t}\n\n\t/**\n\t * en esta funcion se aprueba la solicitud hecha por el empleado\n\t * \n\t * @return\n\t */\n\tpublic async aprobarAction() {\n\t\tvar resultado = await this.solicitudService.autorizarSolicitud({empleado: this.empleado, solicitud: this.solicitud}).toPromise();\n\t\tif (resultado != null) {\n\t\t\tthis.solicitud = resultado;\n\t\t}\n\t\tif (this.solicitud.mensaje != null && this.solicitud.mensaje != this.generalPipe.ESPACIO_NULO) {\n\t\t\tthis.notificacionesService.showInfo(this.solicitud.mensaje);\n\t\t\treturn null;\n\t\t} else {\n\t\t\tthis.notificacionesService.showInfo('La solicitud fue autorizada');\n\t\t}\n\t\tthis.mostrarDescargaPopUp();\n\t}\n\n\tpublic noAprobarAction() {\n\t\tthis.verPopupMotivo = true;\n\t}\n\n\tpublic async autorizar(solicitudDTO: SolicitudModel, empleadoDTO: EmpleadoModel) {\n\t\tthis.solicitud = solicitudDTO;\n\t\tthis.empleado = empleadoDTO;\n\t\tawait this.aprobarAction();\n\t}\n\n\tpublic async setNoAprobar(valor: string) {\n\t\tif (valor == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.solicitud.motivoNoAutoriza = valor;\n\t\tthis.solicitud.estado = this.novedadPipe.NOAUTORIZADA;\n\t\tvar resultado = await this.solicitudService.autorizarSolicitud({empleado: this.empleado, solicitud: this.solicitud}).toPromise();\n\t\tif (resultado != null) {\n\t\t\tthis.solicitud = resultado;\n\t\t}\n\t\tif (this.solicitud.mensaje != null && this.solicitud.mensaje != this.generalPipe.ESPACIO_NULO) {\n\t\t\tthis.notificacionesService.showInfo(this.solicitud.mensaje);\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis.notificacionesService.showInfo('La solicitud no fue autorizada');\n\t\t}\n\t\tthis.mostrarDescargaPopUp();\n\t}\n\n\t/**\n\t * en esta funcion se legaliza para ue se tomen las accciones pertinentes\n\t */\n\tpublic async legalizar() {\n\t\tif (!this.formularioNuevo.validar()) {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\treturn\n\t\t}\n\t\tthis.solicitud = this.formularioNuevo.getObjecto('Solicitud')\n\t\tthis.solicitud.aplicadopor = this.authService.getTokenKey('usuario');\n\t\tvar resultado = await this.solicitudService.legalizarSolicitud({empleado: this.empleado, solicitud: this.solicitud}).toPromise();\n\t\tif (resultado != null) {\n\t\t\tthis.solicitud = resultado;\n\t\t}\n\t\tif (this.solicitud.mensaje != null && this.solicitud.mensaje != this.generalPipe.ESPACIO_NULO) {\n\t\t\tthis.notificacionesService.showInfo(this.solicitud.mensaje);\n\t\t\treturn;\n\t\t}\n\t\tthis.rutaTemporal = this.solicitud.rutaArchivo;\n\t\tthis.mostrarDescarga = false;\n\t\tthis.notificacionesService.showInfo('Se ha legalizado la solicitud.');\n\t\tthis.noMostrarRegresar = true;\n\t\tthis.contaminarDescarga();\n\t\tawait this.utilsService.sleep(3000);\n\t\tthis.utilsService.resizeWindowIFrame();\n\t}\n\n\t/**\n\t * funcion que comtamina las rutas para que se descargue de forma segura un\n\t * archivo en solicitudes\n\t */\n\tprivate contaminarDescarga() {\n\t\tthis.urlSegura = this.sanitizer.bypassSecurityTrustResourceUrl('data:application/pdf;base64,' + this.rutaTemporal);\n\t}\n\n\t/**\n\t * en esta se elimmina la solicitud hecha para que realize\n\t * \n\t * @return\n\t */\n\tpublic async eliminarAction() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tkey: 'eliminar',\n\t\t\tmessage:  this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\taccept: async () => {\n\t\t\t\tvar resultado = await this.solicitudService.eliminarSolicitud({llave: this.solicitud.llaveTabla}).toPromise();\n\t\t\t\tconsole.log((resultado))\n\t\t\t\tif (resultado.resultado > 0) {\n\t\t\t\t\tthis.ocultarAction();\n\t\t\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic async reversarAction() {\n\t\tawait this.solicitudService.reversarSolicitud({solicitud: this.solicitud}).toPromise();\n\t\tthis.ocultarAction();\n\t\tthis.notificacionesService.showInfo('Se reversó el registro satisfactoriamente');\n\t}\n\n\tpublic isEmpleadoActivo() {\n\t\treturn this.empleado != null && this.getEmpleadoActivo();\n\t}\n\n\tgetEmpleadoActivo() {\n\t\tif (this.empleado.estadoLaboral == null || this.empleado.estadoLaboralPeriodo == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.empleado.estadoLaboral == this.empleado.estadoLaboralPeriodo;\n\t}\n\n\tpublic validar() {\n\t\tvar valido: boolean = true;\n\t\tif (this.tipoNovedad.tipo == 'P') {\n\t\t\tvalido = valido && this.utilsService.validarCampoObligatorio(this.llaveMotivoLiquidacion) ;\n\t\t\treturn valido;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tpublic async traerObservacion() {\n\t\tthis.mostrarFormulario = true;\n\t\tthis.motivoDto = new MotivoLiquidaModel();\n\t\tif (this.llaveMotivoLiquidacion != null) {\n\t\t\tvar llave: string[] = this.llaveMotivoLiquidacion.split(',');\n\t\t\tthis.motivoLiquida = parseInt(llave[1]);\n\t\t\tthis.motivoDto.tipoLiquida = parseInt(llave[0]);\n\t\t\tthis.motivoDto.motivoLiquida = parseInt(llave[1]);\n\t\t\tthis.motivoDto = await this.generalService.queryForObject(new GeneralModel('MotivoLiquidaDTO', null, false, this.motivoDto)).toPromise();\n\t\t\tif (this.motivoDto != null && this.utilsService.isNotBlank(this.motivoDto.observacion)) {\n\t\t\t\tthis.observacionMotivoSeleccionado = this.motivoDto.observacion//.replace('\\n', '<br/>');\n\t\t\t\tthis.mostrarMensaje = true;\n\t\t\t} else {\n\t\t\t\tthis.mostrarMensaje = false;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.mostrarMensaje = false;\n\t\t}\n\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t}\n\n\tprivate async cantidadDocumentoConfigurados(llaveTipoNovedad: string) {\n\t\tvar filtro = new MomentoDocumentoModel();\n\t\tfiltro.momento = llaveTipoNovedad;\n\t\tfiltro.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n\t\treturn await this.generalService.cantidadRegistros(new GeneralModel('MomentoDocumentoDTO', null, false, filtro)).toPromise();\n\t}\n\n\tpublic async cargarListaDocumentoTipoNovedad() {\n\t\tthis.listaRequisitoHoja = [];\n\t\tthis.listaDocumentoTipoSolicitud = [];\n\t\tif (this.solicitud.tiponovedad != null) {\n\t\t\tvar requisitoHojaDTO = new RequisitoHojaModel();\n\t\t\trequisitoHojaDTO.actoAdministrativo = this.solicitud.llaveTabla;\n\n\t\t\tvar momentoDocumento = new MomentoDocumentoModel();\n\t\t\tmomentoDocumento.momento = this.solicitud.tiponovedad;\n\t\t\tmomentoDocumento.estado = this.tipoNovedadPipe.DOCUMENTO_VIGENTE;\n\t\t\tmomentoDocumento.formato = this.motivoLiquida;\n\t\t\tthis.listaDocumentoTipoSolicitud = await this.generalService.queryForList(new GeneralModel('MomentoDocumentoDTO', 'MomentoDocumento.consultarMomentoDocumentoFiltro',false, momentoDocumento)).toPromise();\n\t\t\tif (this.solicitud.llaveTabla != null) {\n\t\t\t\tvar extensionArchivo: string[] = [];\n\t\t\t\tthis.listaDocumentoTipoSolicitud.forEach(async documento => {\n\t\t\t\t\t// Se valida si el tipoDocumento ya tiene un archivo\n\t\t\t\t\t// asociado\n\t\t\t\t\tvar requisitoHojaFiltro = new RequisitoHojaModel();\n\t\t\t\t\trequisitoHojaFiltro.tipoDocumento = documento.tipoDocumento;\n\t\t\t\t\trequisitoHojaFiltro.actoAdministrativo = this.solicitud.llaveTabla;\n\t\t\t\t\tvar listadoRequisitoHoja = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaFiltro)).toPromise();\n\t\t\t\t\tif (listadoRequisitoHoja != null && listadoRequisitoHoja.length != 0) {\n\t\t\t\t\t\trequisitoHojaFiltro = listadoRequisitoHoja[0];\n\t\t\t\t\t\tdocumento.requisitoHojaDTO = requisitoHojaFiltro;\n\t\t\t\t\t\tif (documento.tipo != null\n\t\t\t\t\t\t\t\t&& documento.tipo == this.parametrosPipe.DOCUMENTO_ANEXO) {\n\t\t\t\t\t\t\textensionArchivo = requisitoHojaFiltro.archivo != null\n\t\t\t\t\t\t\t\t\t? requisitoHojaFiltro.archivo.split('\\\\.')\n\t\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\t/*if (this.listaConstantesPipe.CUMPLIDO == (requisitoHojaFiltro.estado)) {\n\t\t\t\t\t\t\t\tString rutaArchivo = getPropiedadAplicativo(\n\t\t\t\t\t\t\t\t\t\tPropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA) + requisitoHojaFiltro.llave\n\t\t\t\t\t\t\t\t\t\t+ this.generalPipe.PUNTO + extensionArchivo[extensionArchivo.length - 1];\n\t\t\t\t\t\t\t\tdocumento.Ruta(\n\t\t\t\t\t\t\t\t\t\tEncriptadorBasico.encriptar(FacesUtils.ParametroRutaSession(rutaArchivo)));\n\t\t\t\t\t\t\t}*/\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async nuevoDocumento(event) {\n\t\tthis.momentoDocumentoDTO = event.data;\n\t\tawait this.popupDocumentoNovedad.cargarDocumento(this.momentoDocumentoDTO, this.solicitud, this.encuesta || this.procesoAutorizacion, this.momentoDocumentoDTO.tipoDocumento)\n\t}\n\n\tpublic cargarDocumento(event) {\n\t\tthis.momentoDocumentoDTO = event.data;\n\n\t}\n\n\tprivate validarRequisitoRepetido(requisitoHojaDTO: RequisitoHojaModel) {\n\t\tvar listaRemover = [];\n\t\tthis.listaRequisitoHoja.forEach(requisito => {\n\t\t\tif (requisitoHojaDTO.tipoDocumento == requisito.tipoDocumento) {\n\t\t\t\tlistaRemover.push(requisito);\n\t\t\t}\n\t\t})\n\t\tthis.listaRequisitoHoja = this.listaRequisitoHoja.filter(itemA => !listaRemover.includes(itemA));\n\t}\n\n\tpublic setDocumento(requisitoHojaDTO: RequisitoHojaModel) {\n\t\tif (requisitoHojaDTO != null) {\n\t\t\tif (!requisitoHojaDTO.eliminarRegistro) {\n\t\t\t\tthis.adicionarModificarAnexo(requisitoHojaDTO);\n\t\t\t} else {\n\t\t\t\tthis.eliminarAnexo(requisitoHojaDTO);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.momentoDocumentoDTO.ruta = null;\n\t\t}\n\t}\n\n\tprivate async eliminarAnexo(requisitoAnexo: RequisitoHojaModel) {\n\t\tif (this.nuevo) {\n\t\t\tconst index = this.listaRequisitoHoja.indexOf(requisitoAnexo);\n\t\t\tif (index !== -1) {\n\t\t\t  this.listaRequisitoHoja.splice(index, 1);\n\t\t\t}\n\t\t} else {\n\t\t\tawait this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoAnexo)).toPromise();\n\t\t\tawait this.cargarListaDocumentoTipoNovedad();\n\t\t}\n\t}\n\n\tprivate adicionarModificarAnexo(requisitoAnexo: RequisitoHojaModel) {\n\t\tvar extensionArchivo: string[] = requisitoAnexo.archivo != null ? requisitoAnexo.archivo.split('\\\\.')\n\t\t\t\t: null;\n\t\tthis.validarRequisitoRepetido(requisitoAnexo);\n\n\t\tthis.listaRequisitoHoja.push(requisitoAnexo);\n\t\tthis.listaDocumentoTipoSolicitud.forEach(documento => {\n\t\t\tif (documento.tipoDocumento != null\n\t\t\t\t\t&& documento.tipoDocumento == requisitoAnexo.tipoDocumento) {\n\t\t\t\tdocumento.requisitoHojaDTO = requisitoAnexo;\n\t\t\t\tif (this.generalPipe.SI == requisitoAnexo.anexo) {\n\t\t\t\t\t//String rutaArchivo = getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)\n\t\t\t\t\t//\t\t+ requisitoAnexo.llave + this.generalPipe.PUNTO\n\t\t\t\t\t//\t\t+ extensionArchivo[extensionArchivo.length - 1];\n\t\t\t\t\t//documento.Ruta(EncriptadorBasico.encriptar(FacesUtils.ParametroRutaSession(rutaArchivo)));\n\t\t\t\t}\n\t\t\t\t//break;\n\t\t\t}\n\t\t})\n\t\tif (!this.nuevo) {\n\t\t\tthis.guardarListaDocumentosNovedad();\n\t\t}\n\t}\n\n\tprivate validarAnexoObligatorio() {\n\t\tfor (let i = 0; i < this.listaDocumentoTipoSolicitud.length; i ++) {\n\t\t\tlet momentoDocumentoDTO = this.listaDocumentoTipoSolicitud[i];\n\t\t\tif (this.generalPipe.NO == momentoDocumentoDTO.opcional) {\n\t\t\t\tif (momentoDocumentoDTO.requisitoHojaDTO == null) {\n\t\t\t\t\tthis.notificacionesService.showWarning('Debe incluir el anexo: ' + momentoDocumentoDTO.nombreTipoDocumento);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic guardarListaDocumentosNovedad() {\n\t\tthis.listaRequisitoHojaBorrar?.forEach(async requisitoHojaBorrar => {\n\t\t\tawait this.generalService.delete(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaBorrar)).toPromise();\n\t\t})\n\n\t\tthis.listaRequisitoHoja.forEach(async requisitoHojaDTO => {\n\t\t\tvar tipoDocumento = new TipoDocumentoModel();\n\t\t\ttipoDocumento = await this.generalService.queryForObject(new GeneralModel('TipoDocumentoDTO', null, false, {documento: requisitoHojaDTO.tipoDocumento})).toPromise();\n\n\t\t\tvar exiteRequisito: boolean = await this.generalService.cantidadRegistros(new GeneralModel('RequisitoHojaDTO', null, false, {llave: requisitoHojaDTO.llave})).toPromise() > 0;\n\t\t\tif (!exiteRequisito) {\n\t\t\t\trequisitoHojaDTO.contrato =  0;\n\t\t\t\tif (this.parametrosPipe.DOCUMENTO_ANEXO == (tipoDocumento.tipoDocumento)) {\n\t\t\t\t\tif (requisitoHojaDTO.archivo != null) {\n\t\t\t\t\t\trequisitoHojaDTO.estado = this.listaConstantesPipe.CUMPLIDO;\n\t\t\t\t\t\trequisitoHojaDTO.cumplido = new Date();\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequisitoHojaDTO.estado = this.listaConstantesPipe.NOCUMPLIDO;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trequisitoHojaDTO.actoAdministrativo = this.solicitud.llaveTabla;\n\t\t\t\trequisitoHojaDTO = await this.generalService.crearRegistro(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaDTO)).toPromise();\n\t\t\t} else {\n\t\t\t\t// Si requisitoHojaDTO no es nuevo se actualiza\n\t\t\t\tif (this.generalPipe.SI == requisitoHojaDTO.anexo\n\t\t\t\t\t\t&& this.parametrosPipe.DOCUMENTO_ANEXO == tipoDocumento.tipoDocumento) {\n\t\t\t\t\trequisitoHojaDTO.estado = this.listaConstantesPipe.CUMPLIDO;\n\t\t\t\t\trequisitoHojaDTO.cumplido = new Date();\n\t\t\t\t}\n\t\t\t\tawait this.generalService.update(new GeneralModel('RequisitoHojaDTO', null, false, requisitoHojaDTO)).toPromise();\n\t\t\t}\n\t\t})\n\t\tthis.listaRequisitoHoja = [];\n\t}\n\n\n\tpublic async permisoBoton(comando: string) {\n\t\tvar x = false;\n\t\tthis.soyYo = await this.saraAplicacionService.isSoyYo(this.empleado.documento, this.authService.getTokenKey('tipoLogin'));\n\t\tif (this.soyYo) {\n\t\t\tx =  this.controlFuncionService.getControlFuncionalidad(comando + '_mio');\n\t\t\tif (x == null) {\n\t\t\t\tx = false;\n\t\t\t}\n\t\t} else {\n\t\t\tx = this.controlFuncionService.getControlFuncionalidad(comando);\n\t\t\tif (x == null) {\n\t\t\t\tx = false;\n\t\t\t}\n\t\t}\n\t\treturn x;\n\t}\n\n\tpublic async isSoyYo() {\n\t\treturn await this.saraAplicacionService.isSoyYo(this.empleado.documento, this.authService.getTokenKey('tipoLogin'));\n\t}\n\n\tpublic isCrearSolicitud() {\n\t\treturn this.nuevo && this.isSoyYo();\n\t}\n\n\t// Verifica que la solicitud ya haya sido creada ,de que el autorizador sea\n\t// la persona\n\t// asignada y de que el estado sea solicitada\n\tpublic isAprobarSolicitud() {\n\n\t\treturn !this.nuevo && this.solicitud.estado == this.novedadPipe.SOLICITUD;\n\t}\n\n\tpublic isRenderAprobadoTotal() {\n\t\tif (this.solicitud.estado == null || this.solicitud.autoriza == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.novedadPipe.CERRADA != this.solicitud.estado\n\t\t\t\t&& this.solicitud.autoriza == 0;\n\t}\n\n\n\tdescargarAnexo(documento) {\n\t\tlet propiedad = 'ruta_anexosHojaVida';\n\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\t//Ruta archivo\n\t\tvar extension = documento.requisitoHojaDTO.archivo.split('?')[0].split('.').pop();\n\t\tvar nombrearchivo = this.encriptadorBasico.encriptar(documento.requisitoHojaDTO.llave + '.' + extension )\n\t\tthis.cargarArchivo.descargarArchivo(nombrearchivo, propiedad, aplicacion).subscribe(blob => {\n\t\t  const a = document.createElement('a')\n\t\t  const objectUrl = URL.createObjectURL(blob)\n\t\t  a.href = objectUrl\n\t\t  a.download = documento.requisitoHojaDTO.archivo;\n\t\t  a.click();\n\t\t  URL.revokeObjectURL(objectUrl);\n\t\t});\n\t\n\t  }\n\n\tpublic isDescargarArchivo() {\n\t\tif (this.tipoNovedad != null) {\n\t\t\tif (this.tipoNovedad.descargarFuente == null) {\n\t\t\t\tthis.descargarArchivo = false;\n\t\t\t} else if (this.tipoNovedad.descargarFuente == (this.generalPipe.NO_DESC)) {\n\t\t\t\tthis.descargarArchivo = false;\n\t\t\t} else if (this.tipoNovedad.descargarFuente == (this.generalPipe.SI_DESC)) {\n\t\t\t\tthis.descargarArchivo = true;\n\t\t\t}\n\t\t}\n\t\treturn this.descargarArchivo;\n\t}\n\n\tpublic async isAutorizar() {\n\t\tif (this.solicitud != null) {\n\t\t\tif (this.solicitud.autoriza == null) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (this.solicitud.autoriza > 0\n\t\t\t\t\t&& this.solicitud.autoriza == await this.saraAplicacionService.getCedula()) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async enviarSimulacionPorCorreo() {\n\t\tawait this.solicitudService.enviarSimualacionPorEmail({solicitud: this.solicitud, tipoNovedad: this.tipoNovedad}).toPromise();\n\t\tthis.notificacionesService.showInfo('Se ha enviado el archivo.' + this.llaveMotivo);\n\t}\n\n\tpublic regresarPopupMotivo(event){\n\t\tthis.verPopupMotivo = false;\n\t\tif (event) {\n\t\t\tthis.setNoAprobar(event).then(data => {});\n\t\t}\n\t}\n\n\tpublic isMostrarFormulario() {\n\t\tvar mostrar: boolean = false;\n\t\tif (this.noEsNuevo) {\n\t\t\treturn this.noEsNuevo;\n\t\t} else {\n\t\t\tif (this.tipoNovedad.tipo != null) {\n\t\t\t\tmostrar = this.tipoNovedad.tipo != 'P' || this.mostrarFormulario;\n\t\t\t}\n\n\t\t}\n\t\treturn mostrar;\n\n\t}\n \n\n\tpublic isVerEnviarSimulacion() {\n\t\treturn this.solicitud != null && this.solicitud.rutaArchivo != null;\n\t}\n\n\tpublic isBpm() {\n\t\treturn this.procesoAutorizacion || this.encuesta;\n\t}\n\n\tpublic isCliente() {\n\t\treturn this.authService.getTokenKey('tipoLogin') == 'C'\n\t}\n\n\n}\n","<p-confirmDialog #cd key=\"eliminar\">\n    <ng-template pTemplate=\"footer\">\n        <div class=\"mt-3\">\n            <button type=\"button\"\n                class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\" pButton\n                icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n            <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                (click)=\"cd.accept()\"></button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n<div *ngIf=\"verDetalle\">\n    <app-cabecera-empleado [empleado]=\"empleado\" *ngIf=\"empleado != null && (origenTarea == 'APLICAR_NOV_SOLICITUD_EMPLEADO' || origenTarea == 'ACTIVIDAD_SOLICITUD_EMPLEADO')\"></app-cabecera-empleado>\n\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-2 align-items-between\" *ngIf=\"origenTarea == 'ACTIVIDAD_SOLICITUD_EMPLEADO'\">\n        <h4 class=\"text-xl mb-0\">{{'solicitud' | translate}}</h4>\n        <button pButton pRipple  (click)=\"ocultarAction()\" label=\"{{'link_regresar' | translate}}\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 mb-2\"></button>\n    </div>\n    <div class=\"card\">\n        <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{solicitud.desctiponovedad}}</h5>\n        <div class=\"Detallereporte mt-2\">\n            <div class=\"p-fluid p-formgrid grid\">\n\n                <div class=\"col-12 md:col-12\" *ngIf=\"tipoNovedad.requisito\">\n                    <div class=\"cardInstrucciones\">\n                        <div class=\"flex\">\n                            <div class=\"icono\">\n                                <i class=\"pi pi-info\"></i>\n                            </div>\n                            <div class=\"contenedor\">\n                                <label>{{tipoNovedad.requisito}}</label>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"col-12 md:col-4\" *ngIf=\"tipoNovedad.tipo == 'P'\">\n                    <span class=\"p-float-label\" *ngIf=\"listaMotivo.length > 0\">\n                        <p-dropdown class=\"w-full\" [options]=\"listaMotivo\" [autoDisplayFirst]=\"false\" [disabled]=\"!modificar\" (onChange)=\"traerObservacion()\"\n                            [(ngModel)]=\"llaveMotivoLiquidacion\" ></p-dropdown>\n                        <label>Motivo Liquidación*</label>\n                    </span>\n                </div>\n                <div class=\"col-12 md:col-8\" *ngIf=\"tipoNovedad.tipo == 'P'\"></div>\n                \n                <div class=\"col-12 md:col-12\" *ngIf=\"mostrarMensaje\">\n                    <div class=\"cardInstrucciones\">\n                        <div class=\"flex\">\n                            <div class=\"icono\">\n                                <i class=\"pi pi-bell\"></i>\n                            </div>\n                            <div class=\"contenedor\">\n                                <label>{{observacionMotivoSeleccionado}}</label>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"col-12 md:col-12\" *ngIf=\"!nuevo\">\n                    <p class=\"font-semibold\">{{solicitud.nombreEstado}}</p>\n                </div>\n                <formulario-nuevo #formularioNuevo [editable]=\"true\" [campos]=\"campos\" *ngIf=\"isMostrarFormulario() && campos.length > 0\"></formulario-nuevo>\n            </div>\n        </div>\n    </div>\n    <div class=\"cardInstrucciones\" *ngIf=\"solicitud.mensaje\">\n        <div class=\"flex\">\n            <div class=\"icono\" style=\"background: var(--color-85) !important\">\n                <i class=\"pi pi-bell\"></i>\n            </div>\n            <div class=\"contenedor\">\n                <label>{{solicitud.mensaje}}</label>\n            </div>\n        </div>\n    </div>\n    <p-table [value]=\"listaDocumentoTipoSolicitud\" responsiveLayout=\"scroll\" [scrollable]=\"true\" *ngIf=\"listaDocumentoTipoSolicitud.length > 0\"\n        [selectionMode]=\"modificar ? 'single' : null\"\n        (onRowSelect)=\"nuevoDocumento($event)\" (onRowUnselect)=\"nuevoDocumento($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr class=\"fondoTablaPincipal\">\n                <th style=\"min-width: 20%;\">{{'tipodocumento' | translate}}</th>\n                <th style=\"min-width: 30%;\">{{'requisito' | translate}}</th>\n                <th style=\"min-width: 10%;\">{{'estado' | translate}}</th>\n                <th style=\"min-width: 10%;\">{{'cumplido' | translate}}</th>\n                <th style=\"min-width: 10%;\">{{'vigencia' | translate}}</th>\n                <th style=\"min-width: 15%;\">{{'observacion' | translate}}</th>\n                <th style=\"min-width: 5%;\"></th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n            <tr [pSelectableRow]=\"data\">\n                <td style=\"min-width: 20%;\">{{data.nombreTipoDocumento}}</td>\n                <td style=\"min-width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.archivo\">{{data.requisitoHojaDTO.archivo}}\n                </td>\n                <td style=\"min-width: 30%;\" *ngIf=\"data.requisitoHojaDTO?.nombreFormato\">\n                    {{data.requisitoHojaDTO.nombreFormato}}</td>\n                <td style=\"min-width: 30%;\"\n                    *ngIf=\"!data.requisitoHojaDTO?.archivo && !data.requisitoHojaDTO?.nombreFormato\"></td>\n                <td style=\"min-width: 10%;\">{{data.requisitoHojaDTO?.estado\n                    |listaConstantesPipe:'listaCumplidoReq'}}</td>\n                <td style=\"min-width: 10%;\">{{data.requisitoHojaDTO?.cumplido | date: 'dd/MM/yyyy'}}</td>\n                <td style=\"min-width: 10%;\">{{data.requisitoHojaDTO?.vigencia | date: 'dd/MM/yyyy'}}</td>\n                <td style=\"min-width: 15%;\">{{data.requisitoHojaDTO?.observacion }}</td>\n                <td  style=\"min-width: 5%;\">\n                    <button pButton pRipple class=\"m-2 p-button p-button-secondary p-button-rounded\" *ngIf=\"data.requisitoHojaDTO?.archivo != null\"\n                        icon=\"glyphicons glyphicons-paperclip\" (click)=\"descargarAnexo(data)\" type=\"file\" ></button>\n                </td>\n            </tr>\n        </ng-template>\n    </p-table>\n    <!--PTE aca encuestas y autorizacion-->\n    <!-- Botones de ACCION -->\n    <div class=\"flex justify-content-end mt-3\" *ngIf=\"!encuesta && !procesoAutorizacion\">\n        <div class=\"splitbuttonOscuro\">\n            <!--CRUD BOTONES-->\n            <p-splitButton label=\"Acciones Solicitud\" icon=\"glyphicons glyphicons-list\"\n                [model]=\"itemsBotonAcciones\"></p-splitButton>\n        </div>\n    </div>\n    <div class=\"mt-3\" style=\"float: right; width: 100%; text-align: right;\" *ngIf=\"rutaTemporal != null && tipoNovedad.descargarFuente == 'S' && !nuevo && controlFuncionService.getControlFuncionalidad('solcomp:descargar')\">\n        <iframe style=\"border:solid 1px var(--color-200); border-radius: 5px; background:#fff;\"\n                    [src]=\"urlSegura\" width=\"100%\" height=\"400px\"></iframe>\n    </div>\n</div>\n\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"ocultarAction()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"ocultarAction()\"></app-ejecucion-encuesta>\n\n<app-popup-documento-novedad (destino)=\"setDocumento($event)\"></app-popup-documento-novedad>\n<app-popup-motivo-no-solicitud *ngIf=\"verPopupMotivo\" [mostrarPopup]=\"verPopupMotivo\" (regresar)=\"regresarPopupMotivo($event)\"></app-popup-motivo-no-solicitud>","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { SolicitudModel } from '../../../models/SolicitudModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, UtilsService } from 'general-library-union';\nimport { TipoNovedadPipe } from '../../../pipes/tipoNovedad.pipe';\nimport { DetalleSolicitudComponent } from '../../solicitudes/detalle-solicitud/detalle-solicitud.component';\nimport { TipoNovedadModel } from '../../../models/TipoNovedadModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { EmpresaModel } from '../../../models/EmpresaModel';\nimport { TipoNovedadService } from '../../../services/tiponovedad.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TabViewModule } from 'primeng/tabview';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-listado-solicitud',\n    templateUrl: './listado-solicitud.component.html',\n    styleUrls: ['./listado-solicitud.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, TabViewModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DetalleSolicitudComponent, DatePipe, TranslateModule]\n})\nexport class ListadoSolicitudComponent implements OnInit {\n  public listaComandos:  Map<string, boolean>;\n\t@Input() empleado: EmpleadoModel;\n\n\tpublic soyYo: boolean;\n\tpublic expandido: boolean;\n\n\tpublic solicitudes: SolicitudModel[];\n  public paginadorSolicitudes = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\tpublic solicitudesHistorico: SolicitudModel[];\n  public paginadorSolicitudesHistorico = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  public solicitudesPadre: TipoNovedadModel[]=[];\n\tpublic panel: number;\n\tpublic panelDetalle: number;\n\tpublic descripcionDetalle: string;\n\t@Input() public parametroFiltro: string;\n\t@Input() public parametroFiltroHijos: string;\n  @ViewChild('solicitud') solicitud: DetalleSolicitudComponent;\n\n  constructor(private generalService: GeneralService,\n              private authService: AuthService,\n              private generalPipe: GeneralPipe,\n              private utilsService: UtilsService,\n              private tipoNovedadPipe: TipoNovedadPipe,\n              private tipoNovedadService: TipoNovedadService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              private novedadPipe: NovedadPipe) { }\n\n  ngOnInit(): void {\n    this.cargarPadres().then(data => {this.utilsService.resizeWindowIFrame()})\n  }\n\n  async cargarPadres() {\n    this.solicitudesPadre = [];\n    let empresa: EmpresaModel = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, {empresa: this.authService.getTokenKey('numeroEmpresa')})).toPromise();\n    this.solicitudesPadre = await this.tipoNovedadService.obtenerTipoNovedadesPadreConHijos({\n\t\t\tempresa: this.empleado.empresa, \n\t\t\tcontrato: this.empleado.contrato,\n\t\t\tusuario: this.authService.getTokenKey('usuario'), \n\t\t\trol: this.authService.getTokenKey('aliasRol'), \n\t\t\tsolicitud: 'S', \n\t\t\tmodo: empresa.modoCompensacion, \n      codSolicitudesHijas: this.utilsService.isNotBlank(this.parametroFiltroHijos) ? this.parametroFiltroHijos : null, \n\t\t\tcodSolicitudes: this.utilsService.isBlank(this.parametroFiltroHijos) && this.utilsService.isNotBlank(this.parametroFiltroHijos) ? this.parametroFiltro : null,\n      soloEmpleado: this.authService.getTokenKey('aplicacion') =='10' && this.authService.getTokenKey('tipoLogin') == 'C' ? this.tipoNovedadPipe.EMPLEADO : null,\n\t\t\trolUsuario: this.authService.getTokenKey('aplicacion') =='10' &&  this.authService.getTokenKey('tipoLogin') == 'U' ? this.authService.getTokenKey('aliasRol') : null,\n      tipo: null}).toPromise();\n      console.log(this.solicitudesPadre)\n      await this.utilsService.sleep(300)\n      this.utilsService.resizeWindowIFrame()\n  }\n\n  async cargarSolicitudes(event){\n    let filtro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      contrato: this.empleado.contrato,\n      hojavida: this.empleado.cedula,\n      empresa: this.empleado.empresa,\n      tipoEstado: this.novedadPipe.PENDIENTES,\n      //pte autoservicioportal\n      soloEmpleado: this.authService.getTokenKey('isCliente') ?  this.tipoNovedadPipe.EMPLEADO : null,\n      rolUsuario: this.authService.getTokenKey('isCliente') ? null : this.authService.getTokenKey('aliasRol')\n    }\n    this.solicitudes = await this.generalService.queryForList(new GeneralModel('SolicitudDTO', null, false, filtro)).toPromise();\n    this.paginadorSolicitudes.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('SolicitudDTO', null, false, filtro)).toPromise();\n  }\n\n  async cargarSolicitudesHistorico(event){\n    let filtro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      contrato: this.empleado.contrato,\n      empresa: this.empleado.empresa,\n      estado: this.novedadPipe.BUSCAR_LIQUIDADAS,\n      codSolicitudes: this.utilsService.isNotBlank(this.parametroFiltro) ? this.parametroFiltro : null,\n       //pte autoservicioportal\n    }\n    this.solicitudesHistorico = await this.generalService.queryForList(new GeneralModel('SolicitudDTO', null, false, filtro)).toPromise();\n    this.paginadorSolicitudesHistorico.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('SolicitudDTO', null, false, filtro)).toPromise();\n  }\n\n  async detalleAction(event) {\n    var solicitudModel: SolicitudModel = event.data;\n    await this.solicitud.mostrarSolicitud(solicitudModel.llaveTabla, this.empleado, '', this.novedadPipe.ORIGEN_SOLICITUD_EMPLEADO);\n  }\n\n  async seleccionarHijoAction(event) {\n    this.solicitud.empleado = this.empleado;\n    this.solicitud.nuevo = true;\n    await this.solicitud.seleccionarHijoAction(event)\n  }\n  async regresarSolicitud() {\n    this.solicitud.verDetalle = false;\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  isVerDetalle(): boolean {\n    return this.solicitud?.verDetalle;\n  }\n\n  getNombreEstado(estado): string{\n    var nombreEstado = 'NO DEFINIDO';\n\t\tif (estado == null) {\n\t\t\tnombreEstado = '';\n\t\t} else if (estado == this.novedadPipe.PROGRAMADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCPROGRAMADA;\n\t\t} else if (estado == this.novedadPipe.LEGALIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCLEGALIZADA;\n\t\t} else if (estado == this.novedadPipe.AUTORIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESPORGENERAR;\n\t\t} else if (estado == this.novedadPipe.NOAUTORIZADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCNOAUTORIZADA;\n\t\t} else if (estado == this.novedadPipe.SOLICITUD) {\n\t\t\tnombreEstado = this.novedadPipe.DESCSOLICITUD;\n\t\t} else if (estado == this.novedadPipe.CERRADA) {\n\t\t\tnombreEstado = this.novedadPipe.DESCERRADA;\n\t\t}\n\t\treturn nombreEstado;\n  }\n}\n","\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n    <h1 class=\"text-xl mt-2\">{{'solicitud' | translate}}</h1>\n    <button pButton pRipple (click)=\"regresarSolicitud()\" *ngIf=\"isVerDetalle()\" label= \"{{'link_regresar' | translate}}\" \n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n</div>\n\n<p-tabView *ngIf=\"!isVerDetalle()\">\n    <p-tabPanel header=\"{{'solicitudes' | translate}}\">\n        <p-table dataKey=\"llaveTabla\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                [value]=\"solicitudes\" selectionMode=\"single\" [paginator]=\"paginadorSolicitudes.totalRecords > paginadorSolicitudes.rows\"\n                [scrollable]=\"true\" [rows]=\"paginadorSolicitudes.rows\" [totalRecords]=\"paginadorSolicitudes.totalRecords\"\n                [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n                currentPageReportTemplate=\"Mostrando del {first} al {last} de {totalRecords} registros\"\n                styleClass=\"p-datatable-striped\" [lazy]=\"true\" (onRowSelect)=\"detalleAction($event)\" (onRowUnselect)=\"detalleAction($event)\"\n                (onLazyLoad)=\"cargarSolicitudes($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{ \"tiponovedad\" | translate }}</th>\n                    <th>{{ \"estado\" | translate }}</th>\n                    <th>{{ \"fechasolicitud\" | translate }}</th>\n                    <th>{{ \"mensaje\" | translate }}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean>\n                <tr [pSelectableRow]=\"bean\">\n                    <td>{{bean.desctiponovedad}}</td>\n                    <td>{{getNombreEstado(bean.estado)}}</td>\n                    <td>{{bean.fechasolicitud | date: ('formatofecha' | translate)}}</td>\n                    <td>{{bean.mensaje}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n\n            <p-table dataKey=\"llaveTabla\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                [value]=\"solicitudesPadre\" selectionMode=\"single\" [paginator]=\"solicitudesPadre.length > 5\"\n                [scrollable]=\"true\" [rows]=\"5\" [totalRecords]=\"solicitudesPadre.length\"\n                [showCurrentPageReport]=\"true\"\n                currentPageReportTemplate=\"Mostrando del {first} al {last} de {totalRecords} registros\"\n                styleClass=\"p-datatable-striped mt-2\" (onRowSelect)=\"seleccionarHijoAction($event)\" (onRowUnselect)=\"seleccionarHijoAction($event)\" >\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th></th>\n                    <th>{{ 'tiposolicitud' | translate }}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean>\n                <tr [pSelectableRow]=\"bean\">\n                    <td>{{bean.descripcionPadre}}</td>\n                    <td>{{bean.descripcion}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n    </p-tabPanel>\n    <p-tabPanel header=\"{{'historico' | translate}}\" *ngIf=\"!controlFuncionService.getControlFuncionalidad('solcomp:sinhist')\">\n        <p-table dataKey=\"llaveTabla\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n                [value]=\"solicitudesHistorico\" selectionMode=\"single\" [paginator]=\"paginadorSolicitudesHistorico.totalRecords > paginadorSolicitudesHistorico.rows\"\n                [scrollable]=\"true\" [rows]=\"paginadorSolicitudesHistorico.rows\" [totalRecords]=\"paginadorSolicitudesHistorico.totalRecords\"\n                [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n                currentPageReportTemplate=\"Mostrando del {first} al {last} de {totalRecords} registros\"\n                styleClass=\"p-datatable-striped\" [lazy]=\"true\" (onRowSelect)=\"detalleAction($event)\" (onRowUnselect)=\"detalleAction($event)\"\n                (onLazyLoad)=\"cargarSolicitudesHistorico($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{ \"tiponovedad\" | translate }}</th>\n                    <th>{{ \"estado\" | translate }}</th>\n                    <th>{{ \"fechasolicitud\" | translate }}</th>\n                    <th>{{ \"mensaje\" | translate }}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean>\n                <tr [pSelectableRow]=\"bean\">\n                    <td>{{bean.desctiponovedad}}</td>\n                    <td>{{getNombreEstado(bean.estado)}}</td>\n                    <td>{{bean.fechasolicitud | date: ('formatofecha' | translate)}}</td>\n                    <td>{{bean.mensaje}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </p-tabPanel>\n</p-tabView>\n\n<app-detalle-solicitud #solicitud (regresar)=\"regresarSolicitud()\" ></app-detalle-solicitud>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'publicacionPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class PublicacionPipe implements PipeTransform {\n\n    PERFILFUNCION = \"PERFILFUNCION\";\n    REQUERIMIENTO = \"REQUERIMIENTO\";\n    SELECCION = \"SELECCION\";\n\n    PROCESO_SELECCION = \"PS\";\n    REQUERIMIENTO_PERSONAL = \"RP\";\n    DESCRIPCION_CARGO = \"DC\";\n\n    TIPOPLANILLA_TABLA_PUBLICACION =\n        [\n            { codigo: this.PROCESO_SELECCION, nombre: this.SELECCION },\n            { codigo: this.REQUERIMIENTO_PERSONAL, nombre: this.REQUERIMIENTO },\n            { codigo: this.DESCRIPCION_CARGO, nombre: this.PERFILFUNCION },\n        ]\n\n    DISCO = \"D\";\n    WEB_SERVICE = \"W\";\n\n    DISCO_DES = \"Almacenamiento Local\";\n    WEB_SERVICE_DES = \"Web Service Remoto\";\n\n    LISTA_ALMACENAMIENTO =\n        [\n            { codigo: this.DISCO, nombre: this.DISCO_DES },\n            { codigo: this.WEB_SERVICE, nombre: this.WEB_SERVICE_DES },\n        ]\n\n    transform(value: any, ...args: any[]): any {\n        let result = value;\n        //if (args[0] == 'listaTipo') { this.MAPATIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }        \n        return result;\n    }\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { PublicacionModel } from '../../../../../modules/sarageneral/models/PublicacionModel';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, PublicacionWebModel, StorageService, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { PublicacionPipe } from '../../../pipes/publicacion.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { TreeNode } from 'primeng/api';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TreeModule } from 'primeng/tree';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-listado-publicaciones',\n    templateUrl: './listado-publicaciones.component.html',\n    styleUrls: ['./listado-publicaciones.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, TreeModule, TranslateModule]\n})\nexport class ListadoPublicacionesComponent implements OnInit {\n\n  @Input() empleado: EmpleadoModel;\n\n  @Input() public parametroCodigoPublicacion: string;\n  public rutaTemporal: string = '';\n  public historicoPublicaciones: boolean = false;\n  public loading = false;\n  files: TreeNode[];\n\n  constructor(\n    private storage: StorageService,\n    private generalService: GeneralService,\n    private utilService: UtilsService,\n    private authService: AuthService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private publicacionPipe: PublicacionPipe,\n    private cargarArchivo: CargarArchivosService,\n    private notificacionesService: ToastService,\n    public controlFuncionalidad: CargarControlFuncionalidadService\n  ) { }\n\n  ngOnInit(): void {\n    this.rutaTemporal = 'ruta_temporal';\n    this.cargarPublicaciones().then(data => {this.utilService.resizeWindowIFrame()});\n  }\n\n  async cargarPublicaciones() {\n    let filtro = new PublicacionModel();\n    if (!this.historicoPublicaciones) {\n      filtro.fechaActual = new Date();\n    } else {\n      filtro.fechaActual = null;\n    }\n    filtro.numeroDestino = this.empleado.contrato;\n    filtro.empresa = this.empleado.empresa;\n    if (this.autoServicioPortal()) {\n      filtro.codigoPublicacion = !this.utilService.isBlank(this.parametroCodigoPublicacion) ? this.parametroCodigoPublicacion : null;\n    }\n    this.loading = true;\n    this.files = [];\n    let consulta = await this.generalService.queryForList(new GeneralModel('PublicacionDTO', null, false, filtro)).toPromise();\n    if (consulta != null) {\n      this.loading = false;\n      const groupedData = {};\n      consulta.forEach(data => {\n        const label = this.cargarPublicacion(data);\n        if (!groupedData[label]) {\n          groupedData[label] = {\n            label,\n            children: [],\n            expandedIcon: 'pi pi-folder-open',\n            collapsedIcon: 'pi pi-folder',\n            selectable: false,\n            expanded: true,\n            styleClass: \"font-semibold\"\n          };\n        }\n        data.label = data.descripcion;\n        data.icon = 'pi pi-file-pdf';\n        data.styleClass = 'font-normal'\n        groupedData[label].children.push(data);\n      });\n      const sortedGroupedData = Object.keys(groupedData)\n        .sort((a, b) => b.localeCompare(a))\n        .reduce((acc, key) => {\n          acc[key] = groupedData[key];\n          return acc;\n        }, {});\n      this.files = Object.values(sortedGroupedData);      \n    }\n    this.historicoPublicaciones = false;\n    await this.utilService.sleep(300);\n    this.utilService.resizeWindowIFrame();\n  }\n\n  cargarPublicacion(publicacion: PublicacionModel) {\n    let publicacionWeb = new PublicacionWebModel();\n    publicacionWeb.nombreRealEncriptado = this.encriptadoBasico.encriptar(publicacion.archivo);\n    publicacionWeb.descripcion = publicacion.descripcion;\n    let descripcion: string = publicacion.nombrePublicacion;\n    let anno: number = 0;\n    if (publicacion.fechaPago != null) {\n      anno = new Date(publicacion.fechaPago).getFullYear();\n    } else if (publicacion.fechaAdicionado != null) {\n      anno = new Date(publicacion.fechaAdicionado).getFullYear();\n    }\n    if (anno != 0) {\n      descripcion = anno + \" \" + descripcion;\n    }\n\n    publicacionWeb.tipoPublicacion = descripcion;\n    if (this.publicacionPipe.WEB_SERVICE == publicacion.almacenamiento) {\n      publicacionWeb.urlDescarga = publicacion.urlDescarga;\n      publicacionWeb.rutaRealEncriptada = this.encriptadoBasico.encriptar(publicacion.archivo)\n      publicacionWeb.rutaTemporal = this.rutaTemporal;\n    }\n    if (publicacion.contaminada != null) {\n      publicacionWeb.controlExterno = this.encriptadoBasico.encriptar(publicacion.contaminada);\n    } else {\n      publicacionWeb.controlExterno = this.encriptadoBasico.encriptar(Constantes.CONSTANTE_NO);\n    }\n    return publicacionWeb.tipoPublicacion;\n  }\n\n\n  descargarAnexo(event) {\n    let documento = event.node;\n    let propiedad = 'ruta_publicacion';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llaveBase.trim() + '/' + documento.numeroDestino.toString().trim() + '_' + documento.llaveBase.trim() + '.pdf'), propiedad, aplicacion).subscribe(\n      {\n        next: (data) => {\n          const a = document.createElement('a')\n          const objectUrl = URL.createObjectURL(data)\n          a.href = objectUrl\n          a.download = documento.contrato.toString().trim() + '_' + documento.llaveBase.trim() + '.pdf';\n          a.click();\n          URL.revokeObjectURL(objectUrl);\n        },\n        error: (err) => {\n          this.notificacionesService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema.')\n        }\n      }\n    )\n  }\n\n  verHistoricoPublicaciones(historico: boolean){\n    try {\n      this.historicoPublicaciones = historico;\n      this.cargarPublicaciones().then(data => {this.utilService.resizeWindowIFrame()});\n    } catch (error) {\n      this.notificacionesService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  public autoServicioPortal(): boolean {\n    if (this.storage.getDecodedJWT().aplicacion == 10) {\n      return true;\n    }\n    return false;\n  }\n\n\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n    <h4 class=\"mb-0\">{{'publicacion' | translate}} </h4>\n    <button pButton pRipple class=\"p-button-outlined claro mb-2\" icon=\"glyphicons glyphicons-folder-plus\"\n        label=\"{{'historicopublicaciones' | translate}}\"\n        *ngIf=\"controlFuncionalidad.getControlFuncionalidad('histopubli:ver')\"\n        (click)=\"verHistoricoPublicaciones(true)\"></button>\n</div>\n<div class=\"card p-1\">\n    <p-tree scrollHeight=\"500px\" [value]=\"files\" selectionMode=\"single\" [loading]=\"loading\"\n        (onNodeSelect)=\"descargarAnexo($event)\"></p-tree>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class TipoUnidadModel extends UnionModel {\n\n\t\n\ttipoUnidad: string;\n\tdescripcion: string;\n\tcolor: string;\n\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class UnidadOrganizacionModel extends UnionModel {\n\n\tdescripcion: string;\n\torganizacion: number;\n\ttipounidad: string;\n\tdescripcionTipoUnidad: string;\n\testado: string;\n\tcodigo: string;\n\n\t}\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, forwardRef } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, TablaGeneralComponent, TableColumn } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { UnidadOrganizacionModel } from '../../../models/UnidadOrganizacionModel';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { PopupUnidadOrganizacionalComponent } from '../popup-unidad-organizacional/popup-unidad-organizacional.component';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n  selector: 'app-popup-unidades-vigentes-planta',\n  templateUrl: './popup-unidades-vigentes-planta.component.html',\n  styleUrls: ['./popup-unidades-vigentes-planta.component.scss'],\n  standalone: true,\n  // providers: [PopupUnidadOrganizacionalComponent],\n  imports: [DialogModule, TranslateModule, TablaGeneralComponent, FiltroGeneralComponent, forwardRef(() => PopupUnidadOrganizacionalComponent)]\n})\nexport class PopupUnidadesVigentesPlantaComponent implements OnInit {\n\n  //  @ViewChild(PopupUnidadOrganizacionalComponent) popupUnidadOrganizacional: PopupUnidadOrganizacionalComponent;\n\n  @Input()\n  mostrar: boolean;\n  @Input()\n  tipoM: String;\n  @Output() regresar = new EventEmitter();\n  @Output() regresarData = new EventEmitter();\n  formpago: any[];\n  anno: Date = new Date();\n  tipo: String;\n  columns: TableColumn[];\n  listaUnidadesNoVigentes: UnidadOrganizacionModel[];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private translateService: TranslateService, private generalService: GeneralService, private authService: AuthService) { }\n\n  ngOnInit(): void {\n    this.columns = [\n      {\n        field: 'unidad',\n        header: this.translateService.instant('codigo'),\n        width: 100,\n      },\n      {\n        field: 'nombreUnidad',\n        header: this.translateService.instant('nombre'),\n        width: 100,\n      }\n\n    ];\n  }\n\n  async loadData(event) {\n    let filtroVista = {\n      paginacionRegistroInicial: event?.first,\n      paginacionRegistroFinal: event?.rows,\n      estado: 'N',\n      empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n    }\n    this.listaUnidadesNoVigentes = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, filtroVista)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', null, false, filtroVista)).toPromise();\n  }\n\n  async onRowSelect(unidador) {\n    try {\n      if ((unidador != null) && (unidador.unidad != null) && (unidador.unidad.trim() != '.')) {\n        unidador.operacion = 'M';\n        let comodinEnvio: boolean = (unidador.unidadesTransversales != null)\n        this.regresarData.emit({ unidadDTO: unidador, unidadesTransversales: comodinEnvio })\n        //this.popupUnidadOrganizacional.buscar(unidador,comodinEnvio);\n\n      }\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  async setActualizarListaUnidadNovigente(event) {\n    try {\n      let filtroVista = {\n        paginacionRegistroInicial: event?.first,\n        paginacionRegistroFinal: event?.rows,\n        estado: 'N',\n        empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      }\n      this.listaUnidadesNoVigentes = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, filtroVista)).toPromise();\n      this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', null, false, filtroVista)).toPromise();\n    } catch (error) {\n\n    }\n  }\n\n  public ocultar() {\n    this.regresar.emit();\n    this.mostrar = false;\n  }\n\n  public mostrarPopup() {\n    this.mostrar = false;\n  }\n\n}\n","<p-dialog id='popupunidadesvigentesplanta' header=\"{{'unidad' | translate}} no {{'vigente' | translate}}\"\n    [(visible)]=\"mostrar\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <app-tabla-general #tablaGeneral dataKey=\"llaveTabla\" [columns]=\"columns\" [value]=\"listaUnidadesNoVigentes\"\n    [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"loadData($event)\"\n    (onRowSelect)=\"onRowSelect($event)\" (onclick)=\"onRowSelect($event)\">\n  </app-tabla-general>\n\n</p-dialog>\n\n<!-- <app-popup-unidad-organizacional (volver)=\"mostrar = true\"></app-popup-unidad-organizacional> -->","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { GeneralModel, ParametrosGeneralModel, UtilsService } from \"general-library-union\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { UnidadOrganizacionalModel } from \"../models/UnidadOrganizacionalModel\";\n\nimport { ErrorIntecertorService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UnidadOrganizacionalService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  consultarUnidadesOrganigramaRol(general?: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/unidadorganizacional/consultarUnidadesOrganigramaRol`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  consultarUnidadesOrganigrama(general?: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/consultarUnidadesOrganigrama`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  consultarUnidadOrganigrama(general?: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/consultarUnidadOrganigrama`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  \n  traerListado(general: UnidadOrganizacionalModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/unidadorganizacional/traerListado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  construirOrganigrama(general: UnidadOrganizacionalModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/unidadorganizacional/construirOrganigrama`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  selectListPosibleJefe(general: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/unidadorganizacional/selectListPosibleJefe`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  traerUnidadResponsable(general: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/unidadorganizacional/traerUnidadResponsable`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  actualizarRegistro(general: any): Observable<void> {\n    return this.httpClient.post<void>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/unidadorganizacional/actualizarRegistro`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  consultarUnidadesComparte(general: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/unidadorganizacional/consultarUnidadesComparte`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  \n\n}","import { Component, OnInit, Output, ViewChild, EventEmitter } from '@angular/core';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { TipoUnidadModel } from '../../../models/TipoUnidadModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { UnidadOrganizacionModel } from '../../../models/UnidadOrganizacionModel';\nimport { PopupUnidadesVigentesPlantaComponent } from '../popup-unidades-vigentes-planta/popup-unidades-vigentes-planta.component';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormBuilder, FormControl, FormGroup, FormsModule } from '@angular/forms';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { DialogModule } from 'primeng/dialog';\nimport { UnidadOrganizacionalService } from '../../../services/unidadorganizacional.service';\nimport { ConfirmationService } from 'primeng/api';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n\n@Component({\n  selector: 'app-popup-unidad-organizacional',\n  templateUrl: './popup-unidad-organizacional.component.html',\n  styleUrls: ['./popup-unidad-organizacional.component.scss'],\n  standalone: true,\n  imports: [DialogModule, FormsModule, InputTextModule, DropdownModule, TranslateModule, PopupUnidadesVigentesPlantaComponent, ButtonDirective, ButtonModule, NgIf, ConfirmPopupModule],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class PopupUnidadOrganizacionalComponent implements OnInit {\n\n  @ViewChild(PopupUnidadesVigentesPlantaComponent) regresar: PopupUnidadesVigentesPlantaComponent;\n  @Output()\n  volver = new EventEmitter();\n  @Output() aplicarDestinoOcultar: EventEmitter<any> = new EventEmitter();\n\n  unidadOrganizacionalDTO: UnidadOrganizacionalModel = new UnidadOrganizacionalModel();\n  separador = \"_USol_\";\n  operacion;\n  renderedTransicional: boolean;\n  blockDescripcion: boolean;\n  blockTipoUnidad: boolean;\n  blockTransicional: boolean;\n  blockunidad: boolean;\n  nuevo: boolean;\n  unidadTransicional: boolean;\n  unidadTransversal: string;\n  listaTipoUnidadItem: any[] = [];\n  listaUnidadesItem: any[] = [];\n  listaSucursalItem: any[] = [];\n  listanoUnidadOraganizacion: any[] = [];\n  mostrarPopup: boolean;\n  form: FormGroup;\n  clickGuardar: boolean;\n  unidadTrasversal: string;\n\n  constructor(private generalService: GeneralService, private cargarMapas: cargarmapasGlobal, private authService: AuthService, public generalPipe: GeneralPipe, private fb: FormBuilder,\n    public utilsService: UtilsService, private notificationBusService: ToastService, private unidadOrganizacionalSvc: UnidadOrganizacionalService, private confirmationService: ConfirmationService,\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  public async buscar(unidadDTO: UnidadOrganizacionalModel, unidadesTransversales: boolean) {\n    try {\n      this.unidadOrganizacionalDTO = unidadDTO\n      if (this.unidadOrganizacionalDTO.unidad == null) {\n        this.unidadOrganizacionalDTO.nivel = unidadDTO.nivel != null ? (unidadDTO.nivel + 1) : 1;\n      }\n      this.unidadOrganizacionalDTO.llaveTabla = this.unidadOrganizacionalDTO.depende + this.separador + this.unidadOrganizacionalDTO.empresaDepende;\n      this.operacion = unidadDTO.operacion;\n      await this.crearListas();\n      if (unidadesTransversales) {\n        let cantidadRegistros = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionDTO', null, false, { codigo: unidadDTO.unidad })).toPromise();\n        if (this.operacion == \"I\") {\n          this.renderedTransicional = true;\n          this.blockDescripcion = true;\n          this.blockTipoUnidad = true;\n          this.blockTransicional = false;\n          this.blockunidad = true;\n          this.nuevo = true;\n        } else {\n          this.nuevo = false;\n          if (unidadDTO.unidad != null && cantidadRegistros != 0) {\n            this.renderedTransicional = true;\n            this.blockDescripcion = true;\n            this.blockTipoUnidad = true;\n            this.blockTransicional = true;\n            this.blockunidad = true;\n          } else {\n            this.renderedTransicional = false;\n            this.blockDescripcion = false;\n            this.blockTipoUnidad = false;\n            this.blockTransicional = false;\n            this.blockunidad = true;\n          }\n        }\n        this.unidadTransicional = true;\n        this.unidadTransversal = this.unidadOrganizacionalDTO.unidadesTransversales;\n      } else {\n        this.unidadTransicional = false;\n        this.renderedTransicional = false;\n        this.blockDescripcion = false;\n        this.blockTipoUnidad = false;\n        this.blockTransicional = false;\n        this.blockunidad = false;\n        if (unidadDTO.estado != null && unidadDTO.llaveTabla != null) {\n          this.blockunidad = true;\n        }\n      }\n      this.mostrarPopup = true;\n      this.crearFormulario(this.unidadOrganizacionalDTO);\n    } catch (error) {\n      console.log(error);\n    }\n\n  }\n\n\n  crearFormulario(modelo: any) {\n    const formGroup = {};\n    for (const key in modelo) {\n      if (modelo.hasOwnProperty(key)) {\n        formGroup[key] = new FormControl(modelo[key]);\n      }\n    }\n    this.form = this.fb.group(formGroup);\n  }\n\n\n  public async seleccionarUnidadTrasversal(event) {\n    try {\n      console.log(event);\n\n      //UnidadOrganizacionDTO \n      let registroSeleccionado = new UnidadOrganizacionModel();\n      if (event.value != null) {\n        registroSeleccionado.llaveTabla = (event.value.toString());\n        registroSeleccionado = await this.generalService.queryForObject(new GeneralModel('UnidadOrganizacionDTO', null, false, registroSeleccionado)).toPromise();\n        if (registroSeleccionado != null) {\n          this.unidadOrganizacionalDTO.unidadesTransversales = (registroSeleccionado.llaveTabla);;\n          this.unidadOrganizacionalDTO.unidad = (registroSeleccionado.codigo);\n          this.unidadOrganizacionalDTO.tipoUnidad = (registroSeleccionado.tipounidad);\n          this.unidadOrganizacionalDTO.nombreUnidad = (registroSeleccionado.descripcion);\n        }\n      } else {\n        this.unidadOrganizacionalDTO.unidadesTransversales = null\n        this.unidadOrganizacionalDTO.unidad = null\n        this.unidadOrganizacionalDTO.tipoUnidad = null\n        this.unidadOrganizacionalDTO.nombreUnidad = null\n      }\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  async crearListas() {\n    this.listaTipoUnidadItem = await this.cargarMapas.cargarSelectItemString('tipoUnidad', 'descripcion', new GeneralModel('TipoUnidadDTO', null, false, new TipoUnidadModel()));\n    this.listaSucursalItem = await this.cargarMapas.cargarSelectItemString('sucursal', 'descripcion', new GeneralModel('SucursalDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) }));\n    let listado = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionDTO', null, false, new UnidadOrganizacionModel())).toPromise();\n    let listaUnidad = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, { empresaDepende: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    let listaPuesto = await this.generalService.queryForList(new GeneralModel('PuestoComparteDTO', 'PuestoComparte.traerUnidadesComparte', false, { empresaDepende: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    this.listaUnidadesItem = [];\n    if (listaUnidad != null && listaUnidad.length > 0) {\n      listaUnidad.forEach(element => {\n        this.listaUnidadesItem.push({ codigo: element.unidad + this.separador + element.empresa, nombre: element.nombreUnidad });\n      });\n    }\n    if (listado != null && listado.length > 0) {\n      listado.forEach(element => {\n        this.listanoUnidadOraganizacion.push({ codigo: element.llaveTabla, nombre: element.codigo + ' - ' + element.descripcion });\n      });\n    }\n    if (listaPuesto != null && listaPuesto.length > 0) {\n      listaPuesto.forEach(element => {\n        this.listaUnidadesItem.push({ codigo: element.unidad + this.separador + element.empresa, nombre: element.nombreUnidad });\n      });\n    }\n  }\n\n\n  public async guardar(): Promise<string> {\n    try {\n      if (this.validar()) {\n        this.clickGuardar = false;\n        if (this.unidadOrganizacionalDTO.llaveTabla != null && this.unidadOrganizacionalDTO.llaveTabla.trim() != (\"\")) {\n          this.unidadOrganizacionalDTO.depende = this.utilsService.rightpad(this.unidadOrganizacionalDTO.llaveTabla.split(this.separador)[0], 12, null);\n          this.unidadOrganizacionalDTO.empresaDepende = parseInt(this.unidadOrganizacionalDTO.llaveTabla.split(this.separador)[1]);\n        }\n        // Nuevo registro \n        if (this.operacion != null && this.operacion == (\"I\")) {\n          this.unidadOrganizacionalDTO.relacion = this.unidadOrganizacionalDTO.relacion + this.generalPipe.PIPELINE + this.unidadOrganizacionalDTO.unidad;\n\n          //this.unidadOrganizacionalDTO \n          let dto = new UnidadOrganizacionalModel();\n          dto.unidad = this.unidadOrganizacionalDTO.unidad;\n          dto.empresaDepende = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n          dto = await this.generalService.queryForObject(new GeneralModel('UnidadOrganizacionalDTO', null, false, dto)).toPromise();\n\n          if (dto != null) {\n            this.notificationBusService.showInfo(\"No se puede almacenar el registro, ya existe una unidad con el mismo nombre\");\n            return null;\n          }\n\n          this.unidadOrganizacionalDTO = await this.generalService.crearRegistro(new GeneralModel('UnidadOrganizacionalDTO', null, false, this.unidadOrganizacionalDTO)).toPromise();\n          this.notificationBusService.showInfo(\"Se guardó exitosamente el registro\");\n        }\n        // Actualización de registro existente\n        else {\n          await this.unidadOrganizacionalSvc.actualizarRegistro(this.unidadOrganizacionalDTO).toPromise();\n          this.notificationBusService.showInfo(\"Se actualizó exitosamente el registro\");\n        }\n        this.aplicarDestinoOcultar.emit(this.unidadOrganizacionalDTO);\n        this.ocultar()\n      } else {\n        this.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      }\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n\n\n  /**\n   * Elimina el registro de Unidad Organizacional manejado por este popoup\n   * @return null\n   */\n\n  public eliminar(): string {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      header: 'Confirmar',\n      accept: () => {\n        this.setEliminar();\n      },\n    });\n    return null;\n  }\n\n  public async setEliminar() {\n    try {\n      await this.generalService.delete(new GeneralModel('UnidadOrganizacionalDTO', null, false, this.unidadOrganizacionalDTO)).toPromise();\n      this.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n      this.ocultar();\n      this.aplicarDestinoOcultar.emit(new UnidadOrganizacionalModel());\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n  /**\n   * Verifica que los datos ingresados para la unidad organizacional sean válidos para guardar el registro\n   * @return true en caso de que los datos sean válidos, en caso contrario false\n   */\n\n  public validar(): boolean {\n    let validador: boolean = true;\n    this.clickGuardar = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.unidadOrganizacionalDTO.unidad);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.unidadOrganizacionalDTO.nombreUnidad);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.unidadOrganizacionalDTO.tipoUnidad);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.unidadOrganizacionalDTO.sucursal);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.unidadOrganizacionalDTO.estado);\n\n    if (this.utilsService.isNotBlank(this.unidadOrganizacionalDTO.correo)) {\n      validador = this.utilsService.validarEmail(this.unidadOrganizacionalDTO.correo);\n    }\n\n    // validador &= Validador.validarTexto(this.unidadOrganizacionalDTO.telefonos, \"popupUnidadOrganizacional_form:telefonos\", false, 12);\n    // validador &= Validador.validarTexto(this.unidadOrganizacionalDTO.extension, \"popupUnidadOrganizacional_form:extension\", false, 10);\n    // validador = validador && this.utilsService.validarCampoNumerico(this.unidadOrganizacionalDTO.cupoPuesto);\n    // validador = validador && this.utilsService.validarCampoNumerico(this.unidadOrganizacionalDTO.prt);\n\n    return validador;\n  }\n\n  isValidarEmail(): boolean {\n    return this.utilsService.validarCampoObligatorio(this.unidadOrganizacionalDTO.correo) && this.utilsService.validarEmail(this.unidadOrganizacionalDTO.correo);\n  }\n\n  async ocultar() {\n    this.volver.emit();\n    this.mostrarPopup = false;\n  }\n\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog id='popupunidadesvigentesplanta' header=\"{{'unidad' | translate}} {{'organizacional' | translate}}\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n    <div class=\"Inputgroup\">\n        <div class=\"p-fluid grid\">\n\n            @if(unidadTransicional && renderedTransicional){\n            <div class=\"field col-8 md:col-8 lg:col-8\">\n                <span class=\"p-float-label\">\n                    <p-dropdown  [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\" id=\"tipocambioemp\" [options]=\"listanoUnidadOraganizacion\" optionValue=\"codigo\"\n                        [disabled]=\"nuevo && blockTransicional\" [(ngModel)]=\"unidadTrasversal\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.tipoUnidad) && clickGuardar\"\n                        (onChange)=\"seleccionarUnidadTrasversal($event)\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.tipoUnidad) && clickGuardar\"\n                        optionLabel=\"nombre\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'unidadtransversal' | translate}} *</label>\n                </span>\n            </div>\n            }\n\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\" [(ngModel)]=\"unidadOrganizacionalDTO.unidad\"\n                        maxlength=\"12\" [disabled]=\"blockunidad\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.unidad) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.unidad) && clickGuardar\" />\n                    <label for=\"descripcion\">{{'unidad' | translate}} {{'organizacional' | translate}} *</label>\n                </span>\n            </div>\n\n\n            <div class=\"field col-8 md:col-8 lg:col-8\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.nombreUnidad\" [disabled]=\"blockDescripcion\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.nombreUnidad) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.nombreUnidad) && clickGuardar\"\n                        maxlength=\"150\" />\n                    <label for=\"descripcion\">{{'descripcion' | translate}} *</label>\n                </span>\n            </div>\n\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown  [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\" id=\"tipocambioemp\" [options]=\"listaTipoUnidadItem\" optionValue=\"key\"\n                        [disabled]=\"blockTipoUnidad\" [(ngModel)]=\"unidadOrganizacionalDTO.tipoUnidad\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.tipoUnidad) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.tipoUnidad) && clickGuardar\"\n                        optionLabel=\"label\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'tipo' | translate}} {{'unidad' | translate}} *</label>\n                </span>\n            </div>\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown  [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\" id=\"tipocambioemp\" [options]=\"listaSucursalItem\" optionValue=\"key\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.sucursal\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.sucursal) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.sucursal) && clickGuardar\"\n                        optionLabel=\"label\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'sucursal' | translate}} *</label>\n                </span>\n            </div>\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown  [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\" id=\"tipocambioemp\" [options]=\"listaUnidadesItem\" optionValue=\"codigo\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.llaveTabla\" optionLabel=\"nombre\" [showClear]=\"true\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'unidad' | translate}} {{'depende' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown  [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\" id=\"tipocambioemp\" [options]=\"generalPipe.LISTA_SINO\" optionValue=\"codigo\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.estado\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.estado) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(unidadOrganizacionalDTO.estado) && clickGuardar\"\n                        optionLabel=\"nombre\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'vigente' | translate}} *</label>\n                </span>\n            </div>\n            \n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.cupoPuesto\" maxlength=\"7\" />\n                    <label for=\"descripcion\">{{'cupo' | translate}} {{'puestos' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\" [(ngModel)]=\"unidadOrganizacionalDTO.prt\"\n                        maxlength=\"7\" />\n                    <label for=\"descripcion\">{{'prt' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input id=\"email\" type=\"text\" pInputText name=\"email\" [(ngModel)]=\"unidadOrganizacionalDTO.correo\"\n                        #emailModel=\"ngModel\" required pattern=\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.com$\" />\n                    <!-- <input id=\"email\" pInputText type=\"email\" [(ngModel)]=\"unidadOrganizacionalDTO.correo\" name=\"email\" pattern=\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(\\.com)$\"\n                                    #emailInput=\"ngModel\" email maxlength=\"100\"> -->\n                    <label for=\"email\">{{'correo' | translate}}</label>\n                    <!-- Mostrar mensajes de error -->\n                    <small *ngIf=\"emailModel.errors?.pattern && emailModel.touched\" class=\"p-error\">\n                        El correo debe ser válido y terminar con .com.\n                    </small>\n                </span>\n            </div>\n\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.ordenNivel\"\n                        (input)=\"utilsService.validarCampoNumerico($event)\"\n                        onkeypress='return event.charCode >= 48 && event.charCode <= 57' maxlength=\"5\" />\n                    <label for=\"descripcion\">{{'orden' | translate}} {{'nivel' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-2 md:col-2 lg:col-2\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\" [(ngModel)]=\"unidadOrganizacionalDTO.nivel\"\n                        [disabled]=\"true\" (input)=\"utilsService.validarCampoNumerico($event)\"\n                        onkeypress='return event.charCode >= 48 && event.charCode <= 57' maxlength=\"80\" />\n                    <label for=\"descripcion\">{{'nivel' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-2 md:col-2 lg:col-2\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.telefonos\"\n                        (input)=\"utilsService.validarCampoNumerico($event)\"\n                        onkeypress='return event.charCode >= 48 && event.charCode <= 57' maxlength=\"12\" />\n                    <label for=\"descripcion\">{{'telefono' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-2 md:col-2 lg:col-2\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\"\n                        [(ngModel)]=\"unidadOrganizacionalDTO.extension\" maxlength=\"10\"\n                        (input)=\"utilsService.validarCampoNumerico($event)\"\n                        onkeypress='return event.charCode >= 48 && event.charCode <= 57' />\n                    <label for=\"descripcion\">{{'extension' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-2 md:col-2 lg:col-2\">\n                <span class=\"p-float-label\">\n                    <input class=\"w-full\" pInputText autofocus type=\"text\" [(ngModel)]=\"unidadOrganizacionalDTO.piso\"\n                        maxlength=\"20\" />\n                    <label for=\"descripcion\">{{'piso' | translate}}</label>\n                </span>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n                (click)=\"guardar()\" label=\"{{'link_actualizar' | translate}}\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" (click)=\"eliminar()\"\n                label=\"{{'link_eliminar' | translate}}\"\n                *ngIf=\"unidadOrganizacionalDTO.unidad != null && operacion ==  'M'\">\n            </button>\n        </div>\n    </div>\n</p-dialog>","\nimport { UnionModel } from 'general-library-union'\n\nexport class PerfilFuncionModel extends UnionModel {\n\t\n\tobjetivo: string;\n\trelinterna: string;\n\trelexterna: string;\n\tareas: string;\n\texpexterna: string;\n\texpinterna: string;\n\tforexpecifica: string;\n\tforrelacionad: string;\n\tconocimineto: string;\n\tproyeccion: string;\n\tcapacitacion: string;\n\tcondicion: string;\n\tadicionales: string;\n\ttexto1: string;\n\ttexto2: string;\n\ttexto3: string;\n\ttexto4: string;\n\tcargoAntes: string;\n\tunidadAntes: string;\n\tnombreUnidadAntes: string;\n\tempresaAntes: number;\n\tcambio: Date;\n\tplanSucesion: string;\n\tdescripcionPlanSucesion: string;\n\t puestoTrabajo: string;\n\tcontrato: number;\n\testado: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tempresa: number;\n\tunidad: string;\n\tnombreUnidad: string;\n\tcargo: string;\n\tnombreCargo: string;\n\tnombreContrato: string;\n\tcedula: number;\n\torigen: string;\n\tmensaje: string;\n\ttipo: string;\n\tunidadPerfil: string; \n\tnombreUnidadPerfil: string;\n\tnumeroPuesto: number;\n\talias: string;\n\t\n\t}\n","\nimport { UnionModel } from 'general-library-union'\n\nexport class UnidadCargoModel  extends UnionModel{\n\n\n\tempresa: number;\n\tunidad: string;\n\tcargo: string;\n\tperfilFuncion: string;\n\tnombreCargo: string;\n\tnombreUnidad: string;\n\tcantidadDisponibles: number;\n\tcantidadOcupados: number;\n\tcantidadBloqueados: number;\n\tnivelCargo: string;\n\tempresaNombre: string;\n\tnombreCargoJefe: string;\n\tnivelCargoJefe: string;\n\tcargoJefe: string;\n\tnombreEmpresaJefe: string;\n\tnombreOcupaJefe: string;\n\tcedulaOcupaJefe: number;\n\tnombreUnidadJefe: string;\n\tUnidadJefe: string;\n\tcategoriaCargo: string;\n\tdescripcionCategoriaCargo: string;\n\tclasificacionCargo: string;\n\tnombreClasificacionCargo: string;\n\tsiPlanSucesion: string;\n\tcantidadCargo: number;\n\tnombreJefe: string;\n\n\t//campos para vista departamentouni\n\tempresaDepartamento: number;\n\tcodigoDepartamento: string;\n\tsedeDepartamento: string;\n\tdescripcionDepartamento: string;\n\trelacionDepartamento: string;\n\tcodigoFacultad: string;\n\tnombreFacultad: string;\n\tsucursalFacultad: string;\n\tnombreSucursal: string;\n\n\t//CAMPOS ADICIONADOS PARA MANEJAR LA VISTA v_unidadusuario.\n\tusuario: string;\n\tsucursal: string;\n\n\t//CAMPO ADICIONADO PARA TRAER UNIDADES LAS CUALES TIENEN PERMISO\n\tusuarioRol: string;\n\tusuarioLogin: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class NovedadPerfilModel extends UnionModel {\n\n\t\n\tllave: string;\n\tperfilfuncion: string;\n\ttabla: string;\n\tcampo: string;\n\tdato: string;\n\testado: string;\n\taplicadopor: string;\n\tdatoAntiguo: string;\n\tnombrecargo: string;\n\tnombreunidad: string;\n\tdescampo: string;\n\tunidad: string;\n\tcargo: string;\n}","import { UnionModel } from \"general-library-union\";\n\nexport class OrdenarModel extends UnionModel{\n\n    camposOrden: String;\n\n}\n","import { OrdenarModel } from \"../../sarageneral/models/OrdenarModel\";\n\nexport class DimensionCargoModel extends OrdenarModel{\n\n\tempresa: number;\n\tcargo: string;\n\tdimension: string;\n\ttipoDimension: string;\n\ttipoDimensionNombre: string;\n\tperfilfuncion: string;\n\tpeso: number;\n\tpuntajemaximo: number;\n\tpuntajeespera: number;\n\tnivelreferencia: string;\n\tdescripcionnivel: string;\n\tdescripcionDimension: string;\n\tprocesoSeleccion: string;\n\torden: number;\n\tnombreEmpresa: string;\n\tnombreCargo: string;\n\torigen: string;\n\tnivelCargo: string;\n\tclasificacion: string;\n\tdescripcionNivelCargo: string;\n\tdescripcionClasificacion: string;\n\tcategoria: string;\n\tdescripcionCategoria: string;\n\torganizacion: number;\n\tesperadoReglilla: number;\n\tdescripcionEsperadoReglilla: string;\n\tmetaFaseGestion: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class DimensionModel extends UnionModel {\n\t\n\t\n\tdimension: string;\n\tdescripcion: string;\n\ttipodimension: string;\n\ttema: string;\n\ttipocalifica: string;\n\tdescripcionTipoDimension: string;\n\tplanMejora: string;\n\tcomportamiento: string;\n\tconsultaProcesoSeleccion: string;\n\tperfilCargo: string;\n\tcomodinBusqueda: string;\n\t\n\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class DimensionFactorModel extends UnionModel{\n\n\t\n\tllave: string;\n\ttipo: string;\n\tdescripcion: string;\n\tdimension: string;\n\tfactor: number;\n\tnombreFactor: string;\n\tdependenivel: string;\n\tfactordimension: string;\n\tdescripcionFactor: string;\n\ttema: string;\n\tnombreDimension: string;\n\torden: number;\n\tpeso: number;\n\tcomodin: string;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class CaracteristicaModel extends UnionModel{\n\n\tllave: string;\n\tdescripcion: string;\n\ttipo: string;\n\torden: number;\n\tincluido: boolean;\n\tseleccion: string;\n\torigen: string;\n\testado: string;\n\tobligatorio: string;\n\ttipoNovedad: string;\n\tlongitud: number;\n\tdecimales: number;\n\tmodoParametro: string;\n\tparametroBusqueda: string;\n\testilo: string;\n\taccion: string;\n\texterno: string;\n\tfiltro: string;\n\tdescripcionIdioma: string;\n\tidioma: string;\n\n\tdescripcionPopup: string;\n\tvalorPopup: string;\n\n    \n}","import { UnionModel } from 'general-library-union'\n\nexport class TablaCaracteristicaModel extends UnionModel {\n\n\t\n\t\n\t             \n\tllave: string;\n\ttipo: string;\n\tcadena: string;\n\tnumero: number;\n\tfecha: Date; \n\tcaracteristica: string;\n\trequerimiento: string;\n\tarea: string; \n\tperfilFuncion: string;\n\tnovedad: string;\n\ttabla: string;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class ValorCalificaModel extends UnionModel {\n\n\tllaveTipoCalifica: string;\n\tllaveValor: string;\n\tdescripcion: string;\n\tpuntaje: number;\n\tpuntajeMaximo: number;\n\torden: number;\n\tetiqueta: string;\n\tllaveFactor: number;\n\tdescripcionFactor: string;\n\ttipoEntrada: string;\n\torigen: string;\n\ttipo: string;\n\tdepende: string;\n\tcolor: string;\n\tnivelCargo: string;\n\t\n\t}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralService, UtilsService } from \"general-library-union\";\nimport { DimensionCargoModel } from '../models/DimensionCargoModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DimensionCargoService {\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilService: UtilsService, private GeneralSvc: GeneralService, private utilsService : UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  consultarDimensionCargoEvaluaciones(dimensionCargoDTO: DimensionCargoModel): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/dimensioncargo/consultarDimensionCargoEvaluaciones`, dimensionCargoDTO).pipe(\n      catchError(this.handleError)\n    );\n  }\n  cantidadDimensionCargoEvaluaciones(dimensionCargoDTO: DimensionCargoModel): Observable<number> {\n    return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/dimensioncargo/cantidadDimensionCargoEvaluaciones`, dimensionCargoDTO).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { DatoorganizacionModel } from '../models/DatoorganizacionModel';\nimport { PerfilFuncionModel } from '../models/PerfilFuncionModel';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PerfilFuncionService {\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService : UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\nprivate handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  buscarPerfilDatoEmpresa(empresa) : Observable<string>{\n    return this.httpClient.post<string>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/buscarPerfilDatoEmpresa`, empresa).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  obtenerperfil(datoorganizacion: DatoorganizacionModel): Observable<any[]>{\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/obtenerperfil`, datoorganizacion).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  consultaListaDescripcionCargo(perfil: any): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/consultaListaDescripcionCargo`, perfil).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cantidadListaDescripcionCargo(perfil: any): Observable<number> {\n    return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/cantidadListaDescripcionCargo`, perfil).pipe(\n      catchError(this.handleError)\n    );\n  }\n  crearPerfilFuncion(perfilFormulario: PerfilFuncionModel, llaveOrganizacion: string): Observable<PerfilFuncionModel> {\n    let formData = new FormData();\n        formData.append(\"perfilFormulario\", JSON.stringify(perfilFormulario));\n        formData.append(\"llaveOrganizacion\", llaveOrganizacion);\n    return this.httpClient.post<PerfilFuncionModel>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/crearPerfilFuncion`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  actualizarFechaUltimoCambio(perfil: string): Observable<number>{\n    return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/actualizarFechaUltimoCambio`, perfil).pipe(\n        catchError(this.handleError)\n      );\n  }\n  obtenercampotablas(datoorganizacionDTO: any): Observable<any[]>{\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/obtenercampotablas`, datoorganizacionDTO).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  cargarPerfil(cargo: string, unidad: string,empresa: number, puestoTrabajo: string,clasificacion: string): Observable<PerfilFuncionModel> {\n    let formData = new FormData();\n        formData.append('cargo',cargo);\n        formData.append('unidad',unidad);\n        formData.append('empresa',empresa.toString());\n        formData.append('puestoTrabajo',puestoTrabajo);\n        formData.append('clasificacion',clasificacion);\n    return this.httpClient.post<PerfilFuncionModel>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/cargarPerfil`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerLlavePerfil(cargo: string, unidad: string,empresa: number,contrato: number,llavePuesto: string,clasificacion: string): Observable<string> {\n    let formData = new FormData();\n        formData.append('cargo',cargo);\n        formData.append('unidad',unidad);\n        formData.append('empresa',empresa.toString());\n        formData.append('contrato',contrato.toString());\n        formData.append('llavePuesto',llavePuesto);\n        formData.append('clasificacion',clasificacion);\n    return this.httpClient.post<string>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/cargarPerfil`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  traerPerfil(cargo : string, unidad : string, empresa : number, llavePuesto : string, clasificacion : string): Observable<PerfilFuncionModel> {\n    let formData = new FormData();\n      formData.append('cargo',cargo);\n      formData.append('unidad',unidad);\n      formData.append('empresa',empresa.toString());\n      formData.append('llavePuesto',llavePuesto);\n      formData.append('clasificacion',clasificacion);\n    return this.httpClient.post<PerfilFuncionModel>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilFuncion/traerPerfil`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralService, UtilsService } from \"general-library-union\";\nimport { DimensionCargoModel } from '../models/DimensionCargoModel';\nimport { DatoorganizacionModel } from '../models/DatoorganizacionModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CompetenciasService {\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilService: UtilsService, private GeneralSvc: GeneralService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarFormularioCaracteristicas(dimensionDTO: DimensionCargoModel): Observable<any[]> {\n    let form = new FormData()\n    form.append('dimensionDTO',JSON.stringify(dimensionDTO))\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/competencias/cargarFormularioCaracteristicas`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n  validarCompetencias(dimensionDTO: DimensionCargoModel,listadatotabla: DatoorganizacionModel[]): Observable<boolean> {\n    let form = new FormData()\n    form.append('dimensionDTO',JSON.stringify(dimensionDTO));\n    form.append('listadatotabla',JSON.stringify(listadatotabla))\n    return this.httpClient.post<boolean>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/competencias/validarCompetencias`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\nimport { Constantes } from \"../../../shared/constantes/Constantes\";\n\n@Pipe({\n    name: 'popupsDinamicosPipe'\n})\n@Injectable({\n    providedIn: 'root'\n})\nexport class TablaCaracteristicaPipe implements PipeTransform {\n\n\tTEXTO = \"T\";\n\tNUMERO = Constantes.CONSTANTE_NO;\n\tFECHA = \"F\";\n\tTITULO = \"I\";\n\tLISTA = \"l\";\n\tALTERNATIVA = \"R\";\n\tAREA = \"A\";\n\n\tTIPODESCRIPCIONCARGO = \"DESCRIPCIONCARGO\";\n\tTIPOREQUERIMIENTO = \"REQUERIMIENTO\";\n\tTIPOSOLICITUD = \"SOLICITUD\";\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        return result;\n    }\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { UnidadCargoModel } from '../../../models/UnidadCargoModel';\nimport { DimensionCargoModel } from '../../../models/DimensionCargoModel';\nimport { DimensionModel } from '../../../models/DimensionModel';\nimport { AuthService, CampoFormularioCons, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { DimensionFactorModel } from '../../../models/DimensionFactorModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { CaracteristicaModel } from '../../../../hojavida/models/CaracteristicaModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { DimensionCargoService } from '../../../services/dimension-cargo.service';\nimport { TablaCaracteristicaModel } from '../../../models/TablaCaracteristicaModel';\nimport { PerfilFuncionService } from '../../../services/perfil-funcion.service';\nimport { ValorCalificaModel } from '../../../models/ValorCalificaModel';\nimport { CompetenciasService } from '../../../services/competencias.service';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { TablaCaracteristicaPipe } from '../../../pipes/tabla-caracteristica.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, DecimalPipe, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\n\n@Component({\n    selector: 'app-competencias',\n    templateUrl: './competencias.component.html',\n    styleUrls: ['./competencias.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, NgIf, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgFor, Ripple, FormsModule, InputTextModule, DropdownModule, DecimalPipe, DatePipe, TranslateModule, FormulariodinamicoComponent]\n})\nexport class CompetenciasComponent implements OnInit {\n  procesoAutorizacionBPM: boolean;\n  perfilfuncionDTO: PerfilFuncionModel;\n  unidadCargoDTO: UnidadCargoModel;\n  listadedimension: DimensionCargoModel[] = [];\n  deshabilitar: boolean;\n  listaitemdimension: any[];\n  listaitemreferencia: any[];\n  listaItemEsperadoReglilla: any[];\n  esperadoReglilla: boolean;\n  listadatotabla: DatoorganizacionModel[]= [];\n  listaCampos: DatoorganizacionModel[] = [];\n  ordenCampos: any;\n  carpetaTitulo: string;\n\tplanta: boolean;\n\trequerimiento: boolean;\n\tdescripcionCargo: boolean;\n\tfiltroCompExt: DimensionCargoModel;\n\tcompetenciasExternas: DimensionCargoModel[] = [];\n\tpaginator = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t  };\n\tcontroles: Map<string, boolean>;\n\tnuevo: boolean;\n\tinsertar: boolean;\n\tcompetencia: boolean;\n\tdimensionDTO: DimensionCargoModel;\n\tmantenimiento: boolean;\n\tformularioData: any[];\n\tlistaCamposFormulario: any[];\n\t@ViewChild('formulario') formularioDinamico: FormulariodinamicoComponent;\n\tcargando: boolean;\n\tvalidando: boolean;\n\tlistadatotablaAdicional: any[] = [];\n\n  constructor(private generalService: GeneralService,private listaConstantesPipe: ListaConstantesPipe, private authService: AuthService,private dimensionCargoSvc : DimensionCargoService,private controlFuncionService: CargarControlFuncionalidadService,private generalPipe: GeneralPipe,\n\tprivate perfilSvc: PerfilFuncionService, private competenciasSvc: CompetenciasService, private datoOrganizacionpipe: DatoOrganizacionPipe, public utilsService: UtilsService, private tablaCaracteristicapipe: TablaCaracteristicaPipe, private notificationBusService: ToastService,\n\tprivate confirmationService: ConfirmationService, private popupsDinamicosPipe: PopupsDinamicosPipe) { }\n\n  ngOnInit(): void {\n\tthis.inicializarCompetencias();\n  }\n  async inicializarCompetencias(){\n\ttry {\n\t\tlet parametro = window.location.href;\n\t\tif (parametro.endsWith(\"plantaPersonal\")) {\n\t\t\tthis.planta = true;\n\t\t\tthis.requerimiento = false;\n\t\t\tthis.descripcionCargo = false;\n\t\t} else if (parametro.endsWith(\"requerimientoPersonalLista\")) {\n\t\t\tthis.planta = false;\n\t\t\tthis.descripcionCargo = false;\n\t\t\tthis.requerimiento = true;\n\t\t} else if (parametro.endsWith(\"DescripcionCargo\")) {\n\t\t\tthis.planta = false;\n\t\t\tthis.requerimiento = false;\n\t\t\tthis.descripcionCargo = true;\n\t\t}\n\t\tthis.funcionalidad();\n\t} catch (e) {\n\t\tconsole.log(e);\n\t}\n  }\n\n  async init(perfilFuncion: PerfilFuncionModel,unidadCargo: UnidadCargoModel,deshabilitar: boolean,procesoAutorizacionBPM: boolean){\n    try {\n      this.procesoAutorizacionBPM = procesoAutorizacionBPM;\n\t\t\tthis.perfilfuncionDTO = perfilFuncion;\n\t\t\tthis.unidadCargoDTO= unidadCargo;\n\t\t\tthis.listadedimension = [];\n\t\t\tthis.deshabilitar=deshabilitar;\n      this.cargarListados();\n\t  this.cargarCompetencias();\n\t  this.filtroCompExt= new DimensionCargoModel();\n\t  this.competenciasExternas= [];\n\t  await this.load();\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  \n\n  private funcionalidad() {\n\tthis.controles = new Map<string, boolean>();\n    if (this.planta || this.descripcionCargo) {\n      this.controles.set(\"modificar\", this.verificarControl('descar:modifica') != null ? true : false);\n    } else if (this.requerimiento) {\n      this.controles.set(\"modificar\", this.verificarControl('reqper:modifica') != null ? true : false);\n    }\n}\n\n  public colocarFiltro(){\n\tthis.filtroCompExt.origen = (\"C\");\n\tthis.filtroCompExt.empresa =(this.unidadCargoDTO.empresa);\n\tthis.filtroCompExt.cargo =(this.unidadCargoDTO.cargo);\n\tthis.filtroCompExt.clasificacion =(this.unidadCargoDTO.clasificacionCargo);\n\tthis.filtroCompExt.categoria =(this.unidadCargoDTO.categoriaCargo);\n\tthis.filtroCompExt.nivelCargo = (this.unidadCargoDTO.nivelCargo);\n}\n\n  public async load(event?) {\n\tthis.filtroCompExt.paginacionRegistroInicial = event?.first != null ? event?.first : 0;\n\tthis.filtroCompExt.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10;\n\ttry {\n\t\tthis.colocarFiltro();\n\t\tthis.paginator.totalRecords = await this.dimensionCargoSvc.cantidadDimensionCargoEvaluaciones(this.filtroCompExt).toPromise();\n\t\tthis.competenciasExternas = await this.dimensionCargoSvc.consultarDimensionCargoEvaluaciones(this.filtroCompExt).toPromise();\n\t} catch (e) {\n\t\tconsole.log(e);\n\t}\n}\n\n \n\n  private async cargarListados() {\n\t\tthis.listaitemdimension = [];\n\t\tthis.listaitemreferencia = [];\n\t\tthis.listaitemdimension = (await this.generalService.queryForList(new GeneralModel('DimensionDTO',null,false,new DimensionModel())).toPromise()).map((dimen) => ({key: dimen.dimension, label: dimen.descripcionTipoDimension + \" - \" + dimen.descripcion }));\n    \tlet dimension : DimensionFactorModel = new DimensionFactorModel();\n\t\tdimension.tipo = Constantes.CONSTANTE_NO;\n\t\tthis.listaitemreferencia = (await this.generalService.queryForList(new GeneralModel('DimensionFactorDTO',null,false,dimension)).toPromise()).map((dim) => ({key: dim.llave,label: dim.descripcion}));\n    \tthis.listaItemEsperadoReglilla= [];\n\t}\n\n\tprivate async cargarCompetencias() {\n\t\ttry {\n\t\t\tthis.esperadoReglilla = false;\n\t\t\tconst dato = {\n\t\t\t\torganizacion: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n\t\t\t\ttipo: \"DE\",\n\t\t\t\testado: Constantes.CONSTANTE_SI,\n\t\t\t\ttabla: \"COMPETENCIA\"\n\t\t\t};\n\t\n\t\t\tthis.listadatotabla = await this.perfilSvc.obtenercampotablas(dato).toPromise();\n\t\t\tthis.listaCampos = [];\n\t\t\tthis.ordenCampos = [];\n\t\t\tconst quitar: DatoorganizacionModel[] = [];\n\t\n\t\t\tconst caracteristicasPromises = this.listadatotabla.map(async (datos) => {\n\t\t\t\tif (\"C\" === datos.operador) {\n\t\t\t\t\tconst caracteristica = new CaracteristicaModel();\n\t\t\t\t\tcaracteristica.llave = datos.campo;\n\t\t\t\t\tconst result = await this.generalService.queryForObject(\n\t\t\t\t\t\tnew GeneralModel('CaracteristicaDTO', null, false, caracteristica)\n\t\t\t\t\t).toPromise();\n\t\t\t\t\tdatos.descripcion = result?.descripcion;\n\t\t\t\t}\n\t\t\t\treturn datos;\n\t\t\t});\n\t\n\t\t\tthis.listadatotabla = await Promise.all(caracteristicasPromises);\n\t\n\t\t\t// Filtrar y procesar datos\n\t\t\tthis.listadatotabla = this.listadatotabla.filter((datos) => {\n\t\t\t\tif (datos.campo === this.listaConstantesPipe.VACIO) {\n\t\t\t\t\tthis.carpetaTitulo = datos.corto;\n\t\t\t\t\tquitar.push(datos);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\n\t\t\t\tif (datos.orden != null && \"C\" !== datos.operador) {\n\t\t\t\t\t// this.ordenCampos.push(new OrdenCampo(datos.getOrden(), datos.getCampo(), null));\n\t\t\t\t}\n\t\n\t\t\t\treturn true;\n\t\t\t});\n\t\n\t\t\t// Filtrar los campos válidos\n\t\t\tthis.listaCampos = this.listadatotabla.filter(dat => \n\t\t\t\t\"C\" !== dat.operador && dat.campo !== this.listaConstantesPipe.VACIO\n\t\t\t);\n\t\n\t\t\tthis.listaRegistro();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n  public async listaRegistro() {\n\t\ttry {\n\t\t\tthis.cargando= true\n\t\t\tthis.listadedimension = [];\n\t\t\tlet dimension: DimensionCargoModel = new DimensionCargoModel();\n\t\t\tdimension.perfilfuncion = this.perfilfuncionDTO.llaveTabla;\n\t\t\tthis.listadedimension = await this.generalService.queryForList(new GeneralModel('DimensionCargoDTO',null,false,dimension)).toPromise();\n\t\t\tthis.cargarListaAdicional();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\tasync cargarListaAdicional() {\n\t\ttry {\n\t\t\tconst nuevasFilas = await Promise.all(\n\t\t\t\tthis.listadedimension.map(async (fila) => {\n\t\t\t\t\tconst objetoFila = await Promise.all(\n\t\t\t\t\t\tthis.listadatotabla.map(async (columna) => ({\n\t\t\t\t\t\t\tfila: fila.dimension,\n\t\t\t\t\t\t\tcodigo: await this.celda(columna, fila),\n\t\t\t\t\t\t}))\n\t\t\t\t\t);\n\t\t\t\t\treturn { objetoFila };\n\t\t\t\t})\n\t\t\t);\n\t\t\tthis.listadatotablaAdicional.push(...nuevasFilas);\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t\tthis.cargando = false;\n\t}\n\n\tpublic async celda(columna: DatoorganizacionModel, fila: any): Promise<any> {\n\t\ttry {\n\t\t\tlet dimension: DimensionCargoModel = fila;\n\t\t\tif ((\"C\") == (columna.operador)) {\n\t\t\t\tlet tablaCaracteristicaDTO: TablaCaracteristicaModel = new TablaCaracteristicaModel();\n\t\t\t\ttablaCaracteristicaDTO.caracteristica = (columna.campo);\n\t\t\t\ttablaCaracteristicaDTO.perfilFuncion = (dimension.llaveTabla);\n\t\t\t\ttablaCaracteristicaDTO = await this.generalService.queryForObject(new GeneralModel('TablaCaracteristicaDTO', null, false, tablaCaracteristicaDTO)).toPromise()\n\t\t\t\tif (tablaCaracteristicaDTO == null) {\n\t\t\t\t\treturn null;\n\t\t\t\t} else {\n\t\t\t\t\tif ((\"T\") == (tablaCaracteristicaDTO.tipo)) {\n\t\t\t\t\t\treturn tablaCaracteristicaDTO.cadena;\n\t\t\t\t\t}\n\t\t\t\t\tif ((\"N\") == (tablaCaracteristicaDTO.tipo)) {\n\t\t\t\t\t\treturn tablaCaracteristicaDTO.numero;\n\t\t\t\t\t}\n\t\t\t\t\tif ((\"F\") == (tablaCaracteristicaDTO.tipo)) {\n\t\t\t\t\t\treturn tablaCaracteristicaDTO.fecha;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\treturn null\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\treturn dimension[columna.campo];\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\t  public tipoDato(data: any): string {\n\t\tif (!isNaN(Number(data))) {\n\t\t  return 'N';\n\t\t}\n\t\tconst date = new Date(data);\n\t\tif (!isNaN(date.getTime())) {\n\t\t  return 'F';\n\t\t}\n\t\treturn 'T';\n\t  }\n\n\t  public nuevoRegistro() {\n\t\ttry {\n\t\t\tthis.nuevo = true;\n\t\t\tthis.insertar = true;\n\t\t\tthis.competencia = true;\n\t\t\tthis.dimensionDTO = new DimensionCargoModel();\n\t\t\tthis.cargarCompetencias();\n\t\t\tthis.cargarFormularioCaracteristicas();\n\t\t\tthis.cargarValorCalifica(\"\");\n\t\t\tthis.mantenimiento = true;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\t// private async validar(): Promise<boolean> {\n\t// \tthis.validando = true\n\t// \tlet validador = true;\n\t// \ttry {\n\t// \t\tvalidador = await this.competenciasSvc.validarCompetencias(this.dimensionDTO, this.listadatotabla).toPromise();\n\t// \t} catch (e) {\n\t// \t\tconsole.log(e);\n\t// \t}\n\t// \treturn validador;\n\t// }\n\n\tprivate validar(): boolean {\n\t\tthis.validando = true\n\t\tlet validador = true;\n\t\tlet posicion = 0;\n\t\ttry {\n\t\t\tconst metodos = Object.getOwnPropertyNames(this.dimensionDTO);\n\t\t\tfor (const datoOrganizacion of this.listadatotabla) {\n\t\t\t\tif (datoOrganizacion.requerido === Constantes.CONSTANTE_SI) {\n\t\t\t\t\tconst campo = this.datoOrganizacionpipe.MAPACAMPOSCOMPETENCIAS[datoOrganizacion.campo] || datoOrganizacion.campo;\n\t\t\t\tfor (const metodo of metodos) {\n\t\t\t\t\t\tif (metodo.toUpperCase() !== campo.toUpperCase()) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tconst valor = this.dimensionDTO[metodo];\n\t\t\t\t\t\tif (!valor || valor.toString().trim() === \"\") {\n\t\t\t\t\t\t\t//Validador.adicionarMensajeAce(`competencia_form:tablaCampos:${posicion}:campos`, \"Obligatorio\");\n\t\t\t\t\t\t\tvalidador = false;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tposicion++;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tposicion++;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t\treturn validador;\n\t}\n\n\tpublic async guardar(): Promise<string> {\n\t\ttry {\n\t\t\tif (!await this.validar() || !this.formularioDinamico.validar()){\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tthis.validando = false;\n\t\t\tif(this.esperadoReglilla){\n\t\t\t\tthis.dimensionDTO.puntajeespera = (this.dimensionDTO.esperadoReglilla);\n\t\t\t}\n\t\t\tif (this.insertar) {\n\t\t\t\tthis.dimensionDTO.llaveTabla = (this.utilsService.generarLlave());\n\t\t\t\tthis.dimensionDTO.perfilfuncion = (this.perfilfuncionDTO.llaveTabla);\n\t\t\t\tthis.dimensionDTO = await this.generalService.crearRegistro(new GeneralModel('DimensionCargoDTO',null,false,this.dimensionDTO)).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(\"Se guardo exitosamente el registro\");\n\t\t\t} else {\n\t\t\t\tthis.dimensionDTO.perfilfuncion = (this.perfilfuncionDTO.llaveTabla);\n\t\t\t\tawait this.generalService.update(new GeneralModel('DimensionCargoDTO',null,false,this.dimensionDTO)).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(\"Se Actualizo exitosamente el registro\");\n\t\t\t}\n\t\t\tthis.validando = false;\n\t\t\tthis.perfilSvc.actualizarFechaUltimoCambio(this.perfilfuncionDTO.llaveTabla);\n\t\t\tthis.guardarCaracteristicas();\n\t\t\tthis.listaRegistro();\n\t\t\tthis.nuevo = false;\n\t\t\tthis.dimensionDTO = new DimensionCargoModel();\n\t\t\tthis.competencia = false;\n\t\t\tthis.mantenimiento = false;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate guardarCaracteristicas(){\n\t\ttry{\n\t\t\tthis.generalService.update(new GeneralModel('DimensionCargoDTO',null,false,this.dimensionDTO)).toPromise();\n\t\t\tlet lista = this.formularioDinamico.getCamposCaracteristica();\n\t\t\tfor (const campo of lista) {\n\t\t\t\tthis.guardarUnaCaracteristica(campo, this.dimensionDTO.perfilfuncion, this.datoOrganizacionpipe.COMPETENCIA);\n\t\t\t}\n\t\t\treturn;\n\t\t}catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn;\n\t}\n\n\n\tprivate async guardarUnaCaracteristica(caracteristica: CampoFormularioModel,llavePerfil: string,tabla: string) : Promise<void> {\n\t\t// TablaCaracteristicaDTO \n\t\tlet cara: TablaCaracteristicaModel= new TablaCaracteristicaModel();\n\t\tlet nuevo = true;\n\t\tlet vacio = true;\n\t\tif (caracteristica.dato != null) {\n\t\t\tcara =  caracteristica.dato;\n\t\t\tnuevo = false;\n\t\t}\n\t\tif (caracteristica.valor == null || caracteristica.valor == Constantes.ESPACIO_NULO) {\n\t\t\tvacio = false;\n\t\t}\n\t\tcara.caracteristica = (caracteristica.campo);\n\t\tcara.perfilFuncion = (this.dimensionDTO.llaveTabla);\n\t\tcara.tabla = (tabla);\n\n\t\tif (caracteristica.tipo == (CampoFormularioCons.LOGICO) || caracteristica.tipo == (CampoFormularioCons.TEXTO)\n\t\t\t\t|| caracteristica.tipo == (CampoFormularioCons.COMBO) || caracteristica.tipo == (CampoFormularioCons.RADIO)\n\t\t\t\t|| caracteristica.tipo == (CampoFormularioCons.POPUP)) {\n\t\t\tcara.cadena = (caracteristica.valor);\n\t\t\tcara.tipo = (this.tablaCaracteristicapipe.TEXTO);\n\t\t}\n\t\tif (caracteristica.tipo == (CampoFormularioCons.FECHA)) {\n\t\t\tcara.fecha = (new Date(caracteristica.valor));\n\t\t\tcara.tipo =(this.tablaCaracteristicapipe.FECHA);\n\t\t}\n\t\tif (caracteristica.tipo == (CampoFormularioCons.TEXTOAREA)) {\n\t\t\tcara.area =(caracteristica.valor);\n\t\t\tcara.tipo = (this.tablaCaracteristicapipe.AREA);\n\t\t}\n\t\tif (caracteristica.tipo == (CampoFormularioCons.NUMERO) || caracteristica.tipo == (CampoFormularioCons.DECIMAL)) {\n\t\t\tif (caracteristica.valor == null || caracteristica.valor.toString() == (Constantes.ESPACIO_NULO)) {\n\t\t\t\tcara.numero = (null);\n\t\t\t} else {\n\t\t\t\tcara.numero = (parseInt(caracteristica.valor));\n\t\t\t}\n\t\t\tcara.tipo =(this.tablaCaracteristicapipe.NUMERO);\n\t\t}\n\t\tif (nuevo) {\n\t\t\tif (vacio) {\n\t\t\t\tcara.llave = (this.utilsService.generarLlave());\n\t\t\t\tcara = await this.generalService.crearRegistro(new GeneralModel('TablaCaracteristicaDTO',null,false,cara)).toPromise();\n\t\t\t}\n\t\t} else {\n\t\t\tawait this.generalService.update(new GeneralModel('TablaCaracteristicaDTO',null,false,cara)).toPromise();\n\t\t}\n\n\t}\n\n\n\tasync cargarFormularioCaracteristicas(){\n\t\tlet data = await this.competenciasSvc.cargarFormularioCaracteristicas(this.dimensionDTO).toPromise()\n\t\tthis.formularioData = data['formulario'];\n\t\tthis.listaCamposFormulario = data['listaCampos'];\n\t}\n\n\tasync setValorCampos() {\n\t\tthis.formularioData['grupos'][0]['campos']?.forEach(element => {\n\n\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\telement.valor = element.valor\n\t\t\t}\n\n\t\t\tif (element.tipo === 'F') {\n\n\t\t\t\telement.valor = element.valor ? new Date(element.valor) : null;\n\n\t\t\t} else if (element.tipo === 'H') {\n\n\t\t\t\tif (element.valor) {\n\n\t\t\t\t\tlet listaValortemp = [];\n\t\t\t\t\tlet valorRecorrer = element.valor.split(';');\n\t\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t\t\tlistaValortemp.push({ label: element2, value: element2 });\n\t\t\t\t\t});\n\n\t\t\t\t\telement.valor = listaValortemp\n\t\t\t\t}\n\n\t\t\t} else if (element.tipo === 'P') {\n\n\t\t\t\tlet isVisible = false;\n\n\t\t\t\tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\n\t\t\t\t\tif (element.popup == pop.id) {\n\t\t\t\t\t\telement.popupComponent = pop.popup;\n\t\t\t\t\t\telement['cargarValorPopup'] = (event) => { element.valor = event };\n\n\t\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t\t\treadonly: isVisible,\n\t\t\t\t\t\t\tshowDialog: false,\n\t\t\t\t\t\t\tlabel: element.valor,\n\t\t\t\t\t\t\tlabelInput: '',\n\t\t\t\t\t\t\t//smostrarX: true,\n\t\t\t\t\t\t\tonChange: (event) => element.cargarValorPopup(event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\t\telement.listaPopups.push(element.popup)\n\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic async cargarValorCalifica(dimension: string){\n\t\tthis.listaItemEsperadoReglilla = [];\n\t\ttry {\n\t\t\tif (dimension!= null) {\n\t\t\t\t//DimensionDTO\n\t\t\t\tlet dimensionDTO = new DimensionModel();\n\t\t\t\tdimensionDTO.dimension = (dimension);\n\t\t\t\tdimensionDTO = await this.generalService.queryForObject(new GeneralModel('DimensionDTO',null,false,dimensionDTO)).toPromise();\n\t\t\t\tif (dimensionDTO != null && dimensionDTO.tipocalifica != null) {\n\t\t\t\t\t//ValorCalificaDTO \n\t\t\t\t\tlet valorCalificaDTO = new ValorCalificaModel();\n\t\t\t\t\tvalorCalificaDTO.llaveTipoCalifica = (dimensionDTO.tipocalifica);\n\t\t\t\t\tlet  listadoValorCalifica: ValorCalificaModel[] = await this.generalService.queryForList(new GeneralModel('ValorCalificaDTO',null,false,valorCalificaDTO)).toPromise();\n\t\t\t\t\tfor (const itemValorCalifica of listadoValorCalifica) {\n\t\t\t\t\t\tthis.listaItemEsperadoReglilla.push({key:itemValorCalifica.puntaje, label:itemValorCalifica.llaveValor});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\tpublic async actualizar(event){\n\t\ttry {\n\t\t\tthis.dimensionDTO = event.data;\n\t\t\tthis.cargarValorCalifica(this.dimensionDTO.dimension);\n\t\t\tthis.cargarCompetencias();\n\t\t\tthis.cargarFormularioCaracteristicas();\n\t\t\tif(this.esperadoReglilla){\n\t\t\t\tthis.dimensionDTO.esperadoReglilla =(this.dimensionDTO.puntajeespera);\n\t\t\t}\n\t\t\tthis.insertar = false;\n\t\t\tthis.nuevo = true;\n\t\t\tthis.competencia = true;\n\t\t\t// FormularioDinamico formulario = FormularioDinamico.getFormulario();\n\t\t\tthis.mantenimiento = true;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn ;\n\t}\n\n\teliminar(event){\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: 'si',\n\t\t\taccept: () => {\n\t\t\t  this.setEliminar(true);\n\t\t\t},\n\t\t\treject: () => { }\n\t\t  });\n\t}\n\n\tpublic async setEliminar(confirmar: boolean) {\n\t\ttry {\n\t\t\tif (confirmar) {\n\t\t\t\tawait this.generalService.delete(new GeneralModel('DimensionCargoDTO',null,false,this.dimensionDTO)).toPromise();\n\t\t\t\tthis.dimensionDTO = new DimensionCargoModel();\n\t\t\t\tthis.nuevo = false;\n\t\t\t\tawait this.listaRegistro();\n\t\t\t\tawait this.perfilSvc.actualizarFechaUltimoCambio(this.perfilfuncionDTO.llaveTabla).toPromise();;\n\t\t\t\tthis.notificationBusService.showInfo(\"Se  elimino exitosamente el registro\");\n\t\t\t\tawait this.cancelar();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic cancelar() {\n\t\tthis.nuevo = false;\n\t\tthis.dimensionDTO = new DimensionCargoModel();\n\t\tthis.competencia = false;\n\t\tthis.mantenimiento = false;\n\t\treturn null;\n\t}\n\n\tpublic verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div id=\"listadoCompetenciasComponent\" *ngIf=\"!mantenimiento\">\n    <div class=\"flex justify-content-end align-items-center mb-3\"><button pButton label=\"{{'link_nuevo' | translate}}\"\n            (click)=\"nuevoRegistro()\" icon=\"pi pi-plus\"\n            class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button></div>\n    <p-table id=\"tablaCompetenciasExternas\" [value]=\"listadedimension\" [scrollable]=\"true\" scrollDirection=\"both\" [loading]=\"cargando\" [tableStyle]=\"{ 'min-width': '100rem' }\"\n        scrollDirection=\"horizontal\" responsiveLayout=\"scroll\" [paginator]=\"listadedimension.length > 10\"\n        scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n        [totalRecords]=\"listadedimension.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\"\n        [showCurrentPageReport]=\"true\" editMode=\"row\" (onRowSelect)=\"actualizar($event)\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\" dataKey=\"fila\">\n        <ng-template pTemplate=\"header\">\n            <tr >\n                <th style=\"min-width: 12.5%;\" *ngFor=\"let columna of listadatotabla\">\n                    {{columna.descripcion}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-fila let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr [pSelectableRow]=\"fila\">\n                <td style=\"min-width: 12.5%;\" *ngFor=\"let columna of listadatotablaAdicional[ri]?.objetoFila\">\n                    <span *ngIf=\"tipoDato(columna.codigo) == 'N'\">{{(columna.codigo | number)}}</span>\n                    <span *ngIf=\"tipoDato(columna.codigo) == 'F'\">{{columna.codigo | date:'dd/MM/yy'}}</span>\n                    <span *ngIf=\"tipoDato(columna.codigo) == 'T' || columna.codigo == null\">{{columna.codigo}}</span>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<div id=\"mantenimientoCompetencias\" *ngIf=\"mantenimiento\">\n    <div>\n        <div class=\"flex justify-content-between align-items-center mb-3\">\n            <h4 class=\"text-xl\">{{'mantenimiento'|translate}}  {{'competencias'|translate}}</h4>\n            <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n                (click)=\"cancelar()\" label=\"{{'link_regresar' | translate}} a {{'listado'| translate}}\">\n            </button>\n        </div>\n        <div class=\"p-fluid p-formgrid grid col-12\">\n            <div class=\"col-12 md:col-4 lg:col-4\" *ngFor=\"let campo of listaCampos\">\n                <span class=\"p-float-label\">\n                    <!-- EMPRESA -->\n                    <input pInputText [(ngModel)]=\"dimensionDTO.empresa\" maxlength=\"5\" size=\"5\"\n                    [class.ng-dirty]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.empresa) && validando) : false\"\n                    [class.ng-invalid]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.empresa) && validando) : false\"\n                    (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                        *ngIf=\"campo.campo === 'empresa'\" styleClass=\"valor_campo_estandar\">\n\n                    <!-- PESO -->\n                    <input pInputText [(ngModel)]=\"dimensionDTO.peso\" maxlength=\"22\" size=\"22\"\n                    [class.ng-dirty]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.peso) && validando) : false\"\n                    [class.ng-invalid]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.peso) && validando) : false\"\n                    (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                        *ngIf=\"campo.campo === 'peso'\" styleClass=\"valor_campo_estandar\">\n\n                    <!-- MAXIMO -->\n                    <input pInputText [(ngModel)]=\"dimensionDTO.puntajemaximo\" maxlength=\"22\" size=\"22\"\n                    [class.ng-dirty]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.puntajemaximo) && validando) : false\"\n                    [class.ng-invalid]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.puntajemaximo) && validando) : false\"\n                    (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                        *ngIf=\"campo.campo === 'puntajemaximo'\" \n                        styleClass=\"valor_campo_estandar\">\n\n                    <!-- ESPERADO REGLILLA -->\n                    <p-dropdown [options]=\"listaItemEsperadoReglilla\" [(ngModel)]=\"dimensionDTO.puntajeespera\" optionLabel=\"label\"\n                    optionValue=\"key\" [autoDisplayFirst]=\"false\" [class.ng-dirty]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.puntajeespera) && validando) : false\"\n                    [class.ng-invalid]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.puntajeespera) && validando) : false\"\n                        *ngIf=\"campo.campo === 'puntajeespera'\" styleClass=\"valor_campo_estandar\"></p-dropdown>\n\n                    <!-- REFERENCIA DESCRIPTORES -->\n                    <p-dropdown [options]=\"listaitemreferencia\" [(ngModel)]=\"dimensionDTO.nivelreferencia\"optionLabel=\"label\"\n                    optionValue=\"key\" [autoDisplayFirst]=\"false\" [class.ng-dirty]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.nivelreferencia) && validando) : false\"\n                    [class.ng-invalid]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.nivelreferencia) && validando) : false\"\n                        *ngIf=\"campo.campo === 'descripcionnivel'\" styleClass=\"valor_campo_estandar\"></p-dropdown>\n\n                    <!-- COMPETENCIA -->\n                    <p-dropdown [options]=\"listaitemdimension\" [(ngModel)]=\"dimensionDTO.dimension\" optionLabel=\"label\"\n                    optionValue=\"key\" [autoDisplayFirst]=\"false\" [class.ng-dirty]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.dimension) && validando) : false\"\n                    [class.ng-invalid]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.dimension) && validando) : false\"\n                        *ngIf=\"campo.campo === 'descripcionDimension'\" styleClass=\"valor_campo_estandar\"\n                        (onChange)=\"cargarValorCalifica(dimensionDTO.dimension)\"></p-dropdown>\n\n                    <!-- ORDEN -->\n                    <input pInputText [(ngModel)]=\"dimensionDTO.orden\" maxlength=\"5\" size=\"5\"\n                    [class.ng-dirty]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.orden) && validando) : false\"\n                    [class.ng-invalid]=\"campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(dimensionDTO.orden) && validando) : false\"\n                    (input)=\"utilsService.validarCampoNumerico($event)\" onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                        *ngIf=\"campo.campo === 'orden'\" styleClass=\"valor_campo_estandar\">\n                    <label for=\"origen\">{{campo.descripcion}} {{(campo.requerido == 'S' && campo.campo != null) ? '*' : '' }}</label>\n                </span>\n            </div>\n        </div>\n        @if(formularioData != null){\n            <formulario-dinamico #formulario [editable]=\"formularioData?.['editable']\" [objeto]=\"dimensionDTO\"\n            [campos]=\"formularioData?.['grupos'][0]?.['campos']\" [isMensaje]=\"false\"></formulario-dinamico>\n        }\n        <div class=\"flex justify-content-end align-items-center mb-3 mt-3\">\n            <!-- GUARDAR -->\n            <button class=\" p-button-raised ml-2\" *ngIf=\"controles.get('modificar') && !procesoAutorizacionBPM\" pButton\n                label=\"{{'link_guardar'| translate}}\" (click)=\"guardar()\"> <span class=\"glyphicons glyphicons-floppy-save\"\n                    aria-hidden=\"true\"></span></button>\n            <!-- ELIMINAR -->\n            <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n                *ngIf=\"!insertar && controles.get('modificar') && !procesoAutorizacionBPM\"\n                label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\"></button>\n        </div>\n    </div>\n\n\n\n</div>","import { OrdenarModel } from \"../../sarageneral/models/OrdenarModel\";\nimport { FuncionActividadModel } from \"./FuncionActividadModel\";\n\nexport class FuncionPuestraModel extends OrdenarModel {\n\t\n\t\n\tcargo: string;\n\tfuncion: string;\n\tperiodicidad: string;\n\tempresa: number;\n\tfuncionpuestra: string;\n\tperfilfuncion: string;\n\torden: number;\n\tindicador: string;\n\tmeta: string;\n\tfrecuencia: string;\n\tautonomia: string;\n\tdimension: string;\n\tdescripciondimension: string;\n\tfechainicial: Date;\n\tfechafinal: Date;\n\tforma: string;\n\testado: string;\n\tordenamiento: number;\n\tfechaHoy: Date;\n\tvigente: string;\n\tactividades: FuncionActividadModel[];\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { ErrorIntecertorService, GeneralModel, GeneralService, ParametrosGeneralModel, UtilsService } from \"general-library-union\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { PerfilFuncionModel } from '../models/PerfilFuncionModel';\nimport { FuncionPuestraModel } from '../models/FuncionPuestraModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FuncionPuestraService {\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService, private GeneralSvc: GeneralService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarCamposFunciones(listaitemdimension:any[], listaPrioridadItem: any[],listaitemfrecuencia: any[], listaitemautonomia: any[], llaveOrganizacion: string,perfilfuncionDTO: PerfilFuncionModel,funcionPuestraDTO: FuncionPuestraModel): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('listaitemdimension',JSON.stringify(listaitemdimension));\n    formData.append('listaPrioridadItem',JSON.stringify(listaPrioridadItem));\n    formData.append('listaitemfrecuencia',JSON.stringify(listaitemfrecuencia));\n    formData.append('listaitemautonomia',JSON.stringify(listaitemautonomia));\n    formData.append('perfilfuncionDTO',JSON.stringify(perfilfuncionDTO));\n    formData.append('llaveOrganizacion',llaveOrganizacion);\n    formData.append('funcionPuestraDTO',JSON.stringify(funcionPuestraDTO));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/funcionPuestra/cargarCamposFunciones`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerFunciones(perfilFuncion: PerfilFuncionModel): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('perfilFuncion',JSON.stringify(perfilFuncion));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/funcionPuestra/traerFunciones`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarFormularioCaracteristicas(perfilfuncionDTO: PerfilFuncionModel,funcionPuestraDTO:FuncionPuestraModel): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('perfilfuncionDTO',JSON.stringify(perfilfuncionDTO));\n    formData.append('funcionPuestraDTO',JSON.stringify(funcionPuestraDTO));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/funcionPuestra/cargarFormularioCaracteristicas`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { AuthService, CampoFormularioCons, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { DimensionModel } from '../../../models/DimensionModel';\nimport { FuncionActividadModel } from '../../../models/FuncionActividadModel';\nimport { FuncionPuestraModel } from '../../../models/FuncionPuestraModel';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { FuncionPuestraService } from '../../../services/funcion-puestra.service';\nimport { TablaCaracteristicaModel } from '../../../models/TablaCaracteristicaModel';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { PerfilFuncionService } from '../../../services/perfil-funcion.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { TablaCaracteristicaPipe } from '../../../pipes/tabla-caracteristica.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, DecimalPipe, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-funcion-puestra',\n    templateUrl: './funcion-puestra.component.html',\n    styleUrls: ['./funcion-puestra.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, NgIf, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgFor, Ripple, DecimalPipe, DatePipe, TranslateModule, FormulariodinamicoComponent]\n})\nexport class FuncionPuestraComponent implements OnInit {\n  procesoAutorizacionBPM: boolean;\n  planta: boolean;\n  requerimiento: boolean;\n  descripcionCargo: boolean;\n  controles: Map<string, boolean> = new Map<string, boolean>();\n  perfilfuncionDTO: PerfilFuncionModel;\n  deshabilitar: boolean;\n  listaitemdimension: any[];\n  listaitemfrecuencia: any[];\n  listaitemautonomia: any[];\n  cargarTablaFuncion: any[];\n  listaPrioridadItem: any[] = [];\n  funcionActividad: FuncionActividadModel;\n  listadatotabla: DatoorganizacionModel[] = [];\n  listadatotablaHijos: DatoorganizacionModel[] = [];\n  formulario: any;\n  camposTablaFuncion: any;\n  listadefuncion: FuncionPuestraModel[] = [];\n  listadefuncionvencidas: FuncionPuestraModel[] = [];\n  funcionpuestraDTO: FuncionPuestraModel = new FuncionPuestraModel();\n  nuevo: boolean;\n  funcion: boolean;\n  listaCampos: any;\n  @ViewChild('formulario') formularioDinamico: FormulariodinamicoComponent;\n  mantenimiento: boolean;\n  cargando: boolean;\n  listadatotablaAdicional: any[]= [];\n  listadatotablaAdicionalHistorico: any[]= [];\n  renderPrincipal: boolean;\n\n  constructor(private controlFuncionService: CargarControlFuncionalidadService, private generalService: GeneralService, private listaConstantes: ListaConstantesPipe, private funcionPuestraSvc: FuncionPuestraService, private authService: AuthService, private utilService: UtilsService,\n    private datoOrganizacionPipe: DatoOrganizacionPipe, private notificationBusService: ToastService, private perfilSvc: PerfilFuncionService, private tablaCaracteristicaPipe: TablaCaracteristicaPipe, private confirmationService: ConfirmationService) { }\n\n  ngOnInit(): void {\n  }\n\n\n  public async init(perfilfuncion: PerfilFuncionModel, deshabilitar: boolean, procesoAutorizacionBPM: boolean): Promise<void> {\n    try {\n      // getBean(SessionActivaBean.class).setUrlPopup(\"/webautoservicio/talento/popups/PopupFuncion.xhtml\");\n      this.procesoAutorizacionBPM = procesoAutorizacionBPM;\n      let parametro = window.location.href;\n      if (parametro.endsWith(\"plantaPersonal\")) {\n        this.planta = true;\n        this.requerimiento = false;\n        this.descripcionCargo = false;\n        this.renderPrincipal =  true;\n      } else if (parametro.endsWith(\"requerimientoPersonalLista\")) {\n        this.planta = false;\n        this.descripcionCargo = false;\n        this.requerimiento = true;\n        this.renderPrincipal =  true;\n      } else if (parametro.endsWith(\"DescripcionCargo\")) {\n        this.planta = false;\n        this.requerimiento = false;\n        this.descripcionCargo = true;\n        this.renderPrincipal =  true;\n      } else if (parametro.endsWith(\"listadoPersona\")) {\n        this.planta = false;\n        this.requerimiento = false;\n        this.descripcionCargo = true;\n        this.renderPrincipal =  true;\n      }\n      this.verificaControles();\n      this.perfilfuncionDTO = perfilfuncion;\n      this.deshabilitar = deshabilitar;\n      await this.cargarListados();\n      await this.cargarCamposFunciones();\n      await this.traerFunciones();\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  async traerFunciones() {\n    this.cargando = true;\n    let data = await this.funcionPuestraSvc.traerFunciones(this.perfilfuncionDTO).toPromise()\n    this.listadefuncion = data['listadefuncion'];\n    this.listadefuncionvencidas = data['listadefuncionvencidas'];\n    this.listadatotablaHijos = data['listadatotablaHijos'];\n    await this.cargarListaAdicional();\n    await this.cargarListaAdicionalHistorico();\n  }\n\n  public verificaControles(): void {\n    this.controles = new Map<string, boolean>();\n    if (this.planta || this.descripcionCargo) {\n      this.controles.set(\"modificar\", this.verificarControl('descar:modifica') != null ? true : false);\n    } else if (this.requerimiento) {\n      this.controles.set(\"modificar\", this.verificarControl('reqper:modifica') != null ? true : false);\n    }\n  }\n\n  private async cargarListados(): Promise<void> {\n    try {\n      this.listaitemdimension = [];\n      this.listaitemfrecuencia = [];\n      this.listaitemautonomia = [];\n      let listadim: DimensionModel[] = await this.generalService.queryForList(new GeneralModel('DimensionDTO', null, false, new DimensionModel())).toPromise();\n      for (const dimen of listadim) {\n        this.listaitemdimension.push({ key: dimen.dimension, label: dimen.descripcion });\n      }\n      this.listaConstantes.FRECUENCIA.forEach(element => {\n        this.listaitemfrecuencia.push({ key: element.codigo, label: element.nombre })\n      });\n      this.listaConstantes.AUTONOMIA.forEach(element => {\n        this.listaitemautonomia.push({ key: element.codigo, label: element.nombre })\n      });\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  private async cargarCamposFunciones(): Promise<void> {\n    try {\n      let data = await this.funcionPuestraSvc.cargarCamposFunciones(this.listaitemdimension, this.listaPrioridadItem, this.listaitemfrecuencia, this.listaitemautonomia, this.authService.getTokenKey('numeroEmpresa'), this.perfilfuncionDTO, this.funcionpuestraDTO).toPromise();\n      this.formulario = data['formulario'];\n      this.listaCampos = data['listaCampos'];\n      this.listadatotablaHijos = data['listadatotablaHijos'];\n      this.listadatotabla = data['listadatotabla'];\n      this.camposTablaFuncion = data['camposTablaFuncion'];\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  public celda(columna: DatoorganizacionModel, fila: any): any {\n    try {\n      let funcion: FuncionPuestraModel = fila;\n      if ((\"C\") == (columna.operador)) {\n        let tablaCaracteristicaDTO: TablaCaracteristicaModel = new TablaCaracteristicaModel();\n        tablaCaracteristicaDTO.caracteristica = (columna.campo);\n        tablaCaracteristicaDTO.perfilFuncion = (funcion.funcionpuestra);\n        this.generalService.queryForObject(new GeneralModel('TablaCaracteristicaDTO', null, false, tablaCaracteristicaDTO)).subscribe((data) => {\n          tablaCaracteristicaDTO = data;\n          if (tablaCaracteristicaDTO == null) {\n            return null;\n          } else {\n            if ((\"T\") == (tablaCaracteristicaDTO.tipo)) {\n              return tablaCaracteristicaDTO.cadena;\n            }\n            if ((\"N\") == (tablaCaracteristicaDTO.tipo)) {\n              return tablaCaracteristicaDTO.numero;\n            }\n            if ((\"F\") == (tablaCaracteristicaDTO.tipo)) {\n              return tablaCaracteristicaDTO.fecha;\n            }\n            else {\n              return null\n            }\n          }\n        }\n        );\n      } else {\n        return funcion[columna.campo];\n      }\n      // else {\n      // \tMethod method = funcionPuestraDTOClass.getDeclaredMethod(\"get\" + WordUtils.capitalize(columna.getCampo()),\tnull);\n      // \tObject value = method.invoke(funcion, null);\n      // \treturn value;\n      // }\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n  public async actualizavencida(ev): Promise<string> {\n    try {\n      this.funcionpuestraDTO = ev.data;\n      await this.cargarCamposFunciones();\n      this.listaPrioridadItem = [];\n      for (let i = 1; i <= this.listadefuncionvencidas.length; i++) {\n        this.listaPrioridadItem.push({ key: i, label: i.toString() });\n      }\n      // FormularioDinamico.getFormulario().modificar(funcionpuestraDTO, true);\n      this.nuevo = false;\n      this.funcion = true;\n      this.cargarListados();\n      await this.utilService.sleep(10);\n      this.mantenimiento = true;\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n  public tipoDato(data: any): string {\n    if (!isNaN(Number(data))) {\n      return 'N';\n    }\n    const date = new Date(data);\n    if (!isNaN(date.getTime())) {\n      return 'F';\n    }\n    return 'T';\n  }\n\n  regresar() {\n    this.mantenimiento = false;\n    this.nuevo = false;\n    this.funcionpuestraDTO = new FuncionPuestraModel();\n    this.funcion = false;\n    return null;\n  }\n\n  public nuevoRegistro() {\n    try {\n      this.nuevo = true;\n      this.funcion = true;\n      this.funcionpuestraDTO = new FuncionPuestraModel();\n      this.funcionpuestraDTO.actividades = ([]);\n      this.funcionpuestraDTO.funcionpuestra = (this.utilService.generarLlave());\n      this.listaPrioridadItem = [];\n      if (this.listadefuncion.length > 0) {\n        this.listaPrioridadItem.push({ key: 1, label: '1' });\n      } else {\n        for (let i = 1; i <= this.listadefuncion.length + 1; i++) {\n          this.listaPrioridadItem.push({ key: i, label: i.toString() });\n        }\n      }\n      this.cargarCamposFunciones();\n      // FormularioDinamico.getFormulario().modificar(funcionpuestraDTO, true);\n      this.cargarConsecutivoOrden();\n      this.cargarFormularioCaracteristicas();\n    } catch (e) {\n      console.log(e);\n    }\n    this.mantenimiento = true;\n    return null;\n  }\n\n  private async cargarConsecutivoOrden() {\n    // FuncionPuestraDTO \n    let funcion = new FuncionPuestraModel();\n    funcion.perfilfuncion = (this.perfilfuncionDTO.llaveTabla);\n    funcion.estado = (this.datoOrganizacionPipe.VIGENTE);\n    let orden = await this.generalService.cantidadRegistros(new GeneralModel('FuncionPuestraDTO', 'FuncionPuestra.ordenRegistrosFuncionPuestra', false, funcion)).toPromise();\n    orden = (orden != null) ? orden : 0;\n    // FormularioDinamico formulario = FormularioDinamico.getFormulario();\n    for (const campo of this.formulario['grupos'][0]['campos']) {\n      if (\"ordenamiento\" == (campo.campo)) {\n        campo.valor = (orden + 1);\n        return;\n      }\n    }\n  }\n\n  async actualizar(evento) {\n    try {\n      this.listaPrioridadItem = [];\n      this.funcionpuestraDTO = evento.data;\n      for (let i = 1; i <= this.listadefuncion.length; i++) {\n        this.listaPrioridadItem.push({ key: i, label: i.toString() });\n      }\n      await this.cargarCamposFunciones();\n      // FormularioDinamico.getFormulario().modificar(funcionpuestraDTO, (!isDeshabilitar() && !procesoAutorizacionBPM));\n      await this.cargarFormularioCaracteristicas();\n      this.nuevo = false;\n      this.funcion = true;\n      if (this.funcionpuestraDTO.actividades == null) {\n        this.funcionpuestraDTO.actividades = [];\n      }\n    } catch (e) {\n      console.log(e);\n    }\n    this.mantenimiento = true;\n    return null;\n  }\n\n  async guardar() {\n    try {\n      if (!this.formularioDinamico.validar())\n        return null;\n\n      this.funcionpuestraDTO = this.formularioDinamico.getObjecto();\n      if (this.nuevo) {\n        //\t\t\t\tthis.funcionpuestraDTO.setFuncionpuestra(GeneradorUUID.generarLlave());\n        this.funcionpuestraDTO.perfilfuncion = (this.perfilfuncionDTO.llaveTabla);\n        this.funcionpuestraDTO.estado = (this.datoOrganizacionPipe.VIGENTE);\n        let lista: FuncionActividadModel[] = this.funcionpuestraDTO.actividades;\n        this.funcionpuestraDTO = await this.generalService.crearRegistro(new GeneralModel('FuncionpuestraDTO', null, false, this.funcionpuestraDTO)).toPromise();\n        this.funcionpuestraDTO.actividades = (lista);\n        this.notificationBusService.showInfo(\"Se guardo exitosamente el registro\");\n      } else {\n        this.generalService.update(new GeneralModel('FuncionpuestraDTO', null, false, this.funcionpuestraDTO)).toPromise();\n        this.notificationBusService.showInfo(\"Se Actualizo exitosamente el registro\");\n      }\n      await this.perfilSvc.actualizarFechaUltimoCambio(this.perfilfuncionDTO.llaveTabla).toPromise();\n      this.guardarCaracteristicas();\n      this.nuevo = false;\n      this.funcionpuestraDTO = new FuncionPuestraModel();\n      this.funcion = false;\n      this.traerFunciones();\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n  private guardarCaracteristicas() {\n    try {\n      let perfil1: FuncionPuestraModel = this.formularioDinamico.getObjecto();\n      // if (!this.formularioDinamico.hayCambios()) {\n      //   return;\n      // }\n      this.generalService.update(new GeneralModel('FuncionPuestraDTO', null, false, perfil1)).toPromise();\n      let lista = this.formularioDinamico.getCamposCaracteristica();\n      for (const campo of lista) {\n        this.guardarUnaCaracteristica(campo, perfil1.llaveTabla, this.datoOrganizacionPipe.FUNCION);\n      }\n      // cargarFormulario(this.perfilfuncionDTO);\n      return;\n    } catch (e) {\n      console.log(e);\n    }\n    return;\n  }\n\n  private async guardarUnaCaracteristica(caracteristica: CampoFormularioModel, llavePerfil: string, tabla: string) {\n    // TablaCaracteristicaDTO\n    let cara: TablaCaracteristicaModel = new TablaCaracteristicaModel();\n    let nuevo = true;\n    let vacio = true;\n    if (caracteristica.dato != null) {\n      cara = caracteristica.dato;\n      nuevo = false;\n    }\n    if (caracteristica.valor == null || caracteristica.valor == Constantes.ESPACIO_NULO) {\n      vacio = false;\n    }\n    cara.caracteristica = (caracteristica.campo);\n    cara.perfilFuncion = (this.funcionpuestraDTO.funcionpuestra);\n    cara.tabla = (tabla);\n\n    if (caracteristica.tipo == (CampoFormularioCons.LOGICO) || caracteristica.tipo == (CampoFormularioCons.TEXTO)\n      || caracteristica.tipo == (CampoFormularioCons.COMBO) || caracteristica.tipo == (CampoFormularioCons.RADIO)\n      || caracteristica.tipo == (CampoFormularioCons.POPUP)) {\n      cara.cadena = (caracteristica.valor);\n      cara.tipo = (this.tablaCaracteristicaPipe.TEXTO);\n    }\n    if (caracteristica.tipo == (CampoFormularioCons.FECHA)) {\n      cara.fecha = (caracteristica.valor);\n      cara.tipo = (this.tablaCaracteristicaPipe.FECHA);\n    }\n    if (caracteristica.tipo == (CampoFormularioCons.TEXTOAREA)) {\n      cara.area = (caracteristica.valor);\n      cara.tipo = (this.tablaCaracteristicaPipe.AREA);\n    }\n    if (caracteristica.tipo == (CampoFormularioCons.NUMERO) || caracteristica.tipo == (CampoFormularioCons.DECIMAL)) {\n      if (caracteristica.valor == null || caracteristica.valor.toString() == (Constantes.ESPACIO_NULO)) {\n        cara.numero = (null);\n      } else {\n        cara.numero = (caracteristica.valor().toString());\n      }\n      cara.tipo = (this.tablaCaracteristicaPipe.NUMERO);\n    }\n    if (nuevo) {\n      if (vacio) {\n        cara.llave = (this.utilService.generarLlave());\n        cara = await this.generalService.crearRegistro(new GeneralModel('TablaCaracteristicaDTO', null, false, cara)).toPromise();\n      }\n    } else {\n      this.generalService.update(new GeneralModel('TablaCaracteristicaDTO', null, false, cara)).toPromise();\n    }\n\n  }\n\n  eliminar(event) {\n    if (this.funcionpuestraDTO.actividades != null && this.funcionpuestraDTO.actividades.length != 0) {\n      this.notificationBusService.showInfo(\"Debe borrar previamente las actividades relacionadas\");\n      return null;\n    } else {\n      this.confirmationService.confirm({\n        target: event.target,\n        message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n        acceptLabel: 'si',\n        accept: () => {\n          this.setEliminar();\n        },\n        reject: () => { }\n      });\n    }\n  }\n\n  public setEliminar() {\n    try {\n      this.generalService.delete(new GeneralModel('FuncionPuestraDTO', null, false, this.funcionpuestraDTO)).toPromise();\n      this.perfilSvc.actualizarFechaUltimoCambio(this.perfilfuncionDTO.llaveTabla).toPromise();\n      this.funcionpuestraDTO = new FuncionPuestraModel();\n      this.nuevo = false;\n      this.notificationBusService.showInfo(\"Se  elimino exitosamente el registro\");\n      this.traerFunciones();\n      this.regresar();\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n\n async cargarListaAdicional(){\n    for (const fila of this.listadefuncion) {\n\t\t\tlet objetoFila: any[] = []\t\n\t\t\tfor (const columna of this.listadatotabla) {\n\t\t\t\tobjetoFila.push({ fila: fila.funcion, codigo: await this.celda(columna, fila) });\n\t\t\t}\n\t\t\tthis.listadatotablaAdicional.push({ objetoFila })\n\t\t}\n\t\tthis.cargando = false;\n  }\n\n  async cargarListaAdicionalHistorico(){\n    for (const fila of this.listadefuncionvencidas) {\n\t\t\tlet objetoFila: any[] = []\t\n\t\t\tfor (const columna of this.listadatotabla) {\n\t\t\t\tobjetoFila.push({ fila: fila.funcion, codigo: await this.celda(columna, fila) });\n\t\t\t}\n\t\t\tthis.listadatotablaAdicionalHistorico.push({ objetoFila })\n\t\t}\n\t\tthis.cargando = false;\n  }\n\n\n  async cargarFormularioCaracteristicas(): Promise<void> {\n    let data = await this.funcionPuestraSvc.cargarFormularioCaracteristicas(this.perfilfuncionDTO, this.funcionpuestraDTO).toPromise();\n    this.formulario = data['formulario'];\n    this.listaCampos = data['listaCampos'];\n  }\n\n  public isPuedeModificar(): boolean {\n\t\treturn this.isExisteCampos() && !this.isDeshabilitar();\n\t\t\n\t}\n\n  public isDeshabilitar(): boolean {\n\t\treturn this.deshabilitar;\n\t}\n\n  public isExisteCampos(): boolean {\n\t\treturn this.listadatotabla != null && this.listadatotabla.length > 0;\n\t}\n\n  public setRenderPrincipal(boolean: boolean){\n    this.renderPrincipal = boolean;\n  }\n\t\n\n\n\n\n\n\n  public verificarControl(control) {\n    return this.controlFuncionService.getControlFuncionalidad(control);\n  }\n\n}\n","@if(this.renderPrincipal){\n    <p-confirmPopup></p-confirmPopup>\n    <div id=\"listadosFuncionPuestraForm\" *ngIf=\"!mantenimiento\">\n        <div class=\"mt-3 mb-2\">\n            <div class=\"flex justify-content-end align-items-center mb-3\">\n                <button *ngIf=\"controles.get('modificar') && isPuedeModificar() && !procesoAutorizacionBPM\" pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoRegistro()\" icon=\"pi pi-plus\" class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n            </div>\n            <p-table id=\"tablaFuncion\" [value]=\"listadefuncion\" [scrollable]=\"true\" scrollDirection=\"both\"\n                scrollDirection=\"horizontal\" responsiveLayout=\"scroll\" [paginator]=\"listadefuncion.length > 10\"\n                scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n                [totalRecords]=\"listadefuncion.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\"\n                [showCurrentPageReport]=\"true\" editMode=\"row\" (onRowSelect)=\"actualizar($event)\" [loading]=\"cargando\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\" dataKey=\"fila\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th class=\"w-6rem\" *ngFor=\"let columna of listadatotabla\">\n                            {{columna.descripcion}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-fila let-editing=\"editing\" let-ri=\"rowIndex\">\n                    <tr [pSelectableRow]=\"fila\">\n                        <td  class=\"w-6rem\" *ngFor=\"let celda of listadatotablaAdicional[ri]?.objetoFila\">\n                            <span *ngIf=\"tipoDato(celda.codigo) == 'N'\">{{celda.codigo | number}}</span>\n                            <span *ngIf=\"tipoDato(celda.codigo) == 'F'\">{{celda.codigo | date:'dd/MM/yy'}}</span>\n                            <span *ngIf=\"tipoDato(celda.codigo) == 'T' || celda.codigo == null\">{{ celda.codigo }}</span>\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n        <div class=\"mt-4\" *ngIf=\"listadefuncionvencidas.length > 0\">\n            <h4 class=\"text-xl mb-3\">{{'historico'| translate}}</h4>\n            <p-table id=\"tablaFuncionVencida\" [value]=\"listadefuncionvencidas\" [scrollable]=\"true\" scrollDirection=\"both\"\n                scrollDirection=\"horizontal\" responsiveLayout=\"scroll\" [paginator]=\"listadefuncionvencidas.length > 10\"\n                scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n                [totalRecords]=\"listadefuncionvencidas.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\"\n                [showCurrentPageReport]=\"true\" editMode=\"row\" (onRowSelect)=\"actualizavencida($event)\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\" dataKey=\"fila\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th class=\"w-6rem\" *ngFor=\"let columna of listadatotabla\">\n                            {{columna.descripcion}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-fila let-editing=\"editing\" let-ri=\"rowIndex\">\n                    <tr [pSelectableRow]=\"fila\">\n                        <td class=\"w-6rem\" *ngFor=\"let celda of listadatotablaAdicionalHistorico[ri]?.objetoFila\">\n                            <span *ngIf=\"tipoDato(celda.codigo) == 'N'\">{{celda.codigo | number}}</span>\n                            <span *ngIf=\"tipoDato(celda.codigo) == 'F'\">{{celda.codigo | date:'dd/MM/yy'}}</span>\n                            <span *ngIf=\"tipoDato(celda.codigo) == 'T' || celda.codigo == null\">{{ celda.codigo }}</span>\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n    </div>\n    \n    <div id=\"mantenimientoFuncionPuestraForm\" *ngIf=\"mantenimiento\">\n        <div class=\"flex justify-content-between align-items-center mb-3\">\n            <h1>{{'mantenimiento'|translate}} del {{'funcion'|translate}}</h1>\n            <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n                (click)=\"regresar()\" label=\"{{'link_regresar' | translate}} a {{'listado'| translate}}\">\n            </button>\n        </div>\n        <formulario-dinamico #formulario [editable]=\"formulario['editable']\" [objeto]=\"formulario['objecto']\"\n            [campos]=\"listaCampos\" [isMensaje]=\"false\"></formulario-dinamico>\n        <div class=\"flex justify-content-end align-items-center mb-3 mt-3\">\n            <!-- GUARDAR -->\n            <button class=\" p-button-raised ml-2\" *ngIf=\"controles.get('modificar') && !deshabilitar && !procesoAutorizacionBPM\" pButton\n                label=\"{{'link_guardar'| translate}}\" (click)=\"guardar()\"> <span class=\"glyphicons glyphicons-floppy-save\"\n                    aria-hidden=\"true\"></span></button>\n            <!-- ELIMINAR -->\n            <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n                *ngIf=\"!nuevo && controles.get('modificar') && !deshabilitar && !procesoAutorizacionBPM\"\n                label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\"></button>\n        </div>\n    </div>\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class PerfilCargoModel extends UnionModel {\n\n\tcargo: string;\n\toperador: string;\n\tvalor: Object;\n\tvalormostrar: Object;\n\tcodigo: string;\n\tcampo: string;\n\torigen: string;\n\tempresa: number;\n\tplansucesion: string;\n\torganizacion: number;\n\tperfilcargo: string;\n\tperfilfuncion: string;\n\tvalor2: Object;\n\tvalormostrar2: Object;\n\tvalormuestra: string;\n\tdatoorganizacion: string;\n\tdescripcion: string;\n\tmensaje: string;\n\tcamposeccion: string;\n\tseccion: string;\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { PerfilCargoModel } from '../models/PerfilCargoModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TalentoPMService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarListaPerfil(perfilFuncion: string) : Observable<PerfilCargoModel[]>{\n    return this.httpClient.post<PerfilCargoModel[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/talentoPM/cargarListaPerfil`, perfilFuncion).pipe(\n        catchError(this.handleError)\n      );\n  }\n  campoadicionado(dato): Observable<any[]>{\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/talentoPM/campoadicionado`, dato).pipe(\n        catchError(this.handleError)\n      );\n  }\n  cargarOpera(dato): Observable<string>{\n    return this.httpClient.post<string>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/talentoPM/cargarOpera`, dato).pipe(\n        catchError(this.handleError)\n      );\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService, CampoFormularioCons, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { PerfilCargoModel } from '../../../models/PerfilCargoModel';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { TalentoPMService } from '../../../services/talento-pm.service';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { PerfilFuncionService } from '../../../services/perfil-funcion.service';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-perfil-cargo',\n    templateUrl: './perfil-cargo.component.html',\n    styleUrls: ['./perfil-cargo.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, NgIf, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DropdownModule, FormsModule, InputTextModule, CalendarModule, NgFor, Ripple, TranslateModule]\n})\nexport class PerfilCargoComponent implements OnInit {\n\tprocesoAutorizacionBPM: boolean;\n\tdeshabilitar: boolean;\n\tperfilfuncionDTO: PerfilFuncionModel;\n\tlistaperfilcargo: PerfilCargoModel[] = [];\n\tplanta: boolean;\n\trequerimiento: boolean;\n\tdescripcionCargo: boolean;\n\tcontroles: Map<string, boolean> = new Map<string, boolean>();\n\tverBotones: boolean;\n\tnuevo: boolean;\n\tperfilFuncionDTO: PerfilFuncionModel;\n\tlistadescricpion: any[];\n\tperfilCargoDTO: PerfilCargoModel;\n\tvalor: boolean;\n\tvalor2: boolean;\n\tverMantenimiento: boolean;\n\tcampoadionado: any = undefined;\n\tlista: any[];\n\topera: string;\n\tcargando: boolean;\n\n\tconstructor(private controlFuncionService: CargarControlFuncionalidadService, private talentoPM: TalentoPMService, private authService: AuthService, private generalSvc: GeneralService, public utilsService: UtilsService, private perfilSvc: PerfilFuncionService,\n\t\tprivate notificationBusService: ToastService, public listaConstantes: ListaConstantesPipe,  private confirmationService: ConfirmationService,public generalPipe: GeneralPipe,\n\t) { }\n\n\tngOnInit(): void {\n\t\tlet parametro = window.location.href;\n\t\tif (parametro.endsWith(\"plantaPersonal\")) {\n\t\t\tthis.planta = true;\n\t\t\tthis.requerimiento = false;\n\t\t\tthis.descripcionCargo = false;\n\t\t} else if (parametro.endsWith(\"requerimientoPersonalLista\")) {\n\t\t\tthis.planta = false;\n\t\t\tthis.descripcionCargo = false;\n\t\t\tthis.requerimiento = true;\n\t\t} else if (parametro.endsWith(\"DescripcionCargo\")) {\n\t\t\tthis.planta = false;\n\t\t\tthis.requerimiento = false;\n\t\t\tthis.descripcionCargo = true;\n\t\t}\n\t\tthis.funcionalidad();\n\t\t// talentoPM= getBean(TalentoPM.class);\n\t}\n\n\tpublic async init(perfilfuncion: PerfilFuncionModel, deshabilitar: boolean, procesoAutorizacionBPM: boolean): Promise<void> {\n\t\tthis.procesoAutorizacionBPM = procesoAutorizacionBPM;\n\t\tthis.deshabilitar = deshabilitar;\n\t\tthis.perfilfuncionDTO = perfilfuncion;\n\t\tthis.listaperfilcargo = null;\n\t\tawait this.listaRegistro()\n\t}\n\n\tpublic async listaRegistro(): Promise<void> {\n\t\ttry {\n\t\t\tthis.listaperfilcargo = await this.talentoPM.cargarListaPerfil(this.perfilfuncionDTO.llaveTabla).toPromise();\n\t\t\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\tpublic funcionalidad(): void {\n\t\tthis.controles = new Map<string, boolean>();\n\t\tif (this.planta || this.descripcionCargo) {\n\t\t\tthis.controles.set(\"modificar\", this.verificarControl(\"descar:modificar\"));\n\t\t} else if (this.requerimiento) {\n\t\t\tthis.controles.set(\"modificar\", this.verificarControl(\"reqper:modifica\"));\n\t\t}\n\t}\n\n\n\tpublic verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t}\n\n\tpublic nuevoRegistro() {\n\t\ttry {\n\t\t\tthis.inicio(true,new PerfilCargoModel(), this.perfilfuncionDTO,\"perfilCargoBean.volver\");\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic ver(evento){\n\t\ttry {\n\t\t\tlet perfilCargo =  this.listaperfilcargo[evento];\n\t\t\tconsole.log('perfilCargo',perfilCargo)\n\t\t\tthis.inicio(false,perfilCargo, this.perfilfuncionDTO,\"perfilCargoBean.volver\");\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn ;\n\t}\n\n\n\n\t//APARTADO NUEVO Y MANTENIMIENTO \n\n\tpublic async inicio(nuevo: boolean,perfilCargo: PerfilCargoModel,perfilFuncion: PerfilFuncionModel,destino: string): Promise<void>{\n\t\ttry{\n\t\t\tthis.verBotones = true;\n\t\t\tthis.nuevo= nuevo;\n\t\t\tthis.perfilFuncionDTO=perfilFuncion;\n\t\t\t// talentoPM= getBean(TalentoPM.class);\n\t\t\tthis.listadescricpion = [];\n\t\t\tthis.cargarLista();\n\t\t\tif(this.nuevo){\n\t\t\t\tthis.perfilCargoDTO= new PerfilCargoModel();\n\t\t\t\tthis.valor=false;\n\t\t\t\tthis.valor2 = false;\n\t\t\t}else{\n\t\t\t\tthis.perfilCargoDTO=perfilCargo;\n\t\t\t\tthis.campoadicionado(this.perfilCargoDTO.datoorganizacion);\n\t\t\t\tthis.valor=true;\n\t\t\t}\n\t\t\tthis.verMantenimiento = true;\n\t\t}catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\tpublic async cargarLista(){\n\t\ttry {\n\t\t\tlet listadim: DatoorganizacionModel[] = [];\n\t\t\tlet dato: DatoorganizacionModel  = new DatoorganizacionModel();\n\t\t\t// AutenticacionDTO credencial = getCredencial();\n\t\t\tdato.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\tthis.listadescricpion = (await this.generalSvc.queryForList(new GeneralModel('DatoorganizacionDTO','PerfilCargo.descricpcioncampo',false, dato)).toPromise()).map((datos) => ({key:datos.llave, label: datos.descripcion}));\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tprivate async campoadicionado(dato: string) {\n\t\ttry {\n\t\t\tthis.campoadionado=  await this.talentoPM.campoadicionado(dato).toPromise();\n\t\t\tthis.lista = this.campoadionado.listaItems;\n\t\t\tlet data = await this.talentoPM.cargarOpera(dato).toPromise();\n\t\t\tthis.opera  = data['respuesta'] ;\n\t\t\tif (this.campoadionado.seccionCampoDTO.tipo == (CampoFormularioCons.NUMERO) || this.campoadionado.seccionCampoDTO.tipo == (CampoFormularioCons.DECIMAL)\n\t\t\t\t\t|| this.campoadionado.seccionCampoDTO.tipo == (CampoFormularioCons.FECHA)) {\n\t\t\t\tif (this.opera != (\"IGUAL\") && this.opera != (\"MAYORQUE\") && this.opera !=(\"MENORQUE\")) {\n\t\t\t\t\tthis.valor2 = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.valor2 = false;\n\t\t\t\t}\n\t\t\t}\t\t\n\t\t} catch (error) {\n\t\t\tconsole.log(error)\t\t\n\t\t}\n\t}\n\n\n\tpublic async guardar(data?) {\n\t\ttry {\n\t\t\tif (!this.utilsService.validarCampoObligatorio(this.perfilCargoDTO.datoorganizacion)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (this.nuevo) {\n\t\t\t\tthis.perfilCargoDTO.perfilcargo = (this.utilsService.generarLlave());\n\t\t\t\tthis.perfilCargoDTO.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\tthis.perfilCargoDTO.perfilfuncion = (this.perfilFuncionDTO.llaveTabla);\n\t\t\t\tif (this.perfilCargoDTO.valor instanceof Date) {\n\t\t\t\t\tlet fecha : string = this.perfilCargoDTO.valor.toDateString();\n\t\t\t\t\tthis.perfilCargoDTO.valor = (fecha);\n\t\t\t\t\tif (this.perfilCargoDTO.valor2 != null) {\n\t\t\t\t\t\tlet fecha2: string = this.perfilCargoDTO.valor2.toString();\n\t\t\t\t\t\tthis.perfilCargoDTO.valor2 =(fecha2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.perfilCargoDTO = await  this.generalSvc.crearRegistro(new GeneralModel('PerfilCargoDTO',null,false,this.perfilCargoDTO)).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(\"Se guardo exitosamente el registro\");\n\t\t\t} else {\n\t\t\t\tawait  this.generalSvc.update(new GeneralModel('PerfilCargoDTO',null,false,this.perfilCargoDTO)).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(\"Se Actualizo exitosamente el registro\");\n\t\t\t}\n\t\t\tawait this.perfilSvc.actualizarFechaUltimoCambio(this.perfilCargoDTO.perfilfuncion).toPromise();\n\t\t\tthis.nuevo = false;\n\t\t\tthis.valor2 = false;\n\t\t\tthis.cancelar();\n\t\t\tthis.perfilCargoDTO = new PerfilCargoModel();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic cargarCampos() {\n\t\ttry {\n\t\t\tlet valortabla =  this.perfilCargoDTO.datoorganizacion;\n\t\t\tthis.valor = true;\n\t\t\tif (valortabla != null) {\n\t\t\t\tthis.campoadicionado(valortabla);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic cancelar() {\n\t\tthis.nuevo = false;\n\t\tthis.perfilCargoDTO = new PerfilCargoModel();\n\t\tthis.verMantenimiento;\n\t\tthis.listaRegistro();\n\t\treturn null;\n\t}\n\n\tasync eliminar(perfilCargo, event) {\n\t\ttry {\n\t\t  this.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tacceptLabel:'Si',\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\taccept: async () => {\n\t\t\t  this.generalSvc.delete(new GeneralModel('PerfilCargoDTO',null,false,perfilCargo)).toPromise();\n\t\t\t  await this.perfilSvc.actualizarFechaUltimoCambio(perfilCargo.perfilfuncion).toPromise();\n\t\t\t  this.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR) \n\t\t\t  this.cancelar();\n\t\t\t}\n\t\t  });\n\t\t} catch (error) {\n\t\t  console.log(error.mensaje);\n\t\n\t\t}\n\t  }\n\n\tsetCargando(boleano: boolean){\n\t\tthis.cargando = boleano\n\t}\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"!cargando\">\n    <div class=\"flex justify-content-end align-items-center mb-3\"><button pButton label=\"{{'link_nuevo' | translate}}\"\n            (click)=\"nuevoRegistro()\" icon=\"pi pi-plus\"\n            class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button></div>\n        <p-table [value]=\"listaperfilcargo\" styleClass=\"p-datatable-striped\"\n                        [rows]=\"10\" [scrollable]=\"true\" [paginator]=\"listaperfilcargo?.length > 10\" [totalRecords]=\"listaperfilcargo?.length\" [showCurrentPageReport]=\"true\"\n                        scrollDirection=\"both\" scrollDirection=\"horizontal\" editMode=\"row\"\n                        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                        [rowsPerPageOptions]=\"[10, 20, 30]\" dataKey=\"perfilcargo\" [showCurrentPageReport]=\"true\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"max-width:45%\">{{'descripcion' | translate}}</th>\n                <th style=\"max-width:45%\">{{'valor' | translate}}</th>\n                <th style=\"max-width:10%\"></th>\n            </tr>\n            <tr class=\"TablaNuevoRegistro\" *ngIf=\"verMantenimiento && nuevo\">\n                <td style=\"max-width: 45%;\">\n                    <p-dropdown [options]=\"listadescricpion\" optionValue=\"key\" [autoDisplayFirst]=\"false\"\n                        optionLabel=\"label\" (onChange)=\"cargarCampos()\" [(ngModel)]=\"perfilCargoDTO.datoorganizacion\"\n                        appendTo=\"body\" [autoZIndex]=\"false\"></p-dropdown>\n                </td>\n                <td style=\"max-width: 45%;\">\n\n                    <div\n                        *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'T' || campoadionado?.seccionCampoDTO?.tipo === 'F'\">\n                        <div *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'T'\">\n                            <input pInputText autofocus class=\"caja_texto\" id=\"valor_del_perfil_texto\" size=\"30\"\n                                [(ngModel)]=\"perfilCargoDTO.valor\" [disabled]=\"procesoAutorizacionBPM\" pInputText />\n                        </div>\n                        <div *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'F'\">\n                            <p-calendar yearRange=\"c-100:c+100\"  \n                                id=\"valor_del_perfil_fecha\" [(ngModel)]=\"perfilCargoDTO.valor\"\n                                [disabled]=\"procesoAutorizacionBPM\" [showIcon]=\"true\"\n                                [style]=\"{'margin-bottom': '10px'}\"></p-calendar>\n                            <p-calendar yearRange=\"c-100:c+100\"  \n                                id=\"valor_del_perfil_fecha2\" [(ngModel)]=\"perfilCargoDTO.valor2\" *ngIf=\"valor2\"\n                                [disabled]=\"procesoAutorizacionBPM\" [showIcon]=\"true\"></p-calendar>\n                        </div>\n                    </div>\n\n\n                    <p-dropdown [options]=\"lista\" optionValue=\"value\"\n                        *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'C'\" [disabled]=\"procesoAutorizacionBPM\"\n                        [autoDisplayFirst]=\"false\" optionLabel=\"label\" [(ngModel)]=\"perfilCargoDTO.valor\"\n                        appendTo=\"body\" [autoZIndex]=\"false\"></p-dropdown>\n\n\n                    <div *ngIf=\"campoadionado?.seccionCampoDTO.tipo == 'R'\">\n                        <div *ngFor=\"let item of lista\">\n                            <!-- <p-radioButton [inputId]=\"category?.key\" name=\"category\" [value]=\"category\"\n                                [(ngModel)]=\"perfilCargoDTO.valor\"></p-radioButton> -->\n                        </div>\n                    </div>\n                    <!-- \n            <div class=\"panelGrid\" *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'P'\">\n                <input pInputText autofocus class=\"caja_texto\" id=\"valor_del_perfil_popup\" [size]=\"campoadionado?.seccionCampoDTO?.longitud\"\n                    disabled=\"true\" [(ngModel)]=\"perfilCargoDTO.valor\" pInputText />\n                <button (click)=\"popup()\" type=\"button\" pButton icon=\"pi pi-search\" iconPos=\"right\" label=\"Buscar\"\n                    *ngIf=\"!procesoAutorizacionBPM\"></button>\n            </div> -->\n\n                </td>\n                <td class=\"flex justify-content-end\">\n                    <div >\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"guardar()\"\n                            *ngIf=\" (perfilCargoDTO.datoorganizacion != null && perfilCargoDTO.datoorganizacion != '')\"\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>\n                        <button pButton pRipple type=\"button\" (click)=\"cancelar()\" icon=\"pi pi-times\"\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>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean_perfil let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr [pEditableRow]=\"bean_perfil\">\n                <td style=\"max-width: 45%;\">\n                    <p-cellEditor style=\"width: 100%\">\n                        <ng-template pTemplate=\"input\">\n                            {{bean_perfil.descripcion}}\n                        </ng-template>\n                        <ng-template pTemplate=\"output\">\n                            {{bean_perfil.descripcion}}\n                        </ng-template>\n                    </p-cellEditor>\n                </td>\n                <td style=\"max-width: 45%;\">\n                    <p-cellEditor style=\"width: 100%\">\n                        <ng-template pTemplate=\"input\">\n                            <div\n                        *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'T' || campoadionado?.seccionCampoDTO?.tipo === 'F'\">\n                        <div *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'T'\">\n                            <input pInputText autofocus class=\"caja_texto\" id=\"valor_del_perfil_texto\" size=\"30\"\n                                [(ngModel)]=\"perfilCargoDTO.valor\" [disabled]=\"procesoAutorizacionBPM\" pInputText />\n                        </div>\n                        <div *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'F'\">\n                            <p-calendar yearRange=\"c-100:c+100\"  \n                                id=\"valor_del_perfil_fecha\" [(ngModel)]=\"perfilCargoDTO.valor\"\n                                [disabled]=\"procesoAutorizacionBPM\" [showIcon]=\"true\"\n                                [style]=\"{'margin-bottom': '10px'}\"></p-calendar>\n                            <p-calendar yearRange=\"c-100:c+100\"  \n                                id=\"valor_del_perfil_fecha2\" [(ngModel)]=\"perfilCargoDTO.valor2\" *ngIf=\"valor2\"\n                                [disabled]=\"procesoAutorizacionBPM\" [showIcon]=\"true\"></p-calendar>\n                        </div>\n                    </div>\n\n\n                    <p-dropdown [options]=\"lista\" optionValue=\"value\"\n                        *ngIf=\"campoadionado?.seccionCampoDTO?.tipo === 'C'\" [disabled]=\"procesoAutorizacionBPM\"\n                        [autoDisplayFirst]=\"false\" optionLabel=\"label\" [(ngModel)]=\"perfilCargoDTO.valor\"\n                        appendTo=\"body\" [autoZIndex]=\"false\"></p-dropdown>\n\n\n                    <div *ngIf=\"campoadionado?.seccionCampoDTO.tipo == 'R'\">\n                        <div *ngFor=\"let item of lista\">\n                            <!-- <p-radioButton [inputId]=\"category?.key\" name=\"category\" [value]=\"category\"\n                                [(ngModel)]=\"selectedCategory\"></p-radioButton> -->\n                        </div>\n                    </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"output\">\n                            {{bean_perfil.valormostrar}}\n                        </ng-template>\n                    </p-cellEditor>\n                </td>\n                <td>\n                    <div class=\"flex justify-content-end\">\n                        <!-- CHECK GUARDAR -->\n                        <button\n                            *ngIf=\"editing && this.utilsService.validarCampoObligatorio(bean_perfil.datoorganizacion)\"\n                            pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                            (click)=\"guardar()\"\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>\n                        <!-- CANCELAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n                            (click)=\"cancelar()\"\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>\n                        <!-- EDITAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                            icon=\"glyphicons glyphicons-pencil\" (click)=\"ver(ri)\"\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>\n                        <!-- ELIMINAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                            (click)=\"eliminar(bean_perfil,$event)\"\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>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>","import { OrdenarModel } from \"../../sarageneral/models/OrdenarModel\";\n\n\nexport class PerfilTablasModel extends OrdenarModel {\n\n\tllave: string;\n\ttipotabla: string;\n\tperfilfuncion: string;\n\ttipo: string;\n\tdescripciontipo: string;\n\ttema: string;\n\tcurso: string;\n\trequerida: number;\n\ttemporal: string;\n\tareacomite: string;\n\tproposito: string;\n\tpapel: string;\n\tfrecuencia: string;\n\testado: string;\n\taplicadopor: string;\n\tdescripciontema: string;\n\tdescripcioncurso: string;\n\tzonaeconomica: string;\n\tcentrocosto: string;\n\tlineaCosto: string;\n\tdescripcionzona: string;\n\tdescripcioncentro: string;\n\trequerimiento: string;\n\tempresa: number;\n\tcursosInscribir: number;\n\tactoCambioEmpleado: string;\n\ttabla: string;\n\tdiasLimite: number;\n\tareaConocimiento: string;\n\tdescripcionarea: string;\n\tcalificacion: string;\n\tdescripcioncalifacion: string;\n\tpuestoTrabajo: string;\n\tnombre: string;\n\tprimerApellido: string;\n\tsegundoApellido: string;\n\tidentificacion: number;\n\tdocumento: string;\n\tcorreo: string;\n\ttelefono: string;\n\telemento: string;\n\tdescripcionelemento: string;\n\ttablaElementos: string;\n\tnombreOcupaPuesto: string;\n\tfechaDisponible: Date;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class CursoModel extends UnionModel{\n\t\n\tcurso: string;\n\tdescripcion: string;\n\testado: string;\n\tplanilla: string;\n\torigen: string;\n\testadoB: boolean;\n\tintensidad: number;\n\tasistenciamin: number;\n\ttipoevalua: string;\n\ttipocalifica: string;\n\tnombreTipoCalifica: string;\n\tpuntajeminimo: number;\n\tpuntajemaximo: number;\n\tpuntajeaproba: number;\n\tcobertura: string;\n\tprerequisito: string;\n\timpacto: string;\n\tcontenido: string;\n\torganizacion: number;\n\tescuelaformacion: string;\n\tmetodologia: string;\n\tparametroBusqueda: string;\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { CampoFormularioModel, ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { PerfilFuncionModel } from '../models/PerfilFuncionModel';\nimport { PerfilTablasModel } from '../models/PerfilTablasModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TablaAdicionalService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarMapa(tabla: string, llaveOrganizacion: string,perfil: PerfilFuncionModel): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('tabla',tabla);\n    formData.append('llaveOrganizacion',llaveOrganizacion);\n    formData.append('perfil',JSON.stringify(perfil));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/tablaAdicional/cargarMapa`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cargarFormulario(tabla: string,perfil: PerfilFuncionModel,perfilfuncionDTO: PerfilTablasModel,deshabilitar: boolean): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('tabla',tabla);\n    formData.append('perfil',JSON.stringify(perfil));\n    formData.append('perfilfuncionDTO',JSON.stringify(perfilfuncionDTO));\n    formData.append('deshabilitar',JSON.stringify(deshabilitar));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/tablaAdicional/cargarFormulario`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarCaracteristicas(formulario: any,perfilDTO: PerfilTablasModel,tabla: string, objetoFomulario: PerfilTablasModel): Observable<any> {\n    let formData = new FormData;\n    formData.append('formulario',JSON.stringify(formulario));\n    formData.append('perfilDTO',JSON.stringify(perfilDTO));\n    formData.append('tabla',tabla);\n    formData.append('objetoForm',JSON.stringify(objetoFomulario));\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/tablaAdicional/guardarCaracteristicas`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarCampos(filtro: PerfilTablasModel, listaSiNo: any[],listaitemtema: any[],listaitemcurso: any[],listaTipoRelaciones: any[],listaAreaConocimiento: any[],\n    listaCalificacion: any[],listafrecuencia: any[],listaFrecuenciaSolElemento: any[]): Observable<Map<string,CampoFormularioModel>> {\n    let formData = new FormData;\n    formData.append('filtro',JSON.stringify(filtro));\n    formData.append('listaSiNo',JSON.stringify(listaSiNo));\n    formData.append('listaitemtema',JSON.stringify(listaitemtema));\n    formData.append('listaitemcurso',JSON.stringify(listaitemcurso));\n    formData.append('listaTipoRelaciones',JSON.stringify(listaTipoRelaciones));\n    formData.append('listaAreaConocimiento',JSON.stringify(listaAreaConocimiento));\n    formData.append('listaCalificacion',JSON.stringify(listaCalificacion));\n    formData.append('listafrecuencia',JSON.stringify(listafrecuencia));\n    formData.append('listaFrecuenciaSolElemento',JSON.stringify(listaFrecuenciaSolElemento));\n    return this.httpClient.post<Map<string,CampoFormularioModel>>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/tablaAdicional/cargarCampos`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'evento',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class EventoPipe implements PipeTransform {\n\n\tCAPACITACION = 'C';\n  SALUDOCUPACIONAL = 'O';\n  BIENESTAR = 'B';\n  CAPACITACIONPUBLICACION = 'PC';\n  SELECCION = 'S';\n\n  ENTIDAD = 'E';\n  INSTRUCTOR = 'I';\n\n\t\n\tORIGEN_CAPACITACION = \"C\";\n\tORIGEN_CA = \"CA\";\n\tCOMPONENTE_HABILITAR = \"S\";\n\tCOMPONENTE_DESHABILITAR = \"L\";\n\n\t/***\n\t * Listado de las opciones de inscripcion para capacitacion\n\t */\n  PLANTA_DESC = \"PLANTA\";\n\tPLANTA = \"P\";\n\tNECESIDAD_DESC = \"NECESIDAD\";\n\tNECESIDAD = \"N\";\n  \n\tLISTA_OPCIONES_INSCRIBIR =\n\t[\n\t\t{ codigo: this.PLANTA, nombre: this.PLANTA_DESC},\n\t\t{ codigo: this.NECESIDAD, nombre: this.NECESIDAD_DESC},\n  ]\n\t\n\tEVENTOCAPACITACION = \"EVC\";\n\tEVENTOBIENESTAR = \"EVB\";\n\t\n\tPOR_ASISTENCIA = \"A\";\n\tPOR_PUNTAJE = \"P\";\n\tAMBOS = \"T\";\n\tNO_APLICA = \"N\";\n\t\n\tPOR_ASISTENCIA_DESC = \"Por Asistencia\";\n\tPOR_PUNTAJE_DESC = \"Por Puntaje\";\n\tAMBOS_DESC = \"Ambos\";\n\tNO_APLICA_DESC = \"No Aplica\";\n\n\tLISTADO_CONTROL_ASISTENTE=\n\t[\n\t\t{ codigo: this.POR_ASISTENCIA, nombre: this.POR_ASISTENCIA_DESC},\n\t\t{ codigo: this.POR_PUNTAJE, nombre: this.POR_PUNTAJE_DESC},\n\t\t{ codigo: this.AMBOS, nombre: this.AMBOS_DESC},\n\t\t{ codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC},\n  ]\n\t\n\tCOSTOEJECUTADO = \"E\";\n\tCOSTODISTRIBUCION = \"D\";\n\n\tPROGRAMADO = \"P\";\n\tEJECUTADO= \"E\";\n\tPROGRAMADODESC = \"Programado\";\n\tEJECUTADODESC= \"Ejecutado\";\n\t\n\tMAPAESTADOTEMAASISTENTE=\n\t[\n\t\t{ codigo: this.PROGRAMADO, nombre: this.PROGRAMADODESC},\n\t\t{ codigo: this.EJECUTADO, nombre: this.EJECUTADODESC},\n  ]\n\t\n\tCALENDARIO = \"C\";\n\tEVENTO = \"E\";\n\t\n\tindividual = \"IN\";\n\tGRUPAL = \"GR\";\n\n\tBLOQUEADOEVEN = \"B\";\n\tCANCELADO = \"C\";\n\tEJECUCION = \"E\";\n\n\t\n\tDESPROGRAMADO = \"Programado\";\n\tDESBLOQUEADOEVEN = \"Bloqueado\";\n\tDESCANCELADO = \"Finalizado\";\n\tDESEJECUCION = \"Ejecución\";\n\n\tLISTA_ESTADOEVENTO=\n\t[\n\t\t{ codigo: this.PROGRAMADO, nombre: this.DESPROGRAMADO},\n\t\t{ codigo: this.BLOQUEADOEVEN, nombre: this.DESBLOQUEADOEVEN},\n\t\t{ codigo: this.CANCELADO, nombre: this.DESCANCELADO},\n\t\t{ codigo: this.EJECUCION, nombre: this.DESEJECUCION},\n  ]\n\n\tINSCRITOSASIS = \"I\";\n\tACEPTADOASIS = \"A\";\n\tRECHAZADOASI = \"R\";\n\tFINALIZADO = \"F\";\n\tNO_APROBADO = \"N\";\n\tNO_ASISTIO = \"X\";\n\n\tDESINSCRITOSASIS = \"INSCRITO\";\n\tDESACEPTADOASIS = \"ACEPTADO\";\n\tDESRECHAZADOASI = \"NO ACEPTADO\";\n\tFINALIZADO_DESC = \"FINALIZADO\";\n\tNO_APROBADO_DESC = \"NO APROBADO\";\n\tNO_ASISTIO_DESC = \"NO ASISTIO\";\n\n\tLISTA_ESTADOASISTENTE=\n\t[\n\t\t{ codigo: this.INSCRITOSASIS, nombre: this.DESINSCRITOSASIS},\n\t\t{ codigo: this.ACEPTADOASIS, nombre: this.DESACEPTADOASIS},\n\t\t{ codigo: this.RECHAZADOASI, nombre: this.DESRECHAZADOASI},\n\t\t{ codigo: this.FINALIZADO, nombre: this.FINALIZADO_DESC},\n\t\t{ codigo: this.NO_APROBADO, nombre: this.NO_APROBADO_DESC},\n\t\t{ codigo: this.NO_ASISTIO, nombre: this.NO_ASISTIO_DESC},\n\n  ]\n\n\tLISTA_ESTADOASISTENTE_BIEN_SALUDOCUP=\n\t[\n\t\t{ codigo: this.INSCRITOSASIS, nombre: this.DESINSCRITOSASIS},\n\t\t{ codigo: this.ACEPTADOASIS, nombre: this.DESACEPTADOASIS},\n\t\t{ codigo: this.RECHAZADOASI, nombre: this.DESRECHAZADOASI},\n\n    ]\n\t\n\tREGISTROPADRE = \"Z\";\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n\tif (args[0] == 'listaEstadoEvento') { this.LISTA_ESTADOEVENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\tif (args[0] == 'listaEstadoAsistente') { this.LISTA_ESTADOASISTENTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\tif (args[0] == 'listaEstadotemaasistente') { this.MAPAESTADOTEMAASISTENTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n\n\t\n    \n\t\n\treturn result;\n  }\n\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { DatoorganizacionModel } from '../models/DatoorganizacionModel';\nimport { PerfilFuncionModel } from '../models/PerfilFuncionModel';\nimport { PerfilTablasModel } from '../models/PerfilTablasModel';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PerfilTablaService {\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  guardarPerfilTabla(perfil: PerfilTablasModel,perfilfuncion: PerfilFuncionModel,tabla: string) : Observable<PerfilTablasModel>{\n    let formData = new FormData();\n        formData.append(\"perfil\", JSON.stringify(perfil));\n        formData.append(\"perfilfuncion\", JSON.stringify(perfilfuncion));\n        formData.append(\"tabla\",tabla);\n    return this.httpClient.post<PerfilTablasModel>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/perfilTablas/guardarPerfilTabla`, formData).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { TablaAdicionalService } from '../../../services/tabla-adicional.service';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { PerfilTablasModel } from '../../../models/PerfilTablasModel';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { TemaModel } from '../../../models/TemaModel';\nimport { EventoPipe } from '../../../../../shared/pipes/evento.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { CursoModel } from '../../../models/CursoModel';\nimport { AreaConocimientoModel } from '../../../../hojavida/models/AreaConocimientoModel';\nimport { CodigoBaseHovModel } from '../../../../hojavida/models/CodigoBaseHovModel';\nimport { HojaVidaPipe } from '../../../../../shared/pipes/hojavida.pipe';\nimport { TablaCaracteristicaModel } from '../../../models/TablaCaracteristicaModel';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { PerfilTablaService } from '../../../services/perfil-tablas.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, DecimalPipe, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-tabla-adicional',\n    templateUrl: './tabla-adicional.component.html',\n    styleUrls: ['./tabla-adicional.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgFor, Ripple, DecimalPipe, DatePipe, TranslateModule, FormulariodinamicoComponent]\n})\nexport class TablaAdicionalComponent implements OnInit {\n\tnuevoRegistro: boolean = false;\n\ttabla: string;\n\tprocesoAutorizacionBPM: boolean;\n\tfiltro: PerfilTablasModel = new PerfilTablasModel();\n\tplanta: boolean;\n\trequerimiento: boolean;\n\tdeshabilitar: boolean;\n\tordenCampos: any[] = [];\n\tlistaTipoRelaciones: any[] = [];\n\tlistafrecuencia: any[] = [];\n\tlistaitemcurso: any[] = [];\n\tlistaitemtema: any[] = [];\n\tlistaAreaConocimiento: any[] = [];\n\tlistaCalificacion: any[] = [];\n\tlistaFrecuenciaSolElemento: any[] = [];\n\tlistaSiNo: any[] = [];\n\tlistadatotabla: DatoorganizacionModel[] = [];\n\tmaparelacion \n\tmapafrecuencia \n\tcontroles: Map<String, Boolean> = new Map<String, Boolean>();\n\tcamposTablaAdicional: Map<String, CampoFormularioModel> = new Map<String, CampoFormularioModel>();\n\tperfilDTO: PerfilTablasModel = new PerfilTablasModel();\n\tperfilfuncionDTO: PerfilFuncionModel = new PerfilFuncionModel();\n\tcarpetaTitulo: string;\n\tlistaTablaAdicional: PerfilTablasModel[] = [];\n\tpaginator = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t  };\n\tcargando: boolean;\n\tlistaAdicional: any[] = [];\n\tlistaCampos: any;\n\tformularioData: any;\n\tmantenimiento: boolean;\n\t\n\t@ViewChild('formulario') formulario: FormulariodinamicoComponent;\n\t\n\n\tconstructor(private tablaAdicionalSvc: TablaAdicionalService, private authService: AuthService, public datoOrganizacionpipe: DatoOrganizacionPipe, private listaConstantesPipe: ListaConstantesPipe, private eventoPipe: EventoPipe,private generalPipe: GeneralPipe,\n\t\tprivate generalService: GeneralService, private hojaVidaPipe: HojaVidaPipe, private controlFuncionService: CargarControlFuncionalidadService,private popupsDinamicosPipe: PopupsDinamicosPipe, private notificationBusService: ToastService, private utilService: UtilsService,\n\t\tprivate perfilTablasSvc: PerfilTablaService) { }\n\n\tngOnInit(): void {\n\t\tthis.maparelacion = this.listaConstantesPipe.TIPO;\n\t\tthis.mapafrecuencia = this.listaConstantesPipe.FRECUENCIA;\n\t\ttry {\n\t\t\t// reconocemos de que tarea se entro para asi determinar cierto comportarmiento\n\t\t\tthis.cargando = true;\n\t\t\tlet parametro = window.location.href;\n\t\t\tif (parametro.endsWith(\"listadoDescripcionCargo\") || parametro.endsWith(\"plantaPersonal\")) {\n\t\t\t\tthis.planta = true;\n\t\t\t\tthis.requerimiento = false;\n\t\t\t} else if (parametro.endsWith(\"requerimientoPersonalLista\")) {\n\t\t\t\tthis.planta = false;\n\t\t\t\tthis.requerimiento = true;\n\t\t\t}\n\t\t\tthis.inicializarCampos()\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tinicializarCampos(){\n\t\tthis.mantenimiento = false;\n\t\tthis.listaCampos = [];\n\t\tthis.formularioData = undefined;\n\t\tthis.perfilDTO = new PerfilTablasModel();\n\t}\n\n\tasync inicializar(){\n\t\tawait this.cargarCampos();\n\t\tawait this.cargarMapa();\n\t\tawait this.funcionalidad();\n\t\tlet data = await this.tablaAdicionalSvc.cargarFormulario(this.tabla,this.perfilfuncionDTO,this.perfilDTO,this.procesoAutorizacionBPM).toPromise();\n\t\tthis.listaCampos = data['listaCampos'];\n\t\tthis.formularioData = data['formulario'];\n\t}\n\n\tprivate funcionalidad() {\n\t\tthis.controles = new Map<string, boolean>();\n\t\t  if (this.planta) {\n\t\t\tthis.controles.set(\"modificar\", this.verificarControl('descar:modifica') != null ? true : false);\n\t\t  } else if (this.requerimiento) {\n\t\t\tthis.controles.set(\"modificar\", this.verificarControl('reqper:modifica') != null ? true : false);\n\t\t  }\n\t\t}\n\n\t \n\n\tasync cargarCampos() {\n\t\tthis.camposTablaAdicional = await this.tablaAdicionalSvc.cargarCampos(this.filtro, this.listaSiNo, this.listaitemtema, this.listaitemcurso, this.listaTipoRelaciones, this.listaAreaConocimiento, this.listaCalificacion, this.listafrecuencia, this.listaFrecuenciaSolElemento).toPromise();\n\t}\n\n\n\n\tpublic async cargarMapa() {\n\t\ttry {\n\t\t\tthis.carpetaTitulo = '';\n\t\t\tthis.ordenCampos = [];\n\t\t\tthis.listadatotabla= [];\n\t\t\tlet data = await this.tablaAdicionalSvc.cargarMapa(this.tabla, this.authService.getTokenKey('numeroEmpresa'), this.perfilfuncionDTO).toPromise();\n\t\t\tthis.listadatotabla = data['listadatotabla'];\n\t\t\tthis.ordenCampos = data['ordenCampos'];\n\t\t\tthis.carpetaTitulo = data['carpetaTitulo'];\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\tregresar(){\n\t\tthis.mantenimiento = false;\n\t}\n\n\tpublic async cargarListados() {\n\t\t// carga de los listado disponibles para los campos que son tipo lista o combo\n\t\tthis.listafrecuencia = [];\n\t\tthis.listaTipoRelaciones = [];\n\t\tthis.listaitemtema = [];\n\t\tthis.listaitemcurso = [];\n\t\tthis.listaAreaConocimiento = [];\n\t\tthis.listaCalificacion = [];\n\t\tthis.listaFrecuenciaSolElemento = [];\n\t\tthis.listaSiNo = [];\n\t\t// carga listas estaticas\n\t\tthis.listaTipoRelaciones = this.listaConstantesPipe.TIPO.map((data) => ({key: data.codigo, label:data.nombre}));\n\t\tthis.listafrecuencia = this.listaConstantesPipe.FRECUENCIA.map((data) => ({key: data.codigo, label:data.nombre}));;\n\t\tthis.listaFrecuenciaSolElemento = this.listaConstantesPipe.FRECUENCIA_SOLICITUD_ELEMENTOS.map((data) => ({key: data.codigo, label:data.nombre}));;\n\t\tthis.listaSiNo = this.listaConstantesPipe.SI_NO.map((data) => ({key: data.codigo, label:data.nombre}));\n\t\t// carga listas dinamicas(base de datos)\n\t\tlet tema = new TemaModel();\n\t\ttema.origen = (this.eventoPipe.CAPACITACION);\n\t\tlet listatema: TemaModel[] = await this.generalService.queryForList(new GeneralModel('TemaDTO', null, false, tema)).toPromise();\n\t\tfor (const elemento of listatema) {\n\t\t\tthis.listaitemtema.push({ key: elemento.tema, label: elemento.descripcion });\n\t\t}\n\t\t// List<CursoDTO> \n\t\tlet listacurso = await this.generalService.queryForList(new GeneralModel('CursoDTO', null, false, new CursoModel())).toPromise();\n\t\tfor (const elemento of listacurso) {\n\t\t\tthis.listaitemcurso.push({ key: elemento.curso, label: elemento.descripcion });\n\t\t}\n\t\tlet listaArea = await this.generalService.queryForList(new GeneralModel('AreaConocimientoDTO', null, false, new AreaConocimientoModel())).toPromise();\n\t\tfor (const elemento of listaArea) {\n\t\t\tthis.listaAreaConocimiento.push({ key: elemento.tipoAreaExp, label: elemento.descripcion });\n\t\t}\n\t\t// CodigoBaseHovDTO\n\t\tlet comodin = new CodigoBaseHovModel();\n\t\tcomodin.tipo = (this.hojaVidaPipe.FORCA);\n\t\t// List<CodigoBaseHovDTO> \n\t\tlet listaCodigo = await this.generalService.queryForList(new GeneralModel('CodigoBaseHovDTO', null, false, comodin)).toPromise();\n\t\tfor (const elemento of listaCodigo) {\n\t\t\tthis.listaCalificacion.push({ key: elemento.codigo, label: elemento.descripcion });\n\t\t}\n\t}\n\n\tpublic colocarFiltro() {\n\t\tthis.filtro = new PerfilTablasModel();\n\t\tthis.filtro.tipotabla = (this.datoOrganizacionpipe.TIPOTABLADESCCARGO);\n\t\tthis.filtro.tabla = (this.tabla);\n\t\tthis.filtro.perfilfuncion = (this.perfilfuncionDTO.llaveTabla);\n\t\tthis.filtro.estado = (this.datoOrganizacionpipe.VIGENTE);\n\t\t// this.filtro.camposOrden =(OrdenCampo.obtenerOrden(ordenCampos));\n\t}\n\tpublic async load(event?)  {\n\t\tthis.cargando = true;\n\t\tthis.listaTablaAdicional = [];\n\t\tthis.paginator.totalRecords = 10;\n\t\tawait this.colocarFiltro();\n\t\tthis.filtro.paginacionRegistroInicial = event?.first != null ? event?.first : 0; \n\t\tthis.filtro.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10;\n\t\tthis.listaTablaAdicional = await this.generalService.queryForList(new GeneralModel('PerfilTablasDTO',null,false,this.filtro)).toPromise();\n\t\tthis.paginator.totalRecords =await  this.generalService.cantidadRegistros(new GeneralModel('PerfilTablasDTO',null,false,this.filtro)).toPromise();\n\t\tawait this.cargarListaAdicional();\n\t}\n\n\tasync actualizar(evento){\n\t\ttry{\n\t\t\tthis.cargando = true\n\t\t\tthis.perfilDTO = evento.data;\n\t\t\tawait this.cargarCampos();\n\t\t\tawait this.cargarMapa();\n\t\t\tlet data = await this.tablaAdicionalSvc.cargarFormulario(this.tabla,this.perfilfuncionDTO,this.perfilDTO,this.procesoAutorizacionBPM).toPromise();\n\t\t\tthis.listaCampos = data['listaCampos'];\n\t\t\tthis.formularioData = data['formulario'];\n\t\t\tthis.mantenimiento = true;\n\t\t\tthis.nuevoRegistro = false;\n\t\t\tawait this.setValorCampos();\n\t\t\tthis.cargando = false;\n\t\t}catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic async guardar() {\n\t\ttry {\n\t\t\tif (!this.formulario.validar()) {\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tthis.perfilDTO =  this.formulario.getObjecto();\n\t\t\tthis.perfilDTO = await this.perfilTablasSvc.guardarPerfilTabla(this.perfilDTO, this.perfilfuncionDTO, this.tabla).toPromise();\n\t\t\tawait this.tablaAdicionalSvc.guardarCaracteristicas(this.formularioData,this.perfilDTO,this.tabla, this.formulario.getObjecto()).toPromise();\n\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\t\t// paginador.traerListado();\n\t\t\tthis.mantenimiento = false;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tpublic async nuevo() {\n\t\ttry {\n\t\t\tthis.perfilDTO = new PerfilTablasModel();\n\t\t\tthis.cargarCampos();\n\t\t\tawait this.cargarMapa();\n\t\t\tawait this.utilService.sleep(10);\n\t\t\tlet data = await this.tablaAdicionalSvc.cargarFormulario(this.tabla,this.perfilfuncionDTO,this.perfilDTO,this.procesoAutorizacionBPM).toPromise();\n\t\t\tthis.listaCampos = data['listaCampos'];\n\t\t\tthis.formularioData = data['formulario'];\n\t\t\tthis.mantenimiento = true;\n\t\t\tthis.nuevoRegistro = true;\n\t\t\tawait this.setValorCampos();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tasync setValorCampos() {\n\n\t\tthis.listaCampos.forEach(element => {\n\t\n\t\t  if (typeof element.valor === \"string\") {\n\t\t\telement.valor = element.valor\n\t\t  }\n\t\n\t\t  if (element.tipo === 'F') {\n\t\n\t\t\telement.valor = element.valor ? new Date(element.valor) : null;\n\t\n\t\t  } else if (element.tipo === 'H') {\n\t\n\t\t\tif (element.valor) {\n\t\n\t\t\t  let listaValortemp = [];\n\t\t\t  let valorRecorrer = element.valor.split(';');\n\t\t\t  valorRecorrer.forEach(element2 => {\n\t\t\t\tlistaValortemp.push({ label: element2, value: element2 });\n\t\t\t  });\n\t\n\t\t\t  element.valor = listaValortemp\n\t\t\t}\n\t\n\t\t  } else if (element.tipo === 'P') {\n\t\n\t\t\tlet isVisible = false;\n\t\n\t\t\tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\n\t\t\t  if (element.popup == pop.id) {\n\t\t\t\telement.popupComponent = pop.popup;\n\t\t\t\telement['cargarValorPopup'] = (event) => { element.valor = event };\n\t\n\t\t\t\tif (element.popup == 'popupSeleccionPlanInversionBean') {\n\t\t\t\t  isVisible = true;\n\t\t\t\t} else {\n\t\t\t\t  isVisible = element.editable == 'E' ? false : true;\n\t\t\t\t}\n\t\n\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t  readonly: isVisible,\n\t\t\t\t  showDialog: false,\n\t\t\t\t  label: element.valor,\n\t\t\t\t  labelInput: '',\n\t\t\t\t  //smostrarX: true,\n\t\t\t\t  onChange: (event) => element.cargarValorPopup(event)\n\t\t\t\t}\n\t\t\t\telement.listaPopups = [];\n\t\t\t\telement.listaPopups.push(element.popup)\n\t\n\t\t\t  } else {\n\t\t\t  }\n\t\t\t});\n\t\t  }\n\t\t});\n\t}\n\n\tpublic tipoDato(data: any): string {\n\t\tif (!isNaN(Number(data))) {\n\t\t  return 'N';\n\t\t}\n\t\tconst date = new Date(data);\n\t\tif (!isNaN(date.getTime())) {\n\t\t  return 'F';\n\t\t}\n\t\treturn 'T';\n\t  }\n\n\tasync cargarListaAdicional() {\n\t\tfor (const fila of this.listaTablaAdicional) {\n\t\t\tlet objetoFila: any[] = []\t\n\t\t\tfor (const columna of this.listadatotabla) {\n\t\t\t\tobjetoFila.push({ fila: fila.llave, codigo: await this.celda(columna, fila) });\n\t\t\t}\n\t\t\tthis.listaAdicional.push({ objetoFila })\n\t\t}\n\t\tthis.cargando = false;\n\t}\n\n\tpublic async celda(columna: DatoorganizacionModel, fila: any): Promise<any> {\n\t\ttry {\n\t\tlet dimension: PerfilTablasModel = fila;\n\t\t  if ((\"C\") == (columna.operador)) {\n\t\t\tlet tablaCaracteristicaDTO: TablaCaracteristicaModel = new TablaCaracteristicaModel();\n\t\t\ttablaCaracteristicaDTO.caracteristica = (columna.campo);\n\t\t\ttablaCaracteristicaDTO.perfilFuncion = (dimension.llave);\n\t\t\tif(dimension.llave != null){\n\t\t\t\ttry {\n\t\t\t\t\ttablaCaracteristicaDTO = await this.generalService.queryForObject(new GeneralModel('TablaCaracteristicaDTO', null, false, tablaCaracteristicaDTO)).toPromise();\n\t\t\t\t\t\tif (tablaCaracteristicaDTO == null) {\n\t\t\t\t\t\t  return null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t  if ((\"T\") == (tablaCaracteristicaDTO.tipo)) {\n\t\t\t\t\t\t\treturn tablaCaracteristicaDTO.cadena;\n\t\t\t\t\t\t  }\n\t\t\t\t\t\t  if ((\"N\") == (tablaCaracteristicaDTO.tipo)) {\n\t\t\t\t\t\t\treturn tablaCaracteristicaDTO.numero;\n\t\t\t\t\t\t  }\n\t\t\t\t\t\t  if ((\"F\") == (tablaCaracteristicaDTO.tipo)) {\n\t\t\t\t\t\t\treturn tablaCaracteristicaDTO.fecha;\n\t\t\t\t\t\t  }\n\t\t\t\t\t\t  else {\n\t\t\t\t\t\t\treturn null\n\t\t\t\t\t\t  }\n\t\t\t\t\t\t}\n\t\t\t\t\t  \n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse{\n\t\t\t\treturn null;\n\t\t\t}\n\t\t} else {\n\t\t\treturn dimension[columna.campo];\n\t\t  }\n\t\t} catch (e) {\n\t\t  console.log(e);\n\t\t}\n\t\treturn null;\n\t  }\n\n\t  eliminar(evento){\n\n\t  }\n\n\tpublic setTabla(tabla: string): void {\n\t\tthis.tabla = tabla;\n\t}\n\tpublic setPerfilfuncionDTO(perfil: PerfilFuncionModel): void {\n\t\tthis.perfilfuncionDTO = perfil;\n\t}\n\tpublic setProcesoAutorizacionBPM(procesoAutorizacionBPM: boolean): void {\n\t\tthis.procesoAutorizacionBPM = procesoAutorizacionBPM;\n\t}\n\n\tpublic verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t  }\n\n}\n","<div id=\"mantenimientoFuncionPuestraForm\" *ngIf=\"!mantenimiento\">\n    <div class=\"flex justify-content-end align-items-center mb-3\"><button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\" icon=\"pi pi-plus\" class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button></div>\n<p-table id=\"tablaCompetenciasExternas\" [value]=\"listaTablaAdicional\" [scrollable]=\"true\" scrollDirection=\"both\" [loading]=\"cargando\" [tableStyle]=\"{ 'min-width': '100rem' }\"\nscrollDirection=\"horizontal\" responsiveLayout=\"scroll\" [paginator]=\"listaTablaAdicional.length > 10\"\nscrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n[totalRecords]=\"listaTablaAdicional.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\"\n[showCurrentPageReport]=\"true\" editMode=\"row\" (onRowSelect)=\"actualizar($event)\"\ncurrentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\" dataKey=\"fila\">\n<ng-template pTemplate=\"header\">\n    <tr >\n        <th style=\"min-width: 12.5%;\" *ngFor=\"let columna of listadatotabla\">\n            {{columna.descripcion}}</th>\n    </tr>\n</ng-template>\n<ng-template pTemplate=\"body\" let-fila let-editing=\"editing\" let-ri=\"rowIndex\">\n    <tr [pSelectableRow]=\"fila\">\n        <td style=\"min-width: 12.5%;\" *ngFor=\"let celda of listaAdicional[ri]?.objetoFila\">\n            <span *ngIf=\"tipoDato(celda.codigo) == 'N'\">{{celda.codigo | number}}</span>\n            <span *ngIf=\"tipoDato(celda.codigo) == 'F'\">{{celda.codigo | date:'dd/MM/yy'}}</span>\n            <span *ngIf=\"tipoDato(celda.codigo) == 'T' || celda.codigo == null\">{{ celda.codigo }}</span>\n        </td>\n    </tr>\n</ng-template>\n<ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n</div>\n\n<div id=\"mantenimientoFuncionPuestraForm\" *ngIf=\"mantenimiento\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <h1>{{'mantenimiento'|translate}} del {{'funcion'|translate}}</h1>\n        <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n            (click)=\"regresar()\" label=\"{{'link_regresar' | translate}} a {{'listado'| translate}}\">\n        </button>\n    </div>\n    <div class=\"card\">\n    <formulario-dinamico #formulario [editable]=\"true\" [objeto]=\"formularioData['objecto']\"\n        [campos]=\"listaCampos\" [isMensaje]=\"false\"></formulario-dinamico>\n    <div class=\"flex justify-content-end align-items-center mb-3 mt-3\">\n        <!-- GUARDAR -->\n        <button class=\" p-button-raised ml-2\" *ngIf=\"controles.get('modificar') && !procesoAutorizacionBPM\" pButton\n            [label]=\"(nuevoRegistro == true ? ('link_guardar'| translate) : ('link_actualizar'| translate))\" (click)=\"guardar()\"> <span class=\"glyphicons glyphicons-floppy-save\"\n                aria-hidden=\"true\"></span></button>\n        <!-- ELIMINAR -->\n        <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n            *ngIf=\"!nuevoRegistro && controles.get('modificar') && !procesoAutorizacionBPM\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\"></button>\n    </div>\n</div>\n</div>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { UnidadCargoModel } from '../../../models/UnidadCargoModel';\nimport { DimensionCargoModel } from '../../../models/DimensionCargoModel';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { DimensionCargoService } from '../../../services/dimension-cargo.service';\nimport { CargarControlFuncionalidadService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\n\n\n@Component({\n    selector: 'app-competencias-externas',\n    templateUrl: './competencias-externas.component.html',\n    styleUrls: ['./competencias-externas.component.scss'],\n    standalone: true,\n    imports: [TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule]\n})\nexport class CompetenciasExternasComponent implements OnInit {\n\n  procesoAutorizacionBPM: boolean;\n  perfilfuncionDTO: PerfilFuncionModel;\n  unidadCargoDTO: UnidadCargoModel;\n  listadedimension: DimensionCargoModel[] = [];\n  deshabilitar: boolean;\n  listaitemdimension: any[];\n  listaitemreferencia: any[];\n  listaItemEsperadoReglilla: any[];\n  esperadoReglilla: boolean;\n  listadatotabla: DatoorganizacionModel[]= [];\n  listaCampos: DatoorganizacionModel[] = [];\n  ordenCampos: any;\n  carpetaTitulo: string;\n\tplanta: boolean;\n\trequerimiento: boolean;\n\tdescripcionCargo: boolean;\n\tfiltroCompExt: DimensionCargoModel = new DimensionCargoModel();\n\tcompetenciasExternas: DimensionCargoModel[] = [];\n\tpaginator = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t  };\n\tcontroles: Map<string, boolean>;\n\tnuevo: boolean;\n\tinsertar: boolean;\n\tcompetencia: boolean;\n\tdimensionDTO: DimensionCargoModel;\n\tmantenimiento: boolean;\n\tformularioData: any[];\n\tlistaCamposFormulario: any[];\n\tcargando: boolean;\n\tvalidando: boolean;\n\n\n  constructor(private dimensionCargoSvc : DimensionCargoService,private controlFuncionService: CargarControlFuncionalidadService,) {}\n\n  ngOnInit(): void {\n    this.inicializarCompetencias();\n    }\n    async inicializarCompetencias(){\n    try {\n      let parametro = window.location.href;\n      if (parametro.endsWith(\"plantaPersonal\")) {\n        this.planta = true;\n        this.requerimiento = false;\n        this.descripcionCargo = false;\n      } else if (parametro.endsWith(\"requerimientoPersonalLista\")) {\n        this.planta = false;\n        this.descripcionCargo = false;\n        this.requerimiento = true;\n      } else if (parametro.endsWith(\"DescripcionCargo\")) {\n        this.planta = false;\n        this.requerimiento = false;\n        this.descripcionCargo = true;\n      }\n    } catch (e) {\n      console.log(e);\n    }\n    }\n\n  public async init(perfilFuncion: PerfilFuncionModel, unidadCargo: UnidadCargoModel, deshabilitar: boolean, procesoAutorizacionBPM: boolean) {\n    try {\n      this.procesoAutorizacionBPM = procesoAutorizacionBPM;\n      this.perfilfuncionDTO = perfilFuncion;\n      this.unidadCargoDTO = unidadCargo;\n      this.listadedimension = [];\n      this.deshabilitar = deshabilitar;\n      this.filtroCompExt = new DimensionCargoModel();\n      this.competenciasExternas = [];\n      this.load();\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n    private funcionalidad() {\n      this.controles = new Map<string, boolean>();\n        if (this.planta || this.descripcionCargo) {\n          this.controles.set(\"modificar\", this.verificarControl('descar:modifica') != null ? true : false);\n        } else if (this.requerimiento) {\n          this.controles.set(\"modificar\", this.verificarControl('reqper:modifica') != null ? true : false);\n        }\n    }\n\n  public colocarFiltro(){\n    this.filtroCompExt.origen = (\"C\");\n    this.filtroCompExt.empresa =(this.unidadCargoDTO.empresa);\n    this.filtroCompExt.cargo =(this.unidadCargoDTO.cargo);\n    this.filtroCompExt.clasificacion =(this.unidadCargoDTO.clasificacionCargo);\n    this.filtroCompExt.categoria =(this.unidadCargoDTO.categoriaCargo);\n    this.filtroCompExt.nivelCargo = (this.unidadCargoDTO.nivelCargo);\n  }\n  \n    public async load(event?) {\n    // this.filtroCompExt.paginacionRegistroInicial = event?.first != null ? event?.first : 0;\n    // this.filtroCompExt.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10;\n    try {\n      this.cargando= true;\n      this.colocarFiltro();\n      this.paginator.totalRecords = await this.dimensionCargoSvc.cantidadDimensionCargoEvaluaciones(this.filtroCompExt).toPromise();\n      this.competenciasExternas = await this.dimensionCargoSvc.consultarDimensionCargoEvaluaciones(this.filtroCompExt).toPromise();\n      this.cargando= false;\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  public verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t  }\n\n}\n","<p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"competenciasExternas\" [rows]=\"paginator.rows\" [totalRecords]=\"this.competenciasExternas.length\"\n[paginator]=\"this.competenciasExternas.length > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n[showCurrentPageReport]=\"true\"[scrollable]=\"true\" [lazy]=\"false\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n<ng-template pTemplate=\"header\">\n    <tr>\n        <th class=\"w-6rem\">{{'competencia' | translate}}</th>\n        <th class=\"w-6rem\">{{'tipo' | translate}} {{'competencia' | translate}}</th>\n        <th class=\"w-6rem\">{{'nivel' | translate}} {{'cargo' | translate}}</th>\n        <th class=\"w-6rem\">{{'clasificacion' | translate}}</th>\n        <th class=\"w-6rem\">{{'categoria' | translate}}</th>\n        <th class=\"w-6rem\">{{'esperado' | translate}}</th>\n    </tr>\n</ng-template>\n<ng-template pTemplate=\"body\" let-bean let-editing=\"editing\" let-ri=\"rowIndex\">\n    <tr>\n        <td class=\"w-6rem\">\n            {{bean.descripcionDimension}}\n        </td>\n        <td class=\"w-6rem\">\n            {{bean.tipoDimensionNombre}}\n        </td>\n        <td class=\"w-6rem\">\n            {{bean.descripcionNivelCargo}}\n        </td>\n        <td class=\"w-6rem\">\n            {{bean.descripcionClasificacion}}\n        </td>\n        <td class=\"w-6rem\">\n            {{bean.descripcionCategoria}}\n        </td>\n        <td class=\"w-6rem\">\n            {{bean.puntajeespera}}\n        </td>\n    </tr>\n</ng-template>\n<ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>","import { UnionModel } from 'general-library-union'\n\nexport class PerfilFuncionContratoModel extends UnionModel {\n\n\tperfilFuncion: string;\n\tcontrato: number;\n\tdocumento: string;\n\tnombreCompleto: string;\n\tempresa: number;\n\tinicial: Date;\n\tfechaFinal: Date;\n\n\t\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { ErrorIntecertorService, GeneralModel, GeneralService, ParametrosGeneralModel, UtilsService } from \"general-library-union\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { DatoorganizacionModel } from '../models/DatoorganizacionModel';\nimport { PerfilFuncionModel } from '../models/PerfilFuncionModel';\nimport { PerfilFuncionContratoModel } from '../models/PerfilFuncionContratoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DescripcionCargoService {\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilService: UtilsService, private GeneralSvc: GeneralService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  crearFormulario(perfilMultiple:boolean, listadato: DatoorganizacionModel[],listaTipos: any[], nuevoOrigenLista: boolean): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('perfilMultiple',JSON.stringify(perfilMultiple));\n    formData.append('listadato',JSON.stringify(listadato));\n    formData.append('listaTipos',JSON.stringify(listaTipos));\n    formData.append('nuevoOrigenLista',nuevoOrigenLista.toString());\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/descripcionCargo/crearFormulario`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarFormulario(objeto:object, editable: boolean,perfil: PerfilFuncionModel,listadato: DatoorganizacionModel[]): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('objeto',JSON.stringify(objeto));\n    formData.append('editable',JSON.stringify(editable));\n    formData.append('perfil',JSON.stringify(perfil));\n    formData.append('listadato',JSON.stringify(listadato));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/descripcionCargo/cargarFormulario`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarTextoNovedades(perfil: PerfilFuncionModel): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('perfil',JSON.stringify(perfil));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/descripcionCargo/cargarTextoNovedades`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  validarNuevoDescripcionCargo(nuevoContrato: PerfilFuncionContratoModel): Observable<boolean> {\n    return this.httpClient.post<boolean>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/descripcionCargo/validarNuevoDescripcionCargo`, nuevoContrato).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarResponsableDescripcionCargo(llavePerfilFuncion: string): Observable<void> {\n    return this.httpClient.post<void>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/descripcionCargo/actualizarResponsableDescripcionCargo`, llavePerfilFuncion).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { PerfilFuncionContratoModel } from '../../../models/PerfilFuncionContratoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { DescripcionCargoService } from '../../../services/descripcion-cargo.service';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-perfil-contratos',\n    templateUrl: './perfil-contratos.component.html',\n    styleUrls: ['./perfil-contratos.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, InputHelperEmpleadoBotonComponent, FormsModule, InputTextModule, CalendarModule, Ripple, DatePipe, TranslateModule]\n})\nexport class PerfilContratosComponent implements OnInit {\n  @Input() perfilFuncion: string;\n  @Output() refrescarPerfil: EventEmitter<any> = new EventEmitter<any>();\n  nuevoContrato: PerfilFuncionContratoModel;\n  editarContrato: boolean;\n  filtro: PerfilFuncionContratoModel;\n  listaPerfilFuncion: PerfilFuncionContratoModel[] = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  vistaVisualizar: string;\n  blockEdit: boolean = false;\n  datoFila: any;\n\n\n  constructor(private generalSvc: GeneralService, private utilsServive: UtilsService, private notificationBusService: ToastService, private descripcionCargoSvc: DescripcionCargoService, public generalPipe: GeneralPipe, private confirmationService: ConfirmationService) { }\n\n  ngOnInit(): void {\n    this.nuevoContrato = new PerfilFuncionContratoModel();\n    this.editarContrato = true;\n  }\n\n  async load(event?) {\n    this.listaPerfilFuncion = []\n    this.paginator.totalRecords = 0\n    this.colocarFiltro();\n    this.filtro.paginacionRegistroInicial = event?.first != null ? event?.first : 0,\n      this.filtro.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10,\n      this.listaPerfilFuncion = await this.generalSvc.queryForList(new GeneralModel('PerfilFuncionContratoDTO', null, false, this.filtro)).toPromise();\n    this.paginator.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('PerfilFuncionContratoDTO', null, false, this.filtro)).toPromise();\n  }\n\n  colocarFiltro() {\n    this.filtro = new PerfilFuncionContratoModel();\n    this.filtro.perfilFuncion = (this.perfilFuncion);\n  }\n\n  public incializar(perfilFuncion: string) {\n    this.perfilFuncion = perfilFuncion;\n    this.load(null);\n  }\n\n  nuevo() {\n    this.vistaVisualizar = 'nuevo'\n    this.blockEdit = true;\n    this.datoFila = undefined;\n    this.nuevoContrato = new PerfilFuncionContratoModel();\n  }\n\n  cancelar() {\n    this.vistaVisualizar = null;\n    this.blockEdit = false;\n    this.nuevoContrato = new PerfilFuncionContratoModel();\n  }\n\n  public async guardarContrato() {\n    try {\n      if (this.validar()) {\n        this.nuevoContrato.perfilFuncion = (this.perfilFuncion);\n        this.nuevoContrato.inicial = new Date(this.nuevoContrato.inicial);\n        this.nuevoContrato.fechaFinal = this.nuevoContrato.fechaFinal ? new Date(this.nuevoContrato.inicial) : null;\n        let registroValido = await this.descripcionCargoSvc.validarNuevoDescripcionCargo(this.nuevoContrato).toPromise();\n        if (registroValido) {\n          this.nuevoContrato = await this.generalSvc.crearRegistro(new GeneralModel('PerfilFuncionContratoDTO', null, false, this.nuevoContrato)).toPromise();\n          this.descripcionCargoSvc.actualizarResponsableDescripcionCargo(this.perfilFuncion).toPromise();\n          this.notificationBusService.showInfo(\"Se ha creado el registro.\");\n          this.nuevoContrato = new PerfilFuncionContratoModel();\n\n          this.load();\n          this.refrescarPerfil.emit();\n          this.vistaVisualizar = null\n          // getBean(DescripcionCargoBean.class).refrescarPerfil();\n        } else {\n          this.notificationBusService.showInfo(\"Existe uno o mas contratos ya asociados con igual fecha o cruce entre las fechas.\");\n\n        }\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  private validar(): boolean {\n    let validador = true;\n    validador = validador && this.utilsServive.validarCampoObligatorio(this.nuevoContrato.contrato);\n    validador = validador && this.utilsServive.validarCampoObligatorio(this.nuevoContrato.inicial);\n    if (this.nuevoContrato.fechaFinal != null) {\n      validador = validador && (new Date(this.nuevoContrato.fechaFinal).getTime() > new Date(this.nuevoContrato.inicial).getTime());\n      if (!validador) {\n        this.notificationBusService.showWarning(\"Fecha inicial no puede ser mayor a la fecha final.\");\n      }\n    }\n    return validador;\n  }\n\n\n  public async editar(e) {\n    try {\n      let filaOrigen: PerfilFuncionContratoModel = e;\n      // filaContrato = filaOrigen;\n      if (this.validarActualizacion(filaOrigen)) {\n        filaOrigen.fechaAdicionado = new Date(filaOrigen.fechaAdicionado);\n        filaOrigen.fechaModificado = new Date(filaOrigen.fechaModificado);\n        filaOrigen.inicial = new Date(filaOrigen.inicial);\n        filaOrigen.fechaFinal = filaOrigen.fechaFinal ? new Date(filaOrigen.fechaFinal) : null;\n        let registroValido = await this.descripcionCargoSvc.validarNuevoDescripcionCargo(filaOrigen).toPromise();\n        if (registroValido) {\n          await this.generalSvc.update(new GeneralModel('PerfilFuncionContratoDTO', null, false, filaOrigen)).toPromise();\n          await this.descripcionCargoSvc.actualizarResponsableDescripcionCargo(this.perfilFuncion);\n          this.load();\n          this.refrescarPerfil.emit();\n          // getBean(DescripcionCargoBean.class).refrescarPerfil();\n        } else {\n          this.notificationBusService.showInfo(\"Existe uno o mas contratos ya asociados con igual fecha o cruce entre las fechas.\");\n        }\n      }\n    } catch (ex) {\n      console.log(ex);\n    }\n    return null;\n  }\n\n  initEdit(ri,dato) {\n    this.datoFila = ri;\n    this.blockEdit = true\n    dato.inicial = dato.inicial ? new Date(dato.inicial) : null;\n    dato.fechaFinal = dato.fechaFinal ? new Date(dato.fechaFinal) : null;\n  }\n\n  cancelarEditar(){\n    this.datoFila = undefined;\n    this.blockEdit = false\n  }\n\n  private validarActualizacion(filaContrato: PerfilFuncionContratoModel): boolean {\n    let validador = true;\n    validador = validador && this.utilsServive.validarCampoObligatorio(filaContrato.contrato);\n    validador = validador && this.utilsServive.validarCampoObligatorio(filaContrato.inicial);\n    if (filaContrato.fechaFinal != null) {\n      validador = validador && (filaContrato.fechaFinal.getTime() > filaContrato.inicial.getTime());\n      if (!validador) {\n        this.notificationBusService.showWarning(\"Fecha inicial no puede ser mayor a la fecha final.\");\n      }\n    }\n    return validador;\n  }\n\n  public setEmpleado(empleadoDTO): void {\n    try {\n      this.nuevoContrato.documento = (empleadoDTO.documento);\n      this.nuevoContrato.nombreCompleto = (empleadoDTO.nombreCompleto);\n      this.nuevoContrato.contrato = (empleadoDTO.contrato);\n      this.nuevoContrato.empresa = (empleadoDTO.empresa);\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n\n  eliminar(dato, event) {\n    try {\n      this.confirmationService.confirm({\n        target: event.target,\n        acceptLabel: 'Si',\n        message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n        accept: async () => {\n          await this.setEliminar(dato);\n        }\n      });\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  async setEliminar(eliminar) {\n    try {\n      this.listaPerfilFuncion = this.listaPerfilFuncion.filter((data) => data.llaveTabla !== eliminar.llavetabla)\n      await this.generalSvc.delete(new GeneralModel('PerfilFuncionContratoDTO', null, false, eliminar)).toPromise();\n      await this.descripcionCargoSvc.actualizarResponsableDescripcionCargo(this.perfilFuncion).toPromise();\n      this.notificationBusService.showInfo(\"se ha eliminado el registro.\");\n      await this.load();\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  isEdicion(ri){\n    return this.datoFila === ri;\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-end align-items-center mb-3\"><button pButton label=\"{{'link_nuevo' | translate}}\" [disabled]=\"blockEdit\" (click)=\"nuevo()\" icon=\"pi pi-plus\" class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button></div>\n<p-table #tablaGeneral id=\"tablalistaMotivo\" [value]=\"listaPerfilFuncion\" [scrollable]=\"true\"\n                            scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n                            [rows]=\"paginator.totalRecords\"\n                            [paginator]=\"paginator.totalRecords > paginator.rows\"\n                            scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n                            [rows]=\"paginator.rows\"\n                            [totalRecords]=\"paginator.totalRecords\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                            [showCurrentPageReport]=\"true\" editMode=\"row\" selectionMode=\"single\"\n                            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\n                            selectionMode=\"single\" dataKey=\"llaveTabla\">\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th style=\"max-width: 20%;\">{{'nombre' | translate}}</th>\n                                    <th style=\"max-width: 20%;\">{{'contrato' | translate}}</th>\n                                    <th style=\"max-width: 20%;\">{{'documento' | translate}}</th>\n                                    <th style=\"max-width: 15%;\">{{'fecha' | translate}} {{'inicial' | translate}}</th>\n                                    <th style=\"max-width: 15%;\">{{'fecha' | translate}} {{'final' | translate}}</th>\n                                    <th > </th>\n                                </tr>\n                                <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevo'\">\n                                    <td style=\"max-width: 20%;\">\n                                        <app-input-helper-empleado-boton \n                                            [label]=\"this.nuevoContrato.nombreCompleto != null ? this.nuevoContrato.nombreCompleto : ''\"\n                                            [(ngModel)]=\"this.nuevoContrato.nombreCompleto\" (onSelected)=\"setEmpleado($event)\">\n                                        </app-input-helper-empleado-boton>\n                                    </td>\n                                    <td style=\"max-width: 20%;\">\n                                        <input pInputText type=\"text\" [(ngModel)]=\"nuevoContrato.contrato\" disabled\n                                            maxlength=\"10\">\n                                    </td>\n                                    <td style=\"max-width: 20%;\">\n                                        <input pInputText type=\"text\" [(ngModel)]=\"nuevoContrato.documento\" disabled\n                                            maxlength=\"50\">\n                                    </td>\n                                    <td style=\"max-width: 15%;\">\n                                        <p-calendar [(ngModel)]=\"nuevoContrato.inicial\" [showIcon]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"\n                                    dateFormat=\"dd/mm/yy\"></p-calendar>\n                                    </td>\n                                    <td style=\"max-width: 15%;\"> \n                                        <p-calendar [(ngModel)]=\"nuevoContrato.fechaFinal\" [showIcon]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"\n                                    dateFormat=\"dd/mm/yy\"></p-calendar>\n                                    </td>\n                                    <td  class=\"flex justify-content-end align-items-center\">\n                                        <div>\n                                            <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"guardarContrato()\" *ngIf=\"(this.nuevoContrato.nombreCompleto != null && this.nuevoContrato.nombreCompleto != '') && (this.nuevoContrato.inicial != null)\"\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>\n                                            <button pButton pRipple type=\"button\" (click)=\"cancelar()\" icon=\"pi pi-times\"\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>\n                                        </div>\n                                    </td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-contrato let-editing=\"editing\" let-ri=\"rowIndex\">\n                                <tr [pEditableRow]=\"contrato\">\n                                    <td style=\"max-width: 20%;\">\n                                        <p-cellEditor style=\"width: 100%\">\n                                            <ng-template pTemplate=\"input\">\n                                                {{contrato.nombreCompleto}}\n                                            </ng-template>\n                                            <ng-template pTemplate=\"output\">\n                                                {{contrato.nombreCompleto}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <td style=\"max-width: 20%;\">\n                                        <p-cellEditor style=\"width: 100%\">\n                                            <ng-template pTemplate=\"input\">\n                                                {{contrato.contrato}}\n                                            </ng-template>\n                                            <ng-template pTemplate=\"output\">\n                                                {{contrato.contrato}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <td style=\"max-width: 20%;\">\n                                        <p-cellEditor style=\"width: 100%\">\n                                            <ng-template pTemplate=\"input\">\n                                                {{contrato.documento}}\n                                            </ng-template>\n                                            <ng-template pTemplate=\"output\">\n                                                {{contrato.documento}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <td style=\"max-width: 15%;\">\n                                        <p-cellEditor style=\"width: 100%\">\n                                            <ng-template pTemplate=\"input\">\n                                                <p-calendar [(ngModel)]=\"contrato.inicial\" [showIcon]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"\n                                                dateFormat=\"dd/mm/yy\"></p-calendar>\n                                            </ng-template>\n                                            <ng-template pTemplate=\"output\">\n                                                {{contrato.inicial | date : ('formatofecha' | translate )}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <td style=\"max-width: 15%;\">\n                                        <p-cellEditor style=\"width: 100%\">\n                                            <ng-template pTemplate=\"input\">\n                                                <p-calendar [(ngModel)]=\"contrato.fechaFinal\" [showIcon]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"\n                                                dateFormat=\"dd/mm/yy\"></p-calendar>\n                                            </ng-template>\n                                            <ng-template pTemplate=\"output\">\n                                                {{contrato.fechaFinal | date : ('formatofecha' | translate )}}\n                                            </ng-template>\n                                        </p-cellEditor>\n                                    </td>\n                                    <td  class=\"flex justify-content-end align-items-center\">\n                                        <div>\n                                            <!-- CHECK GUARDAR -->\n                                            <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n                                                icon=\"pi pi-check\" (click)=\"editar(contrato)\" \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>\n                                            <!-- CANCELAR -->\n                                            <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\" (click)=\"cancelarEditar()\"\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>\n                                            <!-- EDITAR -->\n                                            <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow icon=\"glyphicons glyphicons-pencil\" (click)=\"initEdit(ri,contrato)\" [disabled]=\"!isEdicion(ri) && blockEdit\"\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>\n                                            <!-- ELIMINAR -->\n                                            <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow\n                                                icon=\"pi pi-trash\" (click)=\"eliminar(contrato,$event)\" [disabled]=\"!isEdicion(ri) && blockEdit\"\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>\n                                        </div>\n                                    </td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>","import { Component, Input, OnInit } from '@angular/core';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { UnidadCargoModel } from '../../../models/UnidadCargoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-encabezado-descripcion-cargo',\n    templateUrl: './encabezado-descripcion-cargo.component.html',\n    styleUrls: ['./encabezado-descripcion-cargo.component.scss'],\n    standalone: true,\n    imports: [NgIf,TranslateModule]\n})\nexport class EncabezadoDescripcionCargoComponent implements OnInit {\n  @Input() public puestoTrabajoDTO: PuestoTrabajoModel;\n  @Input() public isPerfilUnidadCargo: boolean;\n  @Input() public isPerfilPuesto: boolean;\n  @Input() public esUnidadCargo: boolean;\n  @Input() public unidadCargo: UnidadCargoModel;\n  @Input() public isTieneLider: boolean;\n  @Input() public isUnidadIgualLider: boolean;\n  @Input() public selectedPanel: string;\n  \n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"empleado\" style=\"justify-content: center; align-items: center\">\n\n    <div class=\"flex\">\n\n        <div style=\"display: flex; justify-content: center; align-items: center; \">\n            <div class=\"avatar-container\">\n                <img [src]=\"puestoTrabajoDTO?.caminoFotoOcupa\" alt=\"Foto\" class=\"avatar-image\"\n                    *ngIf=\"puestoTrabajoDTO?.caminoFotoOcupa?.includes('data:image/png;base64,')\">\n                <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\"\n                    *ngIf=\"!puestoTrabajoDTO?.caminoFotoOcupa?.includes('data:image/png;base64,')\">\n            </div>\n        </div>\n        <div class=\"field\">\n            <div>\n                <div>\n                    <div class=\"col-md-12 ml-3\">\n                        <div class=\"p-fluid p-formgrid grid col-12\">\n                            <h1 class=\"w-full mb-3\">{{puestoTrabajoDTO?.cedulaOcupa}} :\n                                {{puestoTrabajoDTO?.nombreOcupa}}</h1>\n\n\n                            <!--EMPRESA-->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p><span class=\"font-medium\">{{('empresa') | translate}}: </span><br>\n                                    <span>{{puestoTrabajoDTO?.nombreEmpresa}}</span></p>\n                            </div>\n\n                            <!--UNIDAD-->\n                            <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"isPerfilUnidadCargo\">\n                                <p><span class=\"font-medium\">{{('contrato') | translate}}: </span><br>\n                                    <span>{{unidadCargo?.unidad +  ':' +  unidadCargo?.nombreUnidad}}</span></p>\n                            </div>\n\n                            <!--CONTRATO-->\n                            <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"isPerfilUnidadCargo\">\n                                <p><span class=\"font-medium\">{{('cargo') | translate}}: </span><br>\n                                    <span>{{unidadCargo?.cargo +  ':' +  unidadCargo?.nombreCargo + ':' + unidadCargo?.nivelCargo}}</span></p>\n                            </div>\n\n                              <!--UNIDAD-->\n                              <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"isPerfilPuesto\">\n                                <p><span class=\"font-medium\">{{('contrato') | translate}}: </span><br>\n                                    <span>{{puestoTrabajoDTO?.unidad +  ':' +  puestoTrabajoDTO?.nombreUnidad}}</span></p>\n                            </div>\n\n                            <!--CONTRATO-->\n                            <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"isPerfilPuesto\">\n                                <p><span class=\"font-medium\">{{('cargo') | translate}}: </span><br>\n                                    <span>{{puestoTrabajoDTO?.cargo +  ':' +  puestoTrabajoDTO?.nombreCargo + ':' + puestoTrabajoDTO?.nivelCargo}}</span></p>\n                            </div>\n\n                            <!-- CARGOS -->\n                            <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"esUnidadCargo\">\n                                <p><span class=\"font-medium\">{{(('numero') | translate) +' '+ ('cargos') | translate}}: </span><br>\n                                    <span>{{unidadCargo?.cantidadCargo}}</span></p>\n                            </div>\n\n                            <!--PUESTO-->\n                            <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"puestoTrabajoDTO?.numeroPuesto != null && !esUnidadCargo\">\n                                <p><span class=\"font-medium\">{{('posicion') | translate}}: </span><br> <span>\n                                        {{puestoTrabajoDTO?.numeroPuesto}}</span></p>\n                            </div>\n                        \n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n\n<div>\n    <div class=\" card mt-2\" *ngIf=\"isTieneLider && selectedPanel == 'BASE'\">\n        <div class=\"mt-3\">\n            <h5><i class=\"glyphicons glyphicons-building\"></i>{{'lider' | translate}}</h5>\n        </div>\n        <div class=\"col-md-12 ml-3\">\n            <div class=\"p-fluid p-formgrid grid col-12\">\n                <!-- UNIDAD -->\n                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"isTieneLider && !isUnidadIgualLider\">\n                    <p><span class=\"font-medium\">{{(('Unidad') | translate)}}: </span><br>\n                        <span>{{unidadCargo.UnidadJefe + ':'+ unidadCargo.nombreUnidadJefe}}</span></p>\n                </div>\n                <!-- CARGO -->\n                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"isTieneLider\">\n                    <p><span class=\"font-medium\">{{(('numero') | translate)}}: </span><br>\n                        <span>{{unidadCargo.cargoJefe + ':'+ unidadCargo.nombreCargoJefe +':'+ unidadCargo.nivelCargoJefe}}</span></p>\n                </div>\n                <!-- NOMBRE -->\n                <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"isTieneLider\">\n                    <p><span class=\"font-medium\">{{(('nombre') | translate) +' '+ ('jefe') | translate}}: </span><br>\n                        <span>{{(unidadCargo.nombreOcupaJefe ? unidadCargo.nombreOcupaJefe : '') + ':' + (unidadCargo.cedulaOcupaJefe ? unidadCargo.cedulaOcupaJefe : '')}}</span></p>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\n\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { DatoorganizacionModel } from '../models/DatoorganizacionModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class datoOrganizacionService {\n\n  constructor(private httpClient: HttpClient, \n              private errorInterceptor: ErrorIntecertorService, \n              private utilsService: UtilsService,\n              private generalService: GeneralService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  carpetaDescripcion(llaveOrganizacion: number, aliasRol: string): Observable<any[]>{\n    let formData = new FormData();\n    formData.append(\"llaveOrganizacion\", llaveOrganizacion.toString());\n    formData.append(\"aliasRol\", aliasRol);\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/datoOrganizacion/carpetaDescripcion`, formData).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  columnaCarpeta(llaveOrganizacion: number, tabla: string): Observable<Map<string,string[]>> {\n    let formData = new FormData();\n    formData.append(\"llaveOrganizacion\", llaveOrganizacion.toString());\n    formData.append(\"tabla\", tabla);\n    return this.httpClient.post<Map<string,string[]>>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/datoOrganizacion/columnaCarpeta`, formData).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  guardar(datoorganizacionDTO: DatoorganizacionModel): Observable<DatoorganizacionModel>{\n    return this.httpClient.post<DatoorganizacionModel>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/datoOrganizacion/guardar`, datoorganizacionDTO).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  columnaGestionMeta(organizacion: number,llaveProcedimiento: string): Observable<DatoorganizacionModel[]>{\n    let formData = new FormData();\n    formData.append('organizacion',organizacion.toString());\n    formData.append('llaveProcedimiento',llaveProcedimiento);\n    return this.httpClient.post<DatoorganizacionModel[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/datoOrganizacion/columnaGestionMeta`, formData).pipe(\n        catchError(this.handleError)\n      );\n  }\n\n  async cargarCamposFormulario(llaveBase: string, tipo: string, tabla: string) {\n    var datoorganizacionDTO = new DatoorganizacionModel();\n    datoorganizacionDTO.tipo = tipo;\n    datoorganizacionDTO.tabla = tabla;\n    datoorganizacionDTO.llaveBase = this.utilsService.rightpad(llaveBase, 32, ' ');\n    return await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoorganizacionDTO)).toPromise();\n  }\n\n  cargarDatosTablas(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/datoOrganizacion/cargarDatosTablas`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  \n  eliminarproceso(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/datoOrganizacion/eliminarproceso`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n}\n","import { ChangeDetectorRef, Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { AuthService,Cambio, CampoFormularioCons, CampoFormularioModel, CargarControlFuncionalidadService, EncriptadoBasicoService, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { PerfilFuncionService, } from '../../../services/perfil-funcion.service';\nimport { UnidadCargoModel } from '../../../models/UnidadCargoModel';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { PuestoTrabajoService } from '../../../services/puesto-trabajo.service';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { datoOrganizacionService } from '../../../services/dato-organizacion.service';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes//datoOrganizacion.pipe';\nimport { MenuItem, PrimeTemplate } from 'primeng/api';\nimport { DescripcionCargoService } from '../../../services/descripcion-cargo.service';\nimport { DescripcionCargoPipe } from '../../../pipes/descripcion-cargo.pipe';\nimport { NovedadPerfilModel } from '../../../models/NovedadPerfilModel';\nimport { CompetenciasComponent } from '../competencias/competencias.component';\nimport { FuncionPuestraComponent } from '../funcion-puestra/funcion-puestra.component';\nimport { PerfilCargoComponent } from '../perfil-cargo/perfil-cargo.component';\nimport { DatosBasicosEmpresaCons } from '../../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { TablaAdicionalComponent } from '../tabla-adicional/tabla-adicional.component';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { formatDate, NgFor, NgIf, NgStyle } from '@angular/common';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TablaCaracteristicaModel } from '../../../models/TablaCaracteristicaModel';\nimport { TablaCaracteristicaPipe } from '../../../pipes/tabla-caracteristica.pipe';\nimport { CompetenciasExternasComponent } from '../competencias-externas/competencias-externas.component';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PerfilContratosComponent } from '../perfil-contratos/perfil-contratos.component';\nimport { EncabezadoDescripcionCargoComponent } from '../encabezado-descripcion-cargo/encabezado-descripcion-cargo.component';\nimport { AccordionModule } from 'primeng/accordion';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule } from '@angular/forms';\nimport { PanelMenuModule } from 'primeng/panelmenu';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { TabViewModule } from 'primeng/tabview';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\n\n@Component({\n\tselector: 'app-descripcion-cargo',\n\ttemplateUrl: './descripcion-cargo.component.html',\n\tstyleUrls: ['./descripcion-cargo.component.scss'],\n\tstandalone: true,\n\timports: [NgStyle,TabViewModule,PanelMenuModule,NgFor,ButtonDirective, Ripple, NgIf, ProgressBarModule, PanelMenuModule, EncabezadoDescripcionCargoComponent, FormsModule, \n\t\tInputTextareaModule, AccordionModule, PrimeTemplate, CompetenciasComponent, CompetenciasExternasComponent, FuncionPuestraComponent, TablaAdicionalComponent, \n\t\tPerfilCargoComponent, PerfilContratosComponent, TranslateModule, FormulariodinamicoComponent]\n})\nexport class DescripcionCargoComponent implements OnInit {\n\tocultarMenuContratos: boolean;\n\tpuestoMultiple: boolean;\n\tconsultar: boolean;\n\tnavegacion: string;\n\torigenLista: boolean;\n\tnuevoOrigenLista: boolean;\n\tperfil: PerfilFuncionModel = new PerfilFuncionModel();\n\tpuestoTrabajo: string;\n\ttipoPerfil: string;\n\tpuestoTrabajoDTO: PuestoTrabajoModel;\n\tesUnidadCargo: boolean;\n\tmodificaHistorico: boolean;\n\tvistaVisualizar: any;\n\tvisiblePopup: any;\n\tunidadCargo: UnidadCargoModel;\n\tdatoorganizacion: DatoorganizacionModel;\n\tlistadato: DatoorganizacionModel[] = [];\n\tselectedPanel: string;\n\tlistaEtapas: any;\n\tmanejaEtapas: MenuItem[] = [];\n\tmenuContratos: MenuItem[] = [];\n\tmapadescripcion = new Map<string, string[]>();\n\tlistaTipos: { key: string; label: string; }[];\n\tdeshabilitar: boolean = false;\n\tprocesoAutorizacion: boolean = false;\n\tnoEditar: boolean = false;\n\tmapacompetencia: Map<string, string[]> = new Map<string, string[]>();\n\tmapafuncion: Map<string, string[]> = new Map<string, string[]>();\n\t@ViewChild('compentencia') competencias: CompetenciasComponent;\n\t@ViewChild('competenciaExterna') competenciaExterna: CompetenciasExternasComponent;\n\t@ViewChild('funcion') funcionPuestra: FuncionPuestraComponent;\n\t@ViewChild('perfilCargo') perfilCargo: PerfilCargoComponent;\n\t@ViewChild('tablaAdicional') tablaAdicionalBean: TablaAdicionalComponent;\n\t@ViewChild('formulario') formulario: FormulariodinamicoComponent;\n\t@ViewChild('perfilContratos') perfilContratos: PerfilContratosComponent;\n\t@Output() setVista: EventEmitter<any> = new EventEmitter();\n\n\tdinamico: any = '';\n\tmapaperfil: Map<string, string[]>;\n\tmapaAdicional: Map<string, string[]>;\n\tcargando: boolean;\n\tlistaCampos: CampoFormularioModel[] = [];\n\tcampos: any;\n\tmapaDescripcionCargo: { key: string; label: string; }[];\n\tmodificar: boolean;\n\tactiveIndex: number = 0;\n\tverCompetenciaExterna: boolean = false;\n\tempresa: number;\n\tcargo: string;\n\tunidad: string;\n\tselectedItem: any;\n\tisTabViewCollapsed: boolean;\n\n\tconstructor(private authService: AuthService, private generalService: GeneralService, private notificationBusService: ToastService, private utilService: UtilsService, private cargarArchivo: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService, public descripcionCargoPipe: DescripcionCargoPipe, private listaConstantesPipe: ListaConstantesPipe, private popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\tprivate perfilSvc: PerfilFuncionService, private puestoTrabajoSvc: PuestoTrabajoService, private datoOrganizacionSvc: datoOrganizacionService, private controlFuncionService: CargarControlFuncionalidadService, public datoOrganizacionPipe: DatoOrganizacionPipe, private descripcionSvc: DescripcionCargoService, private datosBasicosEmpresaCons: DatosBasicosEmpresaCons,\n\t\tprivate generalPipe: GeneralPipe, private tablaCarasteristicaPipe: TablaCaracteristicaPipe, private translateService: TranslateService, private datoorganizacionPipe: DatoOrganizacionPipe,private cd: ChangeDetectorRef,\n\t\tprivate saraAplicacionService: SaraAplicacionService) { }\n\n\tngOnInit(): void {\n\t\tthis.modificar = this.verificarControl('descar:modificar');\n\t\tlet map: Map<string, string> = new Map<string, string>();\n\t\tlet map1: Map<string, string> = new Map<string, string>();\n\t\tthis.descripcionCargoPipe.TIPOUNIDAD.forEach(element => {\n\t\t\tmap.set(element.codigo, element.nombre);\n\t\t})\n\t\tthis.listaTipos = Array.from(map, ([key, label]) => ({ key, label }));\n\t\tthis.descripcionCargoPipe.ESTADODESCRIPCIONCARGO.forEach(element => {\n\t\t\tmap.set(element.codigo, element.nombre);\n\t\t})\n\t\tthis.mapaDescripcionCargo = Array.from(map1, ([key, label]) => ({ key, label }));\n\t}\n\n\tpublic async cargarPerfil(empresa: number, unidad: string, cargo: string, puestoTrabajo: string, destino: string, navegacion: string, consultar: boolean) {\n\t\tthis.setCargando(true);\n\t\tthis.utilService.resizeWindowIFrame();\n\t\tthis.consultar = consultar;\n\t\tthis.empresa = empresa;\n\t\tthis.cargo = cargo;\n\t\tthis.unidad = unidad;\n\t\tthis.navegacion = navegacion;\n\t\t// setDestino(destino);\n\t\t// setNavegacion(navegacion);\n\t\tthis.origenLista = false;\n\t\tthis.nuevoOrigenLista = false;\n\t\tthis.puestoTrabajo = puestoTrabajo;\n\t\tthis.cargarEncabezado();\n\n\t\tthis.tipoPerfil = await this.perfilSvc.buscarPerfilDatoEmpresa(empresa).toPromise();\n\t\tthis.esUnidadCargo = this.tipoPerfil == (\"U\") || this.tipoPerfil == (\"L\");\n\t\tthis.perfil = await this.perfilSvc.cargarPerfil(cargo, unidad, empresa, puestoTrabajo, null).toPromise();\n\t\tif (this.perfil == null) {\n\t\t\tthis.notificationBusService.showInfo(\"Perfil de cargo no relacionado\");\n\t\t\tthis.utilService.resizeWindowIFrame();\n\t\t\treturn;\n\t\t}\n\t\tif (this.isPerfilMultiple() && !this.validarContratoOcupaPuesto()) {\n\t\t\tthis.notificationBusService.showWarning(\"El perfil tiene asociado un contrato que no corresponde al del puesto de trabajo\");\n\t\t}\n\t\tthis.cargarUnidadCargo(empresa, unidad, cargo);\n\t\tthis.traerPerfil();\n\t\tif (consultar != true) {\n\t\t\tthis.cargarMenuContratos();\n\t\t\tthis.utilService.resizeWindowIFrame();\n\t\t}\n\t\tthis.visiblePopup = (true);\n\t\tthis.vistaVisualizar = (null);\n\t\tthis.consultar = consultar;\n\t\tawait this.utilService.sleep(10);\n\t\tthis.setCargando(false)\n\t\tthis.utilService.resizeWindowIFrame();\n\t}\n\n\n\tasync cargarPerfilMultiple(perfilFuncionDTO: PerfilFuncionModel, nuevo: boolean, navegacion: string) {\n\t\ttry {\n\t\t\tconst inicio = performance.now();\n\t\t\tthis.ocultarMenuContratos = nuevo;\n\t\t\tthis.puestoMultiple = true;\n\t\t\tthis.consultar = false;\n\t\t\tthis.setNavegacion(navegacion);\n\t\t\tthis.origenLista = true;\n\t\t\tthis.nuevoOrigenLista = nuevo;\n\t\t\tif (perfilFuncionDTO != null) {\n\t\t\t\tthis.perfil = perfilFuncionDTO;\n\t\t\t}\n\t\t\tthis.puestoTrabajo = this.perfil.puestoTrabajo;\n\t\t\t//Se carga Puesto de Trabajo\n\t\t\tawait this.cargarEncabezado();\n\t\t\tif (this.perfil.empresa == null) {\n\t\t\t\tthis.perfil.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t}\n\t\t\tif (this.tipoPerfil == '' || this.tipoPerfil == undefined || this.tipoPerfil == null) {\n\t\t\t\tlet data = await this.perfilSvc.buscarPerfilDatoEmpresa(this.perfil.empresa).toPromise();\n\t\t\t\tthis.tipoPerfil = data['repuesta'];\n\t\t\t}\n\t\t\tthis.setCargando(true);\n\t\t\tawait this.cargarUnidadCargo(this.puestoTrabajoDTO.empresa, this.puestoTrabajoDTO.unidad, this.puestoTrabajoDTO.cargo);\n\t\t\tif (nuevo) {\n\t\t\t\tthis.perfil.unidadPerfil = (this.puestoTrabajoDTO.unidad);\n\t\t\t\tthis.perfil.nombreUnidadPerfil = this.puestoTrabajoDTO.nombreUnidad;\n\t\t\t}\n\t\t\tthis.esUnidadCargo = this.tipoPerfil == \"U\" || this.tipoPerfil == \"L\";\n\t\t\tawait this.traerPerfil();\n\t\t\tif (!nuevo) {\n\t\t\t\tthis.cargarMenuContratos();\n\t\t\t}\n\t\t\tthis.modificaHistorico = this.verificarControl(\"descar:modificahistorico\");\n\t\t\tthis.setCargando(false);\n\t\t\tthis.setVisiblePopup(true);\n\t\t\tthis.setVistaVisualizar(null);\n\t\t\tconst fin = performance.now();\n\t\t\tconst tiempo = (fin - inicio) / 1000; // Convierte a segundos\n    \t\tconsole.log(`El método se demoró: ${tiempo.toFixed(3)} segundos.`);\n\t\t\tawait this.funcionPuestra.init(this.perfil, this.isDeshabilitar(), this.procesoAutorizacion);\n\t\t\tawait this.perfilCargo.init(this.perfil, this.isDeshabilitar(), this.procesoAutorizacion);\n\t\t\tawait this.competencias.init(this.perfil, this.unidadCargo, this.isDeshabilitar(), this.procesoAutorizacion);\n\t\t\tawait this.tablaAdicionalBean.ngOnInit();\n\t\t\tawait this.tablaAdicionalBean?.cargarListados();\n\t\t\tawait this.competenciaExterna.init(this.perfil, this.unidadCargo, this.isDeshabilitar(), this.procesoAutorizacion);\n\t\t\tthis.cd.detectChanges();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tasync cargarEncabezado() {\n\t\ttry {\n\t\t\tif (this.puestoTrabajo != null) {\n\t\t\t\tthis.puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\t\tthis.puestoTrabajoDTO.llave = this.puestoTrabajo;\n\t\t\t\tthis.puestoTrabajoDTO = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, this.puestoTrabajoDTO)).toPromise();\n\t\t\t\tif (this.puestoTrabajoDTO == null) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (this.puestoTrabajoDTO.cedulaOcupa != null) {\n\t\t\t\t\tif (this.puestoTrabajoDTO.caminoFotoOcupa != null && this.puestoTrabajoDTO.caminoFotoOcupa != Constantes.ESPACIO_BLANCO) {\n\t\t\t\t\t\tlet propiedad = 'ruta_fotos';\n\t\t\t\t\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.puestoTrabajoDTO.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n\t\t\t\t\t\t\t\tconst reader = new FileReader();\n\t\t\t\t\t\t\t\treader.onload = () => {\n\t\t\t\t\t\t\t\t\tconst dataUrl = reader.result as string;\n\t\t\t\t\t\t\t\t\tconst base64 = dataUrl.split(',')[1];\n\t\t\t\t\t\t\t\t\tthis.puestoTrabajoDTO.caminoFotoOcupa = 'data:image/png;base64,' + base64\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treader.readAsDataURL(blob)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tthis.puestoTrabajoDTO.caminoFotoOcupa = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tprivate async cargarUnidadCargo(empresa: number, unidad: string, cargo: string) {\n\t\ttry {\n\t\t\tthis.unidadCargo = new UnidadCargoModel();\n\t\t\tthis.unidadCargo.empresa = empresa;\n\t\t\tthis.unidadCargo.unidad = unidad;\n\t\t\tthis.unidadCargo.cargo = cargo;\n\t\t\tlet unidadCargoTemp: UnidadCargoModel = await this.generalService.queryForObject(new GeneralModel('UnidadCargoDTO', null, false, this.unidadCargo)).toPromise();\n\t\t\tif (unidadCargoTemp != null) {\n\t\t\t\tthis.unidadCargo = unidadCargoTemp;\n\t\t\t}\n\t\t\tif (this.unidadCargo.cargo != null) {\n\t\t\t\tlet cargoDTO = new CargoModel();\n\t\t\t\tcargoDTO.empresa = (this.unidadCargo.empresa);\n\t\t\t\tcargoDTO.cargo = (this.unidadCargo.cargo);\n\t\t\t\tcargoDTO = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, cargoDTO)).toPromise();\n\t\t\t\tif (cargoDTO != null) {\n\t\t\t\t\tthis.unidadCargo.clasificacionCargo = (cargoDTO.clasificacion);\n\t\t\t\t\tthis.unidadCargo.nivelCargo = (cargoDTO.nivelCargo);\n\t\t\t\t\tthis.unidadCargo.categoriaCargo = (cargoDTO.categoria);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.unidadCargo = await this.puestoTrabajoSvc.construirPuestoLider(this.unidadCargo, this.puestoTrabajo).toPromise();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tprivate async traerPerfil() {\n\t\tlet aliasRol: string = this.authService.getTokenKey('aliasRol');\n\t\tif (!this.isRestringirVisibilidad(\"restringeVisibilidad\")) {\n\t\t\taliasRol = null;\n\t\t}\n\t\tthis.listaEtapas = await this.datoOrganizacionSvc.carpetaDescripcion((await this.saraAplicacionService.getEmpresa()).organizacion, aliasRol).toPromise();\n\t\tthis.selectedPanel = this.listaEtapas.length > 0 ?this.listaEtapas[0].tabla : '';\t\t\n\t\tawait this.cargarEtapas();\n\t\tthis.datoorganizacion = new DatoorganizacionModel();\n\t\tthis.datoorganizacion.organizacion = (await this.saraAplicacionService.getEmpresa()).organizacion;\n\t\tthis.datoorganizacion.perfil = this.perfil.llaveTabla;\n\t\tthis.listadato = await this.perfilSvc.obtenerperfil(this.datoorganizacion).toPromise();\n\t\tthis.selectedPanel = \"BASE\";\n\t\tawait this.competencia();\n\t\t// await this.funcion();\n\t\tawait this.Perfil();\n\t\tawait this.verDescripcion();\n\t\t// getBean(DescripcionCargoOpcionesBean.class).setDestino(\"#{descripcionCargoBean.vistaVisualizar}\");\n\t}\n\n\tasync activeIndexChange(index) {\n\t\tthis.activeIndex = index != null ? index : this.activeIndex;\n\t\tif (this.verCompetenciaExterna) {\n\t\t\treturn\n\t\t} else {\n\t\t\tthis.verCompetenciaExterna = true;\n\t\t\tthis.cd.detectChanges();\n\t\t}\n\n\t}\n\n\tpublic async competencia() {\n\t\tthis.mapacompetencia = new Map(await this.mapaLista(this.datoOrganizacionPipe.COMPETENCIA));\n\t\tthis.cd.detectChanges();\n\t}\n\n\tpublic async Perfil() {\n\t\tthis.mapaperfil = new Map(await this.mapaLista(this.datoOrganizacionPipe.PERFIL));\n\t\tthis.perfilCargo?.setCargando(true);\n\t\tthis.cd.detectChanges();\n\t\t// this.perfilCargo?.init(this.perfil, this.isDeshabilitar(), this.procesoAutorizacion);\n\t\tthis.perfilCargo?.setCargando(false);\n\t}\n\n\tpublic async funcion() {\n\t\tthis.mapafuncion = new Map(await this.mapaLista(this.datoOrganizacionPipe.FUNCION));\n\t\tthis.cd.detectChanges();\n\t}\n\n\n\tpublic async verDescripcion() {\n\t\tawait this.descripcion();\n\t\tawait this.crearFormulario();\n\t\tawait this.cargarFormulario(this.perfil);\n\t\tawait this.cargarTextoNovedades(this.perfil);\n\t}\n\n\tpublic async crearFormulario() {\n\t\tlet data = await this.descripcionSvc.crearFormulario(this.isPerfilMultiple(), this.listadato, this.listaTipos, this.nuevoOrigenLista).toPromise()\n\t}\n\n\tpublic async cargarFormulario(objeto) {\n\t\tlet data = await this.descripcionSvc.cargarFormulario(objeto, (!this.deshabilitar && !this.procesoAutorizacion && !this.noEditar), this.perfil, this.listadato).toPromise();\n\t\tthis.dinamico = data['formulario'];\n\t\tthis.listaCampos = data['listaCampos'];\n\t\tawait this.setValorCampos();\n\t}\n\n\tasync setValorCampos() {\n\n\t\tthis.listaCampos?.forEach(element => {\n\n\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\telement.valor = element.valor\n\t\t\t}\n\n\t\t\tif (element.tipo === 'F') {\n\n\t\t\t\telement.valor = element.valor ? new Date(element.valor) : null;\n\n\t\t\t} else if (element.tipo === 'H') {\n\n\t\t\t\tif (element.valor) {\n\n\t\t\t\t\tlet listaValortemp = [];\n\t\t\t\t\tlet valorRecorrer = element.valor.split(';');\n\t\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t\t\tlistaValortemp.push({ label: element2, value: element2 });\n\t\t\t\t\t});\n\n\t\t\t\t\telement.valor = listaValortemp\n\t\t\t\t}\n\n\t\t\t} else if (element.tipo === 'P') {\n\n\t\t\t\tlet isVisible = false;\n\n\t\t\t\tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\n\t\t\t\t\tif (element.popup == pop.id) {\n\t\t\t\t\t\telement.popupComponent = pop.popup;\n\t\t\t\t\t\telement['cargarValorPopup'] = (event) => { element.valor = event };\n\n\t\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t\t\treadonly: isVisible,\n\t\t\t\t\t\t\tshowDialog: false,\n\t\t\t\t\t\t\tlabel: element.valor,\n\t\t\t\t\t\t\tlabelInput: '',\n\t\t\t\t\t\t\t//smostrarX: true,\n\t\t\t\t\t\t\tonChange: (event) => element.cargarValorPopup(event)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\t\telement.listaPopups.push(element.popup)\n\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate async cargarTextoNovedades(perfil: PerfilFuncionModel) {\n\t\tlet data = await this.descripcionSvc.cargarTextoNovedades(perfil).toPromise();\n\t}\n\n\n\tpublic async descripcion() {\n\t\tthis.mapadescripcion.clear();\n\t\tthis.mapadescripcion = new Map(await this.mapaLista(this.datoOrganizacionPipe.BASE));\n\t}\n\n\tpublic async mapaLista(tabla: string): Promise<Map<string, string[]>> {\n\t\tlet map = await this.datoOrganizacionSvc.columnaCarpeta(parseInt(this.authService.getTokenKey('numeroEmpresa')), tabla).toPromise();\n\t\tlet mapRespuesta = new Map();\n\t\tObject.keys(map).forEach(key => {\n\t\t\tmapRespuesta.set(key, map[key]);\n\t\t  });\n\t\t  return new Map(mapRespuesta);\n\t}\n\n\n\n\tpublic async cargarEtapas(): Promise<void> {\n\t\ttry {\n\t\t\tthis.manejaEtapas = [];\n\t\t\tlet contenidoMenu: MenuItem[] = [];\n\t\n\t\t\t// Mapa que asocia cada tabla con su imagen correspondiente\n\t\t\tconst imagenesPorTabla: Record<string, string> = {\n\t\t\t\t[this.datoOrganizacionPipe.BASE]: ImagenesCons.user,\n\t\t\t\t[this.datoOrganizacionPipe.RELACION]: ImagenesCons.log_book,\n\t\t\t\t[this.datoOrganizacionPipe.GRUPO]: ImagenesCons.group,\n\t\t\t\t[this.datoOrganizacionPipe.INDUCCION]: ImagenesCons.tags,\n\t\t\t\t[this.datoOrganizacionPipe.ENTRENAMIENTO]: ImagenesCons.industrial_zone,\n\t\t\t\t[this.datoOrganizacionPipe.FUNCION]: ImagenesCons.paperclip,\n\t\t\t\t[this.datoOrganizacionPipe.COMPETENCIA]: ImagenesCons.user_key,\n\t\t\t\t[this.datoOrganizacionPipe.PERFIL]: ImagenesCons.parents,\n\t\t\t\t[this.datoOrganizacionPipe.REQUERIMIENTO]: ImagenesCons.clock,\n\t\t\t\t[this.datoOrganizacionPipe.TABLA1]: ImagenesCons.align_right,\n\t\t\t\t[this.datoOrganizacionPipe.TABLA2]: ImagenesCons.list_numbered,\n\t\t\t\t[this.datoOrganizacionPipe.TABLA3]: ImagenesCons.paste,\n\t\t\t\t[this.datoOrganizacionPipe.TABLA4]: ImagenesCons.calculator,\n\t\t\t\t[this.datoOrganizacionPipe.TABLA5]: ImagenesCons.certificate,\n\t\t\t\t[this.datoOrganizacionPipe.FORMACION]: ImagenesCons.certificate,\n\t\t\t\t[this.datoOrganizacionPipe.EPP]: ImagenesCons.settings,\n\t\t\t\t[this.datoOrganizacionPipe.DOTACIONEQUIPO]: ImagenesCons.shirt,\n\t\t\t};\n\t\t\t// Si hay elementos en la lista de etapas\n\t\t\tif (this.listaEtapas.length > 0) {\n\t\t\t\tfor (const dato of this.listaEtapas) {\n\t\t\t\t\t// Asignar imagen según el valor de la tabla o usar una imagen por defecto\n\t\t\t\t\tconst imagen = imagenesPorTabla[dato.tabla] || ImagenesCons.user;\n\t\t\t\t\tcontenidoMenu.push({\n\t\t\t\t\t\tid: dato.llave,\n\t\t\t\t\t\trouterLinkActiveOptions: dato,\n\t\t\t\t\t\tlabel: this.capitalizarTexto(dato.descripcion.toLowerCase()),\n\t\t\t\t\t\ticon: imagen,\n\t\t\t\t\t\tcommand: async (event) => { await this.cargarLista(dato.llave, dato); },\n\t\t\t\t\t\tvisible: dato.tabla === this.datoOrganizacionPipe.BASE || !this.nuevoOrigenLista\n\t\t\t\t\t});\n\t\t\t\t}\n\t\n\t\t\t\t// Adiciona el menú principal a manejaEtapas\n\t\t\t\tthis.manejaEtapas.push({\n\t\t\t\t\tlabel: \"Men\" + Constantes.U_TILDE_MIN,\n\t\t\t\t\ticon: ImagenesCons.home,\n\t\t\t\t\titems: contenidoMenu,\n\t\t\t\t\texpanded: true\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\tcargarMenuContratos() {\n\t\tthis.menuContratos.push({\n\t\t\tlabel: this.translateService.instant('contratos'), icon: ImagenesCons.user, visible: this.isRestringirVisibilidad(\"opcontratos\"),\n\t\t\titems: [{ routerLinkActiveOptions: this.descripcionCargoPipe.OPCION_CONTRATOS_MENU, label: this.translateService.instant('contratos'), icon: ImagenesCons.user_add, command: async (event) => { await this.seleccionarMenuContratos(this.descripcionCargoPipe.OPCION_CONTRATOS_MENU) } }]\n\t\t})\n\t}\n\n\tseleccionarMenuContratos(event) {\n\t\ttry {\n\t\t\tif(event == this.selectedPanel){\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.selectedPanel = event;\n\t\t\tthis.toggleTabView()\n\t\t\tif (this.selectedPanel == (this.descripcionCargoPipe.OPCION_CONTRATOS_MENU)) {\n\t\t\t\tthis.perfilContratos.incializar(this.perfil.llaveTabla);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic async cargarLista(id,item) {\n\t\ttry {\n\t\t\tif(this.selectedItem == id){\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tthis.toggleTabView();\n\t\t\tthis.selectedItem = id;\n\t\t\tthis.selectedItem =  item.llave\n\t\t\tlet tablaSeleccion: DatoorganizacionModel = item;\n\t\t\tconst tieneCoincidencia = this.datoorganizacionPipe.LISTA_TABLAS_ADICIONALES.some(pipe => pipe.codigo === tablaSeleccion.tabla);\n\t\t\tif (tieneCoincidencia) {\n\t\t\t\ttablaSeleccion.seleccionado = (true);\n\t\t\t\tthis.selectedPanel = \"ADICIONAL\";\n\t\t\t\tthis.mapaAdicional = await this.mapaLista(tablaSeleccion.tabla);\n\t\t\t\tthis.tablaAdicionalBean?.setTabla(tablaSeleccion.tabla);\n\t\t\t\tthis.tablaAdicionalBean?.setPerfilfuncionDTO(this.perfil);\n\t\t\t\tthis.tablaAdicionalBean?.setProcesoAutorizacionBPM(this.procesoAutorizacion);\n\t\t\t\tawait this.tablaAdicionalBean?.load();\n\t\t\t\tawait this.tablaAdicionalBean.inicializar();\n\t\t\t\t\n\n\t\t\t} else {\n\t\t\t\tthis.selectedPanel = tablaSeleccion.tabla;\n\t\t\t\tif (this.datoOrganizacionPipe.BASE == (tablaSeleccion.tabla)) {\n\t\t\t\t\t// this.crearFormulario();\n\t\t\t\t\t//this.cargarFormulario(this.perfil);\n\t\t\t\t}\n\t\t\t\tif (this.datoOrganizacionPipe.FUNCION == tablaSeleccion.tabla) {\n\t\t\t\t\tawait this.funcion();\n\t\t\t\t}\n\t\t\t\tif (this.datoOrganizacionPipe.COMPETENCIA == (tablaSeleccion.tabla)) {\n\t\t\t\t\tthis.competencia();\n\t\t\t\t} if (this.datoOrganizacionPipe.PERFIL == (tablaSeleccion.tabla)) {\n\t\t\t\t\tawait this.Perfil();\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tthis.cd.detectChanges();\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\tpublic async guardar(): Promise<void> {\n\t\ttry {\n\t\t\tlet cadena: string = await this.guardarDescripcion();\n\t\t\tif (cadena != null) {\n\t\t\t\tthis.notificationBusService.showInfo(cadena);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic async guardarDescripcion(): Promise<string> {\n\t\ttry {\n\t\t\tif (this.validar(this.formulario)) {\n\t\t\t\tlet perfilFormulario: PerfilFuncionModel = new PerfilFuncionModel()\n\t\t\t\tperfilFormulario = this.formulario.getObjecto();\n\t\t\t\tif (this.origenLista && this.nuevoOrigenLista) {\n\t\t\t\t\tperfilFormulario = await this.perfilSvc.crearPerfilFuncion(perfilFormulario, this.authService.getTokenKey('numeroEmpresa')).toPromise();\n\t\t\t\t\tlet lista = this.formulario.getCamposCaracteristica();\n\t\t\t\t\tfor (const campo of lista) {\n\t\t\t\t\t\tthis.guardarCaracteristica(campo, perfilFormulario.llaveTabla);\n\t\t\t\t\t}\n\t\t\t\t\tthis.nuevoOrigenLista = false;\n\t\t\t\t\tthis.cargarEtapas();\n\t\t\t\t\tthis.cargarMenuContratos();\n\t\t\t\t\tthis.ocultarMenuContratos = false;\n\t\t\t\t\t// manejaEtapas.adicionarAccionRegresar(\"descripcionCargoBean.regresar\", false, ImagenesCons.hand_left);\n\n\t\t\t\t\tthis.perfil = perfilFormulario;\n\t\t\t\t\tthis.cargarFormulario(this.perfil);\n\t\t\t\t\treturn this.generalPipe.MENSAJE_ACTUALIZAR;\n\t\t\t\t} else if (this.authService.getTokenKey('isCliente') != 'true') {\n\t\t\t\t\t// if (!this.formulario.hayCambios()) {\n\t\t\t\t\t// \treturn \"no hay cambios que guardar\";\n\t\t\t\t\t// }\n\t\t\t\t\tperfilFormulario.cambio = new Date();\n\t\t\t\t\tawait this.generalService.update(new GeneralModel('PerfilFuncionDTO', null, false, perfilFormulario)).toPromise();\n\t\t\t\t\tlet lista = this.formulario.getCamposCaracteristica();\n\t\t\t\t\tfor (const campo of lista) {\n\t\t\t\t\t\tthis.guardarCaracteristica(campo, perfilFormulario.llaveTabla);\n\t\t\t\t\t}\n\t\t\t\t\tthis.cargarFormulario(perfilFormulario);\n\t\t\t\t\treturn \"Se ha actualizado el registro.\";\n\t\t\t\t}\n\t\t\t\tlet novedad: NovedadPerfilModel;\n\t\t\t\tlet lista: Cambio[] = this.formulario.getCambios();\n\t\t\t\tlet nov = new NovedadPerfilModel();\n\t\t\t\tnov.perfilfuncion = (perfilFormulario.llaveTabla);\n\t\t\t\tnov.estado = (this.listaConstantesPipe.PENDIENTE);\n\t\t\t\tlet listanovedades: NovedadPerfilModel[] = await this.generalService.queryForList(new GeneralModel('NovedadPerfilDTO', null, false, nov)).toPromise();\n\t\t\t\tlet entro: number = 0;\n\t\t\t\tfor (const list of lista) {\n\t\t\t\t\tfor (const nove of listanovedades) {\n\t\t\t\t\t\tif (nove.campo == (list.campo.campo)) {\n\t\t\t\t\t\t\tnove.dato = (list.nuevo.toString());\n\t\t\t\t\t\t\tthis.generalService.update(new GeneralModel('NovedadPerfilDTO', null, false, nove)).toPromise();\n\t\t\t\t\t\t\tentro = 1;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (entro == 1) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tnovedad = new NovedadPerfilModel();\n\t\t\t\t\tnovedad.llave = (this.utilService.generarLlave());\n\t\t\t\t\tnovedad.perfilfuncion = (perfilFormulario.llaveTabla);\n\t\t\t\t\tnovedad.dato = (list.nuevo.toString());\n\t\t\t\t\tnovedad.campo = (list.campo.campo);\n\t\t\t\t\tnovedad.estado = (this.listaConstantesPipe.PENDIENTE);\n\t\t\t\t\tif (list.viejo != null) {\n\t\t\t\t\t\tnovedad.datoAntiguo = (list.viejo.toString());\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!list.campo.caracteristica) {\n\t\t\t\t\t\tnovedad.tabla = (\"BASE\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnovedad.tabla = (\"CARA\");\n\t\t\t\t\t}\n\t\t\t\t\tperfilFormulario.cambio = (new Date());\n\t\t\t\t\tnovedad = await this.generalService.crearRegistro(new GeneralModel('NovedadPerfilDTO', null, false, novedad)).toPromise();\n\t\t\t\t}\n\t\t\t\tthis.cargarTextoNovedades(perfilFormulario);\n\t\t\t\treturn \"Se han guardado las novedades.\";\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate async guardarCaracteristica(caracteristica: CampoFormularioModel, llavePerfil: string): Promise<void> {\n\t\tlet cara = new TablaCaracteristicaModel();\n\t\tlet nuevo: boolean = true;\n\t\tlet vacio: boolean = true;\n\t\tif (caracteristica.dato != null) {\n\t\t\tcara = caracteristica.dato;\n\t\t\tnuevo = false;\n\t\t}\n\t\tif (caracteristica.valor == null || caracteristica.valor == Constantes.ESPACIO_NULO) {\n\t\t\tvacio = false;\n\t\t}\n\t\tcara.caracteristica = (caracteristica.campo);\n\t\tcara.perfilFuncion = (llavePerfil);\n\t\tcara.tabla = (this.tablaCarasteristicaPipe.TIPODESCRIPCIONCARGO);\n\n\t\tif (caracteristica.tipo == CampoFormularioCons.LOGICO || caracteristica.tipo == (CampoFormularioCons.TEXTO)\n\t\t\t|| caracteristica.tipo == CampoFormularioCons.COMBO || caracteristica.tipo == CampoFormularioCons.RADIO\n\t\t\t|| caracteristica.tipo == CampoFormularioCons.POPUP) {\n\t\t\tcara.cadena = caracteristica.valor;\n\t\t\tcara.tipo = (this.tablaCarasteristicaPipe.TEXTO);\n\t\t}\n\t\tif (caracteristica.tipo == CampoFormularioCons.FECHA) {\n\t\t\tcara.fecha = new Date(caracteristica.valor);\n\t\t\tcara.tipo = this.tablaCarasteristicaPipe.FECHA;\n\t\t}\n\t\tif (caracteristica.tipo == CampoFormularioCons.TEXTOAREA) {\n\t\t\tcara.area = caracteristica.valor.toString();\n\t\t\tcara.tipo = this.tablaCarasteristicaPipe.AREA;\n\t\t}\n\t\tif (caracteristica.tipo == CampoFormularioCons.NUMERO || caracteristica.tipo == CampoFormularioCons.DECIMAL) {\n\t\t\tif (caracteristica.valor == null || caracteristica.valor.toString() == Constantes.ESPACIO_NULO) {\n\t\t\t\tcara.numero = null;\n\t\t\t} else {\n\t\t\t\tcara.numero = parseInt(caracteristica.valor.toString());\n\t\t\t}\n\t\t\tcara.tipo = this.tablaCarasteristicaPipe.NUMERO;\n\t\t}\n\t\tif (nuevo) {\n\t\t\tif (vacio) {\n\t\t\t\tcara.llave = (this.utilService.generarLlave());\n\t\t\t\tcara = await this.generalService.crearRegistro(new GeneralModel('TablaCaracteristicaDTO', null, false, cara)).toPromise();\n\t\t\t}\n\t\t} else {\n\t\t\tawait this.generalService.update(new GeneralModel('TablaCaracteristicaDTO', null, false, cara));\n\t\t}\n\n\t}\n\n\tprivate validar(formulario): boolean {\n\t\tlet validador: boolean = true;\n\t\tvalidador = validador && formulario.validar();\n\t\tlet perfilFormulario: PerfilFuncionModel = formulario.getObjecto();\n\t\tif (this.descripcionCargoPipe.PUESTOTRABAJOMULTIPLE == (perfilFormulario.origen)) {\n\t\t\tvalidador = validador && this.utilService.validarCampoObligatorio(perfilFormulario.estado);\n\t\t\t//\tvalidador &= Validador.validarDecimal(perfilFormulario.getContrato(), \"descripcionCargo_form:BASE:contrato\", true, 16, 0);\n\t\t\tif (validador) {\n\t\t\t\tvalidador = validador && (this.validarFechas(perfilFormulario.fechaInicial, perfilFormulario.fechaFinal, null, null) == null);\n\t\t\t\tif (!validador) {\n\t\t\t\t\tthis.notificationBusService.showWarning(\"Fecha inicial no puede ser mayor a la fecha final.\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn validador;\n\t}\n\tprivate validarFechas(fechaInicial: Date | null, fechaFinal: Date | null, campoFecha1: string | null, campoFecha2: string | null): string | null | boolean {\n\t\tif (fechaInicial !== null && fechaFinal !== null && fechaInicial.getTime() > fechaFinal.getTime()) {\n\t\t\treturn `La fecha ${campoFecha2 ? `(${campoFecha2})` : formatDate(fechaInicial, \"dd/MM/yyyy\", 'es')} debe ser menor a la fecha ${campoFecha1 ? `(${campoFecha1})` : formatDate(fechaFinal, \"dd/MM/yyyy\", 'es')}`;\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic async refrescarPerfil() {\n\t\ttry {\n\t\t\tif (this.puestoMultiple) {\n\t\t\t\tlet llavePerfil = this.perfil.llaveTabla;\n\t\t\t\tthis.perfil = new PerfilFuncionModel();\n\t\t\t\tthis.perfil.llaveTabla = (llavePerfil);\n\t\t\t\tthis.perfil = await this.generalService.queryForObject(new GeneralModel('PerfilFuncionDTO', null, false, this.perfil)).toPromise();\n\t\t\t} else {\n\t\t\t\tthis.perfil = await this.perfilSvc.cargarPerfil(this.cargo, this.unidad, this.empresa, this.puestoTrabajo, null).toPromise();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\teliminar() { }\n\n\tdefinirPerfil() { }\n\n\tcambiarHistorico() { }\n\n\n\n\tsetNavegacion(navegacion: string) {\n\t\tthis.navegacion = navegacion\n\t}\n\tsetVisiblePopup(boolean) {\n\t\tthis.visiblePopup = boolean;\n\t}\n\tsetVistaVisualizar(parametro) {\n\t\tthis.vistaVisualizar = parametro;\n\t}\n\n\tpublic isRestringirVisibilidad(control: string) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(\"descar:\" + control) != null;\n\t}\n\n\tpublic verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t}\n\n\tpublic isPerfilMultiple() {\n\t\treturn this.perfil != null && this.descripcionCargoPipe.PUESTOTRABAJOMULTIPLE == this.perfil.origen;\n\t}\n\n\tisDeshabilitar() {\n\t\treturn this.deshabilitar;\n\t}\n\n\tpublic isPerfilUnidadCargo(): boolean {\n\t\treturn this.datosBasicosEmpresaCons.CLASIFICACION == (this.tipoPerfil) || this.datosBasicosEmpresaCons.UNIDADCARGO == (this.tipoPerfil);\n\t}\n\n\tpublic isPerfilPuesto(): boolean {\n\t\treturn this.datosBasicosEmpresaCons.PUESTOTRABAJO == (this.tipoPerfil);\n\t}\n\n\tpublic setCargando(boleano: boolean) {\n\t\tthis.cargando = boleano\n\t}\n\n\tpublic isTieneLider(): boolean {\n\t\treturn (this.unidadCargo != null) && (this.unidadCargo.cedulaOcupaJefe != null) && (this.unidadCargo.cargoJefe != null);\n\t}\n\n\tpublic isUnidadIgualLider(): boolean {\n\t\treturn this.unidadCargo != null && this.unidadCargo.unidad != null && this.unidadCargo.UnidadJefe != null && this.unidadCargo.unidad == (this.unidadCargo.UnidadJefe);\n\t}\n\tpublic isBotonActualizar(): boolean {\n\t\treturn this.perfil != null && ((this.descripcionCargoPipe.LEGALIZADO_HISTORICO == this.perfil.estado && this.modificaHistorico) || (this.descripcionCargoPipe.LEGALIZADO_HISTORICO != this.perfil.estado && this.modificar));\n\t}\n\n\tpublic isVerDefinirPerfil(): boolean {\n\t\treturn this.isPerfilMultiple() && this.perfil != null && this.descripcionCargoPipe.LEGALIZADONOUTILIZADO == (this.perfil.estado);\n\t}\n\n\tpublic isVerCambioHistorico(): boolean {\n\t\treturn this.isPerfilMultiple() && this.perfil != null && this.descripcionCargoPipe.LEGALIZADOENUSO == (this.perfil.estado);\n\t}\n\n\tprivate validarContratoOcupaPuesto(): boolean {\n\t\tif (this.puestoTrabajoDTO != null && this.perfil != null && this.perfil.contrato != null && this.perfil.contrato == (this.puestoTrabajoDTO.contratoOcupa)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic setProcesoAutorizacion(procesoAutorizacion) {\n\t\tthis.procesoAutorizacion = procesoAutorizacion;\n\t}\n\n\tgetTitulo(): string | undefined {\n\t\tif(this.mapadescripcion.has('.')){\n\t\t\treturn this.mapadescripcion.get('.')[0];\t\n\t\t}\n\t\treturn ''\n\t}\n\n\tgetTitulofuncion(): string | undefined {\n\t\tif (this.mapafuncion?.has('.')) {\n\t\t\treturn this.mapafuncion?.get('.')[0];\n\t\t}\n\t\treturn ''\n\t}\n\t\n\tgetTituloCompetencia(): string|undefined{\n\t\tif (this.mapacompetencia?.has('.')) {\n\t\t\treturn this.mapacompetencia?.get('.')[0];\n\t\t}\n\t\treturn ''\n\t}\n\t\n\tgetTituloAdicional(): string|undefined {\n\t\tif (this.mapaAdicional?.has('.')) {\n\t\t\treturn this.mapaAdicional?.get('.')[0];\n\t\t}\n\t\treturn ''\n\t}\n\n\tgetTituloPerfil(): string|undefined{\n\t\tif (this.mapaperfil?.has('.')) {\n\t\t\treturn this.mapaperfil?.get('.')[0];\n\t\t}\n\t\treturn ''\n\t}\n\n\tcapitalizarTexto(texto: string): string {\n\t\treturn texto.charAt(0).toUpperCase() + texto.slice(1);\n\t  }\t\n\n\taccionAlCambiarPestana(evento) {\n\t\tthis.isTabViewCollapsed = false;\n\t  }\n\n\t  toggleTabView() {\n\t\tthis.isTabViewCollapsed = !this.isTabViewCollapsed;\n\t  }\n\n\tregresar() {\n\t\tthis.setVista.emit(this.navegacion);\n\t}\n\n\n}\n","<div class=\"flex justify-content-between align-items-center mb-3\">\n    <h1>{{'descripcion'|translate}} del {{'cargo'|translate}}</h1>\n    <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n        (click)=\"regresar()\" label=\"{{'link_regresar' | translate}}\">\n    </button>\n</div>\n<div>\n    <div id=\"descripcionCargo_form\" *ngIf=\"vistaVisualizar == null\">\n        <div>\n            <div>\n                <div class=\"card mb-3\">\n                    <div class=\"tab-container\">\n                        <p-tabView #miTabView (onChange)=\"accionAlCambiarPestana($event)\">\n                            <p-tabPanel *ngFor=\"let item of manejaEtapas\">\n                                <ng-template pTemplate=\"header\">\n                                    <button class=\"elemento-clickeable\" (click)=\"toggleTabView()\">\n                                        <i class=\"color-400 colorIcon\" [class]=\"item?.icon\"></i>\n                                        <span class=\"text-gray-900\">{{item?.label | translate}}</span>\n                                    </button>\n                                </ng-template>\n                                <div *ngIf=\"!isTabViewCollapsed\" class=\"flex\">\n                                    <div>\n                                        <div class=\"imagen-menu\">\n                                            <img src=\"/assets/images/info-adicional.webp\" height=\"30%\" width=\"30%\">\n                                        </div>\n                                    </div>\n                                    <div class=\"p-0 mb-0 \" style=\"width: 100%;\">\n                                        <div class=\"pt-1\">\n                                            <div class=\"flex-container\">\n                                                <div class=\"menu-item\" *ngFor=\"let item of item.items; let i = index\">\n                                                    <div\n                                                        [class]=\"selectedItem === item?.id ?   'elemento-seleccionado seleccion' : 'elemento-seleccionado'\">\n                                                        <button class=\"elemento-clickeable\"\n                                                            (click)=\"cargarLista(item?.id,item?.routerLinkActiveOptions)\">\n                                                            <i [class]=\"'colorIcon ' + item?.icon\"></i>\n                                                            <span>{{ item?.label | translate }}</span>\n                                                        </button>\n                                                    </div>\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </div>\n                            </p-tabPanel>\n\n                            <!-- TAB CONTRATO -->\n                            @if(this.isRestringirVisibilidad(\"opcontratos\")){\n                                <p-tabPanel *ngFor=\"let itemCon of menuContratos\">\n                                    <ng-template pTemplate=\"header\">\n                                        <div class=\"elemento-clickeable\" (click)=\"toggleTabView()\">\n                                            <i class=\" color-400 colorIcon\" [class]=\"itemCon?.icon\"></i>\n                                            <span class=\"text-gray-900\">{{itemCon?.label | translate}}</span>\n                                        </div>\n                                    </ng-template>\n                                    <div *ngIf=\"!isTabViewCollapsed\" class=\"flex\">\n                                        <div>\n                                            <div class=\"imagen-menu\">\n                                                <img src=\"/assets/images/nomina.webp\" height=\"30%\" width=\"30%\">\n                                            </div>\n                                        </div>\n                                        <div class=\"p-0 mb-0 \" style=\"width: 100%;\">\n                                            <div class=\"pt-1\">\n                                                <div class=\"flex-container\">\n                                                    <div class=\"menu-item\" *ngFor=\"let itemCon of itemCon.items; let i = index\">\n                                                        <div\n                                                            [class]=\"selectedItem === itemCon?.routerLinkActiveOptions ?   'elemento-seleccionado seleccion' : 'elemento-seleccionado'\">\n                                                            <button class=\"elemento-clickeable\"\n                                                                (click)=\"seleccionarMenuContratos(itemCon?.routerLinkActiveOptions)\">\n                                                                <i [class]=\"'colorIcon ' + itemCon?.icon\"></i>\n                                                                <span>{{ itemCon?.label | translate }}</span>\n                                                            </button>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </p-tabPanel>\n                            }\n                        </p-tabView>\n                        <div class=\"tab-right-button\">\n                            <button type=\"button\" pButton pRipple [title]=\"isTabViewCollapsed ? 'Expender' : 'Reducir'\"\n                                class=\"p-element p-ripple p-button-rounded p-button p-component p-button-desplegable\"\n                                [icon]=\"isTabViewCollapsed ? 'pi pi-chevron-down' : 'pi pi-chevron-up'\"\n                                (click)=\"toggleTabView()\"></button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div>\n                <app-encabezado-descripcion-cargo #encabezado [puestoTrabajoDTO]=\"puestoTrabajoDTO\"\n                    [unidadCargo]=\"unidadCargo\" [isPerfilUnidadCargo]=\"isPerfilUnidadCargo()\"\n                    [isUnidadIgualLider]=\"isUnidadIgualLider()\" [isTieneLider]=\"isTieneLider()\"\n                    [isPerfilPuesto]=\"isPerfilPuesto()\" [esUnidadCargo]=\"esUnidadCargo\"\n                    [selectedPanel]=\"selectedPanel\"></app-encabezado-descripcion-cargo>\n                <div *ngIf=\"cargando\"><p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n                </div>\n                <div class=\" card mt-2\" *ngIf=\"selectedPanel == 'BASE'\">\n                    <div class=\"mt-3\">\n                        <h5><i class=\"glyphicons glyphicons-building\"></i>{{getTitulo()}}</h5>\n                    </div>\n                    <div *ngIf=\"isPerfilMultiple()\">\n                        <div class=\"p-fluid p-formgrid grid col-12\">\n                            <!-- ESTADO -->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p><span class=\"font-medium\">{{(('estado') | translate)}}: </span><br>\n                                    <span>{{descripcionCargoPipe.transform(dinamico?.objecto?.estado,'estadoDesCargo')}}</span>\n                                </p>\n                            </div>\n                            <!-- CONTRATO -->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p><span class=\"font-medium\">{{(('contrato') | translate)}}: </span><br>\n                                    <span>{{dinamico?.objecto?.contrato}}\n                                        {{dinamico?.objecto?.nombreContrato}}</span>\n                                </p>\n                            </div>\n                            <!-- CEDULA -->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p><span class=\"font-medium\">{{(('cedula') | translate)}}: </span><br>\n                                    <span>{{dinamico?.objecto?.cedula}}</span>\n                                </p>\n                            </div>\n                        </div>\n                    </div>\n                    <formulario-dinamico #formulario [editable]=\"dinamico['editable']\" [objeto]=\"dinamico['objecto']\"\n                        [campos]=\"listaCampos\" [isMensaje]=\"false\"></formulario-dinamico>\n                    <div class=\"p-fluid p-formgrid grid col-12\" style=\"color: gray;\"\n                        *ngIf=\"dinamico?.objecto?.mensaje != null\">\n                        <div class=\"col-12 md:col-4 lg:col-4\">\n                            <label class=\"col-12 font-semibold\">{{('mensaje') | translate}}</label>\n                        </div>\n                        <div class=\"col-12 md:col-8 lg:col-8\">\n                            <textarea rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"dinamico['objecto']['mensaje']\"></textarea>\n                        </div>\n                    </div>\n                    <div class=\"flex justify-content-end align-items-center mb-3 mt-3\">\n                        <!-- GUARDAR -->\n                        <button class=\" p-button-raised ml-2\"\n                            *ngIf=\"isBotonActualizar() && !procesoAutorizacion && !consultar\" pButton\n                            label=\"{{'link_guardar'| translate}}\" (click)=\"guardar()\"> <span\n                                class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span></button>\n                        <!-- ELIMINAR -->\n                        <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n                            *ngIf=\"isBotonActualizar() && !nuevoOrigenLista && !procesoAutorizacion && isPerfilMultiple()  && !consultar\"\n                            label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar()\"></button>\n                        <!-- DEFINIR PERFIL -->\n                        <button class=\" p-button-raised ml-2\"\n                            *ngIf=\"isVerDefinirPerfil() && !procesoAutorizacion && !consultar\" label=\"Definir Perfil\"\n                            (click)=\"definirPerfil()\"> <span class=\"glyphicons glyphicons-floppy-save\"\n                                aria-hidden=\"true\"></span></button>\n                        <!-- CAMBIAR HISTORICO -->\n                        <button class=\" p-button-raised ml-2\"\n                            *ngIf=\"isVerCambioHistorico() && !procesoAutorizacion  && !consultar\" pButton\n                            label=\"{{'cambiarhistorico'| translate}}\" (click)=\"cambiarHistorico()\"> <span\n                                class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span></button>\n\n                    </div>\n                </div>\n                <!-- COMPETENCIA -->\n                <p-accordion [ngStyle]=\"{ 'display': selectedPanel !== 'COMPETENCIA' ? 'none' : 'block' }\">\n                    <p-accordionTab [selected]=\"true\">\n                        <ng-template pTemplate=\"header\">\n                            <i class=\"glyphicons glyphicons-notes-2\"></i>{{getTituloCompetencia()}}\n                        </ng-template>\n                        <ng-template pTemplate=\"content\">\n                            <app-competencias #compentencia></app-competencias>\n                        </ng-template>\n                    </p-accordionTab>\n                    \n                    <p-accordionTab (activeIndexChange)=\"competencia()\">\n                        <ng-template pTemplate=\"header\">\n                            <i class=\"glyphicons glyphicons-notes-2\"></i> {{'competencias'|translate}}\n                            {{'externa'|translate}}\n                        </ng-template>\n                        <ng-template pTemplate=\"content\">\n                            <app-competencias-externas #competenciaExterna ></app-competencias-externas>\n                        </ng-template>\n                    </p-accordionTab>\n                </p-accordion>\n                \n\n                <!-- FUNCION -->\n                <p-accordion [ngStyle]=\"{ 'display': selectedPanel !== 'FUNCION' ? 'none' : 'block' }\">\n                    <p-accordionTab [selected]=\"true\">\n                        <ng-template pTemplate=\"header\">\n                            <i class=\"glyphicons glyphicons-notes-2\"></i>{{getTitulofuncion()}}\n                        </ng-template>\n                        <ng-template pTemplate=\"content\">\n                            <app-funcion-puestra #funcion></app-funcion-puestra>\n                        </ng-template>\n                    </p-accordionTab>\n                </p-accordion>\n\n                <!-- ADICIONAL -->\n                <div class=\"mt-3\" [ngStyle]=\"{ 'display': selectedPanel !== 'ADICIONAL' ? 'none' : 'block' }\">\n                    <h5><i class=\"glyphicons glyphicons-building\"></i>{{getTituloAdicional()}}</h5>\n                </div>\n                <app-tabla-adicional #tablaAdicional\n                    [ngStyle]=\"{ 'display': selectedPanel !== 'ADICIONAL' ? 'none' : 'block' }\"></app-tabla-adicional>\n\n                <!-- PERFIL -->\n                <div class=\"mt-3\" [ngStyle]=\"{ 'display': selectedPanel !== 'PERFIL' ? 'none' : 'block' }\">\n                    <h5><i class=\"glyphicons glyphicons-building\"></i>{{getTituloPerfil()}}</h5>\n                </div>\n                <app-perfil-cargo #perfilCargo\n                    [ngStyle]=\"{ 'display': selectedPanel !== 'PERFIL' ? 'none' : 'block' }\"></app-perfil-cargo>\n\n                <!-- CONTRATOS -->\n                <div [ngStyle]=\"{ 'display': selectedPanel === 'CONTRATOS' ? 'block' : 'none' }\">\n                    <app-perfil-contratos #perfilContratos [perfilFuncion]=\"perfil?.llaveTabla\"\n                        (refrescarPerfil)=\"refrescarPerfil()\"></app-perfil-contratos>\n                </div>\n\n            </div>\n        </div>\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { PuestoTrabajoModel } from '../../models/PuestoTrabajoModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, UtilsService } from 'general-library-union';\nimport { PuestoTrabajoService } from '../../services/puesto-trabajo.service';\nimport { CargoModel } from '../../models/CargoModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { InputHelperCargoComponent } from '../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-lista-puesto-trabajo',\n    templateUrl: './popup-lista-puesto-trabajo.component.html',\n    styleUrls: ['./popup-lista-puesto-trabajo.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, ReactiveFormsModule, InputHelperUnidadComponent, InputHelperCargoComponent, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, FiltroGeneralComponent]\n})\nexport class PopupListaPuestoTrabajoComponent implements OnInit {\n  filters: any[] = [];\n\n  constructor(private generalSvc: GeneralService, private utilService: UtilsService, private authService: AuthService, private puestoTrabajoSvc: PuestoTrabajoService, public translateService: TranslateService) { }\n  @ViewChild('cargoPopup') cargoPopup: InputHelperCargoComponent;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  @Input() mostrarX: boolean = true;\n  destino: string;\n  mostrarPopup: boolean;\n  verEmpresa: boolean;\n  filtroBean: PuestoTrabajoModel = new PuestoTrabajoModel();\n  paginador: PuestoTrabajoModel[] = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  ngOnInit(): void {\n    this.filters = [\n      {\n        field: 'nombreUnidad',\n        header: this.translateService.instant('nombreUnidad'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nombreCargo',\n        header: this.translateService.instant('nombreCargo'),\n        matchMode: 'contains',\n      },\n      \n    ];\n  }\n\n  public inicializar(destino) {\n    this.destino = destino;\n    this.mostrarPopup = true;\n    return null;\n  }\n\n  private colocarFiltro() {\n    if (!this.verEmpresa) {\n      this.filtroBean.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    }\n    this.filtroBean.puestoAtraer = (\"NoEliminado\");\n  }\n\n  public async load(event) {\n    try {\n      this.filtroBean.paginacionRegistroInicial = event?.first != null ? event?.first : 0,\n        this.filtroBean.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10,\n        this.colocarFiltro();\n      if (this.filtroBean.unidad != null && this.filtroBean.cargo != null) {\n        this.paginador = await this.puestoTrabajoSvc.obtenerPuestosUnidad_Cargo_Puesto(this.filtroBean).toPromise();\n        this.paginator.totalRecords = await this.puestoTrabajoSvc.cantidadPuestosUnidad_Cargo_Puesto(this.filtroBean).toPromise()\n      }\n    } catch (error) {\n      console.log(error)\n    }\n  }\n  public setUnidad(unidadUsuarioDTO: any){\n\t\tthis.filtroBean.unidad = (unidadUsuarioDTO.unidad);\n\t\tthis.filtroBean.nombreUnidad = (unidadUsuarioDTO.nombreUnidad);\n    this.cargoPopup.ngOnInit();\n\t}\n\n  public setCargo(cargo: CargoModel) {\n    this.filtroBean.cargo = (cargo.cargo);\n\t\tthis.filtroBean.nombreCargo =(cargo.nombreCargo);\n\t}\n\n  handleEnterKey(event: any) {\n    event?.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  regresarVista(){\n    this.mostrarPopup = false;\n  }\n\n  seleccionar(evento){\n      this.onSelected.emit(evento.data);\n      this.mostrarPopup = false;\n  }\n\n  isMostrarPopup(){\n  this.mostrarPopup = false;\n  }\n\n\n\n\n}\n","<p-dialog header=\"{{'busqueda' | translate}}\" [visible]=\"mostrarPopup\" [style]=\"{width: '54vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n<app-filtro-general #filtro [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n    <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n            <div class=\"flex mt-3\">\n                <!-- UNIDAD -->\n                <div class=\"mr-3 w-full\">\n                    <span class=\"p-float-label\">\n                        <app-input-helper-unidad formControlName=\"nombreUnidad\" [readonly]=\"false\"\n                            [label]=\"filtroBean.nombreUnidad == null ? '' : filtroBean.nombreUnidad\"\n                            (onSelected)=\"setUnidad($event)\" [(ngModel)]=\"this.filtroBean.nombreUnidad\"\n                            [header]=\"this.translateService.instant('unidad' | translate) +'*'\"\n                            (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                        </app-input-helper-unidad>\n                    </span>\n                </div>\n                <!-- CARGO -->\n                <div class=\"w-full\">\n                    <span class=\"p-float-label\">\n                        <app-input-helper-cargo #cargoPopup formControlName=\"nombreCargo\" [nombreInput]=\"'Cargo'\" [campoReferencia]=\"this.filtroBean.unidad\"\n                            (keydown.enter)=\"handleEnterKey($event)\" [(ngModel)]=\"this.filtroBean.nombreCargo\"\n                            [label]=\"filtroBean.nombreCargo ? filtroBean.nombreCargo : ''\" [mostrarX]=\"false\"\n                            (onSelected)=\"setCargo($event)\"></app-input-helper-cargo>\n                    </span>\n                </div>\n            </div>\n        </ng-container>\n    </ng-template>\n</app-filtro-general>\n\n<p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginador\" [rows]=\"paginator.rows\"\n[totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n[showCurrentPageReport]=\"true\" selectionMode=\"single\" [lazy]=\"true\" [scrollable]=\"true\"\n(onLazyLoad)=\"load($event)\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n(onRowSelect)=\"seleccionar($event)\">\n<ng-template pTemplate=\"header\">\n    <tr>\n        <th style=\"max-width:5%\"></th>\n        <th style=\"max-width:16%\">{{'cargo' | translate}}</th>\n        <th style=\"max-width:15%\">{{'identificacion' | translate}}</th>\n        <th style=\"max-width:16.6%\">{{'nombre' | translate}}</th>\n        <th style=\"max-width:8%\">{{'posicion' | translate}}</th>\n        <th style=\"max-width:16.6%\">{{'correo' | translate}}</th>\n    </tr>\n</ng-template>\n<ng-template pTemplate=\"body\" let-puesto let-editing=\"editing\" let-ri=\"rowIndex\">\n    <tr [pSelectableRow]=\"puesto\">\n        <td style=\"max-width:5%\">\n            <span [class]=\"'glyphicons ' + puesto.rutaImagen +' x1_3'\"></span>\n        </td>\n        <td style=\"max-width:16%\">\n            {{puesto.cargo + ' - ' + puesto.nombreCargo}}\n        </td>\n        <td style=\"max-width:15%\">\n            {{ puesto.documentoOcupa }}\n        </td>\n        <td style=\"max-width:16.6%\">\n            {{ puesto.nombreOcupa }}\n        </td>\n        <td style=\"max-width:8%\">\n            {{puesto.numeroPuesto}}\n        </td>\n        <td style=\"max-width:26.6%\">\n            {{ puesto.correoOcupa }}\n        </td>\n        \n    </tr>\n</ng-template>\n<ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n</p-dialog>","import { PopupUnidadOrganizacionalComponent } from './../../planta-personal/popup-unidad-organizacional/popup-unidad-organizacional.component';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { DescripcionCargoPipe } from '../../../pipes/descripcion-cargo.pipe';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { DescripcionCargoComponent } from '../descripcion-cargo/descripcion-cargo.component';\nimport { PerfilFuncionService } from '../../../services/perfil-funcion.service';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { PopupListaPuestoTrabajoComponent } from '../../../popups/popup-lista-puesto-trabajo/popup-lista-puesto-trabajo.component';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperCargoComponent } from '../../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-listado-descripcion-cargo',\n    templateUrl: './listado-descripcion-cargo.component.html',\n    styleUrls: ['./listado-descripcion-cargo.component.scss'],\n    standalone: true,\n    imports: [NgIf, FormsModule, ReactiveFormsModule, InputHelperUnidadComponent, InputHelperCargoComponent, DropdownModule, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DescripcionCargoComponent, PopupListaPuestoTrabajoComponent, DatePipe, TranslateModule, FiltroGeneralComponent, PopupUnidadOrganizacionalComponent],\n    providers: [ConfirmationService,ToastService]\n})\nexport class ListadoDescripcionCargoComponent implements OnInit {\n\n  @ViewChild('descripcionCargo') descripcionCargo: DescripcionCargoComponent;\n  @ViewChild('popupListaPuestoTrabajoBean')  popupListaPuestoTrabajoBean: PopupListaPuestoTrabajoComponent;\n  \n  vistaVisualizar: string;\n  filters = [];\n  listaDescipcion: PerfilFuncionModel[] = [];\n  filtroBean: PerfilFuncionModel = new PerfilFuncionModel();\n  estado\n  tipo\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  listaTipo: any[] = [];\n  listaEstado: any[] = [];\n  origenListado: boolean;\n  mostrarPopup: boolean;\n  llavePuestoTrabajo: string;\n\n  constructor(private generalSvc: GeneralService, public translateService: TranslateService, private notificationBusServicec: ToastService, public descripcionPipe: DescripcionCargoPipe, private selectEvaluaciones: SelectListEvaluacionesService,\n    private utilsService: UtilsService,private perfilSvc: PerfilFuncionService, private authService: AuthService, private menuService: MenuService) { \n      \n    }\n\n  ngOnInit() {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('descripcioncargo') }]);\n    this.cargar();\n    this.origenListado = true;\n  }\n\n  async cargar() {\n    await this.cargarFiltros();\n    await this.cargarListados();\n  }\n\n  async cargarListados() {\n    this.listaTipo = await this.descripcionPipe.TIPOUNIDAD.sort(this.selectEvaluaciones.compararPorNombre);\n    this.listaEstado = await this.descripcionPipe.ESTADODESCRIPCIONCARGO.sort(this.selectEvaluaciones.compararPorNombre);\n  }\n\n  async cargarFiltros(){\n    this.filters = [\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (key) => this.listaEstado.filter(data => data.codigo == key)[0]?.nombre, \n        matchMode: 'equal',\n      },\n      {\n        field: 'tipo',\n        header: this.translateService.instant('tipo'),\n        values: (key) => this.listaTipo.filter(data => data.codigo == key)[0].nombre, \n        matchMode: 'equal',\n      },\n      {\n        field: 'nombreUnidad',\n        header: this.translateService.instant('nombreUnidad'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nombreCargo',\n        header: this.translateService.instant('nombreCargo'),\n        matchMode: 'contains',\n      },\n      \n    ];\n  }\n\n  async load(event?) {\n    try {\n      let objeto= {\n        paginacionRegistroInicial: event?.first != null ? event?.first : 0,\n        paginacionRegistroFinal: event?.rows != null ? event?.rows : 10,\n        unidad: event?.filters?.nombreUnidad?.value ? this.filtroBean.unidad : null,\n        nombreUnidad: event?.filters?.nombreUnidad?.value ? event?.filters?.nombreUnidad?.value : null,\n        cargo: event?.filters?.nombreCargo?.value ? this.filtroBean.cargo : null,\n        nombreCargo: event?.filters?.nombreCargo?.value ?event?.filters?.nombreCargo?.value : null,\n        tipo: event?.filters?.tipo?.value ? event?.filters?.tipo?.value : null,\n        estado: event?.filters?.estado?.value ? event?.filters?.estado?.value : null,\n      }\n      this.listaDescipcion = await this.perfilSvc.consultaListaDescripcionCargo(objeto).toPromise();\n      this.paginator.totalRecords = await this.perfilSvc.cantidadListaDescripcionCargo(objeto).toPromise();\n    } catch (error) {\n      console.trace(error)\n    }\n  }\n\n  public async verNuevo() {\n\t\ttry {\n\t\t\tif(this.origenListado){\n        this.popupListaPuestoTrabajoBean.inicializar(\"listadoDescripcionCargoBean.cargarPerfilFuncion\");\n\t\t\t}else{\n\t\t\t\tlet puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\t\tpuestoTrabajoDTO.llave = (this.llavePuestoTrabajo);\n\t\t\t\tpuestoTrabajoDTO= await this.generalSvc.queryForObject(new GeneralModel('PuestoTrabajoDTO',null,false,puestoTrabajoDTO)).toPromise();\n\t\t\t\tthis.setCargarPerfilFuncion(puestoTrabajoDTO);\n\t\t\t}\n  \t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n  \n  public async setCargarPerfilFuncion(puestoTrabajoDTO: PuestoTrabajoModel) {\n\t\tthis.mostrarPopup = (false);\n\t\t// PerfilFuncionDTO\n    let perfilFuncion = new PerfilFuncionModel();\n\t\tperfilFuncion.puestoTrabajo = (puestoTrabajoDTO.llave);\n\t\tperfilFuncion.estado = (this.descripcionPipe.SOLICITUD);\n\t\tperfilFuncion.contrato = (0);\n\t\tperfilFuncion.llaveTabla = (this.utilsService.generarLlave());\n\t\tperfilFuncion.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tperfilFuncion.origen =(this.descripcionPipe.PUESTOTRABAJOMULTIPLE);\n    perfilFuncion.alias = 'PerfilFuncion';\n\t\tthis.setVistaVisualizar(\"detalle\");\n    await this.utilsService.sleep(10);\n    this.descripcionCargo.cargarPerfilMultiple(perfilFuncion, true, \"listaDescripcionCargo\");\n\t}\n\n\n\n\n\n  public setUnidad(unidadUsuarioDTO: UnidadUsuarioModel) {\n    this.filtroBean.unidad = (unidadUsuarioDTO.unidad);\n    this.filtroBean.nombreUnidad = (unidadUsuarioDTO.nombreUnidad);\n  }\n\n\n  public setCargo(cargo: CargoModel) {\n    this.filtroBean.cargo = (cargo.cargo);\n    this.filtroBean.nombreCargo = (cargo.nombreCargo);\n  }\n\n  async verAction(evento){\n    this.vistaVisualizar = 'detalle';\n    await this.utilsService.sleep(10)\n    this.descripcionCargo.cargarPerfilMultiple(evento.data,false,'listaDescripcionCargo');\n  }\n\n  handleEnterKey(event: any) {\n    event?.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  public setVistaVisualizar(evento){\n    this.vistaVisualizar = null;\n  }\n\n}\n","<div *ngIf=\"vistaVisualizar == null\">\n    <h1>{{'descripcion'|translate}} del {{'cargo'|translate}}</h1>\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <app-filtro-general #filtro [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex mt-3\">\n                        <!-- UNIDAD -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-unidad formControlName=\"nombreUnidad\" [readonly]=\"false\"\n                                    [label]=\"filtroBean.nombreUnidad == null ? '' : filtroBean.nombreUnidad\"\n                                    (onSelected)=\"setUnidad($event)\" [(ngModel)]=\"this.filtroBean.nombreUnidad\"\n                                    [header]=\"this.translateService.instant('unidad' | translate) +'*'\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                                </app-input-helper-unidad>\n                            </span>\n                        </div>\n                        <!-- CARGO -->\n                        <div class=\"w-full\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-cargo formControlName=\"nombreCargo\" [nombreInput]=\"'Cargo'\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" [(ngModel)]=\"this.filtroBean.nombreCargo\"\n                                    [label]=\"filtroBean.nombreCargo ? filtroBean.nombreCargo : ''\" [mostrarX]=\"false\"\n                                    (onSelected)=\"setCargo($event)\"></app-input-helper-cargo>\n                            </span>\n                        </div>\n\n                    </div>\n\n                    <div class=\"flex mt-3\">\n                        <!-- ESTADO -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [autoDisplayFirst]=\"false\" id=\"tipo\" [options]=\"this.listaTipo\"\n                                    [showClear]=\"true\" formControlName=\"tipo\" optionLabel=\"nombre\" optionValue=\"codigo\">\n                                </p-dropdown>\n                                <label for=\"estado\">{{'tipo' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- TIPO -->\n                        <div class=\"w-full\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [autoDisplayFirst]=\"false\" id=\"estado\" [options]=\"this.listaEstado\"\n                                    [showClear]=\"true\" formControlName=\"estado\" optionLabel=\"nombre\"\n                                    optionValue=\"codigo\">\n                                </p-dropdown>\n                                <label for=\"estado\">{{'estado' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n\n\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevo()\" icon=\"pi pi-plus\"\n            class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n\n    </div>\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listaDescipcion\" [rows]=\"paginator.rows\"\n        [tableStyle]=\"{ 'min-width': '100rem' }\" [totalRecords]=\"paginator.totalRecords\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [lazy]=\"true\"\n        (onLazyLoad)=\"load($event)\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        (onRowSelect)=\"verAction($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th class=\"w-6rem\">{{'unidad' | translate}}</th>\n                <th class=\"w-6rem\">{{'unidad' | translate}} {{'antes' | translate}}</th>\n                <th class=\"w-6rem\">{{'cargo' | translate}}</th>\n                <th class=\"w-6rem\">{{'posicion' | translate}}</th>\n                <th class=\"w-6rem\">{{'fecha' | translate}} {{'inicial' | translate}}</th>\n                <th class=\"w-6rem\">{{'fecha' | translate}} {{'final' | translate}}</th>\n                <th class=\"w-6rem\">{{'tipo' | translate}}</th>\n                <th class=\"w-6rem\">{{'estado' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-perfilFuncion let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr [pSelectableRow]=\"perfilFuncion\">\n                <td class=\"w-6rem\">\n                    {{perfilFuncion.unidad + ' - ' + perfilFuncion.nombreUnidad}}\n                </td>\n                <td class=\"w-6rem\">\n                    {{ (perfilFuncion.unidadPerfil != null ? perfilFuncion.unidadPerfil: '' ) + ' - ' +\n                    (perfilFuncion.nombreUnidadPerfil != null ? perfilFuncion.nombreUnidadPerfil: '')}}\n                </td>\n                <td class=\"w-6rem\">\n                    {{perfilFuncion.cargo + ' - ' + perfilFuncion.nombreCargo}}\n                </td>\n                <td class=\"w-6rem\">\n                    {{perfilFuncion.numeroPuesto}}\n                </td>\n                <td class=\"w-6rem\">\n                    {{perfilFuncion.fechaInicial | date:'yyyy/mm/dd'}}\n                </td>\n                <td class=\"w-6rem\">\n                    {{perfilFuncion.fechaFinal | date:'yyyy/mm/dd'}}\n                </td>\n                <td class=\"w-6rem\">\n                    {{descripcionPipe.transform(perfilFuncion.tipo,'tipoUnidad')}}\n                </td>\n                <td class=\"w-6rem\">\n                    {{descripcionPipe.transform(perfilFuncion.estado,'estadoDesCargo')}}\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<div *ngIf=\"this.vistaVisualizar == 'detalle'\">\n    <app-descripcion-cargo #descripcionCargo (setVista)=\"setVistaVisualizar($event)\"></app-descripcion-cargo>\n</div>\n\n<app-popup-lista-puesto-trabajo #popupListaPuestoTrabajoBean (onSelected)=\"setCargarPerfilFuncion($event)\"></app-popup-lista-puesto-trabajo>","import { UnionModel } from 'general-library-union'\n\n\nexport class ProcesoSeleccionModel extends UnionModel {\n\n\tfechainicio: Date;\n\tarchivo: string;\n\tsucursal: string;\n\tnombreSucursal: string;\n\tcargo: string;\n\tnombrecargo: string;\n\testado: string;\n\tactivos: string;\n\tautorizado: string;\n\tfechaHoy: Date;\n\torigen: string;\n\tconvocatoria: string;\n\tdivulgacion: string;\n\tfechaEntForm: string;\n\thorarioEntFor: string;\n\tlugarEntFor: string;\n\tunidad: string;\n\tnombreunidad: string;\n\tfechaconvocatoria: Date;\n\tpublicacion: Date;\n\trequerimiento: string;\n\tcondiciones: string;\n\tinscripcion: string;\n\tproceso: string;\n\torganizacion: number;\n\tempresa: number;\n\tnombreempresa: string;\n\tcantidad: number;\n\tidentifica: number;\n\tnombreCompleto: string;\n\temailResponsable: string;\n\tasignacion: Date;\n\tnumero: number;\n\tcomplejida: string;\n\tsolicitante: number;\n\tfechaCierre: Date;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tpublicaHasta: Date;\n\tconsultaActivos: string;\n\tdetallePublicacion: string;\n\trequisitoPublicacion: string;\n\tnivelCargo: string;\n\tciudad: string;\n\tnombreCiudad: string;\n\tsueldo: number;\n\tdocumento: string;\n\tconsecutivoReq: string;\n\tcedulaSolicitaReq: string;\n\tnombreCargoNuevo: string;\n\tmotivoAnulacion: string;\n\tfechaAnulacion: Date;\n\tidentificaCandidato: number;\n\tfiltro: string;\n\torigenExternoMixto: string;\n\tgrupoMedio: string;\n\tdescripcionEstado: string;\n\tprocesoParticipo: string;\n\tmotivoCandidato: string;\n\taliasRol: string;\n\tlogin: string;\n\tmodelo: string;\n\ttipoFiltro: string;\n\ttipoProcesoSeleccion: string;\n\tcoordinador: number;\n\tnombreCoordinador: string;\n\tdocumentoCoordinador: string;\n\tunidadPadre: string;\n\tnombreunidadPadre: string;\n\tnombreCategoria: string;\n\tnombreTurnoReq: string;\n\tfechaPublicacionPortal: Date;\n\tlistaUnidadesReq: String[];\n\tidentificaCandidatoExterno: number;\n\tfechaSolicitudReq: Date;\n\tmensaje: string;\n\tcadenaConsecutivo: string;\n\tnumeroConsecutivo: number;\n\tprincipal: string;\n\ttipoGrupo: string;\n\n}\n","import { UnionModel } from 'general-library-union'\n\n\nexport class EtapaProcesoModel extends UnionModel  {\n\n\tprocesoSeleccion: string;\n\torigen: string;\n\ttipoActividad: string;\n\tcantidad: number;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tobservacion: string;\n\tllaveCandidato: string;\n\tindividual: string;\n\t/** Estado (ver ListaConstantes.ESTADOETAPAPROCESO)\n\t * @see ListaConstantes*/\n\testado: string;\n\tcitacion: Date;\n\treclamacion: string;\n\tpuntaje: number;\n\tresponsable: number;\n\tresponsableNombre: string;\n\tdocumento: string;\n\tfechaReclamacion: Date;\n\tnombres: string;\n\tnombreEtapa: string;\n\tesEtapaProceso: string;\n\torden: number;\n\t//Campos para filtro especial\n\tfechaInicioCitacion: Date;\n\tfechaFinCitacion: Date;\n\taceptado: string;\n\tcedula: number;\n\thojaVidaCandidato: number;\n\tdocumentoEmpleado: string;\n\tdocumentoResponsable: string;\n\tmedio: string;\n\tdescripcionEtapa: string;\n\ttipoEtapa: string;\n\tdescripcionEstado: string;\n\truta: string;\n\n\tlogin: string;\n\torganizacion: number;\n\taliasRol: string;\n\ttipoFiltro: string;\n\tempresa: number;\n\tprincipal: string;\n}","import { UnionModel } from 'general-library-union'\n\nexport class CandidatoModel extends UnionModel {\n\n\tprocesoseleccion: string;\n\tidentificacion: number;\n\thojaVidaCandidato: number;\n\tcedulaJefe: number;\n\tnombreJefe: string;\n\tconceptofinal: Date;\n\testado: string;\n\tobservacion: string;\n\tenganche: string;\t\n\tdorecalcma: string;\n\tfolio: string;\n\tinscripcion: string;\n\tmotivo: string;\n\treclamacion: string;\n\tfechainscripcion: Date;\n\tfechareclamacion: Date;\n\tpuntaje: number;\n\tposicion: number;\n\treclamaciontexto: string;\n\tfechaingreso: Date;\n\tfechatermina: Date;\n\tdocumento: number;\n\tnombres: string;\n\tfechaNacimiento: Date;\n\tseleccionado: boolean;\n\tdireccion: string;\n\ttelefono: string;\n\temail: string;\n\trequerimiento: string;\n\tfechaCitacion: Date;\n\tmarcado: boolean;\n\tdesarrollo: string;\n\tconcepto: string;\n\tconsultaEtapa: string;\n\tconsultaMedio: string;\n\tpuntajeSucesion: number;\n\tunidad: string;\n\tcargo: string;\n\tnivelCargo: string;\n\tempresa: number;\n\torganizacion: number;\n\tdocumentoCandidato: string;\n\tconvocatoria: string;\n\testadoSeguimiento: string;\n\tcedulaSolicita: string;\n\tcadenaConsecutivo: string;\n\tnombreCargo: string;\n\tdescripcionEstadoSeguimiento: string;\n\tfechaInicioProceso: Date;\n    fechaFinProceso: Date;\n    etapaProceso: string;\n\tfechaInscripcionInicial: Date;\n\tfechaInscripcionFinal: Date;\n\tllaveEtapa: string;\n\testadoAnterior: string;\n\tnombreCentroCosto: string;\n\n\tciudad: string;\n\tnombreCiudad: string;\n\tnombreUnidad: string;\n\tnombreEmpresa: string;\n\tnumeroProcesoSeleccion: number;\n\tcantidad: number;\n\testadoProcesoSeleccion: string;\n\tdescripcionInscripcion: string;\n\tpuestoTrabajo: string;\n\tdescripcionEstado: string;\n    motivoRequerimiento: string;\n    ultimoOcupoNombre: string;\n    externo: string;\n    //si es true, se deja por defecto el estado preinscrito\n    estadoPreinscripcionDefecto: boolean;\n    //filtro candidatos con estado diferente preinscrito y no admitido\n    estadoActivo: string;\n    comodinBusqueda: string;\n    nuevaHojaVida: boolean;\n    nombreFoto: string;\n    cadenaConsecutivoCandidato: string;\n    coordinadorProceso: number;\n    codigoTipoProceso: string;\n    indicadorHojaVidaExterna: string;\n    cedulaInternoExterno: number;\n    mensaje: string;\n\t\n\t}\n","import { UnionModel } from 'general-library-union'\n\n\nexport class EntrevistaPruebaModel extends UnionModel {\n\n\t\n\tdescripcion: string;\n\tobjetivo: string;\n\testado: string;\n\tcodigo: string;\n\ttipo: string;\n\tresumen: string;\t\n\tseccion: string;\n\tplanilla: string;\n\tnotificacion: string;\n\tpedirDatosResumen: boolean;\n\tnombreResponsable: string;\n\tcedulaResponsable: number;\t\n\tfechaResponsable: Date;\n\ttipoDistinto: string;\n\t//Usado unicamente para realizar consultas \n\tprocesoSeleccion: string;\n\tetapa: string;\n\torigen: string;\n\t\n\t\t\n}","import { UnionModel } from 'general-library-union'\n\n\nexport class EvaluacionEntPruModel extends UnionModel {\n\n\tetapaProcesoSeleccion: string;\n\tentrevistaPrueba: string;\n\tidentifica: number;\n\thojaVidaCandidato: number;\n\tterceroTalento: string;\n\tevalua: number;\n\testado: string;\n\tpuntaje: number;\n\taplicacion: Date;\n\tlimite: Date;\n\ttipo: string;\n\tdepende: string; \n\t tipotabla: string;\n\t/** La llave del evento u objeto de hoja de vida a la cual está asociada esta evaluacion */\n\tllaveTablaHoja: string; \n\tobservacion: string;\n\torigen: string;\n\tresponsableProcesoSel: number;\n\tnombreJefe: string;\n\tidentificacionJefe: string;\t\n\tresumenMedio: string;\n\tnombreCompleto: string;\n\tnombreCompletoEvalua: string;\n\tdescripcionEntrevistaPrueba: string;\n\tseccion: string;\n\tdocumento: string;\n\tdocumentoEvalua: string;\n\tnombreEvento: string;\n\tnombreEven: string;\n\tidentificacionInstructor: number;\n\tnombreInstructor: string;\n\tnombreCurso: string;\n\ttipoEvaluacion: string;\n\testadoCheck: boolean;\n\testadoStrCheck: string;\n\tllaveCandidato: string;\n\tconsultaProcesoSeleccion: string;\n\tnombreFoto: string;\n\tevaluacionVigente: Date;\n\tcodigoEntrevistaPrueba: string;\n\tlogin: string;\n\torganizacion: number;\n\taliasRol: string;\n\ttipoFiltro: string;\n\tempresa: number;\n\tnumeroProceso: number;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class FuenteTareaFiltroModel extends UnionModel {\n\n  organizacion: number;\n  nombreOrganizacion: string;\n  empresa: number;\n  nombreEmpresa: string;\n  cargo: string;\n  nombreCargo: string;\n  unidad: string;\n  nombreUnidad: string;\n  tipoPlanta: string;\n  nombreTipoPlanta: string;\n  ubicacionGeo: string;\n  nombreUbicacionGeo: string;\n  fuente: string;\n  nombreFuente: string;\n  origen: string;\n  comodin: string;\n  tipoModelo: string;\n  proceso: string;\n  responsable: number;\n  nombreResponsable: string;\n  motivoRequerimiento: string;\n  llaveTipo: string;\n  modoFuente: string;\n  clasificacionCargo: string;\n  vinculacion: number;\n  nivelCargo: string;\n  nombreNivelCargo: string\n\n}\n","import { UnionModel } from 'general-library-union'\n\n\nexport class DimensionGestionHojaModel extends UnionModel {\n\n\t\n\t\n\tgestionHojaVida: string;\n\tdimension: string;\n\ttipoDimension: string;\n\tevaluador: string;\n\tfactor: number;\n\tobtenido: number;\n\ttipo: string;\n\tpuntaje: number;\n\tdescripcionDimension: string;\n\tdescripcionTipoDimension: string;\n\tdescripcionFactor: string;\n\tdescripcion: string;\n\tllaveProcesoSeleccion: string;\n\tllaveCandidato: string;\n\tidentifica: number;\n\tpuntajeEsperado: number;\n\tcolor: string;\n\treferencia: string;\n\t\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { GeneralService, GeneralModel} from 'general-library-union';\nimport { TipoActividadModel } from '../../../capacitacion/models/TipoActividadModel';\nimport { EtapaProcesoModel } from '../../models/EtapaProcesoModel';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-cambio-estado-candidato',\n    templateUrl: './popup-cambio-estado-candidato.component.html',\n    styleUrls: ['./popup-cambio-estado-candidato.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule]\n})\nexport class PopupCambioEstadoCandidatoComponent implements OnInit {\n\n  @Input() showDialog : boolean;\n  @Input() procesoSeleccion : string;\n  @Output() public regresar = new EventEmitter;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  public listaEstado: TipoActividadModel [] = [];\n\n  constructor(private generalService: GeneralService, private generalPipe : GeneralPipe, private listaConstantesPipe : ListaConstantesPipe) { }\n\n  ngOnInit(): void {\n    this.cargarLista();\n  }\n\n  async cargarLista(){\n    let lista : TipoActividadModel [] = [];\n    let objFiltroTipoActividad = new GeneralModel('TipoActividadDTO', null, false, {origen : Constantes.CONSTANTE_SI});\n    lista = await this.generalService.queryForList(objFiltroTipoActividad).toPromise();\n\n    let noAdmitido : boolean = false;\n    let enProceso : boolean = false;\n    let enEnganche : boolean = false;\n\n    let listaEtapa : EtapaProcesoModel [] = [];\n    let objFiltroEtapaProc = new GeneralModel('EtapaProcesoDTO', null, false, {procesoSeleccion : this.procesoSeleccion});\n    listaEtapa = await this.generalService.queryForList(objFiltroEtapaProc).toPromise();\n\n    if(0 < lista.length){\n      for (const unaActividad of lista) {\n        if(unaActividad.etapa == null || Constantes.CONSTANTE_SI == unaActividad.informativa){\n          continue;\n        }\n        for (const unaEtapa of listaEtapa) {\n          if (unaActividad.llaveTabla == unaEtapa.tipoActividad) {\n            if (this.listaConstantesPipe.NOADMITIDOS == unaActividad.etapa) {\n              noAdmitido=true;\n            }\n            if (this.listaConstantesPipe.PROCESOCAN == unaActividad.etapa) {\n              enProceso=true;\n            }\n            if (this.listaConstantesPipe.ENGANCHE == unaActividad.etapa) {\n              enEnganche=true;\n            }\n            unaActividad.descripcion = unaActividad.descripcion + \"( \" + this.listaConstantesPipe.ESTADOS_CANIDATO.find(estado => estado.codigo === unaActividad.etapa).nombre + \" )\";\n            this.listaEstado.push(unaActividad);\n            break;\n          }\n        }\n      }\n\n      if(!noAdmitido){\n        let tipoActividad : TipoActividadModel = new TipoActividadModel();\n        tipoActividad.etapa = this.listaConstantesPipe.NOADMITIDOS;\n        tipoActividad.descripcion = \"( \" + this.listaConstantesPipe.DESNOADMITIDOS + \" )\";\n        this.listaEstado.push(tipoActividad);\n      }\n      if(!enProceso){\n        let tipoActividad : TipoActividadModel = new TipoActividadModel();\n        tipoActividad.etapa = this.listaConstantesPipe.PROCESOCAN;\n        tipoActividad.descripcion = \"( \" + this.listaConstantesPipe.DESPROCESOCAN + \" )\";\n        this.listaEstado.push(tipoActividad);\n      }\n      if(!enEnganche){\n        let tipoActividad : TipoActividadModel = new TipoActividadModel();\n        tipoActividad.etapa = this.listaConstantesPipe.ENGANCHE;\n        tipoActividad.descripcion = \"( \" + this.listaConstantesPipe.DESENGANCHE + \" )\";\n        this.listaEstado.push(tipoActividad);\n      }\n    }\n  }\n\n  seleccionarEstado(event){\n    this.onSelected.emit(event?.data);\n    this.showDialog = false;\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n}\n","<p-dialog header=\"{{'candidato'| translate}} \" [(visible)]=\"showDialog\" [style]=\"{width: '40vw'}\"\n  (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n  <p-table #tablaCambioEstadoCandidato [value]=\"listaEstado\" selectionMode=\"single\" [rows]=\"10\"\n      [paginator]=\"listaEstado.length > 10\" [totalRecords]=\"listaEstado.length\" [showCurrentPageReport]=\"true\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\"\n      (onRowSelect)=\"seleccionarEstado($event)\">\n      <ng-template pTemplate=\"header\">\n        <tr style=\"width: 100%;\">\n          <th style=\"width: 100%;\">{{'descripcion' | translate}}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-estado>\n        <tr [pSelectableRow]=\"estado\">\n          <td>{{estado.descripcion}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'parametrosEvaluacionPipe'\n  })\n\n  @Injectable({\n    providedIn: 'root'\n  })\n\n  export class TipoActividadPipe implements PipeTransform {\n\n     ORIGEN_ESTADO_SEGUIMIENTO = \"E\";\n\t ORIGEN_ESTADO_SEGUIMIENTO_BIENESTAR = \"SB\";\n\t\n\t ORIGEN_INSCRIPCION = \"I\";\n\t ORIGEN_BUSQUEDA = \"H\";\n\t ORIGEN_NO_APLICA = \"N\";\n\t ORIGEN_BUSQUEDA_INSCRIPCION= \"A\";\n\t\n\t ORIGEN_INSCRIPCION_DESC = \"Inscripcion\";\n\t ORIGEN_BUSQUEDA_DESC = \"Busqueda Hoja Vida\";\n\t ORIGEN_NO_APLICA_DESC = \"No Aplica\";\n\t ORIGEN_BUSQUEDA_INSCRIPCION_DESC = \"Inscripcion y Busqueda Hoja Vida\";\n\n     LISTA_ORIGENES = [\n\t\t{codigo: this.ORIGEN_INSCRIPCION, nombre: this.ORIGEN_INSCRIPCION_DESC},\n\t\t{codigo: this.ORIGEN_BUSQUEDA, nombre:  this.ORIGEN_BUSQUEDA_DESC},\n        {codigo: this.ORIGEN_NO_APLICA, nombre:  this.ORIGEN_NO_APLICA_DESC},\n        {codigo: this.ORIGEN_BUSQUEDA_INSCRIPCION, nombre:  this.ORIGEN_BUSQUEDA_INSCRIPCION_DESC},\n\t]\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        // if (args[0] == 'listaest1') { this.LISTAESTADOTERCERACARPETA_TIPOEVALUADOR.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n        return result;\n      }\n\n  }","import { HttpClient, HttpRequest, HttpEvent,HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n  })\n  export class ProcesoSeleccionCandidatoFacadeService {\n\n\n    listProcedure(objetoFiltro: GeneralModel) {\n      throw new Error('Method not implemented.');\n    }\n\n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n      this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    actualizarProcesoSeleccionCandidato(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n      return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/procesoSeleccionCandidatoFacade/actualizarProcesoSeleccionCandidato`, parametroGeneral).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n\n}\n","import { HttpClient, HttpRequest, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { InformacionArchivoModel } from '../../bienestar/models/InformacionArchivoModel';\nimport { ArchivoModel } from '../../hojavida/models/ArchivoModel';\nimport { ReclamacionProcesoModel } from '../models/ReclamacionProcesoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ProcesoSeleccionService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  crearProcesoAspirantes(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/crearProcesoAspirantes`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarCandidatoProcesoSeleccion(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/guardarCandidatoProcesoSeleccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cambiarEstadoProcesoSegunEstadoCandidatos(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/cambiarEstadoProcesoSegunEstadoCandidatos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerAdendos(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/traerAdendos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarDocumentoAnulacion(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/guardarDocumentoAnulacion`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerListaRegistroCandidatos(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/obtenerListaRegistroCandidatos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  notificarRegistroCandidato(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/notificarRegistroCandidato`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  trasladarCandidato(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/trasladarCandidato`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerListaCitacion(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/obtenerListaCitacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarPorEtapaProceso(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/eliminarPorEtapaProceso`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarEstadoCandidato(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/actualizarEstadoCandidato`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  traerPerfilExiste(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/traerPerfilExiste`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarEncabezadosMedioAsistente(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/cargarEncabezadosMedioAsistente`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  imprimirConvocatoria(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/imprimirConvocatoria`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarMediosPorAsistente(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/cargarMediosPorAsistente`, parametroGeneral).pipe(\n    );\n  }\n\n  imprimirRequerimiento(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/imprimirRequerimiento`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarPosicion(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/actualizarPosicion`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarArchivoPlano(archivo: File, usuario: string): Observable<any> {\n    let formData = new FormData();\n    formData.append(\"archivo\", archivo);\n    formData.append(\"usuario\", usuario);\n    const req = new HttpRequest('POST', `${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/cargarArchivoPlano`, formData, {\n      reportProgress: true,\n    });\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  importarCalificacion(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/importarCalificacion`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  enviarInvitaciones(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/enviarInvitaciones`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerListaCambioEtapa(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/obtenerListaCambioEtapa`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cambiarEstadoProcesoSeleccion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/cambiarEstadoProcesoSeleccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerConvocatorias(parametroGeneral: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/traerConvocatorias`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarDocumento(llaveTablaArchivo: string, carpetaTemporal: boolean, carpetaArchivo: string, informacionArchivo: InformacionArchivoModel): Observable<any> {\n\n    let formData = new FormData();\n    formData.append(\"llaveTablaArchivo\", String(llaveTablaArchivo));\n    formData.append(\"carpetaTemporalFront\", JSON.stringify(carpetaTemporal));\n    formData.append(\"carpetaArchivo\", String(carpetaArchivo));\n    formData.append(\"file\", String(informacionArchivo.file));\n    informacionArchivo.file = null;\n    formData.append(\"informacionArchivo\", JSON.stringify(informacionArchivo));\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/cargarDocumento`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardar(reclamacion: ReclamacionProcesoModel, respuesta: boolean, archivo: ArchivoModel, tabla: string, llaveTabla: string) : Observable<any>{\n\n    let formData = new FormData();\n    formData.append(\"reclamacion\", JSON.stringify(reclamacion));\n    formData.append(\"respuesta\", JSON.stringify(respuesta));\n    formData.append(\"archivoDTO\", JSON.stringify(archivo));\n    formData.append(\"tabla\", JSON.stringify(tabla));\n    formData.append(\"llaveTabla\", JSON.stringify(llaveTabla));\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/talento/procesoSeleccion/guardarDocumento`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { CandidatoModel } from '../models/CandidatoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CandidatoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  guardarCandidatoProcesoSeleccion(general : any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/candidato/guardarCandidatoProcesoSeleccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  consultarCandidatoProcesoSelec(candidatoDTO : CandidatoModel): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/candidato/consultarCandidatoProcesoSelec`, candidatoDTO).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerAnexos(general : any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/candidato/traerAnexos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n}\n","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DimensionGestionHojaService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  obtenerDimensionHojaProceso( general: any ) : Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/dimensionGestionHoja/obtenerDimensionHojaProceso`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CandidatoModel } from '../../../models/CandidatoModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { TipoActividadPipe } from '../../../pipes/tipo-actividad.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { TipoActividadModel } from '../../../../capacitacion/models/TipoActividadModel';\nimport { ProcesoSeleccionCandidatoFacadeService } from '../../../../sarageneral/services/procesoSeleccionCandidatoFacade.service';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { CandidatoService } from '../../../services/candidato.service';\nimport { DimensionGestionHojaModel } from '../../../models/DimensionGestionHojaModel';\nimport { DimensionGestionHojaService } from '../../../services/dimensionGestionHoja.service';\nimport { ArchivoModel } from '../../../../hojavida/models/ArchivoModel';\nimport { HojaVidaPipe } from '../../../../../shared/pipes/hojavida.pipe';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PopupCambioEstadoCandidatoComponent } from '../../../popups/popup-cambio-estado-candidato/popup-cambio-estado-candidato.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf } from '@angular/common';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TabViewModule } from 'primeng/tabview';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\n\n@Component({\n    selector: 'app-mantenimiento-candidato',\n    templateUrl: './mantenimiento-candidato.page.html',\n    styleUrls: ['./mantenimiento-candidato.page.scss'],\n    standalone: true,\n    imports: [ConfirmDialogModule, TabViewModule, FormsModule, ReactiveFormsModule, InputTextModule, DropdownModule, NgIf, CalendarModule, InputTextareaModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupCambioEstadoCandidatoComponent, TranslateModule]\n})\nexport class MantenimientoCandidatoPage implements OnInit {\n\n  @Input() candidato : CandidatoModel;\n  @Input() proceso : ProcesoSeleccionModel;\n  @Input() nuevo : boolean;\n\n  public listaCompetencias : DimensionGestionHojaModel [] = [];\n  public listaArchivo : ArchivoModel [] = [];\n  public listaAnexo : ArchivoModel [] = [];\n  public archivo : ArchivoModel;\n  public encuesta : boolean;\n  formCandidato: FormGroup;\n\n  mostrarPopupCambioEstadoCandidato : boolean;\n  guardoCandidato : boolean;\n  estadoPasado : string;\n  listaSeguimiento : any;\n  listaCodigo : any;\n  listaMotivo : any;\n\n  constructor(private formBuilder: FormBuilder, public listaConstantesPipe : ListaConstantesPipe, private cargarSelectItem: cargarmapasGlobal,\n      private tipoActividadPipe : TipoActividadPipe, private confirmationService: ConfirmationService, private generalService: GeneralService,\n      private toastService: ToastService, private procesoSeleccionCandidatoFacadeService : ProcesoSeleccionCandidatoFacadeService,\n      private procesoSeleccionService : ProcesoSeleccionService, private notificacionesBusService: ToastService, private candidatoService : CandidatoService,\n      private controlFuncionalidad: CargarControlFuncionalidadService, private dimensionGestionHojaService : DimensionGestionHojaService, private utilsService: UtilsService,\n      private hojaVidaPipe : HojaVidaPipe, private authService: AuthService, private cargarArchivoService: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService) { }\n\n  ngOnInit(): void {\n    this.candidato = new CandidatoModel();\n    this.archivo = new ArchivoModel();\n    this.encuesta = false;\n    this.estadoPasado = null;\n    this.mostrarPopupCambioEstadoCandidato = false;\n    this.cargarFormularios();\n    this.cargarListas();\n    this.archivo.llaveCandidato = this.candidato.llaveTabla;\n    this.archivo.nombreTabla = this.hojaVidaPipe.ETAPAPROCESO;\n    this.traerArchivos();\n    this.traerAnexos();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cargarFormularios(){\n    this.formCandidato = this.formBuilder.group({\n      documentoCandidato: new FormControl(this.candidato.documentoCandidato),\n      estado: new FormControl(this.candidato.estado),\n      enganche: new FormControl(this.candidato.enganche),\n      nombres: new FormControl(this.candidato.nombres),\n      direccion: new FormControl(this.candidato.direccion),\n      telefono: new FormControl(this.candidato.telefono),\n      cadenaConsecutivoCandidato: new FormControl(this.candidato.cadenaConsecutivoCandidato),\n      fechainscripcion: new FormControl(this.candidato.fechainscripcion != null ? new Date(this.candidato.fechainscripcion) : null),\n      estadoSeguimiento: new FormControl(this.candidato.estadoSeguimiento),\n      folio: new FormControl(this.candidato.folio),\n      puntaje: new FormControl(this.candidato.puntaje),\n      llaveTabla : new FormControl(this.candidato.llaveTabla),\n      llaveEtapa : new FormControl(this.candidato.llaveEtapa),\n      inscripcion: new FormControl(this.candidato.inscripcion),\n      procesoseleccion: new FormControl(this.candidato.procesoseleccion),\n      conceptofinal: new FormControl(this.candidato.conceptofinal),\n      puntajeProceso: new FormControl(null),\n      posicion: new FormControl(this.candidato.posicion),\n      fechaingreso: new FormControl(this.candidato.fechaingreso),\n      fechatermina: new FormControl(this.candidato.fechatermina),\n      motivo: new FormControl(this.candidato.motivo),\n      observacion: new FormControl(this.candidato.observacion),\n      reclamacion: new FormControl(this.candidato.reclamacion),\n      fechareclamacion: new FormControl(this.candidato.fechareclamacion),\n      dorecalcma: new FormControl(this.candidato.dorecalcma),\n      reclamaciontexto: new FormControl(this.candidato.reclamaciontexto),\n      concepto: new FormControl(this.candidato.concepto),\n      desarrollo: new FormControl(this.candidato.desarrollo),\n      mensaje: new FormControl(this.candidato.mensaje),\n    });\n  }\n\n  async cargarListas(){\n    this.listaSeguimiento = await this.cargarSelectItem.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoActividadDTO', null, false, {origen : this.tipoActividadPipe.ORIGEN_ESTADO_SEGUIMIENTO}));\n    this.listaCodigo = await this.cargarSelectItem.cargarSelectItemString('codigo', 'descripcion', new GeneralModel('CodigoBaseDTO', null, false, {tipo : 'TI'}));\n    this.listaMotivo = await this.cargarSelectItem.cargarSelectItemString('codigo', 'descripcion', new GeneralModel('CodigoBaseDTO', null, false, {tipo : 'MR'}));\n    this.cargarListaCompetencias();\n  }\n\n\n  isCambioPuntaje() : string {\n    let puntajeProceso : string = null;\n    if(this.formCandidato.get('puntaje').value != null){\n      if(0 < Number(this.formCandidato.get('puntaje').value)){\n        puntajeProceso = String(this.formCandidato.get('puntaje').value);\n      }else{\n        puntajeProceso = 'Puntaje Inferior';\n      }\n    }\n    return puntajeProceso;\n  }\n\n  isEstadoFinal() : boolean{\n    return this.listaConstantesPipe.ENGANCHE == this.formCandidato.get('estado').value || this.listaConstantesPipe.INFORMEFINAL == this.formCandidato.get('estado').value;\n  }\n\n\n  async cambioTab(event) {\n    const tabName = event.originalEvent.target.innerText;\n    console.log(tabName);\n    /*if(this.translateService.instant('seleccioncampos') == tabName){\n      this.cargarListaSeleccionCampos();\n    }*/\n  }\n\n  showEliminarCandidatoConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarCandidato();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  eliminarCandidato(){\n    let objetoFiltro: GeneralModel = new GeneralModel('CandidatoDTO', null, false, this.candidato);\n    this.generalService.delete(objetoFiltro).subscribe(data => {\n      let result : number = data;\n      if (result == 1) {\n        this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      } else {\n        this.toastService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n  cambiarEstado(){\n    this.estadoPasado = this.candidato.estado;\n    this.mostrarPopupCambioEstadoCandidato = true;\n  }\n\n  seleccionEstadoCandidato(event){\n    let tipoActividad : TipoActividadModel = new TipoActividadModel();\n    tipoActividad = event;\n    this.formCandidato.get('estado').setValue(tipoActividad.etapa);\n    this.formCandidato.get('estadoSeguimiento').setValue(tipoActividad.estadoInicio);\n    this.mostrarPopupCambioEstadoCandidato = false;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  regresarPopupEstadoSeleccionCandidato(){\n    this.mostrarPopupCambioEstadoCandidato = false;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async actualizar(){\n    if(Constantes.CONSTANTE_NO != this.formCandidato.get('estado').value){\n      this.candidato.motivo = Constantes.PUNTO;\n      this.candidato.observacion = Constantes.PUNTO;\n      this.candidato.reclamacion = Constantes.CONSTANTE_NO;\n      this.candidato.fechareclamacion = null;\n      this.candidato.dorecalcma = Constantes.PUNTO;\n      this.candidato.reclamaciontexto = Constantes.PUNTO;\n    }\n    let objProcesoSeleccionCandFacade : ParametrosGeneralModel = new ParametrosGeneralModel('CandidatoDTO', this.formCandidato.value, null, {estadoPasado : this.estadoPasado} ,null);\n    await this.procesoSeleccionCandidatoFacadeService.actualizarProcesoSeleccionCandidato(objProcesoSeleccionCandFacade).toPromise();\n    let objProcesoSeleccion: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'ProcesoSeleccionDTO', null, null, {llaveProceso: this.formCandidato.get('procesoseleccion').value}, null);\n    await this.procesoSeleccionService.actualizarPosicion(objProcesoSeleccion).toPromise();\n    await this.procesoSeleccionService.cambiarEstadoProcesoSegunEstadoCandidatos({ proceso: this.proceso }).toPromise();\n    this.notificacionesBusService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n    this.cargarListaCompetencias();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async guardar(){\n    let cand : CandidatoModel = new CandidatoModel();\n    cand.procesoseleccion = this.proceso.llaveTabla;\n    if(this.candidato.hojaVidaCandidato != null){\n      cand.hojaVidaCandidato = this.candidato.hojaVidaCandidato;\n    }else{\n      cand.identificacion = this.candidato.identificacion;\n    }\n    let objFiltroCand = new GeneralModel('CandidatoDTO', null, false, cand);\n    cand = await this.generalService.queryForObject(objFiltroCand).toPromise();\n    if(cand != null){\n      this.notificacionesBusService.showError(Constantes.MENSAJE_EXISTE);\n      this.guardoCandidato = false;\n      return;\n    }\n    this.candidato.procesoseleccion = this.proceso.llaveTabla;\n    if(this.candidato.externo == null){\n      this.candidato.externo = 'N';\n    }\n    await this.candidatoService.guardarCandidatoProcesoSeleccion({candidato : this.candidato}).toPromise();\n    this.nuevo = false;\n    this.notificacionesBusService.showSuccess(Constantes.MENSAJE_GUARDAR);\n    let candidatosProceso : CandidatoModel = new CandidatoModel();\n    candidatosProceso.procesoseleccion = this.proceso.llaveTabla;\n    if(this.candidato.estadoPreinscripcionDefecto){\n      let cantidadRegistrosCandidato = await this.generalService.cantidadRegistros(new GeneralModel('CandidatoDTO', null, false, candidatosProceso)).toPromise();\n      if(1 == cantidadRegistrosCandidato && this.listaConstantesPipe.SOLICITUD == this.proceso.estado){\n        this.proceso.estado = this.listaConstantesPipe.PROCESO;\n        await this.generalService.update(new GeneralModel('ProcesoSeleccionDTO', null, false, this.proceso)).toPromise();\n      }\n    }else{\n      await this.procesoSeleccionService.cambiarEstadoProcesoSegunEstadoCandidatos({ proceso: this.proceso }).toPromise();\n    }\n    this.guardoCandidato = true;\n    this.cargarListaCompetencias();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  async cargarListaCompetencias(){\n    this.listaCompetencias = [];\n    let dimensionGestionHoja : DimensionGestionHojaModel = new DimensionGestionHojaModel();\n    dimensionGestionHoja.llaveCandidato = this.candidato.llaveTabla;\n    dimensionGestionHoja.llaveProcesoSeleccion = this.candidato.procesoseleccion;\n    this.dimensionGestionHojaService.obtenerDimensionHojaProceso({dimensionGestionHoja : dimensionGestionHoja}).subscribe(data => {\n      this.listaCompetencias = data?.resultado;\n    });\n  }\n\n  async traerArchivos(){\n    this.listaArchivo = [];\n    let listaarchivos : ArchivoModel [] = [];\n    const fechaCal: Date = new Date();\n    fechaCal.setHours(fechaCal.getHours() - 1);\n    let filtroArchivo: GeneralModel = new GeneralModel('ArchivoDTO', 'Archivo.consultarArchivosCandidato', true, this.archivo);\n    listaarchivos = await this.generalService.queryForList(filtroArchivo).toPromise();\n    listaarchivos.forEach(archivo => {\n      if(this.isFuncional()){\n        archivo.eliminar = true;\n      }else{\n        if(archivo.fechaAdicionado > fechaCal){\n          archivo.eliminar = true;\n        }else{\n          archivo.eliminar = false;\n        }\n      }\n      this.listaArchivo.push(archivo);\n    });\n  }\n\n  async traerAnexos(){\n    this.listaAnexo = [];\n    this.candidatoService.traerAnexos({llaveCandidato : this.candidato.llaveTabla}).subscribe(data => {\n      this.listaAnexo = data?.resultado;\n    });\n  }\n\n  verArchivo(archivo : ArchivoModel) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('codigoAplicacion');\n    this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(archivo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = archivo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  isFuncional(): boolean {\n    return this.authService.getTokenKey('tipoLogin') == 'U';\n  }\n\n  verAnexo(archivo : ArchivoModel) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('codigoAplicacion');\n    this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(archivo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = archivo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n}\n","<p-confirmDialog></p-confirmDialog>\n<div>\n  <p-tabView (onChange)=\"cambioTab($event)\">\n\n    <!-- TAB CANDIDATO -->\n    <p-tabPanel header=\"{{'candidato' | translate}}\">\n      <div class=\"field col-6 md:col-12 lg:col-12\">\n        <div class=\"card\">\n          <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\n          <form [formGroup]=\"formCandidato\" #formulario=\"ngForm\">\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n              <div class=\"p-fluid p-formgrid grid\">\n\n                <!-- IDENTIFICACIÓN -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"documentoCandidato\" formControlName=\"documentoCandidato\" [readonly]=\"true\"/>\n                    <label htmlFor=\"documentoCandidato\">{{'identificacion' | translate}}*</label>\n                  </span>\n                </div>\n\n                <!-- ESTADO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <p-dropdown id=\"estado\" [options]=\"listaConstantesPipe.ETAPAPROCESO\" formControlName=\"estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                      [autoDisplayFirst]=\"false\" [readonly]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"></p-dropdown>\n                    <label htmlFor=\"estado\">{{'estado' | translate}} *</label>\n                  </span>\n                </div>\n\n                <!-- ENGANCHE -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'E' == this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <p-dropdown id=\"enganche\" [options]=\"listaConstantesPipe.SI_NO\" formControlName=\"enganche\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                      [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\"></p-dropdown>\n                    <label htmlFor=\"enganche\">{{'enganche' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- NOMBRE -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"nombres\" formControlName=\"nombres\" [readonly]=\"true\"/>\n                    <label htmlFor=\"nombres\">{{'nombre' | translate}}*</label>\n                  </span>\n                </div>\n\n                <!-- DIRECCIÓN -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"direccion\" formControlName=\"direccion\" [readonly]=\"true\"/>\n                    <label htmlFor=\"direccion\">{{'direccion' | translate}}*</label>\n                  </span>\n                </div>\n\n                <!-- TELEFONO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"telefono\" formControlName=\"telefono\" [readonly]=\"true\"/>\n                    <label htmlFor=\"telefono\">{{'telefono' | translate}}*</label>\n                  </span>\n                </div>\n\n                <!-- CONSECUTIVO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"cadenaConsecutivoCandidato\" formControlName=\"cadenaConsecutivoCandidato\" [readonly]=\"true\"/>\n                    <label htmlFor=\"cadenaConsecutivoCandidato\">{{'consecutivo' | translate}}*</label>\n                  </span>\n                </div>\n\n                <!-- FECHA -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <p-calendar id=\"fechainscripcion\" formControlName=\"fechainscripcion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" ></p-calendar>\n                    <label for=\"fechainscripcion\">{{'fecha' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- ESTADO SEGUIMIENTO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" >\n                  <span class=\"p-float-label\">\n                    <p-dropdown id=\"estadoSeguimiento\" [options]=\"listaSeguimiento\" formControlName=\"estadoSeguimiento\" optionValue=\"key\" optionLabel=\"label\"\n                      [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\" [readonly]=\"true\"></p-dropdown>\n                    <label htmlFor=\"estadoSeguimiento\">{{'estado' | translate}} {{'seguimiento' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- DOCUMENTO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"folio\" formControlName=\"folio\" [readonly]=\"encuesta\" maxlength=\"10\"/>\n                    <label htmlFor=\"folio\">{{'documento' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- TIPO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" >\n                  <span class=\"p-float-label\">\n                    <p-dropdown id=\"inscripcion\" [options]=\"listaCodigo\" formControlName=\"inscripcion\" optionValue=\"key\" optionLabel=\"label\"\n                      [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\" [readonly]=\"encuesta\"></p-dropdown>\n                    <label htmlFor=\"inscripcion\">{{'tipo' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- CONCEPTO FINAL -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <p-calendar id=\"conceptofinal\" formControlName=\"conceptofinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" [disabled]=\"encuesta\"></p-calendar>\n                    <label for=\"conceptofinal\">{{'concepto_final' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- PUNTAJE PROCESO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != this.formCandidato.get('estado').value && !encuesta\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"puntajeProceso\" formControlName=\"puntajeProceso\" [readonly]=\"true\"/>\n                    <label htmlFor=\"puntajeProceso\">{{'puntaje' | translate}} {{'proceso' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- POSICIÓN -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != this.formCandidato.get('estado').value && !encuesta\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"posicion\" formControlName=\"posicion\" [readonly]=\"true\" maxlength=\"17\"\n                      oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n                    <label htmlFor=\"posicion\">{{'posicion' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- ESTADO FINAL -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != this.formCandidato.get('estado').value && !encuesta && isEstadoFinal()\">\n                  <span class=\"p-float-label\">\n                    <p-calendar id=\"fechaingreso\" formControlName=\"fechaingreso\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"></p-calendar>\n                    <label for=\"fechaingreso\">{{'posible' | translate}} {{'ingreso' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- TERMINA -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != this.formCandidato.get('estado').value && !encuesta && isEstadoFinal()\">\n                  <span class=\"p-float-label\">\n                    <p-calendar id=\"fechatermina\" formControlName=\"fechatermina\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"></p-calendar>\n                    <label for=\"fechatermina\">{{'termina' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- MOTIVO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <p-dropdown id=\"motivo\" [options]=\"listaMotivo\" formControlName=\"motivo\" optionValue=\"key\" optionLabel=\"label\"\n                      [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\" [readonly]=\"encuesta\"></p-dropdown>\n                    <label htmlFor=\"motivo\">{{'motivo' | translate}} {{'no' | translate}} {{'admision' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- OBSERVACIÓN -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"observacion\" formControlName=\"observacion\" maxlength=\"2000\" [readonly]=\"encuesta\"/>\n                    <label htmlFor=\"observacion\">{{'observacion' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- RECALCULO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <p-dropdown id=\"reclamacion\" [options]=\"listaConstantesPipe.SI_NO\" formControlName=\"reclamacion\" optionValue=\"key\" optionLabel=\"label\"\n                      [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\" [readonly]=\"encuesta\"></p-dropdown>\n                    <label htmlFor=\"reclamacion\">{{'recalculo' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- FECHA RECLAMACIÓN -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <p-calendar id=\"fechareclamacion\" formControlName=\"fechareclamacion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" [disabled]=\"encuesta\"></p-calendar>\n                    <label for=\"fechareclamacion\">{{'fecha' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- DOCUMENTO -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"dorecalcma\" formControlName=\"dorecalcma\" [readonly]=\"encuesta\"/>\n                    <label htmlFor=\"dorecalcma\">{{'documento' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- DESCRIPCIÓN RECLAMACIÓN -->\n                <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == this.formCandidato.get('estado').value\">\n                  <span class=\"p-float-label\">\n                    <input class=\"form-control input-md\" pInputText type=\"text\" id=\"reclamaciontexto\" formControlName=\"reclamaciontexto\" maxlength=\"4000\" [readonly]=\"encuesta\"/>\n                    <label htmlFor=\"reclamaciontexto\">{{'descripcion' | translate}} {{'reclamacion' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- CONCEPTO GENERAL  -->\n                <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"!encuesta\">\n                  <span class=\"p-float-label\">\n                      <textarea id=\"concepto\" rows=\"5\" pInputTextarea formControlName=\"concepto\" maxlength=\"4000\" [readonly]=\"encuesta\"\n                          class=\"p-inputtextarea p-inputtext p-component p-element min-h-100 w-full\"></textarea>\n                      <label for=\"concepto\">{{'concepto' | translate}} {{'general' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- FACTOR DE DESARROLLO -->\n                <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"!encuesta\">\n                  <span class=\"p-float-label\">\n                      <textarea id=\"desarrollo\" rows=\"5\" pInputTextarea formControlName=\"desarrollo\" maxlength=\"4000\" [readonly]=\"encuesta\"\n                          class=\"p-inputtextarea p-inputtext p-component p-element min-h-100 w-full\"></textarea>\n                      <label for=\"desarrollo\">{{'factor' | translate}} {{'de' | translate}} {{'desarrollo' | translate}}</label>\n                  </span>\n                </div>\n\n                <!-- MENSAJE -->\n                <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"this.formCandidato.get('mensaje').value != null\">\n                  <span class=\"p-float-label\">\n                      <textarea id=\"mensaje\" rows=\"5\" pInputTextarea formControlName=\"mensaje\" [readonly]=\"true\"\n                          class=\"p-inputtextarea p-inputtext p-component p-element min-h-100 w-full\"></textarea>\n                      <label for=\"mensaje\">{{'mensaje' | translate}}</label>\n                  </span>\n                </div>\n              </div>\n              <div class=\"flex justify-content-end\">\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\" (click)=\"guardar()\"\n                  label=\"{{'link_guardar' | translate}}\" *ngIf=\"this.validarControlFuncionalidad('procsel:guarcand') && nuevo && !encuesta\">\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\" (click)=\"actualizar()\"\n                  label=\"{{'link_actualizar' | translate}}\" *ngIf=\"this.validarControlFuncionalidad('procsel:actcand') && !nuevo && !encuesta\">\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button p-button-outlined\" icon=\"glyphicons glyphicons-bin\" (click)=\"showEliminarCandidatoConfirmDialog()\"\n                  label=\"{{'link_eliminar' | translate}}\" *ngIf=\"this.validarControlFuncionalidad('procsel:elimcand') && !nuevo && !encuesta\">\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button p-button-outlined\" icon=\"glyphicons glyphicons-check\" (click)=\"cambiarEstado()\"\n                  label=\"{{'link_cambiarestado' | translate}}\" *ngIf=\"this.validarControlFuncionalidad('procsel:actcand') && !nuevo && !encuesta\">\n                </button>\n              </div>\n            </div>\n          </form>\n        </div>\n      </div>\n    </p-tabPanel>\n\n    <!-- TAB COMPETENCIAS -->\n    <p-tabPanel header=\"{{'competencia' | translate}}\">\n\n      <p-table #tablaCompetencias [value]=\"listaCompetencias\" [rows]=\"10\" [paginator]=\"listaCompetencias.length > 10\"\n        [totalRecords]=\"listaCompetencias.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\">\n        <ng-template pTemplate=\"header\">\n          <tr style=\"width: 100%;\">\n            <th style=\"width: 40%;\">{{ 'descripcion' | translate }}</th>\n            <th style=\"width: 30%;\">{{ 'obtenido' | translate }}</th>\n            <th style=\"width: 30%;\">{{ 'puntaje' | translate }} {{ 'esperado' | translate }}</th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-competencia>\n          <tr [pSelectableRow]=\"competencia\">\n            <td>{{competencia.descripcionDimension}}</td>\n            <td>{{competencia.obtenido}}</td>\n            <td>{{competencia.puntajeEsperado}}</td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n    </p-tabPanel>\n\n    <!-- TAB ARCHIVOS ADJUNTOS -->\n    <p-tabPanel header=\"{{'archivo' | translate}}s {{'adjuntos' | translate}}\">\n      <p-table #tablaCompetencias [value]=\"listaArchivo\" [rows]=\"10\" [paginator]=\"listaArchivo.length > 10\"\n        [totalRecords]=\"listaArchivo.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\">\n        <ng-template pTemplate=\"header\">\n          <tr style=\"width: 100%;\">\n            <th style=\"width: 30%;\">{{ 'descripcion' | translate }}</th>\n            <th style=\"width: 30%;\">{{ 'etapa' | translate }}</th>\n            <th style=\"width: 30%;\">{{ 'nombre' | translate }}</th>\n            <th style=\"width: 10%;\">{{ 'ver' | translate }}</th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-archivo>\n          <tr [pSelectableRow]=\"archivo\">\n            <td>{{archivo.descripcion}}</td>\n            <td>{{archivo.etapa}}</td>\n            <td>{{archivo.archivoorigen}}</td>\n            <td style=\"width: 10%;\">\n              <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                  icon=\"glyphicons glyphicons-paperclip\" (click)=\"verArchivo(archivo)\" type=\"file\"></button>\n            </td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n    </p-tabPanel>\n\n    <!-- TAB ANEXOS HOJA VIDA -->\n    <p-tabPanel header=\"{{'archivo' | translate}}s {{'anexos' | translate}}\">\n      <p-table #tablaCompetencias [value]=\"listaAnexo\" [rows]=\"10\" [paginator]=\"listaAnexo.length > 10\"\n        [totalRecords]=\"listaAnexo.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\">\n        <ng-template pTemplate=\"header\">\n          <tr style=\"width: 100%;\">\n            <th style=\"width: 30%;\">{{ 'origen' | translate }}</th>\n            <th style=\"width: 30%;\">{{ 'descripcion' | translate }}</th>\n            <th style=\"width: 30%;\">{{ 'nombre' | translate }}</th>\n            <th style=\"width: 10%;\">{{ 'ver' | translate }}</th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-archivo>\n          <tr [pSelectableRow]=\"archivo\">\n            <td>{{archivo.origen}}</td>\n            <td>{{archivo.descripcion}}</td>\n            <td>{{archivo.archivoorigen}}</td>\n            <td style=\"width: 10%;\">\n              <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                  icon=\"glyphicons glyphicons-paperclip\" (click)=\"verAnexo(archivo)\" type=\"file\"></button>\n            </td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n    </p-tabPanel>\n\n  </p-tabView>\n</div>\n<div *ngIf=\"mostrarPopupCambioEstadoCandidato\">\n  <app-popup-cambio-estado-candidato [showDialog]=\"mostrarPopupCambioEstadoCandidato\" [procesoSeleccion]=\"null\" (onSelected)=\"seleccionEstadoCandidato($event)\"\n    (regresar)=\"regresarPopupEstadoSeleccionCandidato()\"></app-popup-cambio-estado-candidato>\n</div>\n","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs'; \n\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { FuenteTareaFiltroModel } from '../../sarageneral/models/FuenteTareaFiltroModel';\nimport { CandidatoModel } from '../models/CandidatoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConvocatoriaService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  iniciarProcesoConv(fuenteTareaFiltro: FuenteTareaFiltroModel, candidato: CandidatoModel) : Observable<any>{\n    let formData = new FormData();\n    formData.append(\"fuenteTareaFiltro\", JSON.stringify(fuenteTareaFiltro));\n    formData.append(\"candidato\", JSON.stringify(candidato));\n    const req = new HttpRequest('POST', `${this.utilsService.obtenerUrlApi()}/requieretoken/talento/convocatoria/iniciarProcesoConv`, formData, {\n      reportProgress: true,\n    });\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerArchivoPub( general: any ) : Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/convocatoria/obtenerArchivoPub`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerPropiedadInterfaz( general: any ) : Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/publicacionconvocatoria/obtenerPropiedadInterfaz`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarDataSource( general: any ) : Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/publicacionconvocatoria/cargarDataSource`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { ErrorIntecertorService, ParametrosGeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ReclamacionProcesoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  traerAdendos(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/reclamacionProceso/traerAdendos`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarGrupoSeleccion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/reclamacionProceso/actualizarGrupoSeleccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  notificarAdendo(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/reclamacionProceso/notificarAdendo`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\nimport { ErrorIntecertorService, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { EtapaProcesoModel } from '../models/EtapaProcesoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EtapaProcesoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  obtenerEtapaEntrevistaInscripcion(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/etapaproceso/obtenerEtapaEntrevistaInscripcion`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarListaEtapas(general : any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/etapaproceso/cargarListaEtapas`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  formatearDateEtapaProceso(etapaProceso: EtapaProcesoModel) : EtapaProcesoModel {\n    if (!etapaProceso) {\n      return null;\n    }\n    etapaProceso.fechaInicial = etapaProceso.fechaInicial ? new Date(etapaProceso.fechaInicial) : null;\n    etapaProceso.fechaFinal = etapaProceso.fechaFinal ? new Date(etapaProceso.fechaFinal) : null;\n    etapaProceso.citacion = etapaProceso.citacion ? new Date(etapaProceso.citacion) : null;\n    etapaProceso.fechaReclamacion = etapaProceso.fechaReclamacion ? new Date(etapaProceso.fechaReclamacion) : null;\n    etapaProceso.fechaInicioCitacion = etapaProceso.fechaInicioCitacion ? new Date(etapaProceso.fechaInicioCitacion) : null;\n    etapaProceso.fechaFinCitacion = etapaProceso.fechaFinCitacion ? new Date(etapaProceso.fechaFinCitacion) : null;\n    return etapaProceso;\n  }\n\n\n  actualizarGrupoSeleccion(general : any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/etapaproceso/actualizarGrupoSeleccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarEtapasPorAsistente(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/etapaproceso/cargarEtapasPorAsistente`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarEncabezadosEtapasAsistente( general: any ) : Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/etapaproceso/cargarEncabezadosEtapasAsistente`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  notificarCitacion(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/etapaproceso/notificarCitacion`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'convocatoriaPipe',\n    standalone: true\n})\n@Injectable({\n\tprovidedIn: 'root'\n  })\nexport class ConvocatoriaPipe implements PipeTransform {\n\n\n\t/*----------------------------------------------------\n\t *Mapa Proceso Seleccion\n\t *----------------------------------------------------\n\t */\n\n\t TABLA_ETAPA = \"TABLA_ETAPA\";\n\t TABLA_COMPETENCIA = \"TABLA_COMPETENCIA\";\n\t TABLA_MEDIO = \"TABLA_MEDIO\";\n\t TABLA_ETAPA_DESC = \"TABLA ETAPA\";\n\t TABLA_COMPETENCIA_DESC = \"TABLA COMPETENCIA\";\n\t TABLA_MEDIO_DESC = \"TABLA MEDIO\";\n\n\n\n   TABLA_PROCESO_SELECCION = [\n\t\t{codigo: this.TABLA_ETAPA, nombre: this.TABLA_ETAPA_DESC},\n\t\t{codigo: this.TABLA_COMPETENCIA, nombre: this.TABLA_COMPETENCIA_DESC},\n    {codigo: this.TABLA_MEDIO, nombre: this.TABLA_MEDIO_DESC},\n\n\t]\n\n\n\n  /*----------------------------------------------------\n\t *Mapa Requerimiento \n\t *----------------------------------------------------\n\t */\n\n\t//Valores\n\t REQUERIMIENTO = \"REQUERIMIENTO\";\n\t BASE = \"BASE\";\n\t COMPETENCIA = \"COMPETENCIA\";\n\t RELACION = \"RELACION\";\n\t GRUPO = \"GRUPO\";\n\t FUNCION = \"FUNCION\";\n\t ENTRENAMIENTO = \"ENTRENAMIENTO\";\n\t INDUCCION = \"INDUCCION\";\n\t PERFIL = \"PERFIL\";\t\n\t TABLA = \"LISTA_TABLA_ADICIONAL\";\n\t AUTORIZADORES = \"AUTORIZADORES\";\n\t FORMACION = \"FORMACION\";\n\t CANDIDATOS = \"CANDIDATOS\";\n\t\n\t//Nombres\n\t DESREQUERIMIENTO = \"DATOS REQUERIMIENTO\";\n\t DESBASE = \"DESCRIPCION GENERAL\";\n\t DESCOMPETENCIA = \"COMPETENCIAS\";\n\t DESRELACION = \"RELACION INTERNA EXTERNA\";\n\t DESGRUPO = \"GRUPOS QUE PARTICIPA\";\n\t DESFUNCION = \"FUNCIONES\";\n\t DESENTRENAMIENTO = \"ENTRENAMIENTO\";\n\t DESINDUCCION = \"INDUCCION\";\n\t DESPERFIL = \"PERFIL\";\n\t DESTABLA = \"Tabla Adicional\";\n\t DESAUTORIZADORES = \"AUTORIZADORES\";\n\t DESFORMACION = \"FORMACION\";\n\t DESCANDIDATOS = \"CANDIDATOS\";\n\t\n\t COSTEO = \"CO\";\n\t PUESTO = \"PU\";\n\t CANDIDATO = \"KA\";\n\n\t EXTERNO = \"E\";\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'tablaProcesoSeleccion') { this.TABLA_PROCESO_SELECCION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'ausentismosConsPipe'\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AutoServicioPipe implements PipeTransform {\n\n    \t/* Constantes Generales */\n\tHTTP = 'HTTP';\n\tHTTPS = 'HTTPS';\n\t/*Fin*/\n\n\t/*Constantes Generales*/\n\tFLASH_PARAM_USUARIO = 'flash_parametro_usuario';\n\tFLASH_URL_TEMA = 'flash_url_tema';\n\tRAIZ_URL_US_PRESENTACION = '/USPresentacion/';\n\t/*Fin*/\n\t\n\t/*LLaves parametros url*/\n\tPARAMETRO_US_ID= 'us_id';\n\tPARAMETRO_US_ACTUAL_URI= 'ACTUAL_URI';\n\tPARAMETRO_US_TOKEN_REGISTRO= 'us_token_registro';\n\tPARAMETRO_US_TOKEN_CAMBIOCONTRASENIA= 'us_token_cambio';\n\t/**/\n\t\n\t\n\t/*Propiedades Componente*/\n\tPROPERTY_US_TITULO = 'us_titulo';\n\tPROPERTY_US_ESTILO = 'us_estilo';\n\tPROPERTY_US_OLVIDELACLAVE = 'login_olvideclave';\n\tPROPERTY_US_LOGIN_CAPCHA = 'captcha_habilitado';\n\tPROPERTY_US_TIPORECUPERACION = 'tipo_recuperacion';\n\tPROPERTY_US_URL = 'parametro_url';\n\tPROPERTY_US_DOCUMENTO_ALFANUMERICO = 'documento_alfanumericio';\n\tPROPERTY_US_PLANTILLA_CORREO = 'plantilla_correo';\n\tPROPERTY_US_PLANTILLA_TERMINOS = 'plantilla_terminos';\n\tPROPERTY_US_LLAVE_CONEXION='llave_conexion';\n\tPROPERTY_US_LLAVE_EMPRESA='llave_empresa';\n\tPROPERTY_US_LOGIN_INVITADO = 'usuario_invitado';\n\tPROPERTY_US_LLAVE_REPORTE = 'llave_reporte';\n\tPROPERTY_US_PARAMETRO_REPORTE = 'parametros_reporte';\n\tPROPERTY_US_SOLICITA_CONTRATO = 'solicita_contrato';\n\tPROPERTY_US_OCULTA_EXPORTAR_ARCHIVO = 'oculta_exportar_arch';\n\tPROPERTY_US_TIEMPO_VIDA_TOKEN ='vigencia_token';\n\tPROPERTY_US_ASUNTO_CORREO = 'asunto_correo';\n\tPROPERTY_US_CODIGO_MODULO = 'codigo_modulo';\n\tPROPERTY_US_CODIGO_ORGANIZACION = 'codigi_organizacion';\n\tPROPERTY_US_MODULO = 'llave_modulo';\n\tPROPERTY_US_HEIGHT = 'altura_componente';\n\tPROPERTY_US_URL_SUAPORTE = 'url_suaporte';\n\tPROPERTY_US_URL_MIPLANILLA = 'url_miplanilla';\n\tOPERADOR_SEGURIDAD_SOCIAL = 'operador_ss';\n\tPROPERTY_URL_VIDEO = 'url_video';\n\tPROPERTY_URL_IMAGEN = 'url_imagen';\n\tPROPERTY_MIMETYPE_FILE = 'mimetype_file';\n\tPROPERTY_HOMOLOGACION_TIPODOC_SEGURIDADSOCIAL = 'homologa_tipodoc';\n\tATRIBUTO_SSO = 'atributo_sso';\n\t/*fin*/\n\t\n\t\n\t/*Valoes esperados Propiedades Componentes*/\n\t VALOR_US_OLVIDELACLAVE = 'true';\n\t/*fin*/\n\n\n\t/*Constantes Session AutoServicio */\n\tPARAMETRO_US_SESSION_TERMINOSYCONDICIONES = 'co.com.unionsoluciones.CONTROL_TERMINOS_CONDICIONES';\n\t\n\t/* Parametro Utilizado para conocer que el usuario tiene un cambio de clave obligatorio*/\n\t\n\tPARAMETRO_US_SESSION_CAMBIO_CLAVE = 'co.com.unionsoluciones.CONTROL_CAMBIO_CLAVE';\n\t/*fin*/\n\t\n\t/* Contantes Utiles AutoServicio*/\n\tMODULO_PORTAL = '29';\n\tRAIZ_WEB_URI = '/';\n\t/*Fin*/\n\n\t\n\t/*Parametros Recuperacion Contrasenia*/\n\t/**\n\t * Recuperacion de clave mediante pin\n\t */\n\tRECUPERACION_PIN = 'R';\n\t/**\n\t * Recuperacion de clave mediante preguntas de seguridad\n\t */\n\tRECUPERACION_PREGUNTAS = 'P';\n\n\t/**\n\t * Recuperacion de clave mediante preguntas y pin\n\t */\n\tRECUPERACION_PREGUNTAS_PIN = 'G';\n\n\t/**\n\t * Se envia una nueva clave al usuario\n\t */\n\tRECUPERACION_NUEVA_CLAVE = 'N';\n\n\t/**\n\t * Se envia una nueva clave luego de responder las preguntas de seguridad\n\t */\n\tRECUPERACION_NUEVA_CLAVE_PREGUNTAS = 'O';\n\n\t/**\n\t * Constante ruta genira logo Empresa\n\t */\n\n\tID = 'us_id';\n\tSOLICITUD_PADRE = 'solicitud_padre';\n\tSOLICITUD_HIJOS = 'solicitud_hijos';\n\t\n\tSOLICITUD_PADRE_NOVEDAD = 'codigos_novedad';\n\tSOLICITUD_HIJOS_NOVEDAD = 'codigos_novedadhijos';\n\t\n\tPUBLICACION_PADRE = 'publicacion_padre';\n\tFILTRO_ESTADO_LABORAL= 'estados_laborales';\n\n\t\n\tFILTRO_ESTADO= 'estado';\n\n\tHOJA_VIDA_ASPIRANTES_LLAVE_ROL = 'ASPIR_LLAVE_ROL';\n\tHOJA_VIDA_ASPIRANTES_LLAVE_EMPRESA= 'ASPIR_LLAVE_EMPRESA';\n\tHOJA_VIDA_ASPIRANTES_LLAVE_CONEXION = 'ASPIR_LLAVE_CONEXION';\n\tHOJA_VIDA_ASPIRANTES_LLAVE_MODULO = 'ASPIR_LLAVE_MODULO';\n\tHOJA_VIDA_ASPIRANTES_URL = 'ASPIR_URL_HOJAVIDA';\n\t\n\tCODIGOAUSENCIA='codigoAusencia';\n\tUNICOREGISTRO='unregistro';\n\n\tFORMULARIOHOJA='formulario_hoja';\n\tDIASVER='dias_ver';\n\t/*Fin*/\n   \n    transform(value: any, ...args: any): any {\n        let result = value;\n        // if (args[0] == 'listaEstadoProyecto') { this.LISTAESTADOPROYECTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        // if (args[0] == 'listaReportesPlanilla') { this.TIPOS_TEPORTES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        // if (args[0] == 'listaNominaTipo') { this.LISTA_NOMINA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n}","import { Component, OnInit } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { AuthService, FechaUtilsService, GeneralModel, MenuService, ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { ConvocatoriaService } from '../../../services/convocatoria.service';\nimport { ReclamacionProcesoModel } from '../../../models/ReclamacionProcesoModel';\nimport { ReclamacionProcesoService } from '../../../services/reclamacion-proceso.service';\nimport { EtapaProcesoService } from '../../../services/etapa-proceso.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { CandidatoModel } from '../../../models/CandidatoModel';\nimport { DatePipe, NgIf, NgFor } from '@angular/common';\nimport { EntrevistaPruebaModel } from '../../../models/EntrevistaPruebaModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { EvaluacionEntPruModel } from '../../../models/EvaluacionEntPruModel';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { CandidatoService } from '../../../services/candidato.service';\nimport { FuenteTareaFiltroModel } from '../../../../sarageneral/models/FuenteTareaFiltroModel';\nimport { EmpresaModel } from '../../../../compensacion/models/EmpresaModel';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\nimport { MantenimientoCandidatoPage } from '../mantenimiento-candidato/mantenimiento-candidato.page';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { ConvocatoriaPipe } from '../../../pipes/convocatoria-pipe.pipe';\nimport { AutoServicioPipe } from '../../../pipes/autoservicio.pipe';\n\n@Component({\n  selector: 'app-listado-convocatoria-talento',\n  templateUrl: './listado-convocatoria-talento.component.html',\n  styleUrls: ['./listado-convocatoria-talento.component.scss'],\n  standalone: true,\n  providers: [DatePipe],\n  imports: [NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgFor, FieldsetModule,\n    MantenimientoCandidatoPage, DatePipe, TranslateModule]\n})\nexport class ListadoConvocatoriaTalentoComponent implements OnInit {\n\n  public listaConvocatorias: ProcesoSeleccionModel[] = [];\n  public listaEtapas: EtapaProcesoModel[] = [];\n  public listaAdendos: ReclamacionProcesoModel[] = [];\n  public etapaPreinscripcion: EtapaProcesoModel;\n  public etapaProcesoCandidato: EtapaProcesoModel;\n  public evaluacionEntPru: EvaluacionEntPruModel;\n  public candidato: CandidatoModel;\n  public empresa: EmpresaModel;\n  public proceso: ProcesoSeleccionModel;\n  public filtro: ProcesoSeleccionModel;\n  public fechaBase: Date;\n  public nuevo: boolean;\n  public entrevistaInscripcion: string;\n  ignorarCondicionDerecho: boolean;\n  yaInscrito: boolean;\n  hayEtapaPreinscripcion: boolean;\n  aspiranteExterno: boolean;\n  listadoConvocatoria: boolean;\n  detalleConvocatoria: boolean;\n  detalleCandidato: boolean;\n  excedeFechasInscripcion: boolean;\n  mostrarInscribir: boolean;\n  mapaDetalle: any;\n  mapaListado: any;\n  urlArchivo: any;\n  cedula: any;\n\n\n  constructor(private menuService: MenuService, private translateService: TranslateService, private generalService: GeneralService,\n    private authService: AuthService, private datoOrganizacionPipe: DatoOrganizacionPipe, public sanitizer: DomSanitizer,\n    private convocatoriaService: ConvocatoriaService, private reclamacionProcesoService: ReclamacionProcesoService, private etapaProcesoService: EtapaProcesoService,\n    private saraAplicacionService: SaraAplicacionService, private fechaUtils: FechaUtilsService, private datePipe: DatePipe,\n    private utilsService: UtilsService, private listaConstantesPipe: ListaConstantesPipe, private parametrosEvaluacionPipe: ParametrosEvaluacionPipe,\n    private notificacionesBusService: ToastService, private candidatoService: CandidatoService, private workflowPipe: WorkflowPipe, private procesoSeleccionService: ProcesoSeleccionService,\n    private convocatoriaPipe: ConvocatoriaPipe, private autoSercivioPipe: AutoServicioPipe) { }\n\n\n  ngOnInit(): void {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('listado') + Constantes.ESPACIO_BLANCO + this.translateService.instant('convocatoria') }]);\n    this.cargar();\n  }\n\n  async cargar() {\n    this.filtro = new ProcesoSeleccionModel();\n    this.listadoConvocatoria = true;\n    this.detalleConvocatoria = false;\n    this.detalleCandidato = false;\n    this.ignorarCondicionDerecho = false;\n    this.excedeFechasInscripcion = false;\n    this.nuevo = false;\n    this.yaInscrito = true;\n    await this.cargarDataSource();\n    await this.cargarInfo();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  async cargarInfo() {\n    this.proceso = new ProcesoSeleccionModel();\n    await this.cargarConvocatorias();\n    await this.cargarMapa();\n  }\n\n\n  async cargarConvocatorias() {\n    let calendario = new Date();\n    calendario.setHours(0);\n    calendario.setMinutes(0);\n    calendario.setSeconds(0);\n    calendario.setMilliseconds(0);\n    this.filtro.fechaHoy = calendario;\n    this.filtro.activos = Constantes.CONSTANTE_SI;\n    let cedula = null;\n    if (this.isCliente() && this.convocatoriaPipe.EXTERNO != this.filtro.origenExternoMixto) {\n      cedula = await this.saraAplicacionService.getCedula();\n    }\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel('ProcesoSeleccionDTO', this.filtro, null, { cedula: cedula, ignorarCondicionDerecho: this.ignorarCondicionDerecho }, null);\n    this.listaConvocatorias = await this.procesoSeleccionService.traerConvocatorias(objParametros).toPromise();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  async cargarMapa() {\n    this.mapaDetalle = [];\n    this.mapaListado = [];\n    let llaveOrganizacion = null;\n    if (this.authService.getTokenKey('llaveOrganizacion') != undefined) {\n      llaveOrganizacion = this.authService.getTokenKey('llaveOrganizacion');\n    } else {\n      if (!this.isAutoServicioPortal()) {\n        return;\n      }\n    }\n    this.empresa = new EmpresaModel();\n    this.empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: this.authService.getTokenKey('numeroEmpresa') })).toPromise();\n    if (this.empresa != null) {\n      let listaDatoTabla: DatoorganizacionModel[] = [];\n      let objDatoOrganizacion = new GeneralModel('DatoorganizacionDTO', 'DatoOrganizacion.consultarDatosActivosTabla', false, { organizacion: this.empresa.organizacion, tipo: this.datoOrganizacionPipe.TIPO_TABLA_CONVOCATORIA });\n      listaDatoTabla = await this.generalService.queryForList(objDatoOrganizacion).toPromise();\n      if (0 < listaDatoTabla.length) {\n        listaDatoTabla.forEach(datos => {\n          if (datos.accion != null && this.datoOrganizacionPipe.VERJUNTOS === datos.accion) {\n            this.mapaListado.push({ key: datos.campo, label: datos.corto != null ? datos.corto : datos.descripcion });\n          }\n          if (datos.accion != null) {\n            this.mapaDetalle.push({ key: datos.campo, label: datos.corto != null ? datos.corto : datos.descripcion });\n          }\n        });\n      }\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async verConvocatoria(event) {\n    this.urlArchivo = null;\n    if (event != null) {\n      this.proceso = event;\n      this.listadoConvocatoria = false;\n      this.detalleConvocatoria = true;\n      this.etapaPreinscripcion = new EtapaProcesoModel();\n      this.candidato = new CandidatoModel();\n      this.etapaProcesoCandidato = new EtapaProcesoModel();\n      this.evaluacionEntPru = new EvaluacionEntPruModel();\n      this.hayEtapaPreinscripcion = false;\n      this.entrevistaInscripcion = null;\n      await this.traerTablas();\n      this.menuService.setBreadcrumb([{\n        label: this.translateService.instant('listado') + Constantes.ESPACIO_BLANCO + this.translateService.instant('convocatoria'),\n        command: (event) => this.regresarVistaPrincipal()\n      }, { label: this.translateService.instant('detalle') + Constantes.ESPACIO_BLANCO + this.translateService.instant('convocatoria') }]);\n      let resultado = await this.convocatoriaService.obtenerArchivoPub({ procesoSeleccion: this.proceso.llaveTabla }).toPromise();\n      if (resultado?.archivo) {\n        this.urlArchivo = this.sanitizer.bypassSecurityTrustResourceUrl('data:application/pdf;base64,' + resultado?.archivo);\n      }\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async traerTablas() {\n    this.excedeFechasInscripcion = false;\n    this.cedula = await this.saraAplicacionService.getCedula();\n    this.listaEtapas = [];\n    this.listaAdendos = [];\n    let objEtapa: EtapaProcesoModel = new EtapaProcesoModel();\n    objEtapa.procesoSeleccion = this.proceso.llaveTabla;\n    let resultadoListaEtapas = await this.etapaProcesoService.cargarListaEtapas({ etapa: objEtapa }).toPromise();\n    if (resultadoListaEtapas?.resultado) {\n      this.listaEtapas = resultadoListaEtapas.resultado;\n    }\n\n    let objReclamacion: ParametrosGeneralModel = new ParametrosGeneralModel('ReclamacionProcesoDTO', null, null, { llaveProceso: this.proceso.llaveTabla }, null);\n    let resultadoListaAdendos = await this.reclamacionProcesoService.traerAdendos(objReclamacion).toPromise();\n    if (resultadoListaEtapas?.resultado) {\n      this.listaAdendos = resultadoListaAdendos.resultado;\n    }\n\n    if (0 < this.listaEtapas.length) {\n      let objEntrevistaEtapa: ParametrosGeneralModel = new ParametrosGeneralModel('EtapaProcesoDTO', null, this.listaEtapas, null, null);\n      let entrevistaEtapa = await this.etapaProcesoService.obtenerEtapaEntrevistaInscripcion(objEntrevistaEtapa).toPromise();\n      if (entrevistaEtapa?.etapaPreinscripcion) {\n        this.etapaPreinscripcion = entrevistaEtapa.etapaPreinscripcion;\n      }\n      if (entrevistaEtapa?.entrevistaInscripcion) {\n        this.entrevistaInscripcion = entrevistaEtapa.entrevistaInscripcion;\n      }\n    }\n\n    if (this.etapaPreinscripcion != null) {\n      this.candidato = new CandidatoModel();\n      this.fechaBase = new Date();\n      this.etapaPreinscripcion.fechaFinal = this.etapaPreinscripcion.fechaFinal != null ? this.etapaPreinscripcion.fechaFinal : await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), dias: 1 }).toPromise();\n      this.etapaPreinscripcion.fechaInicial = this.etapaPreinscripcion.fechaInicial != null ? this.etapaPreinscripcion.fechaInicial : await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), dias: -1 }).toPromise();\n      if (this.fechaBase > this.etapaPreinscripcion.fechaInicial && this.fechaBase < this.etapaPreinscripcion.fechaFinal) {\n        this.excedeFechasInscripcion = false;\n      } else {\n        this.excedeFechasInscripcion = true;\n        return;\n      }\n      if (this.isCliente()) {\n        if (this.aspiranteExterno) {\n          this.candidato.hojaVidaCandidato = this.cedula;\n        } else {\n          this.candidato.identificacion = this.cedula;\n        }\n      }\n      this.yaInscrito = false;\n      this.candidato.procesoseleccion = this.proceso.llaveTabla;\n      let cantidadReg = await this.generalService.cantidadRegistros(new GeneralModel('CandidatoDTO', null, false, this.candidato)).toPromise();\n      if (0 < cantidadReg) {\n        this.yaInscrito = true;\n        return;\n      }\n      this.candidato = new CandidatoModel();\n      if (this.aspiranteExterno) {\n        this.candidato.hojaVidaCandidato = this.cedula;\n      } else {\n        this.candidato.identificacion = this.cedula;\n      }\n      this.candidato.procesoseleccion = this.proceso.llaveTabla;\n      this.candidato.llaveTabla = this.utilsService.generarLlave();\n      this.hayEtapaPreinscripcion = true;\n\n      let entrevistaPrueba: EntrevistaPruebaModel = new EntrevistaPruebaModel();\n      if (this.entrevistaInscripcion != null) {\n        entrevistaPrueba.llaveTabla = this.entrevistaInscripcion;\n        entrevistaPrueba = await this.generalService.queryForObject(new GeneralModel('EntrevistaPruebaDTO', null, false, entrevistaPrueba)).toPromise();\n        if (entrevistaPrueba == null) {\n          this.entrevistaInscripcion = null;\n        }\n      }\n\n      this.etapaProcesoCandidato = new EtapaProcesoModel();\n      this.etapaProcesoCandidato.procesoSeleccion = this.proceso.llaveTabla;\n      this.etapaProcesoCandidato.origen = 'S';\n      this.etapaProcesoCandidato.tipoActividad = this.etapaPreinscripcion.tipoActividad;\n      this.etapaProcesoCandidato.individual = Constantes.CONSTANTE_SI;\n      this.etapaProcesoCandidato.estado = this.listaConstantesPipe.PROGRAMA;\n      this.etapaProcesoCandidato.citacion = new Date();\n      this.etapaProcesoCandidato.aceptado = this.listaConstantesPipe.INFORMEFINAL_POREVALUAR;\n      this.etapaProcesoCandidato.llaveCandidato = this.candidato.llaveTabla;\n      this.etapaProcesoCandidato.medio = this.entrevistaInscripcion;\n      this.etapaProcesoCandidato.llaveTabla = this.utilsService.generarLlave();\n\n      if (this.entrevistaInscripcion != null) {\n        this.evaluacionEntPru = new EvaluacionEntPruModel();\n        this.evaluacionEntPru.etapaProcesoSeleccion = this.etapaPreinscripcion.llaveTabla;\n        this.evaluacionEntPru.entrevistaPrueba = this.entrevistaInscripcion;\n        if (this.aspiranteExterno) {\n          this.evaluacionEntPru.hojaVidaCandidato = this.cedula;\n          this.evaluacionEntPru.identifica = 0;\n        } else {\n          this.evaluacionEntPru.identifica = this.cedula;\n        }\n        this.evaluacionEntPru = await this.generalService.queryForObject(new GeneralModel('EvaluacionEntPruDTO', null, false, this.evaluacionEntPru)).toPromise();\n        if (this.evaluacionEntPru == null) {\n          this.evaluacionEntPru = new EvaluacionEntPruModel();\n          this.evaluacionEntPru.etapaProcesoSeleccion = this.etapaProcesoCandidato.llaveTabla;\n          this.evaluacionEntPru.entrevistaPrueba = this.entrevistaInscripcion;\n          if (this.aspiranteExterno) {\n            this.evaluacionEntPru.hojaVidaCandidato = this.cedula;\n            this.evaluacionEntPru.identifica = 0;\n          } else {\n            this.evaluacionEntPru.identifica = this.cedula;\n          }\n          this.evaluacionEntPru.llaveTabla = this.utilsService.generarLlave();\n          this.evaluacionEntPru.evalua = 0;\n          this.evaluacionEntPru.puntaje = 0;\n          this.evaluacionEntPru.tipo = this.parametrosEvaluacionPipe.BASE;\n          this.evaluacionEntPru.estado = this.parametrosEvaluacionPipe.NO_DILIGENCIA;\n          this.evaluacionEntPru.origen = this.parametrosEvaluacionPipe.SELECCION;\n          this.evaluacionEntPru.codigoEntrevistaPrueba = entrevistaPrueba.codigo;\n          this.entrevistaInscripcion = 'crear';\n        }\n      }\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  isClienteInvitado(): boolean {\n    if (this.authService.getTokenKey('isClienteInvitado') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  public isAutoServicioPortal(): boolean {\n    return this.saraAplicacionService.isAutoServicioPortal();\n  }\n\n  regresarVistaPrincipal() {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('listado') + Constantes.ESPACIO_BLANCO + this.translateService.instant('convocatoria') }]);\n    this.detalleConvocatoria = false;\n    this.listadoConvocatoria = true;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  inscribir() {\n    if (this.evaluacionEntPru == null) {\n      this.notificacionesBusService.showError('El evento no tiene etapa de inscripción');\n      return;\n    }\n\n    this.candidato.estado = this.listaConstantesPipe.PREINSCRIPCION;\n    this.candidato.fechainscripcion = new Date();\n    this.candidato.estadoPreinscripcionDefecto = true;\n    if (this.isCliente()) {\n      if (this.guardarCandidato()) {\n        return;\n      }\n      this.notificacionesBusService.showSuccess('Se ha inscrito correctamente');\n      this.yaInscrito = true;\n    } else {\n      this.nuevo = true;\n      this.detalleConvocatoria = false;\n      this.detalleCandidato = true;\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  validaExcedeFecha(): boolean {\n    if (this.etapaPreinscripcion != null) {\n      const hoy = new Date();\n      const fechaInicial = new Date(this.etapaPreinscripcion.fechaInicial);\n      const fechaFinal = new Date(this.etapaPreinscripcion.fechaFinal);\n      if (hoy > fechaInicial && hoy < fechaFinal) {\n        return false;\n      } else {\n        return true;\n      }\n    }\n    return false;\n  }\n\n\n\n  async guardarCandidato(): Promise<boolean> {\n    this.excedeFechasInscripcion = this.validaExcedeFecha();\n    if(this.excedeFechasInscripcion){\n      this.notificacionesBusService.showError('Fecha limite de inscripción fué excedida');\n      return true;\n    }\n\n    let hoja: HojaVidaModel = new HojaVidaModel();\n    let cedula: number = await this.saraAplicacionService.getCedula();\n    if (this.isClienteInvitado()) {\n      hoja.identifica = this.candidato.hojaVidaCandidato;\n      hoja.hojaExterna = 'true';\n      this.candidato.hojaVidaCandidato = this.cedula;\n      this.candidato.identificacion = 0;\n      this.candidato.externo = 'A';\n    } else {\n      hoja.identifica = this.candidato.identificacion;\n      this.candidato.identificacion = this.cedula;\n      this.candidato.externo = 'N';\n    }\n    let cantidadReg = await this.generalService.cantidadRegistros(new GeneralModel('HojaVidaDTO', null, false, hoja)).toPromise();\n    if (1 != cantidadReg) {\n      this.notificacionesBusService.showError('Identificacion no registrada. Catalago de Hoja de vida' + (this.aspiranteExterno ? ' Aspirante' : ''));\n      return true;\n    }\n\n    let cand: CandidatoModel = new CandidatoModel();\n    cand.procesoseleccion = this.proceso.llaveTabla;\n    if (this.candidato.hojaVidaCandidato != null) {\n      cand.hojaVidaCandidato = this.candidato.hojaVidaCandidato;\n    } else {\n      cand.identificacion = this.candidato.identificacion;\n    }\n    cand = await this.generalService.queryForObject(new GeneralModel('CandidatoDTO', null, false, cand)).toPromise();\n    if (cand != null) {\n      this.notificacionesBusService.showError('Este candidato se encuentra registrado en este proceso');\n      return true;\n    }\n\n    if (this.hayEtapaPreinscripcion && this.entrevistaInscripcion != null) {\n      return true;\n    }\n\n    this.candidato.procesoseleccion = this.proceso.llaveTabla;\n    let llaveCandidato = await this.candidatoService.guardarCandidatoProcesoSeleccion({ candidato: this.candidato }).toPromise();\n    if (this.hayEtapaPreinscripcion) {\n      await this.generalService.crearRegistro(new GeneralModel('EtapaProcesoDTO', null, false, this.etapaProcesoCandidato)).toPromise();\n      if (this.entrevistaInscripcion != null) {\n        if ('crear' == this.entrevistaInscripcion) {\n          this.evaluacionEntPru.llaveCandidato = llaveCandidato;\n          await this.generalService.crearRegistro(new GeneralModel('EvaluacionEntPruDTO', null, false, this.evaluacionEntPru)).toPromise();\n        }\n      }\n    }\n\n    let dto: CandidatoModel = new CandidatoModel();\n    dto.llaveTabla = llaveCandidato;\n    dto = await this.generalService.queryForObject(new GeneralModel('CandidatoDTO', null, false, dto)).toPromise();\n    let fuentTareaFiltro: FuenteTareaFiltroModel = new FuenteTareaFiltroModel();\n    let empresa: EmpresaModel = new EmpresaModel();\n    empresa.empresa = this.proceso.empresa;\n    empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, empresa)).toPromise();\n    let fuenteTareaFiltro: FuenteTareaFiltroModel = new FuenteTareaFiltroModel();\n    if (empresa != null) {\n      fuentTareaFiltro.organizacion = empresa.organizacion;\n    }\n    fuentTareaFiltro.empresa = this.proceso.empresa;\n    fuentTareaFiltro.cargo = this.proceso.cargo;\n    fuenteTareaFiltro.origen = this.workflowPipe.PROCESOCONVOCATORIA;\n    fuenteTareaFiltro.proceso = 'S';\n    fuenteTareaFiltro.unidad = this.proceso.unidad;\n    fuenteTareaFiltro.tipoModelo = this.proceso.origen;\n    await this.convocatoriaService.iniciarProcesoConv(fuentTareaFiltro, dto).toPromise();\n    this.utilsService.resizeWindowIFrame();\n    return false;\n  }\n\n  async cargarDataSource() {\n    let resultado = await this.convocatoriaService.obtenerPropiedadInterfaz({ idComponente: this.autoSercivioPipe.PARAMETRO_US_ID }).toPromise();\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel('Properties', resultado?.properties ? resultado.properties : null, null, { usuario: this.authService.getTokenKey('usuario') }, null);\n    let data = await this.convocatoriaService.cargarDataSource(objParametros).toPromise();\n    this.filtro.origenExternoMixto = data?.origenExternoMixto;\n    this.filtro.tipoProcesoSeleccion = data?.tipoProcesoSeleccion;\n    this.ignorarCondicionDerecho = data?.ignorarCondicionDerecho;\n  }\n\n}\n","<div id=\"lista_convocatoria\">\n\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n      <h1 class=\"mb-0\">{{'convocatoria' | translate}}</h1>\n      <!-- Regresar -->\n      <button pButton pRipple (click)=\"regresarVistaPrincipal()\" label=\"{{'regresar' | translate}}\" *ngIf=\"detalleConvocatoria\"\n          icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-0\"></button>\n    </div>\n\n    <div class=\"mt-2 mb-0\" *ngIf=\"listadoConvocatoria\">\n      <p-table #tablaGeneral id=\"tabla_convocatorias\" [value]=\"listaConvocatorias\" responsiveLayout=\"scroll\"\n        [rows]=\"10\" [paginator]=\"listaConvocatorias.length > 10\" scrollDirection=\"horizontal\"\n        styleClass=\"p-datatable-striped\" [totalRecords]=\"listaConvocatorias.length\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n          <ng-template pTemplate=\"header\">\n            <tr>\n              <th style=\"width: 100%;\">{{ \"convocatoria\" | translate }}s</th>\n            </tr>\n          </ng-template>\n          <ng-template pTemplate=\"body\" let-element>\n              <tr style=\"width: 100%;\" [pSelectableRow]=\"element\">\n                <td style=\"width: 100%;\" colspan=\"1\" class=\"text-center p-5\">\n                  <div class=\"m-3\">\n                    {{element.numero}}\n                  </div>\n                  <div class=\"m-3\" *ngFor=\"let objetoMap of mapaListado\">\n                    <span *ngIf=\"'cargo' == objetoMap.key && objetoMap.label != null\">{{ objetoMap.label }} :</span>\n                    <span *ngIf=\"'cargo' == objetoMap.key && objetoMap.label != null\">{{ element.cargo }} : {{ element.nombrecargo}}</span>\n                    <span *ngIf=\"'unidad' == objetoMap.key && objetoMap.label != null\">{{ objetoMap.label }} :</span>\n                    <span *ngIf=\"'unidad' == objetoMap.key && objetoMap.label != null\">{{ element.unidad }} : {{ element.nombreunidad}}</span>\n                    <span *ngIf=\"'empresa' == objetoMap.key && objetoMap.label != null\">{{ objetoMap.label }} :</span>\n                    <span *ngIf=\"'empresa' == objetoMap.key && objetoMap.label != null\">{{ element.empresa }} : {{ element.nombreempresa}}</span>\n                  </div>\n                  <div class=\"m-3\" [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(element.detallePublicacion)\">\n                  </div>\n                  <div class=\"mt-5\">\n                    <button pButton pRipple type=\"button\" (click)=\"verConvocatoria(element)\" label=\"{{'link_ver' | translate}}\"\n                      icon=\"\" class=\"p-button-raised font-semibold\" style=\"min-width: 400px;\"></button>\n                  </div>\n                </td>\n              </tr>\n          </ng-template>\n          <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n    </div>\n\n    <div class=\"card\" *ngIf=\"detalleConvocatoria\">\n      <div class=\"mt-3\">\n        <p-fieldset>\n          <ng-template pTemplate=\"header\">\n              <div>\n                <span class=\"glyphicons glyphicons-list-alt\" style=\"color:var(--color-400)\"></span>\n                <span>{{'general' | translate }}</span>\n              </div>\n          </ng-template>\n\n          <div class=\"p-fluid grid mt-1\" *ngFor=\"let objetoMap of mapaDetalle\">\n            <span *ngIf=\"'nombreCargo' == objetoMap.key && objetoMap.label != null\" >{{ objetoMap.label }}</span>\n            <span *ngIf=\"'nombreCargo' == objetoMap.key && objetoMap.label != null\" >{{proceso.cargo}} : {{proceso.nombrecargo}}</span>\n            <span *ngIf=\"'nombreUnidad' == objetoMap.key && objetoMap.label != null\" >{{ objetoMap.label }}</span>\n            <span *ngIf=\"'nombreUnidad' == objetoMap.key && objetoMap.label != null\" >{{proceso.unidad}} : {{proceso.nombreunidad}}</span>\n            <span *ngIf=\"'empresaNombre' == objetoMap.key && objetoMap.label != null\" class=\"mb-3\">{{ objetoMap.label }}</span>\n            <span *ngIf=\"'empresaNombre' == objetoMap.key && objetoMap.label != null\" class=\"mb-3\">{{proceso.empresa}} : {{proceso.nombreempresa}}</span>\n          </div>\n\n          <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(proceso.detallePublicacion)\">\n          </div>\n        </p-fieldset>\n      </div>\n\n      <div class=\"mt-3\">\n        <p-fieldset *ngIf=\"urlArchivo\">\n          <ng-template pTemplate=\"header\">\n              <div>\n                <span class=\"glyphicons glyphicons-list-alt\" style=\"color:var(--color-400)\"></span>\n                <span>{{'convocatoria' | translate }}</span>\n              </div>\n          </ng-template>\n          <div class=\"field col-12 md:col-12 lg:col-12\">\n            <iframe style=\"border:solid 1px var(--color-200); border-radius: 5px; background:#fff;\"\n                [src]=\"urlArchivo\" width=\"100%\" height=\"400px\"></iframe>\n          </div>\n        </p-fieldset>\n      </div>\n\n      <div class=\"mt-3\">\n        <p-fieldset>\n          <ng-template pTemplate=\"header\">\n              <div>\n                <span class=\"glyphicons glyphicons-list-alt\" style=\"color:var(--color-400)\"></span>\n                <span>{{'etapas' | translate }}</span>\n              </div>\n          </ng-template>\n          <p-table #tablaEtapas id=\"tabla_etapas\" [value]=\"listaEtapas\" responsiveLayout=\"scroll\"\n              [rows]=\"10\" [paginator]=\"listaEtapas.length > 10\" scrollDirection=\"horizontal\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n              styleClass=\"p-datatable-striped\" [totalRecords]=\"listaEtapas.length\"\n              [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n              currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n              <ng-template pTemplate=\"header\">\n                <tr>\n                  <th style=\"width: 20%;\">{{'etapa' | translate}}</th>\n                  <th style=\"width: 10%;\">{{'numero' | translate}}</th>\n                  <th style=\"width: 10%;\">{{'inicia' | translate}}</th>\n                  <th style=\"width: 10%;\">{{'final' | translate}}</th>\n                  <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n                  <th style=\"width: 10%;\">{{'adjunto' | translate}}</th>\n                </tr>\n                <th>\n              </ng-template>\n              <ng-template pTemplate=\"body\" let-etapa>\n                <tr [pSelectableRow]=\"etapa\">\n                  <td style=\"width: 20%;\">{{etapa.nombreEtapa}}</td>\n                  <td style=\"width: 10%;\">{{etapa.orden}}</td>\n                  <td style=\"width: 10%;\">{{etapa.fechaInicial | date: ('formatofechahora' | translate)}}</td>\n                  <td style=\"width: 10%;\">{{etapa.fechaFinal | date: ('formatofechahora' | translate)}}</td>\n                  <td style=\"width: 10%;\">{{etapa.descripcionEstado}}</td>\n                  <td style=\"width: 10%;\">{{etapa.ruta}}</td>\n                </tr>\n              </ng-template>\n              <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n            <div class=\"flex justify-content-end mt-4\">\n              <button pButton pRipple class=\"p-2 ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-pencil\" *ngIf=\"!yaInscrito && !excedeFechasInscripcion\"\n                label=\"{{'link_inscribirse' | translate}}\" (click)=\"inscribir()\">\n              </button>\n            </div>\n        </p-fieldset>\n      </div>\n\n      <div class=\"mt-4\">\n        <span *ngIf=\"cedula == null\">{{'msg_autenticacion_convocatoria' | translate }}</span>\n        <span *ngIf=\"excedeFechasInscripcion && !yaInscrito\">{{'msg_excedefechasinscripcion_convocatoria' | translate }}</span>\n      </div>\n\n    </div>\n    <div *ngIf=\"detalleCandidato\">\n      <app-mantenimiento-candidato [proceso]=\"proceso\" [candidato]=\"candidato\" [nuevo]=\"nuevo\"></app-mantenimiento-candidato>\n    </div>\n\n  </div>\n\n","import { UnionModel } from 'general-library-union'\n\nexport class CodigoBaseTalentoModel extends UnionModel {\n\t\n\ttabla: string;\n\tdescripcion: string;\n\tbusqueda: string;\n\tcodigo: string;\n\tdepende: string;\n\torigen: string;\n\tareaTalento: string;\n\tdeporte: string;\n\tcorreo: string;\n\tplanillaReclama: string;\n\tplanillaSolicitud: string;\n\tabreviatura:string\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class EventoModel extends UnionModel  {\n\n\torigen: string;\n\tdescripcion: string;\t\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tcoordinador: number;\n\temailCoordinador: string;\n\tcurso: string;\n\ttipoAvtividad: string;\n\ttipoAvtividadOrigen: string;\n\tnombreTipoActividad: string;\n\tplanInversion: string;\n\tplanInversionAntiguo: string;\n\tubicacionGeo: string;\n\tnombreUbicacionGeografica: string;\n\tcupoMaximo: number;\n\testado: string;\n\tdirigidoA: string;\n\tprecio: number;\n\tentidad: number;\n\tsucursal: string;\n\tsucursalDescripcion: string;\n\thorario: string;\n\tobservacion: string;\n\torganizacion: number;\n\tmedioEvalua: string;\n\ttipoInstruccion: string;\n\tmedioInstructor: string;\n\tdistribuir: string;\n\ttipoEvento: string;\n\ttipoEventoNombre: string;\n\torigenEvento: string;\n\tinicioPublicacion: Date;\n\tfinalPublicacion: Date;\n\tnumero: number;\n\tcomision: string;\n\tnumeroAutoriza: string;\n\tpresupuesto: string;\n\tintensidad: number;\n\tnombreCurso: string;\n\tnombreCoordinador: string;\n\tcliente: number;\n\tasistente: string;\n\tfechaHoy: Date;\n\ttipoUsuario: string;\n\tnumeroAsistentes: number;\n\testadoAsistente: string;\n\tempresa: number;\n\tnumeroAceptados: number;\n\tdisciplina: string;\n\tnombre: string;\n\tinicialInscribe: Date;\n\tfinalInscribe: Date;\n\tlugar: string;\n\tunidad: string;\n\tinstructor: number;\n\tcupoMinimo: number;\n\tinscritos: number;\n\tintegranteGrupo: number;\n\telemento: string;\n\tmodalidad: string;\n\trama: string;\n\tnivelDisciplina: string;\n\tsolicitud: Date;\n\ttipoParticipante: string;\n\tentidadBienestar: string;\n\tpersonaBienestar: string;\n\tprograma: string;\n\tfiltro: string;\n\tfiltroHoja: string;\n\tdescripcionPlanInversion: string;\n\thtmlPublicacion: string;\n\tconsultarPublicacion: Date;\n\tusuario: string;\n\tcontrolAsistente: string;\n\tmaximoHorasAusencia: number;\n\tminimoPuntaje: number;\n\t/** Determina si el registro actual usado como filtro debe hacer búsqueda por rango de fechas ('s') o for fechas específicas (null)*/\n\tbusquedaRangoFechas: string;\n\trecomendaciones: string;\n\tcomentarios: string;\n\taspectos: string;\n\ttema: string;\n\tescenario: string;\n\tplanInstitucional: string;\n\tfiltroAsistente: string;\n\tfiltroDescripcionCurso: string;\n\tfiltrosucursalGes: string;\n\tusuarioRol: string;\n\tusuarioLogin: string;\n\tidentificaAsistente: number;\n\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class TipoEventoModel extends UnionModel {\n\n\tllave: string;\n\tdescripcion: string;\n\torigen: string;\n\tunicaMultiple: string;\n\ttipoParticipante: string;\n\tencuestaSatisfaccion: string;\n\tencuestaEntrenador: string;\n\tencuestaJefe: string;\n\tareaTalento: string;\t\n\tareaTalentoDescripcion: string;\n\tparticipante: string;\n\tseccion: string;\n\tmultipleMomento: string;\n\ttema: string;\n\tasuntoInvitacion: string;\n\testado: string;\t\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class EventoParticipaModel extends UnionModel {\n\n\tevento: String;\n\tgrupoTalento: string;\n\tnombre: String;\n\tdelegado: number;\n\tunidad: String;\n\tnombreUnidad: String;\n\tempresa: number;\n\testado: String;\n\treferencia: String;\n\tvalor: number;\n\tposicion: number;\n\tinscripcion: Date;\n\tmomentoEvento: String;\n\ttipo: String;\n\tnumero: String;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tobservacion: String;\n\tentidad: String;\n\tterceroTalento: String;\n\tcodigo: String;\n\tdocumento: String;\n\tidentificacion: number;\n\tsancionDelegado: String;\n\t\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class AsistenteEventoModel extends UnionModel {\n\n\tevento: String;\n\tcedula: number;\n\tnombre: string;\n\testado: String;\n\tausencia: number;\n\tpuntaje: number;\n\tcostoIncurre: number;\n\tintensidad: number;\n\tempresa: number;\n\torganizacion: number;\n\tcargo: String;\n\tunidad: String;\n\tcurso: String;\n\tplanInversion: String;\n\tplanInversionAntes: String;\n\tdescripcion: String;\n\tentidad: String;\n\tcosto: number;\n\tinscripcion: Date;\n\tcontrato: number;\n\tautoriza: number;\n\tsolicita: number;\n\tnivel: number;\n\tmotivoNoAutoriza: String;\n\tnombreEmpresa: String;\n\tnombres: String;\n\tprimerApellido: String;\n\tsegundoApellido: String;\n\tnombreAsistente: String;\n\tnombreAutoriza: String;\n\tnombreCurso: String;\n\tnombreUnidad: String;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tnombreAutorizador: String;\n\ttipoUsuario: String;\n\tgrupoTalento: String;\n\tnombreGrupoTalento: String;\n\teventoParticipa: string;\n\tposicion: number;\n\tmomentoEvento: String;\n\tterceroTalento: String;\n\tsancionado: String;\n\tnombreCargo: String;\n\tentrevistaPrueba: String;\n\torigen: String;\n\testadoAnterior: String;\n\tnumeroEvento: number;\n\tcodigoGrupoTalento: String;\n\tcodigoMomentoEvento: String;\n\tcodigoPlanInversion: String;\n\tnombresAsistente: String;\n\tprimerApellidoAsistente: String;\n\tsegundoApellidoAsistente: String;\n\tdocumentoAsistente: String;\n\torigenOrganizacion: String;\n\thojaPariente: String;\n\temail: String;\n\ttipoVinculacion: String;\n\tnombresFiltro: String;\n\tparametroNumero: number;\n\tvinculacion: number;\n\tempresaEmpleado: number;\n\tnombresPariente: \tString;\n\tidentificaPariente: String;\n\tprimerApellidoPariente: String;\n\tsegundoApellidoPariente: String;\n\ttipoSancionado: String;\n\tgrupoApoyoIntegrante: String;\n\tidentificacion: String;\n\tdocumento: String;\n\tidentifica: String;\n\tdocumentoIdentifica: String;\n\tnombreJefe: String;\n\tidentificacionJefe: number;\n\tmensaje: String;\n\tdepende: String;\n\tsinSolicitante: String;\n\tfilaNecesidad: boolean;\n\tfilaAsistente: boolean;\t\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class MomentoEventoModel extends UnionModel {\n\n\tevento: String;\n\tnombre: String;\n\tescenario: String;\n\tmodalidad: String;\n\trama: String;\n\tnivel: String;\n\tmaximo: number;\n\tminimo: number;\n\tinscritos: number;\n\tinstructor: String;\n\thorario: String;\n\testado: String;\n\tinicial: Date;\n\tfechaFinal: Date;\n\tinicialInscribe: Date;\n\tfinalInscribe: Date;\n\tcodigo: String;\t\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class GrupoTalentoModel extends UnionModel {\n\n\tllave: string;\n\torigen: string;\n\tnumero: number;\n\tdescripcion: string;\n\tplanInversion: string;\n\tnombrePlanInversion: string;\n\tobjetivo: string;\n\testado: string;\n\torganizacion: number;\n\tevento: string;\n\tcurso: string;\n\tnombreCurso: string;\n\thorario: string;\n\tintensidad: number;\n\testadoCurso: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tareaTalento: string;\n\tunidad: string;\n\tempresa: number;\n\temail: string;\n\tdisciplina: string;\n\tmodalidad: string;\n\trama: string;\n\tnivelDisciplina: string;\n\tcomodinNombre: string;\n\tinicioPublicacion: Date;\n\tfinalPublicacion: Date;\n\tnombreEvento: string;\n\tcodigo: string;\n\tfechaTexto: string;\n\tcupo: number;\n\tcupoDisponible: string;\nfiltroEmpleado: string;\n\tfiltroHoja: string;\n\t\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class TerceroTalentoModel extends UnionModel {\n\n\torigen: string;\n\tnombre: string;\n\tdocumento: string;\n\testado: string;\n\tcontacto: string;\n\tdireccion: string;\n\ttelefono: string;\n\tobservacion: string;\n\tinicial: Date;\n\tfechaFinal: Date;\n\ttipo: string;\n\tidentifica: number;\n\tareaTalento: string;\n\tgrupoTalento: string;\n\tempresa: number;\n\tunidad: string;\n\tcargo: string;\n\tdescripcionArea: string;\n\tbeneficio: string;\n\tcontrato: number;\n\tcomodin: string;\n\tnombreIdentifica: string;\n\tdireccionIdentifica: string;\n\ttelefonoIdentifica: string;\n\tmailIdentifica: string;\n\tbarrioIdentifica: string;\n\tubicacionIdentifica: string;\n\tcomodinArea: string;\n\temail: string;\n\ttipoTercero: string;\n\tllaveBase: string; \n}","import { UnionModel } from 'general-library-union'\n\nexport class TipoCostoModel extends UnionModel {\n\t\n\ttipoCosto:string;\n\torigen: string;\n\tdescripcion: string;\n\tfactor: number;\n\torigenTipo: string;\n\ttipo: string;\n\tcodigo: number;\n\torden: number;\n\tciudad: string;\n\tnombreCiudad: string;\n\testado: string;\n\talterno: string;\n\treembolso: string;\n\tplanInversion: string;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class ConvenioBienestarModel extends UnionModel {\n\n\tnombre: String;\n\tdescripcion: String;\n\tfechaInicio: Date;\n\tfechaFin: Date;\n\tempresa: number;\n\testado: String;\n\tdepende: String;\n\torigen: String;\n\tprincipal: String;\t\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class BeneficioModel extends UnionModel {\n\n\tbeneficio: number;\n\tdescripcion: string;\n\ttipoBeneficioNumero: number;\n\tdescripcionTipoBeneficio: string;\n\tformula: string;\n\tconsolidar: number;\n\torden: number;\n\ttipoBeneficio: string;\n\tcantidad: number;\n\tvalorUnidad: number;\n\tvalorPresupuesto: number;\n\tentidad: string;\n\tvalorMaximo: number;\n\tvalorMinimo: number;\n\ttipoControl: string;\n\tplanInversion: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tpublicaInicial: Date;\n\tfinalInicial: Date;\n\thtmlPublica: string;\n\tllave: string;\n\tcantidadEntregada: number;\n\tvalorEntregado: number;\n\tentidadNombre: string;\n\tconsultaPublicacion: Date;\n\tdescripcionPlanInversion: string;\n\tsucursalGestion: string;\n\tusuario: string;\n\ttipoCosto: string;\n\tfechaInicialSubPlan: Date;\n\tfechaFinalSubPlan: Date;\n\tconvenioContrato: string;\n\t\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'instructorEntidad',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class InstructorEntidadPipe implements PipeTransform {\n\n\n  ESTADO_ACTIVO = \"A\";\n  ESTADO_NODISPONIBLE = Constantes.CONSTANTE_NO;\n  URLENTIDAD = \"/salud/eventos/entidad/instructorent.jsp\";\n  URLTEMAENTIDAD = \"/salud/eventos/entidad/temainstrucent.jsp\";\n  URLLISTADOENTIDAD = \"/salud/eventos/entidad/listadoInstructorent.jsp\";\n  ORIGEN = \"O\";\n  TIPOINST = \"I\";\n  TIPOENTI = \"E\";\n  TIPO_PUNTAJE = \"P\";\n\n  ESTADOS =\n    [\n      { codigo: this.ESTADO_ACTIVO, nombre: \"Activo\" },\n      { codigo: this.ESTADO_NODISPONIBLE, nombre: \"No Disponible\" }\n\n\n    ]\n\n  TIPOINSTINTERNO = \"I\";\n  TIPOINSTEXTERNO = \"E\";\n  TIPOINSTINTERNODESC = \"Interno\";\n  TIPOINSTEXTERNODESC = \"Externo\";\n\n  TIPOINSTRUCTOR =\n    [\n      { codigo: this.TIPOINSTINTERNO, nombre: this.TIPOINSTINTERNODESC },\n      { codigo: this.TIPOINSTEXTERNO, nombre: this.TIPOINSTEXTERNODESC }\n    ]\n\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaestado') { this.ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listainstructor') { this.TIPOINSTRUCTOR.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { HttpClient, HttpErrorResponse, HttpRequest, } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AuthService, ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { UnidadOrganizacionalModel } from '../../talento/models/UnidadOrganizacionalModel';\nimport { UbicacionFisicaModel } from '../../compensacion/models/UbicacionFisicaModel';\nimport { BienestarPipe } from '../pipes/bienestar.pipe';\nimport { CodigoBaseTalentoModel } from '../models/CodigoBaseTalentoModel';\nimport { TerceroTalentoModel } from '../models/TerceroTalentoModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { InstructorEntidadPipe } from '../pipes/instructor-entidad.pipe';\nimport { HojaVidaModel } from '../../hojavida/models/HojaVidaModel';\nimport { PlanInversionModel } from '../../saludocupacional/models/PlanInversionModel';\nimport { TipoCostoModel } from '../../capacitacion/models/TipoCostoModel';\nimport { GrupoTalentoModel } from '../../capacitacion/models/GrupoTalentoModel';\nimport { MomentoEventoModel } from '../models/MomentoEventoModel';\nimport { UnidadCargoModel } from '../../talento/models/UnidadCargoModel';\nimport { EmpresaModel } from '../../hojavida/models/EmpresaModel';\nimport { AsistenteEventoModel } from '../../capacitacion/models/AsistenteEventoModel';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { EstadoCivilModel } from '../../hojavida/models/EstadoCivilModel';\nimport { CargoModel } from '../../talento/models/CargoModel';\nimport { GestionPeriodoModel } from '../../talento/models/GestionPeriodoModel';\nimport { ClasificacionModel } from '../../compensacion/models/ClasificacionModel';\nimport { EventoParticipaModel } from '../models/EventoParticipaModel';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { SucursalGesModel } from '../../saludocupacional/models/SucursalGesModel';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { ConvenioBienestarModel } from '../models/ConvenioBienestarModel';\nimport { BeneficioModel } from '../models/BeneficioModel';\nimport { ArchivoModel } from '../../hojavida/models/ArchivoModel';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BienestarService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private cargarMapas: cargarmapasGlobal, private bienestarPipe: BienestarPipe,\n    private generalService: GeneralService, private instructorEntidadPipe: InstructorEntidadPipe, public authService: AuthService, private saraAplicacionService: SaraAplicacionService,\n    private utilsServices: UtilsService, private generalPipe: GeneralPipe) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  consultarPlanInversion(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/consultarPlanInversion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async getListaUnidadSegunEmp(empresa: number): Promise<any[]> {\n\n    let listaTemporal: any[];\n\n    if (empresa == null) {\n      return [];\n    }\n\n    let unidadDTO = new UnidadOrganizacionalModel();\n    unidadDTO.empresa = empresa;\n\n    listaTemporal = await this.cargarMapas.cargarSelectItemString('unidad', 'nombreUnidad', new GeneralModel('UnidadOrganizacionalDTO', null, false, unidadDTO));\n\n    return listaTemporal;\n  }\n\n  cargarFormularioDinamicoEvento(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/cargarFormularioDinamicoEvento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async consultarEscenarios(ubicacionFisica: UbicacionFisicaModel): Promise<any[]> {\n\n    let lista: any[] = [];\n    ubicacionFisica.origen = this.bienestarPipe.ORIGEN_B\n    lista = await this.cargarMapas.cargarSelectItemString('ubicacionFisica', 'descripcion', new GeneralModel('UbicacionFisicaDTO', null, false, ubicacionFisica));\n    lista.push({ key: 'P'.padEnd(32, ' '), label: \"ESCENARIO DE PRUEBA\" });\n    return lista;\n  }\n\n  consultarModalidades(modalidad: CodigoBaseTalentoModel): Promise<any[]> {\n    modalidad.tabla = this.bienestarPipe.TABLA_MODALIDADDEPORTE;\n    return this.consultarCodigoBaseTalento(modalidad);\n  }\n\n  async consultarCodigoBaseTalento(modalidad: CodigoBaseTalentoModel): Promise<any[]> {\n    return await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTalentoDTO', null, false, modalidad));\n  }\n\n  async getListaRamaMixta(): Promise<any[]> {\n    return this.bienestarPipe.LISTA_RAMA_MIXTA;\n  }\n\n  async getListaNivelDisciplinas(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    let codigoBaseTalentoDTO = new CodigoBaseTalentoModel();\n    codigoBaseTalentoDTO.tabla = this.bienestarPipe.TABLA_NIVELTALENTO\n\n    lista = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTalentoDTO', null, false, codigoBaseTalentoDTO));\n\n    return lista;\n  }\n\n  async consultarEntrenadores(terceroTalentoDTO: TerceroTalentoModel): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    terceroTalentoDTO.origen = this.bienestarPipe.ORIGEN_B;\n    terceroTalentoDTO.tipo = this.bienestarPipe.TIPO_I;\n\n    let filtro = new GeneralModel('TerceroTalentoDTO', null, false, terceroTalentoDTO);\n    let listaInstructores = await this.generalService.queryForList(filtro).toPromise();\n\n    for (let instructor of listaInstructores) {\n\n      if (this.instructorEntidadPipe.TIPOINSTEXTERNO == instructor.tipoTercero) {\n\n        lista.push({ key: instructor.llaveTabla, label: instructor.nombre });\n\n      } else {\n\n        let hojaVida = new HojaVidaModel();\n        hojaVida.identifica = instructor.identifica;\n\n        let filtroHoja = new GeneralModel('HojaVidaDTO', null, false, hojaVida);\n        hojaVida = await this.generalService.queryForObject(filtroHoja).toPromise();\n\n        lista.push({ key: instructor.llaveTabla, label: (hojaVida.primerapellid ? hojaVida.primerapellid : '') + ' ' + (hojaVida.segundoapelli ? hojaVida.segundoapelli : '') + ' ' + hojaVida.nombres });\n      }\n\n    }\n\n    return lista;\n  }\n\n  getListaEstados(): any[] {\n    return this.bienestarPipe.LISTA_ESTADOS;\n  }\n\n  async getListaAreas(codigoBaseTalentoDTO: CodigoBaseTalentoModel): Promise<any[]> {\n    return await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTalentoDTO', null, false, codigoBaseTalentoDTO));\n  }\n\n  async getListaEntidades(terceroTalentoModel: TerceroTalentoModel): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    lista = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'nombre', new GeneralModel('TerceroTalentoDTO', null, false, terceroTalentoModel));\n\n    return lista;\n  }\n\n  async getConsultarPlanInversion(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    let plan = new PlanInversionModel();\n    plan.origen = this.bienestarPipe.ORIGEN_B;\n    plan.usuarioRol = this.authService.getTokenKey('aliasRol');\n    plan.usuarioLogin = this.authService.getTokenKey('usuario');\n\n    lista = await this.cargarMapas.cargarSelectItemString('planInversion', 'descripcion', new GeneralModel('PlanInversionDTO', 'consultarPlanInversionPorOrigen', false, plan));\n\n    return lista;\n  }\n\n  async getConsultarTipoCosto(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    let tipoCostoDTO = new TipoCostoModel();\n    tipoCostoDTO.origen = this.bienestarPipe.ORIGEN_B;\n\n    lista = await this.cargarMapas.cargarSelectItemString('tipoCosto', 'descripcion', new GeneralModel('TipoCostoDTO', null, false, tipoCostoDTO));\n\n    return lista;\n  }\n\n  async consultarMapaGruposTalentoBienestar(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    let grupoTalentoDTO = new GrupoTalentoModel();\n    grupoTalentoDTO.origen = this.bienestarPipe.ORIGEN_B;\n\n    lista = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('GrupoTalentoDTO', null, false, grupoTalentoDTO));\n\n    return lista;\n  }\n\n  async consultarMapaMomentoEventos(momentoEvento: MomentoEventoModel): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    lista = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'nombre', new GeneralModel('MomentoEventoDTO', null, false, momentoEvento));\n\n    return lista;\n  }\n\n  async consultarGruposTalento(grupoTalentoDTO: GrupoTalentoModel): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    lista = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('GrupoTalentoDTO', null, false, grupoTalentoDTO));\n\n    return lista;\n  }\n\n  async consultarIntegrantes(terceroTalentoModel: TerceroTalentoModel): Promise<any[]> {\n\n    let lista: any[] = [];\n    let listaParticipantes: any[] = [];\n\n    let filtroHoja = new GeneralModel('TerceroTalentoDTO', null, false, terceroTalentoModel);\n    listaParticipantes = await this.generalService.queryForList(filtroHoja).toPromise();\n\n    for (const participante of listaParticipantes) {\n\n      let hojaVida = new HojaVidaModel();\n      hojaVida.identifica = participante.identifica;\n\n      let filtroHoja = new GeneralModel('HojaVidaDTO', null, false, hojaVida);\n      hojaVida = await this.generalService.queryForObject(filtroHoja).toPromise();\n\n      lista.push({ key: participante.llaveTabla, label: (hojaVida?.primerapellid ? hojaVida.primerapellid : '') + ' ' + (hojaVida?.segundoapelli ? hojaVida.segundoapelli : '') + ' ' + hojaVida?.nombres });\n    }\n\n    return lista;\n  }\n\n  async consultarListaUnidades(unidadCargo: UnidadCargoModel): Promise<any[]> {\n\n    let listaTemporal: any[];\n\n    listaTemporal = await this.cargarMapas.cargarSelectItemString('unidad', 'nombreUnidad', new GeneralModel('UnidadCargoDTO', null, false, unidadCargo));\n\n    return listaTemporal;\n  }\n\n  async consultarListaEmpresa(): Promise<any[]> {\n\n    let listaTemporal: any[];\n\n    listaTemporal = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, new EmpresaModel()));\n\n    return listaTemporal;\n  }\n\n  async getListaMomentoEvento(momentoEventoDTO: MomentoEventoModel): Promise<any[]> {\n\n    let listaTemporal: any[];\n\n    listaTemporal = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'nombre', new GeneralModel('MomentoEventoDTO', null, false, momentoEventoDTO));\n\n    return listaTemporal;\n  }\n\n  eliminarEventoIndividual(item: AsistenteEventoModel) {\n\n    let formData = new FormData();\n\n    formData.append(\"item\", JSON.stringify(item));\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/eliminarEventoIndividual`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async cargarListaEmpresas(): Promise<any[]> {\n\n    let lista: any[] = [];\n    let comodin = new EmpresaModel()\n    comodin.organizacion = (await this.saraAplicacionService.getEmpresa()).organizacion\n\n    lista = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, comodin));\n\n    return lista;\n  }\n\n  async getListaEstadoCivil(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    lista = await this.cargarMapas.cargarSelectItemString('estado', 'descripcion', new GeneralModel('EstadoCivilDTO', null, false, new EstadoCivilModel()));\n\n    return lista;\n  }\n\n  async getListaCargoSegunEmp(empresa: number): Promise<any[]> {\n\n    let listaTemporal: any[];\n    let cargoDTO = new CargoModel();\n    cargoDTO.empresa = empresa;\n\n    listaTemporal = await this.cargarMapas.cargarSelectItemString('cargo', 'descripcion', new GeneralModel('CargoDTO', null, false, cargoDTO));\n\n    return listaTemporal;\n  }\n\n  async getListaNivelCargo(): Promise<any[]> {\n\n    let lista: any[] = [];\n    let cargo = new CargoModel()\n    cargo.organizacion = (await this.saraAplicacionService.getEmpresa()).organizacion\n\n    lista = await this.cargarMapas.cargarSelectItemString('nivelCargo', 'descripcion', new GeneralModel('NivelCargoDTO', null, false, cargo));\n\n    return lista;\n  }\n\n  async getListaGestionPeriodo(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    lista = await this.cargarMapas.cargarSelectItemString('llaveGestionPeriodo', 'descripcion', new GeneralModel('GestionPeriodoDTO', null, false, new GestionPeriodoModel()));\n\n    return lista;\n  }\n\n  async getListClasificacion(): Promise<any[]> {\n\n    let lista: any[] = [];\n    let filtroBean = new ClasificacionModel()\n    filtroBean.organizacion = (await this.saraAplicacionService.getEmpresa()).organizacion;\n    filtroBean.tipo = 'C';\n\n    lista = await this.cargarMapas.cargarSelectItemString('clasificacion', 'descripcion', new GeneralModel('ClasificacionDTO', null, false, filtroBean));\n\n    return lista;\n  }\n\n  async getListaEmpresa(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    lista = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, new EmpresaModel()));\n\n    return lista;\n  }\n\n  async getListaRoles(): Promise<any[]> {\n\n    let lista: any[] = [];\n    let filtroBean = new ClasificacionModel()\n    filtroBean.organizacion = (await this.saraAplicacionService.getEmpresa()).organizacion;\n    filtroBean.tipo = 'R';\n\n    lista = await this.cargarMapas.cargarSelectItemString('clasificacion', 'descripcion', new GeneralModel('ClasificacionDTO', null, false, filtroBean));\n\n    return lista;\n  }\n\n  async consultarParticipantesASancionar(asistenteEvento: AsistenteEventoModel): Promise<any[]> {\n\n    let lista: any[] = [];\n    let listaAsist: AsistenteEventoModel[] = [];\n    let listaDeleg: EventoParticipaModel[] = [];\n\n    let filtroAsistente = new GeneralModel('AsistenteEventoDTO', null, false, asistenteEvento);\n    listaAsist = await this.generalService.queryForList(filtroAsistente).toPromise();\n\n    let delegado = new EventoParticipaModel();\n    delegado.evento = asistenteEvento.evento;\n    delegado.tipo = \"G\";\n\n    let filtroDelegado = new GeneralModel('EventoParticipaDTO', null, false, delegado);\n    listaDeleg = await this.generalService.queryForList(filtroDelegado).toPromise();\n\n    for (let dto of listaDeleg) {\n\n      if (dto.delegado == null) {\n        continue;\n      }\n\n      let hojaVida = new HojaVidaModel();\n      hojaVida.identifica = dto.delegado;\n\n      let filtroHoja = new GeneralModel('HojaVidaDTO', null, false, hojaVida);\n      hojaVida = await this.generalService.queryForObject(filtroHoja).toPromise();\n\n      //lista.push({ key: 'P'.padEnd(32, ' '), label: \"ESCENARIO DE PRUEBA\" });\n      //lista.add(new SelectItem(dto.getLlaveTabla(), hojaVida.getNombreCompleto(),\"D\"));\n      lista.push({\n        key: dto.llaveTabla, label: (hojaVida?.primerapellid ? hojaVida.primerapellid : '')\n          + ' ' + (hojaVida?.segundoapelli ? hojaVida.segundoapelli : '') + ' ' + hojaVida?.nombres, tipoSancionado: 'D'\n      });\n    }\n\n    for (let dto of listaAsist) {\n\n      if (!dto.hojaPariente || Constantes.ESPACIO_NULO == dto.hojaPariente.trim() || Constantes.PUNTO == dto.hojaPariente.trim()) {\n\n        let hojaVida = new HojaVidaModel();\n        hojaVida.identifica = dto.cedula;\n\n        let filtroHoja1 = new GeneralModel('HojaVidaDTO', null, false, hojaVida);\n        hojaVida = await this.generalService.queryForObject(filtroHoja1).toPromise();\n\n        lista.push({\n          key: dto.llaveTabla,\n          label: hojaVida.documento + \" - \" + (hojaVida?.primerapellid ? hojaVida.primerapellid : '')\n            + ' ' + (hojaVida?.segundoapelli ? hojaVida.segundoapelli : '') + ' ' + hojaVida?.nombres, tipoSancionado: 'A'\n        });\n        //lista.add(new SelectItem(dto.getLlaveTabla(), hojaVida.getDocumento() + \" - \" + hojaVida.getNombreCompleto(), \"A\"));\n\n      } else {\n        lista.push({\n          key: dto.llaveTabla, label: dto.identificaPariente + \" - \" + dto.nombresPariente + \" \" + dto.primerApellidoPariente,\n          tipoSancionado: 'A'\n        });\n        //lista.add(new SelectItem(dto.getLlaveTabla(), dto.getIdentificaPariente() + \" - \" + dto.getNombresPariente() + \" \" + dto.getPrimerApellidoPariente(), \"A\"));\n      }\n    }\n\n    return lista;\n  }\n\n  guardarEventoBienestarPublicacion(llaveEventoModel: string, htmlPublicacion: string, inicioPublicacion: Date, finalPublicacion: Date): Observable<any> {\n\n    const data = {\n      llaveEventoModel: llaveEventoModel,\n      htmlPublicacionModel: htmlPublicacion,\n      inicioPublicacionModel: inicioPublicacion,\n      finalPublicacionModel: finalPublicacion\n    };\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/guardarEventoBienestarPublicacion`;\n    const req = new HttpRequest('POST', url, data, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError));\n  }\n\n  consultarArchivoPublicacion(html: string): Observable<string> {\n\n    const data = { html: html };\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/consultarArchivoPublicacion`;\n\n    return this.httpClient.post(url, data, { responseType: 'text' }).pipe(catchError(this.handleError));\n  }\n\n  async getListaSucursalGestion(): Promise<any[]> {\n\n    let respuestaLista: any[] = [];\n    let filtroSucursal = new SucursalGesModel();\n    filtroSucursal.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    filtroSucursal.filtroSucursal = this.generalPipe.SI;\n    filtroSucursal.usuarioLogin = this.authService.getTokenKey('usuario');\n    filtroSucursal.aliasRol = this.authService.getTokenKey('aliasRol');\n\n    respuestaLista = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SucursalGesDTO', null, false, filtroSucursal));\n\n    return respuestaLista;\n  }\n\n  async getConsultarConvenioContrato(): Promise<any[]> {\n\n    let respuestaLista: any[] = [];\n    let filtro = new ConvenioBienestarModel();\n    filtro.origen = this.bienestarPipe.ORIGENCONVENIO\n    filtro.principal = this.generalPipe.SI;\n\n    respuestaLista = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'nombre', new GeneralModel('ConvenioBienestarDTO', null, false, filtro));\n\n    return respuestaLista;\n  }\n\n  guardarAsignacionPublicacion(llaveTabla: string, htmlPublica: string, publicaInicial: Date, fechaFinal: Date) {\n    const data = {\n      llaveModel: llaveTabla,\n      htmlModel: htmlPublica,\n      publicacionInicialModel: publicaInicial,\n      publicacionFinalModel: fechaFinal\n    };\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/guardarAsignacionPublicacion`;\n    const req = new HttpRequest('POST', url, data, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError));\n  }\n\n  async actualizaCostoBeneficio(llaveBeneficio: string, usuario: string): Promise<boolean> {\n\n    let validador: boolean = false;\n    let beneficioModel = new BeneficioModel();\n    beneficioModel.llaveTabla = llaveBeneficio;\n    beneficioModel.usuario = usuario;\n\n    const dato = this.generalService\n      .procedure(new GeneralModel('BeneficioDTO', 'Beneficio.procedimientoBeneficio', false, beneficioModel)).toPromise();\n    await dato.then((objeto) => { if (objeto.mensaje == 'ok') { validador = true; } })\n      .catch((error) => { console.log('Error:  ', error); validador = false; });\n\n    return validador;\n  }\n\n  async getListaEntidadBienestar(): Promise<any[]> {\n\n    let lista: any[] = [];\n\n    let terceroTalentoDTO = new TerceroTalentoModel();\n    terceroTalentoDTO.origen = this.bienestarPipe.ORIGEN_B;\n    terceroTalentoDTO.tipo = this.bienestarPipe.TIPO_E;\n\n    lista = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'nombre', new GeneralModel('TerceroTalentoDTO', null, false, terceroTalentoDTO));\n\n    return lista;\n  }\n\n  cargarListaAnexosConvenios(objeto): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/cargarListaAnexosConvenios`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cargarDocumentoConvenio(archivoDTO: ArchivoModel, llaveTablaArchivo: string, nombreTabla: string, archivo: File): Observable<any> {\n    let formData = new FormData();\n    formData.append(\"archivo\", archivo);\n    formData.append(\"archivoDTO\", JSON.stringify(archivoDTO));\n    formData.append(\"llaveTablaArchivo\", llaveTablaArchivo);\n    formData.append(\"nombreTabla\", nombreTabla);\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/registro/cargarDocumentoConvenio`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { CodigoBaseTalentoModel } from '../../../models/CodigoBaseTalentoModel';\nimport { EventoModel } from '../../../../capacitacion/models/EventoModel';\nimport { TipoEventoModel } from '../../../../capacitacion/models/TipoEventoModel';\nimport { EventoParticipaModel } from '../../../models/EventoParticipaModel';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { BienestarService } from '../../../services/bienestar.service';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { BienestarPipe } from '../../../pipes/bienestar.pipe';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { UnidadCargoModel } from '../../../../talento/models/UnidadCargoModel';\nimport { AsistenteEventoModel } from '../../../../capacitacion/models/AsistenteEventoModel';\nimport { MomentoEventoModel } from '../../../models/MomentoEventoModel';\nimport { GrupoTalentoModel } from '../../../../capacitacion/models/GrupoTalentoModel';\nimport { TerceroTalentoModel } from '../../../models/TerceroTalentoModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { AccordionModule } from 'primeng/accordion';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CommonModule, NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n  selector: 'app-detalle-grupo-evento',\n  templateUrl: './detalle-grupo-evento.component.html',\n  styleUrls: ['./detalle-grupo-evento.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule,\n    ButtonDirective,\n    Ripple,\n    FormsModule,\n    ReactiveFormsModule,\n    InputTextModule,\n    NgIf,\n    DropdownModule,\n    InputHelperHojaVidaComponent,\n    InputHelperUnidadComponent,\n    CalendarModule,\n    AccordionModule,\n    PrimeTemplate,\n    TableModule, TemplateTablaVaciaComponent,\n    TranslateModule,\n    CommonModule]\n})\nexport class DetalleGrupoEventoComponent implements OnInit {\n\n  @ViewChild('popupHojaVida') popupHojaVida: InputHelperHojaVidaComponent;\n  @ViewChild('tablaGeneral') tablaGeneral: Table;\n\n  @Output() regresarGrupo: EventEmitter<any> = new EventEmitter();\n\n  formGrupoModel: FormGroup;\n  grupo: EventoParticipaModel;\n  areaTalento: CodigoBaseTalentoModel;\n  eventoModel: EventoModel;\n  tipoEvento: TipoEventoModel;\n  tipoPrograma: CodigoBaseTalentoModel;\n  nuevo: boolean;\n  delegado: HojaVidaModel;\n  nombreEmpresa: string;\n  unidadNombreOcupa: string;\n  listaUnidades: any[];\n  integrante: AsistenteEventoModel;\n  listaEstados: { codigo: string; nombre: string; }[];\n  listaMomentoEventos: any[];\n  listaEmpresa: any[];\n  listaGrupoTalento: any[];\n  listaIntegrantes: any[];\n  listadoIntegrantes: any[];\n  habilitaCampo: boolean = false;\n  vistaVisualizar: string;\n  clickGenerar: boolean = false;\n\n  constructor(private formBuilder: FormBuilder, private generalService: GeneralService, private bienestarService: BienestarService, private toastService: ToastService,\n    private confirmationService: ConfirmationService, public us: UtilsService, public controlFuncionService: CargarControlFuncionalidadService,\n    private bienestarPipe: BienestarPipe, private authService: AuthService, private empleadoService: EmpleadoService, public translateService: TranslateService,\n    private generalPipe: GeneralPipe) { }\n\n  ngOnInit(): void {\n\n    this.listaEstados = this.bienestarPipe.LISTA_ESTADOS_GRUPO_BIENESTAR;\n    this.areaTalento = new CodigoBaseTalentoModel();\n    this.eventoModel = new EventoModel();\n    this.tipoEvento = new TipoEventoModel();\n    this.tipoPrograma = new CodigoBaseTalentoModel();\n    this.grupo = new EventoParticipaModel();\n    this.integrante = new AsistenteEventoModel();\n    this.delegado = new HojaVidaModel();\n    this.listadoIntegrantes = [];\n    this.cargarFormulario();\n  }\n\n  cargarFormulario() {\n\n    this.formGrupoModel = this.formBuilder.group({\n      llaveTabla: new FormControl(this.grupo.llaveTabla),\n      codigo: new FormControl(this.grupo.codigo),\n      evento: new FormControl(this.grupo.evento),\n      grupoTalento: new FormControl(this.grupo.grupoTalento),\n      nombre: new FormControl(this.grupo.nombre),\n      delegado: new FormControl(this.grupo.delegado),\n      unidad: new FormControl(this.grupo.unidad),\n      empresa: new FormControl(this.grupo.empresa),\n      estado: new FormControl(this.grupo.estado),\n      referencia: new FormControl(this.grupo.referencia),\n      valor: new FormControl(this.grupo.valor),\n      posicion: new FormControl(this.grupo.posicion),\n      inscripcion: new FormControl(this.grupo.inscripcion),\n      momentoEvento: new FormControl(this.grupo.momentoEvento),\n      tipo: new FormControl(this.grupo.tipo),\n      numero: new FormControl(this.grupo.numero),\n      fechaInicial: new FormControl(!this.grupo.fechaInicial ? null : new Date(this.grupo.fechaInicial)),\n      fechaFinal: new FormControl(!this.grupo.fechaFinal ? null : new Date(this.grupo.fechaFinal)),\n      observacion: new FormControl(this.grupo.observacion),\n      entidad: new FormControl(this.grupo.entidad),\n      terceroTalento: new FormControl(this.grupo.terceroTalento),\n      sancionDelegado: new FormControl(this.grupo.sancionDelegado),\n      /*** ***/\n      nombreUnidad: new FormControl(this.grupo.nombreUnidad),\n    },);\n  }\n\n  async cargar(areaTalento: CodigoBaseTalentoModel, eventoModel: EventoModel, tipoEvento: TipoEventoModel, tipoPrograma: CodigoBaseTalentoModel, grupo: EventoParticipaModel) {\n\n    this.areaTalento = areaTalento;\n    this.eventoModel = eventoModel;\n    this.tipoEvento = tipoEvento;\n    this.tipoPrograma = tipoPrograma;\n    this.delegado = new HojaVidaModel();\n    this.nombreEmpresa = '';\n    this.unidadNombreOcupa = '';\n    this.integrante = new AsistenteEventoModel();\n    this.listadoIntegrantes = [];\n\n    if (grupo != null) {\n\n      this.formGrupoModel.patchValue(grupo);\n\n      this.formGrupoModel.get('fechaInicial').setValue(!this.formGrupoModel.get('fechaInicial').value ? null : new Date(this.formGrupoModel.get('fechaInicial').value));\n      this.formGrupoModel.get('fechaFinal').setValue(!this.formGrupoModel.get('fechaFinal').value ? null : new Date(this.formGrupoModel.get('fechaFinal').value));\n      this.formGrupoModel.get('inscripcion').setValue(!this.formGrupoModel.get('inscripcion').value ? null : new Date(this.formGrupoModel.get('inscripcion').value));\n\n      this.nuevo = false;\n\n      this.delegado = new HojaVidaModel();\n\n      if (this.formGrupoModel.get('delegado').value) {\n\n        this.delegado.identifica = this.formGrupoModel.get('delegado').value;\n        let filtroDelegado = new GeneralModel('HojaVidaDTO', null, false, this.delegado);\n        this.delegado = await this.generalService.queryForObject(filtroDelegado).toPromise();\n\n        this.delegado.nombreCompleto = (this.delegado?.primerapellid ? this.delegado.primerapellid : '') + ' ' + (this.delegado?.segundoapelli ? this.delegado.segundoapelli : '') + ' ' + this.delegado?.nombres\n\n        let empleado = new EmpleadoModel();\n        empleado = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(this.delegado.identifica);\n\n        if (empleado != null) {\n\n          this.nombreEmpresa = empleado.nombreEmpresa;\n          this.unidadNombreOcupa = empleado.unidadNombreOcupa;\n          this.formGrupoModel.get('empresa').setValue(empleado.empresa);\n          this.formGrupoModel.get('unidad').setValue(this.getUnidadOcupa(empleado));\n          this.formGrupoModel.get('nombreUnidad').setValue(this.getUnidadNombreOcupa(empleado));\n        }\n      }\n\n      let unidadCargo = new UnidadCargoModel();\n      unidadCargo.empresa = this.formGrupoModel.get('empresa').value;\n\n      this.listaUnidades = await this.bienestarService.consultarListaUnidades(unidadCargo);\n\n    } else {\n      this.nuevo = true;\n      this.formGrupoModel.get('empresa').setValue(parseInt(this.authService.getTokenKey('numeroEmpresa')));\n    }\n\n    this.tipoEvento.llave = this.eventoModel.tipoEvento;\n    let filtroTipoEvento = new GeneralModel('TipoEventoDTO', null, false, this.tipoEvento);\n    this.tipoEvento = await this.generalService.queryForObject(filtroTipoEvento).toPromise();\n\n    await this.cargarlistas();\n    await this.cargarListadoIntegrantes();\n  }\n\n  async cargarlistas() {\n\n    let momentoEventoDTO = new MomentoEventoModel();\n    momentoEventoDTO.evento = this.eventoModel.llaveTabla;\n    this.listaMomentoEventos = await this.bienestarService.consultarMapaMomentoEventos(momentoEventoDTO);\n\n    this.listaEmpresa = await this.bienestarService.consultarListaEmpresa();\n\n    if (this.areaTalento.llaveTabla != null) {\n      let grupoTalentoDTO = new GrupoTalentoModel();\n      grupoTalentoDTO.origen = this.bienestarPipe.ORIGEN_B;\n      grupoTalentoDTO.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      grupoTalentoDTO.areaTalento = this.areaTalento.llaveTabla;\n      this.listaGrupoTalento = await this.bienestarService.consultarGruposTalento(grupoTalentoDTO);\n    }\n\n    if (this.formGrupoModel.get('grupoTalento').value) {\n      if (!this.nuevo) {\n        let terceroTalento = new TerceroTalentoModel();\n        terceroTalento.grupoTalento = this.formGrupoModel.get('grupoTalento').value;\n        this.listaIntegrantes = await this.bienestarService.consultarIntegrantes(terceroTalento);\n      }\n    }\n\n  }\n\n  async cargarListadoIntegrantes() {\n\n    //listado grupo \n    let filtroAsistenteEvento = new AsistenteEventoModel();\n    filtroAsistenteEvento.eventoParticipa = this.formGrupoModel.get('llaveTabla').value;\n\n    let objetoGrupo = new GeneralModel('AsistenteEventoDTO', null, false, filtroAsistenteEvento);\n\n    let listadoTemporalIntegrantes = await this.generalService.queryForList(objetoGrupo).toPromise();\n\n    if (!this.nuevo) {\n\n      for (let asistenteEvento of listadoTemporalIntegrantes) {\n\n        let hojaVida = new HojaVidaModel();\n        hojaVida.identifica = asistenteEvento.cedula;\n\n        let objetoHojaVida = new GeneralModel('HojaVidaDTO', null, false, hojaVida);\n        hojaVida = await this.generalService.queryForObject(objetoHojaVida).toPromise();\n\n        let empleado = new EmpleadoModel();\n        empleado = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(hojaVida.identifica);\n\n        // Si el participante es empleado carga la informacion de empresa y unidad\n        if (empleado != null) {\n\n          asistenteEvento.unidad = this.getUnidadOcupa(empleado);\n          asistenteEvento.nombreUnidad = this.getUnidadNombreOcupa(empleado);\n          asistenteEvento.empresa = empleado.empresa;\n          asistenteEvento.nombreEmpresa = empleado.nombreEmpresa;\n        }\n\n        asistenteEvento.nombre = (hojaVida.primerapellid ? hojaVida.primerapellid : '') + ' ' + (hojaVida.segundoapelli ? hojaVida.segundoapelli : '') + ' ' + hojaVida.nombres;\n\n      }\n    }\n\n    this.listadoIntegrantes = [... listadoTemporalIntegrantes];\n  }\n\n  getUnidadNombreOcupa(empleado: EmpleadoModel): string {\n    if (!empleado.unidadFuncion || empleado.unidadFuncion.trim() == '.') {\n      return empleado.unidadNombreTitular;\n    } else {\n      return empleado.unidadNombreEncargo;\n    }\n  }\n\n  getUnidadOcupa(empleado: EmpleadoModel): string {\n    if (!empleado.unidadFuncion || empleado.unidadFuncion.trim() == '.') {\n      return empleado.unidad;\n    } else {\n      return empleado.unidadFuncion;\n    }\n  }\n\n  isFuncional(): boolean {\n    return !this.isCliente();\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  isDeshabilitarCampos(): boolean {\n\n    if (!this.isFuncional()) {\n      this.formGrupoModel.get('empresa').disable();\n      this.formGrupoModel.get('estado').disable();\n      this.formGrupoModel.get('inscripcion').disable();\n    } else {\n      this.formGrupoModel.get('empresa').enable();\n      this.formGrupoModel.get('estado').enable();\n      this.formGrupoModel.get('inscripcion').enable();\n    }\n\n    return true;\n  }\n\n  async onSelectDelegado(event) {\n\n    if (this.popupHojaVida) {\n      this.formGrupoModel.get('delegado').setValue(null);\n      this.popupHojaVida.label = null;\n    }\n\n    let empleado = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(event.identifica);\n\n    if (empleado == null) {\n      this.formGrupoModel.get('delegado').setValue(null);\n      this.delegado = new HojaVidaModel();\n      this.toastService.showWarning(\"El empleado no esta activo\");\n      return;\n    }\n\n    this.delegado = event;\n    this.delegado.nombreCompleto = (this.delegado?.primerapellid ? this.delegado.primerapellid : '') + ' ' + (this.delegado?.segundoapelli ? this.delegado.segundoapelli : '') + ' ' + this.delegado?.nombres\n    this.formGrupoModel.get('delegado').setValue(event.identifica);\n    this.formGrupoModel.get('empresa').setValue(empleado.empresa);\n    this.nombreEmpresa = empleado.nombreEmpresa;\n    this.formGrupoModel.get('unidad').setValue(this.getUnidadOcupa(empleado));\n    this.unidadNombreOcupa = empleado.unidadNombreOcupa;\n  }\n\n  cargarUnidades(evento) {\n    this.formGrupoModel.get('empresa').setValue(evento.value);\n    this.limpiarPopupUnidad();\n\n  }\n\n  limpiarPopupUnidad() {\n\n    this.formGrupoModel.get('unidad').setValue(null);\n    this.formGrupoModel.get('nombreUnidad').setValue(null);\n  }\n\n  cargarUnidad(event) {\n    this.formGrupoModel.get('unidad').setValue(event.unidad);\n    this.formGrupoModel.get('nombreUnidad').setValue(event.nombreUnidad);\n  }\n\n  handleEnterKey(event: any) {\n    event.preventDefault();\n  }\n\n  async guardarGrupo() {\n\n    if (this.formGrupoModel.valid) {\n\n      if (this.formGrupoModel.get('llaveTabla').value == null) {\n\n        this.formGrupoModel.get('llaveTabla').setValue(this.us.generarLlave());\n        this.formGrupoModel.get('tipo').setValue(this.bienestarPipe.GRUPO_TIPO_G);\n        this.formGrupoModel.get('evento').setValue(this.eventoModel.llaveTabla);\n\n        let objetoFiltro: GeneralModel = new GeneralModel('EventoParticipaDTO', null, false, this.formGrupoModel.getRawValue());\n        const respuesta = await this.generalService.crearRegistro(objetoFiltro).toPromise();\n        this.nuevo = false;\n        this.toastService.showSuccess(Constantes.MENSAJE_CREAR);\n        this.cargar(this.areaTalento, this.eventoModel, this.tipoEvento, this.tipoPrograma, this.formGrupoModel.getRawValue());\n\n      } else {\n\n        let objetoFiltro: GeneralModel = new GeneralModel('EventoParticipaDTO', null, false, this.formGrupoModel.getRawValue());\n        const respuesta = await this.generalService.update(objetoFiltro).toPromise();\n        this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n        this.cargar(this.areaTalento, this.eventoModel, this.tipoEvento, this.tipoPrograma, this.formGrupoModel.getRawValue());\n\n      }\n\n    } else {\n\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formGrupoModel.controls).forEach((key) => {\n        if (this.formGrupoModel.get(key).errors) {\n          this.formGrupoModel.get(key).markAsDirty();\n        }\n      });\n    }\n\n  }\n\n  eliminarGrupo() {\n\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'eliminarGrupo',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setEliminarGrupoBienestar();\n      },\n      reject: () => { },\n    });\n\n  }\n\n  async setEliminarGrupoBienestar() {\n\n    let filtroAsistenteEventoDTO = new AsistenteEventoModel();\n    filtroAsistenteEventoDTO.eventoParticipa = this.formGrupoModel.get('llaveTabla').value;\n    filtroAsistenteEventoDTO.evento = this.eventoModel.llaveTabla;\n\n    let filtroAsistente = new GeneralModel('AsistenteEventoDTO', null, false, filtroAsistenteEventoDTO);\n    let lista = await this.generalService.queryForList(filtroAsistente).toPromise();\n\n    if (lista != null && lista.length > 0) {\n      this.toastService.showWarning(\"Se deben eliminar primero los integrantes asociados al grupo\");\n      return;\n    }\n\n    const objetoFiltro = {\n      nombreDTO: 'EventoParticipaDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: this.formGrupoModel.getRawValue(),\n    };\n\n    this.generalService.delete(objetoFiltro).subscribe({\n      next: (data) => {\n\n        if (data == 1) {\n          this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n          this.regresarPrincipal();\n        } else {\n          this.toastService.showError('Error en el método de eliminar');\n        }\n      },\n      error: (err) => {\n\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n\n        if (data.includes('ORA-02292')) {\n          this.toastService.showError('El regitro se utiliza en otros tareas, No es posible eliminarlo');\n        }\n      },\n    });\n\n  }\n\n  /*********************************************************  INTEGRANTE *************************************************************/\n\n  mostrarRegistro() {\n    this.vistaVisualizar = 'nuevo';\n    this.integrante = new AsistenteEventoModel();\n    this.habilitaCampo = true;\n  }\n\n  cancelarRegistro() {\n    this.vistaVisualizar = '';\n    this.integrante = new AsistenteEventoModel();\n    this.habilitaCampo = false;\n  }\n\n  iniciarEdicion() {\n    this.habilitaCampo = true;\n  }\n\n  cancelar() {\n    this.habilitaCampo = false;\n  }\n\n  async setPopupHojaVida(participante) {\n\n    let empleado = new EmpleadoModel();\n    empleado = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(participante.identifica);\n\n    if (empleado == null) {\n      this.integrante = new AsistenteEventoModel();\n      this.toastService.showWarning(\"El empleado no esta activo\");\n      return null;\n    }\n\n    this.integrante = new AsistenteEventoModel();\n    this.integrante.nombre = (participante?.primerapellid ? participante.primerapellid : '') + ' ' + (participante?.segundoapelli ? participante.segundoapelli : '') + ' ' + participante?.nombres\n    this.integrante.cedula = participante.identifica;\n    this.integrante.estado = this.generalPipe.ESTADO_ACTIVO;\n    this.integrante.evento = this.eventoModel.llaveTabla;\n    this.integrante.eventoParticipa = this.formGrupoModel.get('llaveTabla').value;\n    this.integrante.unidad = this.getUnidadOcupa(empleado);\n    this.integrante.nombreUnidad = this.getUnidadNombreOcupa(empleado);\n    this.integrante.empresa = empleado.empresa;\n    this.integrante.nombreEmpresa = empleado.nombreEmpresa;\n    this.integrante.grupoTalento = this.formGrupoModel.get('grupoTalento').value;\n\n  }\n\n  validar(codigoBaseHovModel: AsistenteEventoModel) {\n\n    var validador: boolean = true;\n\n    validador = validador && this.us.validarCampoObligatorio(codigoBaseHovModel.nombre);\n    validador = validador && this.us.validarCampoObligatorio(codigoBaseHovModel.posicion);\n    validador = validador && this.us.validarCampoObligatorio(codigoBaseHovModel.costo);\n\n    return validador;\n  }\n\n  async crearRegistro() {\n\n    if (!this.validar(this.integrante)) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGenerar = true;\n      return;\n    }\n\n    if (!(await this.validarIntegrante())) {\n      this.toastService.showWarning(\"Supera la cantidad máxima de integrantes\");\n      return;\n    }\n\n    this.vistaVisualizar = '';\n    this.habilitaCampo = false;\n\n    this.integrante.llaveTabla = this.us.generarLlave();\n\n    const objetoFiltro = {\n      nombreDTO: 'AsistenteEventoDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: this.integrante,\n    };\n\n    this.generalService.crearRegistro(objetoFiltro).subscribe({\n      next: (data) => {\n        if (data != null) {\n          this.toastService.showSuccess(Constantes.MENSAJE_CREAR);\n          this.integrante = new AsistenteEventoModel();\n          this.cargarListadoIntegrantes();\n        } else {\n          this.toastService.showError('Error al crear registro');\n        }\n      },\n      error: (err) => {\n        this.toastService.showError('Error al crear registro');\n      },\n    });\n  }\n\n  async validarIntegrante(): Promise<boolean> {\n\n    let validar = true;\n\n    if (this.integrante.llaveTabla == null) {\n\n      if (this.formGrupoModel.get('momentoEvento').value != null) {\n        let momentoEvento = new MomentoEventoModel();\n        momentoEvento.llaveTabla = this.formGrupoModel.get('momentoEvento').value;\n\n        let filtro = new GeneralModel('MomentoEventoDTO', null, false, momentoEvento);\n        momentoEvento = await this.generalService.queryForObject(filtro).toPromise();\n\n        if (momentoEvento != null && momentoEvento.maximo != null) {\n\n          let cantidadInscritos = new AsistenteEventoModel();\n          cantidadInscritos.evento = this.eventoModel.llaveTabla;\n          cantidadInscritos.eventoParticipa = this.formGrupoModel.get('llaveTabla').value;\n\n          let filtroCantidad = new GeneralModel('AsistenteEventoDTO', null, false, cantidadInscritos);\n\n          if ((await this.generalService.cantidadRegistros(filtroCantidad).toPromise()) >= momentoEvento.maximo) {\n            validar = false;\n            return validar;\n          }\n        }\n      }\n    }\n\n    return validar;\n  }\n\n\n  eliminarRegistro(registroEliminar: any) {\n\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'eliminarIntegrante',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setEliminarRegistro(registroEliminar);\n      },\n      reject: () => { },\n    });\n  }\n\n  setEliminarRegistro(registroEliminar: AsistenteEventoModel) {\n\n    const objetoFiltro = {\n      nombreDTO: 'AsistenteEventoDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: registroEliminar,\n    };\n\n    this.generalService.delete(objetoFiltro).subscribe({\n      next: (data) => {\n\n        if (data == 1) {\n          this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n          this.cargarListadoIntegrantes();\n        } else {\n          this.toastService.showError('Error en el método de eliminar');\n        }\n      },\n      error: (err) => {\n\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n\n        if (data.includes('ORA-02292')) {\n          this.toastService.showError('El regitro se utiliza en otros tareas, No es posible eliminarlo');\n        }\n      },\n    });\n  }\n\n  async editarRegistro(item) {\n\n    if (!this.validar(item)) {\n      this.tablaGeneral.initRowEdit(item);\n      this.clickGenerar = true;\n      this.toastService.showError('Faltan campos obligatorios');\n      return;\n    }\n\n    this.habilitaCampo = false;\n\n    let objetoTipo = new GeneralModel('AsistenteEventoDTO', null, false, item);\n    await this.generalService.update(objetoTipo).toPromise();\n\n    this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n\n  }\n\n  regresarPrincipal() {\n    this.regresarGrupo.emit();\n  }\n\n}\n","<p-confirmPopup key=\"eliminarGrupo\"></p-confirmPopup>\n<p-confirmPopup key=\"eliminarIntegrante\"></p-confirmPopup>\n\n<div id=\"id_detalle_grupo_bienestar_evento\">\n\n    <div class=\"flex justify-content-between align-items-start align-items-center mb-2\">\n\n        <h4 class=\"mb-0 text-xl\">{{'detalle' | translate}} {{'grupo' | translate}}</h4>\n\n        <button pButton pRipple (click)=\"regresarPrincipal()\" label=\"{{'listado' | translate}} {{'grupo' | translate}}\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"></button>\n    </div>\n\n    <!-- Campos Evento se muestra si esta en convocatoria-->\n    <div class=\"card\" *ngIf=\"isCliente()\">\n\n        <div class=\"p-fluid p-formgrid grid mt-3\">\n            <!-- Areas -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_areas_bienestar\" [ngModel]=\"areaTalento.descripcion\" disabled=\"true\"\n                        [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_areas_bienestar\">{{'areasbienestar' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Programas -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_programa_areas\" [ngModel]=\"tipoPrograma.descripcion\" disabled=\"true\"\n                        [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_program_areas\">{{'programaareas' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Tipo Evento -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_tipo_evento\" [ngModel]=\"tipoEvento.descripcion\" disabled\n                        [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_tipo_evento\">{{'tipoevento' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Número -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_numero_de_evento\" [ngModel]=\"eventoModel.numero\" name=\"numero\" disabled>\n                    <label for=\"id_numero_de_evento\">{{'numerodeevento' | translate}}</label>\n                </span>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"card\">\n\n        <form [formGroup]=\"formGrupoModel\" #formulario=\"ngForm\" class=\"mt-3\">\n\n            <!-- campos Momento-->\n            <div class=\"p-fluid p-formgrid grid\">\n\n                <!-- Código -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_codigo\" formControlName=\"codigo\" maxlength=\"10\" [required]=\"true\">\n                        <label for=\"id_codigo\">{{'codigo' | translate}} *</label>\n                    </span>\n                </div>\n\n                <!-- Nombre -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_nombre\" formControlName=\"nombre\" [required]=\"true\">\n                        <label for=\"id_nombre\">{{'nombre' | translate}} *</label>\n                    </span>\n                </div>\n\n                <!-- Momento -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"tipoEvento.unicaMultiple == 'M'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_momentoevento\" [options]=\"listaMomentoEventos\" optionLabel=\"label\"\n                            optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"momentoEvento\"\n                            [required]=\"true\"></p-dropdown>\n                        <label for=\"id_momentoevento\">{{'momentoevento' | translate}} *</label>\n                    </span>\n                </div>\n\n                <!-- Estado -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_estado\" [options]=\"listaEstados\" optionLabel=\"nombre\"\n                            optionValue=\"codigo\" [autoDisplayFirst]=\"false\" formControlName=\"estado\" [required]=\"true\"\n                            [disabled]=\"isDeshabilitarCampos()\"></p-dropdown>\n                        <label for=\"id_estado\">{{'estado' | translate}} *</label>\n                    </span>\n                </div>\n\n                <!-- Delegado -->\n                <div class=\"field col-12 md:col-4 lg:col-3\">\n                    <app-input-helper-hoja-vida #popupHojaVida id=\"delegado\" [ocultarBtnLimpiar]=\"isFuncional()\"\n                        [header]=\"this.translateService.instant('delegado' | translate)\" [readonly]=\"!isFuncional()\"\n                        [label]=\"formGrupoModel.get('delegado').value != null ? delegado.nombreCompleto : ''\"\n                        formControlName=\"delegado\" (onSelected)=\"onSelectDelegado($event)\">\n                    </app-input-helper-hoja-vida>\n                </div>\n\n                <!-- Empresa -->\n                <div class=\"field col-12 md:col-4 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_empresa\" [options]=\"listaEmpresa\" optionLabel=\"label\"\n                            optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"empresa\"\n                            [disabled]=\"isDeshabilitarCampos()\" (onChange)=\"cargarUnidades($event)\"></p-dropdown>\n                        <label for=\"id_empresa\">{{'empresa' | translate}} </label>\n                    </span>\n                </div>\n\n                <!-- Unidad  -->\n                <div class=\"field col-12 md:col-4 lg:col-3\">\n                    <app-input-helper-unidad formControlName=\"unidad\" [readonly]=\"!isFuncional()\"\n                        [empresa]=\"formGrupoModel.get('empresa').value\" [mostrarX]=\"isFuncional()\"\n                        [label]=\"this.formGrupoModel.get('nombreUnidad').value\" (onSelected)=\"cargarUnidad($event)\"\n                        [header]=\"this.translateService.instant('unidad' | translate)\"\n                        (keydown.enter)=\"handleEnterKey($event)\">\n                    </app-input-helper-unidad>\n                </div>\n\n                <!-- Referencia Pago -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_referencia_pago\" formControlName=\"referencia\">\n                        <label for=\"id_referencia_pago\">{{'referenciapago' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Valor Persona Apagar -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_valor_persona_apagar\" formControlName=\"valor\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 100);\">\n                        <label for=\"id_valor_persona_apagar\">{{'valorpersonaapagar' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Posicion -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_posicion\" formControlName=\"posicion\" maxlength=\"5\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n                        <label for=\"id_posicion\">{{'posicion' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Inicial Inscribe  -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar id=\"fecha_inscripcion\" formControlName=\"inscripcion\" dateFormat=\"dd/mm/yy\"\n                            [showIcon]=\"true\" [disabled]=\"isDeshabilitarCampos()\"></p-calendar>\n                        <label for=\"fecha_inscripcion\">{{'fechainscripcion' | translate}}</label>\n                    </span>\n                </div>\n            </div>\n        </form>\n\n        <!-- BOTONES -->\n        <div class=\"flex justify-content-end mb-2\">\n\n            <!--GUARDAR-->\n            <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:nuevo') && nuevo\"\n                label=\"{{'link_guardar' | translate}}\" (click)=\"guardarGrupo()\">\n            </button>\n\n            <!--ACTUALIZAR-->\n            <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n                *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:nuevo') && !nuevo\"\n                label=\"{{'link_actualizar' | translate}}\" (click)=\"guardarGrupo()\">\n            </button>\n\n            <!--ELIMINAR-->\n            <button pButton pRipple class=\"ml-2 p-button-outlined\"\n                *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:eliminar') && !nuevo\"\n                icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarGrupo()\">\n            </button>\n        </div>\n\n\n    </div>\n\n    <div *ngIf=\"!nuevo\">\n        <p-accordion [activeIndex]=\"0\">\n\n            <!-- INTEGRANTES -->\n            <p-accordionTab *ngIf=\"!nuevo && formGrupoModel.get('llaveTabla').value\">\n                <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>{{'integrantes' |\n                    translate}}</ng-template>\n                <ng-template pTemplate=\"content\">\n\n                    <div class=\"flex justify-content-end align-items-center mt-3 mb-3 \">\n\n                        <!-- Botón de nuevo-->\n                        <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" (click)=\"mostrarRegistro()\"\n                            icon=\"pi pi-plus\" class=\"p-button-secondary font-semibold\" [disabled]=\"habilitaCampo\"\n                            *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:nuevo') && formGrupoModel.get('nombre').value\"></button>\n\n                    </div>\n\n                    <p-table #tablaGeneral id=\"tabla_listado_integrantes\" [value]=\"listadoIntegrantes\"\n                        responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listadoIntegrantes.length > 10\"\n                        [totalRecords]=\"listadoIntegrantes.length\" scrollDirection=\"horizontal\"\n                        styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                        [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\" editMode=\"row\" [scrollable]=\"true\">\n\n                        <ng-template pTemplate=\"header\">\n                            <tr>\n                                <th style=\"width:30%;\">{{'integrantes' | translate}}</th>\n                                <th style=\"width:15%;\">{{'empresa' | translate}}</th>\n                                <th style=\"width:15%;\">{{'unidad' | translate}}</th>\n                                <th style=\"width:16%;\">{{'posicion' | translate}}</th>\n                                <th style=\"width:16%;\">{{'costo' | translate}}</th>\n                                <th *ngIf=\"formGrupoModel.get('nombre').value\" style=\"width:8%;\"></th>\n                            </tr>\n                            <tr *ngIf=\"vistaVisualizar == 'nuevo'\" class=\"TablaNuevoRegistro\">\n\n                                <td style=\"width:30%\">\n\n                                    <app-input-helper-hoja-vida id=\"integrante\" [ocultarBtnLimpiar]=\"false\"\n                                        [header]=\"''\" [readonly]=\"false\"\n                                        [label]=\"integrante.nombre ? integrante.nombre : ''\"\n                                        [(ngModel)]=\"integrante.nombre\" (onSelected)=\"setPopupHojaVida($event)\"\n                                        [filtroRolCliente]=\"isFuncional() ? false : true\"\n                                        [booleano]=\"integrante.nombre ? false : true\">\n                                    </app-input-helper-hoja-vida>\n\n                                </td>\n\n                                <td style=\"width:15%\">\n\n                                    <input id=\"nombreEmpresa\" pInputText type=\"text\" [required]=\"true\"\n                                        [(ngModel)]=\"integrante.nombreEmpresa\" class=\"w-full\" disabled />\n                                </td>\n\n                                <td style=\"width:15%\">\n\n                                    <input id=\"nombreUnidad\" #nombreUnidad=\"ngModel\" pInputText type=\"text\"\n                                        [required]=\"true\" [(ngModel)]=\"integrante.nombreUnidad\" class=\"w-full\"\n                                        disabled />\n                                </td>\n\n                                <!-- Posición -->\n                                <td style=\"width:16%\">\n                                    <input id=\"posicion\" #posicion=\"ngModel\" pInputText type=\"text\" [required]=\"true\"\n                                        [(ngModel)]=\"integrante.posicion\" class=\"w-full\" maxlength=\"5\"\n                                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(integrante.posicion) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(integrante.posicion)  && clickGenerar\" />\n                                </td>\n\n                                <!-- Costo -->\n                                <td style=\"width:16%\">\n                                    <input id=\"costo\" #costo=\"ngModel\" pInputText type=\"text\" [required]=\"true\"\n                                        [(ngModel)]=\"integrante.costo\" class=\"w-full\" maxlength=\"5\"\n                                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(integrante.costo) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(integrante.costo)  && clickGenerar\" />\n                                </td>\n\n                                <!-- BOTONES NUEVO REGISTRO -->\n                                <td style=\"width: 8%; text-align: right\">\n                                    <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                        class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                        (click)=\"crearRegistro()\"></button>\n                                    <button pButton pRipple type=\"button\" icon=\"pi pi-times\"\n                                        (click)=\"cancelarRegistro()\"\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>\n                                </td>\n                            </tr>\n                        </ng-template>\n\n                        <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-ri=\"rowIndex\">\n                            <tr [pEditableRow]=\"item\">\n                                <td style=\"width:30%;\">{{item.nombre}}</td>\n                                <td style=\"width:15%;\">{{item.nombreEmpresa}}</td>\n                                <td style=\"width:15%;\">{{item.nombreUnidad}}</td>\n                                <td style=\"width:16%;\">\n                                    <p-cellEditor style=\"width:100%;\">\n                                        <ng-template pTemplate=\"input\">\n                                            <input id=\"posicion_edit\" pInputText type=\"text\" [required]=\"true\"\n                                                [(ngModel)]=\"item.posicion\" class=\"w-full\" maxlength=\"5\"\n                                                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.posicio) && clickGenerar\"\n                                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.posicio)  && clickGenerar\" />\n                                        </ng-template>\n                                        <ng-template pTemplate=\"output\">\n                                            {{item.posicion}}\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n                                <td style=\"width:16%;\">\n                                    <p-cellEditor style=\"width:100%;\">\n                                        <ng-template pTemplate=\"input\">\n                                            <input id=\"costo\" pInputText type=\"text\" [required]=\"true\"\n                                                [(ngModel)]=\"item.costo\" class=\"w-full\" maxlength=\"5\"\n                                                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.costo) && clickGenerar\"\n                                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.costo)  && clickGenerar\" />\n                                        </ng-template>\n                                        <ng-template pTemplate=\"output\">\n                                            {{item.costo}}\n                                        </ng-template>\n                                    </p-cellEditor>\n                                </td>\n\n                                <!-- BOTONES -->\n                                <td style=\"width: 8%; text-align: right\" *ngIf=\"formGrupoModel.get('nombre').value\">\n                                    <!-- CHECK GUARDAR -->\n                                    <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow\n                                        icon=\"pi pi-check\" (click)=\"editarRegistro(item)\"\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>\n                                    <!-- CANCELAR -->\n                                    <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n                                        icon=\"pi pi-times\" (click)=\"cancelar()\"\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>\n                                    <!-- EDITAR -->\n                                    <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                                        (click)=\"iniciarEdicion()\" icon=\"glyphicons glyphicons-pencil\"\n                                        [disabled]=\"habilitaCampo\"\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>\n\n                                    <!-- ELIMINAR -->\n                                    <button\n                                        *ngIf=\"!editing && controlFuncionService.getControlFuncionalidad('evebie:eliminar')\"\n                                        pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                        (click)=\"eliminarRegistro(item)\" [disabled]=\"habilitaCampo\"\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>\n                                </td>\n                            </tr>\n                        </ng-template>\n\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    </p-table>\n\n                </ng-template>\n\n            </p-accordionTab>\n\n        </p-accordion>\n\n    </div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class FiltroFamiliaModel extends UnionModel {\n\n\tseccion: String;\n\tcedula: number;\n\tllave: String;\n\tnombre: String;\n\tedad: number;\n\tparentesco: String;\n\tsexo: String;\n\tfiltro: String;\n\tfiltroHoja: String;\n\tcedulaPariente: number;\n\tdiscapacidad: String;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class FiltroEmpleadoFamiliaModel extends UnionModel {\n\n\tciudad: String;\n\testadoCivil: String;\n\tnivelCargo: String;\n\tvinculacion: number;\n\tempresa: number;\n\tunidad: String;\n\tsueldoBasico: number;\n\ttipoPeriodo: number;\n\tedad: number;\n\tsexo: String;\n\tantiguedad: number;\n\tcargo: String;\n\tzona: String;\n\tnivelAcademico: String;\n\tgradoAcademico: number;\n\tprofesion: String;\n\torganizacion: number;\n\thojaVida: number;\n\thojaPariente: String;\n\tcontrato: number;\n\tnombre: String;\n\tnombreEmpresa: String;\n\tnombreCargo: String;\n\tnombreUnidad: String;\n\testado: String;\n\tfechaIngreso: Date;\n\tfechaRetiro: Date;\n\trolClasificacion: String;\n\tcedulaPariente: number;\n\tparentesco: String;\n\tdiscapacidad: String;\n\tseccion: String;\n\tnombrePariente: String;\n\templeadoActivo: String;\n\tantiguedadCargoAct: number;\n\tsoloEmpleado: String;\n\t\n\t/* Variables no persistentes*/\n\tfiltro: String;\n\tfiltroHoja: String;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class FiltroEmpleadoModel extends UnionModel {\n\n\tciudad: String;\n\testadoCivil: String;\n\tnivelCargo: String;\n\tvinculacion: number;\n\tempresa: number;\n\tunidad: string;\n\tsueldoBasico: number;\n\ttipoPeriodo: number;\n\tedad: number;\n\tsexo: String;\n\tantiguedad: number;\n\tcargo: String;\n\tzona: String;\n\tnivelAcademico: String;\n\tgradoAcademico: number;\n\tprofesion: String;\n\torganizacion: number;\n\thojaVida: number;\n\tcontrato: number;\n\tfiltro: string;\n\tnombre: String;\n\tnombreCargo: String;\n\tnombreEmpresa: String;\n\tnombreUnidad: String;\n\templeadoActivo: string;\n\testadoEmpleado: String;\n\tfechaIngreso: Date;\n\tparametroCadena: String;\n\tparametroCadenaNombres: String;\n\tparametroNumero: number;\n\tfechaBase: Date;\n\tclasificacion: String;\n\tunidadRelacion: String;\n\tentidadRiesgo: String;\n\tunidadDepende: String;\n\tunidadDependeRelacion: String;\n\tprogramaVigilancia: String;\n\testadoLiquidacion: String;\n\tantiguedadCargoActual: number;\n\n\n}\n\n","import { UnionModel } from 'general-library-union'\n\nexport class RequisitoModel extends UnionModel {\n\n\tllave: string;\n\tdescripcion: string;\n\testado: string;\n\tproceso: string;\n\tbloquea: string;\n\torden: number;\n\tempresa: number;\n\tllaveRequisito: string;\n\tidentifica: number;\n\tllaveRequisitoHoja: string;\n\testadoReqHov: string;\n\torigen: string;\n\tllaveBase: string;\n\tllaveBaseNumerica: number;\n\ttipo: string;\n\ttipoDocumento: string;\n\tdescripcionCiudad: string;\n\tcampo: string;\n\tdescripcionEmpresa: string;\n\tdescripcionTipoPeriodo: string;\n\tdescripcionVinculaLaboral: string;\n\tdescripcionUnidad: string;\n\tdescripcionTipoDocumento: string;\n\tdescripcionParentesco: string;\n\tdescripcionCargo: string;\n\tdescripcionEstadoLaboral: string;\n\tdescripcionGrupo: string;\n\tdescripcionProfesionOficio: string;\n\tdescripcionNivelAcademico: string;\n\tdescripcionLista: string;\n\ttabla: string;\n\tdato: string; \n\tdato2: string;\n\tentero: number;\n\toperador: string;\n\n\t\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class EstadoLaboralModel extends UnionModel {\n\n\testadoLaboral: string;\n\tdescripcion: string;\n\ttipoVincula: string;\n\tseleccion: string;\n\tdescripcionVincula: string;\n\ttipoPeriodo: number;\n\tbusqueda: string;\n\t\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService, cargarmapasGlobal } from 'general-library-union';\nimport { FiltroEmpleadoModel } from '../../../modules/bienestar/models/FiltroEmpleadoModel';\nimport { EstadoLaboralModel } from '../../../modules/compensacion/models/EstadoLaboralModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n  selector: 'app-input-helper-filtro-empleado',\n  templateUrl: './input-helper-filtro-empleado.component.html',\n  styleUrls: ['./input-helper-filtro-empleado.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperFiltroEmpleadoComponent),\n      multi: true,\n    },\n  ],\n  standalone: true,\n  imports: [\n    NgIf,\n    InputTextModule,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    DatePipe,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n})\nexport class InputHelperFiltroEmpleadoComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  @Input() value: number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() mostrarX: boolean;\n\n  @Input() seleccionarMetodo: string;\n\n  @Input() filtro: string\n\n  @Input() fechaBase: Date\n\n  @Input() esFiltro: boolean\n\n  @Input() estadoLiquidacion: string\n\n  listado: FiltroEmpleadoModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: FiltroEmpleadoModel;\n  filters = [];\n  filtroDinamico: boolean;\n  mapaEstadosLaborales: any[];\n  objEstadosLaborales: any;\n  filtroBean: FiltroEmpleadoModel;\n  parametroBusqueda: any;\n\n  constructor(private translateService: TranslateService, private generalService: GeneralService, private cargarMapas: cargarmapasGlobal, private authService: AuthService,\n    private saraAplicacionService: SaraAplicacionService, private toastService: ToastService) { }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  ngOnInit(): void {\n\n    this.showDialog = false;\n    this.listado = [];\n    this.mapaEstadosLaborales = [];\n    //this.filtro = '';\n    this.objEstadosLaborales = [];\n    this.filtroBean = new FiltroEmpleadoModel();\n\n    if (this.labelInput == null) {\n      this.labelInput = '';\n    }\n\n    this.filters = [\n      {\n        field: 'parametro',\n        header: this.translateService.instant('identificacion') + ' / ' + this.translateService.instant('nombre'),\n        matchMode: 'contains',\n      }\n    ];\n\n  }\n\n  ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  async openDataTable() {\n\n    this.dataSelected = null\n\n    this.cargarListadoIniciales();\n\n    this.showDialog = true;\n\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n\n    let event = {};\n\n    if (this.filtroItem?.filterForm?.controls?.['parametro']?.value) {\n      event = { parametro: { value: this.filtroItem?.filterForm?.controls?.['parametro']?.value } };\n    }\n\n    if (!this.seleccionarMetodo || this.seleccionarMetodo === 'buscarFiltroDinamico') {\n\n      this.buscarFiltroDinamico(event);\n\n    } else if (this.seleccionarMetodo === 'buscar') {\n\n      this.buscar(event);\n\n    }\n  }\n\n  async cargarListadoIniciales() {\n\n    this.mapaEstadosLaborales = await this.cargarMapas.cargarSelectItemString('estadoLaboral', 'descripcion', new GeneralModel('EstadoLaboralDTO', null, false, new EstadoLaboralModel()));\n\n    this.objEstadosLaborales = await this.mapaEstadosLaborales.reduce((obj, area) => {\n      obj[area.key] = area.label;\n      return obj;\n    }, {});\n\n  }\n\n  buscarFiltroDinamico(event) {\n    this.filtroDinamico = true;\n    this.cargarListaFiltros(event)\n\n  }\n\n  buscar(event) {\n    this.filtroDinamico = false;\n    this.cargarListaFiltros(event);\n\n    if (this.isCliente()) {\n      this.empleado();\n    }\n  }\n\n  empleado() {\n\n    let persona = new FiltroEmpleadoModel();\n\n    if (this.listado != null && this.listado.length > 0) {\n      persona = this.listado[0];\n    } else {\n      this.toastService.showWarning(\"No puede aplicar a este beneficio\");\n    }\n  }\n\n  cargarListaFiltros(event) {\n    this.cargarLista(event);\n  }\n\n  async cargarLista(event) {\n\n    this.parametroBusqueda = event.parametro?.value ? event.parametro?.value : null;\n\n    await this.colocarFiltro();\n\n    let objetoFiltro: GeneralModel = new GeneralModel('FiltroEmpleadoDTO', null, false, this.filtroBean);\n    this.listado = await this.generalService.queryForList(objetoFiltro).toPromise();\n\n  }\n\n  async colocarFiltro() {\n\n    if (this.filtroDinamico) {\n\n      this.filtroBean = new FiltroEmpleadoModel();\n\n      if (this.parametroBusqueda) {\n\n        if (!isNaN(Number(this.parametroBusqueda))) {\n\n          this.filtroBean.parametroNumero = parseInt(this.parametroBusqueda);\n\n        } else {\n\n          this.filtroBean.parametroCadena = Constantes.PORCENTAJE + this.parametroBusqueda + Constantes.PORCENTAJE;\n\n        }\n      }\n\n      if (this.filtro) {\n        this.filtroBean.filtro = this.filtro;\n      } else {\n        this.filtroBean.filtro = null;\n      }\n\n      if (this.isCliente()) {\n        this.filtroBean.hojaVida = await this.saraAplicacionService.getCedula();\n      }\n\n    } else {\n\n      this.filtroBean = new FiltroEmpleadoModel();\n      this.filtroBean.fechaBase = this.fechaBase;\n      this.filtroBean.parametroCadenaNombres = null;\n      this.filtroBean.parametroNumero = null;\n      this.filtroBean.hojaVida = null;\n      this.filtroBean.nombre = null;\n      this.filtroBean.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n      if (Constantes.CONSTANTE_SI == this.estadoLiquidacion) {\n        this.filtroBean.estadoLiquidacion = this.estadoLiquidacion;\n      }\n\n      if (this.parametroBusqueda) {\n\n        if (!isNaN(Number(this.parametroBusqueda))) {\n\n          this.filtroBean.parametroNumero = parseInt(this.parametroBusqueda);\n\n        } else {\n\n          const partes: string[] = this.parametroBusqueda.split(\" \");\n\n          let whereNombres: string = \"\";\n          let iteracion = 0;\n\n          for (let parte of partes) {\n\n            whereNombres += \"upper(nombre) like '\" + Constantes.PORCENTAJE + parte.toUpperCase() + Constantes.PORCENTAJE + \"' \";\n            \n            if (iteracion !== partes.length - 1) {\n              whereNombres += \" and \";\n            }\n            iteracion ++; \n          }\n\n          this.filtroBean.parametroCadenaNombres = whereNombres;\n        }\n      }\n\n      if (this.filtro) {\n        this.filtroBean.filtro = this.filtro;\n      } else {\n        this.filtroBean.filtro = null;\n      }\n\n      if (this.isCliente()) {\n        this.filtroBean.hojaVida = await this.saraAplicacionService.getCedula();\n      }\n\n    }\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  onRowSelect(event) {\n    this.showDialog = false;\n    let dataSelected = event.data;\n    this.label = dataSelected.nombre;\n    this.value = dataSelected.cedula;\n    this.onChange(this.value);\n    this.onSelected.emit(dataSelected);\n\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n}\n\n\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n\n    <!-- Cuando no lleva label el input, evita que se muestre la etiqueta vacia en la parte superior-->\n    <input *ngIf=\"labelInput == ''\" pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n\n    <span class=\"p-float-label\" *ngIf=\"labelInput != ''\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <label>{{labelInput}}</label>\n    </span>\n\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\">\n        <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n\n</div>\n\n<p-dialog header=\"{{'filtroempleado'| translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n    [style]=\"{ width: '60vw'}\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_parametro\" formControlName=\"parametro\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_parametro\">{{'identificacion' | translate}} / {{'nombre' |\n                                translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listado\" selectionMode=\"single\"\n        [paginator]=\"listado.length > 10\" [rows]=\"10\" [totalRecords]=\"listado.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\"\n        (onRowSelect)=\"onRowSelect($event)\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{\"identificacion\" | translate}} </th>\n                <th>{{\"contrato\" | translate}} </th>\n                <th>{{\"nombrefuncionario\" | translate}} </th>\n                <th>{{\"nombreempresa\" | translate}} </th>\n                <th>{{\"fechaingreso\" | translate}} </th>\n                <th>{{\"estadolaboral\" | translate}} </th>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-item>\n            <tr [pSelectableRow]=\"item\">\n                <td> {{item.hojaVida}} </td>\n                <td> {{item.contrato}} </td>\n                <td> {{item.nombre}} </td>\n                <td> {{item.nombreEmpresa}} </td>\n                <td> {{item.fechaIngreso | date: ('formatofecha' | translate)}} </td>\n                <td> {{objEstadosLaborales[item.empleadoActivo]}} </td>\n\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { AsistenteEventoModel } from '../../capacitacion/models/AsistenteEventoModel';\nimport { BienestarPipe } from '../pipes/bienestar.pipe';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BienestarLogicaService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private bienestarPipe: BienestarPipe,\n    private utilsServices: UtilsService\n  ) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      console.error('An error occurred:', error.error);\n    } else {\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  inscribir(asistenteEvento: AsistenteEventoModel): Observable<any> {\n\n    let formData = new FormData();\n\n    formData.append(\"asistenteEvento\", JSON.stringify(asistenteEvento));\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/evento/inscribirbienestarlogica`;\n\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req);\n  }\n\n  actualizar(asistenteEvento: AsistenteEventoModel): Observable<any> {\n\n    let formData = new FormData();\n\n    formData.append(\"asistenteEvento\", JSON.stringify(asistenteEvento));\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/evento/actualizarbienestarlogica`;\n\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizar(asistenteEvento: AsistenteEventoModel): Observable<any> {\n\n    let formData = new FormData();\n\n    formData.append(\"asistenteEvento\", JSON.stringify(asistenteEvento));\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/evento/legalizarbienestarlogica`;\n\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  noLegalizar(asistenteEvento: AsistenteEventoModel): Observable<any> {\n\n    let formData = new FormData();\n\n    formData.append(\"asistenteEvento\", JSON.stringify(asistenteEvento));\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/evento/noLegalizarbienestarlogica`;\n\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  isMostrarBotonesLegalizacion(participante: AsistenteEventoModel): boolean {\n    \n    let validar = true;\n    validar = (participante.estado == this.bienestarPipe.INSCRITO);\n    \n    return validar;\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ConfirmationService, MenuItem } from 'primeng/api';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { AsistenteEventoModel } from '../../../../capacitacion/models/AsistenteEventoModel';\nimport { CodigoBaseTalentoModel } from '../../../models/CodigoBaseTalentoModel';\nimport { EventoModel } from '../../../../capacitacion/models/EventoModel';\nimport { TipoEventoModel } from '../../../../capacitacion/models/TipoEventoModel';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { FiltroFamiliaModel } from '../../../models/FiltroFamiliaModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { FiltroEmpleadoFamiliaModel } from '../../../models/FiltroEmpleadoFamiliaModel';\nimport { FiltroEmpleadoModel } from '../../../models/FiltroEmpleadoModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { MomentoEventoModel } from '../../../models/MomentoEventoModel';\nimport { RequisitoModel } from '../../../../talento/models/RequisitoModel';\nimport { BienestarLogicaService } from '../../../services/bienestar-logica.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { BienestarService } from '../../../services/bienestar.service';\nimport { BienestarPipe } from '../../../pipes/bienestar.pipe';\nimport { EventoPipe } from '../../../../../shared/pipes/evento.pipe';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { InputHelperFiltroEmpleadoComponent } from '../../../../../shared/componentes/input-helper-filtro-empleado/input-helper-filtro-empleado.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CommonModule, NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\n\n@Component({\n  selector: 'app-detalle-individual-evento',\n  templateUrl: './detalle-individual-evento.component.html',\n  styleUrls: ['./detalle-individual-evento.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule,\n    ConfirmDialogModule,\n    ButtonDirective,\n    Ripple,\n    NgIf,\n    FormsModule,\n    InputTextModule,\n    DropdownModule,\n    CalendarModule,\n    ReactiveFormsModule,\n    InputHelperFiltroEmpleadoComponent,\n    TranslateModule,\n    SplitButtonModule,\n    CommonModule]\n})\nexport class DetalleIndividualEventoComponent implements OnInit {\n\n  @Input() isMostrarDetalleEvento: boolean = false;\n  @Output() regresarIndividual: EventEmitter<any> = new EventEmitter();\n\n  formIndividualModel: FormGroup;\n  participante: AsistenteEventoModel;\n  areaTalento: CodigoBaseTalentoModel;\n  eventoModel: EventoModel;\n  tipoEvento: TipoEventoModel;\n  tipoPrograma: CodigoBaseTalentoModel;\n  nuevo: boolean;\n  cambiarDatos: boolean;\n  nombreCompleto: string;\n  nombreEmpresa: string;\n  unidadNombreOcupa: string;\n  listaPariente: any[];\n  listaEstados: { codigo: string; nombre: string; }[];\n  listaMomentoEventos: any[];\n  encuesta: boolean;\n  filtroE: FiltroEmpleadoModel;\n  participanteClonado: AsistenteEventoModel;\n  estados: { codigo: string; nombre: string; }[];\n  disciplinas: any[];\n  modalidades: any[];\n  listaEmpresa: any[];\n  unidades: any[];\n  mostrarDisciplina: boolean;\n  mostrarModalidad: boolean;\n  mostrarEmpresa: boolean;\n  mostrarUnidad: boolean;\n  requeridoUnidad: boolean;\n  itemsBotonAcciones: MenuItem[];\n\n  constructor(private formBuilder: FormBuilder, private generalService: GeneralService, private bienestarService: BienestarService, private toastService: ToastService,\n    private confirmationService: ConfirmationService, private us: UtilsService, public controlFuncionService: CargarControlFuncionalidadService,\n    private bienestarPipe: BienestarPipe, private authService: AuthService, private empleadoService: EmpleadoService, public translateService: TranslateService,\n    private generalPipe: GeneralPipe, private saraAplicacionService: SaraAplicacionService, private bienestarLogicaServices: BienestarLogicaService,\n    private eventoPipe: EventoPipe, private cargarMapas: cargarmapasGlobal,) { }\n\n  ngOnInit(): void {\n    this.areaTalento = new CodigoBaseTalentoModel();\n    this.eventoModel = new EventoModel();\n    this.tipoEvento = new TipoEventoModel();\n    this.tipoPrograma = new CodigoBaseTalentoModel();\n    this.participante = new AsistenteEventoModel();\n    this.listaMomentoEventos = [];\n    this.listaEstados = [];\n    this.listaPariente = [];\n    this.filtroE = new FiltroEmpleadoModel();\n    this.participanteClonado = new AsistenteEventoModel();\n    this.cargarFormulario();\n    this.cargarListadosIniciales();\n    this.cargarAccionesBoton();\n  }\n\n  async cargarListadosIniciales() {\n\n    //Lista Estados\n    this.estados = this.eventoPipe.LISTA_ESTADOEVENTO;\n    //Empresa\n    this.listaEmpresa = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, { organizacion: parseInt(this.authService.getTokenKey('llaveEmpresa')) }));\n\n  }\n\n  cargarFormulario() {\n\n    this.formIndividualModel = this.formBuilder.group({\n      llaveTabla: new FormControl(this.participante.llaveTabla),\n      evento: new FormControl(this.participante.evento),\n      cedula: new FormControl(this.participante.cedula),\n      estado: new FormControl(this.participante.estado),\n      ausencia: new FormControl(this.participante.ausencia),\n      puntaje: new FormControl(this.participante.puntaje),\n      costoIncurre: new FormControl(this.participante.costoIncurre),\n      empresa: new FormControl(this.participante.empresa),\n      cargo: new FormControl(this.participante.cargo),\n      unidad: new FormControl(this.participante.unidad),\n      planInversion: new FormControl(this.participante.planInversion),\n      descripcion: new FormControl(this.participante.descripcion),\n      entidad: new FormControl(this.participante.entidad),\n      costo: new FormControl(this.participante.costo),\n      inscripcion: new FormControl(!this.participante.inscripcion ? null : new Date(this.participante.inscripcion)),\n      contrato: new FormControl(this.participante.contrato),\n      autoriza: new FormControl(this.participante.autoriza),\n      solicita: new FormControl(this.participante.solicita),\n      nivel: new FormControl(this.participante.nivel),\n      motivoNoAutoriza: new FormControl(this.participante.motivoNoAutoriza),\n      grupoTalento: new FormControl(this.participante.grupoTalento),\n      eventoParticipa: new FormControl(this.participante.eventoParticipa),\n      posicion: new FormControl(this.participante.posicion),\n      momentoEvento: new FormControl(this.participante.momentoEvento),\n      terceroTalento: new FormControl(this.participante.terceroTalento),\n      sancionado: new FormControl(this.participante.sancionado),\n      nombresAsistente: new FormControl(this.participante.nombresAsistente),\n      primerApellidoAsistente: new FormControl(this.participante.primerApellidoAsistente),\n      segundoApellidoAsistente: new FormControl(this.participante.segundoApellidoAsistente),\n      documentoAsistente: new FormControl(this.participante.documentoAsistente),\n      origenOrganizacion: new FormControl(this.participante.origenOrganizacion),\n      hojaPariente: new FormControl(this.participante.hojaPariente),\n      email: new FormControl(this.participante.email),\n      tipoVinculacion: new FormControl(this.participante.tipoVinculacion),\n      grupoApoyoIntegrante: new FormControl(this.participante.grupoApoyoIntegrante),\n      depende: new FormControl(this.participante.depende),\n      mensaje: new FormControl(this.participante.mensaje),\n      nombre: new FormControl(this.participante.nombre),\n      organizacion: new FormControl(this.participante.organizacion),\n    },);\n  }\n\n  async cargar(areaTalento: CodigoBaseTalentoModel, eventoModel: EventoModel, tipoEvento: TipoEventoModel, tipoPrograma: CodigoBaseTalentoModel, participante: AsistenteEventoModel) {\n\n    this.areaTalento = areaTalento;\n    this.eventoModel = eventoModel;\n    this.tipoEvento = tipoEvento;\n    this.tipoPrograma = tipoPrograma;\n    this.cambiarDatos = true;\n    this.encuesta = false;\n\n    await this.cargarCampos();\n    await this.cargarDisciplinas();\n    await this.cargarModalidades(!this.eventoModel ? null : this.eventoModel.disciplina);\n\n    if (this.eventoModel.empresa) {\n      this.unidades = await this.bienestarService.getListaUnidadSegunEmp(this.eventoModel.empresa);\n    }\n\n    if (participante != null) {\n\n      this.cambiarDatos = false;\n      this.nuevo = false;\n\n      this.formIndividualModel.patchValue(participante);\n\n      this.formIndividualModel.get('inscripcion').setValue(!this.formIndividualModel.get('inscripcion').value ? null : new Date(this.formIndividualModel.get('inscripcion').value));\n\n      if (!this.formIndividualModel.get('estado').value) {\n        this.formIndividualModel.get('estado').setValue(this.bienestarPipe.SOLICITADO);\n      }\n\n      let empleado = new EmpleadoModel();\n      empleado = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(this.formIndividualModel.get('cedula').value);\n\n      if (empleado != null) {\n\n        this.nombreCompleto = (empleado?.primerApellido ? empleado.primerApellido : '') + ' ' + (empleado?.segundoApellido ? empleado.segundoApellido : '') + ' ' + empleado?.nombres\n        this.nombreEmpresa = empleado.nombreEmpresa;\n        this.unidadNombreOcupa = this.getUnidadNombreOcupa(empleado);\n        \n        await this.cargarListaPariente();\n        //setear Hoja pariente para poder cargarla en la lista del dropdown\n        this.formIndividualModel.get('hojaPariente').setValue(participante.hojaPariente ? participante.hojaPariente : '.'.padEnd(32,' '));\n      }\n    }\n    else {\n      this.nuevo = true;\n      this.eventoModel.fechaInicial = this.eventoModel.fechaInicial ? new Date(this.eventoModel.fechaInicial) : null;\n      this.eventoModel.fechaFinal = this.eventoModel.fechaFinal ? new Date(this.eventoModel.fechaFinal) : null;\n      this.formIndividualModel.get('estado').setValue('S');\n    }\n\n    this.formIndividualModel.get('inscripcion').setValue(new Date());\n\n    if (!this.isFuncional()) {\n\n      let filtroEmpleadoDTO = new FiltroEmpleadoModel();\n      filtroEmpleadoDTO.hojaVida = await this.saraAplicacionService.getCedula();\n      filtroEmpleadoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      filtroEmpleadoDTO.empleadoActivo = Constantes.CONSTANTE_SI;\n\n      let filtroTempEmpleado = new GeneralModel('FiltroEmpleadoDTO', null, false, filtroEmpleadoDTO);\n      let lista = await this.generalService.queryForList(filtroTempEmpleado).toPromise();\n\n      if (!lista || lista.length < 1) {\n        this.toastService.showWarning(\"No puede aplicar a este evento\");\n        return;\n      }\n\n      let hoja = new HojaVidaModel();\n      hoja.identifica = lista[0].hojaVida;\n\n      await this.setPopupHojaVidaParticipante(hoja);\n      //setear Hoja pariente para poder cargarla en la lista del dropdown\n      this.formIndividualModel.get('hojaPariente').setValue(participante?.hojaPariente ? participante?.hojaPariente : '.'.padEnd(32,' '));\n    }\n\n    this.cargarListas();\n    this.verHojaVida();\n\n  }\n\n  async cargarDisciplinas() {\n\n    let codigoBaseTalentoDTO = new CodigoBaseTalentoModel();\n    codigoBaseTalentoDTO.tabla = this.bienestarPipe.TABLA_DISCIPLINADEPORTE;\n\n    this.disciplinas = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTalentoDTO', null, false, codigoBaseTalentoDTO));\n\n  }\n\n  async cargarModalidades(disciplina: any) {\n\n    if (disciplina == null) {\n      return;\n    }\n\n    let codigoBaseTalentoModel = new CodigoBaseTalentoModel();\n    codigoBaseTalentoModel.tabla = this.bienestarPipe.TABLA_MODALIDADDEPORTE;\n    codigoBaseTalentoModel.depende = disciplina;\n\n    this.modalidades = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTalentoDTO', null, false, codigoBaseTalentoModel));\n\n  }\n\n  getUnidadNombreOcupa(empleado: EmpleadoModel): string {\n    if (!empleado.unidadFuncion || empleado.unidadFuncion.trim() == '.') {\n      return empleado.unidadNombreTitular;\n    } else {\n      return empleado.unidadNombreEncargo;\n    }\n  }\n\n  getUnidadOcupa(empleado: EmpleadoModel): string {\n    if (!empleado.unidadFuncion || empleado.unidadFuncion.trim() == '.') {\n      return empleado.unidad;\n    } else {\n      return empleado.unidadFuncion;\n    }\n  }\n\n  getCargoOcupa(empleado: EmpleadoModel) {\n\n    if (empleado.cargoFuncion || empleado.cargoFuncion.trim() == Constantes.PUNTO) {\n      return empleado.cargo;\n    }\n    return empleado.cargoFuncion;\n  }\n\n  isFuncional(): boolean {\n    return this.authService.getTokenKey('tipoLogin') == 'U';\n  }\n\n  async cargarListaPariente() {\n    \n    this.listaPariente = [];\n\n    let dto = new FiltroFamiliaModel();\n    dto.seccion = this.tipoEvento.seccion;\n    dto.cedula = this.formIndividualModel.get('cedula').value;\n\n    if (this.bienestarPipe.SECCION != this.tipoEvento.participante) {\n      this.listaPariente.push({ key: Constantes.PUNTO.padEnd(32, ' '), label: this.bienestarPipe.SOLICITANTE_DESC });\n    }\n    \n    if (this.bienestarPipe.SOLICITANTE == this.tipoEvento.participante) {\n\n      return;\n\n    } else if (this.bienestarPipe.SOLICITANTE_SECCION == this.tipoEvento.participante) {\n\n      let filtroEmpleadoFamiliaDTO = new FiltroEmpleadoFamiliaModel();\n      filtroEmpleadoFamiliaDTO.empleadoActivo = Constantes.CONSTANTE_SI;\n      filtroEmpleadoFamiliaDTO.hojaVida = this.formIndividualModel.get('cedula').value;\n      filtroEmpleadoFamiliaDTO.seccion = this.tipoEvento.seccion;\n\n      filtroEmpleadoFamiliaDTO.filtro = this.eventoModel.filtro;\n\n      if (this.eventoModel.filtro && this.eventoModel.filtroHoja) {\n\n        filtroEmpleadoFamiliaDTO.filtro = filtroEmpleadoFamiliaDTO.filtro + \" and \" + this.eventoModel.filtroHoja;\n\n      } else {\n\n        if (this.eventoModel.filtroHoja) {\n          filtroEmpleadoFamiliaDTO.filtro = this.eventoModel.filtroHoja;\n        }\n\n      }\n\n      let filtroEmpleadoFamilia = new GeneralModel('FiltroEmpleadoFamiliaDTO', null, false, filtroEmpleadoFamiliaDTO);\n\n      let listaTemporalPariente = await this.cargarMapas.cargarSelectItemString('hojaPariente', 'nombrePariente', filtroEmpleadoFamilia);\n\n      this.listaPariente = this.listaPariente.concat(listaTemporalPariente);\n\n    } else if (this.bienestarPipe.SECCION == this.tipoEvento.participante) {\n\n      dto.filtroHoja = this.eventoModel.filtroHoja;\n\n      let filtro = new GeneralModel('FiltroFamiliaDTO', null, false, dto);\n\n      let listaTemporalPariente = await this.cargarMapas.cargarSelectItemString('llave', 'nombre', filtro);\n\n      this.listaPariente = this.listaPariente.concat(listaTemporalPariente);\n    }\n  }\n\n  async setPopupHojaVidaParticipante(hojaVida: HojaVidaModel) {\n\n    let empleado = new EmpleadoModel();\n    empleado = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(hojaVida.identifica);\n\n    if (empleado != null) {\n\n\n      this.formIndividualModel.get('evento').setValue(this.eventoModel.llaveTabla);\n      this.formIndividualModel.get('cedula').setValue(hojaVida.identifica);\n\n      this.nombreCompleto = (empleado?.primerApellido ? empleado.primerApellido : '') + ' ' + (empleado?.segundoApellido ? empleado.segundoApellido : '') + ' ' + empleado?.nombres;\n      this.nombreEmpresa = empleado.nombreEmpresa;\n      this.unidadNombreOcupa = this.getUnidadNombreOcupa(empleado);\n\n      this.formIndividualModel.get('unidad').setValue(this.getUnidadOcupa(empleado));\n      this.formIndividualModel.get('cargo').setValue(this.getCargoOcupa(empleado));\n      this.formIndividualModel.get('empresa').setValue(empleado.empresa);\n      this.formIndividualModel.get('nombre').setValue((empleado?.primerApellido ? empleado.primerApellido : '') + ' ' + (empleado?.segundoApellido ? empleado.segundoApellido : '') + ' ' + empleado?.nombres);\n\n      await this.cargarListaPariente();\n\n    } else {\n\n      throw this.toastService.showWarning(\"El empleado no tiene un contrato activo.\");\n    }\n  }\n\n  async cargarListas() {\n\n    this.listaEstados = this.bienestarPipe.LISTA_ESTADOS_GRUPO_BIENESTAR;\n\n    let momentoEventoDTO = new MomentoEventoModel();\n    momentoEventoDTO.evento = this.eventoModel.llaveTabla;\n    this.listaMomentoEventos = await this.bienestarService.getListaMomentoEvento(momentoEventoDTO);\n\n  }\n\n  verHojaVida(): string {\n\n    this.filtroE = new FiltroEmpleadoModel();\n\n    //Cuando el evento es de tipo solicitante\n    if (this.bienestarPipe.SOLICITANTE == this.tipoEvento.participante) {\n      this.filtroE.filtro = this.eventoModel.filtro;\n\n      if (this.eventoModel.filtro && this.eventoModel.filtroHoja) {\n        this.filtroE.filtro = this.filtroE.filtro + \" and \" + this.eventoModel.filtroHoja;\n      } else {\n        if (this.eventoModel.filtroHoja) {\n          this.filtroE.filtro = this.eventoModel.filtroHoja;\n        }\n      }\n      //Cuando el evento es de tipo solicitante/seccion o seccion\n    } else if (this.bienestarPipe.SOLICITANTE_SECCION == this.tipoEvento.participante || this.bienestarPipe.SECCION === this.tipoEvento.participante) {\n      this.filtroE.filtro = this.eventoModel.filtro;\n    }\n\n    return null;\n  }\n\n  async onSelectFiltroEmpleado(evento) {\n\n    let empleado = new EmpleadoModel();\n    empleado = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(evento.hojaVida);\n\n    if (empleado == null) {\n\n      this.formIndividualModel.get('evento').setValue(null);\n      this.formIndividualModel.get('cedula').setValue(null);\n\n      this.nombreCompleto = null;\n      this.nombreEmpresa = null;\n      this.unidadNombreOcupa = null;\n\n\n      this.formIndividualModel.get('unidad').setValue(null);\n      this.formIndividualModel.get('cargo').setValue(null);\n      this.formIndividualModel.get('empresa').setValue(null);\n      this.formIndividualModel.get('nombre').setValue(null);\n\n      this.listaPariente = [];\n\n      this.toastService.showWarning(\"El empleado no esta activo\");\n      return null;\n\n    }\n\n    this.formIndividualModel.get('evento').setValue(this.eventoModel.llaveTabla);\n    this.formIndividualModel.get('cedula').setValue(evento.hojaVida);\n\n    this.nombreCompleto = (empleado?.primerApellido ? empleado.primerApellido : '') + ' ' + (empleado?.segundoApellido ? empleado.segundoApellido : '') + ' ' + empleado?.nombres;\n    this.nombreEmpresa = empleado.nombreEmpresa;\n    this.unidadNombreOcupa = this.getUnidadNombreOcupa(empleado);\n\n\n    this.formIndividualModel.get('unidad').setValue(this.getUnidadOcupa(empleado));\n    this.formIndividualModel.get('cargo').setValue(this.getCargoOcupa(empleado));\n    this.formIndividualModel.get('empresa').setValue(empleado.empresa);\n    this.formIndividualModel.get('nombre').setValue((empleado?.primerApellido ? empleado.primerApellido : '') + ' ' + (empleado?.segundoApellido ? empleado.segundoApellido : '') + ' ' + empleado?.nombres);\n\n    this.cargarListaPariente();\n  }\n\n  isMostrarPariente(): boolean {\n    return (this.tipoEvento != null) && (this.tipoEvento.participante != null) && (this.tipoEvento.participante != this.bienestarPipe.SOLICITANTE);\n  }\n\n  cambiardato() {\n\n    this.participanteClonado = this.formIndividualModel.getRawValue();\n    this.formIndividualModel.get('estado').setValue(this.bienestarPipe.SOLICITADO);\n    this.cambiarDatos = true;\n\n  }\n\n  async guardarParticipanteIndividual() {\n\n    if (this.formIndividualModel.get('costo').value == '') {\n      this.formIndividualModel.get('costo').setValue(null);\n    }\n\n    if (this.formIndividualModel.get('posicion').value == '') {\n      this.formIndividualModel.get('posicion').setValue(null);\n    }\n\n    if (this.formIndividualModel.valid) {\n\n      if (!(await this.validarIntegrante())) {\n        this.toastService.showWarning(\"Supera la cantidad máxima de integrantes\");\n        return;\n      }\n\n      let listaCampos2: RequisitoModel[] = [];\n\n      let filReq = new RequisitoModel();\n      filReq.llaveBase = this.eventoModel.llaveTabla;\n\n      let filtroRequesitos = new GeneralModel('RequisitoDTO', null, false, filReq);\n      let listaCamposWhereSeleccionados: RequisitoModel[] = await this.generalService.queryForList(filtroRequesitos).toPromise();\n\n      for (let i = 0; i < listaCamposWhereSeleccionados.length; i++) {\n\n        if (listaCamposWhereSeleccionados[i].campo == \"sexo\" || listaCamposWhereSeleccionados[i].campo == \"edad\") {\n          listaCampos2.push(listaCamposWhereSeleccionados[i]);\n          listaCamposWhereSeleccionados.splice(i, 1);\n        }\n\n      }\n\n      let asistenteEvento = new AsistenteEventoModel();\n      asistenteEvento.evento = this.eventoModel.llaveTabla;\n      asistenteEvento.momentoEvento = this.formIndividualModel.get('momentoEvento').value\n\n      let filtroAsistente = new GeneralModel('AsistenteEventoDTO', \"AsistenteEvento.cantidadCuposDisponiblesEvento\", false, asistenteEvento);\n      let cantidadCupos = await this.generalService.cantidadRegistros(filtroAsistente).toPromise()\n\n      if (this.eventoModel.cupoMaximo != null && this.eventoModel.cupoMaximo != 0 && cantidadCupos >= this.eventoModel.cupoMaximo) {\n        this.toastService.showWarning(\"El evento no tiene cupos disponibles\");\n        return null;\n      }\n\n      if (this.formIndividualModel.get('llaveTabla').value == null) {\n\n        if (! await this.validarParticipante(this.formIndividualModel.getRawValue())) {\n\n          this.toastService.showWarning(\"El participante ya se encuentra registrado en el evento.\");\n          return;\n        }\n\n        this.formIndividualModel.get('llaveTabla').setValue(this.us.generarLlave());\n        this.formIndividualModel.get('organizacion').setValue((await this.saraAplicacionService.getEmpresa()).organizacion);\n\n        this.bienestarLogicaServices.inscribir(this.formIndividualModel.getRawValue()).subscribe({\n\n          next: data => {\n\n            if (data.type === HttpEventType.Response) {\n\n              this.nuevo = false;\n              this.toastService.showSuccess(\"Se ha registrado en el evento.\");\n\n              if (this.isMostrarDetalleEvento) {\n                this.regresarPrincipal();\n                return;\n              }\n              this.cargar(this.areaTalento, this.eventoModel, this.tipoEvento, this.tipoPrograma, this.formIndividualModel.getRawValue());\n            }\n          },\n          error: err => {\n            throw new Error(err);\n          }\n        });\n\n      } else {\n\n        this.bienestarLogicaServices.actualizar(this.formIndividualModel.getRawValue()).subscribe({\n\n          next: data => {\n\n            if (data.type === HttpEventType.Response) {\n\n              this.cargar(this.areaTalento, this.eventoModel, this.tipoEvento, this.tipoPrograma, this.formIndividualModel.getRawValue());\n              this.toastService.showSuccess(\"Se ha actualizado el registro del participante, en el evento.\");\n            }\n          },\n          error: err => {\n            throw new Error(err);\n          }\n        });\n      }\n    } else {\n\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formIndividualModel.controls).forEach((key) => {\n        if (this.formIndividualModel.get(key).errors) {\n          this.formIndividualModel.get(key).markAsDirty();\n        }\n      });\n    }\n  }\n\n  async validarIntegrante(): Promise<boolean> {\n\n    let validar = true;\n\n    if (!this.formIndividualModel.get('llaveTabla') && (this.bienestarPipe.MULTIPLE == this.tipoEvento.unicaMultiple) && this.formIndividualModel.get('momentoEvento').value) {\n\n      let momentoEvento = new MomentoEventoModel();\n      momentoEvento.llaveTabla = this.formIndividualModel.get('momentoEvento').value;\n\n      let filtro = new GeneralModel('MomentoEventoDTO', null, false, momentoEvento);\n      momentoEvento = await this.generalService.queryForObject(filtro).toPromise();\n\n      if (momentoEvento != null && momentoEvento.maximo != null) {\n\n        let cantidadInscritos = new AsistenteEventoModel();\n        cantidadInscritos.evento = this.eventoModel.llaveTabla;\n\n        let filtroCantidad = new GeneralModel('AsistenteEventoDTO', null, false, cantidadInscritos);\n\n        if ((await this.generalService.cantidadRegistros(filtroCantidad).toPromise()) >= momentoEvento.maximo) {\n          validar = false;\n          return validar;\n        }\n      }\n    }\n\n    return validar;\n  }\n\n  async validarParticipante(participante: AsistenteEventoModel): Promise<boolean> {\n\n    let participanteAValidar = new AsistenteEventoModel();\n    participanteAValidar.cedula = participante.cedula;\n    participanteAValidar.evento = participante.evento;\n    participanteAValidar.hojaPariente = participante.hojaPariente ? participante.hojaPariente.padEnd(32, ' ') : null;\n\n\n    let filtroParticipante = new GeneralModel('AsistenteEventoDTO', null, false, participanteAValidar);\n    let listaAsistenteEvento: AsistenteEventoModel[] = await this.generalService.queryForList(filtroParticipante).toPromise();\n\n    if (listaAsistenteEvento.length < 1) {\n      return true;\n    }\n\n    if (Constantes.CONSTANTE_SI.toLowerCase() == this.tipoEvento.multipleMomento.toLowerCase()) {\n\n      for (let unAsistenteEvento of listaAsistenteEvento) {\n        if (unAsistenteEvento.momentoEvento.toLowerCase() == participante.momentoEvento.toLowerCase()) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    return false;\n  }\n\n  eliminarParticipanteIndividual() {\n\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'eliminarParticipanteIndividual',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setEliminarParticipanteIndividual();\n      },\n      reject: () => { },\n    });\n\n  }\n\n  setEliminarParticipanteIndividual() {\n\n    this.bienestarService.eliminarEventoIndividual(this.formIndividualModel.getRawValue()).subscribe({\n      next: data => {\n        if (data.type === HttpEventType.Response) {\n          this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n          this.regresarPrincipal();\n        }\n      },\n      error: err => {\n        throw new Error(err);\n      }\n    });\n  }\n\n  cancelarCambiarDatos() {\n    this.formIndividualModel.patchValue(this.participanteClonado);\n    this.cambiarDatos = false;\n    this.cargar(this.areaTalento, this.eventoModel, this.tipoEvento, this.tipoPrograma, this.formIndividualModel.getRawValue());\n  }\n\n  isMostrarBotonesLegalizacion(): boolean {\n    return this.bienestarLogicaServices.isMostrarBotonesLegalizacion(this.formIndividualModel.getRawValue()) && !this.encuesta;\n  }\n\n  async legalizarParticipanteIndividual() {\n\n    this.formIndividualModel.get('estado').setValue(this.bienestarPipe.ESTADO_PROGRAMADA_GRUPO_BIENESTAR);\n    this.formIndividualModel.get('organizacion').setValue((await this.saraAplicacionService.getEmpresa()).organizacion);\n\n    this.bienestarLogicaServices.legalizar(this.formIndividualModel.getRawValue()).subscribe({\n\n      next: data => {\n\n        if (data.type === HttpEventType.Response) {\n\n          this.nuevo = false;\n          this.toastService.showSuccess(\"Se legalizó la participación de la persona en el evento.\");\n          this.cargar(this.areaTalento, this.eventoModel, this.tipoEvento, this.tipoPrograma, this.formIndividualModel.getRawValue());\n        }\n      },\n      error: err => {\n        throw new Error(err);\n      }\n    });\n  }\n\n  async noLegalizarParticipanteIndividual() {\n\n    this.formIndividualModel.get('estado').setValue(this.bienestarPipe.ESTADO_NO_ACEPTADO_BIENESTAR);\n    this.formIndividualModel.get('organizacion').setValue((await this.saraAplicacionService.getEmpresa()).organizacion);\n\n    this.bienestarLogicaServices.noLegalizar(this.formIndividualModel.getRawValue()).subscribe({\n\n      next: data => {\n\n        if (data.type === HttpEventType.Response) {\n\n          this.nuevo = false;\n          this.toastService.showSuccess(\"No se legalizó la participación de la persona en el evento.\");\n          this.cargar(this.areaTalento, this.eventoModel, this.tipoEvento, this.tipoPrograma, this.formIndividualModel.getRawValue());\n        }\n      },\n      error: err => {\n        throw new Error(err);\n      }\n    });\n  }\n\n  async cargarCampos() {\n\n    let datoorganizacionDTO = new DatoorganizacionModel();\n    datoorganizacionDTO.llaveBase = this.eventoModel.tipoEvento;\n    datoorganizacionDTO.origen = this.bienestarPipe.ORIGEN_BI;\n    datoorganizacionDTO.tabla = this.bienestarPipe.TABLA_TIPOEVENTO;\n\n    let objFiltroDatoOrg = new GeneralModel('DatoorganizacionDTO', null, false, datoorganizacionDTO);\n    let listaDatoOrganizacion = await this.generalService.queryForList(objFiltroDatoOrg).toPromise();\n\n    for (let dato of listaDatoOrganizacion) {\n      if (dato.campo == this.bienestarPipe.DISCIPLINA) {\n        this.mostrarDisciplina = true;\n      } else if (dato.campo == this.bienestarPipe.MODALIDAD) {\n        this.mostrarModalidad = true;\n      } else if (dato.campo == this.bienestarPipe.CAMPO_EMPRESA) {\n        this.mostrarEmpresa = true;\n      } else if (dato.campo == this.bienestarPipe.CAMPO_UNIDAD) {\n        this.mostrarUnidad = true;\n      }\n    }\n  }\n\n  regresarPrincipal() {\n    this.regresarIndividual.emit();\n  }\n\n  cargarAccionesBoton() {\n\n    this.itemsBotonAcciones = [\n      {\n        label: this.translateService.instant('link_actualizar'), icon: 'glyphicons glyphicons-refresh',\n        visible: this.controlFuncionService.getControlFuncionalidad('evebie:nuevo') && this.cambiarDatos,\n        command:\n          (event) => {\n            this.guardarParticipanteIndividual();\n          }\n      },\n      {\n        label: this.translateService.instant('link_eliminar'), icon: 'glyphicons glyphicons-bin',\n        visible: (this.controlFuncionService.getControlFuncionalidad('evebie:eliminar') && !this.nuevo && this.cambiarDatos && this.isFuncional()),\n        command:\n          (event) => {\n            this.eliminarParticipanteIndividual();\n          }\n      },\n      {\n        label: this.translateService.instant('link_cancelar'), icon: 'glyphicons glyphicons-remove',\n        visible: !this.nuevo && this.cambiarDatos,\n        command:\n          (event) => {\n            this.cancelarCambiarDatos();\n          }\n      },\n    ]\n  }\n\n  isDeshabilitarCampo(campo) : boolean{\n    this.formIndividualModel.get(campo).disable();\n    return false;\n  }\n\n  isDeshabilitarPariente() : boolean{\n    if(this.encuesta || !this.cambiarDatos){\n      this.formIndividualModel.get('hojaPariente').disable();\n      return true;\n    }else{\n      this.formIndividualModel.get('hojaPariente').enable();\n      return false;\n    }\n  }\n\n  isDeshabilitarCampoValPos(campo) : boolean{\n    \n    if(this.encuesta || !this.cambiarDatos){\n      this.formIndividualModel.get(campo).disable();\n    }else{\n      this.formIndividualModel.get(campo).enable();\n    }\n\n    return false;\n  }\n\n}\n","<!-- <p-confirmPopup key=\"eliminarParticipanteIndividual\"></p-confirmPopup> -->\n<p-confirmDialog #cd key=\"eliminarParticipanteIndividual\" [header]=\"'confirmacion' | translate\">\n    <ng-template pTemplate=\"footer\">\n        <div class=\"mt-3\">\n            <button type=\"button\" class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\"\n                pButton icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n            <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                (click)=\"cd.accept()\"></button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n\n<div id=\"id_detalle_individual_evento\">\n\n    <div class=\"flex justify-content-between align-items-start align-items-center mb-2\">\n\n        <h4 class=\"mb-0 text-xl\">{{'detalle' | translate}} {{'individual' | translate}}</h4>\n\n        <button pButton pRipple (click)=\"regresarPrincipal()\"\n            [label]=\"isMostrarDetalleEvento ? ('regresar' | translate) : ('listado' | translate) + ' ' + ('individual' | translate)\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"></button>\n    </div>\n\n    <!-- Campos Evento se muestra si esta en convocatoria-->\n    <div class=\"card\" *ngIf=\"isMostrarDetalleEvento\">\n\n        <div class=\"p-fluid p-formgrid grid mt-3\">\n            <!-- Areas -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_areas_bienestar\" [ngModel]=\"areaTalento.descripcion\" disabled=\"true\"\n                        [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_areas_bienestar\">{{'areasbienestar' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Programas -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_programa_areas\" [ngModel]=\"tipoPrograma.descripcion\" disabled=\"true\"\n                        [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_program_areas\">{{'programaareas' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Tipo Evento -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_tipo_evento\" [ngModel]=\"tipoEvento.descripcion\" disabled\n                        [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_tipo_evento\">{{'tipoevento' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Número -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_numero_de_evento\" [ngModel]=\"eventoModel.numero\" name=\"numero\" disabled>\n                    <label for=\"id_numero_de_evento\">{{'numerodeevento' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Nombre -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_numero_de_evento\" [ngModel]=\"eventoModel.nombre\" disabled name=\"nombre\">\n                    <label for=\"id_numero_de_evento\">{{'nombre' | translate}} *</label>\n                </span>\n            </div>\n\n            <!-- Estado -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_estado\" [options]=\"estados\" optionLabel=\"nombre\" [disabled]=\"true\"\n                        optionValue=\"codigo\" [autoDisplayFirst]=\"false\" [ngModel]=\"eventoModel.estado\" name=\"estado\">\n                    </p-dropdown>\n                    <label for=\"id_pariente\">{{'estado' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Inicial Desarrollo  -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-calendar id=\"inicialdesarrollo\" [ngModel]=\"eventoModel.fechaInicial\" name=\"fechaInicial\"\n                        dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" [disabled]=\"true\"></p-calendar>\n                    <label for=\"inicialdesarrollo\">{{'inicialdesarrollo' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Final Desarrollo  -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-calendar id=\"fechaFinal\" [ngModel]=\"eventoModel.fechaFinal\" dateFormat=\"dd/mm/yy\"\n                        [showIcon]=\"true\" [disabled]=\"true\" name=\"fechaFinal\"></p-calendar>\n                    <label for=\"fechaFinal\">{{'finaldesarrollo' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Disciplina -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"mostrarDisciplina\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_disciplina\" [options]=\"disciplinas\" optionLabel=\"label\" optionValue=\"key\"\n                        [autoDisplayFirst]=\"false\" [ngModel]=\"eventoModel.disciplina\" [disabled]=\"true\"\n                        name=\"disciplina\"></p-dropdown>\n                    <label for=\"id_disciplina\">{{'disciplina' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Modalidad -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"mostrarModalidad\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_modalidades\" [options]=\"modalidades\" optionLabel=\"label\" optionValue=\"key\"\n                        [autoDisplayFirst]=\"false\" [ngModel]=\"eventoModel.modalidad\" [disabled]=\"true\"\n                        name=\"modalidad\"></p-dropdown>\n                    <label for=\"id_modalidades\">{{'modalidad' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Empresa -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"mostrarEmpresa\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_empresa\" [options]=\"listaEmpresa\" optionLabel=\"label\" optionValue=\"key\"\n                        [autoDisplayFirst]=\"false\" [ngModel]=\"eventoModel.empresa\" name=\"empresa\"\n                        [disabled]=\"true\"></p-dropdown>\n                    <label for=\"id_empresa\">{{'empresa' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Unidad -->\n            <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"mostrarUnidad\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_unidad\" [options]=\"unidades\" optionLabel=\"label\" optionValue=\"key\"\n                        [autoDisplayFirst]=\"false\" [ngModel]=\"eventoModel.unidad\" name=\"unidad\"\n                        [disabled]=\"true\"></p-dropdown>\n                    <label for=\"id_unidad\">{{'unidad' | translate}} {{requeridoUnidad ? ' *' : ''}}</label>\n                </span>\n            </div>\n\n        </div>\n    </div>\n\n\n    <div class=\"card\">\n\n        <form [formGroup]=\"formIndividualModel\" #formulario=\"ngForm\" class=\"mt-3\">\n\n            <!-- campos Momento-->\n            <div class=\"p-fluid p-formgrid grid\">\n\n                <!-- Nombre -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n\n                    <app-input-helper-filtro-empleado\n                        [label]=\"nombreCompleto != null ? formIndividualModel.get('cedula').value + ' - ' + nombreCompleto : ''\"\n                        (onSelected)=\"onSelectFiltroEmpleado($event)\" formControlName=\"cedula\"\n                        [booleano]=\"nombreCompleto == null || nombreCompleto == ''\"\n                        [labelInput]=\"this.translateService.instant('nombrepersona') +' *'\"\n                        [readonly]=\"!isFuncional() || (encuesta || !cambiarDatos)\" [required]=\"true\" [mostrarX]=\"false\"\n                        [seleccionarMetodo]=\"'buscarFiltroDinamico'\" [filtro]=\"filtroE.filtro\">\n                    </app-input-helper-filtro-empleado>\n                </div>\n\n                <!-- Momento -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"tipoEvento.unicaMultiple == 'M'\">\n                    <!-- <div class=\"field col-12 md:col-6 lg:col-3\"> -->\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_momento_evento\" [options]=\"listaMomentoEventos\" optionLabel=\"label\"\n                            optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"momentoEvento\"\n                            [required]=\"tipoEvento.unicaMultiple == 'M'\"\n                            [disabled]=\"encuesta || !cambiarDatos\"></p-dropdown>\n                        <label for=\"id_momento_evento\">{{'momentoevento' | translate}} *</label>\n                    </span>\n                </div>\n\n                <!-- Estado -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"this.listaEstados.length > 0\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_estado\" [options]=\"listaEstados\" optionLabel=\"nombre\" [required]=\"true\"\n                            optionValue=\"codigo\" [autoDisplayFirst]=\"false\" formControlName=\"estado\"\n                            [disabled]=\"isDeshabilitarCampo('estado')\"></p-dropdown>\n                        <label for=\"id_estado\">{{'estado' | translate}} *</label>\n                    </span>\n                </div>\n\n                <!-- Empresa -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_empresa\" [(ngModel)]=\"nombreEmpresa\"\n                            [ngModelOptions]=\"{standalone: true}\" disabled>\n                        <label for=\"id_empresa\">{{'empresa' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Unidad -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_unidad\" [(ngModel)]=\"unidadNombreOcupa\"\n                            [ngModelOptions]=\"{standalone: true}\" disabled>\n                        <label for=\"id_unidad\">{{'unidad' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Valor Persona Apagar -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isFuncional()\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_valor_persona_apagar\" formControlName=\"costo\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 30);\"\n                            [disabled]=\"isDeshabilitarCampoValPos('costo')\">\n                        <label for=\"id_valor_persona_apagar\">{{'valorpersonaapagar' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Posicion -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isFuncional()\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"id_posicion\" formControlName=\"posicion\" maxlength=\"5\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                            [readonly]=\"isDeshabilitarCampoValPos('posicion')\">\n                        <label for=\"id_posicion\">{{'posicion' | translate}}</label>\n                    </span>\n                </div>\n\n                <!-- Inicial Inscribe  -->\n                <div class=\"field col-12 md:col-6 lg:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar id=\"fecha_inscripcion\" formControlName=\"inscripcion\" dateFormat=\"dd/mm/yy\"\n                            [showIcon]=\"true\" [disabled]=\"!isFuncional() || (encuesta || !cambiarDatos)\"></p-calendar>\n                        <label for=\"fecha_inscripcion\">{{'fechainscripcion' | translate}}</label>\n                    </span>\n                </div>\n            \n                <!-- Pariente -->\n                <div class=\"field col-12 md:col-6 lg:col-3\" *ngIf=\"isMostrarPariente()\">\n                    <span class=\" p-float-label\">\n                    <p-dropdown inputId=\"id_hoja_pariente\" [options]=\"listaPariente\" optionLabel=\"label\"\n                        optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"hojaPariente\" [required]=\"true\"\n                        [disabled]=\"isDeshabilitarPariente()\"></p-dropdown>\n                    <label for=\"id_hoja_pariente\">{{'pariente' | translate}} *</label>\n                    </span>\n                </div>\n                \n                <!-- ENCUESTA -->\n            </div>\n        </form>\n\n        <!-- BOTONES -->\n        <div class=\"flex justify-content-end mb-2\" *ngIf=\"!encuesta\">\n\n            <!--GUARDAR-->\n            @if(nuevo){\n            <button pButton pRipple class=\"mr-2 p-button p-button-raised\" [icon]=\"'glyphicons glyphicons-floppy-save'\"\n                *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:nuevo') && cambiarDatos\"\n                [label]=\"('link_guardar' | translate)\" (click)=\"guardarParticipanteIndividual()\">\n            </button>\n            }\n\n            <!--CAMBIAR DATO-->\n            <button pButton pRipple class=\"mr-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-random\"\n                *ngIf=\"controlFuncionService.getControlFuncionalidad('evebie:nuevo') && !cambiarDatos && isFuncional()\"\n                label=\"{{'cambiardatos' | translate}}\" (click)=\"cambiardato()\">\n            </button>\n\n            <div class=\"splitbuttonOscuro\" *ngIf=\"!this.nuevo && this.cambiarDatos\">\n                <!-- Botón Acciones-->\n                <p-splitButton label=\"Acciones\" icon=\"glyphicons glyphicons-list\"\n                    [model]=\"itemsBotonAcciones\"></p-splitButton>\n            </div>\n\n\n            <!--LEGALIZAR-->\n            <button pButton pRipple class=\"mr-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-check\"\n                *ngIf=\"isMostrarBotonesLegalizacion()\" label=\"{{'legalizar' | translate}}\"\n                (click)=\"legalizarParticipanteIndividual()\">\n            </button>\n\n            <!--NO LEGALIZAR-->\n            <button pButton pRipple class=\"p-button-outlined\" icon=\"glyphicons glyphicons-remove\"\n                *ngIf=\"isMostrarBotonesLegalizacion()\" label=\"{{'nolegalizar' | translate}}\"\n                (click)=\"noLegalizarParticipanteIndividual()\">\n            </button>\n        </div>\n    </div>\n</div>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { RequisitoModel } from '../../talento/models/RequisitoModel';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class requisitoService {\n\n    listProcedure(objetoFiltro: GeneralModel) {\n        throw new Error('Method not implemented.');\n      }\n    \n      constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsServices: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n      }\n    \n      private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          // A client-side or network error occurred. Handle it accordingly.\n          console.error('An error occurred:', error.error);\n        } else {\n          // The backend returned an unsuccessful response code.\n          // The response body may contain clues as to what went wrong.\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n    sentenciaSql(parametro : RequisitoModel[]): Observable<any> {\n      let form = new FormData\n      form.append('listaCampo',JSON.stringify(parametro));\n        return this.httpClient.post<any>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/senteciaSql`,form).pipe(\n            catchError(this.handleError)\n          );\n    }\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { AuthService, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { EventoModel } from '../../../../capacitacion/models/EventoModel';\nimport { BienestarPipe } from '../../../pipes/bienestar.pipe';\nimport { RequisitoModel } from '../../../../talento/models/RequisitoModel';\nimport { FiltroEmpleadoFamiliaModel } from '../../../models/FiltroEmpleadoFamiliaModel';\nimport { TipoEventoModel } from '../../../../capacitacion/models/TipoEventoModel';\nimport { requisitoService } from '../../../../compensacion/services/requisito.service';\nimport { BienestarService } from '../../../services/bienestar.service';\nimport { CodigoBaseTalentoModel } from '../../../models/CodigoBaseTalentoModel';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { EventoParticipaModel } from '../../../models/EventoParticipaModel';\nimport { DetalleIndividualEventoComponent } from '../../evento-bienestar/detalle-individual-evento/detalle-individual-evento.component';\nimport { firstValueFrom, forkJoin } from 'rxjs';\nimport { DetalleGrupoEventoComponent } from '../../evento-bienestar/detalle-grupo-evento/detalle-grupo-evento.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FormsModule } from '@angular/forms';\nimport { EditorModule } from 'primeng/editor';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CommonModule, JsonPipe, NgFor, NgIf } from '@angular/common';\n\n@Component({\n  selector: 'app-listado-convocatoria-evento',\n  templateUrl: './listado-convocatoria-evento.component.html',\n  styleUrls: ['./listado-convocatoria-evento.component.scss'],\n  standalone: true,\n  imports: [NgIf,\n    NgFor,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    EditorModule,\n    FormsModule,\n    ButtonDirective,\n    Ripple,\n    DetalleIndividualEventoComponent,\n    DetalleGrupoEventoComponent,\n    TranslateModule,\n    JsonPipe,\n    CommonModule],\n})\nexport class ListadoConvocatoriaEventoComponent implements OnInit {\n\n  @ViewChild(DetalleIndividualEventoComponent) detalleIndividualEventoComponent;\n  @ViewChild(DetalleGrupoEventoComponent) detalleGrupoEventoComponent;\n\n  listaConvocatoriaEvento: EventoModel[] = [];\n  filtro: EventoModel;\n  filters = [];\n  visualizar: string = '';\n  seleccionado: any;\n  htmlSeguroItems: SafeHtml[];\n\n  constructor(private generalService: GeneralService, private menuService: MenuService, private authService: AuthService,\n    private saraAplicacionServices: SaraAplicacionService, private toastService: ToastService, private bienestarPipe: BienestarPipe,\n    private requisitoService: requisitoService, public sanitizer: DomSanitizer, private bienestarService: BienestarService,\n    public utilsService: UtilsService, private empleadoService: EmpleadoService) { }\n\n  async ngOnInit(): Promise<void> {\n    this.visualizar = '';\n    this.listaConvocatoriaEvento = [];\n    this.htmlSeguroItems = [];\n    this.cargarMigadePan();\n    await this.cargarListado();\n    await this.consultarArchivoPublicacion();\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cargarMigadePan() {\n    this.menuService.setBreadcrumb([{ label: 'Listado Convocatoria' }]);\n  }\n\n  async cargarListado() {\n\n    let filtroBeneficio = new EventoModel();\n    filtroBeneficio.consultarPublicacion = new Date();\n    filtroBeneficio.origen = this.bienestarPipe.ORIGEN_B;\n\n    let objetoFiltro: GeneralModel = new GeneralModel('EventoDTO', null, false, filtroBeneficio);\n    let listadoConsultaConvocatoria = await this.generalService.queryForList(objetoFiltro).toPromise();\n\n    if (this.isCliente()) {\n      this.listaConvocatoriaEvento = await this.validarCondicionDerecho(listadoConsultaConvocatoria);\n      return\n    }\n\n    this.listaConvocatoriaEvento = listadoConsultaConvocatoria;\n  }\n\n  async consultarArchivoPublicacion() {\n    if (this.listaConvocatoriaEvento.length > 0) {\n      this.listaConvocatoriaEvento.forEach(async eventoDTO => {\n        if (eventoDTO.htmlPublicacion) {\n          eventoDTO.htmlPublicacion = await this.bienestarService.consultarArchivoPublicacion(eventoDTO.htmlPublicacion).toPromise();\n          eventoDTO.htmlPublicacion = this.sanitizeHtml(eventoDTO.htmlPublicacion);\n        }\n      });\n\n    }\n  }\n\n  async validarCondicionDerecho(listaEvento: EventoModel[]): Promise<EventoModel[]> {\n\n    let retorno: EventoModel[] = [];\n    let existe = 0;\n\n    for (let item of listaEvento) {\n      const filReq = new RequisitoModel();\n      filReq.llaveBase = item.llaveTabla;\n      const objFiltro = new GeneralModel('RequisitoDTO', null, false, filReq);\n\n      const listaCamposWhereSeleccionados = await this.generalService.queryForList(objFiltro).toPromise();\n\n      let whereValidacion = null;\n      if (listaCamposWhereSeleccionados.length > 0) {\n        whereValidacion = await this.requisitoService.sentenciaSql(listaCamposWhereSeleccionados).toPromise();\n      }\n\n      let tipoEventoPaginador = new TipoEventoModel();\n      tipoEventoPaginador.llave = item.tipoEvento;\n      const objFiltroTipoEvento = new GeneralModel('TipoEventoDTO', null, false, tipoEventoPaginador);\n      const tipoEventoPaginadorResponse = await this.generalService.queryForObject(objFiltroTipoEvento).toPromise();\n\n      let filtroEmpleadoFamiliaDTO = new FiltroEmpleadoFamiliaModel();\n      filtroEmpleadoFamiliaDTO.filtro = whereValidacion?.data;\n      filtroEmpleadoFamiliaDTO.hojaVida = await this.saraAplicacionServices.getCedula();\n\n      if (tipoEventoPaginadorResponse != null && this.bienestarPipe.SOLICITANTE == tipoEventoPaginadorResponse.participante) {\n        const objFiltroEmpleadoFam = new GeneralModel('FiltroEmpleadoFamiliaDTO', \"FiltroEmpleadoFamilia.cantidadRegistrosFiltroEmpleado\", false, filtroEmpleadoFamiliaDTO);\n        existe = await this.generalService.cantidadRegistros(objFiltroEmpleadoFam).toPromise();\n      } else if (tipoEventoPaginadorResponse != null && this.bienestarPipe.SOLICITANTE_SECCION == tipoEventoPaginadorResponse.participante) {\n        const objFiltroEmpleadoFam = new GeneralModel('FiltroEmpleadoFamiliaDTO', \"FiltroEmpleadoFamilia.cantidadRegistrosFiltroEmpleadoSeccionIns\", false, filtroEmpleadoFamiliaDTO);\n        existe = await this.generalService.cantidadRegistros(objFiltroEmpleadoFam).toPromise();\n      } else if (tipoEventoPaginadorResponse != null && this.bienestarPipe.SECCION == tipoEventoPaginadorResponse.participante) {\n        const objFiltroEmpleadoFam = new GeneralModel('FiltroEmpleadoFamiliaDTO', null, false, filtroEmpleadoFamiliaDTO);\n        existe = await this.generalService.cantidadRegistros(objFiltroEmpleadoFam).toPromise();\n      }\n\n      if (existe === 0) {\n        continue;\n      }\n\n      retorno.push({ ...item });\n    }\n    return retorno;\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  async inscripcion(item) {\n\n    let evento: EventoModel = item;\n\n    let areaTalento = new CodigoBaseTalentoModel();\n\n    //Busca el tipo de programa \n    let tipoPrograma = new CodigoBaseTalentoModel();\n    tipoPrograma.llaveTabla = evento.programa;\n\n    let objFiltroTipoP = new GeneralModel('CodigoBaseTalentoDTO', null, false, tipoPrograma);\n    tipoPrograma = await this.generalService.queryForObject(objFiltroTipoP).toPromise();\n\n    if (tipoPrograma.areaTalento != null) {\n      areaTalento.llaveTabla = tipoPrograma.areaTalento;\n      let objFiltroAreaT = new GeneralModel('CodigoBaseTalentoDTO', null, false, areaTalento);\n      areaTalento = await this.generalService.queryForObject(objFiltroAreaT).toPromise();\n    }\n\n    //Busca el tipo de evento\n    let tipoEvento = new TipoEventoModel();\n\n    if (evento.tipoEvento != null) {\n\n      tipoEvento = new TipoEventoModel();\n      tipoEvento.llave = evento.tipoEvento;\n\n      let objFiltroTipoEvento = new GeneralModel('TipoEventoDTO', null, false, tipoEvento);\n      tipoEvento = await this.generalService.queryForObject(objFiltroTipoEvento).toPromise();\n    }\n\n    if (tipoEvento == null) {\n      this.toastService.showWarning(\"No existe un tipo evento definido para este evento.\");\n      return null;\n    }\n\n    if (this.bienestarPipe.PORGRUPOS == tipoEvento.tipoParticipante) {\n\n      let empleado: EmpleadoModel = await this.empleadoService.obtenerPorCedulaActivoSinEmpresa(await this.saraAplicacionServices.getCedula());\n\n      if (empleado == null) {\n        this.toastService.showWarning(\"No existe ningún empleado activo.\");\n        return null;\n      }\n\n      //Busca si cedula esta en un grupo, si esta carga la informacion del grupo. Si No, habilita para que se cree un nuevo grupo\n      let grupo = new EventoParticipaModel();\n      grupo = await this.cargarGrupo(evento, empleado);\n\n      this.visualizar = 'detalleGrupo';\n\n      const sleep = (m) => new Promise((r) => setTimeout(r, m));\n      await sleep(50);\n\n      this.detalleGrupoEventoComponent.cargar(areaTalento, evento, tipoEvento, tipoPrograma, grupo);\n\n    } else {\n\n      this.visualizar = 'detalleIndividual';\n\n      const sleep = (m) => new Promise((r) => setTimeout(r, m));\n      await sleep(50);\n\n      this.detalleIndividualEventoComponent.cargar(areaTalento, evento, tipoEvento, tipoPrograma, null);\n\n    }\n\n    return null;\n  }\n\n  /** Busca si la cedula ya tiene un grupo asociado y lo carga, si no tiene grupo asociado crea uno nuevo*/\n  async cargarGrupo(evento: EventoModel, empleado: EmpleadoModel): Promise<EventoParticipaModel> {\n\n    if (this.isFuncional()) {\n      return new EventoParticipaModel();\n    }\n\n    let grupo = new EventoParticipaModel();\n    grupo.evento = evento.llaveTabla;\n    grupo.delegado = empleado.cedula;\n\n    if (await this.generalService.cantidadRegistros(new GeneralModel('EventoParticipaDTO', null, false, grupo)).toPromise() < 1) {\n      grupo.estado = this.bienestarPipe.SOLICITADO;\n      grupo.inscripcion = new Date();\n      return grupo;\n    }\n    let objFiltroGrupo = new GeneralModel('EventoParticipaDTO', null, false, grupo);\n    let eventoParticipa = await  firstValueFrom(this.generalService.queryForList(objFiltroGrupo));\n    return eventoParticipa[0];\n  }\n\n  isFuncional(): boolean {\n    return !this.isCliente();\n  }\n\n  regresarIndividual() {\n    this.visualizar = '';\n    this.ngOnInit();\n  }\n\n  regresarGrupo() {\n    this.visualizar = '';\n    this.ngOnInit();\n  }\n\n  sanitizeHtml(html: string) {\n\n    // Expresión regular para detectar <img src=\"data:image/png;base64,{{...}}\">\n    const imgBase64Pattern = /<img[^>]+src=\"data:image\\/[^;]+;base64,\\{\\{.*?\\}\\}\"[^>]*>/g;\n\n    // Expresión regular para detectar <img src=\"...repodoc/recursos...\">\n    const imgResourcePattern = /<img[^>]+src=\"[^\"]*repodoc\\/recursos[^\"]*\"[^>]*>/g;\n\n    // Reemplazar imágenes que cumplen con las condiciones especificadas\n    let sanitizedHtml = html.replace(imgBase64Pattern, '<img $1src=\"\" title=\"Imagen no encontrada\"$2>');\n    sanitizedHtml = sanitizedHtml.replace(imgResourcePattern, '<img $1src=\"\" title=\"Imagen no encontrada\"$2>');\n\n    return sanitizedHtml;\n  }\n\n}\n","<div id=\"id_listado_convocatoria_evento\" *ngIf=\"visualizar == ''\">\n\n    @if(!isCliente()){\n    <h1 class=\"mb-3\">{{'convocatoria' | translate}}</h1>\n    }\n\n    <p-table #tablaGeneral id=\"tabla_listado_convocatoria_evento\" [value]=\"listaConvocatoriaEvento\"\n        responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listaConvocatoriaEvento.length > 10\"\n        [totalRecords]=\"listaConvocatoriaEvento.length\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        styleClass=\"p-datatable-gridlines\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        dataKey=\"llaveTabla\" rowGroupMode=\"subheader\" groupRowsBy=\"llaveTabla\" [scrollable]=\"true\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'detalle' | translate}} {{'convocatoria' | translate}}</th>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-item let-i=\"index\">\n            <tr>\n                <td td class=\"block initial\">\n\n                    <div [innerHTML]=\"this.sanitizer.bypassSecurityTrustHtml(item.htmlPublicacion)\"></div>\n\n                    <div class=\"text-center p-5 block\">\n                        <button style=\"min-width: 400px;\" pButton pRipple type=\"button\" (click)=\"inscripcion(item)\"\n                            label=\"{{'solicitar' | translate}}\" icon=\"\" class=\"p-button-raised font-semibold\"></button>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n\n<!-- Detalle Individual -->\n<div *ngIf=\"visualizar =='detalleIndividual'\">\n    <app-detalle-individual-evento [isMostrarDetalleEvento]=\"true\"\n        (regresarIndividual)=\"regresarIndividual()\"></app-detalle-individual-evento>\n</div>\n\n<!-- Detalle Grupo -->\n<div *ngIf=\"visualizar =='detalleGrupo'\">\n    <app-detalle-grupo-evento (regresarGrupo)=\"regresarGrupo()\"></app-detalle-grupo-evento>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class BeneficioEmpleadoModel extends UnionModel {\n\n\t\n\tplanInversion: string;\n\tsucursal: string;\n\tidentifica: number;\n\tgrupoFamiliar: number;\n\tasignacion: Date;\n\tcantidad: number;\n\tcosto: number;\n\tcostoIncurre: number;\n\torganizacion: number;\n\tentidadEnmpleado: string;\n\tapellidos: string;\n\tfechaNacimiento: Date;\n\ttipoDocumento: string;\n\tdescripcionTipoDocumento: string;\n\tdocumento: string;\n\ttercero: string;\n\thasta: Date;\n\ttipo: string;\n\tempresa: number;\n\tnombreEmpresa: string;\n\tcargo: string;\n\tcargoDescripcion: string;\n\tunidad: string;\n\tunidadNombre: string;\n\ttipoUnidad: string;\n\tcontrato: number;\n\testado: string;\n\tdescripcion: string;\n\tcostoEmpresa: number;\n\tnumeroCuota: number;\n\tterceroTalento: string;\n\tinicioDescuento: Date;\n\testadoDescuento: string;\n\tnivelAcademico: string;\n\ttipoCurso: string;\n\tperiodoCurso: string;\n\tduracion: number;\n\thorario: string;\n\tsuceso: Date;\n\ttitulo: string;\n\tlugar: string;\n\treferencia: string;\n\tdesembolso: Date;\n\tinteres: number;\n\tperiodoBeneficio: string;\n\ttarifa: string;\n\tinicial: Date;\n\tfechaFinal: Date;\n\tbeneficioLlave: string;\n\tnombreCompleto: string;\n\thojaPariente: string;\n\tafiliados: string;\n\ttieneHoja: string;\n\tdescripcionBeneficio: string;\n\tdescripcionTipo: string;\n\ttipoBeneficio: string;\n\tnombreBeneficiario: string;\n\tcedulaPariente: number;\n\ttipoCosto: string;\n\treferenciaExterna: string;\n\tsucursalReferencia: string;\n\ttipoReferencia: string;\n\tbeneficiario: number;\n\tciclo: number;\n\tvalorTipo: number;\n\tvalor: number;\n\tentidadAuxiliar: string;\n\tcodigoTipoCosto: string;\n\tcodigoPlanInversion: string;\n\testadoAnterior: string;\n\tnombreBeneficiarioExt: string;\n\tplanInversionCosto: string;\n\tllaveBase: string;\n\tvalor2: number;\n\tvalor3: number;\n\tvalor4: number;\n\tdescuentoEsp: number;\n\tdescuentoComercial2: number;\n\testadoEps: string;\n\tgrupoBasicoFamilia: string;\n\trelacionCosto: string;\n\tentidad: string;\n\tcadena1: string;\n\tcadena2: string;\n\tcadena3: string;\n\tcadena4: string;\n\tcadena5: string;\n\tcadena6: string;\n\tcadena7: string;\n\tlista1: string;\n\tlista2: string;\n\tlista3: string;\n\tlista4: string;\n\tlista5: string;\n\ttexto1: string;\n\tentero1: number;\n\tentero2: number;\n\tentero3: number;\n\tentero4: number;\n\tentero5: number;\n\tentero6: number;\n\tubicacionciu: string;\n\tnombreCiudad: string;\n\tinstitucion: number;\n\tnombreInstitucion: string;\n\tmodalidad: string;\n\tfiltroFecha: Date;\n\tnovedad: string;\n\tmensaje: string;\n\tdepende: string;\n\tmultipleFormalizacion: string;\n\tdiasNoCondonacion: number;\n\tfechaDesdeCondonacion: Date;\n\tvalorNoCondonacion: number;\n\tdescripcionTipoNovedad: string;\n\tdescripcionConcepto: string;\n\tseguimiento: string;\t\n\testadoSeguimiento: string;\n\tdescripcionEstadoSeguimiento: string;\n\tdocumentoHoja: string;\n\tcantidadCampo: number;\n\testadoMasivo: string;\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class TipoBeneficioModel extends UnionModel {\n\n\ttipoBeneficio: number;\n\tdescripcion: string;\n\tseccion: string;\n\tformaRecaudo: string;\n\tdiasGracia: number;\n\ttipoCondonacion: string;\n\tnumeroCuotas: number;\n\tformaDesembolso: string;\n\ttarifas: string;\n\tperiodo: string;\n\ttipoInversion: string;\n\templeado: string;\n\tparentesco2: string;\n\tparentesco3: string;\n\tparentesco4: string;\n\tparentesco5: string;\n\tparentesco6: string;\n\ttipoEntidad: string;\n\tcarpetaPublica: string;\n\tcarpetaEntidad: string;\n\torigen: string;\n\tdescripcionSeccion: string;\n\tcedula: number;\n\tfiltro: string;\n\tfiltroHoja: string;\n\thijoPadre: string;\n\tdepende: string;\n\tcarpetaCosto: string;\n\tnivelTipo: string;\n\tcontrolFechaAsignacion: string;\n\tconvenioContrato: string;\n\trequiereFormalizar: string;\n\tformula: number;\n\tnovedad: string;\n\torden: number;\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class BeneficioTipoCostoModel extends UnionModel {\n\n\tbeneficioEmple: String;\n\ttipoCosto: String;\n\tcosto: number;\n\tfecha: Date;\n\t\t\n}","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { BeneficioEmpleadoModel } from '../models/BeneficioEmpleadoModel';\nimport { MomentoDocumentoModel } from '../../talento/models/MomentoDocumentoModel';\nimport { InformacionArchivoModel } from '../models/InformacionArchivoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BeneficioService {\n   \n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsServices: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  traerDocumentoBeneficioEmpleado(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/traerDocumentoBeneficioEmpleado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarDocumentoTemporal(archivo: File): Observable<any> {\n    let formData = new FormData();\n    formData.append(\"archivo\", archivo);\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cargarDocumentoTemporal`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarDocumentoBeneficiarioHoja(beneficioEmpleado: BeneficioEmpleadoModel, momentoDocumentoModel: MomentoDocumentoModel, informacionArchivo: InformacionArchivoModel): Observable<any> {\n\n    let formData = new FormData();\n    formData.append(\"beneficioEmpleado\", JSON.stringify(beneficioEmpleado));\n    formData.append(\"momentoDocumentoModel\", JSON.stringify(momentoDocumentoModel));\n    formData.append(\"file\", String(informacionArchivo.file));\n    informacionArchivo.file = null;\n    formData.append(\"informacionArchivo\", JSON.stringify(informacionArchivo));\n\n    const url = `${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cargarDocumentoBeneficiarioHoja`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarFormularioDinamicoBeneficiario(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cargarFormularioDinamicoBeneficiario`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarFormularioMultipleFormalizacion(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cargarFormularioMultipleFormalizacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  validarFormularioMultipleFormalizacion(general): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/validarFormularioMultipleFormalizacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerDocumentoMultipleFormalizacion(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/traerDocumentoMultipleFormalizacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarBeneficioEmpleado (general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/actualizarBeneficioEmpleado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarFormularioDinamicoBeneficiarioLogica(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cargarFormularioDinamicoBeneficiarioLogica`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarBeneficioEmpleado(general: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/eliminarBeneficioEmpleado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarNovedadesVariablesConceptos(general: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cargarNovedadesVariablesConceptos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cambioPlanInversion(general: ParametrosGeneralModel) {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cambioPlanInversion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarArchivos(general: ParametrosGeneralModel) {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/eliminarArchivos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarCamposAnotacionBeneficio(dato: string): Observable<any> {\n\n    let formData = new FormData();\n    formData.append(\"parametro\", dato);\n\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/beneficio/cargarCamposAnotacionBeneficio`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  \n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ParametrosGeneralModel, ToastService, UtilsService, } from 'general-library-union';\nimport { BeneficioEmpleadoModel } from '../../models/BeneficioEmpleadoModel';\nimport { BeneficioModel } from '../../models/BeneficioModel';\nimport { TipoBeneficioModel } from '../../models/TipoBeneficioModel';\nimport { BeneficioService } from '../../services/beneficio.service';\nimport { CampoFormularioModel } from 'general-library-union';\n\nimport { PopupsDinamicosPipe } from '../../../../shared/pipes/popups-dinamicos.pipe';\nimport { MomentoDocumentoModel } from '../../../talento/models/MomentoDocumentoModel';\nimport { Constantes } from '../../../../shared//constantes/Constantes';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { InformacionArchivoModel } from '../../models/InformacionArchivoModel';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-input-helper-multiple-formalizacion',\n    templateUrl: './input-helper-multiple-formalizacion.component.html',\n    styleUrls: ['./input-helper-multiple-formalizacion.component.scss'],\n    standalone: true,\n    imports: [\n        ConfirmPopupModule,\n        DialogModule,\n        NgIf,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        ButtonDirective,\n        Ripple,\n        FileUploadModule,\n        TranslateModule,\n        GeneralPipe,\n        FormulariodinamicoComponent,\n    ],\n})\nexport class InputHelperMultipleFormalizacionComponent implements OnInit {\n\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n  @Input() showDialog: boolean = false;\n\n  beneficioModel: BeneficioModel;\n  beneficioEmpleadoModel: BeneficioEmpleadoModel;\n  beneficioXFormalizar: BeneficioEmpleadoModel;\n  tipoBeneficioModel: TipoBeneficioModel;\n  nuevo: boolean;\n  nombreFormulario: string; \n  camposFormulario: CampoFormularioModel[] = [];\n  isMensaje = false;\n  listaTipoDocumento: MomentoDocumentoModel[] = [];\n  cambiarDatos: boolean;\n  mostrarLista: boolean;\n  archivoSeleccionadoAnexo: File;\n  cargarPopup: boolean = false;\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService,\n    private beneficioService: BeneficioService, private popupsDinamicosPipe: PopupsDinamicosPipe, private toastService: ToastService,\n    private cargarArchivoServices: CargarArchivosService, private confirmationService: ConfirmationService, private utilService: UtilsService) { }\n\n\n  ngOnInit(): void {\n\n    this.beneficioModel = new BeneficioModel();\n    this.beneficioEmpleadoModel = new BeneficioEmpleadoModel();\n    this.beneficioXFormalizar = new BeneficioEmpleadoModel();\n    this.tipoBeneficioModel = new TipoBeneficioModel();\n\n  }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.cargarPopup = false;\n    this.regresar.emit(false);\n  }\n\n  async verNuevo(beneficioEmpleadoDTO: BeneficioEmpleadoModel, beneficioDTO: BeneficioModel, cambiarDatos: boolean, tipoBeneficioDTO: TipoBeneficioModel) {\n\n    this.beneficioModel = beneficioDTO;\n    this.beneficioEmpleadoModel = beneficioEmpleadoDTO;\n    this.tipoBeneficioModel = tipoBeneficioDTO;\n    this.cambiarDatos = cambiarDatos;\n\n    this.beneficioXFormalizar = new BeneficioEmpleadoModel();\n    this.beneficioXFormalizar.llaveTabla = this.utilService.generarLlave();\n    this.nuevo = true;\n    await this.cargarFormularioDinamicoMultipleFormalizacion();\n\n    this.cargarPopup = true;\n\n  }\n\n  async verDetalle(beneficioEmpleadoDTO: BeneficioEmpleadoModel, beneficioXFormalizar: BeneficioEmpleadoModel, beneficioDTO: BeneficioModel, cambiarDatos: boolean,\n    tipoBeneficioDTO: TipoBeneficioModel) {\n\n    this.beneficioModel = beneficioDTO;\n    this.beneficioEmpleadoModel = beneficioEmpleadoDTO;\n    this.beneficioXFormalizar = beneficioXFormalizar;\n    this.tipoBeneficioModel = tipoBeneficioDTO;\n    this.cambiarDatos = cambiarDatos;\n\n    this.nuevo = false;\n\n    await this.cargarFormularioDinamicoMultipleFormalizacion();\n\n    this.cargarPopup = true;\n\n  }\n\n  async cargarFormularioDinamicoMultipleFormalizacion() {\n\n    let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n      beneficioEmpleadoDTO: this.beneficioEmpleadoModel,\n      beneficioDTO: this.beneficioModel,\n      beneficioXFormalizar: this.beneficioXFormalizar,\n      cambiarDatos: this.cambiarDatos,\n      isNuevo: this.nuevo\n    });\n\n    let data = await this.beneficioService.cargarFormularioMultipleFormalizacion(parametroGeneral).toPromise();\n\n    this.camposFormulario = data?.listaCampos;\n    this.nombreFormulario = data?.formulario.grupos[0].nombre;\n    this.setValorCampos();\n\n    await this.cargarCumplido();\n  }\n\n  async setValorCampos() {\n\n    this.camposFormulario.forEach(element => {\n\n      if (typeof element.valor === \"string\") {\n        element.valor = element.valor\n      }\n\n      if (element.tipo === 'F') {\n\n        element.valor = element.valor ? new Date(element.valor) : \"\";\n\n      } else if (element.tipo === 'H') {\n\n        if (element.valor) {\n\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';');\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 });\n          });\n\n          element.valor = listaValortemp\n        }\n\n      } else if (element.tipo === 'P') {\n\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(async pop => {\n\n          if (element.popup == pop.id) {\n\n            element.popupComponent = pop.popup;\n            //Este condición permite capturar la descripción del input-helper, según el componente inicializado.\n            element.propiedadesPopupComponent = {\n              llaveTipoInversionTipoBeneficio: element.campoReferencia,\n              readonly: true,\n              showDialog: false,\n              label: '',\n              labelInput: ''\n            }\n\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup);\n\n          }\n        });\n      }\n    });\n  }\n\n  async cargarCumplido() {\n\n    let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n      tipoBeneficioDTO: this.tipoBeneficioModel,\n      beneficioEmpleadoDTO: this.beneficioEmpleadoModel,\n      beneficioXFormalizar: this.beneficioXFormalizar\n    });\n\n    let data = await this.beneficioService.traerDocumentoMultipleFormalizacion(parametroGeneral).toPromise();\n\n    this.listaTipoDocumento = data ? data : [];\n\n    this.mostrarLista = this.listaTipoDocumento.length != 0;\n\n  }\n\n  async guardar() {\n        \n    var validarFormulario: boolean = this.formulario ? this.formulario.validar() : true;\n\n    if(!validarFormulario){\n      this.toastService.showError('Faltan campos obligatorios');\n      return;\n    }\n\n    if (!(await this.validarObligatoriedadDocumento())) {\n      this.toastService.showWarning(\"Debe cargar los documentos obligatorios\");\n      return;\n    }\n\n    if (this.nuevo) {\n\n      //agregar parametros a beneficioXFormalizar\n      this.camposFormulario.forEach(campo => {\n        this.beneficioXFormalizar[campo.campo] = campo.valor\n      });\n\n      //Crear\n      this.beneficioXFormalizar.depende = this.beneficioEmpleadoModel.llaveTabla;\n      this.beneficioXFormalizar.beneficioLlave = this.beneficioEmpleadoModel.beneficioLlave;\n\n      const objetoFiltro = {\n        nombreDTO: 'BeneficioEmpleadoDTO',\n        nombreConsulta: null,\n        seguridad: false,\n        objeto: this.beneficioXFormalizar,\n      };\n\n      this.generalService.crearRegistro(objetoFiltro).subscribe({\n        next: (data) => {\n          if (data != null) {\n            this.nuevo = false;\n            this.ocultar();\n            this.toastService.showSuccess(Constantes.MENSAJE_CREAR);\n          } else {\n            this.toastService.showError('Error al ingregar area');\n          }\n        },\n        error: (err) => {\n          this.toastService.showError('Error al ingresar en el servicio');\n        },\n      });\n    } else {\n\n      //Setear parametros modificados a beneficioXFormalizar\n      this.camposFormulario.forEach(campo => {\n        if (this.beneficioXFormalizar.hasOwnProperty(campo.campo)) {\n          this.beneficioXFormalizar[campo.campo] = campo.valor\n        }\n      });\n\n      //Actualizar\n      const objetoFiltro = {\n        nombreDTO: 'BeneficioEmpleadoDTO',\n        nombreConsulta: null,\n        seguridad: false,\n        objeto: this.beneficioXFormalizar,\n      };\n\n      this.generalService.update(objetoFiltro).subscribe((data) => {\n        if (data == 1) {\n          this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n          this.ocultar();\n        } else {\n          this.toastService.showError('Error en el método de actualizar');\n        }\n      });\n    }\n  }\n\n  async validarObligatoriedadDocumento(): Promise<boolean> {\n\n    let contObligatorios = 0;\n    let contValidado = 0;\n\n    for (let momento of this.listaTipoDocumento) {\n\n      if (Constantes.CONSTANTE_SI == momento.opcional) {\n\n        contObligatorios++;\n\n        if (momento.ruta != null) {\n          contValidado++;\n        }\n      }\n    }\n\n    if (contObligatorios == contValidado) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  eliminarRegistro() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.eliminar();\n      },\n      reject: () => { },\n    });\n  }\n\n  async eliminar() {\n\n    const filtroEliminar: GeneralModel = new GeneralModel('BeneficioEmpleadoDTO', null, false, this.beneficioXFormalizar);\n    await this.generalService.delete(filtroEliminar).toPromise();\n    this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n    this.ocultar();\n  }\n\n  descargarAnexo(documento) {\n\n    //Ruta archivo\n    this.cargarArchivoServices.descargarArchivo(documento.ruta, undefined, undefined).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.nombreTipoDocumento + \".pdf\";\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n  async cargarAnexo(event, fubauto, momentoDocumentoModel) {\n\n    this.archivoSeleccionadoAnexo = event.files[0];\n\n    //Cargar Archivo Temporal\n    let resultado = await this.beneficioService.cargarDocumentoTemporal(this.archivoSeleccionadoAnexo).toPromise();\n\n    fubauto.clear();\n\n    if (resultado.body.mensaje) {\n      this.toastService.showSuccess(resultado.body.mensaje);\n      return;\n    }\n\n    let informacionArchivo: InformacionArchivoModel = resultado.body.informacionArchivo ? resultado.body.informacionArchivo : null;\n\n    //Cargar archivo en la ruta de hoja de vida\n    await this.beneficioService.cargarDocumentoBeneficiarioHoja(this.beneficioXFormalizar, momentoDocumentoModel, informacionArchivo).toPromise();\n\n    this.cargarCumplido();\n\n  }\n\n  get dialogVisible(): boolean {\n    return this.showDialog && this.cargarPopup;\n  }\n\n  set dialogVisible(value: boolean) {\n    if (!value) {\n      this.showDialog = false;\n      this.cargarPopup = false;\n    }\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog #dialog id='popup-multiple-formalizacion' header=\"{{nombreFormulario}}\" [(visible)]=\"dialogVisible\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n    [style]=\"{'max-width.px': '900'}\">\n\n    <formulario-dinamico #formulario *ngIf=\"camposFormulario.length > 0\" [editable]=\"true\" [campos]=\"camposFormulario\"\n        [isMensaje]=\"isMensaje\"></formulario-dinamico>\n\n    <div *ngIf=\"listaTipoDocumento.length > 0\">\n\n        <p-table #tablaGeneral id=\"tabla_listado_documentos\" [value]=\"listaTipoDocumento\" responsiveLayout=\"scroll\"\n            [rows]=\"10\" [paginator]=\"listaTipoDocumento.length > 10\" [totalRecords]=\"listaTipoDocumento.length\"\n            scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n            dataKey=\"llaveTabla\">\n\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{'tipodocumento' | translate}}</th>\n                    <th>{{'obligatorio' | translate}}</th>\n                    <th class=\"w-6rem\" *ngIf=\"true\"></th>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"body\" let-item>\n                <tr>\n                    <td>{{item.nombreTipoDocumento}}</td>\n                    <td>{{item.opcional | generalPipe:'listaSiNo'}}</td>\n                    <td class=\"flex justify-content-end w-6rem\">\n                        <!-- DESCARGAR -->\n                        <button pButton pRipple *ngIf=\"item.llaveArchivo\"\n                            class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(item)\" type=\"file\"></button>\n\n                        <!-- AGREGAR -->\n                        <div id=\"btn-cargar-archivo-tabla\">\n                            <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\"\n                                chooseIcon=\"pi pi-paperclip\" accept=\"application/pdf\"\n                                (onSelect)=\"cargarAnexo($event, fubauto, item)\" required></p-fileUpload>\n                        </div>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n\n    <!--botones-->\n    <div class=\"flex justify-content-end mt-2\">\n\n        <button pButton pRipple class=\"p-button p-button-raised mr-2\" *ngIf=\"nuevo\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n            (click)=\"guardar()\"></button>\n\n        <button pButton pRipple class=\"p-button p-button-raised mr-2\" *ngIf=\"!nuevo\" icon=\"glyphicons glyphicons-refresh\"\n            label=\"{{'link_actualizar' | translate}}\" (click)=\"guardar()\">\n        </button>\n\n        <button pButton pRipple class=\"p-button-outlined\" *ngIf=\"!nuevo\" icon=\"glyphicons glyphicons-bin\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarRegistro()\">\n        </button>\n    </div>\n\n\n</p-dialog>","import { Component, OnInit, ElementRef, EventEmitter, Output, ViewChild, Input } from '@angular/core';\nimport { TipoBeneficioModel } from '../../models/TipoBeneficioModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { PopupsDinamicosPipe } from '../../../../shared/pipes/popups-dinamicos.pipe';\nimport { BeneficioService } from '../../services/beneficio.service';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { TipoInversionModel } from '../../../saludocupacional/models/TipoInversionModel';\nimport { FiltroGeneralComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { PlanInversionModel } from '../../../saludocupacional/models/PlanInversionModel';\nimport { BienestarPipe } from '../../pipes/bienestar.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n  selector: 'app-input-helper-cambio-plan-inversion',\n  templateUrl: './input-helper-cambio-plan-inversion.component.html',\n  styleUrls: ['./input-helper-cambio-plan-inversion.component.scss'],\n  standalone: true,\n  imports: [DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    InputTextModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent]\n})\nexport class InputHelperCambioPlanInversionComponent implements OnInit {\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  tipoBeneficioModel: TipoBeneficioModel;\n  llavePlanInversionActual: string;\n  listaPlanInversion: PlanInversionModel[];\n  filters = [];\n  llaveTipoInversionTipoBeneficio: string;\n  listaPlanInversionFiltro: PlanInversionModel[];\n\n  constructor(private generalService: GeneralService, private beneficioService: BeneficioService, private popupsDinamicosPipe: PopupsDinamicosPipe,\n    private cargarArchivoServices: CargarArchivosService, private bienestarPipe: BienestarPipe, private translateService: TranslateService,\n    private toastService: ToastService,\n  ) { }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  ngOnInit(): void {\n    this.cargarFiltro();\n    this.listaPlanInversion = [];\n    this.listaPlanInversionFiltro = [];\n  }\n\n  cargar(llaveTipoInversionTipoBeneficio: string, llavePlanInversionActual: string) {\n\n    this.listaPlanInversion = [];\n    this.llavePlanInversionActual = llavePlanInversionActual;\n    this.llaveTipoInversionTipoBeneficio = llaveTipoInversionTipoBeneficio;\n    let event = {};\n    this.cargarPaginadorPorTipoBeneficio(event);\n\n  }\n\n  async cargarPaginadorPorTipoBeneficio(event) {\n\n    let tipoInversionDTO = new TipoInversionModel();\n\n    if (this.llaveTipoInversionTipoBeneficio != null) {\n      tipoInversionDTO.tipoInversion = this.llaveTipoInversionTipoBeneficio;\n\n      let objetoTipo = new GeneralModel('TipoInversionDTO', null, false, tipoInversionDTO);\n      tipoInversionDTO = await this.generalService.queryForObject(objetoTipo).toPromise();\n\n      let planInversion = new PlanInversionModel();\n      if (tipoInversionDTO != null && this.bienestarPipe.HIJO == tipoInversionDTO.hijoPadre) {\n        planInversion.llaveTipoInversion = this.llaveTipoInversionTipoBeneficio;\n      } else {\n        planInversion.depende = this.llaveTipoInversionTipoBeneficio;\n      }\n\n      objetoTipo = new GeneralModel('PlanInversionDTO', null, false, planInversion);\n      this.listaPlanInversion = await this.generalService.queryForList(objetoTipo).toPromise();\n\n      this.listaPlanInversionFiltro = this.listaPlanInversion;\n    }\n  }\n\n  onRowSelect(event) {\n\n    this.showDialog = false;\n\n    if (this.llavePlanInversionActual != null && event.data.planInversion == this.llavePlanInversionActual) {\n      this.toastService.showWarning(\"No hay cambio de Plan inversion.\");\n      this.onSelected.emit(null);\n      return;\n    }\n\n    this.onSelected.emit(event.data);\n  }\n\n  cargarFiltro() {\n    this.filters = [\n      {\n        field: 'nombreTipoDescripcion',\n        header: this.translateService.instant('tipo') + ' ' + this.translateService.instant('plan'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'equals',\n      }\n    ];\n  }\n\n  async cargarFiltroLista(event) {\n\n    let planInversion = new PlanInversionModel();\n    planInversion.descripcion = event['descripcion'] ? event['descripcion']['value'] : '';\n    planInversion.nombreTipoDescripcion = event['nombreTipoDescripcion'] ? event['nombreTipoDescripcion']['value'] : '';\n\n    // Si ambos valores son vacíos, mostrar la lista completa\n    if (planInversion.descripcion === '' && planInversion.nombreTipoDescripcion === '') {\n      this.listaPlanInversionFiltro = this.listaPlanInversion;\n      return;\n    }\n\n    // Filtrar según los valores proporcionados\n    if (planInversion.descripcion != '' && planInversion.nombreTipoDescripcion != '') {\n\n      this.listaPlanInversionFiltro = this.listaPlanInversion.filter((plan) => {\n        const descripcionLower = plan.descripcion.toLowerCase();\n        const nombreTipoDescripcionLower = plan.nombreTipoDescripcion.toLowerCase();\n        const filtroDescripcionLower = planInversion.descripcion.toLowerCase();\n        const filtroNombreTipoDescripcionLower = planInversion.nombreTipoDescripcion.toLowerCase();\n        return (\n          (descripcionLower.includes(filtroDescripcionLower)) && (nombreTipoDescripcionLower.includes(filtroNombreTipoDescripcionLower))\n        );\n      });\n\n    } else {\n      this.listaPlanInversionFiltro = this.listaPlanInversion.filter((plan) => {\n        const descripcionLower = plan.descripcion.toLowerCase();\n        const nombreTipoDescripcionLower = plan.nombreTipoDescripcion.toLowerCase();\n        const filtroDescripcionLower = planInversion.descripcion.toLowerCase();\n        const filtroNombreTipoDescripcionLower = planInversion.nombreTipoDescripcion.toLowerCase();\n        return (planInversion.descripcion !== '' && descripcionLower.includes(filtroDescripcionLower)) ||\n          (planInversion.nombreTipoDescripcion !== '' && nombreTipoDescripcionLower.includes(filtroNombreTipoDescripcionLower))\n      });\n    }\n\n  }\n\n}\n","<p-dialog #dialog id='popup-multiple-formalizacion' header=\"{{'cambioplaninversion' | translate}}\"\n    [(visible)]=\"showDialog\" (onHide)=\"ocultar()\" [modal]=\"true\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n    [style]=\"{'min-width.px': '500'}\">\n\n    <div class=\"flex justify-content-between align-items-start mb-1\">\n        <app-filtro-general #filtro [filtros]=\"filters\" (metodoRegresar)=\"cargarFiltroLista($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input autofocus pInputText type=\"text\" formControlName=\"nombreTipoDescripcion\"\n                                autocomplete=\"off\" maxlength=\"25\" />\n                            <label>{{'tipo' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input autofocus pInputText type=\"text\" formControlName=\"descripcion\" autocomplete=\"off\"\n                                maxlength=\"25\" />\n                            <label>{{'descripcion' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral id=\"tabla_listado_documentos\" [value]=\"listaPlanInversionFiltro\" responsiveLayout=\"scroll\"\n        [rows]=\"10\" [paginator]=\"listaPlanInversionFiltro.length > 10\" [totalRecords]=\"listaPlanInversionFiltro.length\"\n        scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n        dataKey=\"llaveTabla\" (onRowSelect)=\"onRowSelect($event)\" selectionMode=\"single\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'tipoplan' | translate}}</th>\n                <th>{{'subplaninversion' | translate}}</th>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-item>\n            <tr [pSelectableRow]=\"item\">\n                <td>{{item.nombreTipoDescripcion}}</td>\n                <td>{{item.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, GeneralService } from 'general-library-union';\nimport { throwError } from 'rxjs';\nimport { FiltroEmpleadoModel } from '../models/FiltroEmpleadoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FiltroEmpleadoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,\n    private generalService: GeneralService,) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async traerEmpleadoFiltro(cedula: number, empresa: number, contrato: number, filtro: string, activo: boolean): Promise<FiltroEmpleadoModel> {\n\n    let filtroEmpleadoDTO = new FiltroEmpleadoModel();\n    let lista: FiltroEmpleadoModel[] = [];\n\n    filtroEmpleadoDTO.hojaVida = cedula;\n    filtroEmpleadoDTO.empresa = empresa;\n    filtroEmpleadoDTO.contrato = contrato;\n    filtroEmpleadoDTO.filtro = filtro;\n\n    if (activo) {\n      filtroEmpleadoDTO.empleadoActivo = \"A\";\n    }\n\n    let objeto = new GeneralModel('FiltroEmpleadoDTO', null, false, filtroEmpleadoDTO);\n    lista = await this.generalService.queryForList(objeto).toPromise();\n\n    if (lista.length < 1) {\n      return null;\n    }\n\n    return lista[0];\n  }\n\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, GeneralService } from 'general-library-union';\nimport { throwError } from 'rxjs';\nimport { BeneficioTipoCostoModel } from '../models/BeneficioTipoCostoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class BeneficioTipoCostoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,\n    private generalService: GeneralService,) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n async guardarListaBeneficioTipoCosto( listadoBeneficioCosto: BeneficioTipoCostoModel[], llaveBeneficio: string) {\n\n\t\tlet filtro= new BeneficioTipoCostoModel();\n\t\tfiltro.beneficioEmple = llaveBeneficio;\n\n\t\tawait this.eliminarBeneficioTipoCostoPorBeneficio(filtro);\n\t\t\n    for (let beneficioTipoCostoDTO of listadoBeneficioCosto) {\n\t\t\t\tbeneficioTipoCostoDTO.beneficioEmple = llaveBeneficio;\n        let objeto = new GeneralModel('BeneficioTipoCostoDTO',null, false, beneficioTipoCostoDTO);\n\t\t\t\tawait this.generalService.crearRegistro(objeto).toPromise();\n\t\t}\n\t}\n\t\n\tasync eliminarBeneficioTipoCostoPorBeneficio(beneficioTipoCostoDTO: BeneficioTipoCostoModel ) {\n    let objeto = new GeneralModel('BeneficioTipoCostoDTO','BeneficioTipoCosto.eliminarBeneficioTipoCostoPorBeneficio',false,beneficioTipoCostoDTO);\n    await this.generalService.delete(objeto).toPromise();\n\t}\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { BeneficioEmpleadoModel } from '../../../models/BeneficioEmpleadoModel';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, MenuService, ParametrosGeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { TipoBeneficioModel } from '../../../models/TipoBeneficioModel';\nimport { BeneficioModel } from '../../../models/BeneficioModel';\nimport { FiltroFamiliaModel } from '../../../models/FiltroFamiliaModel';\nimport { BienestarPipe } from '../../../pipes/bienestar.pipe';\nimport { BeneficioTipoCostoModel } from '../../../models/BeneficioTipoCostoModel';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { BeneficioService } from '../../../services/beneficio.service';\nimport { MomentoDocumentoModel } from '../../../../talento/models/MomentoDocumentoModel';\nimport { TipoCostoModel } from '../../../../capacitacion/models/TipoCostoModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { CargarArchivosService } from '../../../../../shared//servicios/cargar-archivos.service';\nimport { InformacionArchivoModel } from '../../../models/InformacionArchivoModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { CampoFormularioModel } from 'general-library-union';\n\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { InputHelperMultipleFormalizacionComponent } from '../../../popup/input-helper-multiple-formalizacion/input-helper-multiple-formalizacion.component';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { FormulariodinamicoComponent } from 'general-library-union';\nimport { FiltroEmpleadoModel } from '../../../models/FiltroEmpleadoModel';\nimport { FiltroEmpleadoService } from '../../../services/filtro-empleado.service';\nimport { BeneficioTipoCostoService } from '../../../services/beneficio-tipo-costo.service';\nimport { InputHelperCambioPlanInversionComponent } from '../../../popup/input-helper-cambio-plan-inversion/input-helper-cambio-plan-inversion.component';\nimport { PopupSeguimientoComponent } from '../../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, NgClass, DatePipe, CommonModule } from '@angular/common';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ActividadFuenteTareaModel } from '../../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { EjecucionAutorizacionComponent } from '../../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\nimport { InputHelperFiltroEmpleadoComponent } from '../../../../../shared/componentes/input-helper-filtro-empleado/input-helper-filtro-empleado.component';\n\n@Component({\n  selector: 'app-detalle-beneficiario',\n  templateUrl: './detalle-beneficiario.component.html',\n  styleUrls: ['./detalle-beneficiario.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule,\n    ConfirmDialogModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    FormsModule,\n    ReactiveFormsModule,\n    DropdownModule,\n    CalendarModule,\n    InputTextModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    FileUploadModule,\n    NgFor,\n    InputNumberModule,\n    CheckboxModule,\n    SplitButtonModule,\n    NgClass,\n    InputHelperMultipleFormalizacionComponent,\n    PopupSeguimientoComponent,\n    InputHelperCambioPlanInversionComponent,\n    DatePipe,\n    TranslateModule,\n    GeneralPipe,\n    FormulariodinamicoComponent,\n    EjecucionAutorizacionComponent,\n    EjecucionEncuestaComponent,\n    CommonModule,\n    InputHelperFiltroEmpleadoComponent]\n})\nexport class DetalleBeneficiarioComponent implements OnInit {\n\n  @ViewChild(InputHelperMultipleFormalizacionComponent) inputHelperMultipleFormalizacionComponent;\n  @ViewChild(InputHelperCambioPlanInversionComponent) inputHelperCambioPlanInversionComponent;\n  @ViewChild('formularioDinamico') formularioDinamico: FormulariodinamicoComponent;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n  @Output() regresarFormalizar: EventEmitter<any> = new EventEmitter();\n  @Output() regresarConvocatoria: EventEmitter<any> = new EventEmitter();\n  @Output() regresarAsignacion: EventEmitter<any> = new EventEmitter();\n  @Input() comodinFiltro: any\n  @Input() filtroItem: any\n\n  formBeneficiarioModel: FormGroup;\n  beneficioEmpleadoModel: BeneficioEmpleadoModel;\n  encuesta: boolean;\n  procesoAutorizacion: boolean;\n  nuevo: boolean;\n  nombreEmpleado: string;\n  tipoBeneficioModel: TipoBeneficioModel;\n  beneficioModel: BeneficioModel;\n  listaFiltroFamiliar: any[];\n  listaRelacionCosto: BeneficioTipoCostoModel[] = [];\n  mostrarRelacionCosto: boolean;\n  mostrarTablaXFormalizar: boolean;\n  listaTipoDocumento: MomentoDocumentoModel[];\n  mostrarLista: boolean;\n  listaTipoCosto: any[];\n  listaObjTipoCosto: any;\n  campos: DatoorganizacionModel[];\n  lstBeneficioFormalizacion: BeneficioEmpleadoModel[];\n  archivoSeleccionadoAnexo: File;\n  permiteCambiarPlan: boolean;\n  camposFormulario: CampoFormularioModel[] = [];\n  nombreFormulario: string;\n  isPopupMultiple: boolean = false;\n  vistaVisualizar: string = '';\n  nuevoRegistro: BeneficioTipoCostoModel;\n  estadosBeneficiarios;\n  reglaNavegacion: string;\n  itemsBotonAcciones: MenuItem[];\n  controles: Map<string, boolean> = new Map<string, boolean>();\n  soyYo: boolean;\n  validarOpciones: boolean;\n  seguimiento: boolean = false;\n  listaTipoBeneficios: any[];\n  listaBeneficios: any;\n  tipoBeneficioNuevo: TipoBeneficioModel;\n  beneficioSeleccionado: BeneficioModel;\n  verContenidoPrincipal: boolean = false;\n  isPopupSeguimiento: boolean = false;\n  llaveSeguimiento: string;\n  llavePlanAnterior: string;\n  isPopupCambioPlan: boolean = false;\n  isTablaRelacion: boolean = false;\n  parienteSolicitado: any;\n  formalizarSeleccionado: null;\n  clickGenerar: boolean = false;\n  validarCampoEmpleado: boolean = false;\n\n  @ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n  @ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  constructor(private formBuilder: FormBuilder, private generalPipe: GeneralPipe, private generalService: GeneralService,\n    private toastService: ToastService, private confirmationService: ConfirmationService, private menuService: MenuService,\n    private cargarMapas: cargarmapasGlobal, private authService: AuthService, private bienestarPipe: BienestarPipe,\n    private beneficioService: BeneficioService, public translateService: TranslateService,\n    public controlFuncionService: CargarControlFuncionalidadService, private cargarArchivoServices: CargarArchivosService,\n    private popupsDinamicosPipe: PopupsDinamicosPipe, private saraAplicacionServices: SaraAplicacionService,\n    private filtroEmpleadoService: FiltroEmpleadoService, private beneficioTipoCostoService: BeneficioTipoCostoService,\n    public utilsServices: UtilsService, private workFlowPipe: WorkflowPipe) { }\n\n  ngOnInit(): void {\n    this.estadosBeneficiarios = this.bienestarPipe.ESTADO_BENEFICIARIO;\n    this.isTablaRelacion = false;\n    this.encuesta = false;\n    this.procesoAutorizacion = false;\n    this.beneficioModel = new BeneficioModel();\n    this.tipoBeneficioModel = new TipoBeneficioModel();\n    this.beneficioEmpleadoModel = new BeneficioEmpleadoModel();\n    this.listaFiltroFamiliar = [];\n    this.listaTipoDocumento = [];\n    this.listaRelacionCosto = [];\n    this.lstBeneficioFormalizacion = [];\n    this.nuevoRegistro = new BeneficioTipoCostoModel();\n    this.mostrarLista = false;\n    this.seguimiento = false;\n    this.isPopupSeguimiento = false;\n    this.beneficioSeleccionado = new BeneficioModel();\n    this.listaBeneficios = [];\n    this.mostrarRelacionCosto = false;\n    this.llaveSeguimiento = null;\n    this.tipoBeneficioNuevo = new TipoBeneficioModel();\n    this.cargarFormulario();\n    this.cargarListadoIniciales()\n  }\n\n  async cargarListadoIniciales() {\n\n    let tipoBeneficioModel = new TipoBeneficioModel();\n    tipoBeneficioModel.hijoPadre = 'H';\n    this.listaTipoBeneficios = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoBeneficioDTO', null, false, tipoBeneficioModel));\n\n  }\n\n  cargarMigadePan() {\n\n    if ('LISTA_BENEFICIARIOS' == this.reglaNavegacion) {\n      let label: any = 'Mantenimiento Beneficiarios';\n      this.menuService.setBreadcrumb([\n        { label: 'Listado Beneficiarios', command: (event) => this.regresar.emit() },\n        { label: label }\n      ]);\n    }\n\n    if ('LISTA_BENEFICIARIOSPORFORMALIZAR' == this.reglaNavegacion) {\n      let label: any = 'Mantenimiento Por Formalizar';\n      this.menuService.setBreadcrumb([\n        { label: 'Listado Beneficio Por Formalizar', command: (event) => this.regresarFormalizar.emit() },\n        { label: label }\n      ]);\n    }\n\n    if ('LISTA_CONVOCATORIA_BENEFICIO' == this.reglaNavegacion) {\n      let label: any = 'Mantenimiento Convocatoria';\n      this.menuService.setBreadcrumb([\n        { label: 'Listado Convocatoria', command: (event) => this.regresarConvocatoria.emit() },\n        { label: label }\n      ]);\n    }\n\n    if ('LISTA_BENEFICIARIOS_ASIGNACION' == this.reglaNavegacion) {\n      let label: any = 'Mantenimiento Asignación';\n      this.menuService.setBreadcrumb([\n        { label: 'Listado Asignación', command: (event) => this.regresarAsignacion.emit() },\n        { label: label }\n      ]);\n    }\n\n  }\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionService.getControlFuncionalidad(valor);\n  }\n\n  cargarFormulario() {\n\n    this.formBeneficiarioModel = this.formBuilder.group({\n      llaveTabla: new FormControl(this.beneficioEmpleadoModel.llaveTabla),\n      descripcionEstadoSeguimiento: new FormControl(this.beneficioEmpleadoModel.descripcionEstadoSeguimiento),\n      descripcionConcepto: new FormControl(this.beneficioEmpleadoModel.descripcionConcepto),\n      novedad: new FormControl(this.beneficioEmpleadoModel.novedad),\n      descripcionTipoNovedad: new FormControl(this.beneficioEmpleadoModel.descripcionTipoNovedad),\n      documentoHoja: new FormControl(this.beneficioEmpleadoModel.documentoHoja),\n      cedulaPariente: new FormControl(this.beneficioEmpleadoModel.cedulaPariente),\n      nombreBeneficiario: new FormControl(this.beneficioEmpleadoModel.nombreBeneficiario),\n      nombreCompleto: new FormControl(this.beneficioEmpleadoModel.nombreCompleto),\n      nombreEmpresa: new FormControl(this.beneficioEmpleadoModel.nombreEmpresa),\n      tipoBeneficio: new FormControl(this.beneficioEmpleadoModel.tipoBeneficio),\n      tipoUnidad: new FormControl(this.beneficioEmpleadoModel.tipoUnidad),\n      planInversion: new FormControl(this.beneficioEmpleadoModel.planInversion),\n      sucursal: new FormControl(this.beneficioEmpleadoModel.sucursal),\n      identifica: new FormControl(this.beneficioEmpleadoModel.identifica),\n      grupoFamiliar: new FormControl(this.beneficioEmpleadoModel.grupoFamiliar),\n      asignacion: new FormControl(this.beneficioEmpleadoModel.asignacion),\n      cantidad: new FormControl(this.beneficioEmpleadoModel.cantidad),\n      costo: new FormControl(this.beneficioEmpleadoModel.costo),\n      costoIncurre: new FormControl(this.beneficioEmpleadoModel.costoIncurre),\n      organizacion: new FormControl(this.beneficioEmpleadoModel.organizacion),\n      entidadEnmpleado: new FormControl(this.beneficioEmpleadoModel.entidadEnmpleado),\n      apellidos: new FormControl(this.beneficioEmpleadoModel.apellidos),\n      fechaNacimiento: new FormControl(new Date(this.beneficioEmpleadoModel.fechaNacimiento)),\n      tipoDocumento: new FormControl(this.beneficioEmpleadoModel.tipoDocumento),\n      documento: new FormControl(this.beneficioEmpleadoModel.documento),\n      tercero: new FormControl(this.beneficioEmpleadoModel.tercero),\n      hasta: new FormControl(new Date(this.beneficioEmpleadoModel.hasta)),\n      tipo: new FormControl(this.beneficioEmpleadoModel.tipo),\n      descripcionTipo: new FormControl(this.beneficioEmpleadoModel.descripcionTipo),\n      empresa: new FormControl(this.beneficioEmpleadoModel.empresa),\n      cargo: new FormControl(this.beneficioEmpleadoModel.cargo),\n      cargoDescripcion: new FormControl(this.beneficioEmpleadoModel.cargoDescripcion),\n      unidad: new FormControl(this.beneficioEmpleadoModel.unidad),\n      unidadNombre: new FormControl(this.beneficioEmpleadoModel.unidadNombre),\n      contrato: new FormControl(this.beneficioEmpleadoModel.contrato),\n      estado: new FormControl(this.beneficioEmpleadoModel.estado),\n      estadoAnterior: new FormControl(this.beneficioEmpleadoModel.estadoAnterior),\n      descripcion: new FormControl(this.beneficioEmpleadoModel.descripcion),\n      costoEmpresa: new FormControl(this.beneficioEmpleadoModel.costoEmpresa),\n      numeroCuota: new FormControl(this.beneficioEmpleadoModel.numeroCuota),\n      terceroTalento: new FormControl(this.beneficioEmpleadoModel.terceroTalento),\n      inicioDescuento: new FormControl(this.beneficioEmpleadoModel.inicioDescuento),\n      estadoDescuento: new FormControl(this.beneficioEmpleadoModel.estadoDescuento),\n      nivelAcademico: new FormControl(this.beneficioEmpleadoModel.nivelAcademico),\n      tipoCurso: new FormControl(this.beneficioEmpleadoModel.tipoCurso),\n      periodoCurso: new FormControl(this.beneficioEmpleadoModel.periodoCurso),\n      duracion: new FormControl(this.beneficioEmpleadoModel.duracion),\n      horario: new FormControl(this.beneficioEmpleadoModel.horario),\n      suceso: new FormControl(new Date(this.beneficioEmpleadoModel.suceso)),\n      titulo: new FormControl(this.beneficioEmpleadoModel.titulo),\n      lugar: new FormControl(this.beneficioEmpleadoModel.lugar),\n      referencia: new FormControl(this.beneficioEmpleadoModel.referencia),\n      desembolso: new FormControl(new Date(this.beneficioEmpleadoModel.desembolso)),\n      interes: new FormControl(this.beneficioEmpleadoModel.interes),\n      periodoBeneficio: new FormControl(this.beneficioEmpleadoModel.periodoBeneficio),\n      tarifa: new FormControl(this.beneficioEmpleadoModel.tarifa),\n      inicial: new FormControl(new Date(this.beneficioEmpleadoModel.inicial)),\n      fechaFinal: new FormControl(new Date(this.beneficioEmpleadoModel.fechaFinal)),\n      beneficioLlave: new FormControl(this.beneficioEmpleadoModel.beneficioLlave),\n      descripcionBeneficio: new FormControl(this.beneficioEmpleadoModel.descripcionBeneficio),\n      hojaPariente: new FormControl(this.beneficioEmpleadoModel.hojaPariente),\n      planInversionCosto: new FormControl(this.beneficioEmpleadoModel.planInversionCosto),\n      tipoCosto: new FormControl(this.beneficioEmpleadoModel.tipoCosto),\n      referenciaExterna: new FormControl(this.beneficioEmpleadoModel.referenciaExterna),\n      sucursalReferencia: new FormControl(this.beneficioEmpleadoModel.sucursalReferencia),\n      tipoReferencia: new FormControl(this.beneficioEmpleadoModel.tipoReferencia),\n      beneficiario: new FormControl(this.beneficioEmpleadoModel.beneficiario),\n      ciclo: new FormControl(this.beneficioEmpleadoModel.ciclo),\n      valorTipo: new FormControl(this.beneficioEmpleadoModel.valorTipo),\n      valor: new FormControl(this.beneficioEmpleadoModel.valor),\n      entidadAuxiliar: new FormControl(this.beneficioEmpleadoModel.entidadAuxiliar),\n      valor2: new FormControl(this.beneficioEmpleadoModel.valor2),\n      valor3: new FormControl(this.beneficioEmpleadoModel.valor3),\n      valor4: new FormControl(this.beneficioEmpleadoModel.valor4),\n      entero1: new FormControl(this.beneficioEmpleadoModel.entero1),\n      entero2: new FormControl(this.beneficioEmpleadoModel.entero2),\n      entero3: new FormControl(this.beneficioEmpleadoModel.entero3),\n      entero4: new FormControl(this.beneficioEmpleadoModel.entero4),\n      entero5: new FormControl(this.beneficioEmpleadoModel.entero5),\n      entero6: new FormControl(this.beneficioEmpleadoModel.entero6),\n      descuentoEsp: new FormControl(this.beneficioEmpleadoModel.descuentoEsp),\n      descuentoComercial2: new FormControl(this.beneficioEmpleadoModel.descuentoComercial2),\n      estadoEps: new FormControl(this.beneficioEmpleadoModel.estadoEps),\n      grupoBasicoFamilia: new FormControl(this.beneficioEmpleadoModel.grupoBasicoFamilia),\n      ubicacionciu: new FormControl(this.beneficioEmpleadoModel.ubicacionciu),\n      entidad: new FormControl(this.beneficioEmpleadoModel.entidad),\n      cadena1: new FormControl(this.beneficioEmpleadoModel.cadena1),\n      cadena2: new FormControl(this.beneficioEmpleadoModel.cadena2),\n      cadena3: new FormControl(this.beneficioEmpleadoModel.cadena3),\n      cadena4: new FormControl(this.beneficioEmpleadoModel.cadena4),\n      cadena5: new FormControl(this.beneficioEmpleadoModel.cadena5),\n      cadena6: new FormControl(this.beneficioEmpleadoModel.cadena6),\n      cadena7: new FormControl(this.beneficioEmpleadoModel.cadena7),\n      lista1: new FormControl(this.beneficioEmpleadoModel.lista1),\n      lista2: new FormControl(this.beneficioEmpleadoModel.lista2),\n      lista3: new FormControl(this.beneficioEmpleadoModel.lista3),\n      lista4: new FormControl(this.beneficioEmpleadoModel.lista4),\n      lista5: new FormControl(this.beneficioEmpleadoModel.lista5),\n      texto1: new FormControl(this.beneficioEmpleadoModel.texto1),\n      modalidad: new FormControl(this.beneficioEmpleadoModel.modalidad),\n      mensaje: new FormControl(this.beneficioEmpleadoModel.mensaje),\n      depende: new FormControl(this.beneficioEmpleadoModel.depende),\n      diasNoCondonacion: new FormControl(this.beneficioEmpleadoModel.diasNoCondonacion),\n      fechaDesdeCondonacion: new FormControl(this.beneficioEmpleadoModel.fechaDesdeCondonacion),\n      valorNoCondonacion: new FormControl(this.beneficioEmpleadoModel.valorNoCondonacion),\n      institucion: new FormControl(this.beneficioEmpleadoModel.institucion),\n      adicionado: new FormControl(this.beneficioEmpleadoModel.adicionado),\n      modificado: new FormControl(this.beneficioEmpleadoModel.modificado),\n      fechaAdicionado: new FormControl(new Date(this.beneficioEmpleadoModel.fechaAdicionado)),\n      fechaModificado: new FormControl(new Date(this.beneficioEmpleadoModel.fechaModificado)),\n      seguimiento: new FormControl(this.beneficioEmpleadoModel.seguimiento),\n    });\n  }\n\n  async nuevoBeneficioAsignacion(beneficioModel: BeneficioModel, tipoBeneficioModel: TipoBeneficioModel, filtroEmpleadoDTO: FiltroEmpleadoModel,\n    beneficioEmpleadoDTO: BeneficioEmpleadoModel, reglaNavegacion: string) {\n\n    this.beneficioModel = beneficioModel\n    this.tipoBeneficioModel = tipoBeneficioModel;\n    this.nuevo = true;\n    this.reglaNavegacion = reglaNavegacion;\n    this.verContenidoPrincipal = false;\n    //this.formBeneficiarioModel.get('fechaAdicionado').setValue(new Date());\n    this.formBeneficiarioModel.get('tipoBeneficio').setValue(this.tipoBeneficioModel.llaveTabla);\n    await this.consultarTipoBeneficio(this.tipoBeneficioModel.llaveTabla);\n\n    await this.cargar(beneficioEmpleadoDTO, true, this.reglaNavegacion);\n    await this.onSelectEmpleadoFiltro(filtroEmpleadoDTO);\n\n    this.verContenidoPrincipal = true;\n\n  }\n\n\n  async nuevoBeneficio(reglaNavegacion: string) {\n\n    this.nuevo = true;\n    this.reglaNavegacion = reglaNavegacion;\n    this.verContenidoPrincipal = false;\n    this.formBeneficiarioModel.get('fechaAdicionado').setValue(new Date());\n\n  }\n\n  async onSeleccionarTipoBeneficio(event) {\n\n    if (this.verContenidoPrincipal) {\n      this.ngOnInit();\n      this.verContenidoPrincipal = false;\n    }\n\n    this.formBeneficiarioModel.get('tipoBeneficio').setValue(event.value);\n\n    this.tipoBeneficioNuevo.llaveTabla = event.value;\n\n    await this.consultarTipoBeneficio(this.tipoBeneficioNuevo.llaveTabla);\n\n  }\n\n  async consultarTipoBeneficio(llave: string) {\n\n    let tipoBeneficioFiltro = new TipoBeneficioModel();\n    tipoBeneficioFiltro.llaveTabla = llave;\n\n    let objetoTipo = new GeneralModel('TipoBeneficioDTO', null, false, tipoBeneficioFiltro);\n    this.tipoBeneficioNuevo = await this.generalService.queryForObject(objetoTipo).toPromise();\n\n    this.beneficioSeleccionado.tipoBeneficio = this.tipoBeneficioNuevo.llaveTabla;\n\n    this.cargarListaBeneficios(this.beneficioSeleccionado);\n  }\n\n  async cargarListaBeneficios(beneficioModel: BeneficioModel) {\n\n    if (beneficioModel == null) {\n      beneficioModel = new BeneficioModel();\n    }\n\n    this.listaBeneficios = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('BeneficioDTO', null, false, beneficioModel));\n  }\n\n  async onNuevoBeneficiario(event) {\n\n    this.beneficioSeleccionado = new BeneficioModel();\n\n    let filtroEmpleadoDTO = null;\n\n    if (this.isCliente()) {\n      let filtroEmpleadoDTO = new FiltroEmpleadoModel();\n      filtroEmpleadoDTO = await this.filtroEmpleadoService.traerEmpleadoFiltro(await this.saraAplicacionServices.getCedula(), null, null, this.tipoBeneficioNuevo.filtro, true);\n      if (filtroEmpleadoDTO == null) {\n        this.toastService.showError(\"No puede aplicar a este beneficio\");\n        return null;\n      }\n    }\n\n    this.beneficioSeleccionado.llaveTabla = event.value;\n\n    let objetoTipo = new GeneralModel('BeneficioDTO', null, false, this.beneficioSeleccionado);\n    this.beneficioSeleccionado = await this.generalService.queryForObject(objetoTipo).toPromise();\n\n    let beneficioEmpleadoDTO = new BeneficioEmpleadoModel();\n    beneficioEmpleadoDTO.beneficioLlave = this.beneficioSeleccionado.llaveTabla;\n    beneficioEmpleadoDTO.descripcionBeneficio = this.beneficioSeleccionado.descripcion;\n    beneficioEmpleadoDTO.descripcionTipo = this.tipoBeneficioNuevo.descripcion;\n    beneficioEmpleadoDTO.estado = this.bienestarPipe.SOLICITADO;\n    beneficioEmpleadoDTO.tipoBeneficio = this.tipoBeneficioNuevo.llaveTabla;\n\n    if (this.authService.getTokenKey('tipoLogin') == 'C') {\n      beneficioEmpleadoDTO.fechaAdicionado = new Date();\n    }\n\n    await this.cargar(beneficioEmpleadoDTO, true, this.reglaNavegacion);\n\n    await this.onSelectEmpleadoFiltro(filtroEmpleadoDTO);\n\n    this.verContenidoPrincipal = true;\n\n  }\n\n  async cargar(beneficioEmpleadoModel: BeneficioEmpleadoModel, nuevo: boolean, reglaNavegacion: string) {\n\n    this.isTablaRelacion = false;\n    this.listaRelacionCosto = [];\n    this.verContenidoPrincipal = true;\n    this.nuevo = nuevo;\n    this.reglaNavegacion = reglaNavegacion;\n    this.cargarMigadePan();\n\n    if (beneficioEmpleadoModel.hojaPariente == null || beneficioEmpleadoModel.hojaPariente.trim() == this.generalPipe.PUNTO) {\n      beneficioEmpleadoModel.hojaPariente = this.generalPipe.PUNTO;\n    }\n    beneficioEmpleadoModel.fechaAdicionado = beneficioEmpleadoModel.fechaAdicionado ? new Date(beneficioEmpleadoModel.fechaAdicionado) : new Date();\n    this.formBeneficiarioModel.patchValue(beneficioEmpleadoModel);\n\n    this.nombreEmpleado = this.formBeneficiarioModel.get('identifica').value != null ? this.formBeneficiarioModel.get('identifica').value + ' - ' + this.formBeneficiarioModel.get('nombreCompleto').value : \"\";\n\n    await this.traerDatosBeneficio(true);\n    await this.cargarDatosBeneficioXFormalizar();\n    await this.cargarAccionesBoton();\n\n    await this.utilsServices.sleep(500);\n    this.utilsServices.resizeWindowIFrame();\n  }\n\n  async onSelectEmpleado(hoja: FiltroEmpleadoModel) {\n\n    if (!hoja) {\n      return;\n    }\n\n    if (hoja.nombre != null) {\n      this.formBeneficiarioModel.get('nombreCompleto').setValue(hoja.nombre);\n      this.nombreEmpleado = hoja.hojaVida + ' - ' + hoja.nombre;\n      this.validarCampoEmpleado = false;\n    }\n    if (hoja.hojaVida != null) {\n      this.formBeneficiarioModel.get('identifica').setValue(hoja.hojaVida);\n    }\n    if (hoja.contrato != null) {\n      this.formBeneficiarioModel.get('contrato').setValue(hoja.contrato);\n    }\n    if (hoja.cargo != null) {\n      this.formBeneficiarioModel.get('cargo').setValue(hoja.cargo);\n      this.formBeneficiarioModel.get('cargoDescripcion').setValue(hoja.nombreCargo);\n    }\n    if (hoja.empresa != null) {\n      this.formBeneficiarioModel.get('empresa').setValue(hoja.empresa);\n      this.formBeneficiarioModel.get('nombreEmpresa').setValue(hoja.nombreEmpresa);\n    }\n    if (hoja.unidad != null) {\n      this.formBeneficiarioModel.get('unidad').setValue(hoja.unidad);\n      this.formBeneficiarioModel.get('unidadNombre').setValue(hoja.nombreUnidad);\n    }\n    if (!this.isSolicitante()) {\n      this.cargarGrupoFamilia();\n    }\n\n    await this.cargarFormularioDinamico();\n  }\n\n  async onSelectEmpleadoFiltro(hoja: FiltroEmpleadoModel) {\n\n    if (!hoja) {\n      return;\n    }\n\n    await this.inicializarFormularioDinamico();\n\n    if (hoja.nombre != null) {\n      this.formBeneficiarioModel.get('nombreCompleto').setValue(hoja.nombre);\n      this.nombreEmpleado = hoja.hojaVida + ' - ' + hoja.nombre;\n    }\n    if (hoja.hojaVida != null) {\n      this.formBeneficiarioModel.get('identifica').setValue(hoja.hojaVida);\n    }\n    if (hoja.contrato != null) {\n      this.formBeneficiarioModel.get('contrato').setValue(hoja.contrato);\n    }\n    if (hoja.cargo != null) {\n      this.formBeneficiarioModel.get('cargo').setValue(hoja.cargo);\n      this.formBeneficiarioModel.get('cargoDescripcion').setValue(hoja.nombreCargo);\n    }\n    if (hoja.empresa != null) {\n      this.formBeneficiarioModel.get('empresa').setValue(hoja.empresa);\n      this.formBeneficiarioModel.get('nombreEmpresa').setValue(hoja.nombreEmpresa);\n    }\n    if (hoja.unidad != null) {\n      this.formBeneficiarioModel.get('unidad').setValue(hoja.unidad);\n      this.formBeneficiarioModel.get('unidadNombre').setValue(hoja.nombreUnidad);\n    }\n    if (!this.isSolicitante()) {\n      this.cargarGrupoFamilia();\n    }\n\n    await this.cargarFormularioDinamico();\n  }\n\n  async traerDatosBeneficio(mantenimiento: boolean) {\n\n    try {\n\n      if ((!this.tipoBeneficioModel || this.tipoBeneficioModel.llaveTabla == null) && this.formBeneficiarioModel) {\n\n        this.beneficioModel = new BeneficioModel();\n        this.beneficioModel.llaveTabla = this.formBeneficiarioModel.get('beneficioLlave').value.padEnd(10, ' ');\n\n        if (!this.nuevo || 'LISTA_CONVOCATORIA_BENEFICIO' == this.reglaNavegacion) {\n          await this.cargarListaBeneficios(this.beneficioModel);\n        }\n\n        let objeto2 = new GeneralModel('BeneficioDTO', null, false, this.beneficioModel);\n        this.beneficioModel = await this.generalService.queryForObject(objeto2).toPromise();\n        this.tipoBeneficioModel = new TipoBeneficioModel();\n        this.tipoBeneficioModel.llaveTabla = this.beneficioModel.tipoBeneficio.toString();\n        let objetoTipo = new GeneralModel('TipoBeneficioDTO', null, false, this.tipoBeneficioModel);\n        this.tipoBeneficioModel = await this.generalService.queryForObject(objetoTipo).toPromise();\n      }\n\n      await this.cargarGrupoFamilia();\n      await this.cargarFormularioDinamico();\n      await this.validaCredencial();\n      await this.cargarCumplido();\n      await this.cargarListaTipoCosto();\n\n      if (this.formBeneficiarioModel) {\n        this.formBeneficiarioModel.get('estadoAnterior').setValue(this.formBeneficiarioModel.get('estado').value);\n      }\n\n      if (!this.nuevo) {\n\n        //this.listaRelacionCosto = [];\n        let listaRelacionTemporal: BeneficioTipoCostoModel[] = [];\n\n        if (this.formBeneficiarioModel.get('llaveTabla').value) {\n          let filtro = new BeneficioTipoCostoModel();\n          filtro.beneficioEmple = this.formBeneficiarioModel.get('llaveTabla').value;\n          let objetoTipo = new GeneralModel('BeneficioTipoCostoDTO', null, false, filtro);\n          listaRelacionTemporal = await this.generalService.queryForList(objetoTipo).toPromise();\n\n          if (this.isTablaRelacion) {\n            this.isTablaRelacion = false;\n          } else {\n            this.listaRelacionCosto = this.listaRelacionCosto.length > 0 ? this.listaRelacionCosto : listaRelacionTemporal;\n          }\n\n        }\n      }\n\n      let campo = new DatoorganizacionModel();\n      campo.llaveBase = this.formBeneficiarioModel.get('tipoBeneficio').value;\n      campo.tipo = this.bienestarPipe.TIPO_BENEFICIO;\n      campo.tabla = this.bienestarPipe.TABLA_ASIGNACION;\n      campo.campo = \"relacionCosto\";\n      let objeto = new GeneralModel('DatoorganizacionDTO', null, false, campo);\n      this.mostrarRelacionCosto = (await this.generalService.cantidadRegistros(objeto).toPromise()) > 0;\n\n      if (!mantenimiento) {\n        this.mostrarTablaXFormalizar = false;\n        return;\n      }\n\n      if (!this.formBeneficiarioModel.get('llaveTabla').value) {\n        this.formBeneficiarioModel.get('llaveTabla').setValue(this.utilsServices.generarLlave());\n        this.formBeneficiarioModel.get('fechaAdicionado').setValue(new Date());\n      }\n\n      campo.campo = \"multipleFormalizacion\";\n      let objetoCantidad = new GeneralModel('DatoorganizacionDTO', null, false, campo);\n      this.mostrarTablaXFormalizar = (await this.generalService.cantidadRegistros(objetoCantidad).toPromise()) > 0 &&\n        (this.formBeneficiarioModel.get('estado').value === this.bienestarPipe.PORFORMALIZAR ||\n          this.formBeneficiarioModel.get('estado').value === this.bienestarPipe.FORMALIZADO ||\n          this.formBeneficiarioModel.get('estado').value === this.bienestarPipe.NOCONDONADO);\n\n    } catch (error) {\n      console.log('Error en los datos: ', error);\n    }\n  }\n\n  async compararListas(array1: BeneficioTipoCostoModel[], array2: BeneficioTipoCostoModel[]): Promise<boolean> {\n\n    // Comprobar si las listas tienen el mismo tamaño\n    if (array1.length !== array2.length) {\n      return false;\n    }\n\n    // Comprobar si todos los elementos son iguales\n    for (let i = 0; i < array1.length; i++) {\n      if (array1[i].llaveTabla !== array2[i].llaveTabla) {\n        return false;\n      }\n    }\n\n    // Si pasamos las comprobaciones anteriores, las listas son iguales\n    return true;\n  }\n\n  async cargarGrupoFamilia() {\n\n    this.listaFiltroFamiliar = [];\n    let hojaPariente = this.formBeneficiarioModel.get('hojaPariente').value\n\n    let dto = new FiltroFamiliaModel();\n    dto.seccion = this.tipoBeneficioModel.seccion;\n    let filtroHoja: string = this.tipoBeneficioModel.filtroHoja == null ? null : this.tipoBeneficioModel.filtroHoja.trim();\n    dto.filtro = this.generalPipe.ESPACIO_NULO == filtroHoja ? null : this.tipoBeneficioModel.filtroHoja;\n    dto.cedula = this.formBeneficiarioModel.get('identifica').value;\n\n    if (!(this.bienestarPipe.SECCION == this.tipoBeneficioModel.empleado)) {\n      this.listaFiltroFamiliar.push({ key: this.generalPipe.PUNTO, label: this.bienestarPipe.SOLICITANTE_DESC });\n    }\n\n    if (this.bienestarPipe.SECCION == this.tipoBeneficioModel.empleado) {\n      this.formBeneficiarioModel.get('hojaPariente').setValue(this.nuevo ? null : hojaPariente);\n    } else {\n      this.formBeneficiarioModel.get('hojaPariente').setValue(hojaPariente);\n    }\n\n    if (this.formBeneficiarioModel.get('identifica').value == null) {\n      return;\n    }\n\n    const nuevosElementos = await this.cargarMapas.cargarSelectItemString('llave', 'nombre', new GeneralModel('FiltroFamiliaDTO', null, false, dto));\n\n    this.listaFiltroFamiliar = this.listaFiltroFamiliar.concat(nuevosElementos);\n\n  }\n\n  async cargarCumplido() {\n\n    this.listaTipoDocumento = [];\n\n    let filtro: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n      tipoBeneficioDTO: this.tipoBeneficioModel, beneficioEmpleadoDTO: this.formBeneficiarioModel.getRawValue()\n    });\n\n    let data = await this.beneficioService.traerDocumentoBeneficioEmpleado(filtro).toPromise();\n\n    this.listaTipoDocumento = data.listadoMomento ? data.listadoMomento : [];\n\n    this.mostrarLista = this.listaTipoDocumento.length != 0;\n\n  }\n\n  async cargarListaTipoCosto() {\n\n    this.listaObjTipoCosto = [];\n\n    if (this.formBeneficiarioModel.get('planInversion').value) {\n\n\n      let tipoCostoDTO = new TipoCostoModel();\n      tipoCostoDTO.planInversion = this.formBeneficiarioModel.get('planInversion').value;\n      tipoCostoDTO.origen = this.bienestarPipe.ORIGEN_B;\n      this.listaTipoCosto = await this.cargarMapas.cargarSelectItemString('tipoCosto', 'descripcion', new GeneralModel('TipoCostoDTO', 'TipoCosto.consultarTipoCostoPorPlanInv', false, tipoCostoDTO));\n\n      if (this.formBeneficiarioModel.get('tipoCosto').value) {\n\n        let tipoCostoDTO = new TipoCostoModel();\n        tipoCostoDTO.tipoCosto = this.formBeneficiarioModel.get('tipoCosto').value;\n\n        let general = new GeneralModel('TipoCostoDTO', null, false, tipoCostoDTO);\n        tipoCostoDTO = await this.generalService.queryForObject(general).toPromise();\n\n        let exite = false;\n\n        if (tipoCostoDTO.tipoCosto != null) {\n\n          for (let selectItem of this.listaTipoCosto) {\n\n            if (selectItem.value == tipoCostoDTO.tipoCosto) {\n              exite = true;\n              break;\n            }\n          }\n\n          if (!exite) {\n            this.listaTipoCosto.push({ key: tipoCostoDTO.tipoCosto, label: tipoCostoDTO.descripcion });\n          }\n        }\n      }\n\n      if (this.listaTipoCosto.length > 0) {\n\n        this.listaObjTipoCosto = await this.listaTipoCosto.reduce((obj, area) => {\n          obj[area.key] = area.label;\n          return obj;\n        }, {});\n      }\n\n    }\n\n  }\n\n  async validaCredencial() {\n\n    this.soyYo = false;\n\n    let cedula: number = await this.saraAplicacionServices.getCedula();\n\n    if (cedula == this.formBeneficiarioModel.get('identifica').value) {\n      this.soyYo = true;\n    }\n\n    this.controles = new Map<string, boolean>();\n\n    if (this.soyYo) {\n      this.controles.set(\"legalizar\", this.validarControlFuncionalidad(\"datpro:legalizarMio\"));\n    } else {\n      this.controles.set(\"legalizar\", this.validarControlFuncionalidad(\"datpro:legalizarValor\"));\n    }\n  }\n\n\n  async cargarDatosBeneficioXFormalizar() {\n\n    if (this.mostrarTablaXFormalizar) {\n\n      this.campos = [];\n\n      let filtroDatoorganizacionDTO = new DatoorganizacionModel();\n      filtroDatoorganizacionDTO.tipo = this.bienestarPipe.TIPO_BENEFICIO;\n      filtroDatoorganizacionDTO.tabla = this.bienestarPipe.TABLA_ASIGNACION;\n      filtroDatoorganizacionDTO.llaveBase = this.formBeneficiarioModel.get('tipoBeneficio').value;\n      filtroDatoorganizacionDTO.accion = this.bienestarPipe.PORFORMALIZAR;\n\n      let objeto = new GeneralModel('DatoorganizacionDTO', null, false, filtroDatoorganizacionDTO);\n      this.campos = await this.generalService.queryForList(objeto).toPromise();\n\n      let camposEliminar: DatoorganizacionModel[] = [];\n      let contador: number = 0;\n\n      for (let datoorganizacionDTO of this.campos) {\n        if (datoorganizacionDTO.campo === \"multipleFormalizacion\") {\n          camposEliminar.push(datoorganizacionDTO);\n        }\n\n        if (datoorganizacionDTO.campo === \"institucion\") {\n          datoorganizacionDTO.campo = \"nombreInstitucion\";\n        }\n\n        contador++;\n      }\n\n      this.campos = this.campos.filter(dato => !camposEliminar.includes(dato));\n\n      let filtro = new BeneficioEmpleadoModel();\n      filtro.depende = this.formBeneficiarioModel.get('llaveTabla').value;\n      filtro.beneficioLlave = this.formBeneficiarioModel.get('beneficioLlave').value;\n      let objetoFiltro = new GeneralModel('BeneficioEmpleadoDTO', \"BeneficioEmpleado.consultarBeneficioDatoEmpleadoDescripcion\", false, filtro);\n      this.lstBeneficioFormalizacion = await this.generalService.queryForList(objetoFiltro).toPromise();\n\n      if (this.lstBeneficioFormalizacion) {\n\n        for (const iterator of this.lstBeneficioFormalizacion) {\n          //Esto es para cambiar el tipo de dato Date()\n          await this.verificarTiposDeAtributos(iterator, /^([a-zA-Z]+) (\\d{1,2}), (\\d{4}) (\\d{1,2}:\\d{2}:\\d{2} [APMapm]{2})$/);\n        }\n      }\n\n    }\n  }\n\n  isDateType(value: any): boolean {\n    return value instanceof Date;\n  }\n\n  async verificarTiposDeAtributos(iterator: any, formato: any) {\n\n    for (const key in iterator) {\n\n      if (typeof iterator[key] === 'string') {\n\n        const trimmedString = iterator[key].trim();\n\n        const formatoFechaValido = formato.test(trimmedString);\n\n        if (formatoFechaValido) {\n          const fecha = new Date(iterator[key]);\n          let validador = !isNaN(fecha.getTime());\n\n          if (iterator.hasOwnProperty(key) && validador) {\n            iterator[key] = new Date(iterator[key]);\n          }\n        }\n      }\n    }\n  }\n\n  descargarAnexo(documento) {\n\n    //Ruta archivo\n    this.cargarArchivoServices.descargarArchivo(documento.ruta, undefined, undefined).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.nombreTipoDocumento + \".pdf\";\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n  async cargarAnexo(event, fubauto, momentoDocumentoModel) {\n\n    this.archivoSeleccionadoAnexo = event.files[0];\n\n    //Cargar Archivo Temporal\n    let resultado = await this.beneficioService.cargarDocumentoTemporal(this.archivoSeleccionadoAnexo).toPromise();\n\n    fubauto.clear();\n\n    if (resultado.body.mensaje) {\n      this.toastService.showSuccess(resultado.body.mensaje);\n      return;\n    }\n\n    let informacionArchivo: InformacionArchivoModel = resultado.body.informacionArchivo ? resultado.body.informacionArchivo : null;\n\n    //Cargar archivo en la ruta de hoja de vida\n    await this.beneficioService.cargarDocumentoBeneficiarioHoja(this.formBeneficiarioModel.getRawValue(), momentoDocumentoModel, informacionArchivo).toPromise();\n\n    this.toastService.showSuccess('Se cargó el documento exitosamente');\n\n    this.cargarCumplido();\n\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  async regresarPrincipal() {\n    this.regresar.emit({ comodinFiltro: this.comodinFiltro, filtroItem: this.filtroItem });\n\n  }\n\n  async regresarPrincipalFormalizar() {\n    this.regresarFormalizar.emit({ comodinFiltro: this.comodinFiltro, filtroItem: this.filtroItem });\n  }\n\n  regresarPrincipalConvocatoria() {\n    this.regresarConvocatoria.emit();\n  }\n\n  async regresarPrincipalAsignacion() {\n    this.regresarAsignacion.emit({ comodinFiltro: this.comodinFiltro, filtroItem: this.filtroItem });\n  }\n\n  async eliminarArchivos() {\n\n    let filtro: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n      beneficioEmpleadoDTO: this.formBeneficiarioModel.getRawValue()\n    });\n\n    await this.beneficioService.eliminarArchivos(filtro).toPromise();\n  }\n\n  async eliminarBeneficiosXFormalizar() {\n\n    let filtro = new BeneficioEmpleadoModel();\n    let lstBeneficioFormalizacion: BeneficioEmpleadoModel[] = [];\n    filtro.depende = this.formBeneficiarioModel.get('llaveTabla').value;\n\n    let objetoFiltro: GeneralModel = new GeneralModel('BeneficioEmpleadoDTO', null, false, filtro);\n    lstBeneficioFormalizacion = await this.generalService.queryForList(objetoFiltro).toPromise();\n\n    for (let ben of lstBeneficioFormalizacion) {\n      let filtroBeneficiario: GeneralModel = new GeneralModel('BeneficioEmpleadoDTO', null, false, ben);\n      await this.generalService.delete(filtroBeneficiario).toPromise();\n    }\n  }\n\n  async inicializarFormularioDinamico() {\n    this.camposFormulario = [];\n    this.nombreFormulario = \"\"\n    this.permiteCambiarPlan = false;\n  }\n\n  async cargarFormularioDinamico() {\n\n    await this.inicializarFormularioDinamico();\n\n    let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n      beneficioEmpleado: this.formBeneficiarioModel.getRawValue(),\n      beneficioDTO: this.beneficioModel,\n      isNuevo: this.nuevo\n    });\n\n    let respuesta = await this.beneficioService.cargarFormularioDinamicoBeneficiario(parametroGeneral).toPromise();\n\n    this.camposFormulario = respuesta.listaCampos;\n\n    for (let campo of this.camposFormulario) {\n\n      if (campo.campo == \"planInversion\") {\n        this.formBeneficiarioModel.get('planInversion').setValue(campo.valor);\n      }\n\n      if (campo.campo == \"tipoCosto\") {\n        this.formBeneficiarioModel.get('tipoCosto').setValue(campo.valor);\n      }\n    }\n\n    this.nombreFormulario = respuesta.formulario.grupos[0].nombre;\n    this.permiteCambiarPlan = respuesta.permiteCambiarPlan ? true : false;\n\n    await this.setValorCampos();\n  }\n\n  async setValorCampos() {\n\n    this.camposFormulario.forEach(element => {\n\n      if (typeof element.valor === \"string\") {\n        element.valor = element.valor\n      }\n\n      if (element.tipo === 'F') {\n\n        element.valor = element.valor ? new Date(element.valor) : null;\n\n      } else if (element.tipo === 'H') {\n\n        if (element.valor) {\n\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';');\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 });\n          });\n\n          element.valor = listaValortemp\n        }\n\n      } else if (element.tipo === 'P') {\n\n        let isVisible = false;\n\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\n          if (element.popup == pop.id) {\n            element.popupComponent = pop.popup;\n            element['cargarValorPopup'] = (event) => { element.valor = event };\n\n            if (element.popup == 'popupSeleccionPlanInversionBean') {\n              isVisible = true;\n            } else {\n              isVisible = element.editable == 'E' ? false : true;\n            }\n\n            element.propiedadesPopupComponent = {\n              readonly: isVisible,\n              showDialog: false,\n              label: element.valor,\n              labelInput: '',\n              //smostrarX: true,\n              onChange: (event) => element.cargarValorPopup(event)\n            }\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup)\n\n          } else {\n          }\n        });\n      }\n    });\n  }\n\n  async verPopupMultipleFormalizacion() {\n\n    this.isPopupMultiple = true;\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n\n    this.inputHelperMultipleFormalizacionComponent.verNuevo(this.formBeneficiarioModel.getRawValue(), this.beneficioModel, true, this.tipoBeneficioModel);\n\n  }\n\n  async verDetallePopupFormalizar(event) {\n\n    this.isPopupMultiple = true\n\n    let beneficioXFormalizar = new BeneficioEmpleadoModel;\n    beneficioXFormalizar.llaveTabla = event.llaveTabla;\n    let objeto2 = new GeneralModel('BeneficioEmpleadoDTO', 'BeneficioEmpleado.consultarBeneficioDatoEmpleado', false, beneficioXFormalizar);\n    beneficioXFormalizar = await this.generalService.queryForObject(objeto2).toPromise();\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n\n    this.inputHelperMultipleFormalizacionComponent.verDetalle(this.formBeneficiarioModel.getRawValue(), beneficioXFormalizar, this.beneficioModel, true, this.tipoBeneficioModel);\n\n  }\n\n  async verActionFormalizar(event) {\n\n    this.isPopupMultiple = true\n\n    let beneficioXFormalizar = new BeneficioEmpleadoModel;\n    beneficioXFormalizar.llaveTabla = event.data.llaveTabla;\n    let objeto2 = new GeneralModel('BeneficioEmpleadoDTO', 'BeneficioEmpleado.consultarBeneficioDatoEmpleado', false, beneficioXFormalizar);\n    beneficioXFormalizar = await this.generalService.queryForObject(objeto2).toPromise();\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n\n    this.inputHelperMultipleFormalizacionComponent.verDetalle(this.formBeneficiarioModel.getRawValue(), beneficioXFormalizar, this.beneficioModel, true, this.tipoBeneficioModel);\n\n  }\n\n  regresarPopupMultipleFormalizacion() {\n    this.isPopupMultiple = false;\n    this.cargarDatosBeneficioXFormalizar();\n    this.formalizarSeleccionado = null;\n  }\n\n  async cargarAccionesBoton() {\n\n    this.validarOpciones = false;\n\n    this.itemsBotonAcciones = [\n      {\n        label: this.translateService.instant('cambiarplaninversion'), icon: \"pi pi-sync\",\n        visible: !this.nuevo && this.permiteCambiarPlan,\n        command:\n          (event) => {\n            this.cambiarPlanInversion();\n          }\n      },\n      {\n        label: this.translateService.instant('legalizar'), icon: \"pi pi-check-square\",\n        visible: this.isVerBtnLegalizar(),\n        command:\n          (event) => {\n            this.legalizar();\n          }\n      },\n      {\n        label: this.translateService.instant('nolegaliza'), icon: \"pi pi-times-circle\",\n        visible: this.isVerBtnLegalizar(),\n        command:\n          (event) => {\n            this.noLegalizar();\n          }\n      },\n      {\n        label: this.translateService.instant('solicitudformalizar'), icon: \"pi pi-folder-open\",\n        visible: this.isVerBtnSolicitudFormalizar(),\n        command:\n          (event) => {\n            this.solicitudformalizar();\n          }\n      },\n      {\n        label: this.translateService.instant('formalizar'), icon: 'pi pi-check-circle',\n        visible: this.isVerBtnFormalizar(),\n        command:\n          (event) => {\n            this.formalizar();\n          }\n      },\n      {\n        label: this.translateService.instant('noformalizar'), icon: \"pi pi-times-circle\",\n        visible: this.isVerBtnFormalizar(),\n        command:\n          (event) => {\n            this.noformalizar();\n          }\n      },\n      {\n        label: this.translateService.instant('solicitudcondonar'), icon: \"pi pi-file\",\n        visible: this.validarControlFuncionalidad('datpro:solicitudcondonar') && this.isVerBtnSolicitudCondonar(),\n        command:\n          (event) => {\n            this.solicitudCondonar();\n          }\n      },\n      {\n        label: this.translateService.instant('condonar'), icon: \"pi pi-money-bill\",\n        visible: !this.isCliente() && this.isVerBtnCondonar(),\n        command:\n          (event) => {\n            this.condonar();\n          }\n      },\n      {\n        label: this.translateService.instant('nocondonar'), icon: \"pi pi-times-circle\",\n        visible: !this.isCliente() && this.isVerBtnCondonar(),\n        command:\n          (event) => {\n            this.noCondonar();\n          }\n      },\n    ];\n\n    this.itemsBotonAcciones.forEach(item => {\n      if (item?.visible) {\n        this.validarOpciones = true;\n        return;\n      }\n    });\n  }\n\n  //Nueva Fila \n  mostrarNuevo() {\n    this.vistaVisualizar = 'nuevo';\n  }\n\n  cancelarNuevo() {\n    this.vistaVisualizar = '';\n    this.nuevoRegistro = new BeneficioTipoCostoModel();\n  }\n\n  validarTablaRelacion(registro: BeneficioTipoCostoModel) {\n\n    var validador: boolean = true;\n\n    validador = validador && this.utilsServices.validarCampoObligatorio(registro.tipoCosto);\n    validador = validador && this.utilsServices.validarCampoObligatorio(registro.costo);\n    validador = validador && this.utilsServices.validarCampoObligatorio(registro.fecha);\n\n    return validador;\n  }\n\n  crearRegistro(dato: BeneficioTipoCostoModel) {\n\n    if (!this.validarTablaRelacion(this.nuevoRegistro)) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGenerar = true;\n      return;\n    }\n\n    this.vistaVisualizar = '';\n    this.listaRelacionCosto.push(dato);\n    this.nuevoRegistro = new BeneficioTipoCostoModel();\n\n  }\n\n  eliminarRegistro(registroEliminar: any) {\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'eliminarRelacionCosto',\n      message: '¿Desea eliminar el registro?',\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setEliminarEdicion(registroEliminar);\n      },\n      reject: () => { },\n    });\n  }\n\n  setEliminarEdicion(registroEliminar: any) {\n\n    this.listaRelacionCosto = this.listaRelacionCosto.filter(item => item !== registroEliminar);\n\n    if (this.listaRelacionCosto.length == 0) {\n      this.isTablaRelacion = true;\n    }\n  }\n\n  async guardar() {\n\n    this.llaveSeguimiento = null;\n\n    if (this.seguimiento) {\n      this.llaveSeguimiento = this.utilsServices.generarLlave();\n    }\n\n    this.formBeneficiarioModel.get('seguimiento').setValue(this.llaveSeguimiento);\n\n    let validar = await this.actualizarBeneficio(this.formBeneficiarioModel.get('estado').value);\n\n    if (!validar) {\n\n      if (this.seguimiento) {\n        this.isPopupSeguimiento = true;\n      }\n      return null;\n    }\n\n    if (this.nuevo) {\n      this.mostrarLista = true;\n      this.toastService.showSuccess(Constantes.MENSAJE_CREAR);\n    } else {\n      this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n    }\n    if (this.seguimiento) {\n      this.isPopupSeguimiento = true;\n    }\n    this.nuevo = false;\n    this.cargarAccionesBoton();\n\n  }\n\n  async actualizarBeneficio(estado: string): Promise<boolean> {\n    try {\n      \n      var validarFormulario: boolean = this.formularioDinamico ? this.formularioDinamico.validar() : true;\n\n      if (!this.formBeneficiarioModel.valid || !validarFormulario) {\n\n        if (!this.nombreEmpleado) {\n          this.validarCampoEmpleado = true;\n        }\n\n        this.toastService.showError('Faltan campos obligatorios');\n        Object.keys(this.formBeneficiarioModel.controls).forEach((key) => {\n          if (this.formBeneficiarioModel.get(key).errors) {\n            this.formBeneficiarioModel.get(key).markAsDirty();\n          }\n        });\n\n        return false;\n      }\n\n      if (!this.validarObligatoriedadDocumento()) {\n        this.toastService.showError(\"Debe cargar los documentos obligatorios\");\n        return false;\n      }\n\n      this.parienteSolicitado = this.formBeneficiarioModel.get('hojaPariente').value;\n\n      if (Constantes.PUNTO == this.formBeneficiarioModel.get('hojaPariente').value) {\n        this.formBeneficiarioModel.get('hojaPariente').setValue(null);\n      }\n\n      if (this.nuevo) {\n        this.formBeneficiarioModel.get('organizacion').setValue(parseInt(this.authService.getTokenKey('numeroEmpresa')));\n      }\n\n      if (!(await this.actualizarBeneficioEmpleado(estado))) {\n\n        let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n          beneficioEmpleado: this.formBeneficiarioModel.getRawValue(),\n          beneficioDTO: this.beneficioModel,\n          isNuevo: this.nuevo\n        });\n\n        await this.inicializarFormularioDinamico();\n\n        let respuesta = await this.beneficioService.cargarFormularioDinamicoBeneficiarioLogica(parametroGeneral).toPromise();\n\n        this.camposFormulario = respuesta.listaCampos;\n        this.nombreFormulario = respuesta.formulario.grupos[0].nombre;\n        this.permiteCambiarPlan = respuesta.permiteCambiarPlan ? true : false;\n\n        await this.setValorCampos();\n\n        return false;\n      }\n\n      await this.beneficioTipoCostoService.guardarListaBeneficioTipoCosto(this.listaRelacionCosto, this.formBeneficiarioModel.get('llaveTabla').value);\n\n      await this.cargarFormularioDinamico();\n\n      if (this.formBeneficiarioModel.get('hojaPariente').value == null) {\n        this.formBeneficiarioModel.get('hojaPariente').setValue(this.generalPipe.PUNTO);\n      }\n\n      this.formBeneficiarioModel.get('fechaAdicionado').setValue(new Date(this.formBeneficiarioModel.get('fechaAdicionado').value));\n\n      return true;\n\n    } catch (e) {\n      this.formBeneficiarioModel.get('hojaPariente').setValue(this.parienteSolicitado);\n      console.log(e);\n\n    }\n    return false;\n  }\n\n  private validarObligatoriedadDocumento(): boolean {\n    let obligatorio = true;\n\n    for (let momento of this.listaTipoDocumento) {\n      if (momento.proceso == this.formBeneficiarioModel.get('estado').value) {\n        if (Constantes.CONSTANTE_SI == momento.opcional && this.formBeneficiarioModel.get('estado').value == momento.proceso) {\n          if (momento.ruta == null) {\n            obligatorio = false;\n            break;\n          }\n        }\n      }\n    }\n    return obligatorio;\n  }\n\n  async actualizarBeneficioEmpleado(estado: string): Promise<boolean> {\n    try {\n      let estadoAntes: string = this.formBeneficiarioModel.get('estado').value;\n\n      if (estado != null) {\n        this.formBeneficiarioModel.get('estado').setValue(estado);\n      }\n\n      //agregar parametros a beneficioEmpleado\n      this.camposFormulario.forEach(campo => {\n        this.formBeneficiarioModel.get(campo.campo).setValue(campo.valor)\n      });\n\n      if (this.formBeneficiarioModel.get('hojaPariente').value == this.generalPipe.PUNTO) {\n        this.formBeneficiarioModel.get('hojaPariente').setValue(null);\n      }\n\n      let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n        beneficioEmpleadoDTO: this.formBeneficiarioModel.getRawValue(),\n        estadoAntes: estadoAntes,\n        nuevo: this.nuevo,\n      });\n\n      let data = await this.beneficioService.actualizarBeneficioEmpleado(parametroGeneral).toPromise();\n\n      this.formBeneficiarioModel.patchValue(data ? data : null);\n\n      if (this.formBeneficiarioModel.get('hojaPariente').value == null) {\n        this.formBeneficiarioModel.get('hojaPariente').setValue(this.generalPipe.PUNTO);\n      }\n\n      if (this.formBeneficiarioModel.get('llaveTabla').value == null) {\n        this.nuevo = true;\n      }\n      if (this.formBeneficiarioModel.get('mensaje').value != null) {\n        this.toastService.showError(this.formBeneficiarioModel.get('mensaje').value);\n        return false;\n      }\n\n      await this.recargarFormulario();\n\n      this.formBeneficiarioModel.get('fechaAdicionado').setValue(new Date(this.formBeneficiarioModel.get('fechaAdicionado').value));\n\n      return true;\n\n    } catch (e) {\n      console.log(e);\n      this.formBeneficiarioModel.get('hojaPariente').setValue(this.parienteSolicitado);\n      return false;\n    }\n  }\n\n  async recargarFormulario() {\n\n    if (this.formBeneficiarioModel.get('llaveTabla').value == null) {\n      return;\n    }\n\n    await this.traerDatosBeneficio(true);\n    await this.cargarDatosBeneficioXFormalizar();\n  }\n\n  eliminar() {\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'eliminarBeneficio',\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setEliminar();\n      },\n      reject: () => { },\n    });\n  }\n\n  async setEliminar() {\n\n\n    if (this.mostrarRelacionCosto && this.formBeneficiarioModel.get('llaveTabla').value) {\n\n      let beneficioTipoCostoDTO = new BeneficioTipoCostoModel();\n      beneficioTipoCostoDTO.beneficioEmple = this.formBeneficiarioModel.get('llaveTabla').value;\n      let objeto = new GeneralModel('BeneficioTipoCostoDTO', null, false, beneficioTipoCostoDTO);\n      let isExisteDatos = (await this.generalService.cantidadRegistros(objeto).toPromise()) > 0;\n\n      if (isExisteDatos) {\n        await this.beneficioTipoCostoService.eliminarBeneficioTipoCostoPorBeneficio(beneficioTipoCostoDTO);\n      }\n\n    }\n\n    let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n      beneficioEmpleadoDTO: this.formBeneficiarioModel.getRawValue(),\n    });\n\n    await this.beneficioService.eliminarBeneficioEmpleado(parametroGeneral).toPromise();\n\n    this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n\n    this.regresarTareaSeleccionada();\n  }\n\n  regresarTareaSeleccionada() {\n\n    if ('LISTA_BENEFICIARIOS' == this.reglaNavegacion) {\n      this.regresarPrincipal();\n    }\n\n    if ('LISTA_BENEFICIARIOSPORFORMALIZAR' == this.reglaNavegacion) {\n      this.regresarPrincipalFormalizar();\n    }\n\n    if ('LISTA_CONVOCATORIA_BENEFICIO' == this.reglaNavegacion) {\n      this.regresarPrincipalConvocatoria();\n    }\n\n    if ('LISTA_BENEFICIARIOS_ASIGNACION' == this.reglaNavegacion) {\n      this.regresarPrincipalAsignacion();\n    }\n\n  }\n\n  async cambiarPlanInversion() {\n\n    this.llavePlanAnterior = this.formBeneficiarioModel.get('planInversion').value;\n    if (this.llavePlanAnterior == null) {\n      this.llavePlanAnterior = this.beneficioModel.planInversion.toString();\n    }\n\n    this.isPopupCambioPlan = true;\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n\n    this.inputHelperCambioPlanInversionComponent.cargar(this.tipoBeneficioModel.tipoInversion, this.llavePlanAnterior);\n  }\n\n  async onSelectedCambioPlanInversion(event) {\n\n    this.isPopupCambioPlan = false;\n\n    if (event) {\n\n      this.formBeneficiarioModel.get('planInversion').setValue(event.planInversion);\n\n      let objetoTipo = new GeneralModel('BeneficioEmpleadoDTO', \"BeneficioEmpleado.actualizarPlanInversion\", false, this.formBeneficiarioModel.getRawValue());\n      await this.generalService.update(objetoTipo).toPromise();\n\n      let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n        llavePlanAnterior: this.llavePlanAnterior,\n        planInversion: event\n      });\n\n      await this.beneficioService.cambioPlanInversion(parametroGeneral).toPromise();\n\n      let comodin = new BeneficioEmpleadoModel();\n      comodin.llaveTabla = this.formBeneficiarioModel.get('llaveTabla').value;\n\n      objetoTipo = new GeneralModel('BeneficioEmpleadoDTO', null, false, comodin);\n      let beneficioEmpleado = await this.generalService.queryForObject(objetoTipo).toPromise();\n\n      this.formBeneficiarioModel.patchValue(beneficioEmpleado);\n\n      this.cargarFormularioDinamico();\n\n    }\n\n  }\n\n  regresarCambioPlanInversion() {\n    this.isPopupCambioPlan = false;\n  }\n\n  async legalizar() {\n\n    try {\n\n\n\n      let estado: string = this.bienestarPipe.ASIGNADO;\n\n      if (this.bienestarPipe.ACCIONFORMALIZAR == this.tipoBeneficioModel.requiereFormalizar || this.bienestarPipe.ACCIONAMBAS == this.tipoBeneficioModel.requiereFormalizar) {\n        estado = this.bienestarPipe.PORFORMALIZAR;\n      }\n\n      this.llaveSeguimiento = null;\n\n      if (this.seguimiento) {\n        this.llaveSeguimiento = this.utilsServices.generarLlave();\n      }\n\n      this.formBeneficiarioModel.get('seguimiento').setValue(this.llaveSeguimiento);\n\n      let validar = await this.actualizarBeneficio(estado);\n\n      if (!validar) {\n        if (this.seguimiento) {\n          this.isPopupSeguimiento = true;\n        }\n        await this.cargarAccionesBoton();\n        return null;\n      }\n\n      this.formBeneficiarioModel.get('fechaAdicionado').setValue(new Date(this.formBeneficiarioModel.get('fechaAdicionado').value));\n\n\n      if (this.tipoBeneficioModel.novedad != null && this.bienestarPipe.NOVEDADNOMINA == this.tipoBeneficioModel.formaRecaudo) {\n\n        let parametroGeneral: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n          beneficioEmpleadoDTO: this.formBeneficiarioModel.getRawValue(),\n          tipoBeneficioDTO: this.tipoBeneficioModel,\n          nuevo: this.nuevo,\n        });\n\n        await this.beneficioService.cargarNovedadesVariablesConceptos(parametroGeneral).toPromise();\n\n      }\n\n      if (this.seguimiento) {\n        this.isPopupSeguimiento = true;\n      }\n\n      await this.cargarAccionesBoton();\n    } catch (error) {\n      console.log('error legalizar');\n      await this.cargarAccionesBoton();\n    }\n\n  }\n\n  async noLegalizar() {\n    await this.actualizarBeneficioEmpleado(this.bienestarPipe.NOASIGNADO);\n    await this.cargarAccionesBoton();\n  }\n\n  async formalizar() {\n    await this.actualizarBeneficio(this.bienestarPipe.FORMALIZADO);\n    await this.cargarAccionesBoton();\n  }\n\n  async noformalizar() {\n    await this.actualizarBeneficioEmpleado(this.bienestarPipe.NOFORMALIZADO);\n    await this.cargarAccionesBoton();\n  }\n\n  async solicitudformalizar() {\n    await this.actualizarBeneficio(this.bienestarPipe.SOLICITUDFORMALIZAR);\n    await this.cargarAccionesBoton();\n  }\n\n  solicitudCondonar() {\n\n    this.confirmationService.confirm({\n      key: 'solicitudCondonar',\n      header: 'Confirmar',\n      message: '¿Desea solicitar condonación?',\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setSolicitudCondonar();\n      },\n      reject: () => { },\n    });\n\n  }\n\n  async setSolicitudCondonar() {\n    await this.actualizarBeneficio(this.bienestarPipe.SOLICITUDCONDONACION);\n    await this.cargarAccionesBoton();\n  }\n\n  noCondonar() {\n    this.confirmationService.confirm({\n      key: 'noCondonar',\n      header: 'Confirmar',\n      message: '¿Desea no condonar?',\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setNoCondonar();\n      },\n      reject: () => { },\n    });\n\n  }\n\n  async setNoCondonar() {\n    await this.actualizarBeneficioEmpleado(this.bienestarPipe.NOCONDONADO);\n    await this.cargarAccionesBoton();\n  }\n\n  condonar() {\n    this.confirmationService.confirm({\n      key: 'condonar',\n      header: 'Confirmar',\n      message: '¿Desea condonar?',\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setCondonar();\n      },\n      reject: () => { },\n    });\n\n  }\n\n  async setCondonar() {\n    await this.actualizarBeneficio(this.bienestarPipe.CONDONADO);\n    await this.cargarAccionesBoton();\n  }\n\n  //BPM\n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    if (actividad == null) {\n      this.toastService.showError('Actividad no existe');\n      return;\n    }\n\n    this.beneficioEmpleadoModel = new BeneficioEmpleadoModel();\n    this.beneficioEmpleadoModel.llaveTabla = actividad.llaveTablaBase;\n    this.beneficioEmpleadoModel = await this.generalService.queryForObject(new GeneralModel('BeneficioEmpleadoDTO', null, false, this.beneficioEmpleadoModel)).toPromise();\n    if (this.beneficioEmpleadoModel == null) {\n      this.toastService.showError('No existe beneficio.');\n      return;\n    }\n\n    this.beneficioModel = new BeneficioModel();\n    this.beneficioModel.llaveTabla = this.beneficioEmpleadoModel.beneficioLlave;\n    this.beneficioModel = await this.generalService.queryForObject(new GeneralModel('BeneficioDTO', null, false, this.beneficioModel)).toPromise();\n\n    if (this.beneficioEmpleadoModel.hojaPariente == null || this.beneficioEmpleadoModel.hojaPariente.trim() == this.generalPipe.PUNTO) {\n      this.beneficioEmpleadoModel.hojaPariente = this.generalPipe.PUNTO;\n    }\n\n    await this.cargar(this.beneficioEmpleadoModel, false, \"LISTA_BENEFICIARIOS\");\n    await this.traerDatosBeneficio(false);\n    this.encuesta = true;\n    this.procesoAutorizacion = false;\n    await this.utilsServices.sleep(300);\n\n    await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, BeneficioEmpleadoModel);\n\n\n  }\n\n  public async verAutorizacion(llaveActividad: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    if (actividad == null) {\n      this.toastService.showError('Actividad no existe');\n      return;\n    }\n\n    this.beneficioEmpleadoModel = new BeneficioEmpleadoModel();\n    this.beneficioEmpleadoModel.llaveTabla = actividad.llaveTablaBase;\n    this.beneficioEmpleadoModel = await this.generalService.queryForObject(new GeneralModel('BeneficioEmpleadoDTO', null, false, this.beneficioEmpleadoModel)).toPromise();\n    if (this.beneficioEmpleadoModel == null) {\n      this.toastService.showError('No existe beneficio.');\n      return;\n    }\n\n    this.beneficioModel = new BeneficioModel();\n    this.beneficioModel.llaveTabla = this.beneficioEmpleadoModel.beneficioLlave;\n    this.beneficioModel = await this.generalService.queryForObject(new GeneralModel('BeneficioDTO', null, false, this.beneficioModel)).toPromise();\n\n    if (this.beneficioEmpleadoModel.hojaPariente == null || this.beneficioEmpleadoModel.hojaPariente.trim() == this.generalPipe.PUNTO) {\n      this.beneficioEmpleadoModel.hojaPariente = this.generalPipe.PUNTO;\n    }\n\n    await this.traerDatosBeneficio(false);\n\n    this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOBENEFICIO, this.beneficioEmpleadoModel);\n\n    this.encuesta = false;\n    this.procesoAutorizacion = true;\n    return null;\n  }\n\n  isVerBtnActualizar(): boolean {\n    return this.nuevo || ((this.bienestarPipe.SOLICITADO == this.formBeneficiarioModel.get('estado').value) || (this.bienestarPipe.APROBADO == this.formBeneficiarioModel.get('estado').value));\n  }\n\n  isVerBtnFormalizar(): boolean {\n    return this.formBeneficiarioModel.getRawValue() != null && this.formBeneficiarioModel.get('llaveTabla').value != null && !this.isCliente()\n      && ((this.bienestarPipe.PORFORMALIZAR == this.formBeneficiarioModel.get('estado').value)\n        || (this.bienestarPipe.SOLICITUDFORMALIZAR == this.formBeneficiarioModel.get('estado').value))\n      && this.isTareaBeneficionPorFormalizar();\n  }\n\n  isTareaBeneficionPorFormalizar(): boolean {\n    return \"LISTA_BENEFICIARIOSPORFORMALIZAR\" == this.reglaNavegacion;\n  }\n\n  isVerBtnLegalizar(): boolean {\n    return this.formBeneficiarioModel != null && this.formBeneficiarioModel.get('llaveTabla') != null && this.controles.get(\"legalizar\") != null && this.isEstadoAutorizado() && !this.encuesta && !this.isCliente();\n  }\n\n  isEstadoAutorizado(): boolean {\n    return (this.formBeneficiarioModel.get('estado').value == this.bienestarPipe.APROBADO) || (this.formBeneficiarioModel.get('estado').value == this.bienestarPipe.SOLICITADO);\n  }\n\n  isVerBtnSolicitudFormalizar(): boolean {\n    return this.formBeneficiarioModel != null && this.formBeneficiarioModel.get('llaveTabla').value != null && this.isCliente() && (this.bienestarPipe.PORFORMALIZAR == this.formBeneficiarioModel.get('estado').value);\n  }\n\n  isVerBtnSolicitudCondonar(): boolean {\n    return (this.bienestarPipe.ACCIONAMBAS == this.tipoBeneficioModel.requiereFormalizar) && (this.bienestarPipe.FORMALIZADO == this.formBeneficiarioModel.get('estado').value);\n  }\n\n  isVerBtnCondonar(): boolean {\n    return this.bienestarPipe.ACCIONAMBAS == this.tipoBeneficioModel.requiereFormalizar && ((this.bienestarPipe.FORMALIZADO == this.formBeneficiarioModel.get('estado').value) || (this.bienestarPipe.SOLICITUDCONDONACION == this.formBeneficiarioModel.get('estado').value));\n  }\n\n  isSolicitante(): boolean {\n    return this.bienestarPipe.SOLICITANTE == this.tipoBeneficioModel.empleado;\n  }\n\n  regresarSeguimiento() {\n    this.isPopupSeguimiento = false;\n  }\n\n  isOcultarFechaSolicitud() {\n\n    if (this.encuesta || this.procesoAutorizacion || !this.nuevo || this.isCliente()) {\n      this.formBeneficiarioModel.get('fechaAdicionado').disable();\n    } else {\n      this.formBeneficiarioModel.get('fechaAdicionado').enable();\n    }\n  }\n\n  isDeshabilitarCampo(campo) : boolean{\n    this.formBeneficiarioModel.get(campo).disable();\n    return false;\n  }\n\n  isDeshabilitarCampoIniciales(campo) : boolean{\n\n    if(!this.nuevo || 'LISTA_CONVOCATORIA_BENEFICIO' == this.reglaNavegacion \n      || 'LISTA_BENEFICIARIOS_ASIGNACION' == this.reglaNavegacion){\n        this.formBeneficiarioModel.get(campo).disable();\n    }\n    else{\n      this.formBeneficiarioModel.get(campo).enable();\n    }\n    return false;\n  }\n\n}\n","<p-confirmPopup key=\"eliminarRelacionCosto\"></p-confirmPopup>\n<p-confirmPopup key=\"eliminarBeneficio\"></p-confirmPopup>\n<p-confirmDialog key=\"solicitudCondonar\" [style]=\"{'min-width.px': '300'}\" rejectButtonStyleClass='p-button-outlined'\n    acceptButtonStyleClass='p-button-raised'></p-confirmDialog>\n<p-confirmDialog key=\"noCondonar\" [style]=\"{'min-width.px': '300'}\" rejectButtonStyleClass='p-button-outlined'\n    acceptButtonStyleClass='p-button-raised'></p-confirmDialog>\n<p-confirmDialog #cd key=\"condonar\" [style]=\"{'min-width.px': '300'}\" rejectButtonStyleClass='p-button-outlined'\n    acceptButtonStyleClass='p-button-raised'></p-confirmDialog>\n\n<div id=\"id_detalle_beneficiario\">\n\n    <div class=\"flex justify-content-between align-items-start align-items-center mb-2\">\n\n        <h4 class=\"mb-0 text-xl\">{{'detalle' | translate}} {{'beneficiario' | translate}}</h4>\n\n        <button pButton pRipple (click)=\"regresarPrincipal()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n            *ngIf=\"'LISTA_BENEFICIARIOS' == this.reglaNavegacion\"></button>\n\n        <button pButton pRipple (click)=\"regresarPrincipalFormalizar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n            *ngIf=\"'LISTA_BENEFICIARIOSPORFORMALIZAR' == this.reglaNavegacion\"></button>\n\n        <button pButton pRipple (click)=\"regresarPrincipalConvocatoria()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n            *ngIf=\"'LISTA_CONVOCATORIA_BENEFICIO' == this.reglaNavegacion\"></button>\n\n        <button pButton pRipple (click)=\"regresarPrincipalAsignacion()\" label=\"Listado Beneficiario\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n            *ngIf=\"'LISTA_BENEFICIARIOS_ASIGNACION' == this.reglaNavegacion\"></button>\n    </div>\n\n    <div class=\"card\">\n\n        <form [formGroup]=\"formBeneficiarioModel\" #formulario=\"ngForm\">\n\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n\n\n                <div class=\"mt-2\">\n                    <h5><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\n                </div>\n\n                <!-- campos -->\n                <div class=\"p-fluid p-formgrid grid\">\n\n                    <div class=\"field col-12 md:col-6 lg:col-6\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_tipo_beneficio\" [options]=\"listaTipoBeneficios\" optionLabel=\"label\"\n                                optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"tipoBeneficio\"\n                                [required]=\"true\" (onChange)=\"onSeleccionarTipoBeneficio($event)\"\n                                [disabled]=\"isDeshabilitarCampoIniciales('tipoBeneficio')\"></p-dropdown>\n                            <label for=\"id_tipo_beneficio\">{{'tipobeneficio' | translate}} *</label>\n                        </span>\n                    </div>\n\n                    <div class=\"field col-12 md:col-6 lg:col-6\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_beneficio\" [options]=\"listaBeneficios\" optionLabel=\"label\"\n                                optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"beneficioLlave\"\n                                (onChange)=\"onNuevoBeneficiario($event)\"\n                                [disabled]=\"isDeshabilitarCampoIniciales('beneficioLlave')\"></p-dropdown>\n                            <label for=\"id_beneficio\">{{'beneficio' | translate}} *</label>\n                        </span>\n                    </div>\n\n                    <ng-container *ngIf=\"verContenidoPrincipal\">\n                        <!-- Fecha solicitud -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <span class=\"p-float-label\">\n                                <p-calendar id=\"fechasolicitud\" formControlName=\"fechaAdicionado\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\" [required]=\"true\" [readonlyInput]=\"isOcultarFechaSolicitud()\"\n                                    [class.ng-dirty]=\"!utilsServices.validarCampoObligatorio(formBeneficiarioModel.get('fechaAdicionado').value)\"\n                                    [class.ng-invalid]=\"!utilsServices.validarCampoObligatorio(formBeneficiarioModel.get('fechaAdicionado').value)\"></p-calendar>\n                                <label for=\"fechasolicitud\">{{'fechasolicitud' | translate}} *</label>\n                            </span>\n                        </div>\n\n                        <!-- Nombre Persona -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <app-input-helper-filtro-empleado [label]=\"nombreEmpleado != null ?  nombreEmpleado : ''\"\n                                [(ngModel)]=\"nombreEmpleado\" (onSelected)=\"onSelectEmpleado($event)\"\n                                formControlName=\"nombreCompleto\"\n                                [booleano]=\"validarCampoEmpleado && (nombreEmpleado == null || nombreEmpleado == '') ? true : false\"\n                                [labelInput]=\"this.translateService.instant('nombrepersona') +' *'\"\n                                [readonly]=\"!(!encuesta && !procesoAutorizacion && nuevo && !isCliente())\"\n                                [required]=\"nombreEmpleado == null || nombreEmpleado == ''\" [mostrarX]=\"true\"\n                                [seleccionarMetodo]=\"'buscar'\"\n                                [filtro]=\"this.tipoBeneficioModel.filtro ? this.tipoBeneficioModel.filtro  : null\"\n                                [fechaBase]=\"formBeneficiarioModel.get('fechaAdicionado').value\" [esFiltro]=\"true\"\n                                [estadoLiquidacion]=\"'S'\">\n                            </app-input-helper-filtro-empleado>\n                        </div>\n\n                        <!-- Contrato -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"id_contrato\" formControlName=\"contrato\"\n                                    [disabled]=\"isDeshabilitarCampo('contrato')\">\n                                <label for=\"id_contrato\">{{'contrato' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- Empresa -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"id_empresa\" formControlName=\"nombreEmpresa\"\n                                    [disabled]=\"isDeshabilitarCampo('nombreEmpresa')\">\n                                <label for=\"id_empresa\">{{'empresa' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- Unidad -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"id_unidad\" formControlName=\"unidadNombre\"\n                                    [disabled]=\"isDeshabilitarCampo('unidadNombre')\">\n                                <label for=\"id_unidad\">{{'unidad' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- Cargo -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"id_cargo\" formControlName=\"cargoDescripcion\"\n                                    [disabled]=\"isDeshabilitarCampo('cargoDescripcion')\">\n                                <label for=\"id_cargo\">{{'cargo' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- Pariente -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown inputId=\"id_pariente\" [options]=\"listaFiltroFamiliar\" optionLabel=\"label\"\n                                    optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"hojaPariente\"\n                                    [required]=\"!isSolicitante()\">\n                                </p-dropdown>\n                                <label for=\"id_pariente\">{{'pariente' | translate}} *</label>\n                            </span>\n                        </div>\n\n                        <!-- Estado -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\"\n                            *ngIf=\"!formBeneficiarioModel.get('descripcionEstadoSeguimiento').value || this.validarControlFuncionalidad('datpro:verestadoseguimiento')\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown inputId=\"id_estado\" [options]=\"estadosBeneficiarios\" optionLabel=\"nombre\"\n                                    [disabled]=\"isDeshabilitarCampo('estado')\" optionValue=\"codigo\"\n                                    [autoDisplayFirst]=\"false\" formControlName=\"estado\" [required]=\"true\">\n                                </p-dropdown>\n                                <label for=\"id_estado\">{{'estado' | translate}} *</label>\n                            </span>\n                        </div>\n\n                        <!-- Seguimiento -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\"\n                            *ngIf=\"formBeneficiarioModel.get('descripcionEstadoSeguimiento').value\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"id_seguimiento\" formControlName=\"descripcionEstadoSeguimiento\"\n                                    [disabled]=\"isDeshabilitarCampo('descripcionEstadoSeguimiento')\">\n                                <label for=\"id_seguimiento\">{{'estado' | translate}} {{'seguimiento' |\n                                    translate}}</label>\n                            </span>\n                        </div>\n                    </ng-container>\n                </div>\n\n            </div>\n        </form>\n    </div>\n\n    <!--TABLA DOCUMENTOS -->\n    <div class=\"card\" *ngIf=\"listaTipoDocumento.length > 0\">\n\n        <div class=\"mt-4\">\n            <h5><i class=\"glyphicons glyphicons-file\"></i>{{'Documentos' | translate}}</h5>\n        </div>\n\n        <p-table #tablaGeneral id=\"tabla_listado_documentos\" [value]=\"listaTipoDocumento\" responsiveLayout=\"scroll\"\n            [rows]=\"10\" [paginator]=\"listaTipoDocumento.length > 10\" [totalRecords]=\"listaTipoDocumento.length\"\n            scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n            dataKey=\"llaveTabla\" [scrollable]=\"true\">\n\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 60%;\">{{'tipodocumento' | translate}}</th>\n                    <th style=\"width: 20%;\">{{'obligatorio' | translate}}</th>\n                    <th style=\"width: 20%;\"></th>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"body\" let-item>\n                <tr>\n                    <td style=\"width: 60%;\">{{item.nombreTipoDocumento}}</td>\n                    <td style=\"width: 20%;\">{{item.opcional | generalPipe:'listaSiNo'}}</td>\n                    <td class=\"flex justify-content-end\" style=\"width: 100%; text-align: right\">\n                        <!-- DESCARGAR -->\n                        <button pButton pRipple *ngIf=\"item.llaveArchivo\"\n                            class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only\"\n                            icon=\"pi pi-download\" (click)=\"descargarAnexo(item)\" type=\"file\"></button>\n\n                        <!-- AGREGAR -->\n                        <div id=\"btn-cargar-archivo-tabla\" class=\"ml-2\" style=\"margin-top: 12px;\"\n                            *ngIf=\"formBeneficiarioModel.get('estado').value != 'A' && !encuesta && !procesoAutorizacion &&\n                                        formBeneficiarioModel.get('estado').value == item.proceso && formBeneficiarioModel.get('identifica').value\">\n                            <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\"\n                                chooseIcon=\"pi pi-paperclip\" accept=\"application/pdf\"\n                                (onSelect)=\"cargarAnexo($event, fubauto, item)\" required=\"true\"></p-fileUpload>\n                        </div>\n                    </td>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n\n    <!-- FORMULARIO DINAMICO-->\n    <div class=\"card\" *ngIf=\"camposFormulario.length > 0 && formBeneficiarioModel.get('identifica').value\">\n        <div class=\"mt-4\">\n            <h5><i class=\"glyphicons glyphicons-user\"></i>{{nombreFormulario}}</h5>\n        </div>\n        <formulario-dinamico #formularioDinamico [editable]=\"!encuesta && !procesoAutorizacion\"\n            [campos]=\"camposFormulario\" [isMensaje]=\"false\"></formulario-dinamico>\n    </div>\n\n    <!--TABLA POR FORMALIZAR -->\n    <div class=\"card\" *ngIf=\"mostrarTablaXFormalizar\">\n\n        <div class=\"flex justify-content-between align-items-center mt-2 mb-3\">\n\n\n            <h5 style=\"margin-bottom:0px !important;\"><i class=\"glyphicons glyphicons-file\"></i>{{'tabla' | translate}}\n                {{'formalizar' | translate}}</h5>\n\n\n            <!-- Botón de nuevo-->\n            <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" (click)=\"verPopupMultipleFormalizacion()\"\n                icon=\"pi pi-plus\" class=\"p-button-secondary font-semibold\"></button>\n\n        </div>\n\n        <p-table id=\"tabla_detalle_por_formalizar\" [columns]=\"campos\" [value]=\"lstBeneficioFormalizacion\" [rows]=\"10\"\n            [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\" responsiveLayout=\"scroll\"\n            scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n            [paginator]=\"listaTipoDocumento.length > 10\" [totalRecords]=\"lstBeneficioFormalizacion.length\"\n            (onRowSelect)=\"verActionFormalizar($event)\" [(selection)]=\"formalizarSeleccionado\" dataKey=\"llaveTabla\"\n            selectionMode=\"single\" [scrollable]=\"true\">\n\n            <ng-template pTemplate=\"header\" let-columns>\n                <tr>\n                    <th style=\"min-width: 300px;\" *ngFor=\"let campo of columns\">\n                        {{ campo.descripcion }}\n                    </th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n                <tr [pSelectableRow]=\"rowData\">\n                    <td style=\"min-width: 300px;\" *ngFor=\"let campo of columns\">\n                        <ng-container *ngIf=\"!isDateType(rowData[campo.campo])\">\n                            {{ rowData[campo.campo] }}\n                        </ng-container>\n                        <ng-container *ngIf=\"isDateType(rowData[campo.campo])\">\n                            {{ rowData[campo.campo] | date: 'dd/MM/yyyy' }}\n                        </ng-container>\n                    </td>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>\n        </p-table>\n    </div>\n\n    <!-- TABLA RELACIÓN COSTO -->\n    <div class=\"card\" *ngIf=\"mostrarRelacionCosto\">\n\n        <div class=\"flex justify-content-between align-items-center mt-4 mb-3 \">\n\n\n            <h5><i class=\"glyphicons glyphicons-file\"></i>{{'tabla' | translate}}\n                {{'relacion' | translate}}\n                {{'costo' | translate}}</h5>\n\n\n            <!-- Botón de nuevo-->\n            <button pButton pRipple (click)=\"mostrarNuevo()\" label=\"{{'link_nuevo' | translate}}\"\n                class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                *ngIf=\"formBeneficiarioModel.get('estado').value == 'S'\"></button>\n\n        </div>\n\n        <p-table #tablaGeneral id=\"tabla_listado_relacion\" [value]=\"listaRelacionCosto\" responsiveLayout=\"scroll\"\n            [rows]=\"10\" [paginator]=\"listaRelacionCosto.length > 10\" [totalRecords]=\"listaRelacionCosto.length\"\n            scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n            dataKey=\"llaveTabla\" [scrollable]=\"true\">\n\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width:40%\">{{'tipocosto' | translate}}</th>\n                    <th style=\"width:30%\">{{'costo' | translate}}</th>\n                    <th style=\"width:22%\">{{'fecha' | translate}}</th>\n                    <th style=\"width:8%;\" *ngIf=\"formBeneficiarioModel.get('estado').value == 'S'\"></th>\n                </tr>\n                <tr *ngIf=\"vistaVisualizar == 'nuevo'\" class=\"TablaNuevoRegistro\">\n\n                    <td style=\"width:40%\">\n                        <p-dropdown #idTipoCosto=\"ngModel\" [options]=\"listaTipoCosto\" [required]=\"true\"\n                            [autoDisplayFirst]=\"false\" id=\"idTipoCosto\" [(ngModel)]=\"nuevoRegistro.tipoCosto\"\n                            optionLabel=\"label\" optionValue=\"key\" [required]=\"true\" appendTo=\"body\"\n                            [class.ng-dirty]=\"!utilsServices.validarCampoObligatorio(nuevoRegistro.tipoCosto) && clickGenerar\"\n                            [class.ng-invalid]=\"!utilsServices.validarCampoObligatorio(nuevoRegistro.tipoCosto)  && clickGenerar\">\n                        </p-dropdown>\n                    </td>\n\n                    <td style=\"width:30%\">\n                        <p-inputNumber #idCosto=\"ngModel\" class=\"w-full\" [required]=\"true\"\n                            [(ngModel)]=\"nuevoRegistro.costo\" mode=\"decimal\" inputId=\"withoutgrouping\"\n                            [useGrouping]=\"false\" [maxlength]=\"16\"\n                            [class.ng-dirty]=\"!utilsServices.validarCampoObligatorio(nuevoRegistro.costo) && clickGenerar\"\n                            [class.ng-invalid]=\"!utilsServices.validarCampoObligatorio(nuevoRegistro.costo)  && clickGenerar\">\n                        </p-inputNumber>\n                    </td>\n\n                    <td style=\"width:22%\">\n                        <p-calendar id=\"idFecha\" #idFecha=\"ngModel\" class=\"w-full\" [required]=\"true\"\n                            [(ngModel)]=\"nuevoRegistro.fecha\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"\n                            [class.ng-dirty]=\"!utilsServices.validarCampoObligatorio(nuevoRegistro.fecha) && clickGenerar\"\n                            [class.ng-invalid]=\"!utilsServices.validarCampoObligatorio(nuevoRegistro.fecha)  && clickGenerar\"></p-calendar>\n                    </td>\n\n                    <!-- BOTONES NUEVO REGISTRO -->\n                    <td style=\"width: 8%;\" class=\"text-right\">\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            (click)=\"crearRegistro(nuevoRegistro)\"></button>\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\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>\n                    </td>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-ri=\"rowIndex\">\n                <tr>\n                    <td style=\"width:40%\">{{listaObjTipoCosto[item.tipoCosto]}}</td>\n                    <td style=\"width:30%\">{{item.costo}}</td>\n                    <td style=\"width:22%\">{{item.fecha | date: 'dd/MM/yyyy' }}</td>\n                    <!-- BOTONES -->\n                    <td style=\"width: 8%; text-align: right\" *ngIf=\"formBeneficiarioModel.get('estado').value == 'S'\">\n                        <!-- ELIMINAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                            (click)=\"eliminarRegistro(item)\"\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>\n                    </td>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n\n    </div>\n\n    <!-- MENSAJE -->\n    <div class=\"cardInstrucciones mt-2\" *ngIf=\"formBeneficiarioModel.get('mensaje').value\">\n        <form [formGroup]=\"formBeneficiarioModel\" #formulario=\"ngForm\">\n            <div class=\"flex align-center\">\n                <div class=\"icono\">\n                    <i class=\"pi pi-bell text-xs\"></i>\n                </div>\n                <div>\n                    <label>{{formBeneficiarioModel.get('mensaje').value}}</label>\n                </div>\n            </div>\n        </form>\n    </div>\n\n    <!-- BOTONES -->\n    <div class=\"flex justify-content-end\" *ngIf=\"!encuesta && !procesoAutorizacion\">\n\n        <!-- SEGUIMIENTO -->\n        <div class=\"flex align-items-center gap-1 mr-3\"\n            *ngIf=\"controlFuncionService.getControlFuncionalidad('comseg:seguimiento') && verContenidoPrincipal\">\n            <p-checkbox class=\"ml-1 mr-2\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n            <label>{{'seguimiento' | translate}}</label>\n        </div>\n        <!--GUARDAR-->\n        <button pButton pRipple class=\"mr-2 p-button p-button-outlined background-100\"\n            *ngIf=\"controlFuncionService.getControlFuncionalidad('datpro:nuevo_beneficio') && isVerBtnActualizar() && verContenidoPrincipal\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n        </button>\n\n        <div class=\"splitbuttonOscuro\" *ngIf=\"verContenidoPrincipal\">\n            <!--CRUD BOTONES-->\n            <p-splitButton label=\"Acciones Beneficios\" icon=\"glyphicons glyphicons-list\" *ngIf=\"this.validarOpciones\"\n                [model]=\"itemsBotonAcciones\"></p-splitButton>\n        </div>\n\n        <!--ELIMINAR-->\n        <button pButton pRipple class=\"p-button-outlined\"\n            [ngClass]=\"{ 'ml-2': validarOpciones, 'm-0': !validarOpciones }\"\n            *ngIf=\"(controlFuncionService.getControlFuncionalidad('datpro:nuevo_beneficio') && !nuevo) && !isCliente() && !isVerBtnFormalizar() && verContenidoPrincipal\"\n            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar()\">\n        </button>\n    </div>\n</div>\n\n<div *ngIf=\"isPopupMultiple\">\n    <app-input-helper-multiple-formalizacion [showDialog]=\"isPopupMultiple\"\n        (regresar)=\"regresarPopupMultipleFormalizacion()\"> </app-input-helper-multiple-formalizacion>\n</div>\n\n<div *ngIf=\"isPopupSeguimiento\">\n    <app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"isPopupSeguimiento\"\n        (regresar)=\"regresarSeguimiento()\"></app-popup-seguimiento>\n</div>\n\n<div *ngIf=\"isPopupCambioPlan\">\n    <app-input-helper-cambio-plan-inversion [showDialog]=\"isPopupCambioPlan\"\n        (onSelected)=\"onSelectedCambioPlanInversion($event)\" (regresar)=\"regresarCambioPlanInversion()\">\n    </app-input-helper-cambio-plan-inversion>\n</div>\n\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"regresarPrincipal()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarPrincipal()\"></app-ejecucion-encuesta>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { DetalleBeneficiarioComponent } from '../../beneficios/detalle-beneficiario/detalle-beneficiario.component';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { BeneficioModel } from '../../../models/BeneficioModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { FiltroEmpleadoModel } from '../../../models/FiltroEmpleadoModel';\nimport { TipoBeneficioModel } from '../../../models/TipoBeneficioModel';\nimport { FiltroEmpleadoService } from '../../../services/filtro-empleado.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { BeneficioEmpleadoModel } from '../../../models/BeneficioEmpleadoModel';\nimport { BienestarPipe } from '../../../pipes/bienestar.pipe';\nimport { BienestarService } from '../../../services/bienestar.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FormsModule } from '@angular/forms';\nimport { EditorModule } from 'primeng/editor';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, TitleCasePipe } from '@angular/common';\n\n\n@Component({\n  selector: 'app-listado-convocatoria-beneficio',\n  templateUrl: './listado-convocatoria-beneficio.component.html',\n  styleUrls: ['./listado-convocatoria-beneficio.component.scss'],\n  standalone: true,\n  imports: [NgIf,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    EditorModule,\n    FormsModule,\n    ButtonDirective,\n    Ripple,\n    DetalleBeneficiarioComponent,\n    TitleCasePipe,\n    TranslateModule]\n})\nexport class ListadoConvocatoriaBeneficioComponent implements OnInit {\n\n  @ViewChild(DetalleBeneficiarioComponent) detalleBeneficiarioComponent;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  listaConvocatoria: BeneficioModel[] = [];\n  filtro: BeneficioModel;\n  filters = [];\n  visualizar: string = '';\n  seleccionado: any;\n  htmlSeguroItems: SafeHtml[];\n\n  constructor(private generalService: GeneralService, private menuService: MenuService, private authService: AuthService,\n    private filtroEmpleadoService: FiltroEmpleadoService, private saraAplicacionServices: SaraAplicacionService,\n    private toastService: ToastService, private bienestarPipe: BienestarPipe, private bienestarService: BienestarService,\n    private utilsServices: UtilsService, public sanitizer: DomSanitizer,) { }\n\n  async ngOnInit(): Promise<void> {\n    this.visualizar = '';\n    this.listaConvocatoria = [];\n    this.htmlSeguroItems = [];\n    this.cargarMigadePan();\n    await this.cargarListado();\n    await this.utilsServices.sleep(600);\n    this.utilsServices.resizeWindowIFrame();\n  }\n\n  cargarMigadePan() {\n    this.menuService.setBreadcrumb([{ label: 'Listado Convocatoria' }]);\n  }\n\n  async cargarListado() {\n\n    let filtroBeneficio = new BeneficioModel();\n    filtroBeneficio.consultaPublicacion = new Date();\n\n    let objetoFiltro: GeneralModel = new GeneralModel('BeneficioDTO', null, false, filtroBeneficio);\n    this.listaConvocatoria = await this.generalService.queryForList(objetoFiltro).toPromise();\n\n    await this.consultarArchivoPublicacion();\n\n    if (this.isCliente()) {\n      this.listaConvocatoria = await this.validarCondicionDerecho(this.listaConvocatoria);\n      return\n    }\n\n  }\n\n  async consultarArchivoPublicacion() {\n\n    if (this.listaConvocatoria.length > 0) {\n\n      this.listaConvocatoria.forEach(async beneficio => {\n\n        if (beneficio.htmlPublica) {\n          beneficio.htmlPublica = await this.bienestarService.consultarArchivoPublicacion(beneficio.htmlPublica).toPromise();\n          beneficio.htmlPublica = this.sanitizeHtml(beneficio.htmlPublica);\n        }\n      });\n    }\n  }\n\n  async validarCondicionDerecho(resultados: BeneficioModel[]): Promise<BeneficioModel[]> {\n\n    let retorno: BeneficioModel[] = [];\n    let filtroEmpleadoDTO = new FiltroEmpleadoModel;\n    let tipoBeneficioDTO = new TipoBeneficioModel();\n\n    for (let beneficioDTO of resultados) {\n\n      tipoBeneficioDTO = new TipoBeneficioModel();\n      tipoBeneficioDTO.llaveTabla = beneficioDTO.tipoBeneficio.toString();\n\n      let objetoFiltro: GeneralModel = new GeneralModel('TipoBeneficioDTO', null, false, tipoBeneficioDTO);\n      tipoBeneficioDTO = await this.generalService.queryForObject(objetoFiltro).toPromise();\n\n      filtroEmpleadoDTO = await this.filtroEmpleadoService.traerEmpleadoFiltro(await this.saraAplicacionServices.getCedula(), null, null, tipoBeneficioDTO.filtro, true);\n\n      if (filtroEmpleadoDTO == null) {\n        continue;\n      }\n\n      retorno.push(beneficioDTO);\n    }\n\n    return retorno;\n  }\n\n  async verAction(event) {\n\n    let beneficioTarifaModel = new BeneficioEmpleadoModel();\n    let beneficioModel = event\n    let tipoBeneficioModel = new TipoBeneficioModel();\n    tipoBeneficioModel.llaveTabla = beneficioModel.tipoBeneficio;\n\n    let filtro = new GeneralModel('TipoBeneficioDTO', null, false, tipoBeneficioModel);\n    tipoBeneficioModel = await this.generalService.queryForObject(filtro).toPromise();\n\n    beneficioTarifaModel.beneficioLlave = beneficioModel.llaveTabla;\n\n    let filtroEmpleadoDTO = new FiltroEmpleadoModel;\n\n    if (this.isCliente()) {\n      filtroEmpleadoDTO = new FiltroEmpleadoModel();\n      filtroEmpleadoDTO = await this.filtroEmpleadoService.traerEmpleadoFiltro(await this.saraAplicacionServices.getCedula(), null, null, tipoBeneficioModel.filtro, true);\n      if (filtroEmpleadoDTO == null) {\n        this.toastService.showWarning(\"No puede aplicar a este beneficio\");\n        return null;\n      }\n    }\n\n    this.visualizar = 'detalle';\n\n    let beneficioEmpleadoModel = new BeneficioEmpleadoModel();\n    beneficioEmpleadoModel.beneficioLlave = beneficioModel.llaveTabla;\n    beneficioEmpleadoModel.descripcionBeneficio = beneficioModel.descripcion;\n    beneficioEmpleadoModel.estado = this.bienestarPipe.SOLICITADO;\n\n    if (this.authService.getTokenKey('llaveRol') == \"C\") {\n      beneficioEmpleadoModel.fechaAdicionado = new Date();\n    }\n\n    beneficioEmpleadoModel.tipoBeneficio = tipoBeneficioModel.llaveTabla;\n    beneficioEmpleadoModel.descripcionTipo = tipoBeneficioModel.descripcion;\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(500);\n    this.seleccionado = null;\n    await this.detalleBeneficiarioComponent.cargar(beneficioEmpleadoModel, true, \"LISTA_CONVOCATORIA_BENEFICIO\");\n    await this.detalleBeneficiarioComponent.onSelectEmpleadoFiltro(filtroEmpleadoDTO);\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  async regresarTareaConvocatoria(event) {\n    this.visualizar = '';\n    this.cargarMigadePan();\n    this.cargarListado();\n\n    await this.utilsServices.sleep(600);\n    this.utilsServices.resizeWindowIFrame();\n  }\n\n  sanitizeHtml(html: string) {\n\n    // Expresión regular para detectar <img src=\"data:image/png;base64,{{...}}\">\n    const imgBase64Pattern = /<img[^>]+src=\"data:image\\/[^;]+;base64,\\{\\{.*?\\}\\}\"[^>]*>/g;\n\n    // Expresión regular para detectar <img src=\"...repodoc/recursos...\">\n    const imgResourcePattern = /<img[^>]+src=\"[^\"]*repodoc\\/recursos[^\"]*\"[^>]*>/g;\n\n    // Reemplazar imágenes que cumplen con las condiciones especificadas\n    let sanitizedHtml = html.replace(imgBase64Pattern, '<img $1src=\"\" title=\"Imagen no encontrada\"$2>');\n    sanitizedHtml = sanitizedHtml.replace(imgResourcePattern, '<img $1src=\"\" title=\"Imagen no encontrada\"$2>');\n\n    return sanitizedHtml;\n  }\n\n}\n","<div id=\"id_listado_convocatoria_beneficio\" *ngIf=\"visualizar == ''\">\n\n    @if(!isCliente()){\n    <h1 class=\"mb-3\">{{'convocatoria' | translate}}</h1>\n    }\n\n    <p-table #tablaGeneral id=\"tabla_listado_convocatoria_beneficio\" [value]=\"listaConvocatoria\"\n        responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listaConvocatoria.length > 10\"\n        [totalRecords]=\"listaConvocatoria.length\" scrollDirection=\"horizontal\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        styleClass=\"p-datatable-gridlines\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\" rowGroupMode=\"subheader\" groupRowsBy=\"descripcion\"\n        [scrollable]=\"true\">\n\n        <ng-template pTemplate=\"groupheader\" let-i>\n            <tr pRowGroupHeader>\n                <td colspan=\"\">\n                    {{i.descripcion | titlecase }}\n                </td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-item let-i=\"index\">\n            <tr>\n                <td td class=\"block initial\">\n\n                    <div [innerHTML]=\"this.sanitizer.bypassSecurityTrustHtml(item.htmlPublica)\"></div>\n\n                    <!-- Botón Solicitud -->\n                    <div class=\"text-center p-5 block\">\n                        <button style=\"min-width: 400px;\" pButton pRipple type=\"button\" (click)=\"verAction(item)\"\n                            label=\"{{'solicitar' | translate}}\" icon=\"\" class=\"p-button-raised font-semibold\"></button>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n</div>\n<div *ngIf=\"visualizar == 'detalle'\">\n    <app-detalle-beneficiario (regresarConvocatoria)=\"regresarTareaConvocatoria($event)\"></app-detalle-beneficiario>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UtilsService } from 'general-library-union';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { MenuItem } from 'primeng/api';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MenubarModule } from 'primeng/menubar';\n\n\n@Component({\n    selector: 'app-beneficio-menu-bienestar',\n    templateUrl: './beneficio-menu-bienestar.component.html',\n    styleUrls: ['./beneficio-menu-bienestar.component.scss'],\n    standalone: true,\n    imports: [MenubarModule]\n})\nexport class BeneficioMenuBienestarComponent implements OnInit {\n\n   //Menu front\n   items: MenuItem[];\n   vistaVisualizar: string;\n \n   constructor(private router: Router, public utilsService: UtilsService, private translateService: TranslateService,) { }\n \n   ngOnInit(): void {\n     this.cargarMenu();\n   }\n \n   private cargarMenu() {\n \n     this.items = [\n       {\n         label: this.translateService.instant('listabeneficiarios'),\n         icon: ImagenesCons.group ,\n         command: (event) => {\n           this.router.navigate([this.utilsService.obtenerBase() + '/bienestar/beneficio/listaBeneficiario'])\n         }\n       },\n       {\n        label: this.translateService.instant('listabeneficiariosporformalizar'),\n         icon: ImagenesCons.left_indent,\n         command: (event) => {  this.router.navigate([this.utilsService.obtenerBase() + '/bienestar/beneficio/listaBeneficiarioPorFormalizar']); }\n       }\n     ];\n   }\n \n\n}\n","<p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ParametrosGeneralesService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsServices: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  obtenerCamposAnotacion(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/obtenerCamposAnotacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizaFormalizaMasivo(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsServices.obtenerUrlApi()}/requieretoken/bienestar/legalizaFormalizaMasivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { BeneficioEmpleadoModel } from '../../../models/BeneficioEmpleadoModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, GeneralService, MenuService, ParametrosGeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BienestarPipe } from '../../../pipes/bienestar.pipe';\nimport { TipoBeneficioModel } from '../../../models/TipoBeneficioModel';\nimport { ParametrosGeneralesService } from '../../../services/parametros-generales.service';\nimport { DetalleBeneficiarioComponent } from '../detalle-beneficiario/detalle-beneficiario.component';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BeneficioMenuBienestarComponent } from '../beneficio-menu-bienestar/beneficio-menu-bienestar.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { firstValueFrom } from 'rxjs';\n\n@Component({\n  selector: 'app-listado-beneficiario',\n  templateUrl: './listado-beneficiario.component.html',\n  styleUrls: ['./listado-beneficiario.component.scss'],\n  standalone: true,\n  imports: [NgIf,\n    BeneficioMenuBienestarComponent,\n    FormsModule,\n    ReactiveFormsModule,\n    InputTextModule,\n    InputHelperEmpleadoBotonComponent,\n    DropdownModule,\n    ButtonDirective,\n    Ripple,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    CheckboxModule,\n    DetalleBeneficiarioComponent,\n    DatePipe,\n    TranslateModule,\n    BienestarPipe,\n    FiltroGeneralComponent]\n})\nexport class ListadoBeneficiarioComponent implements OnInit {\n\n  @ViewChild(DetalleBeneficiarioComponent) detalleBeneficiarioComponent;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  listaBeneficios: BeneficioEmpleadoModel[] = [];\n  filtro: BeneficioEmpleadoModel;\n  filters = [];\n  visualizar: string = '';\n  seleccionado: any;\n  nombreEmpleado: any;\n  url: string;\n  cedula: number;\n  listaTipoBeneficios: any;\n  objTipoBeneficio: any;\n  empleadoSeleccionado: BeneficioEmpleadoModel;\n  seleccionar: boolean = true;\n  seleccionarTodo: boolean = false;\n  verBotonMasivo: boolean;\n\n  listaEstados;\n  comodinFiltro: any;\n  filtroRegresar: FiltroGeneralComponent;\n  estado: string;\n  tipoBeneficio: string;\n  listaCheckBeneficiarios: BeneficioEmpleadoModel[];\n  algunoConCheckTrue: boolean;\n  filtroDocumento: string;\n\n  constructor(private generalService: GeneralService, private menuService: MenuService, public translateService: TranslateService,\n    private authService: AuthService, private bienestarPipe: BienestarPipe, private cargarMapas: cargarmapasGlobal,\n    private controlFuncionalidad: CargarControlFuncionalidadService, private toastService: ToastService,\n    private bienestarService: ParametrosGeneralesService, public utilsService: UtilsService, private saraAplicacionServices: SaraAplicacionService,\n    public controlFuncionService: CargarControlFuncionalidadService, private utilsServices: UtilsService) { }\n\n  async ngOnInit(): Promise<void> {\n    this.listaEstados = this.bienestarPipe.ESTADO_BENEFICIARIO.sort((a, b) => a.nombre.toLowerCase().localeCompare(b.nombre.toLowerCase()));\n    this.visualizar = '';\n    this.cargarFiltro();\n    this.listaCheckBeneficiarios = [];\n    this.algunoConCheckTrue = false;\n\n    //Permite Inicializar el componente del filtro\n    await this.utilsService.sleep(100);\n    this.url = window.location.href;\n    this.empleadoSeleccionado = new BeneficioEmpleadoModel();\n    this.filtro = new BeneficioEmpleadoModel();\n    this.cargarMigadePan();\n    this.cargarListadoIniciales();\n    this.estado = null;\n\n    if (!this.isCliente()) {\n      this.estado = 'S';\n    }\n\n    //Permite cargar el html con el método de busqueda que tiene el filtro\n    await this.utilsService.sleep(100);\n    this.filtroItem.aplicarFiltros();\n  }\n\n  cargarMigadePan() {\n    this.menuService.setBreadcrumb([{ label: 'Listado Beneficiario' }]);\n  }\n\n  async cargarListadoIniciales() {\n\n    let tipoBeneficioModel = new TipoBeneficioModel();\n    tipoBeneficioModel.hijoPadre = 'H';\n    this.listaTipoBeneficios = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoBeneficioDTO', null, false, tipoBeneficioModel));\n\n    this.objTipoBeneficio = await this.listaTipoBeneficios.reduce((obj, area) => {\n      obj[area.key] = area.label;\n      return obj;\n    }, {});\n  }\n\n  cargarFiltro() {\n    this.filters = [\n      {\n        field: 'documentoHoja',\n        header: this.translateService.instant('documento'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'nombreEmpleado',\n        header: this.translateService.instant('nombre') + ' ' + this.translateService.instant('empleado'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'tipoBeneficio',\n        header: this.translateService.instant('tipobeneficio'),\n        values: (value) => this.objTipoBeneficio[value],\n        matchMode: 'equals',\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (value) => this.bienestarPipe.transform(value, 'listaestadobeneficiario'),\n        matchMode: 'equals',\n      },\n    ];\n  }\n\n  async cargarListado(event) {\n\n    this.filtroRegresar = this.filtroItem;\n\n    this.filtro = new BeneficioEmpleadoModel();\n\n    if (!event['nombreEmpleado']) {\n      this.empleadoSeleccionado = new BeneficioEmpleadoModel();\n    }\n\n    if (!(await this.colocarFiltro(event))) {\n      this.listaBeneficios = [];\n      return;\n    }\n\n    this.seleccionarTodo = false;\n    this.seleccionar = true;\n\n    let objetoFiltro: GeneralModel = new GeneralModel('BeneficioEmpleadoDTO', null, false, this.filtro);\n\n    this.listaBeneficios = await firstValueFrom(this.generalService.queryForList(objetoFiltro));\n\n    this.verBotonMasivo = await this.verificarProcesoMasivo(this.listaBeneficios);\n\n    await this.utilsService.sleep(100);\n    this.utilsServices.resizeWindowIFrame();\n\n  }\n\n  async colocarFiltro(event): Promise<boolean> {\n\n    let buscar = false;\n\n    if (event['tipoBeneficio']) {\n      this.filtro.tipoBeneficio = event['tipoBeneficio'] ? event['tipoBeneficio']['value'] : null;\n      buscar = true;\n    }\n\n    if (event['estado']) {\n      this.filtro.estado = event['estado'] ? event['estado']['value'] : null;\n      buscar = true;\n    }\n\n    if (this.isCliente()) {\n      this.filtro.identifica = await this.saraAplicacionServices.getCedula();\n      return true;\n    }\n\n    if (event['nombreEmpleado']) {\n      this.filtro.nombreCompleto = this.empleadoSeleccionado.nombreCompleto;\n      this.filtro.identifica = this.empleadoSeleccionado.identifica;\n      this.filtro.contrato = this.empleadoSeleccionado.contrato;\n      this.filtro.documentoHoja = this.empleadoSeleccionado.documentoHoja;\n      buscar = true;\n    }\n\n    if (event['documentoHoja']) {\n      this.filtro.documentoHoja = event['documentoHoja'] ? event['documentoHoja']['value'] : null;\n      buscar = true;\n    }\n\n    return buscar;\n  }\n\n  cargarListaFiltros(event) {\n\n    if (event) {\n      this.comodinFiltro = event;\n    }\n\n    this.cargarListado(event);\n  }\n\n  estadoCheck(dato: any) {\n\n    let isvalidar = false;\n\n    for (let per of this.listaBeneficios) {\n      if (!per.check) {\n        isvalidar = true;\n        break;\n      }\n    }\n\n    if (isvalidar) {\n      this.seleccionar = true;\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionar = false;\n      this.seleccionarTodo = true;\n    }\n\n  }\n\n  async verificarProcesoMasivo(lista: BeneficioEmpleadoModel[]): Promise<boolean> {\n\n    let existe = false;\n\n    if (lista.length == 0) {\n      return existe;\n    }\n\n    if (this.filtro.estado != null && (this.filtro.estado == this.bienestarPipe.SOLICITADO || this.filtro.estado == this.bienestarPipe.APROBADO)) {\n\n      existe = await this.validarControlFuncionalidad(\"datpro:legalizarValor\");\n\n      for (let unBeneficio of lista) {\n        unBeneficio.cantidadCampo = 0;\n      }\n\n      //Mantener los registro seleccionados para legalizar\n      if (this.listaCheckBeneficiarios.length > 0) {\n        this.listaCheckBeneficiarios.forEach(obj_temporal => {\n          const obj_en_lista = this.listaBeneficios.find(obj => obj.llaveTabla === obj_temporal.llaveTabla);\n\n          if (obj_en_lista) {\n            obj_en_lista.check = obj_temporal.check;\n          }\n\n        });\n      }\n\n      this.listaCheckBeneficiarios = [];\n    }\n\n    return existe;\n  }\n\n  async validarControlFuncionalidad(valor: string): Promise<boolean> {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  async legalizar() {\n    this.cambioEstadoMasivo(this.bienestarPipe.ASIGNADO);\n  }\n\n\n  async cambioEstadoMasivo(estadoMasivo: string) {\n\n    try {\n\n      let lista: BeneficioEmpleadoModel[] = [];\n\n      for (let beneficioEmpleadoDTO of this.listaBeneficios) {\n        if (beneficioEmpleadoDTO.check) {\n          lista.push(beneficioEmpleadoDTO);\n        }\n      }\n      if (lista.length == 0) {\n        this.toastService.showWarning('No se presentó registro seleccionado');\n        return;\n      }\n\n      //Obtener listado de campos\n      let filtro: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, {\n        listaBeneficio: lista, estadoMasivo: estadoMasivo\n      });\n\n      await this.bienestarService.legalizaFormalizaMasivo(filtro).toPromise();\n\n      this.toastService.showSuccess('Proceso se ejecutó normalmente');\n\n      this.filtroItem.aplicarFiltros();\n      this.cargarListaFiltros(this.comodinFiltro);\n\n    } catch (error) {\n      this.toastService.showError(error.error.mensaje);\n    }\n  }\n\n  async verAction(event) {\n\n    this.visualizar = 'detalle';\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n    this.seleccionado = null;\n    this.detalleBeneficiarioComponent.cargar(event.data, false, \"LISTA_BENEFICIARIOS\");\n\n  }\n\n  async agregar() {\n\n    this.visualizar = 'detalle';\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(10);\n    this.seleccionado = null;\n    this.detalleBeneficiarioComponent.nuevoBeneficio(\"LISTA_BENEFICIARIOS\");\n  }\n\n  onSelectEmpleado(evento) {\n    this.empleadoSeleccionado.nombreCompleto = evento.nombreCompleto;\n    this.empleadoSeleccionado.identifica = evento.cedula;\n    this.empleadoSeleccionado.contrato = evento.contrato;\n    this.empleadoSeleccionado.documentoHoja = evento.documento.trim();\n    this.nombreEmpleado = evento.nombreCompleto;\n    this.filtroDocumento = this.empleadoSeleccionado.documentoHoja;\n  }\n\n  async regresarTarea(event) {\n\n    if (this.listaBeneficios.length > 0 && (this.filtro.estado == this.bienestarPipe.SOLICITADO || this.filtro.estado == this.bienestarPipe.APROBADO)) {\n\n      this.listaBeneficios.forEach(objeto => {\n        if (objeto.check === true) {\n          this.listaCheckBeneficiarios.push({ ...objeto });\n        }\n      });\n    }\n\n    this.visualizar = '';\n    this.seleccionado = null;\n    await this.utilsService.sleep(100);\n    this.cargarMigadePan();\n    this.filtroItem.filterForm = event.filtroItem.filterForm;\n    this.filtroItem.chips = event.filtroItem.chips;\n    this.filtroItem.aplicarFiltros();\n\n    await this.utilsService.sleep(500);\n    this.utilsServices.resizeWindowIFrame();\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  filtrarEnter(event) {\n    if (event.key === 'Enter') {\n      this.filtroItem.aplicarFiltros();\n    }\n  }\n}\n","<div id=\"id_listado_beneficiario\" *ngIf=\"visualizar == ''\">\n\n    @if(!isCliente()){\n    <h1 class=\"mb-3\">{{'beneficio' | translate}}</h1>\n    }\n\n    <!-- Menu Superior -->\n    <app-beneficio-menu-bienestar *ngIf=\"!isCliente()\"></app-beneficio-menu-bienestar>\n\n    <h4 *ngIf=\"!isCliente()\" class=\"mb-0 text-xl\">{{'listabeneficiarios' | translate}}</h4>\n\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-3\">\n\n        <!-- Filtro-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\" *ngIf=\"!isCliente()\">\n                        <!-- DOCUMENTO -->\n                        <span class=\"p-float-label\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" formControlName=\"documentoHoja\" [maxlength]=\"16\"\n                                    (keydown)=\"filtrarEnter($event)\" [(ngModel)]=\"filtroDocumento\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" />\n                                <label for=\"id_documento\"> {{'documento' | translate}}</label>\n                            </span>\n\n                        </span>\n                    </div>\n                    <div class=\"field\" *ngIf=\"!isCliente()\">\n                        <app-input-helper-empleado-boton formControlName=\"nombreEmpleado\"\n                            [label]=\"nombreEmpleado != null ? nombreEmpleado : ''\" [(ngModel)]=\"nombreEmpleado\"\n                            (onSelected)=\"onSelectEmpleado($event)\"\n                            [nombreInput]=\"this.translateService.instant('nombre')\">\n                        </app-input-helper-empleado-boton>\n                    </div>\n\n                    <div class=\"field\">\n                        <!-- TIPO BENEFICIO-->\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_tipo_beneficio\" [options]=\"listaTipoBeneficios\" optionLabel=\"label\"\n                                optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"tipoBeneficio\"\n                                [showClear]=\"true\" [(ngModel)]=\"tipoBeneficio\"></p-dropdown>\n                            <label for=\"id_areas_bienestar\">{{'tipobeneficio' | translate}}</label>\n                        </span>\n                    </div>\n\n                    <div class=\"field\">\n                        <!-- ESTADO-->\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_estado\" [options]=\"listaEstados\" optionLabel=\"nombre\"\n                                optionValue=\"codigo\" [autoDisplayFirst]=\"false\" formControlName=\"estado\"\n                                [showClear]=\"true\" [(ngModel)]=\"estado\"></p-dropdown>\n                            <label for=\"id_estado\">{{'estado' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n\n        <div class=\"flex justify-content-end\">\n            <!-- Legalizar -->\n            <button pButton pRipple class=\"p-button-outlined claro\" *ngIf=\"listaBeneficios.length > 0 && verBotonMasivo\"\n                icon=\"glyphicons glyphicons-file\" label=\"{{'legalizar' | translate}}\" (click)=\"legalizar()\">\n            </button>\n            <!-- Botón de nuevo-->\n            <button pButton pRipple (click)=\"agregar()\" label=\"Nuevo\" icon=\"pi pi-plus\"\n                *ngIf=\"controlFuncionService.getControlFuncionalidad('datpro:nuevo_beneficio') && !isCliente()\"\n                class=\"p-button-secondary font-semibold flex-shrink-0 ml-2\"></button>\n        </div>\n\n    </div>\n\n    <p-table #tablaGeneral id=\"tabla_listado_beneficiario\" [value]=\"listaBeneficios\" responsiveLayout=\"scroll\"\n        [rows]=\"10\" [paginator]=\"listaBeneficios.length > 10\" [totalRecords]=\"listaBeneficios.length\"\n        scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        selectionMode=\"single\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\" (onRowSelect)=\"verAction($event)\"\n        [(selection)]=\"seleccionado\" [scrollable]=\"true\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"max-width:50px\" *ngIf=\"listaBeneficios.length > 0 && verBotonMasivo\"></th>\n                <th *ngIf=\"!isCliente()\">{{'contrato' | translate}}</th>\n                <th *ngIf=\"!isCliente()\">{{'documento' | translate}}</th>\n                <th *ngIf=\"!isCliente()\">{{'nombre' | translate}}</th>\n                <th>{{'nombrebeneficiario' | translate}}</th>\n                <th>{{'tipobeneficio' | translate}}</th>\n                <th>{{'fechaasignacion' | translate}}</th>\n                <th>{{'estado' | translate}}</th>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-item>\n            <tr [pSelectableRow]=\"item\">\n                <td style=\"max-width:50px\" *ngIf=\"listaBeneficios.length > 0 && verBotonMasivo\">\n                    <div class=\"field-checkbox\">\n                        <p-checkbox class=\"ml-1\" [(ngModel)]=\"item.check\" [binary]=\"true\" (onChange)=\"estadoCheck(item)\"\n                            (click)=\"$event.stopPropagation()\">\n                        </p-checkbox>\n                    </div>\n                </td>\n                <td *ngIf=\"!isCliente()\">{{item.contrato}}</td>\n                <td *ngIf=\"!isCliente()\">{{item.documentoHoja}}</td>\n                <td *ngIf=\"!isCliente()\">{{item.nombreCompleto}}</td>\n                <td>{{item.nombreBeneficiario}}</td>\n                <td>{{item.descripcionTipo}}</td>\n                <td>{{item.asignacion | date:('formatofecha'|translate)}}</td>\n                <td>{{item.estado | bienestar:'listaestadobeneficiario'}}</td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n</div>\n<div *ngIf=\"visualizar == 'detalle'\">\n    <app-detalle-beneficiario (regresar)=\"regresarTarea($event)\" [comodinFiltro]=\"comodinFiltro\"\n        [filtroItem]=\"filtroRegresar\"></app-detalle-beneficiario>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CargarArchivosService } from '../../../../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../../../../shared/servicios/encriptado-basico.service';\nimport { AuthService } from 'general-library-union';\nimport { EventoModel } from '../../../../../../../../modules/capacitacion/models/EventoModel';\nimport { EmpleadoModel } from '../../../../../../../../modules/compensacion/models/EmpleadoModel';\nimport { EvaluacionEntPruModel } from '../../../../../../../../modules/talento/models/EvaluacionEntPruModel';\nimport { ProcesoSeleccionModel } from '../../../../../../../../modules/talento/models/ProcesoSeleccionModel';\nimport { ParametrosEvaluacionPipe } from '../../../../../../../talento/pipes/parametros-evaluacion.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf, DatePipe } from '@angular/common';\n\n\n\n@Component({\n    selector: 'app-cabecera-evaluacion-evento-empleado',\n    templateUrl: './cabecera-evaluacion-evento-empleado.component.html',\n    styleUrls: ['./cabecera-evaluacion-evento-empleado.component.scss'],\n    standalone: true,\n    imports: [NgIf, DatePipe, TranslateModule, ParametrosEvaluacionPipe]\n})\nexport class CabeceraEvaluacionEventoEmpleadoComponent implements OnInit {\n\n\n  @Input() public evento: EventoModel;\n  @Input() public proceso: ProcesoSeleccionModel;\n  @Input() public evaluacion: EvaluacionEntPruModel;\n  public urlFoto: string;\n  @Input() public empleado: EmpleadoModel;\n  constructor(\n    private encriptadoBasico: EncriptadoBasicoService,\n    private authService: AuthService,\n    private cargarArchivo: CargarArchivosService) { }\n\n  ngOnInit(): void {\n    if (this.empleado !== undefined && this.empleado !== null) {\n      this.cargarImagenFoto();\n      if (this.empleado.unidadFuncion != null && this.empleado.cargoFuncion != null && this.empleado.turnoFuncion != null) {\n        if (this.empleado.unidadFuncion.trim() != '.' && this.empleado.cargoFuncion.trim() != '.' && this.empleado.turnoFuncion != 0) {\n\n        }\n      }\n    }\n  }\n\n  cargarImagenFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    \n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.empleado.nombreFoto + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n      this.blobToBase64(blob)\n    });\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  getNombreCompleto() {\n    if (this.empleado.segundoApellido != null || this.empleado.segundoApellido != undefined) {\n      if (this.empleado.primerApellido != null || this.empleado.primerApellido != undefined) {\n        if (this.empleado.nombres != null || this.empleado.nombres != undefined) {\n          this.empleado.nombreCompleto = this.empleado.primerApellido + ' ' + this.empleado.segundoApellido + ' ' + this.empleado.nombres;\n        } else {\n          this.empleado.nombreCompleto = this.empleado.primerApellido + ' ' + this.empleado.segundoApellido + ' ';\n        }\n      } else {\n        this.empleado.nombreCompleto = ' ' + this.empleado.segundoApellido + ' ' + this.empleado.nombres;\n      }\n    } else {\n      if (this.empleado.primerApellido != null || this.empleado.primerApellido != undefined) {\n        if (this.empleado.nombres != null || this.empleado.nombres != undefined) {\n          this.empleado.nombreCompleto = this.empleado.primerApellido + ' ' + this.empleado.nombres;\n        } else {\n          this.empleado.nombreCompleto = this.empleado.primerApellido + ' ';\n        }\n      } else {\n        this.empleado.nombreCompleto = ' ';\n      }\n    }\n    return this.empleado.nombreCompleto\n  }\n\n\n}\n","<div class=\"empleado\" style=\"justify-content: center; align-items: center\">\n  <div class=\"flex\">\n    <div class=\"col-md-2\" style=\"display: flex; justify-content: center; align-items: center\">\n      <div class=\"avatar-container\">\n        <img [src]=\"urlFoto\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"urlFoto\" />\n        <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"!urlFoto\"\n        />\n      </div>\n    </div>\n    <div class=\"col-md-10\">\n      <div class=\"p-fluid p-formgrid grid\" *ngIf=\"evaluacion.origen != 'S'\">\n        <h1 class=\"w-full mb-3 mt-3 ml-2\">{{ empleado.documento }} - {{ empleado.nombreCompleto }}</h1>\n\n          <div class=\"col-6 md:col-3 lg:col-3\">\n            <p>\n              <span class=\"font-medium\">{{ \"estado\" | translate }}: </span><br />\n              <span>{{ evaluacion?.estado | parametrosEvaluacionPipe : 'listaestadoevaluacionpru' }}</span>\n            </p>\n          </div>\n\n          <div class=\"col-6 md:col-3 lg:col-3\">\n            <p>\n              <span class=\"font-medium\">{{ \"evaluador\" | translate }}: </span><br />\n              <span>{{ evaluacion?.evalua }} - {{evaluacion?.nombreCompletoEvalua}}</span>\n            </p>\n          </div>\n\n          <div class=\"col-6 md:col-3 lg:col-3\" *ngIf=\"evento?.origen != 'B'\">\n            <p>\n              <span class=\"font-medium\">{{ \"curso\" | translate }}: </span><br />\n              <span>{{ evento?.nombreCurso }}</span>\n            </p>\n          </div>\n\n          <div class=\"col-6 md:col-3 lg:col-3\">\n            <p>\n              <span class=\"font-medium\">{{ \"numero\" | translate }} / {{ \"intensidadhoraria\" | translate }}: </span><br />\n              <span>{{ evento?.numero }} /  {{evento?.intensidad}}</span>\n            </p>\n          </div>\n\n          <!--evaluador-->\n          <div class=\"col-6 md:col-3 lg:col-3\">\n            <p>\n              <span class=\"font-medium\">{{ \"fechainicial\" | translate }}: </span><br />\n              <span>{{ evento?.fechaInicial | date : ('formatofecha' | translate) }}</span>\n            </p>\n          </div>\n\n          <!--evaluador-->\n          <div class=\"col-6 md:col-3 lg:col-3\">\n            <p>\n              <span class=\"font-medium\">{{ \"fechafinal\" | translate }}: </span><br />\n              <span>{{ evento?.fechaFinal | date : ('formatofecha' | translate) }}</span>\n            </p>\n          </div>\n\n          <!--evaluador-->\n          <div class=\"col-6 md:col-3 lg:col-3\">\n            <p>\n              <span class=\"font-medium\">{{ \"evento\" | translate }}: </span><br />\n              <span>{{ evento.origen != 'B' ? evento?.descripcion : evento.nombre }}</span>\n            </p>\n          </div>\n\n          <!--evaluador-->\n          <div class=\"col-6 md:col-3 lg:col-3\">\n            <p>\n              <span class=\"font-medium\">{{ \"lugar\" | translate }} {{ \"realizacion\" | translate }}: </span><br />\n              <span>{{ evento?.nombreUbicacionGeografica }}</span>\n            </p>\n          </div>\n      </div>\n      <div class=\"p-fluid p-formgrid grid\" *ngIf=\"evaluacion.origen == 'S'\">\n        <h1 class=\"w-full mb-3 mt-3 ml-2\">{{ empleado.documento }} - {{ empleado.nombreCompleto }}</h1>\n\n          <div class=\"col-6 md:col-4 lg:col-4\">\n            <p>\n              <span class=\"font-medium\">{{ \"estado\" | translate }}: </span><br />\n              <span>{{ evaluacion?.estado | parametrosEvaluacionPipe : 'listaestadoevaluacionpru' }}</span>\n            </p>\n          </div>\n          <div class=\"col-6 md:col-4 lg:col-4\">\n            <p>\n              <span class=\"font-medium\">{{ \"evaluador\" | translate }}: </span><br />\n              <span>{{ evaluacion?.documentoEvalua }} - {{evaluacion?.nombreCompletoEvalua}}</span>\n            </p>\n          </div>\n          <div class=\"col-6 md:col-4 lg:col-4\">\n            <p>\n              <span class=\"font-medium\">{{ \"unidad\" | translate }}: </span><br />\n              <span>{{ proceso?.nombreunidad}}</span>\n            </p>\n          </div>\n          <div class=\"col-6 md:col-4 lg:col-4\">\n            <p>\n              <span class=\"font-medium\">{{ \"cargo\" | translate }}: </span><br />\n              <span>{{ proceso?.nombrecargo}}</span>\n            </p>\n          </div>\n          <div class=\"col-6 md:col-4 lg:col-4\">\n            <p>\n              <span class=\"font-medium\">{{ \"empresa\" | translate }}: </span><br />\n              <span>{{ proceso?.nombreempresa}}</span>\n            </p>\n          </div>\n          <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"proceso?.consecutivoReq\">\n            <p>\n              <span class=\"font-medium\">{{ \"consecutivo\" | translate }}: </span><br />\n              <span>{{ proceso?.consecutivoReq}}</span>\n            </p>\n          </div>\n          <div class=\"col-6 md:col-4 lg:col-4\" *ngIf=\"proceso?.numero\">\n            <p>\n              <span class=\"font-medium\">{{ \"numero\" | translate }}: </span><br />\n              <span>{{ proceso?.numero}}</span>\n            </p>\n          </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { UnionModel } from 'general-library-union'\n\n\nexport class EvaluacionFactorModel extends UnionModel {\n\n    \n    //Identificador único de esta respuesta\n    llave: string;\n    //La llave del factor de evaluacion al cual corresponde esta respuesta\n\tfactorEntrevistaPrueba: string;\n\tpuntaje: number;\n\tresumen: string;\n\tvalor: string;\n\tdato: Date;\n\tvalorCalifica: string;\n\t//La llave de la instancia de evaluacion a la cual corresponde esta respuesta\n\tevaluacionEntPru: string;\n\t//consulta  y resultado del validador\n\tselect: string;\n\tvalorValidador: number;\n\t//usado para anexos en las evaluaciones\n\tllaveTemporal: string;\n\n\t\n}","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { EvaluacionEntPruModel } from '../models/EvaluacionEntPruModel';\nimport { ParametrosEvaluacionPipe } from '../pipes/parametros-evaluacion.pipe';\nimport { EvaluacionFactorModel } from '../models/EvaluacionFactorModel';\nimport { AsistenteEventoModel } from '../../capacitacion/models/AsistenteEventoModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EvaluacionEntPruService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService, private utilsService: UtilsService,\n    private parametrosEvaluacionPipe: ParametrosEvaluacionPipe) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async cambiarEstadoEvaluacion(evaluacion: EvaluacionEntPruModel) {\n\n    if (evaluacion.estado == this.parametrosEvaluacionPipe.NO_DILIGENCIA) {\n      // Elimina las respuestas dadas previamente para la evaluacion que\n      // se quiere cambiar a estado NO DILIGENCIADA\n      let filtroRespuestas = new EvaluacionFactorModel();\n      filtroRespuestas.evaluacionEntPru = evaluacion.llaveTabla;\n\n      let filtro = new GeneralModel('EvaluacionFactorDTO', null, false, filtroRespuestas);\n      let respuestasEvaluacion = await this.generalService.queryForList(filtro).toPromise();\n\n      for (let evaluacionFactorDTO of respuestasEvaluacion) {\n        let filtroEliminar = new GeneralModel('evaluacionFactorDTO', null, false, evaluacionFactorDTO);\n        await this.generalService.delete(filtroEliminar).toPromise();\n      }\n    }\n\n    let filtroUpdate = new GeneralModel('EvaluacionEntPruDTO', null, false, evaluacion);\n    await this.generalService.update(filtroUpdate).toPromise();\n  }\n\n  programarEvaluacionCapacitacion(llaveEventoModel: string, entrevistaPruebaModel: string, origenModel: string,\n    tipoTablaModel: string, notificarCorreoModel: string, fechaLimite: Date, listadoAsistenteModel: AsistenteEventoModel[]\n  ) {\n    const data = {\n      llaveEventoModel: llaveEventoModel,\n      entrevistaPruebaModel: entrevistaPruebaModel,\n      origenModel: origenModel,\n      tipoTablaModel: tipoTablaModel,\n      notificarCorreoModel: notificarCorreoModel,\n      fechaLimiteModel: fechaLimite,\n      listadoAsistenteModel: listadoAsistenteModel\n    };\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/evento/programarEvaluacionCapacitacion`;\n    const req = new HttpRequest('POST', url, data, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError));\n  }\n\n  programarEvaluacionInstructor(idInstructor: string, llaveTabla: string, entrevistaPrueba: string, origen: string, tipoTabla: string, notificar: string,\n    fechaLimite: Date, listaSeleccionados: AsistenteEventoModel[]) {\n    const data = {\n      idInstructorModel: idInstructor,\n      llaveTablaModel: llaveTabla,\n      entrevistaPruebaModel: entrevistaPrueba,\n      origenModel: origen,\n      tipoTablaModel: tipoTabla,\n      notificarCorreoModel: notificar,\n      fechaLimiteModel: fechaLimite,\n      listadoAsistenteModel: listaSeleccionados\n    };\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/evento/programarEvaluacionInstructor`;\n    const req = new HttpRequest('POST', url, data, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError));\n  }\n\n  cargarListadoFiltros( general: any ) : Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionEntPru/cargarListadoFiltros`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  \n  guardarGenerar(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionEntPru/guardarGenerar`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  calcularReporte(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionEntPru/calcularReporte`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarCamposEvaluacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionEntPru/cargarCamposEvaluacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarPopupSeccion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionEntPru/cargarPopupSeccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { EvaluacionEntPruService } from '../../services/evaluacion-ent-pru.service';\nimport { SeccionModel } from '../../../../modules/hojavida/models/SeccionModel';\nimport { CampoFormularioModel, FormulariodinamicoComponent, UtilsService } from 'general-library-union';\nimport { PopupsDinamicosPipe } from '../../../../shared/pipes/popups-dinamicos.pipe';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-seccion-hoja',\n    templateUrl: './popup-seccion-hoja.component.html',\n    styleUrls: ['./popup-seccion-hoja.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormulariodinamicoComponent]\n})\nexport class PopupSeccionHojaComponent implements OnInit {\n\n  public titulo: string;\n  public mostrarPopup: boolean;\n  public listaCampos: CampoFormularioModel[] = [];\n  @Output() regresar = new EventEmitter();\n  @ViewChild('formularioDinamico') formularioDinamico: FormulariodinamicoComponent;\n\n  constructor(private evaluacionEntPruService: EvaluacionEntPruService,\n              private utilsService: UtilsService,\n              private popupsDinamicosPipe: PopupsDinamicosPipe,\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  buscar(objeto: any, seccion: SeccionModel, identifica: number) {\n    this.titulo = seccion.descripcion;\n    this.evaluacionEntPruService.cargarPopupSeccion({objeto: objeto, seccion: seccion, identifica: identifica}).subscribe( async data => {\n      this.listaCampos = data.listaCampos;\n      this.formularioDinamico.modificar(objeto, false);\n      await this.setValorCampos()\n      this.mostrarPopup = true;\n      this.utilsService.resizeWindowIFrame();\n    })\n  }\n\n  async setValorCampos(){\n    await this.utilsService.sleep(500)\n    this.listaCampos.forEach(async element => {\n      if (element.tipo === 'F'){\n        element.valor = element.valor ? new Date(element.valor) : null;\n      } else if (element.tipo === 'H'){\n        if (element.valor){\n        let listaValortemp = [];\n        let valorRecorrer = element.valor.split(';')\n        valorRecorrer.forEach(element2 => {\n          listaValortemp.push ({label: element2, value:element2})\n        })\n        element.valor = listaValortemp\n        }\n      } else if (element.tipo === 'P'){\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n        if (element.popup == pop.id ){\n          var ev = new EventEmitter();\n          element.popupComponent = pop.popup ;\n          element['cargarValorPopup']  = (event) => {element.valor = event};\n          element.propiedadesPopupComponent = {\n            readonly: !this.formularioDinamico?.editable,\n            showDialog: false,\n            label: element.valor,\n            mostrarX: false,\n            campoReferencia: element.campoReferencia,\n            campoReferenciaDos: element.campoReferenciaDos,\n            onChange: (event) => element.cargarValorPopup(event),\n            onCambio: (event) => {\n            this.listaCampos.forEach(campo2 => {\n              if(campo2.campoDepende!= null){\n                if(campo2.campoDepende == element.campo){\n                  campo2.campoReferencia = event;\n                }\n              }\t\n            })\n            this.setValorCampos().then(data =>{\n              this.formularioDinamico?.ngAfterViewInit();\n            })\n          }\n            \n          }\n          element.listaPopups = [];\n          element.listaPopups.push(element.popup)\n        }\n        });\n  \n      } else {\n        if (typeof element.valor === \"string\") {\n          element.valor = element.valor.trim()\n          }\n      }\n      });\n      await this.utilsService.sleep(500)\n  \n      this.formularioDinamico?.ngAfterViewInit();\n      this.utilsService.resizeWindowIFrame();\n  \n      //this.formularioDin\n    }\n\n  regresarVista(){\n    this.regresar.emit(false);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n}\n","<p-dialog header=\"{{titulo}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '48vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <formulario-dinamico #formularioDinamico [editable]=\"false\" [campos]=\"listaCampos\" ></formulario-dinamico>\n\n</p-dialog>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'evaluaciones',\n    standalone: true\n})\n@Injectable({\n  providedIn: 'root'\n})\nexport class EvaluacionesPipe implements PipeTransform {\n\n  ENCUESTA = \"N\"; \n\tEVALUACION = \"E\";\n\t\n\tEVALUACION_DESC = \"Evaluaci\"+ Constantes.O_TIDLE_MIN + \"n\"; \n\tENCUESTA_DESC = \"Encuesta\"; \n\n  TIPOS_EVALUACION = [\n    { codigo: this.ENCUESTA, nombre: this.ENCUESTA_DESC },\n    { codigo: this.EVALUACION, nombre: this.EVALUACION_DESC },\n  ]\n\n  TEXTO = \"X\";\n\tFECHA = \"F\";\n\tNUMERICO = \"N\";\n\tLISTA = \"L\";\n\tLISTA_MULTIPLE = \"U\";\n\t\n\tTEXTO_DESC = \"Texto\";\n\tFECHA_DESC = \"Fecha\";\n\tNUMERICO_DESC = \"Numero\";\n\tLISTA_DESC = \"Lista\";\n\tLISTA_MULTIPLE_DESC = \"Lista Multiple\";\n\n  TIPOS_PREGUNTAS = [\n    { codigo: this.TEXTO, nombre: this.TEXTO_DESC },\n    { codigo: this.FECHA, nombre: this.FECHA_DESC },\n    { codigo: this.NUMERICO, nombre: this.NUMERICO_DESC },\n    { codigo: this.LISTA, nombre: this.LISTA_DESC },\n    { codigo: this.LISTA_MULTIPLE, nombre: this.LISTA_MULTIPLE_DESC },\n  ]\n\n  CITAR_DESDE_PROCESO = \"S\";\n\tRESPONSABLE_DEFINE_FECHA = \"N\";\n\tNO_APLICA = \"P\";\n\t\n\tCITAR_DESDE_PROCESO_DESC = \"Citar desde el proceso\";\n\tRESPONSABLE_DEFINE_FECHA_DESC = \"Responsable define fecha de citación\";\n\tNO_APLICA_DESC = \"No aplica\";\n\n  //Evaluacionessleeccion\n  SELECCION_TITULO\t=\t\"T\"\nSELECCION_SUBTITULO_DES\t=\t\"Subtitulo\"\nSELECCION_SUBTITULO\t=\tConstantes.CONSTANTE_SI\nSELECCION_INSTRUCCION_DES\t=\t\"Instrucci\\u00f3n\"\nSELECCION_INSTRUCCION\t=\t\"I\"\nSELECCION_INGRESO_CALIFICACION_CUALITATIVA_DES\t=\t\"Ingreso Calificaci\\u00f3n Cualitativa\"\nSELECCION_INGRESO_CALIFICACION_CUALITATIVA\t=\t\"C\"\nSELECCION_INGRESO_FECHA_DES\t=\t\"Ingreso Fecha\"\nSELECCION_INGRESO_FECHA\t=\t\"F\"\nSELECCION_INGRESO_TEXTO_DES\t=\t\"Ingreso Texto\"\nSELECCION_INGRESO_TEXTO\t=\t\"X\"\nSELECCION_INGRESO_OBSERVACION_DES\t=\t\"Ingreso Observaci\\u00f3n\"\nSELECCION_INGRESO_OBSERVACION\t=\t\"O\"\nSELECCION_INGRESO_MARCA_DES\t=\t\"Ingreso Marca\"\nSELECCION_INGRESO_MARCA\t=\t\"M\"\nSELECCION_INGRESO_CADENA\t=\t\"A\"\nSELECCION_INGRESO_CADENA_DES\t=\t\"Ingreso Cadena\"\nSELECCION_INGRESO_LISTA_DES\t=\t\"Ingreso Lista\"\nSELECCION_INGRESO_LISTA\t=\t\"L\"\nSELECCION_INGRESO_NUMERO_DES\t=\t\"Ingreso Numero\"\nSELECCION_INGRESO_NUMERO\t=\tConstantes.CONSTANTE_NO\nSELECCION_INGRESO_CALIFICACION_VALOR_DES\t=\t\"Ingreso Calificaci\\u00f3n Valor\"\nSELECCION_INGRESO_CALIFICACION_VALOR\t=\t\"V\"\nSELECCION_HOJA_VIDA_DES\t=\t\"Secci\\u00f3n Hoja Vida\"\nSELECCION_HOJA_VIDA\t=\t\"H\"\nSELECCION_ANEXO_DES\t=\t\"Anexo\"\nSELECCION_ANEXO\t=\t\"Y\"\n\n\n\n  ASIGNAR_FECHA = [\n    { codigo: this.CITAR_DESDE_PROCESO, nombre: this.CITAR_DESDE_PROCESO_DESC },\n    { codigo: this.RESPONSABLE_DEFINE_FECHA, nombre: this.RESPONSABLE_DEFINE_FECHA_DESC },\n    { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC },\n  ]\n\n  transform(value: unknown, ...args: unknown[]): unknown {\n    return null;\n  }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { EtapaProcesoModel } from '../../models/EtapaProcesoModel';\nimport { TipoActividadModel } from '../../../../modules/capacitacion/models/TipoActividadModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { EvaluacionesPipe } from '../../pipes/evaluaciones.pipe';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { EvaluacionEntPruModel } from '../../models/EvaluacionEntPruModel';\nimport { ProcesoSeleccionService } from '../../services/proceso-seleccion.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { HojaVidaPipe } from '../../../../shared/pipes/hojavida.pipe';\nimport { ArchivoModel } from '../../../../modules/hojavida/models/ArchivoModel';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TabViewModule } from 'primeng/tabview';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-etapa-proceso',\n    templateUrl: './popup-etapa-proceso.component.html',\n    styleUrls: ['./popup-etapa-proceso.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TabViewModule, FormsModule, ReactiveFormsModule, InputTextModule, NgIf, CalendarModule, DropdownModule, InputTextareaModule, ButtonDirective, Ripple, FileUploadModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, ConfirmPopupModule, TranslateModule]\n})\nexport class PopupEtapaProcesoComponent implements OnInit {\n\n  @ViewChild('formPersona', { static: false }) formPersona!: NgForm;\n  @ViewChild('formArchivoAdjunto', { static: false }) formArchivoAdjunto!: NgForm;\n  \n  @Input() mostrarPopup: boolean;\n  @Input() noMostrarAdjunto: boolean;\n  @Input() etapaProcesoSeleccionada : EtapaProcesoModel;\n  @Output() regresar = new EventEmitter;\n\n  public tipoActividad : TipoActividadModel;\n  public etapa : TipoActividadModel;\n  public listaArchivos : ArchivoModel [] = [];\n  public archivo : ArchivoModel;\n  public archivoSeleccionado: File;\n  public estadoAnterior : string;\n  public extensionesPermitidas: string[];\n\n  listaTipoDocumento : any;\n\n  constructor(private formBuilder : FormBuilder, private generalService: GeneralService, private evaluacionesPipe : EvaluacionesPipe,\n    public listaConstantesPipe : ListaConstantesPipe, public generalPipe : GeneralPipe, private confirmationService: ConfirmationService,\n    private notificacionesBusService: ToastService, private procesoSeleccionService : ProcesoSeleccionService, private controlFuncionalidad: CargarControlFuncionalidadService,\n    private authService: AuthService, private translateService : TranslateService, private hojaVidaPipe : HojaVidaPipe, private encriptadoBasico: EncriptadoBasicoService,\n    private cargarArchivoService: CargarArchivosService, private cargarMapas: cargarmapasGlobal, private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.archivo = new ArchivoModel();\n    this.cargarTipoActividad();\n    this.cargarEtapa();\n    this.cargar();\n    this.estadoAnterior = this.etapaProcesoSeleccionada.estado;\n    this.cargarListaDocumento();\n    this.extensionesPermitidas = ['pdf', 'PDF'];\n    this.utilsService.resizeWindowIFrame();\n  }\n  \n  openDataTable() {\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n  \n  cargar(){\n    this.etapaProcesoSeleccionada.fechaInicial = this.etapaProcesoSeleccionada.fechaInicial != null ? new Date(this.etapaProcesoSeleccionada.fechaInicial) : null;\n    this.etapaProcesoSeleccionada.citacion = this.etapaProcesoSeleccionada.citacion != null ? new Date(this.etapaProcesoSeleccionada.citacion) : null;\n    this.etapaProcesoSeleccionada.fechaReclamacion = this.etapaProcesoSeleccionada.fechaReclamacion != null ? new Date(this.etapaProcesoSeleccionada.fechaReclamacion) : null;\n    this.etapaProcesoSeleccionada.fechaAdicionado = this.etapaProcesoSeleccionada.fechaAdicionado != null ? new Date(this.etapaProcesoSeleccionada.fechaAdicionado) : null;\n  }\n\n  async cargarTipoActividad(){\n    this.tipoActividad = new TipoActividadModel();\n    this.tipoActividad = await this.generalService.queryForObject(new GeneralModel('TipoActividadDTO', null, false, { llaveTabla: this.etapaProcesoSeleccionada.tipoActividad })).toPromise();\n  }\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  async cargarEtapa(){\n    this.tipoActividad = new TipoActividadModel();\n    this.tipoActividad = await this.generalService.queryForObject(new GeneralModel('TipoActividadDTO', null, false, { llaveTabla: this.etapaProcesoSeleccionada.tipoActividad })).toPromise();\n  }\n\n  regresarVista(){\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n\n  isAsignarFecha() : boolean{\n    return (this.tipoActividad != null && this.evaluacionesPipe.CITAR_DESDE_PROCESO == this.tipoActividad.asignarFecha)\n      || (this.etapaProcesoSeleccionada != null && this.etapaProcesoSeleccionada.fechaInicial != null);\n  }\n\n  isAsignarFechaResponsable(){\n    return (this.tipoActividad != null && this.evaluacionesPipe.RESPONSABLE_DEFINE_FECHA == this.tipoActividad.asignarFecha);\n  }\n\n  isMostrarRecalculo() : boolean{\n    return this.etapaProcesoSeleccionada.llaveTabla != null && Constantes.CONSTANTE_SI == this.etapaProcesoSeleccionada.reclamacion;\n  }\n\n  actualizarRegistro(){\n    if(this.formPersona.valid){\n      if(!this.isAsignarFechaNoAplica()){\n        let objParametros : ParametrosGeneralModel = new ParametrosGeneralModel(\n          'EtapaProcesoDTO', this.etapaProcesoSeleccionada , null, {numeroEmpresa : Number(this.authService.getTokenKey('numeroEmpresa')) ,estadoAnterior : this.estadoAnterior}, null);\n          this.procesoSeleccionService.actualizarEstadoCandidato(objParametros).subscribe(data => {\n            if(data){\n              this.regresarVista();\n              this.notificacionesBusService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n            }\n        });\n      }\n    } else {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      Object.keys(this.formPersona.controls).forEach((key) => {\n        if (this.formPersona.controls[key].invalid) {\n          this.formPersona.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  actualizarCitacion(){}\n\n  showEliminarRegistroConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async eliminarRegistro(){\n    let objetoEval: EvaluacionEntPruModel = new EvaluacionEntPruModel();\n    objetoEval.etapaProcesoSeleccion = this.etapaProcesoSeleccionada.llaveTabla;\n    await this.procesoSeleccionService.eliminarPorEtapaProceso({etapaProcesoSeleccion : objetoEval}).toPromise();\n    let objetoFiltro: GeneralModel = new GeneralModel('EtapaProcesoDTO', null, false, this.etapaProcesoSeleccionada);\n    this.generalService.delete(objetoFiltro).subscribe(data => {\n      let result : number = data;\n      if (result == 1) {\n        this.regresarVista();\n        this.notificacionesBusService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      } else {\n        this.notificacionesBusService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.notificacionesBusService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n  isAsignarFechaNoAplica() : boolean {\n    return this.tipoActividad != null && this.evaluacionesPipe.NO_APLICA == this.tipoActividad.asignarFecha;\n  }\n\n  async cambioTab(event) {\n    const tabName = event.originalEvent.target.innerText;\n    if(this.translateService.instant('persona') == tabName){\n    }else if(this.translateService.instant('archivo') + 's' + Constantes.ESPACIO_BLANCO + this.translateService.instant('adjunto') + 's' == tabName){\n      this.traerListaArchivos();\n    }\n  }\n\n  async traerListaArchivos(){\n    this.listaArchivos = await this.generalService.queryForList(new GeneralModel('ArchivoDTO', null, false,\n      { nombreTabla: this.hojaVidaPipe.ETAPAPROCESO, llaveTablaArchivo : this.etapaProcesoSeleccionada.llaveTabla  })).toPromise();\n  }\n\n\n  showEliminarArchivoConfirmDialog(archivo : ArchivoModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarArchivo(archivo);\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async eliminarArchivo(archivo : ArchivoModel){\n    await this.generalService.delete(new GeneralModel('ArchivoDTO', null, false, archivo)).toPromise();\n    let propiedad = 'ruta_anexosHojaVida'\n    let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivoService.eliminarArchivo(this.encriptadoBasico.encriptar(archivo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, codigoAplicacion).subscribe(blob => { });\n    this.notificacionesBusService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n    this.traerListaArchivos();\n  }\n\n  verArchivo(archivo : ArchivoModel) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(archivo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = archivo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  async cargarListaDocumento(){\n    this.listaTipoDocumento = await this.cargarMapas.cargarSelectItemString('documento', 'descripcion', new GeneralModel('TipoDocumentoDTO', null, false, {origen : 'C'}));\n  }\n\n  async cargarArchivo(data: any, fubauto) {\n    if(this.formArchivoAdjunto.valid){\n      this.archivo = new ArchivoModel();\n      this.archivoSeleccionado = data.files[0];\n      const reader: FileReader = new FileReader();\n      if(this.archivoSeleccionado?.name != null){\n        reader.readAsText(this.archivoSeleccionado);\n        this.archivo.tipoDocumento = this.archivo.tipoDocumento;\n        this.archivo.descripcion = this.archivo.descripcion;\n        this.archivo.identifica = this.etapaProcesoSeleccionada.cedula;\n        this.archivo.llaveTablaArchivo = this.etapaProcesoSeleccionada.llaveTabla;\n        this.archivo.llaveTabla = this.utilsService.generarLlave();\n        this.archivo.archivoorigen = this.archivoSeleccionado.name;\n        this.archivo.fechaAdicionado = new Date();\n        this.archivo.adicionado = this.authService.getTokenKey('usuario');\n        this.archivo.nombreTabla = this.hojaVidaPipe.ETAPAPROCESO;\n        await this.generalService.crearRegistro(new GeneralModel('ArchivoDTO', null, false, this.archivo)).toPromise();\n        fubauto.clear();\n        this.guardarArchivo(this.archivo.llaveTabla);\n      }\n    } else {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      Object.keys(this.formArchivoAdjunto.controls).forEach((key) => {\n        if (this.formArchivoAdjunto.controls[key].invalid) {\n          this.formArchivoAdjunto.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  guardarArchivo(llave: string){\n\t\tlet extensionArchivo:string = this.archivoSeleccionado.name.split('?')[0].split(Constantes.PUNTO).pop();\n\t\tif(!this.extensionesPermitidas.includes(extensionArchivo)){\n\t\t\tthis.notificacionesBusService.showWarning(this.translateService.instant('extensionnovalida'));\n\t\t\treturn\n\t\t}\n\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\tlet codigoAplicacion =  this.authService.getTokenKey('aplicacion');\n\t\tthis.archivoSeleccionado =  new File([this.archivoSeleccionado], llave + Constantes.PUNTO + extensionArchivo);\n\n\t  this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe({\n\t\t  next: (event) => {\n        if (event.type === HttpEventType.Response) {\n          let response: any = event.body;\n          if(response != null){\n            this.traerListaArchivos();\n            this.archivo.tipoDocumento = null;\n            this.archivo.descripcion = null;\n            this.notificacionesBusService.showSuccess('Se cargó el documento con éxito');\n          }\n        }\n\t\t  },\n\t\t});\n\t}\n\n}\n","<p-dialog header=\"{{etapaProcesoSeleccionada.nombreEtapa}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '48vw'}\"\n  (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\" (onShow)=\"openDataTable()\">\n\n  <p-tabView (onChange)=\"cambioTab($event)\">\n    <p-tabPanel header=\"{{'persona' | translate}}\">\n      <form #formPersona=\"ngForm\">\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n          <div class=\"p-fluid p-formgrid grid\">\n\n            <!-- IDENTIFICACIÓN -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText id=\"documentoEmpleado\" [(ngModel)]=\"etapaProcesoSeleccionada.documentoEmpleado\"\n                  name=\"documentoEmpleado\" [disabled]=\"true\" required>\n                <label for=\"\">{{'identificacion'| translate}} *</label>\n              </span>\n            </div>\n\n            <!-- NOMBRE -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText id=\"nombres\" [(ngModel)]=\"etapaProcesoSeleccionada.nombres\" name=\"nombres\"\n                  [disabled]=\"true\" required>\n                <label for=\"\">{{'nombre'| translate}} *</label>\n              </span>\n            </div>\n\n            <!-- FECHA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isAsignarFechaResponsable()\">\n              <span class=\"p-float-label\">\n                <input pInputText id=\"fecha\" formControlName=\"fecha\" [(ngModel)]=\"etapaProcesoSeleccionada.fechaInicial\"\n                  name=\"fecha\" [disabled]=\"true\">\n                <label for=\"fecha\">{{'asignada'| translate}} {{'por'| translate}} {{'responsable'| translate}}</label>\n              </span>\n            </div>\n\n            <!-- FECHA -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isAsignarFecha()\">\n              <span class=\"p-float-label\">\n                <p-calendar id=\"fechaInicial\" dateFormat=\"dd/mm/yy\" name=\"fechaInicial\"\n                  [showTime]=\"true\" [stepMinute]=\"15\" [(ngModel)]=\"etapaProcesoSeleccionada.fechaInicial\"\n                  appendTo=\"body\" [showIcon]=\"true\"></p-calendar>\n                <label for=\"fechaInicial\">{{'fecha' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- ESTADO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"estado\" [options]=\"listaConstantesPipe.ESTADOETAPAPROCESO\" name=\"estado\"\n                  [(ngModel)]=\"etapaProcesoSeleccionada.estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\" required></p-dropdown>\n                <label for=\"estado\">{{'estado' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- OBSERVACIÓN  -->\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n              <span class=\"p-float-label\">\n                <textarea id=\"observacion\" rows=\"5\" pInputTextarea name=\"observacion\"\n                  [(ngModel)]=\"etapaProcesoSeleccionada.observacion\" maxlength=\"200\"\n                  class=\"p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250 w-full\"></textarea>\n                <label for=\"observacion\">{{'observacion' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- CITACIÓN -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <p-calendar id=\"citacion\" dateFormat=\"dd/mm/yy\" name=\"citacion\" required\n                  [(ngModel)]=\"etapaProcesoSeleccionada.citacion\" appendTo=\"body\" [showIcon]=\"true\"></p-calendar>\n                <label for=\"citacion\">{{'citacion' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- PUNTAJE -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText id=\"puntaje\" name=\"puntaje\" [(ngModel)]=\"etapaProcesoSeleccionada.puntaje\"\n                  maxlength=\"19\" required>\n                <label for=\"puntaje\">{{'puntaje'| translate}} *</label>\n              </span>\n            </div>\n\n            <!-- RECALCULO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"estado\" [options]=\"generalPipe.LISTA_SINO\" name=\"reclamacion\"\n                  [(ngModel)]=\"etapaProcesoSeleccionada.reclamacion\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n                <label for=\"reclamacion\">{{'recalculo' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- FECHA RECALCULO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"isMostrarRecalculo()\">\n              <span class=\"p-float-label\">\n                <p-calendar id=\"fechaReclamacion\" dateFormat=\"dd/mm/yy\" name=\"fechaReclamacion\"\n                  [(ngModel)]=\"etapaProcesoSeleccionada.fechaReclamacion\" appendTo=\"body\" [showIcon]=\"true\"\n                  required></p-calendar>\n                <label for=\"fechaReclamacion\">{{'fecha' | translate}} {{'recalculo' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- DOCUMENTO GENERAL -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText id=\"documento\" name=\"documento\" [(ngModel)]=\"etapaProcesoSeleccionada.documento\"\n                  maxlength=\"80\">\n                <label for=\"documento\">{{'documentogeneral'| translate}}</label>\n              </span>\n            </div>\n\n          </div>\n        </div>\n      </form>\n      <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"mr-3 p-button p-button-raised\"\n          *ngIf=\"this.validarControlFuncionalidad('procsel:actcit') && !noMostrarAdjunto\"\n          icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n          (click)=\"actualizarRegistro()\"></button>\n        <button pButton pRipple class=\"mr-3 p-button p-button-raised\"\n          *ngIf=\"this.validarControlFuncionalidad('procsel:actcit') && noMostrarAdjunto\"\n          icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n          (click)=\"actualizarCitacion()\"></button>\n        <button pButton pRipple class=\"mr-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n          *ngIf=\"this.validarControlFuncionalidad('procsel:elicit') && !noMostrarAdjunto\"\n          label=\"{{'link_eliminar' | translate}}\" (click)=\"showEliminarRegistroConfirmDialog()\"></button>\n      </div>\n    </p-tabPanel>\n    <p-tabPanel header=\"{{'archivo' | translate}}s {{'adjunto' | translate}}s\" *ngIf=\"!noMostrarAdjunto\">\n      <form #formArchivoAdjunto=\"ngForm\">\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n          <div class=\"p-fluid p-formgrid grid\">\n\n            <!-- TIPO DOCUMENTO -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"estado\" [options]=\"listaTipoDocumento\" [(ngModel)]=\"archivo.tipoDocumento\"\n                  name=\"tipoDocumento\" optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\"\n                  appendTo=\"body\"></p-dropdown>\n                <label for=\"tipoDocumento\">{{'tipodocumento' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- DESCRIPCIÓN -->\n            <div class=\"field col-12 md:col-6 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText id=\"descripcion\" name=\"descripcion\" [(ngModel)]=\"archivo.descripcion\" maxlength=\"100\">\n                <label for=\"descripcion\">{{'descripcion'| translate}} *</label>\n              </span>\n            </div>\n\n            <!-- ADJUNTAR ARCHIVO-->\n            <div class=\"field col-12 md:col-4 lg:col-4\"\n              *ngIf=\"archivo.tipoDocumento != null && archivo.descripcion != null\">\n              <p-fileUpload #fubauto chooseLabel=\"Cargar\" mode=\"basic\" [customUpload]=\"true\" accept=\".pdf,.PDF\"\n                chooseIcon=\"pi pi-paperclip\" (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n            </div>\n\n          </div>\n        </div>\n      </form>\n\n      <p-table #tablaGeneralArchivos id=\"tabla_anular\" [value]=\"listaArchivos\" responsiveLayout=\"scroll\"\n        *ngIf=\"0 < listaArchivos.length\" [rows]=\"10\" [paginator]=\"listaArchivos.length > 10\"\n        scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [totalRecords]=\"listaArchivos.length\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n        <ng-template pTemplate=\"header\">\n          <tr style=\"width: 100%;\">\n            <th style=\"width: 30%;\">{{ 'descripcion' | translate }}</th>\n            <th style=\"width: 50%;\">{{ 'nombre' | translate }}</th>\n            <th style=\"width: 10%;\">{{ 'ver' | translate }}</th>\n            <th style=\"width: 10%;\"></th>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-archivo>\n          <tr [pSelectableRow]=\"archivo\" style=\"width: 100%;\">\n            <td style=\"width: 30%;\">{{archivo.descripcion}}</td>\n            <td style=\"width: 50%;\">{{archivo.archivoorigen}}</td>\n            <td style=\"width: 10%;\">\n              <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-paperclip\"\n                (click)=\"verArchivo(archivo)\" type=\"file\"></button>\n            </td>\n            <td style=\"width: 10%;\">\n              <button pButton pRipple type=\"button\" icon=\"pi pi-times\"\n                (click)=\"showEliminarArchivoConfirmDialog(archivo)\"\n                class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\">\n              </button>\n            </td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n\n    </p-tabPanel>\n  </p-tabView>\n</p-dialog>\n<p-confirmPopup></p-confirmPopup>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AuthService, TablaGeneralComponent, TableColumn, ToastService, UtilsService } from 'general-library-union';\nimport { EventoModel } from '../../../../../../../../modules/capacitacion/models/EventoModel';\nimport { EmpleadoModel } from '../../../../../../../../modules/compensacion/models/EmpleadoModel';\nimport { EvaluacionEntPruModel } from '../../../../../../../../modules/talento/models/EvaluacionEntPruModel';\nimport { EvaluacionesPipe } from '../../../../../../../../modules/talento/pipes/evaluaciones.pipe';\nimport { ParametrosEvaluacionPipe } from '../../../../../../../../modules/talento/pipes/parametros-evaluacion.pipe';\n\nimport { ProcesoSeleccionModel } from '../../../../../../../../modules/talento/models/ProcesoSeleccionModel';\nimport { EntrevistaPruebaModel } from '../../../../../../../../modules/talento/models/EntrevistaPruebaModel';\nimport { FactorEntrevistaPruebaModel } from '../../../../../../../../modules/talento/models/FactorEntrevistaPruebaModel';\nimport { FactorEntrevistaPruebaWrapper } from '../../../../../../../../modules/talento/wrapper/FactorEntrevistaPruebaWrapper';\nimport { SeccionModel } from '../../../../../../../../modules/hojavida/models/SeccionModel';\nimport { EvaluacionEntPruService } from '../../../../../../../../modules/talento/services/evaluacion-ent-pru.service';\nimport { GeneralService } from '../../../../../../../../shared/servicios/general.service';\nimport { PopupSeccionHojaComponent } from '../../../../../../../../modules/talento/popups/popup-seccion-hoja/popup-seccion-hoja.component';\nimport { GeneralPipe } from '../../../../../../../../shared/pipes/general.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { CargarArchivosService } from '../../../../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../../../../shared/servicios/encriptado-basico.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PopupSeccionHojaComponent as PopupSeccionHojaComponent_1 } from '../../../../../../../talento/popups/popup-seccion-hoja/popup-seccion-hoja.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { CabeceraEvaluacionEventoEmpleadoComponent } from '../cabecera-evaluacion-evento-empleado/cabecera-evaluacion-evento-empleado.component';\nimport { CommonModule, NgIf } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { CardModule } from 'primeng/card';\n\n@Component({\n    selector: 'app-detalle-preguntas-evaluacion-procesoseleccion',\n    templateUrl: './detalle-preguntas-evaluacion-procesoseleccion.component.html',\n    styleUrls: ['./detalle-preguntas-evaluacion-procesoseleccion.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, NgIf, CabeceraEvaluacionEventoEmpleadoComponent, ProgressBarModule, FieldsetModule, PrimeTemplate, TableModule, TemplateTablaVaciaComponent, \n\t\tDropdownModule, FormsModule, CalendarModule, InputTextareaModule, InputTextModule, FileUploadModule, ButtonDirective, Ripple, \n\t\tPopupSeccionHojaComponent_1, TranslateModule, TablaGeneralComponent, CardModule, CommonModule]\n})\nexport class DetallePreguntasEvaluacionProcesoseleccionComponent implements OnInit {\n\n\tpublic redigirProcesoSeleccion: boolean;\n\tpublic mostrarFoto: boolean;\n\tpublic evaluacion: EvaluacionEntPruModel = new EvaluacionEntPruModel();\n\tpublic procesoSeleccion: ProcesoSeleccionModel;\n\tpublic evento: EventoModel;\n\tpublic empleado: EmpleadoModel = new EmpleadoModel();\n\tpublic moduloPortal: string;\n\tpublic origen: string;\n\t\n\t// Constantes\n\tpublic HOJAINTELECTO_E: string = \"HIN\";\n\tpublic HOJAPARIENTE_E = \"HPR\";\n\tpublic HOJAPATRIMONIO_E = \"HPT\";\n\tpublic EQUIPOINTEGRANTE_E = \"EQI\";\n\tpublic TRAYECTORIAINTERNA_E = \"TYI\";\n\tpublic CAPACITACIONINTERNA_E = \"CPI\";\n\n\t// Atributos\n\tpublic mapaEstado: Map<string, string> ;\n\tpublic proceso: ProcesoSeleccionModel;\n\tpublic entrevistaPruebaDTO: EntrevistaPruebaModel;\n\tpublic modificar: boolean = true;\n\tpublic listaFactorEntrevistaPruebasDTO: FactorEntrevistaPruebaModel[]=[];\n\tpublic listaFactorEntrevistaPruebaWrappers: FactorEntrevistaPruebaWrapper[]=[];\n\tpublic longitudValor: number = 20;\n\n\t// Servicios\n\tpublic seccion: SeccionModel;\n\tpublic mostrarReporte: boolean;\n\tpublic reporte: string;\n\tpublic llaveEmpresa: string;\n\tpublic preguntaAnexo: FactorEntrevistaPruebaWrapper;\n\n\t@Output() public regresar = new EventEmitter();\n\t@ViewChild('seccionHoja') seccionHoja: PopupSeccionHojaComponent; \n\tpublic verSeccionHoja: boolean = false;\n\tpublic loading: boolean = false;\n\tpublic clickGuardar: boolean = false;\n\n\tconstructor(\n\t\t    private evaluacionpipe: EvaluacionesPipe,\n\t\t\tprivate confirmationService: ConfirmationService,\n\t\t\tprivate evaluacionEntPruService: EvaluacionEntPruService,\n\t\t\tprivate parametrospipe: ParametrosEvaluacionPipe,\n\t\t\tprivate notificacionesService: ToastService,\n\t\t\tprivate generalPipe: GeneralPipe,\n\t\t\tprivate authService: AuthService,\n\t\t\tpublic utilsService: UtilsService,\n\t\t\tprivate cargarArchivo: CargarArchivosService,\n\t\t\tprivate encriptadoBasico: EncriptadoBasicoService,\n\t\t  ) { }\n\t\t\n\tngOnInit(): void {\t\t\n\t}\n\n\t/**\n\t * Carga los detalles de la evaluacion y seccion indicadas. Si no se indica una seccion carga toda la evaluacion\n\t * @param eval La evaluacion que se quiere cargar\n\t * @param seccion La seccion de la evaluacion que se quiere cargar\n\t */\n\tpublic async buscar(evalu: EvaluacionEntPruModel, seccion: SeccionModel, moduloPortal: string, origen: string, modificar: boolean){\t\t\n\t\tthis.modificar = modificar;\n\t\tthis.clickGuardar = false;\n\t\tthis.loading = true;\n\t\tthis.mostrarFoto = false;\n\t\tthis.verSeccionHoja = false;\n\t\tthis.evaluacion = evalu;\n\t\tthis.moduloPortal = moduloPortal;\n\t\tthis.origen = origen;\n\t\tthis.cargarCabecera();\n\t\tthis.seccion = seccion;\n\t\tthis.llaveEmpresa = this.authService.getTokenKey('llaveEmpresa');\n\t\tthis.cargarCampos()\n\t\tawait this.calcularReporte();\n\t}\n\n\tcargarCampos() {\n\t\tthis.evaluacionEntPruService.cargarCamposEvaluacion({evaluacion: this.evaluacion}).subscribe(data => {\n\t\t\tthis.listaFactorEntrevistaPruebaWrappers = data.listaFactor;\n\t\t\tthis.listaFactorEntrevistaPruebaWrappers.forEach(data => {\n\t\t\t\tif(data['ingresoHojaVida']){\n\t\t\t\t\tdata.columnasTable = [];\n\t\t\t\t\tdata.columnas.forEach(element => {\n\t\t\t\t\t\tlet columna: TableColumn  = {\n\t\t\t\t\t\t  field: element.propiedad,\n\t\t\t\t\t\t  header: element.titulo,\n\t\t\t\t\t\t  formatDate: element.cf.tipo === 'F',\n\t\t\t\t\t\t  //width: 200,\n\t\t\t\t\t\t  canOrder: true,\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdata.columnasTable.push(columna)\n\t\t\t\t\t  });\n\t\t\t\t}\n\t\t\t\tdata.evaluacionFactorDTO.dato = data.evaluacionFactorDTO.dato ? new Date(data.evaluacionFactorDTO.dato) : null;\n\t\t\t})\n\t\t\tthis.evento = data.evento?.llaveTabla ? data.evento : null;\n\t\t\tthis.proceso = data.proceso;\n\t\t\tthis.entrevistaPruebaDTO = data.entrevistaPruebaDTO;\n\t\t\tthis.loading = false;\n\t\t\tthis.utilsService.sleep(300).then(data => {\n\t\t\t\tthis.utilsService.resizeWindowIFrame();\n\t\t\t})\n\t\t})\n\t}\n\t\n\t/**\n\t * Carga la informacion de la cabecera de una evaluacion\n\t * (cédula, documento, nombre completo)\n\t */\n\tprivate cargarCabecera(){\n\t\tthis.empleado = new EmpleadoModel();\n\t\tthis.empleado.cedula = this.evaluacion.identifica;\n\t\tthis.empleado.documento = this.evaluacion.documento;\n\t\tthis.empleado.nombreCompleto = this.evaluacion.nombreCompleto;\n\t\tthis.empleado.nombreFoto = this.evaluacion.nombreFoto;\n\t\tthis.mostrarFoto = true;\n\n\t}\n\t\n\n\tpublic validarExamen(){\n\t\t//validacion\n\t\tvar valida: boolean = true;\n\t\tvar valorValidar: any = null;\n\t\tvar tipo: string = null;\n\t\tvar tamanioLengthValidacion: number = 0;\n\t\tfor(let fw of this.listaFactorEntrevistaPruebaWrappers){\n\t\t\tif(!fw.campoRequerido){\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvalorValidar = null;\n\t\t\ttipo = fw.factorEntrevistaPruebaDTO.tipo.trim();\n\t\t\t\n\t\t\tif(tipo == (this.evaluacionpipe.SELECCION_TITULO) || tipo.trim() == (this.evaluacionpipe.SELECCION_INSTRUCCION) || tipo.trim() == (this.evaluacionpipe.SELECCION_SUBTITULO)\n\t\t\t\t\t||\tthis.evaluacionpipe.SELECCION_HOJA_VIDA == (tipo)){\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\telse if(tipo == (this.evaluacionpipe.SELECCION_INGRESO_CALIFICACION_CUALITATIVA)){\n\t\t\t\tvalorValidar = fw.evaluacionFactorDTO.valor;\n\t\t\t\ttamanioLengthValidacion = 200;\n\t\t\t}\n\t\t\telse if(tipo == (this.evaluacionpipe.SELECCION_INGRESO_MARCA)){\n\t\t\t\tvalorValidar =  fw.evaluacionFactorDTO.valor;\n\t\t\t\ttamanioLengthValidacion = 200;\n\t\t\t}\n\t\t\telse if(tipo == (this.evaluacionpipe.SELECCION_INGRESO_FECHA)){\n\t\t\t\tvalorValidar = fw.evaluacionFactorDTO.dato;\n\t\t\t\ttamanioLengthValidacion = 0;\n\t\t\t}\n\t\t\telse if(tipo == (this.evaluacionpipe.SELECCION_INGRESO_TEXTO) || tipo == (this.evaluacionpipe.SELECCION_INGRESO_CADENA) || tipo == (this.evaluacionpipe.SELECCION_ANEXO)){\n\t\t\t\tvalorValidar = fw.evaluacionFactorDTO.resumen;\n\t\t\t\ttamanioLengthValidacion = 4000;\n\t\t\t}\n\t\t\telse if(tipo == (this.evaluacionpipe.SELECCION_INGRESO_LISTA)){\n\t\t\t\tvalorValidar = fw.evaluacionFactorDTO.valor;\n\t\t\t\ttamanioLengthValidacion = 200;\n\t\t\t}\n\t\t\telse if(tipo == (this.evaluacionpipe.SELECCION_INGRESO_NUMERO)){\n\t\t\t\tvalorValidar = fw.evaluacionFactorDTO.puntaje;\n\t\t\t\ttamanioLengthValidacion = 22;\n\t\t\t}\n\t\t\telse if(tipo == (this.evaluacionpipe.SELECCION_INGRESO_CALIFICACION_VALOR)){\n\t\t\t\tvalorValidar = fw.evaluacionFactorDTO.puntaje;\n\t\t\t\ttamanioLengthValidacion = 22;\n\t\t\t}\n\t\t\telse{\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(valorValidar);\n\t\t\t/**\n\t\t\t * verificamos que tipo de dato es para poder hacer el casting y hacer la validacion\n\t\t\t */\n\t\t\t/*if(valorValidar instanceof BigDecimal){\n\t\t\t\tvalida &= Validador.validarDecimal((BigDecimal)valorValidar, fw.IdMensajeMostrar(), true, tamanioLengthValidacion, 5);\n\t\t\t}\n\t\t\telse if(valorValidar instanceof Date){\n\t\t\t\tvalida &= Validador.validarFecha((Date)valorValidar, fw.IdMensajeMostrar(), true);\n\t\t\t}\n\t\t\telse if(valorValidar instanceof String){\n\t\t\t\tvalida &= Validador.validarTexto((String)valorValidar, fw.IdMensajeMostrar(), true, tamanioLengthValidacion);\n\t\t\t}else{\n\t\t\t\tFacesContext.CurrentInstance().addMessage(fw.IdMensajeMostrar(), new FacesMessage(\"Obligatorio\"));\n\t\t\t\tvalida = false;\n\t\t\t}*/\t\t\t\n\t\t}\n\t\treturn valida;\n\t}\n\n\tpublic async guadarEvaluacion(event){\t\t\t\t\n\t\tif (!this.tienePreguntas()) {\n\t\t\tthis.notificacionesService.showWarning(\"Esta evaluación no tiene preguntas asociadas\");\n\t\t\treturn null;\n\t\t}\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: '¿Desea guardar la evaluación?',\n\t\t\tacceptLabel: 'Si',\n\t\t\ticon: 'confirmar',\n\t\t\taccept: async () => {\n\t\t\t\tthis.clickGuardar = true;\n\t\t\t\tif(!this.validarExamen()){\n\t\t\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tthis.clickGuardar = false;\n\t\t\t\tawait this.guardar(false);\n\t\t\t}\n\t\t})\n\t}\n\t\n\tpublic async guardar(externo: boolean) {\n\t\tvar respuesta = await this.guardarGenerar(this.parametrospipe.APLICADA, externo);\n\t\tif (respuesta?.evaluacion) {\n\t\t\tthis.evaluacion = respuesta.evaluacion;\n\t\t}\n\t\tif (respuesta?.respuestaValidador) {\n\t\t\tthis.notificacionesService.showInfo(respuesta.respuestaValidador);\n\t\t}\n\t\telse {\n\t\t\tif ( !externo ) {\n\t\t\t\tawait this.calcularReporte();\n\t\t\t\tthis.notificacionesService.showInfo(\"Evaluación guardada correctamente\");\n\t\t\t}\n\t\t}\n\t}\n\n\tasync guardarGenerar(estado: string, externo: boolean) {\n\t\treturn await this.evaluacionEntPruService.guardarGenerar({estado: estado, externo: externo, lista: this.listaFactorEntrevistaPruebaWrappers, evaluacion: this.evaluacion}).toPromise();\n\t}\n\t\n\t\n\tpublic tienePreguntas():boolean {\n\t\treturn this.listaFactorEntrevistaPruebaWrappers != null && this.listaFactorEntrevistaPruebaWrappers.length > 0;\n\t}\n\t\n\tpublic async guadarEvaluacionTemporal(){\n\t\tthis.clickGuardar = false;\n//\t\t\tif(!validarExamen()){\n//\t\t\t\treturn null;\n//\t\t\t}\n\t\tif (this.listaFactorEntrevistaPruebaWrappers == null || this.listaFactorEntrevistaPruebaWrappers.length == 0) {\n\t\t\tthis.notificacionesService.showWarning(\"Esta evaluación no tiene preguntas asociadas\");\n\t\t\treturn null;\n\t\t}\n\t\tvar respuesta = await this.guardarGenerar(this.parametrospipe.DILIGENCIA_PARCIALMENTE, false);\n\t\tif (respuesta?.evaluacion) {\n\t\t\tthis.evaluacion = respuesta.evaluacion;\n\t\t}\n\t\tif (respuesta?.respuestaValidador) {\n\t\t\tthis.notificacionesService.showInfo(respuesta.respuestaValidador);\n\t\t} else {\n\t\t\tawait this.calcularReporte();\n\t\t\tthis.notificacionesService.showInfo(\"Evaluación guardada correctamente\");\n\t\t}\n\t}\n\n\tpublic async mostrarSeccion(objeto, seccion: SeccionModel){\n\t\tthis.verSeccionHoja = true;\n\t\tawait this.utilsService.sleep(200);\n\t\tthis.seccionHoja.buscar(objeto, seccion, this.evaluacion.identifica)\n\t}\n\t\n\tpublic cancelarEvaluacion(){\n\t\tthis.regresar.emit(false);\n\t}\n\n\tpublic async calcularReporte() {\n\t\tlet data = await this.evaluacionEntPruService.calcularReporte({evaluacion: this.evaluacion}).toPromise();\n\t\tthis.reporte = data.reporte;\n\t\tthis.mostrarReporte = data.mostrarReporte;\n\t}\n\n\tcargarAnexo(data: any, fubauto, campo: FactorEntrevistaPruebaWrapper) {\n\t\tcampo.evaluacionFactorDTO.llaveTemporal = this.utilsService.generarLlave()\n\t\tconst propiedad = 'ruta_temporal'\n\t\tvar codigoAplicacion = '0';\n\t\tvar archivoSeleccionado = data.files[0];\n\t\tcampo.evaluacionFactorDTO.valor = data.files[0].name;\n\t\tthis.readFile(archivoSeleccionado);\n\t\t//this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n\t\tfubauto.clear();\n\t\tlet fileExtension:string = archivoSeleccionado.name.split('?')[0].split('.').pop();\n\t\tarchivoSeleccionado = new File([archivoSeleccionado], campo.evaluacionFactorDTO.llaveTemporal+'.' +fileExtension);\n\n\t\tthis.cargarArchivo.cargarArchivo(archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe({\n\t\t\tnext: async (event) => {\n\t\t\t\tif (event.type === HttpEventType.Response) {\n\t\t\t\t  let response: any = event.body;\n\t\t\t\t  let ruta = this.encriptadoBasico.desencriptar(response.rutaCarga)\n\t\t\t\t campo.evaluacionFactorDTO.resumen = ruta;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n\t\t//this.filename = file.name;\n\t  }\n\t\n\n\tdescargarAnexo(ruta, nombre) {\n\t\tif (!ruta) {\n\t\t\tthis.notificacionesService.showWarning('No existe archivo ' + nombre);\n\t\t\treturn;\n\t\t}\n\t\tconst contentType = 'application/pdf';\n\t\tconst blob = this.base64toBlob(ruta, contentType);\n\t\tconst blobUrl = URL.createObjectURL(blob);\n\n\t\tconst a = document.createElement('a');\n\t\ta.href = blobUrl;\n\t\ta.download = nombre;\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tdocument.body.removeChild(a);\n\t\tURL.revokeObjectURL(blobUrl);\n\t}\n\n\tbase64toBlob(base64String: string, contentType: string): Blob {\n\t\tconst byteCharacters = atob(base64String);\n\t\tconst byteNumbers = new Array(byteCharacters.length);\n\t\tfor (let i = 0; i < byteCharacters.length; i++) {\n\t\t  byteNumbers[i] = byteCharacters.charCodeAt(i);\n\t\t}\n\t\tconst byteArray = new Uint8Array(byteNumbers);\n\t\tconst blob = new Blob([byteArray], { type: contentType });\n\t\treturn blob;\n\t}\n\n\tdescargarReporte() {\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.reporte)).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'ReporteEvaluacion.pdf';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\n\tpublic isAplicado() {\n\t\treturn this.parametrospipe.APLICADA == this.evaluacion.estado;\n\t}\n\n\tpublic isLimiteFecha() {\t\t\n\t\treturn this.parametrospipe.APLICADA == this.evaluacion.estado;\n\t}\n\n\tpublic isPuedeGuadarEvaluacion() {\n\t\treturn this.parametrospipe.APLICADA != this.evaluacion.estado;\n\t}\n\n\t/**\n\t * Determina si la evaluacion manejada por este bean es nueva o no\n\t * @return true si la evaluacion está en estado NO DILIGENCIADA, en caso contrario false\n\t */\n\tpublic isNuevaEvaluacion() {\n\t\treturn this.evaluacion.estado == this.parametrospipe.NO_DILIGENCIA;\n\t}\n\n}\n"," \n<p-confirmPopup></p-confirmPopup>\n<app-cabecera-evaluacion-evento-empleado *ngIf=\"mostrarFoto\" [empleado]=\"empleado\"  [evento]=\"evento\" [evaluacion]=\"evaluacion\" [proceso]=\"proceso\" ></app-cabecera-evaluacion-evento-empleado>\n<div *ngIf=\"loading\">\n    <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\" ></p-progressBar>\n</div>\n<p-card>\n    <p-fieldset *ngIf=\"listaFactorEntrevistaPruebaWrappers\" >\n        <ng-template pTemplate=\"header\">\n        <div class=\"flex align-items-center font-semibold\">\n            <span class=\"color-400 glyphicons glyphicons-floppy-save\"></span>\n            <span >{{evaluacion.descripcionEntrevistaPrueba}}</span>\n        </div>\n    </ng-template>\n    <p-table [value]=\"listaFactorEntrevistaPruebaWrappers\">\n        <ng-template pTemplate=\"body\" let-campo>\n            <tr>\n                <td>\n                    <div style=\"text-align: center\">\n                        <label *ngIf=\"campo.factorEntrevistaPruebaDTO.titulo\" style=\"font-weight: 500; text-align: center; color: var(--color-500); font-size: 1rem;\">\n                            {{campo.factorEntrevistaPruebaDTO.descripcion}}</label>\n                        <label *ngIf=\"campo.factorEntrevistaPruebaDTO.subTitulo\" style=\"font-weight: 500; font-size: 1rem !important; text-align: center;color: var(--color-500);\">{{campo.factorEntrevistaPruebaDTO.descripcion}}</label>\n                        <label *ngIf=\"campo.factorEntrevistaPruebaDTO.instruccion\" style=\"font-weight: 500; font-size: 0.9rem !important; text-align: center ;\">{{campo.factorEntrevistaPruebaDTO.descripcion}}</label>\n                    </div>\n\n                    <div class=\"p-fluid p-formgrid grid\" *ngIf=\"!(campo.factorEntrevistaPruebaDTO.titulo || campo.factorEntrevistaPruebaDTO.subTitulo || campo.factorEntrevistaPruebaDTO.instruccion)\"> \n                        <div class=\"col-2 mt-3\">\n                            <label>\n                                {{ campo.factorEntrevistaPruebaDTO.descripcion }} \n                                <ng-container *ngIf=\"campo.factorEntrevistaPruebaDTO.campoRequerido\">*</ng-container>\n                            </label>\n                        </div>\n                    \n                        <div [class]=\"campo.factorEntrevistaPruebaDTO.titulo || campo.factorEntrevistaPruebaDTO.subTitulo\n                            || campo.factorEntrevistaPruebaDTO.instruccion ? '' :'col-10'\">\n\n                            <!-- ingresoHojaVida-->\n                            <div *ngIf=\"campo.ingresoHojaVida\">\n                                <app-tabla-general dataKey=\"llaveTabla\" [columns]=\"campo.columnasTable\" [value]=\"campo.modelo\"\n                                    [rows]=\"10\" [totalRecords]=\"campo.modelo.length\"\n                                    (onRowSelect)=\"mostrarSeccion($event, campo.seccion)\"></app-tabla-general>\n                            </div>\n                    \n                            <!-- ingresoCaliCualitativa -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoCaliCualitativa\" >\n                                <p-dropdown [options]=\"campo.listaSelectItem\" [showClear]=\"!campo.factorEntrevistaPruebaDTO.campoRequerido\"\n                                    [(ngModel)]=\"campo.evaluacionFactorDTO.valor\" [autoDisplayFirst]=\"false\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.valor) ? 'ng-invalid ng-dirty' : ''\"\n                                    appendTo=\"body\"  [disabled]=\"isAplicado()\">\n                                </p-dropdown>\n                            </div>\n                    \n                            <!-- seleccionFecha -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.seleccionFecha\" >\n                                <p-calendar appendTo=\"body\"  [(ngModel)]=\"campo.evaluacionFactorDTO.dato\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.dato) ? 'ng-invalid ng-dirty' : ''\"\n                                    [showIcon]=\"true\" dateFormat=\"dd/mm/yy\" [disabled]=\"isAplicado()\"></p-calendar>\n                            </div>\n                    \n                            <!-- ingresoMarca -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoMarca\" >\n                                <p-dropdown [options]=\"campo.listaSelectItem\" [autoDisplayFirst]=\"false\" [showClear]=\"!campo.factorEntrevistaPruebaDTO.campoRequerido\"\n                                    appendTo=\"body\"  [disabled]=\"isAplicado()\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.valor) ? 'ng-invalid ng-dirty' : ''\"\n                                    [(ngModel)]=\"campo.evaluacionFactorDTO.valor\">\n                                </p-dropdown>\n                            </div>\n                    \n                            <!-- ingresoLista -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoLista\" >\n                                <p-dropdown [options]=\"campo.listaSelectItem\" [autoDisplayFirst]=\"false\" [showClear]=\"!campo.factorEntrevistaPruebaDTO.campoRequerido\"\n                                    appendTo=\"body\"  [disabled]=\"isAplicado()\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.valor) ? 'ng-invalid ng-dirty' : ''\"\n                                    [(ngModel)]=\"campo.evaluacionFactorDTO.valor\">\n                                </p-dropdown>\n                            </div>\n                    \n                            <!-- ingresoTexto - ingresoObservacion  -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoTexto || campo.factorEntrevistaPruebaDTO.ingresoObservacion\" >\n                                <textarea pInputTextarea [disabled]=\"isAplicado()\" [(ngModel)]=\"campo.evaluacionFactorDTO.resumen\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.resumen) ? 'ng-invalid ng-dirty' : ''\"\n                                    class=\"w-full min-h-100 max-h-250\"> </textarea>\n                            </div>\n                    \n                            <!-- ingresoCadena -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoCadena\" >\n                                <input pInputText [disabled]=\"isAplicado()\" [(ngModel)]=\"campo.evaluacionFactorDTO.resumen\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.resumen) ? 'ng-invalid ng-dirty' : ''\"\n                                    type=\"text\" autocomplete=\"off\" />\n                            </div>\n                    \n                            <!-- ingresoNumero -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoNumero\" >\n                                <input pInputText [disabled]=\"isAplicado()\" [(ngModel)]=\"campo.evaluacionFactorDTO.puntaje\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 22);\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.puntaje) ? 'ng-invalid ng-dirty' : ''\"\n                                    type=\"text\" autocomplete=\"off\" />\n                            </div>\n                    \n                            <!-- ingresoCaliValor -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoCaliValor\" >\n                                <input pInputText [disabled]=\"isAplicado()\" [(ngModel)]=\"campo.evaluacionFactorDTO.puntaje\"   [maxlength]=\"21\"\n                                    [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.puntaje) ? 'ng-invalid ng-dirty' : ''\"\n                                    type=\"text\" autocomplete=\"off\" />\n                            </div>\n                    \n                            <!-- ingresoAnexo -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.ingresoAnexo\">\n                                <div id=\"btn-cargar-popup\" class=\"p-inputgroup\">\n                                    <div\n                                        [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.valor)  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n                                        <span class=\"p-float-label nomostrar\">\n                                            <input pInputText #inputText [readonly]=\"true\" [value]=\"campo.evaluacionFactorDTO.valor\" disabled />        \n                                            <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" [accept]=\"'.pdf, .doc, .docx, .xls, .xlsx'\"\n                                                (onSelect)=\"cargarAnexo($event, fubauto, campo)\" chooseIcon=\"pi pi-paperclip\" [disabled]=\"isAplicado()\"\n                                                [class.invalid-upload]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.valor)\"\n                                                ></p-fileUpload>\n                                            <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\"\n                                                (click)=\"descargarAnexo(campo.evaluacionFactorDTO.resumen, campo.evaluacionFactorDTO.valor)\" type=\"file\" *ngIf=\"campo.evaluacionFactorDTO.resumen != null\"></button>\n                                        </span>\n                                    </div>\n                                </div><!--\n                                <div id=\"btn-cargar-popup\">\n                                    <div\n                                        [class]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.valor)  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n                                        <span class=\"p-float-label nomostrar\">\n                                            <input pInputText [readonly]=\"true\" [value]=\"campo.evaluacionFactorDTO.valor\" disabled  />\n                                            <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" [accept]=\"'.pdf, .doc, .docx, .xls, .xlsx'\"\n                                                (onSelect)=\"cargarAnexo($event, fubauto, campo)\" \n                                                [class.invalid-upload]=\"clickGuardar && campo.factorEntrevistaPruebaDTO.campoRequerido && !utilsService.validarCampoObligatorio(campo.evaluacionFactorDTO.valor)\"\n                                                ></p-fileUpload>\n                                        </span>\n                                    </div>\n                                </div>-->\n                            </div>\n                    \n                            <!-- listaAnexoCandidato -->\n                            <div *ngIf=\"campo.factorEntrevistaPruebaDTO.listaAnexoCandidato\">\n                                <p-table #tablaGeneral class=\"mt-4\" [value]=\"campo.listaAnexosCandidato\" [scrollable]=\"true\"\n                                    responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n                                    [paginator]=\"campo.listaAnexosCandidato.length > 10\" [totalRecords]=\"campo.listaAnexosCandidato.length\"\n                                    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n                                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                    \n                                    <ng-template pTemplate=\"header\">\n                                        <tr>\n                                            <th style=\"width: 40%\">{{'descripcion' | translate}}</th>\n                                            <th style=\"width: 40%\">{{'nombre' | translate}}</th>\n                                            <th style=\"width: 5%\">{{'ver' | translate}}</th>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"body\" let-capacita>\n                                        <tr>\n                                            <td style=\"width: 40%\">{{capacita.descripcion}}</td>\n                                            <td style=\"width: 40%\">{{capacita.archivoorigen}}</td>\n                                            <td style=\"width: 5%\" class=\"flex justify-content-between\">\n                                                <button pButton pRipple\n                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                    icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(capacita.ruta, capacita.archivoorigen)\" type=\"file\"></button>\n                                            </td>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                </p-table>\n                            </div>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n    </p-table>\n    </p-fieldset>\n\n    <div class=\"flex justify-content-end\" *ngIf=\"!loading\">\n        <button *ngIf=\"isPuedeGuadarEvaluacion() && modificar\" pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            (click)=\"guadarEvaluacion($event)\" label=\"{{'link_guardar' | translate}}\">\n        </button>\n\n        <button pButton pRipple class=\"m-2 p-button p-button-outlined claro\" *ngIf=\"!isLimiteFecha() && modificar\"\n            icon=\"glyphicons glyphicons-floppy-save\" (click)=\"guadarEvaluacionTemporal()\" label=\"{{'guardartemporal' | translate}}\">\n        </button>\n\n        <button *ngIf=\"mostrarReporte\" pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"p-2 pi pi-download\"\n            (click)=\"descargarReporte()\" label=\"{{'reporte' | translate}}\">\n        </button>\n    </div>\n</p-card>\n\n<app-popup-seccion-hoja #seccionHoja *ngIf=\"verSeccionHoja\"></app-popup-seccion-hoja>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\n\n@Component({\n  selector: 'app-detalle-proceso-seleccion',\n  templateUrl: './detalle-proceso-seleccion.component.html',\n  styleUrl: './detalle-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,\n    ConfirmPopupModule],\n})\nexport class DetalleProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  public mostrarDetalle : boolean;\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n\n  cargar() {\n    this.mostrarDetalle = true;\n  }\n\n}\n","<div class=\"card mb-4\" *ngIf=\"mostrarDetalle\">\n  <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\n  <div class=\"field col-12 md:col-12 lg:col-12\">\n    <div class=\"p-fluid p-formgrid grid\">\n\n      <!-- EMPRESA -->\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <input class=\"form-control input-md\" pInputText type=\"text\" id=\"nombreempresa\" [disabled]=\"true\"\n            maxlength=\"65\" [readonly]=\"true\" [(ngModel)]=\"procesoSeleccionado.nombreempresa\" />\n          <label htmlFor=\"nombreempresa\">{{'empresa' | translate}}</label>\n        </span>\n      </div>\n\n      <!-- NUMERO -->\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <input class=\"form-control input-md\" pInputText type=\"text\" id=\"numero\" maxlength=\"16\" [disabled]=\"true\"\n            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 16);\" [readonly]=\"true\"\n            [(ngModel)]=\"procesoSeleccionado.numero\" />\n          <label htmlFor=\"numero\">{{'numero' | translate}}</label>\n        </span>\n      </div>\n\n      <!-- UNIDAD ORGANIZACIONAL -->\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <input class=\"form-control input-md\" pInputText type=\"text\" id=\"nombreunidad\" [disabled]=\"true\" maxlength=\"65\"\n            [readonly]=\"true\" [(ngModel)]=\"procesoSeleccionado.nombreunidad\" />\n          <label htmlFor=\"nombreunidad\">{{'unidadorganizacional' | translate}}</label>\n        </span>\n      </div>\n\n      <!-- UNIDAD ORGANIZACIONAL DEPENDE -->\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <input class=\"form-control input-md\" pInputText type=\"text\" id=\"nombreunidadPadre\" [disabled]=\"true\"\n            maxlength=\"65\" [readonly]=\"true\" [(ngModel)]=\"procesoSeleccionado.nombreunidadPadre\" />\n          <label htmlFor=\"nombreunidadPadre\">{{'depende' | translate}}</label>\n        </span>\n      </div>\n\n      <!-- CARGO -->\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <input class=\"form-control input-md\" pInputText type=\"text\" id=\"cargo\" maxlength=\"65\" [disabled]=\"true\"\n            [readonly]=\"true\" [value]=\"procesoSeleccionado.cargo + ' - ' + procesoSeleccionado.nombrecargo\" />\n          <label htmlFor=\"cargo\">{{'cargo' | translate}}</label>\n        </span>\n      </div>\n\n      <!-- NIVEL CARGO -->\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <input class=\"form-control input-md\" pInputText type=\"text\" id=\"nivelCargo\" [disabled]=\"true\" maxlength=\"11\"\n            [readonly]=\"true\" [(ngModel)]=\"procesoSeleccionado.nivelCargo\" />\n          <label htmlFor=\"nivelCargo\">{{'nivelcargo' | translate}}</label>\n        </span>\n      </div>\n\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { CargarControlFuncionalidadService, GeneralModel, GeneralService, UtilsService } from 'general-library-union';\nimport { MenuItem } from 'primeng/api';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { MenubarModule } from 'primeng/menubar';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n    selector: 'app-proceso-seleccion-menu',\n    templateUrl: './proceso-seleccion-menu.page.html',\n    styleUrls: ['./proceso-seleccion-menu.page.scss'],\n    standalone: true,\n    imports: [MenubarModule, CommonModule]\n})\nexport class ProcesoSeleccionMenuPage implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Input() public encuesta: boolean;\n  @Output() seleccionAccion: EventEmitter<any> = new EventEmitter();\n  public items: MenuItem[];\n\n  constructor(public utilsService: UtilsService, private translateService: TranslateService, private controlFuncionalidad: CargarControlFuncionalidadService,\n    private router: Router, private activeRoute: ActivatedRoute, private generalService: GeneralService, private listaConstantesPipe : ListaConstantesPipe) { }\n\n\n  ngOnInit(): void {\n    if(this.procesoSeleccionado != null){\n      this.cargarMenu();\n    }\n  }\n\n\n  async cargarMenu() {\n    this.items = [\n      {\n        label: this.translateService.instant('proceso'),\n        expanded: true,\n        icon: 'glyphicons glyphicons-list-alt',\n        items: [\n          { label: this.translateService.instant('registro') + Constantes.ESPACIO_BLANCO + this.translateService.instant('proceso')\n            , icon: ImagenesCons.list_alt, command: (event) => { this.seleccionarAccion('mostrarProceso', '') }},\n          { label: this.translateService.instant('grupo'), icon: ImagenesCons.group, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:grupo') != null,\n            command: (event) => { this.seleccionarAccion('mostrarGrupo', '') }},\n          { label: this.translateService.instant('etapa'), icon: ImagenesCons.resize_small, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:etap'),\n            command: (event) => { this.seleccionarAccion('mostrarEtapas', '') }},\n          { label: this.translateService.instant('publicacion'), icon: ImagenesCons.pen, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:verpub'),\n            command: (event) => { this.seleccionarAccion('verPublicacion', '') }},\n          { label: this.translateService.instant('adendo'), icon: ImagenesCons.copy,\n            command: (event) => { this.seleccionarAccion('mostrarAdendo', '') }},\n          { label: this.translateService.instant('competencia'), icon: ImagenesCons.certificate, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:grdcom'),\n            command: (event) => { this.seleccionarAccion('mostrarCompetencias', '') }},\n          { label: this.translateService.instant('anexos'), icon: ImagenesCons.file_import, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:anexo'),\n            command: (event) => { this.seleccionarAccion('mostrarAnexos', '') }},\n          { label: this.translateService.instant('medio'), icon: ImagenesCons.globe, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:medio'),\n            command: (event) => { this.seleccionarAccion('mostrarMedios', '') }},\n          { label: this.translateService.instant('grupodemedios'), icon: ImagenesCons.tree_structure, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:grupomedio') && this.isGrupoMedio(),\n            command: (event) => { this.seleccionarAccion('mostrarGrupoMedios', this.translateService.instant('grupodemedios')) }},\n          { label: this.translateService.instant('anularproceso'), icon: ImagenesCons.user_ban, visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:anularproceso'),\n            command: (event) => { this.seleccionarAccion('cargarAnulacion', '') }},\n          { label: this.translateService.instant('condiciondederecho'), icon: ImagenesCons.activity, visible : !this.isBloquear(),\n            command: (event) => { this.seleccionarAccion('cargarCondicion', '') }},\n          { label: this.translateService.instant('requerimiento'), icon: ImagenesCons.certificate, visible : this.requerimiento?.llaveTabla != null,\n            command: (event) => { this.seleccionarAccion('mostrarRequerimiento', '') }},\n        ]\n      },\n      {\n        label: this.translateService.instant('candidato'),\n        expanded: false,\n        icon: 'glyphicons glyphicons-list-alt',\n        items: [\n          { label: this.translateService.instant('registro') + Constantes.ESPACIO_BLANCO + this.translateService.instant('candidato')\n            , icon: ImagenesCons.user, command: (event) => { this.seleccionarAccion('mostrarCandidato', '') }},\n          { label: this.translateService.instant('nuevo'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:nuevocand') && !this.isBloquear()\n            , icon: ImagenesCons.plus_sign, command: (event) => { this.seleccionarAccion('nuevoCandidato', this.translateService.instant('nuevo') + Constantes.ESPACIO_BLANCO + this.translateService.instant('candidato')) }},\n          { label: this.translateService.instant('nuevoaspirante'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:nuevoaspirante') && !this.isBloquear()\n            , icon: ImagenesCons.plus_sign, command: (event) => { this.seleccionarAccion('nuevoCandidatoAspirantes', this.translateService.instant('nuevoaspirante')) }},\n          { label: this.translateService.instant('plan') + Constantes.ESPACIO_BLANCO + this.translateService.instant('de') + Constantes.ESPACIO_BLANCO +\n            this.translateService.instant('sucesion'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:plan')\n            , icon: ImagenesCons.left_indent, command: (event) => { this.seleccionarAccion('planSucesion', '') }},\n          { label: this.translateService.instant('link_invitar'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:invempl') && !this.isBloquear()\n            , icon: ImagenesCons.envelope, command: (event) => { this.seleccionarAccion('enviarCorreosInvitacion', '') }},\n          { label: this.translateService.instant('el') + Constantes.ESPACIO_BLANCO + this.translateService.instant('empleo'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:elempleo') && !this.isBloquear()\n            , icon: ImagenesCons.industrial_zone, command: (event) => { this.seleccionarAccion('ejecutarServicioWebElEmpleo', this.translateService.instant('el') + Constantes.ESPACIO_BLANCO + this.translateService.instant('empleo')) }},\n          { label: this.translateService.instant('evaluacion'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:evaluacion') && !this.isBloquear()\n            , icon: ImagenesCons.list_alt, command: (event) => { this.seleccionarAccion('cargarEvaluacion', '') }},\n          { label: this.translateService.instant('candidatosexternos'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:candidatosexternos') && !this.isBloquear()\n            , icon: ImagenesCons.copy, command: (event) => { this.seleccionarAccion('cargarCandidatosExternos', '') }},\n          { label: this.translateService.instant('reclamacion'), icon: ImagenesCons.copy,\n            command: (event) => { this.seleccionarAccion('mostrarReclamacion', '') }},\n        ]\n      },\n      {\n        label: this.translateService.instant('citacion'),\n        expanded: false,\n        icon: 'glyphicons glyphicons-list-alt',\n        items: [\n          { label: this.translateService.instant('jurado'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:citac')\n            , icon: ImagenesCons.user_flag, command: (event) => { this.seleccionarAccion('mostrarEvaluadores', '') }},\n          { label: this.translateService.instant('registro') + Constantes.ESPACIO_BLANCO + this.translateService.instant('citacion'),\n            visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:citac')\n            , icon: ImagenesCons.modal_window, command: (event) => { this.seleccionarAccion('mostrarCitacion', '') }},\n          { label: this.translateService.instant('etapa') + Constantes.ESPACIO_BLANCO + this.translateService.instant('por') + Constantes.ESPACIO_BLANCO + this.translateService.instant('asistente'),\n            visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:guardet')\n            , icon: ImagenesCons.address_book, command: (event) => { this.seleccionarAccion('mostrarEtapaAsistente', '') }},\n          { label: this.translateService.instant('medio') + Constantes.ESPACIO_BLANCO + this.translateService.instant('por') + Constantes.ESPACIO_BLANCO + this.translateService.instant('asistente'),\n            visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:guarmedio')\n            , icon: ImagenesCons.user, command: (event) => { this.seleccionarAccion('mostrarCandidatosAsistente', '') }},\n          { label: this.translateService.instant('programar'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:citac') && !this.isBloquear()\n            , icon: ImagenesCons.clock, command: (event) => { this.seleccionarAccion('nuevaCitacion', '') }},\n          { label: this.translateService.instant('programarjurado'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:citac') && !this.isBloquear()\n            , icon: ImagenesCons.family, command: (event) => { this.seleccionarAccion('nuevaCitacionJurado', '') }},\n          { label: this.translateService.instant('cargar') + Constantes.ESPACIO_BLANCO + this.translateService.instant('archivo') + 's', visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:impmedio') && !this.isBloquear()\n            , icon: ImagenesCons.justify, command: (event) => { this.seleccionarAccion('cargarPuntajes', this.translateService.instant('cargar') + Constantes.ESPACIO_BLANCO + this.translateService.instant('archivo') + 's') }},\n          { label: this.translateService.instant('informe') + Constantes.ESPACIO_BLANCO + this.translateService.instant('final'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:inffinal')\n            , icon: ImagenesCons.paragraph, command: (event) => { this.seleccionarAccion('verInformeFinal', this.translateService.instant('informe') + Constantes.ESPACIO_BLANCO + this.translateService.instant('final')) }},\n\n        ]\n      },\n      {\n        label: this.translateService.instant('reporte') + 's',\n        expanded: false,\n        icon: 'glyphicons glyphicons-list-alt',\n        items: [\n          { label: this.translateService.instant('descripcion') + Constantes.ESPACIO_BLANCO + this.translateService.instant('del')\n            + Constantes.ESPACIO_BLANCO + this.translateService.instant('cargo'), visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:reporte')\n            , icon: ImagenesCons.list_alt, command: (event) => { this.seleccionarAccion('imprimirCargo', this.translateService.instant('descripcion') + Constantes.ESPACIO_BLANCO + this.translateService.instant('del')\n            + Constantes.ESPACIO_BLANCO + this.translateService.instant('cargo')) }},\n          { label: this.translateService.instant('imprimir') + Constantes.ESPACIO_BLANCO + this.translateService.instant('convocatoria'),\n            visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:reporte')\n            , icon: ImagenesCons.multifunction_printer, command: (event) => { this.seleccionarAccion('imprimirConvocatoria', this.translateService.instant('imprimir') + Constantes.ESPACIO_BLANCO + this.translateService.instant('convocatoria')) }},\n          { label: this.translateService.instant('imprimir') + Constantes.ESPACIO_BLANCO + this.translateService.instant('requerimiento'),\n            visible : this.controlFuncionalidad.getControlFuncionalidad('procsel:reporte')\n            , icon: ImagenesCons.print, command: (event) => { this.seleccionarAccion('imprimirRequerimiento', this.translateService.instant('imprimir') + Constantes.ESPACIO_BLANCO + this.translateService.instant('requerimiento')) }},\n        ]\n      },\n    ];\n  }\n\n\n  seleccionarAccion(opcion : string, subtitulo : string){\n    this.seleccionAccion.emit(opcion);\n\t}\n\n  verificarControl(control){\n    return this.controlFuncionalidad.getControlFuncionalidad(control);\n  }\n\n  isGrupoMedio() : boolean{\n    return Constantes.CONSTANTE_SI == this.procesoSeleccionado.grupoMedio;\n  }\n\n  isBloquear() : boolean{\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n}\n","@if (!encuesta) {\n  <div id=\"proceso_seleccion_menu\">\n    <p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>\n  </div>\n}\n","import { Component, OnInit, Input, ViewChild, EventEmitter, Output } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { MenuItem, PrimeTemplate } from 'primeng/api';\nimport { EvaluacionEntPruModel } from '../../../models/EvaluacionEntPruModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { EmpresaModel } from '../../../../../modules/hojavida/models/EmpresaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { EvaluacionEntPruService } from '../../../services/evaluacion-ent-pru.service';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { EtapaProcesoService } from '../../../services/etapa-proceso.service';\nimport { DetallePreguntasEvaluacionProcesoseleccionComponent } from '../../../../../modules/capacitacion/pages/control-eventos-capacitacion/pages-control-eventos/Evaluacion/instructor-evaluacion/detalle-preguntas-evaluacion-procesoseleccion/detalle-preguntas-evaluacion-procesoseleccion.component';\nimport { PopupEtapaProcesoComponent } from '../../../popups/popup-etapa-proceso/popup-etapa-proceso.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MenubarModule } from 'primeng/menubar';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { EntrevistaPruebaModel } from '../../../models/EntrevistaPruebaModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\n\n@Component({\n  selector: 'app-evaluacion-proceso-seleccion',\n  templateUrl: './evaluacion-proceso-seleccion.page.html',\n  styleUrls: ['./evaluacion-proceso-seleccion.page.scss'],\n  standalone: true,\n  imports: [NgIf, ButtonDirective, Ripple, MenubarModule, FormsModule, ReactiveFormsModule, DropdownModule,\n    InputNumberModule, CheckboxModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, InputTextModule, PopupEtapaProcesoComponent,\n    DetallePreguntasEvaluacionProcesoseleccionComponent, DatePipe, TranslateModule, ParametrosEvaluacionPipe,\n    FiltroGeneralComponent, ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent]\n})\nexport class EvaluacionProcesoSeleccionPage implements OnInit {\n\n  @Input() public mostrarDesdeProcSeleccion: boolean;\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaEvaluaciones: EvaluacionEntPruModel[] = [];\n  public evaluacionSeleccionada: EvaluacionEntPruModel;\n  public opcion: ('defecto' | 'pendiente') = null;\n  public items: MenuItem[];\n  public labelOpcion: string;\n  public paginador: EvaluacionEntPruModel[] = [];\n  public paginadorPendientes: EtapaProcesoModel[] = [];\n  public origen: string;\n  public moduloPortal: string;\n  public rol: string;\n  public login: string;\n  public cedulaSara: number;\n  public filtrarUnidad: boolean;\n  public funcional: boolean;\n  public controlSoloAsignado: boolean;\n  public estadoCheck: boolean = true;\n  public verPopupEtapaProceso: boolean = false;\n  public etapaProceso: EtapaProcesoModel = new EtapaProcesoModel();\n  public empresa: EmpresaModel;\n  public vistaVisualizar: string = null;\n  public listaSelectEntrevisa: { value: any, label: string }[] = [];\n  public listaSelectEstados: { value: any, label: string }[] = [];\n  public listaEventos: { value: any, label: string }[] = [];\n  public listaEtapas: { value: any, label: string }[] = [];\n  public filters: any[] = [];\n  public filtersPendiente: any[] = [];\n  public paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n  public paginatorPendientes = {\n    rows: 10,\n    totalRecords: 0\n  }\n  listaSelectEntrevista: any;\n  listaSelectEstado: any;\n  objEntrevistaFiltroGen : any [];\n\n  @ViewChild('filtro') filtro: FiltroGeneralComponent;\n  @ViewChild('filtroEvaluaciones') filtroEvaluaciones: FiltroGeneralComponent;\n  @ViewChild('filtroPendiente') filtroPendiente: FiltroGeneralComponent;\n  @ViewChild(DetallePreguntasEvaluacionProcesoseleccionComponent) detalle: DetallePreguntasEvaluacionProcesoseleccionComponent;\n\n  constructor(private translateService: TranslateService,\n    private authService: AuthService,\n    private generalPipe: GeneralPipe,\n    private utilsService: UtilsService,\n    private generalService: GeneralService,\n    private etapaProcesoService: EtapaProcesoService,\n    private evaluacionEntPruService: EvaluacionEntPruService,\n    private parametrosEvaluacionPipe: ParametrosEvaluacionPipe,\n    public saraAplicacionService: SaraAplicacionService,\n    private notificacionesService: ToastService,\n    private menuService: MenuService,\n    private controlFuncionService: CargarControlFuncionalidadService,\n    private cargarMapas: cargarmapasGlobal,\n    public listaConstantesPipe: ListaConstantesPipe,\n  ) { }\n\n  async ngOnInit() {\n    this.menuService.setBreadcrumb([{ label: `${this.translateService.instant('listado')} ${this.translateService.instant('evaluaciones')}` }]);\n    this.listaSelectEntrevista = [];\n    this.listaSelectEstado = [];\n    this.cargarFiltroProcSeleccion();\n    this.labelOpcion = this.translateService.instant('evaluacion');\n    this.origen = this.reconocerModulo();\n    this.funcional = this.authService.getTokenKey('tipoLogin') == 'U';\n    this.rol = this.authService.getTokenKey('aliasRol');\n    this.login = this.authService.getTokenKey('usuario');\n    this.cedulaSara = await this.saraAplicacionService.getCedula();\n    this.filtrarUnidad = this.controlFuncionService.getControlFuncionalidad('procsel:filtrarUnidad');\n    this.controlSoloAsignado = this.controlFuncionService.getControlFuncionalidad('evalprocsel:soloAsignados');\n    if (this.mostrarDesdeProcSeleccion) {\n      this.evaluacionSeleccionada = new EvaluacionEntPruModel();\n      await this.cargarListasEvalSel();\n      await this.cargarEvaluacion({});\n    } else {\n      this.cargarFiltros();\n      this.empresa = await this.saraAplicacionService.getEmpresa();\n      this.items = [\n        {\n          label: this.translateService.instant('evaluacion'),\n          icon: 'glyphicons glyphicons-newspaper',\n          command: (event) => {\n            this.opcion = 'defecto';\n            this.labelOpcion = event.item.label;\n          },\n          visible: true,\n        },\n        {\n          label: this.translateService.instant('pendiente'),\n          icon: 'glyphicons glyphicons-pen',\n          command: (event) => {\n            this.opcion = 'pendiente';\n            this.labelOpcion = event.item.label;\n          },\n          visible: this.origen == 'S',\n        },\n      ];\n      this.opcion = 'defecto';\n      await this.utilsService.sleep(300);\n      this.cargarListados();\n      this.filtro.aplicarFiltros();\n    }\n\n  }\n\n  cargarFiltros() {\n    this.filters = [\n      {\n        field: 'entrevistaPrueba',\n        header: this.translateService.instant('herramienta'),\n        matchMode: 'contains',\n        values: (key) => this.listaSelectEntrevisa.filter(data => data.value == key)[0].label,\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        matchMode: 'contains',\n        values: (key) => this.listaSelectEstados.filter(data => data.value == key)[0].label,\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('identificacionevaluado'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'documentoEvalua',\n        header: this.translateService.instant('identificacionevaluador'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'llaveEvento',\n        header: this.translateService.instant('evento'),\n        matchMode: 'contains',\n        values: (key) => this.listaEventos.filter(data => data.value == key)[0].label,\n      },\n      {\n        field: 'numeroProceso',\n        header: this.translateService.instant('numero'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'estadoCheck',\n        header: this.translateService.instant('activo'),\n        matchMode: 'contains',\n      },\n    ];\n    this.filtersPendiente = [\n      {\n        field: 'etapa',\n        header: this.translateService.instant('etapa'),\n        matchMode: 'contains',\n        values: (key) => this.listaEtapas.filter(data => data.value == key)[0].label,\n      },\n      {\n        field: 'nombres',\n        header: this.translateService.instant('nombre'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  cargarFiltroProcSeleccion() {\n    this.filters = [\n      {\n        field: 'entrevistaPrueba',\n        header: this.translateService.instant('entrevista'),\n        values: (value) => this.objEntrevistaFiltroGen[value],\n        matchMode: 'equal',\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (value) => this.parametrosEvaluacionPipe.transform(value, 'listaestadoevaluacionpru'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('documento'),\n        matchMode: 'contains'\n      },\n      {\n        field: 'documentoEvalua',\n        header: this.translateService.instant('documentoEvalua'),\n        matchMode: 'contains'\n      }\n    ];\n  }\n\n  cargarListados() {\n    this.evaluacionEntPruService.cargarListadoFiltros({ origen: this.origen }).subscribe(data => {\n      console.log(data)\n      this.listaEventos = data.listaEventos;\n      this.listaSelectEntrevisa = data.listaSelectEntrevisa;\n      this.listaSelectEstados = data.listaSelectEstado;\n      this.listaEtapas = data.listaEtapas;\n      this.utilsService.resizeWindowIFrame();\n    })\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento 'Enter' se propague\n  }\n\n  filtrarEnter(event) {\n    if (event.key === 'Enter') {\n      this.filtro.aplicarFiltros();\n    }\n  }\n\n  filtrarEnterPendiente(event) {\n    if (event.key === 'Enter') {\n      this.filtroPendiente.aplicarFiltros();\n    }\n  }\n\n  async cargarListaEvaluacion(event) {\n    let objetoFiltro: EvaluacionEntPruModel = new EvaluacionEntPruModel();\n    objetoFiltro.paginacionRegistroInicial = event.first;\n    objetoFiltro.paginacionRegistroFinal = event.rows;\n    if (!this.funcional) {\n      objetoFiltro.evalua = this.cedulaSara;\n    }\n    objetoFiltro.entrevistaPrueba = event.filters.entrevistaPrueba?.value;\n    objetoFiltro.llaveTablaHoja = event.filters.llaveEvento?.value;\n    objetoFiltro.estado = event.filters.estado?.value;\n    objetoFiltro.documento = event.filters.documento?.value;\n    objetoFiltro.documentoEvalua = event.filters.documentoEvalua?.value;\n    objetoFiltro.tipo = this.parametrosEvaluacionPipe.BASE;\n    objetoFiltro.numeroProceso = event.filters.numeroProceso?.value;\n    objetoFiltro.organizacion = this.empresa.organizacion;\n    objetoFiltro.login = this.login;\n    objetoFiltro.aliasRol = this.rol;\n    if (this.filtrarUnidad) {\n      if (this.origen == 'S') {\n        objetoFiltro.tipoFiltro = 'unidadProcesoSeleccion';\n      } else {\n        objetoFiltro.tipoFiltro = 'unidad';\n      }\n      objetoFiltro.empresa = this.empresa.empresa;\n    }\n    this.estadoCheck = event.filters.estadoCheck?.value ? event.filters.estadoCheck?.value : this.estadoCheck;\n    if (this.estadoCheck) {\n      objetoFiltro.estadoStrCheck = 'elaboracion';\n      let date = new Date();\n      date.setHours(0, 0, 0, 0);\n      objetoFiltro.evaluacionVigente = date;\n    } else {\n      objetoFiltro.estadoStrCheck = null;\n      objetoFiltro.evaluacionVigente = null;\n    }\n    objetoFiltro.origen = this.origen;\n    if (this.origen == 'S') {\n      objetoFiltro.resumenMedio = this.parametrosEvaluacionPipe.SELECCION_EVALUAR_FACTORES;\n    }\n    if (this.controlSoloAsignado && this.funcional) {\n      objetoFiltro.responsableProcesoSel = this.cedulaSara;\n    }\n    this.paginador = await this.generalService.queryForList(new GeneralModel('EvaluacionEntPruDTO', null, false, objetoFiltro)).toPromise();\n    console.log('normal');\n    console.log(this.paginador);\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('EvaluacionEntPruDTO', null, false, objetoFiltro)).toPromise();\n    await this.utilsService.sleep(200)\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarListaPendientes(event) {\n    let objetoFiltro = new EtapaProcesoModel();\n    objetoFiltro.paginacionRegistroInicial = event.first;\n    objetoFiltro.paginacionRegistroFinal = event.rows;\n    objetoFiltro.individual = this.generalPipe.SI;\n    if (!this.funcional) {\n      objetoFiltro.responsable = this.cedulaSara;\n    } else {\n      objetoFiltro.organizacion = this.empresa.organizacion;\n      objetoFiltro.login = this.login;\n      objetoFiltro.aliasRol = this.rol;\n      if (this.filtrarUnidad) {\n        objetoFiltro.tipoFiltro = 'unidad';\n        objetoFiltro.empresa = this.empresa.empresa;\n      }\n    }\n    objetoFiltro.estado = 'A';\n    objetoFiltro.origen = this.origen;\n    objetoFiltro.documentoEmpleado = event.filters.documento?.value;\n    objetoFiltro.nombres = event.filters.nombres?.value ? this.generalPipe.PORCENTAJE + event.filters.nombres?.value.toLowerCase() + this.generalPipe.PORCENTAJE : null;\n    objetoFiltro.tipoActividad = event.filters.etapa?.value;\n    this.paginadorPendientes = await this.generalService.queryForList(new GeneralModel('EtapaProcesoDTO', null, false, objetoFiltro)).toPromise();\n    console.log('pendientes');\n    console.log(this.paginadorPendientes);\n    this.paginatorPendientes.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('EtapaProcesoDTO', null, false, objetoFiltro)).toPromise();\n    await this.utilsService.sleep(200)\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async verEvaluacionAction(event) {\n    this.evaluacionSeleccionada = new EvaluacionEntPruModel();\n    this.evaluacionSeleccionada = event.data;\n    if (this.evaluacionSeleccionada.limite != null && (this.evaluacionSeleccionada.origen == (this.generalPipe.CODIGO_BIENESTAR) || this.evaluacionSeleccionada.origen == (this.generalPipe.CAPACITACION))) {\n      if (this.evaluacionSeleccionada.limite > new Date(new Date().toISOString().split('T')[0])\n        && (this.evaluacionSeleccionada.estado != this.parametrosEvaluacionPipe.APLICADA)) {\n        this.notificacionesService.showWarning('Ha excedido la fecha límite');\n        return;\n      }\n    }\n    this.vistaVisualizar = 'detalle';\n    await this.utilsService.sleep(200);\n    this.menuService.setBreadcrumb([{ label: `${this.translateService.instant('listado')} ${this.translateService.instant('evaluaciones')}` },\n    { label: `${this.translateService.instant('mantenimiento')} ${this.translateService.instant('evaluaciones')}` }\n    ]);\n    console.log(this.evaluacionSeleccionada);\n    await this.detalle.buscar(this.evaluacionSeleccionada, null, this.moduloPortal, this.origen, true);\n  }\n\n  verPendiente(event) {\n    this.etapaProceso = event.data;\n    this.etapaProceso = this.etapaProcesoService.formatearDateEtapaProceso(this.etapaProceso);\n    this.verPopupEtapaProceso = true;\n  }\n\n  regresarPopupEtapaProceso() {\n    this.etapaProceso = new EtapaProcesoModel();\n    this.verPopupEtapaProceso = false;\n  }\n\n  reconocerModulo(): string {\n    let url = window.location.href;\n    if (url.includes('evaluacionBienestar') || url.includes('uievaluacionbienestar')) {\n      this.moduloPortal = 'BIEN';\n      return 'B';\n    }\n    if (url.includes('evaluacionProcesoSeleccion') || url.includes('evaluacionProcesoSeleccionPortal')) {\n      this.moduloPortal = 'SELE';\n      return 'S';\n    }\n    if (url.includes('evaluacionCapacitacion') || url.includes('uievaluacion.xhtml')) {\n      this.moduloPortal = 'CAPA';\n      return 'C';\n    }\n    return null;\n  }\n\n  regresapreguntas() {\n    this.vistaVisualizar = null;\n    this.menuService.setBreadcrumb([{ label: `${this.translateService.instant('listado')} ${this.translateService.instant('evaluaciones')}` }]);\n  }\n\n  async cargarEvaluacion(event) {\n    console.log(event);\n    let filtro = {\n      tipo: this.parametrosEvaluacionPipe.BASE,\n      consultaProcesoSeleccion: this.procesoSeleccionado.llaveTabla,\n      resumenMedio: this.parametrosEvaluacionPipe.SELECCION_EVALUAR_FACTORES,\n      entrevistaPrueba: event?.entrevistaPrueba?.value ? event?.entrevistaPrueba?.value : null,\n      estado: event?.estado?.value ? event?.estado?.value : null,\n      documento: event?.documento?.value ? event?.documento?.value : null,\n      documentoEvalua: event?.documentoEvalua?.value ? event?.documentoEvalua?.value : null,\n    };\n    this.listaEvaluaciones = await this.generalService.queryForList(new GeneralModel('EvaluacionEntPruDTO', 'EvaluacionEntPru.consultaEvaluacionProcesoSele', false, filtro)).toPromise();\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    console.log(this.vistaVisualizar);\n    if('detalle' == this.vistaVisualizar){\n      this.vistaVisualizar = null;\n    }else{\n      this.regresar.emit();\n    }\n  }\n\n  async cargarListasEvalSel() {\n    this.listaSelectEstado = this.parametrosEvaluacionPipe.LISTA_ESTADO_EVALUACION_PRU;\n    this.listaSelectEntrevista = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('EntrevistaPruebaDTO', null, false, new EntrevistaPruebaModel()));\n    this.objEntrevistaFiltroGen = await this.listaSelectEntrevista.reduce((obj, area) => {\n      obj[area.key] = area.label;\n      return obj;\n    }, {});\n  }\n\n  obtenerEstado(estadoInt: string): string {\n    let cadena: string = '';\n    let condicionCumplida: boolean = false;\n    this.parametrosEvaluacionPipe.LISTA_ESTADO_EVALUACION_PRU.forEach(element => {\n      if (element.codigo === estadoInt.trim()) {\n        cadena = element.nombre;\n        condicionCumplida = true;\n      }\n    });\n    if (!condicionCumplida) {\n      cadena = estadoInt;\n    }\n    return cadena;\n  }\n\n  seleccionRegistroEvaluacion(event) {\n    if (event) {\n      this.evaluacionSeleccionada = new EvaluacionEntPruModel();\n      this.evaluacionSeleccionada = event.data;\n\n      this.vistaVisualizar = 'detalle';\n      console.log(this.evaluacionSeleccionada);\n    }\n  }\n\n  get mostrarMenu(): boolean {\n    return this.items.filter(item => item.visible).length > 1;\n  }\n}\n","<div *ngIf=\"mostrarDesdeProcSeleccion\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n        <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n        <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n    </div>\n\n    <app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\"\n        [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n    <div class=\"flex aling-items-center justify-content-between align-items-center\">\n        <h4 class=\"text-xl mt-4\">{{'evaluacion' | translate}}</h4>\n    </div>\n\n    <!-- PANEL DETALLE -->\n    <div *ngIf=\"vistaVisualizar == null\">\n        <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n    </div>\n</div>\n\n\n<div class=\"flex justify-content-between align-items-center mb-3\" *ngIf=\"!mostrarDesdeProcSeleccion\">\n    <h1>{{!saraAplicacionService.isAutoServicioPortal() ? ('evaluaciones' | translate) : ''}}</h1> \n    <div class=\"flex justify-content-end  mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n        <button pButton pRipple (click)=\"regresapreguntas()\" label=\"{{'link_regresar' | translate}}\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n    </div>\n</div>\n<!--\n<div class=\"flex justify-content-end mb-3\" *ngIf=\"saraAplicacionService.isAutoServicioPortal() && vistaVisualizar =='detalle'\">\n    <button pButton pRipple (click)=\"regresapreguntas()\" label= \"{{'link_regresar' | translate}}\" \n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n</div>-->\n\n<div *ngIf=\"vistaVisualizar == null && !mostrarDesdeProcSeleccion\">\n    <p-menubar [model]=\"items\" class=\"menu-accion-sara\" *ngIf=\"mostrarMenu\"></p-menubar>\n    <h2 class=\"mb-3\" *ngIf=\"!saraAplicacionService.isAutoServicioPortal()\">{{labelOpcion}}</h2>\n    <div *ngIf=\"opcion == 'defecto'\">\n        <div class=\"flex justify-content-start align-items-center mb-3\">\n            <app-filtro-general #filtro [filtros]=\"filters\" [datatable]=\"tablaDefecto\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"flex filtroContainer\" style=\"min-width:50rem\">\n                            <div class=\"field mr-2 w-full\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaSelectEntrevisa\" [autoDisplayFirst]=\"false\"\n                                        formControlName=\"entrevistaPrueba\" [showClear]=\"true\"></p-dropdown>\n                                    <label>{{'herramienta' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                        <div class=\"flex filtroContainer\" style=\"min-width:50rem\">\n                            <div class=\"field mr-2 w-full\" *ngIf=\"listaEventos.length > 0\">\n                                <div class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaEventos\" [autoDisplayFirst]=\"false\"\n                                        formControlName=\"llaveEvento\" [showClear]=\"true\"></p-dropdown>\n                                    <label>{{'evento' | translate}}</label>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"flex filtroContainer\" style=\"min-width:50rem\">\n                            <div class=\"field mr-2 w-full\">\n                                <div class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaSelectEstados\" [autoDisplayFirst]=\"false\"\n                                        formControlName=\"estado\" [showClear]=\"true\"></p-dropdown>\n                                    <label>{{'estado' | translate}}</label>\n                                </div>\n                            </div>\n                            <div class=\"field mr-2 w-full\" *ngIf=\"funcional\">\n                                <div class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" formControlName=\"documentoEvalua\"\n                                        [maxlength]=\"20\" autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\"\n                                        (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'identificacionevaluador' | translate}}</label>\n                                </div>\n                            </div>\n                            <div class=\"field mr-2 w-full\">\n                                <div class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" formControlName=\"documento\" [maxlength]=\"20\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\"\n                                        (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'identificacionevaluado' | translate}}</label>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div class=\"flex filtroContainer\" style=\"min-width:50rem\" *ngIf=\"funcional && origen == 'S'\">\n                            <div class=\"p-float-label w-full\">\n                                <div class=\"p-float-label\">\n                                    <p-inputNumber formControlName=\"numeroProceso\" autocomplete=\"off\" [maxlength]=\"18\"\n                                        (keydown)=\"filtrarEnter($event)\"\n                                        (keydown.enter)=\"handleEnterKey($event)\"></p-inputNumber>\n                                    <label>{{'numero' | translate}}</label>\n                                </div>\n                            </div>\n                            <div class=\"p-float-label w-full\"></div>\n                            <div class=\"p-float-label w-full\"></div>\n                        </div>\n\n                        <div class=\"mt-3 align-items-center justify-content-center\">\n                            <div class=\"ml-1 -mt-2 w-full flex align-items-center\">\n                                <p-checkbox class=\"ml-1\" formControlName=\"estadoCheck\" [(ngModel)]=\"estadoCheck\"\n                                    [binary]=\"true\"> </p-checkbox>\n                                <label class=\"ml-1\">{{'activo' | translate}}</label>\n                            </div>\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n        </div>\n\n        <div [style.margin-bottom]=\"paginador.length <= 2 ? '10rem' : ''\">\n            <p-table #tablaDefecto responsiveLayout=\"scroll\" [value]=\"paginador\" [rows]=\"paginator.rows\" [lazy]=\"true\"\n                (onLazyLoad)=\"cargarListaEvaluacion($event)\" [totalRecords]=\"paginator.totalRecords\"\n                [paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n                (onRowSelect)=\"verEvaluacionAction($event)\" (onRowUnselect)=\"verEvaluacionAction($event)\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th style=\"width: 25%;\">{{'origen_evaluacion' | translate}}</th>\n                        <th style=\"width: 20%;\">{{'herramienta' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'fechaaplicada' | translate}}</th>\n                        <th style=\"width: 10%;\" *ngIf=\"['B', 'C'].includes(origen)\">{{'fechalimite' | translate}}</th>\n                        <th style=\"width: 25%;\">{{'responsableevaluacion' | translate}}</th>\n                        <th style=\"width: 10%;\" *ngIf=\"origen == 'S'\">{{'numero' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-bean>\n                    <tr [pSelectableRow]=\"bean\">\n                        <td style=\"width: 25%;\">\n                            <div class=\"col-12 md:col-12 lg:col-12\">\n                                <!-- Evento -->\n                                <div *ngIf=\"!['S', 'C'].includes(origen)\">\n                                    <label class=\"font-semibold\">\n                                        {{'evento' | translate}}:\n                                    </label>\n                                    <br />\n                                    <label>{{bean.nombreEven}}</label>\n                                </div>\n                                <!-- Curso -->\n                                <div *ngIf=\"'C' == origen\">\n                                    <label class=\"font-semibold\">\n                                        {{'curso' | translate}}:\n                                    </label>\n                                    <br />\n                                    <label>{{bean.nombreEven}}</label>\n                                </div>\n                                <!-- Evaluado -->\n                                <div *ngIf=\"bean.documento\">\n                                    <label class=\"font-semibold\">\n                                        {{'evaluado' | translate}}:\n                                    </label> <br />\n                                    <label>{{bean.documento}} - {{bean.nombreCompleto}}</label>\n                                </div>\n                            </div>\n                        </td>\n                        <td style=\"width: 20%;\">{{bean.descripcionEntrevistaPrueba}}</td>\n                        <td style=\"width: 10%;\"><label *ngIf=\"!bean.seccion\">{{bean.estado | parametrosEvaluacionPipe :\n                            'listaestadoevaluacionpru'}}</label></td>\n                        <td style=\"width: 10%;\">{{bean.aplicacion | date : ('formatofecha' | translate)}}</td>\n                        <td style=\"width: 10%;\" *ngIf=\"['B', 'C'].includes(origen)\">{{bean.limite | date :\n                            ('formatofecha' | translate)}}</td>\n                        <td style=\"width: 25%;\">{{bean.nombreCompletoEvalua}}</td>\n                        <td style=\"width: 10%;\" *ngIf=\"origen == 'S'\">{{bean.numeroProceso}}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n        <!--se crea para dar espacio inferior en componente portal y s epueda desplegar el overlay-->\n        @if(paginador.length\n        <= 2) { <br /><br />\n        }\n    </div>\n    <div *ngIf=\"opcion =='pendiente'\">\n        <div class=\"flex justify-content-start align-items-center mb-3\">\n            <app-filtro-general #filtroPendiente [filtros]=\"filtersPendiente\" [datatable]=\"tablaPendiente\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"flex filtroContainer\" style=\"min-width:30rem\">\n                            <div class=\"field mr-2 w-full\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown formControlName=\"etapa\" [options]=\"listaEtapas\"\n                                        [autoDisplayFirst]=\"false\" [showClear]=\"true\"></p-dropdown>\n                                    <label>{{'etapa' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                        <div class=\"flex filtroContainer\" style=\"min-width:30rem\">\n                            <div class=\"field mr-2 w-full\">\n                                <div class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" formControlName=\"documento\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnterPendiente($event)\"\n                                        (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'identificacion' | translate}}</label>\n                                </div>\n                            </div>\n                        </div>\n                        <div class=\"flex filtroContainer\" style=\"min-width:30rem\">\n                            <div class=\"field mr-2 w-full\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" formControlName=\"nombres\" autocomplete=\"off\"\n                                        (keydown)=\"filtrarEnterPendiente($event)\"\n                                        (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'nombre' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n        </div>\n\n        <p-table #tablaPendiente responsiveLayout=\"scroll\" [value]=\"paginadorPendientes\"\n            [rows]=\"paginatorPendientes.rows\" [lazy]=\"true\" (onLazyLoad)=\"cargarListaPendientes($event)\"\n            [totalRecords]=\"paginatorPendientes.totalRecords\"\n            [paginator]=\"paginatorPendientes.totalRecords > paginatorPendientes.rows\"\n            [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\"\n            [scrollable]=\"true\" (onRowSelect)=\"verPendiente($event)\" (onRowUnselect)=\"verPendiente($event)\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n            <ng-template pTemplate=\"header\">\n                <tr class=\"fondoTablaPincipal\">\n                    <th style=\"width: 10%;\">{{'identificacion' | translate}}</th>\n                    <th style=\"width: 25%;\">{{'nombre' | translate}}</th>\n                    <th style=\"width: 30%;\">{{'etapa' | translate}}</th>\n                    <th style=\"width: 25%;\">{{'herramienta' | translate}}</th>\n                    <th style=\"width: 10%;\">{{'fecha' | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean>\n                <tr [pSelectableRow]=\"bean\">\n                    <td style=\"width: 10%;\">{{bean.documentoEmpleado}}</td>\n                    <td style=\"width: 25%;\">{{bean.nombres}}</td>\n                    <td style=\"width: 30%;\">{{bean.nombreEtapa}}</td>\n                    <td style=\"width: 25%;\">{{bean.descripcionEtapa}}</td>\n                    <td style=\"width: 10%;\">{{bean.fechaInicial | date : ('formatofecha' | translate)}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n        <app-popup-etapa-proceso [mostrarPopup]=\"verPopupEtapaProceso\" [etapaProcesoSeleccionada]=\"etapaProceso\"\n            *ngIf=\"verPopupEtapaProceso\" (regresar)=\"regresarPopupEtapaProceso()\"></app-popup-etapa-proceso>\n    </div>\n</div>\n\n<div class=\"mt-3\" *ngIf=\"mostrarDesdeProcSeleccion && 'detalle' != vistaVisualizar\">\n    <div class=\"flex justify-content-between align-items-center mb-2\">\n        <app-filtro-general #filtroEvaluaciones [filtros]=\"filters\" (metodoRegresar)=\"cargarEvaluacion($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [options]=\"listaSelectEntrevista\" optionLabel=\"label\" optionValue=\"key\"\n                                formControlName=\"entrevistaPrueba\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\n                                [showClear]=\"true\"></p-dropdown>\n                            <label for=\"entrevista\">{{'entrevista' | translate}}</label>\n                        </span>\n                    </div>\n\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [options]=\"listaSelectEstado\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                                formControlName=\"estado\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\n                                [showClear]=\"true\"></p-dropdown>\n                            <label for=\"estado\">{{'estado' | translate}}</label>\n                        </span>\n                    </div>\n\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText type=\"text\" id=\"documento\" formControlName=\"documento\" maxlength=\"14\">\n                            <label for=\"documento\">{{'identificacionevaluado' | translate}} </label>\n                        </span>\n                    </div>\n\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText type=\"text\" id=\"documentoEvalua\" formControlName=\"documentoEvalua\"\n                                maxlength=\"14\">\n                            <label for=\"documentoEvalua\">{{'identificacionevaluador' | translate}} </label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaEvaluacion id=\"tabla_evaluacion\" [value]=\"listaEvaluaciones\" responsiveLayout=\"scroll\"\n        selectionMode=\"single\" [rows]=\"10\"\n        [paginator]=\"listaEvaluaciones.length > 10\" scrollDirection=\"horizontal\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" styleClass=\"p-datatable-striped\"\n        [totalRecords]=\"listaEvaluaciones.length\" (onRowSelect)=\"verEvaluacionAction($event)\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [(selection)]=\"evaluacionSeleccionada\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 8%;\">{{'identificacion' | translate}}</th>\n                <th style=\"width: 10%;\">{{'evaluado' | translate}}</th>\n                <th style=\"width: 15%;\">{{'etapa' | translate}}</th>\n                <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n                <th style=\"width: 10%;\">{{'fechaaplicada' | translate}}</th>\n                <th style=\"width: 10%;\">{{'responsableevaluacion' | translate}}</th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-registro>\n            <tr [pSelectableRow]=\"registro\">\n                <td style=\"width: 8%;\">{{registro.documento}}</td>\n                <td style=\"width: 10%;\">{{registro.nombreCompleto}}</td>\n                <td style=\"width: 15%;\">{{registro.descripcionEntrevistaPrueba}}</td>\n                <td style=\"width: 10%;\">{{obtenerEstado(registro.estado)}}</td>\n                <td style=\"width: 10%;\">{{registro.aplicacion| date: ('formatofecha' | translate)}}</td>\n                <td style=\"width: 10%;\">{{registro.nombreCompletoEvalua}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n\n<div *ngIf=\"vistaVisualizar == 'detalle'\">\n    <app-detalle-preguntas-evaluacion-procesoseleccion\n        (regresar)=\"regresapreguntas()\"></app-detalle-preguntas-evaluacion-procesoseleccion>\n</div>\n\n<!-- PUNTAJE -->\n<div *ngIf=\"mostrarDesdeProcSeleccion && vistaVisualizar == 'detalle'\">\n    <div class=\"cardInstrucciones mt-4 background-85\" *ngIf=\"'S' == evaluacionSeleccionada.origen && 'C' == evaluacionSeleccionada.estado\">\n        <div class=\"flex align-center\">\n            <div class=\"icono\">\n                <i class=\"pi pi-info\"></i>\n            </div>\n            <div class=\"contenedor\">\n                <label class=\"font-semibold\">{{'puntaje' | translate}} : </label>\n                <label> {{evaluacionSeleccionada.puntaje}}</label>\n            </div>\n        </div>\n    </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ParametroFormatoPipe } from '../../../../shared/pipes/parametroFormato.pipe';\nimport { CargarControlFuncionalidadService, ToastService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-popup-seleccionar-derogar',\n    templateUrl: './popup-seleccionar-derogar.component.html',\n    styleUrls: ['./popup-seleccionar-derogar.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupSeleccionarDerogarComponent implements OnInit {\n\n  public llaveFormato: number;\n\tpublic modo: string;\n  public retorno: string;\n  public mostrar = false;\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n\n  constructor(private notificacionesService: ToastService,\n\t\t\t  private controlFuncionService: CargarControlFuncionalidadService,\n              private parametroFormatoPipe: ParametroFormatoPipe) { }\n\n  ngOnInit(): void {\n  }\n\n  inicializar(llaveFormato: number, modo: string) {\n\t\tthis.modo = modo;\n\t\tif (llaveFormato == null) {\n\t\t\tthis.notificacionesService.showInfo (\"No tiene formato\");\n\t\t\treturn;\n\t\t}\n\t\tthis.llaveFormato = llaveFormato;\n\t\tthis.mostrarPopup();\n\t}\n\n  mostrarPopup(){\n    this.mostrar = true;\n  }\n\n  ocultar(){\n    this.mostrar = false;\n    this.regresar.emit(this.retorno);\n  }\n\n  accionElaborar() {\n\t\tthis.retorno = 'seleccionaFormato';\n\t\tthis.ocultar();\n\t\t\n\t}\n\n\taccionDerogar() {\n\t\tthis.retorno = 'mostrarPopupDerogar';\n\t\tthis.ocultar();\n\t\t\n\t}\n\t\n\taccionCorregir() {\n\t\tthis.retorno = 'mostrarPopupDerogarCorregir';\n\t\tthis.ocultar();\n\t\t\n\t}\n\n\tisDerogar() {\n\t\treturn this.modo.includes(this.parametroFormatoPipe.DEROGAR);\n\t}\n\n\tisCorregir() {\n\t\treturn this.modo.includes(this.parametroFormatoPipe.CORREGIR);\n\t}\n\n\tisElaborar() {\n\t\treturn this.modo.includes(this.parametroFormatoPipe.ELABORAR);\n\t}\n\n\tget controlCorregir() : boolean {\n\t\tlet valor = this.controlFuncionService.getControlFuncionalidad('actadm:corregir');\n\t\treturn valor == true && valor != undefined \n\t}\n\n}\n","<div id=\"#actosAdministrativos\">\n<div  *ngIf=\"mostrar\" class=\"flex justify-content-between\">\n    @if(isElaborar()) {\n        <button pButton pRipple  class=\"p-button-outlined  boton-accion-principal text-gray-600\" (click)=\"accionElaborar()\" label=\"{{'elaborar' | translate}}\">\n            <div class=\"contenedor-icono-acciones-principal\">\n                <i class=\"glyphicons glyphicons-chronicle color-500\"></i>\n            </div>\n        </button>\n    }\n    @if(isCorregir() && controlCorregir) {\n        <button pButton pRipple  class=\"p-button-outlined  boton-accion-principal text-gray-600\" (click)=\"accionCorregir()\" label=\"{{'corregir' | translate}}\" >\n            <div class=\"contenedor-icono-acciones-principal\">\n                <i class=\"glyphicons glyphicons-copy color-500\"></i>\n            </div>\n        </button>\n    }\n    @if(isDerogar()) {\n        <button pButton pRipple  class=\"p-button-outlined  boton-accion-principal text-gray-600\" (click)=\"accionDerogar()\" label=\"{{'derogar' | translate}}\">\n            <div class=\"contenedor-icono-acciones-principal\">\n                <i class=\"glyphicons glyphicons-cleaning color-600\"></i>\n            </div>\n        </button>\n    }\n</div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class ActosAdminTablaModel extends UnionModel {\n\n\tactoCambio:string;\n\ttabla:string;\n\tproposito:string;\n\trequerida:number;\n\ttemporal:string;\n\tareaComite:string;\n\tpapel:string;\n\tfrecuencia:string;\n\tasignatura:string;\n\tsemestre:string;\n\tgrupoAsignatura:string;\n\tintensidad:number;\n\tdescripcionAsignatura:string;\n\tdescripcionSemestre:string;\n}","import { UnionModel } from 'general-library-union'\n\nexport class AsignaturaModel extends UnionModel{\n\n\t\n\tdescripcion: string;\n\tcomodinBusqueda: string;\n\tcodigo: string;\n\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { BeneficioEmpleadoModel } from '../../../../bienestar/models/BeneficioEmpleadoModel';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { TipoServicioModel } from '../../../models/TipoServicioModel';\nimport { ServicioEntidadExternaModel } from '../../../models/ServicioEntidadExternaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { UbicacionGeograficaFiltroTablaModel } from '../../../../hojavida/models/UbicacionGeograficaFiltroTablaModel';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { ConfirmationService } from 'primeng/api';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputHelperUbicacionComponent } from '../../../../../shared/componentes/input-helper-ubicacion/input-helper-ubicacion.component';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf, NgFor } from '@angular/common';\n\n@Component({\n    selector: 'app-beneficiarios-entidad',\n    templateUrl: './beneficiarios-entidad.component.html',\n    styleUrls: ['./beneficiarios-entidad.component.scss'],\n    standalone: true,\n    imports: [NgIf, NgFor, CalendarModule, FormsModule, DropdownModule, InputTextModule, InputNumberModule, InputHelperHojaVidaComponent, InputHelperUbicacionComponent, ButtonDirective, Ripple, TranslateModule]\n})\nexport class BeneficiariosEntidadComponent implements OnInit {\n\n  public beneficiarioEmpleado: BeneficioEmpleadoModel = new BeneficioEmpleadoModel();\n\tpublic tipoServicioDTO: TipoServicioModel;\n\tpublic nuevo: boolean;\n  public puedeActualizar: boolean;\n\tpublic listaTipoServicio: any[] = [];\n\tpublic listatipoDocumento: any[] = [];\n\tpublic listaCampos: DatoorganizacionModel[] = [];\n  public listaCiclos:any[] = [];\n\n  public clickGuardar: boolean = false;\n  @Output() public regresar = new EventEmitter();\n\n  constructor(private generalService: GeneralService,\n              private generalPipe: GeneralPipe,\n              private translateService: TranslateService,\n              private authService: AuthService,\n              private datoOrganizacionPipe: DatoOrganizacionPipe,\n              private notificacionesService: ToastService,\n              private confirmationService: ConfirmationService,\n              public utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.beneficiarioEmpleado= new BeneficioEmpleadoModel();\n    for (let i = 0; i <= 10; i++) {\n      this.listaCiclos.push({label: i+'', value: i});\n    }\n  }\n\n  async buscar(beneficiario: BeneficioEmpleadoModel, nuevo: boolean, actualiza: boolean, tipoServicio: TipoServicioModel){\n      this.clickGuardar = false;\n\t\t\tthis.puedeActualizar=actualiza;\n\t\t\tthis.nuevo=nuevo;\n\t\t\tthis.tipoServicioDTO=tipoServicio;\n\t\t\tthis.listaTipoServicio = [];\n\t\t\tif(this.tipoServicioDTO.tipoServicioExterno != null){\n\t\t\t\tvar servicioEntidad=new ServicioEntidadExternaModel();\n\t\t\t\tservicioEntidad.tipoServicio = this.tipoServicioDTO.tipoServicioExterno;\n\t\t\t\tvar listaServicio: ServicioEntidadExternaModel[] = await this.generalService.queryForList(new GeneralModel('ServicioEntidadExternaDTO', 'ServicioEntidad.listaTipoServicioExterno', false, servicioEntidad)).toPromise();\n\t\t\t\tlistaServicio.forEach(async serent =>  {\n\t\t\t\t\tthis.listaTipoServicio.push({value: serent.entidad, label: serent.nombreEntidad});\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.beneficiarioEmpleado=beneficiario;\n      console.log(this.beneficiarioEmpleado)\n\t\t\tawait this.cargarListaCampos();\n\t}\n\t\n\tasync cargarListaCampos(){\t\n\t\t\tthis.listaCampos = [];\n\t\t\tvar datoFiltro= new DatoorganizacionModel();\n\t\t\tdatoFiltro.llaveBase = this.utilsService.rightpad(this.tipoServicioDTO.tipoServicio,32, '');\n\t\t\tdatoFiltro.tabla = this.datoOrganizacionPipe.TIPOSERVICIO;\n\t\t\tdatoFiltro.tipo = this.datoOrganizacionPipe.CAMPOENTRADA;\n\t\t\tthis.listaCampos = await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoFiltro)).toPromise();\n\t\t\tthis.listaCampos.forEach(async datoorganizacionDTO => {\n\t\t\t\tif ( datoorganizacionDTO.cadena != null && this.datoOrganizacionPipe.ENTIDADEMPLEADO == datoorganizacionDTO.cadena.trim()) {\n\t\t\t\t\tdatoorganizacionDTO.campo = datoorganizacionDTO.campo+'Entidad';\n\t\t\t\t}\n\t\t\t})\n\t\t\n\t}\n\n\tcerrarAction(){\n\t}\n\t\n\tverPopupHojaAction() {\n\t}\n\n\tverPopupUbicacion(){\n\t}\n\t\n\tsetCiudadEntidad(ubicacionGeograficaFiltroTablaDTO: UbicacionGeograficaFiltroTablaModel){\n\t\tthis.beneficiarioEmpleado.ubicacionciu = ubicacionGeograficaFiltroTablaDTO.llaveCiudad;\n\t\tthis.beneficiarioEmpleado.nombreCiudad = ubicacionGeograficaFiltroTablaDTO.ciudad;\n\t}\n\n\tsetAsignaBeneficiario(hojaVidaDTO: HojaVidaModel) {\n\t\tthis.beneficiarioEmpleado.beneficiario = hojaVidaDTO.identifica;\n\t\tthis.beneficiarioEmpleado.nombreBeneficiarioExt = hojaVidaDTO.nombreCompleto;\n\t}\n\t\n\tvalidar(){\n\t\tvar validador = true;\n    this.listaCampos.forEach(campo => {\n      var campocampo = campo.campo;\n\t\t\tswitch (campocampo) {\n\t\t\tcase 'fechaAsignacion':\n\t\t\t\tcampocampo='asginacion';\n\t\t\t\tbreak;\n\t\t\tcase 'sucursalReferencia':\n\t\t\t\tcampocampo='sucreferenciaEntidad';\n\t\t\t\tbreak;\n\t\t\tcase 'referenciaEntidad':\n\t\t\t\tcampocampo='referenciaExterna';\n\t\t\t\tbreak;\n\t\t\tcase 'valorEntidad':\n\t\t\t\tcampocampo='valor';\n\t\t\t\tbreak;\n\t\t\tcase 'tipoEntidad':\n\t\t\t\tcampocampo='valorTipo';\n\t\t\t\tbreak;\n\t\t\tcase 'cicloEntidad':\n\t\t\t\tcampocampo='ciclo';\n\t\t\t\tbreak;\n\t\t\tcase 'beneficiarioEntidad':\n\t\t\t\tcampocampo='beneficiario';\n\t\t\t\tbreak;\n\t\t\tcase 'ciudadEntidad':\n\t\t\t\tcampocampo='nombreCiudad';\n\t\t\t\tbreak;\n\n\t\t\t}\n      if (campo.requerido == 'S' && !this.utilsService.validarCampoObligatorio(this.beneficiarioEmpleado[campocampo])  ){\n        validador = validador && false;\n      }\n    })\n\t\treturn validador;\n\t}\n\t\n\tasync guardar(){\n    this.clickGuardar = true;\n\t\tif(this.validar()){\n      this.clickGuardar = false;\n\t\t\tif(this.nuevo){\n\t\t\t\tthis.beneficiarioEmpleado.llaveTabla = this.utilsService.generarLlave();\n\t\t\t\tthis.beneficiarioEmpleado.identifica = 0;\n\t\t\t\tthis.beneficiarioEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\tthis.beneficiarioEmpleado = await this.generalService.crearRegistro(new GeneralModel('BeneficioEmpleadoDTO', null, false, this.beneficiarioEmpleado)).toPromise();\n        this.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\t\t}else{\n        await this.generalService.update(new GeneralModel('BeneficioEmpleadoDTO', null, false, this.beneficiarioEmpleado)).toPromise();\n        this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n      }\n      this.regresar.emit(true);\n\t\t } else {\n      this.notificacionesService.showError('Faltan campos obligatorios')\n     }\n\t}\n\t\n\teliminar(event){\n    this.confirmationService.confirm({\n      target: event.target,\n      message:  this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: this.generalPipe.SI_DESC,\n      header: this.translateService.instant('confirmar'),\n      accept: async () => {\n        await this.generalService.delete(new GeneralModel('BeneficioEmpleadoDTO', null, false, this.beneficiarioEmpleado)).toPromise();\n\t\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n        this.regresar.emit(true);\n      }\n    })\n\t}\n\n}\n","<div class=\"card\" style=\"margin-bottom:  1rem !important;\" *ngIf=\"listaCampos.length > 0\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\n    <div class=\"p-fluid p-formgrid grid\" >\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngFor=\"let campo of listaCampos\">\n            <span class=\"p-float-label\" *ngIf=\"!['ciudadEntidad', 'beneficiarioEntidad'].includes(campo.campo)\">\n                <!--FECHA ASIGNACION-->\n                <p-calendar [(ngModel)]=\"beneficiarioEmpleado.asignacion\" [showIcon]=\"true\" dateFormat=\"dd/mm/yy\"\n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.asignacion) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'fechaAsignacion'\"></p-calendar>\n                <!--HASTA-->\n                <p-calendar [(ngModel)]=\"beneficiarioEmpleado.hasta\" [showIcon]=\"true\" dateFormat=\"dd/mm/yy\"\n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.hasta) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'hasta'\"></p-calendar>\n                <!--TIPO DOCUMENTO-->    \n                <p-dropdown class=\"w-full\" [options]=\"listatipoDocumento\" *ngIf=\"campo.campo == 'tipoDocumento'\"\n                    [autoDisplayFirst]=\"false\" [(ngModel)]=\"beneficiarioEmpleado.tipoDocumento\" [showClear]=\"campo.requerido != 'S'\"\n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.tipoDocumento) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                ></p-dropdown>\n                <!--DOCUMENTO-->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.documento\" [maxlength]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.documento) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'documento'\" />\n                <!--TERCERO-->    \n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.tercero\" [maxlength]=\"100\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.tercero) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tercero'\" />\n                <!--APELLIDOS-->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.apellidos\" [maxlength]=\"100\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.apellidos) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'apellidos'\" />\n                <!--FECHA NACIMIENTO-->\n                <p-calendar [(ngModel)]=\"beneficiarioEmpleado.fechaNacimiento\" [showIcon]=\"true\" dateFormat=\"dd/mm/yy\"\n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.fechaNacimiento) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'fechaNacimiento'\"></p-calendar>\n                <!--COSTO INCURRE-->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.costoIncurre\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.costoIncurre) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'costoIncurre'\"></p-inputNumber>\n                <!--SUCURSAL REFERENCIA-->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.sucursalReferencia\" [maxlength]=\"8\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.sucursalReferencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'sucreferenciaEntidad'\" />\n                <!--TIPO REFERENCIA-->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.tipoReferencia\" [maxlength]=\"8\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.tipoReferencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tiporeferenciaEntidad'\" />\n                <!--REFERENCIA EXTERNA-->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.referenciaExterna\" [maxlength]=\"20\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.referenciaExterna) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'referenciaEntidad'\" />\n                <!-- VALOR -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.valor\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.valor) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'valorEntidad'\"></p-inputNumber>\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.valorTipo\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.valorTipo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tipoEntidad'\"></p-inputNumber>\n                <!-- CICLO -->\n                <p-dropdown class=\"w-full\" [options]=\"listaCiclos\" *ngIf=\"campo.campo == 'cicloEntidad'\"\n                    [autoDisplayFirst]=\"false\" [(ngModel)]=\"beneficiarioEmpleado.ciclo\" [showClear]=\"campo.requerido != 'S'\"\n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.ciclo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                ></p-dropdown>\n                <!--ENTIDAD AUXILIAR-->\n                <p-dropdown class=\"w-full\" [options]=\"listaTipoServicio\" *ngIf=\"campo.campo == 'entidadAuxiliar'\"\n                    [autoDisplayFirst]=\"false\" [(ngModel)]=\"beneficiarioEmpleado.entidadAuxiliar\" [showClear]=\"campo.requerido != 'S'\"\n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.entidadAuxiliar) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                ></p-dropdown>\n\n                <!-- FAMILIA -->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.referencia\" [maxlength]=\"20\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.referencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'referencia'\" />\n                <!--NUMERO USUARIO--> \n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.grupoFamiliar\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.grupoFamiliar) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'grupoFamiliar'\"></p-inputNumber>   \n                <!-- PARENTESCO -->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.tipo\" [maxlength]=\"3\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.tipo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tipo'\" />                \n                <!--EDAD--> \n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.duracion\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.duracion) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'duracion'\"></p-inputNumber>   \n                <!--INGRESO CUOTA-->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.costoEmpresa\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.costoEmpresa) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'costoEmpresa'\"></p-inputNumber>   \n                <!-- DESCUENTO COMERCIAL -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.costo\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.costo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'costo'\"></p-inputNumber>   \n                <!-- DESCUENTO COMERCIAL ESPECIAL -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.descuentoEsp\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.descuentoEsp) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'descuentoEsp'\"></p-inputNumber>   \n                <!-- DESCUENTO COMERCIAL 2 -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.descuentoComercial2\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.descuentoComercial2) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'descuentoComercial2'\"></p-inputNumber>   \n                <!-- ANEXO -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.valor2\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.valor2) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'valor2'\"></p-inputNumber>   \n                <!-- SUBTOTAL -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.valor3\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.valor3) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'valor3'\"></p-inputNumber>   \n                <!-- CUOTA TOTAL -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.valor4\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.valor4) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'valor4'\"></p-inputNumber>   \n                <!-- INTERES -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.interes\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.interes) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'interes'\"></p-inputNumber>   \n                <!-- ESTADO EPS -->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.estadoEps\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.estadoEps) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'estadoEps'\" />\n                <!-- NOVEDAD EPS -->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.periodoCurso\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.periodoCurso) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'periodoCurso'\" />\n                <!-- FECHA NOVEDD EPS -->\n                <p-calendar [(ngModel)]=\"beneficiarioEmpleado.fechaFinal\" [showIcon]=\"true\" dateFormat=\"dd/mm/yy\"\n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.fechaFinal) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'fechaFinal'\"></p-calendar>\n                <!-- GRUPO FAMILIAR BASICO -->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.grupoBasicoFamilia\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.grupoBasicoFamilia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'grupoBasicoFamilia'\" />\n                <!-- MOTIVO FACTURA -->\n                <input pInputText type=\"text\" [(ngModel)]=\"beneficiarioEmpleado.horario\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.horario) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'horario'\" />\n                <!-- DIAS COBRADOS -->\n                <p-inputNumber [(ngModel)]=\"beneficiarioEmpleado.cantidad\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                    [class]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.cantidad) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'cantidad'\"></p-inputNumber>\n\n                <label>{{campo.descripcion}} {{campo.requerido == 'S' ? '*' : ''}}</label>\n            </span>\n\n            <!-- BENEFICIARIO -->\n            <app-input-helper-hoja-vida [(ngModel)]=\"beneficiarioEmpleado.beneficiario\" [readonly]=\"false\" *ngIf=\"campo.campo =='beneficiarioEntidad'\"\n                [label]=\"beneficiarioEmpleado.nombreBeneficiarioExt ? beneficiarioEmpleado.nombreBeneficiarioExt : ''\" [booleano]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.ciclo) && clickGuardar && campo.requerido == 'S'\"\n                [header]=\"campo.descripcion + (campo.requerido == 'S' ? '*' : '')\" (onSelected)=\"setAsignaBeneficiario($event)\"></app-input-helper-hoja-vida>\n            <!--CIUDAD-->\n            <app-input-helper-ubicacion [readonly]=\"false\" \n                [label]=\"beneficiarioEmpleado.nombreCiudad ? beneficiarioEmpleado.nombreCiudad : ''\" *ngIf=\"campo.campo == 'ciudadEntidad'\"\n                [booleano]=\"!utilsService.validarCampoObligatorio(beneficiarioEmpleado.ubicacionciu) && clickGuardar && campo.requerido == 'S'\"\n                [labelInput]=\"campo.descripcion + (campo.requerido == 'S' ? '*' : '')\"\n                (onSelected)=\"setCiudadEntidad($event)\"></app-input-helper-ubicacion>\n        </div>\n    </div>\n</div>\n <!--Botones de ACCION-->\n <div class=\"flex justify-content-end mb-3 mt-3\" >\n    <!--GUARDAR/ACTUALIZAR-->\n    <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"puedeActualizar\"\n        icon=\"glyphicons {{!nuevo ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n        label=\"{{!nuevo ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" (click)=\"guardar()\">\n    </button>\n    <!--ELIMINAR-->\n    <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"!nuevo && puedeActualizar\"\n        label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n    </button>\n</div>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EntidadEmpleadoService {\n    listProcedure(objetoFiltro: GeneralModel) {\n      throw new Error('Method not implemented.');\n    }\n  \n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n      this.handleError = this.handleError.bind(this);\n    }\n  \n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n  \n    guardarEntidadExterna( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/compensacion/entidadempleado/guardarEntidadExterna`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n    \n}","import { DatePipe, NgIf, NgClass, NgFor, CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { DatoOrganizacionPipe } from '../../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { BeneficioEmpleadoModel } from '../../../../../bienestar/models/BeneficioEmpleadoModel';\nimport { ControlProcesoModel } from '../../../../../compensacion/models/ControlProcesoModel';\nimport { EmpleadoModel } from '../../../../../compensacion/models/EmpleadoModel';\nimport { EntidadEmpleadoModel } from '../../../../../compensacion/models/EntidadEmpleadoModel';\nimport { ServicioEntidadExternaModel } from '../../../../../compensacion/models/ServicioEntidadExternaModel';\nimport { TipoServicioModel } from '../../../../../compensacion/models/TipoServicioModel';\nimport { HistoricoPipe } from '../../../../../compensacion/pipes/historicos.pipe';\nimport { ControlProcesoService } from '../../../../../compensacion/services/control-proceso.service';\nimport { EntidadEmpleadoService } from '../../../../../compensacion/services/entidadempleado.service';\nimport { LiquidacionNominaService } from '../../../../../compensacion/services/liquidacion-nomina.service';\nimport { SelectListCompensa } from '../../../../../compensacion/services/select-list-compensa.service';\nimport { HojaVidaModel } from '../../../../../hojavida/models/HojaVidaModel';\nimport { DatoorganizacionModel } from '../../../../../talento/models/DatoorganizacionModel';\nimport { BeneficiariosEntidadComponent } from '../../beneficiarios-entidad/beneficiarios-entidad.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputHelperUbicacionComponent } from '../../../../../../shared/componentes/input-helper-ubicacion/input-helper-ubicacion.component';\nimport { InputHelperHojaVidaComponent } from '../../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputHelperSeleccionSucursalEntidadComponent } from '../../../../../../shared/componentes/input-helper-seleccion-sucursal-entidad/input-helper-seleccion-sucursal-entidad.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { AccordionModule } from 'primeng/accordion';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\n\n@Component({\n    selector: 'app-popup-entidad-datos-basicos-empleado',\n    templateUrl: './popup-entidad-datos-basicos-empleado.component.html',\n    styleUrls: ['./popup-entidad-datos-basicos-empleado.component.scss'],\n    standalone: true,\n    imports: [CommonModule, ButtonDirective, Ripple, AccordionModule, PrimeTemplate, NgClass, FieldsetModule, FormsModule, InputTextModule, InputHelperSeleccionSucursalEntidadComponent, CalendarModule, DropdownModule, NgFor, InputNumberModule, InputHelperHojaVidaComponent, InputHelperUbicacionComponent, TableModule, TemplateTablaVaciaComponent, BeneficiariosEntidadComponent, TranslateModule, ButtonModule],\n\tproviders: [DatePipe]\n})\nexport class PopupEntidadDatosBasicosEmpleadoComponent implements OnInit {\n\n\t@Input() public mostrar: boolean;\n\t@Input() public ocultarRegresar: boolean;\n\t@Output() public regresar = new EventEmitter();\n  \n\tpublic parametroBusqueda: string;\n\tpublic nuevo: boolean;\n\tpublic entidadEmpleado: EntidadEmpleadoModel = new EntidadEmpleadoModel();\n\tpublic listaTipoSucursalTem: any[] = [];\n\tpublic listaTipoEntidadTem: any[] = [];\n\tpublic entidadEmpleadoTem: EntidadEmpleadoModel;\n\tpublic entidadEmpleadoMostrar: EntidadEmpleadoModel;\n\tpublic mostrarDatosEntidad: boolean;\n\tpublic afiliados: boolean;\n\tpublic puedeActualizar: boolean;\n\tpublic mostrartipoServicoAlterno: boolean;\n\tpublic listaTipoServicio: any[];\n\tpublic ancho: number;\n\tpublic posicion: number;\n\tpublic tipoServico: TipoServicioModel =new TipoServicioModel();\n\tpublic listaBeneficiario: BeneficioEmpleadoModel[]=[];\n\tpublic empleado: EmpleadoModel = new EmpleadoModel();\n\tpublic panel: number;\n\tpublic origen: string;\n\tpublic titulo: string;\n\tpublic listaNominaEmpleado: any[];\n\tpublic fechaCorte: Date;\n\tpublic mostrarLista: boolean;\n  \tpublic mostrarPanel: boolean;\n\tpublic mapaPago: any[];\n\tpublic listaDefinicionCiclos: any[];\n\tpublic listaCampos: DatoorganizacionModel[];\n\tpublic mapaCampos:  Map<string, string>=new Map<string, string>();\n\tpublic historico: boolean;\n\n\tpublic clickGuardar: boolean = false;\n\tpublic verDetalleAfiliado: boolean = false;\n\t@ViewChild('beneficiarioEntidad') beneficiarioEntidad: BeneficiariosEntidadComponent;\n\n \tconstructor(private generalService: GeneralService,\n              private authService: AuthService,\n              private confirmationService: ConfirmationService,\n              private notificacionesService: ToastService,\n              public utilsService: UtilsService,\n              private selectListCompensa: SelectListCompensa,\n\t\t\t  private generalPipe: GeneralPipe,\n\t\t\t  private entidadEmpleadoService: EntidadEmpleadoService,\n              private datoOrganizacionPipe: DatoOrganizacionPipe,\n              private historicoPipe: HistoricoPipe,\n\t\t\t  private controlProcesoService: ControlProcesoService,\n\t\t\t  private liquidacionNominaService: LiquidacionNominaService,\n\t\t\t  private translateService: TranslateService,\n\t\t\t  private datePipe: DatePipe,\n              public controlFuncionService: CargarControlFuncionalidadService) { }\n\n  ngOnInit(): void {\n\tthis.init();\n  }\n\n  init(){\n\t\tthis.entidadEmpleadoMostrar = new EntidadEmpleadoModel();\n\t\tthis.entidadEmpleadoMostrar.ciclo = 0;\n\t\tthis.entidadEmpleadoMostrar.valor = 0;\n\t\tthis.entidadEmpleadoTem = new EntidadEmpleadoModel();\n\t\tthis.mostrarDatosEntidad = false;\n\t\tthis.mostrarPanel = true;\n\t\tthis.panel = 0;\n\t\tthis.posicion=45;\n\t\tthis.ancho=730;\n\t\tthis.origen='';\n\t\tthis.mapaPago=this.historicoPipe.MAPALIQUIDADO;\n\t\tthis.listaCampos = [];\n\t}\n\n\tasync buscar(origen: string, empleado: EmpleadoModel, control: string) {\n\t\tthis.origen=origen;\n\t\tthis.empleado = empleado;\n\t\tif(this.isOrigenCompensacion()){\n\t\t\tthis.titulo='Terceros'; \n\t\t}else{\n\t\t\tthis.titulo='Entidad';\n\t\t}\n\t\tif(empleado!=null){\n\t\t\tthis.listaDefinicionCiclos = await this.selectListCompensa.getListaDefinicionCiclos(empleado.tipoPeriodo);\n\t\t}\n\t\telse {\n\t\t\tthis.empleado = new EmpleadoModel();\n\t\t}\n\t\tthis.mostrarPanel=true;\n\t\tthis.mostrarLista=false;\n\t\tthis.historico=false;\n\t\tif(control == ('Actos')) {\n\t\t\t//this.mostrarPopup();\n\t\t}\n\t\tthis.clickGuardar = false;\n\t}\n\t\n\t\n\tasync cargarListaCampos(){\n\t\tthis.listaCampos= [];\n\t\tthis.mapaCampos=new Map<string, string>();\n\t\tvar datoFiltro= new DatoorganizacionModel();\n\t\tdatoFiltro.llaveBase = this.utilsService.rightpad(this.tipoServico.tipoServicio,32, ' ');\n\t\tdatoFiltro.tabla = this.datoOrganizacionPipe.TIPOSERVICIO;\n\t\tdatoFiltro.tipo = this.datoOrganizacionPipe.CAMPOENTRADA;\n\t\tlet listaCamposTodos: DatoorganizacionModel[] = await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoFiltro)).toPromise();\n\t\tlistaCamposTodos.forEach( datoorganizacionDTO => {\n\t\tif ( datoorganizacionDTO.cadena==null ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( datoorganizacionDTO.cadena == (this.datoOrganizacionPipe.ENTIDADEMPLEADO) ) {\n\t\t\tthis.listaCampos.push(datoorganizacionDTO);\n\t\t}\n\t\tthis.mapaCampos.set(datoorganizacionDTO.campo, datoorganizacionDTO.descripcion);\n\t\t})\n\t}\n\n\t//seleccionar(ActionEvent e) {\n\t\t//this.ocultarPopup();\n\t//}\n\n\tasync validarListas() {\n\t\tthis.listaTipoEntidadTem = this.selectListCompensa.getSelectItemsTipoEntidad(await this.generalService.queryForList(new GeneralModel('EntidadDTO', null, false, {unico: this.entidadEmpleado.tipoServicio})).toPromise());\n\t\tthis.listaTipoSucursalTem = this.selectListCompensa.getSelectItemsTipoSucursal(await this.generalService.queryForList(new GeneralModel('ServicioEntidadExternaDTO', null, false, {entidad: this.entidadEmpleado.entidad ? this.entidadEmpleado.entidad : '0', tipoServicio: this.entidadEmpleado.entidad ? this.entidadEmpleado.tipoServicio : null})).toPromise());\n\t}\n\t\n\tasync beneficiarioHistorico( ){\n\t\tthis.historico = !this.historico;\n\t\tawait this.cargarbeneficiarios();\n\t}\n\t\n\tasync cargarbeneficiarios() {\n\t\tthis.afiliados = this.generalPipe.SI == this.tipoServico.beneficiario;\n\t\tif ( !this.afiliados ) {\n\t\t\treturn;\n\t\t}\n\t\tvar beneficiario=new BeneficioEmpleadoModel();\n\t\tbeneficiario.entidadEnmpleado = this.entidadEmpleado.llave;\n\t\tbeneficiario.filtroFecha = this.historico?null:new Date();\n\t\tthis.listaBeneficiario = await this.generalService.queryForList(new GeneralModel('BeneficioEmpleadoDTO', 'BeneficioEmpleado.consultarBeneficioDatoEmpleado', false, beneficiario)).toPromise();\n\t}\n\t\n\t\n\t/**\n\t * Establece el registro de entidadEmpleado que se mostrará en el popup\n\t * @param entidadEmpleadoDTO el objeto {@link EntidadEmpleadoDTO} que se quiere mostrar en este popup\n\t */\n\tasync setTraerEntidad(entidadEmpleadoDTO: EntidadEmpleadoModel) {\n\t\tthis.entidadEmpleado = new EntidadEmpleadoModel();\n\t\t\n\t\t//Consulta el tipo de servicio\n\t\tthis.tipoServico=new TipoServicioModel();\n\t\tthis.tipoServico.tipoServicio = entidadEmpleadoDTO.tipoServicio;\n\t\tthis.tipoServico=await this.generalService.queryForObject(new GeneralModel('TipoServicioDTO', null, false, this.tipoServico)).toPromise();\n\t\t\n\t\t//Si es tipo de servicio \n\t\tif(this.tipoServico.tipoServicioExterno!= null){\n\t\t\tthis.mostrartipoServicoAlterno=true;\n\t\t\tthis.listaTipoServicio = [];\n\t\t\tvar servicioEntidad=new ServicioEntidadExternaModel();\n\t\t\tservicioEntidad.tipoServicio = this.tipoServico.tipoServicioExterno;\n\t\t\tlet listaServicio=await this.generalService.queryForList(new GeneralModel('ServicioEntidadExternaDTO', 'ServicioEntidad.listaTipoServicioExterno', false, servicioEntidad)).toPromise();\n\t\t\tlistaServicio.forEach(serent => {\n\t\t\t\tthis.listaTipoServicio.push({value: serent.entidad, label: serent.nombreEntidad});\n\t\t\t})\n\t\t}else{\n\t\t\tthis.mostrartipoServicoAlterno=false;\n\t\t}\n\t\tif (entidadEmpleadoDTO.identificacion == null) {\n\n\t\t\tthis.entidadEmpleado.tipoServicio = this.tipoServico.tipoServicio;\n\t\t\tthis.entidadEmpleado.ciclo = 0;\n\t\t\tthis.entidadEmpleado.valor = 0;\n\t\t\tthis.entidadEmpleado.tipo = 0;\n\t\t\tthis.entidadEmpleado.beneficiario = 0;\n\t\t\tthis.entidadEmpleado.fechaAfiliacion = this.isOrigenCompensacion() ? new Date(this.empleado.fechaIngreso): null;\n\t\t\tthis.entidadEmpleado.nombreServicio = this.tipoServico.descripcion;\n\t\t\tthis.entidadEmpleado.empresa = this.empleado?.empresa ? this.empleado?.empresa : parseInt(this.authService.getTokenKey('numeroEmpresa')) ;\n\t\t\tthis.nuevo=true;\n\t\t\tthis.afiliados=false;\n\t\t} else {\n\t\t\tentidadEmpleadoDTO.ultimoAfiliacion = 'True';\n\t\t\tthis.entidadEmpleado= Object.assign({}, entidadEmpleadoDTO);\n\t\t\tthis.entidadEmpleado.nombreServicio = this.tipoServico.descripcion;\n\t\t\tawait this.cargarbeneficiarios();\n\t\t}\n\t\tthis.entidadEmpleado.fechaAfiliacion = this.entidadEmpleado.fechaAfiliacion ? new Date(this.entidadEmpleado.fechaAfiliacion) : null;\n\t\tawait this.validarListas();\n\t\tawait this.cargarListaCampos();\n\t\tthis.mostrarDatosEntidad = false;\n\t\t\n\t}\n\t\n\tisMostrarTraslado() {\n\t\treturn this.nuevo;\n\t}\n\t\n\tverPopupSucursalEmpleado() {\n\t\t//var comodinUnico= this.utilsService.rightPad(entidadEmpleado.tipoServicio),2);\n\t\t//getBean(PopupSucursalEntidad.class).buscar('#{popupEntidadDatosBasicosEmpleado.sucursalEntidad}',comodinUnico, empleado.tipoPeriodo);\n\t}\n\t\n\tverPopupUbicacion(){\n\t\t//PopUpUbicacion popUpUbicacion =  getBean(PopUpUbicacion.class);\n\t\t//popUpUbicacion.buscar('#{popupEntidadDatosBasicosEmpleado.ciudadEntidad}');\n\t\treturn null;\n\t}\n\t\n\tsetCiudadEntidad(ubicacionGeograficaFiltroTablaDTO){\n\t\tthis.entidadEmpleado.ciudad = ubicacionGeograficaFiltroTablaDTO.llaveCiudad;\n\t\tthis.entidadEmpleado.nombreCiudad = ubicacionGeograficaFiltroTablaDTO.ciudad;\n\t}\n\n\tsetSucursalEntidad(sucursalEntidadDTO: ServicioEntidadExternaModel) {\n\t\tthis.entidadEmpleado.entidad = sucursalEntidadDTO.entidad;\n\t\tthis.entidadEmpleado.nombreEntidad = `${sucursalEntidadDTO.entidad.trim()} - ${sucursalEntidadDTO.nombreEntidad}`;\n\t\tthis.entidadEmpleado.sucursal = sucursalEntidadDTO.sucursal;\n\t\tthis.entidadEmpleado.nombreSucursal = `${sucursalEntidadDTO.sucursal} - ${sucursalEntidadDTO.nombreSucursal}`;\n\t\tthis.entidadEmpleado.nombreServicio = sucursalEntidadDTO.nombreTipoServicio;\n\t}\n\t\n\tverPopupEmpleadoAction() {\n\t\t//getBean(PopupHojaVida.class).buscar('#{popupEntidadDatosBasicosEmpleado.beneficiarioPopup}');\n\t}\n\n\tsetBeneficiarioPopup(hojaVidaDTO: HojaVidaModel) {\n\t\tthis.entidadEmpleado.beneficiario = hojaVidaDTO.identifica;\n\t\tthis.entidadEmpleado.nombreBeneficiario = hojaVidaDTO.nombreCompleto;\n\t}\n\t\n\tvalidarEntidad() {\t\t\n\t\tvar validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.entidadEmpleado.entidad);\n\t\tif(this.isOrigenCompensacion()){\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.entidadEmpleado.fechaAfiliacion);\n\t\t\tif(this.mostrarDatosEntidad){\n\t\t\t\tif (this.entidadEmpleadoMostrar.fechaAfiliacion != null && this.entidadEmpleado.fechaAfiliacion != null && this.entidadEmpleadoMostrar.fechaAfiliacion > this.entidadEmpleado.fechaAfiliacion){\n\t\t\t\t\tthis.notificacionesService.showWarning('La fecha ' + this.datePipe.transform(this.entidadEmpleado.fechaAfiliacion, this.translateService.instant('formatofecha')) + ' debe ser menor a la fecha ' + this.datePipe.transform(this.entidadEmpleadoMostrar.fechaAfiliacion, this.translateService.instant('formatofecha')));\n\t\t\t\t\tvalidador = validador && false;\n\t\t\t\t  }\n\t\t\t}\n\t\t}\n\t\tlet posicion = 0;\n\t\tthis.listaCampos.forEach(async datoOrganizacion =>  {\n\t\t\tif (this.generalPipe.SI == datoOrganizacion.requerido) {\n\n\t\t\t\tlet campo = datoOrganizacion.campo;\n\t\t\t\tif (campo == 'sucreferencia'){\n\t\t\t\t\tcampo = 'sucReferencia'\n\t\t\t\t} else if (campo == 'tiporeferencia'){\n\t\t\t\t\tcampo = 'tipoReferencia';\n\t\t\t\t}\n\n\t\t\t\tlet valor =this.entidadEmpleado[campo];\n\t\t\t\tif (valor == null || valor.toString().trim() == ('')) {\n\t\t\t\t\tvalidador = validador && false;\n\t\t\t\t}\n\t\t\t\tposicion++;\n\t\t\t\treturn;\n\t\t\t}else{\n\t\t\t\tposicion++;\n\t\t\t}\n\t\t})\n\t\treturn validador;\n\t}\n\t\n\t/**\n\t * Permite guardar o actualizar el registro de entidadEmpledado manejado por el popup\n\t * @return null\n\t */\n\tasync insertarEntidad() {\n\t\tthis.clickGuardar = true;\n\t\tif(this.validarEntidad()){\n\t\t\tif(this.isOrigenCompensacion()){\n\t\t\t\tthis.clickGuardar = false;\n\t\t\t\tawait this.guardarEntidad();\n\t\t\t}else{\n\t\t\t\tthis.regresar.emit(this.entidadEmpleado)\n\t\t\t\t//aplicarDestinoOcultar(entidadEmpleado);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * Guarda o actualiza el registro de entidadEmpleado manejado por el popup\n\t */\n\tasync guardarEntidad(){\n\t\tif (this.nuevo || this.entidadEmpleado.identificacion == null) {\n\t\t\tlet data = await this.entidadEmpleadoService.guardarEntidadExterna({entidadEmpleado: this.entidadEmpleado, identificacion: this.empleado.contrato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\t\tthis.entidadEmpleado.identificacion = this.empleado.contrato;\n\t\t\tthis.entidadEmpleado = data.entidadEmpleado\n\t\t\tthis.entidadEmpleado.fechaAfiliacion = this.entidadEmpleado.fechaAfiliacion ? new Date(this.entidadEmpleado.fechaAfiliacion) : null;\n\t\t\tvar fecha = new Date(this.entidadEmpleado.fechaAfiliacion);\n\t\t\tfecha.setMonth(fecha.getMonth() - 1);\n\t\t\tthis.entidadEmpleadoMostrar.fechaRetiro = fecha;\n\t\t\tawait this.generalService.update(new GeneralModel('EntidadEmpleadoDTO', null, false, this.entidadEmpleadoMostrar)).toPromise();\n\t\t\tthis.nuevo=false;\n\t\t\tawait this.cargarbeneficiarios(); \n\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\t\t\n\t\t} else {\n\t\t\tawait this.generalService.update(new GeneralModel('EntidadEmpleadoDTO', null, false, this.entidadEmpleado)).toPromise();\n\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\t}\n\t\tthis.mostrarDatosEntidad=false;\n\t\tawait this.cargarListaNominaEmpleado();\n\t\t//getBean(DatosBasicosEmpleadoBean.class).traerDatos(true);\n\t}\n\t\n\t/**\n\t * Determina si el modulo de origen desde donde se accede al popup corresponde al modulo de compensacion o no\n\t * @return true en caso de que el origen corresponda con 'compensacion' en caso contrario retorna false\n\t */\n\tisOrigenCompensacion() {\n\t\treturn this.origen!= null && this.origen == Constantes.COMPENSACION_TEXTO;\n\t}\n\t\n\tasync eliminarEntidad(event){\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage:  this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\theader: this.translateService.instant('confirmar'),\n\t\t\taccept: async () => {\n\t\t\t\tdelete this.entidadEmpleado['nombreTabla']\n\t\t\t\tdelete this.entidadEmpleado['alias']\n\t\t\t\tawait this.generalService.delete(new GeneralModel('EntidadEmpleadoDTO', null, false, this.entidadEmpleado)).toPromise();\n\t\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\t\tthis.regresar.emit(false)\n\t\t\t}\n\t\t})\n\t\t//getBean(DatosBasicosEmpleadoBean.class).traerDatos(true);\n\t\t//this.aplicarDestinoOcultar(null);\n\t}\n\t\n\tisMostrarEliminarEntidad() {\n\t\treturn !this.nuevo && this.entidadEmpleado.identificacion != null;\n\t}\n\t\t\n\tasync trasladar() {\t\n\t\tthis.mostrarDatosEntidad = true;\n\t\tthis.ancho=900;\n\t\tthis.posicion=200;\n\t\tthis.afiliados=false;\n\t\tthis.listaBeneficiario=[];\n\t\tthis.nuevo = true;\n\t\tthis.entidadEmpleadoTem = Object.assign({}, this.entidadEmpleado);\n\t\tthis.entidadEmpleadoMostrar = Object.assign({}, this.entidadEmpleado);\n\t\tthis.entidadEmpleadoMostrar.fechaAfiliacion = this.entidadEmpleadoMostrar.fechaAfiliacion ? new Date(this.entidadEmpleadoMostrar.fechaAfiliacion) : null;\n\t\tthis.entidadEmpleado = new EntidadEmpleadoModel();\n\t\tthis.entidadEmpleado.ciudad = this.entidadEmpleadoMostrar.ciudad;\n\t\tthis.entidadEmpleado.nombreCiudad = this.entidadEmpleadoMostrar.nombreCiudad;\n\t\tthis.entidadEmpleado.tipoServicio = this.entidadEmpleadoTem.tipoServicio;\n\t\tthis.entidadEmpleado.nombreServicio = this.entidadEmpleadoMostrar.nombreServicio;\n\t\tawait this.validarListas();\n\t}\n\n\tasync cargarBeneficiarios(event){\n\t\tvar beneficiario= event.data;\n\t\tthis.verDetalleAfiliado = true;\n\t\tawait this.sleep(100)\n\t\tawait this.beneficiarioEntidad.buscar(beneficiario,false,this.puedeActualizar,this.tipoServico);\n\t}\n\t\n\tasync nuevoAfiliado(){\n\t\tvar beneficioEmpleadoDTO=new BeneficioEmpleadoModel();\n\t\tbeneficioEmpleadoDTO.entidadEnmpleado = this.entidadEmpleado.llave;\n\t\tthis.verDetalleAfiliado = true;\n\t\tawait this.sleep(100)\n\t\tawait this.beneficiarioEntidad.buscar(beneficioEmpleadoDTO, true,this.puedeActualizar,this.tipoServico);\n\t}\n\t\n\tasync setListarBeneficiarios(event){\n\t\tthis.verDetalleAfiliado = false;\n\t\tawait this.cargarbeneficiarios();\n\t}\n\t\n\tasync cargarListaNominaEmpleado(){\t\n\t\tvar fechaBaseDos: Date;\n\t\tthis.mostrarLista=false;\n\t\tthis.mostrarPanel=true;\n\t\tvar controlProcesoDTO= new ControlProcesoModel();\n\t\tcontrolProcesoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tcontrolProcesoDTO.tipoPeriodo = this.empleado.tipoPeriodo;\n\t\tcontrolProcesoDTO.origen = this.generalPipe.PERIODONOMINA;\n\t\tthis.fechaCorte=await this.controlProcesoService.fechaControl(controlProcesoDTO);\n\n\t\tcontrolProcesoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tcontrolProcesoDTO.tipoPeriodo = this.empleado.tipoPeriodo;\n\t\tcontrolProcesoDTO.origen = this.generalPipe.SEGURIDADSOCIAL;\n\t\tfechaBaseDos=await this.controlProcesoService.fechaControl(controlProcesoDTO);\n\t\tif ( fechaBaseDos != null) {\n\t\t\tif ( this.fechaCorte == null ) {\n\t\t\t\tthis.fechaCorte = fechaBaseDos;\n\t\t\t}\n\t\t\telse if ( fechaBaseDos > this.fechaCorte ) {\n\t\t\t\tthis.fechaCorte=fechaBaseDos;\n\t\t\t}\n\t\t}\n\n\t\tcontrolProcesoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tcontrolProcesoDTO.tipoPeriodo = this.empleado.tipoPeriodo;\n\t\tcontrolProcesoDTO.origen = this.generalPipe.TIPOSERVICIO;\n\t\tfechaBaseDos= await this.controlProcesoService.fechaControl(controlProcesoDTO);\n\t\tif ( fechaBaseDos != null) {\n\t\t\tif ( this.fechaCorte == null ) {\n\t\t\t\tthis.fechaCorte = fechaBaseDos;\n\t\t\t}\n\t\t\telse if ( fechaBaseDos > this.fechaCorte ) {\n\t\t\t\tthis.fechaCorte=fechaBaseDos;\n\t\t\t}\n\t\t}\n\t\tthis.listaNominaEmpleado= await this.liquidacionNominaService.cargarListaNominaEmpleado({entidadEmpleado: this.entidadEmpleado,fechaCorte: this.fechaCorte}).toPromise();\n\t\tif(this.listaNominaEmpleado!= null && this.listaNominaEmpleado.length>0){\n\t\t\tthis.mostrarLista=true;\n\t\t\tthis.mostrarPanel=false;\n\t\t}\n\t} \n\t\n\tsleep(ms: number): Promise<void> {\n\t\treturn new Promise((resolve) => setTimeout(resolve, ms));\n\t  }\n\n\tcambiarEntidad(){\t\t\n\t\t/*List<NominaEmpleadoDTO>seleccionados= SeleccionableWrapper.obtenerListaUnionSeleccionada(listaNominaEmpleado, NominaEmpleadoDTO.class);\n\t\tif (seleccionados != null && !seleccionados.isEmpty()) {\n\t\t\tnominaSvc.actualizarEntidadNominaEmpleado(getDataSource(),seleccionados, entidadEmpleado);\n\t\t\tthis.notificacionesService.showInfo(ConstantesGenerales.MENSAJE_ACTUALIZAR_VARIOS);\t\t\t\t\n\t\t\tthis.regresar();\n\t\t}else{\n\t\t\twarning('Seleccione por lo menos un registro');\n\t\t}\n\t*/\n\t}\n\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex justify-content-end mb-3 mt-3\" *ngIf=\"!ocultarRegresar\">\n        <button pButton pRipple (click)=\"regresar.emit(false)\" label= \"{{'link_regresar' | translate}}\" \n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n    </div>\n    <p-accordion [multiple]=\"true\" *ngIf=\"mostrarPanel\">\n        <p-accordionTab [selected]=\"true\">\n            <ng-template pTemplate=\"header\">\n                <i class=\"glyphicons glyphicons-home\"></i>{{entidadEmpleado.nombreServicio}}\n            </ng-template>\n            <div class=\"grid\">\n                <div [ngClass]=\"mostrarDatosEntidad ? 'col-6' : 'col-12'\">\n                    <p-fieldset>\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{'datosbasicos' | translate}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid p-formgrid grid\" >\n                            <div class=\"field col-12 md:col-4\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleado.nombreSucursal\" [readonly]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.nombreSucursal) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" />\n                                    <label>{{'sucursal' | translate }} *</label>\n                                </span>\n                            </div>\n                            <div class=\"field col-12 md:col-4\">\n                                <app-input-helper-seleccion-sucursal-entidad [(ngModel)]=\"entidadEmpleado.entidad\" [mostrarX]=\"true\"\n                                    [readonly]=\"false\" [tipoServicio]=\"entidadEmpleado.tipoServicio\" [tipoPeriodo]=\"empleado.tipoPeriodo\"\n                                    [label]=\"entidadEmpleado.nombreEntidad ? entidadEmpleado.nombreEntidad : ''\" [boolean]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.entidad) && clickGuardar\"\n                                    [header]=\"('entidadexterna' | translate) + '*'\" (onSelected)=\"setSucursalEntidad($event)\" >\n                                </app-input-helper-seleccion-sucursal-entidad>\n                            </div>\n\n                            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isOrigenCompensacion()\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar [(ngModel)]=\"entidadEmpleado.fechaAfiliacion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"  appendTo=\"body\" [autoZIndex]=\"false\"\n                                    [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.fechaAfiliacion) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" ></p-calendar>\n                                    <label >{{'afiliacion' | translate}}*</label>\n                                </span>\n                            </div>\n\n                            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrartipoServicoAlterno\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown class=\"w-full\" [options]=\"listaTipoServicio\"\n                                        [autoDisplayFirst]=\"false\" [(ngModel)]=\"entidadEmpleado.entidadAux\" [showClear]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.entidadAux) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"\n                                    ></p-dropdown>\n                                    <label >{{('entidadauxiliar') | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </p-fieldset>\n\n                    <p-fieldset *ngIf=\"listaCampos.length > 0\">\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{'detalle' | translate}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid p-formgrid grid\" >\n                            <div class=\"field col-12 md:col-4 lg:col-4\" *ngFor=\"let campo of listaCampos\">\n                                <span class=\"p-float-label\" *ngIf=\"!['ciudad', 'beneficiario'].includes(campo.campo)\">\n                                    <!-- REFERENCIA -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleado.referencia\" [maxlength]=\"20\" \n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.referencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'referencia'\" />\n                                    <!-- VALOR -->\n                                    <p-inputNumber [(ngModel)]=\"entidadEmpleado.valor\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.valor) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'valor'\"></p-inputNumber>\n                                    <!-- TIPO -->\n                                    <p-inputNumber [(ngModel)]=\"entidadEmpleado.tipo\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\" \n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.tipo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tipo'\"></p-inputNumber>\n                                    <!-- SUCURSAL -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleado.sucReferencia\" [maxlength]=\"8\" \n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.sucReferencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'sucreferencia'\" />\n                                    <!-- CICLO -->\n                                    <p-dropdown class=\"w-full\" [options]=\"listaDefinicionCiclos\" *ngIf=\"campo.campo == 'ciclo'\"\n                                        [autoDisplayFirst]=\"false\" [(ngModel)]=\"entidadEmpleado.ciclo\" [showClear]=\"campo.requerido != 'S'\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.ciclo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                                    ></p-dropdown>\n                                    <!-- TIPO REFERENCIA -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleado.tipoReferencia\" [maxlength]=\"4\" \n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.tipoReferencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tiporeferencia'\" />\n                                    <!-- MOTIVO -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleado.motivo\" [maxlength]=\"100\" \n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.motivo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'motivo'\" />\n\n                                    <label>{{campo.descripcion}} {{campo.requerido == 'S' ? '*' : ''}}</label>\n                                </span>\n\n                                <!-- BENEFICIARIO -->\n                                <app-input-helper-hoja-vida [(ngModel)]=\"entidadEmpleado.beneficiario\" [readonly]=\"false\" *ngIf=\"campo.campo =='beneficiario'\"\n                                    [label]=\"entidadEmpleado.nombreBeneficiario ? entidadEmpleado.nombreBeneficiario : ''\" [booleano]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.beneficiario) && clickGuardar && campo.requerido == 'S'\"\n                                    [header]=\"campo.descripcion + (campo.requerido == 'S' ? '*' : '')\" (onSelected)=\"setBeneficiarioPopup($event)\"></app-input-helper-hoja-vida>\n                                <!--CIUDAD-->\n                                <app-input-helper-ubicacion [readonly]=\"false\" \n                                    [label]=\"entidadEmpleado.nombreCiudad ? entidadEmpleado.nombreCiudad : ''\" *ngIf=\"campo.campo == 'ciudad'\"\n                                    [booleano]=\"!utilsService.validarCampoObligatorio(entidadEmpleado.ciudad) && clickGuardar && campo.requerido == 'S'\"\n                                    [labelInput]=\"campo.descripcion + (campo.requerido == 'S' ? '*' : '')\"\n                                    (onSelected)=\"setCiudadEntidad($event)\"></app-input-helper-ubicacion>\n                            </div>\n                        </div>\n                    </p-fieldset>\n                </div>\n\n                <!--datos antes trasladar-->\n                <div *ngIf=\"mostrarDatosEntidad\" [ngClass]=\"mostrarDatosEntidad ? 'col-6' : 'col-12'\">\n                    \n                    <p-fieldset>\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{'datosbasicos' | translate}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid p-formgrid grid\" >\n                            <div class=\"field col-12 md:col-4\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleadoMostrar.nombreSucursal\" [readonly]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.nombreSucursal) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" />\n                                    <label>{{'sucursal' | translate }} *</label>\n                                </span>\n                            </div>\n                            <div class=\"field col-12 md:col-4\">\n                                <app-input-helper-seleccion-sucursal-entidad [(ngModel)]=\"entidadEmpleadoMostrar.entidad\"\n                                    [readonly]=\"true\" [tipoServicio]=\"entidadEmpleadoMostrar.tipoServicio\" [tipoPeriodo]=\"empleado.tipoPeriodo\"\n                                    [label]=\"entidadEmpleadoMostrar.nombreEntidad ? entidadEmpleadoMostrar.nombreEntidad : ''\" [boolean]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.entidad) && clickGuardar\"\n                                    [header]=\"('entidadexterna' | translate) + '*'\"  >\n                                </app-input-helper-seleccion-sucursal-entidad>\n                            </div> \n            \n                            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isOrigenCompensacion()\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar [(ngModel)]=\"entidadEmpleadoMostrar.fechaAfiliacion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"  appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"true\"\n                                    [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.fechaAfiliacion) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" ></p-calendar>\n                                    <label >{{'afiliacion' | translate}}*</label>\n                                </span>\n                            </div>\n            \n                            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrartipoServicoAlterno\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown class=\"w-full\" [options]=\"listaTipoServicio\" [disabled]=\"true\"\n                                        [autoDisplayFirst]=\"false\" [(ngModel)]=\"entidadEmpleadoMostrar.entidadAux\" \n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.entidadAux) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"\n                                    ></p-dropdown>\n                                    <label >{{('entidadauxiliar') | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </p-fieldset>\n            \n                    <p-fieldset *ngIf=\"listaCampos.length > 0\">\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{'detalle' | translate}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid p-formgrid grid\" >\n                            <div class=\"field col-12 md:col-4 lg:col-4\" *ngFor=\"let campo of listaCampos\">\n                                <span class=\"p-float-label\" *ngIf=\"!['ciudad', 'beneficiario'].includes(campo.campo)\">\n                                    <!-- REFERENCIA -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleadoMostrar.referencia\" [maxlength]=\"20\"  [disabled]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.referencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'referencia'\" />\n                                    <!-- VALOR -->\n                                    <p-inputNumber [(ngModel)]=\"entidadEmpleadoMostrar.valor\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\"  [disabled]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.valor) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'valor'\"></p-inputNumber>\n                                    <!-- TIPO -->\n                                    <p-inputNumber [(ngModel)]=\"entidadEmpleadoMostrar.tipo\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"16\"  [disabled]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.tipo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tipo'\"></p-inputNumber>\n                                    <!-- SUCURSAL -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleadoMostrar.sucReferencia\" [maxlength]=\"8\"  [disabled]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.sucReferencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'sucreferencia'\" />\n                                    <!-- CICLO -->\n                                    <p-dropdown class=\"w-full\" [options]=\"listaDefinicionCiclos\" *ngIf=\"campo.campo == 'ciclo'\" [disabled]=\"true\"\n                                        [autoDisplayFirst]=\"false\" [(ngModel)]=\"entidadEmpleadoMostrar.ciclo\" [showClear]=\"campo.requerido != 'S'\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.ciclo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                                    ></p-dropdown>\n                                    <!-- TIPO REFERENCIA -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleadoMostrar.tipoReferencia\" [maxlength]=\"4\"  [disabled]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.tipoReferencia) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'tiporeferencia'\" />\n                                    <!-- MOTIVO -->\n                                    <input pInputText type=\"text\" [(ngModel)]=\"entidadEmpleadoMostrar.motivo\" [maxlength]=\"100\"  [disabled]=\"true\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.motivo) && clickGuardar && campo.requerido == 'S' ? 'ng-invalid ng-dirty' : ''\" *ngIf=\"campo.campo == 'motivo'\" />\n            \n                                    <label>{{campo.descripcion}} {{campo.requerido == 'S' ? '*' : ''}}</label>\n                                </span>\n            \n                                <!-- BENEFICIARIO -->\n                                <app-input-helper-hoja-vida [(ngModel)]=\"entidadEmpleadoMostrar.beneficiario\" [readonly]=\"true\" *ngIf=\"campo.campo =='beneficiario'\"\n                                    [label]=\"entidadEmpleadoMostrar.nombreBeneficiario ? entidadEmpleadoMostrar.nombreBeneficiario : ''\" [booleano]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.beneficiario) && clickGuardar && campo.requerido == 'S'\"\n                                    [header]=\"campo.descripcion + (campo.requerido == 'S' ? '*' : '')\" ></app-input-helper-hoja-vida>\n                                <!--CIUDAD-->\n                                <app-input-helper-ubicacion [readonly]=\"true\" \n                                    [label]=\"entidadEmpleadoMostrar.nombreCiudad ? entidadEmpleadoMostrar.nombreCiudad : ''\" *ngIf=\"campo.campo == 'ciudad'\"\n                                    [booleano]=\"!utilsService.validarCampoObligatorio(entidadEmpleadoMostrar.ciudad) && clickGuardar && campo.requerido == 'S'\"\n                                    [labelInput]=\"campo.descripcion + (campo.requerido == 'S' ? '*' : '')\"></app-input-helper-ubicacion>\n                            </div>\n                        </div>\n                    </p-fieldset>\n                </div>\n            </div>\n            <!--Botones de ACCION-->\n            <div class=\"flex justify-content-end \" >\n                <!--TRASLADAR-->\n                <button pButton pRipple class=\"ml-2 p-button-outlined background-100 shadow-100\" icon=\"glyphicons glyphicons-reflect-y\"\n                    *ngIf=\"isMostrarEliminarEntidad() && controlFuncionService.getControlFuncionalidad('datemp:trasladar') && puedeActualizar\"\n                    label=\"{{'link_trasladar' | translate}}\" (click)=\"trasladar()\">\n                </button>\n                <!--APLICAR-->\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-check\"\n                    *ngIf=\"!isOrigenCompensacion() || (controlFuncionService.getControlFuncionalidad('datemp:nuevaentidad') && puedeActualizar) \"\n                    label=\"{{'link_aplicar' | translate}}\" (click)=\"insertarEntidad()\">\n                </button>\n                <!--ELIMINAR-->\n                <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n                    *ngIf=\"isMostrarEliminarEntidad() && controlFuncionService.getControlFuncionalidad('datemp:nuevaentidad') && puedeActualizar\" \n                    label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarEntidad($event)\">\n                </button>\n            </div>\n        </p-accordionTab>\n        <p-accordionTab *ngIf=\"afiliados && !nuevo\">\n            <ng-template pTemplate=\"header\">\n                <i class=\"glyphicons glyphicons-book\"></i>{{'beneficiario' | translate}}\n            </ng-template>\n                <div class=\"flex justify-content-end mb-3 mt-3\">\n                    <button pButton pRipple class=\"ml-2 p-button p-button-secondary\" *ngIf=\"controlFuncionService.getControlFuncionalidad('datemp:nuevaentidad') && puedeActualizar && !verDetalleAfiliado\"\n                        icon=\"glyphicons glyphicons-plus\" label=\"{{'link_nuevo' | translate}}\"\n                        (click)=\"nuevoAfiliado()\">\n                    </button>\n                    <button pButton pRipple class=\"ml-2 p-button-outlined claro\" *ngIf=\"!historico && !verDetalleAfiliado\" icon=\"glyphicons glyphicons-invoice\"\n                        label=\"{{'verhistoricos' | translate}}\"\n                        (click)=\"beneficiarioHistorico()\">\n                    </button>\n                    <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"historico && !verDetalleAfiliado\" icon=\"glyphicons glyphicons-invoice\"\n                        label=\"{{'ocultarhistoricos' | translate}}\"\n                        (click)=\"beneficiarioHistorico()\">\n                    </button>\n                    <div class=\"flex justify-content-end  mb-1\" *ngIf=\"verDetalleAfiliado\">\n                        <button pButton pRipple (click)=\"setListarBeneficiarios({})\" label= \"{{'listado' | translate}} {{'beneficiario' | translate}}\" \n                            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n                    </div>\n                </div>\n                \n                <p-table [value]=\"listaBeneficiario\" responsiveLayout=\"scroll\" [scrollable]=\"true\" selectionMode=\"single\" dataKey=\"llaveTabla\"\n                    [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" *ngIf=\"!verDetalleAfiliado\"\n                    (onRowSelect)=\"cargarBeneficiarios($event)\" (onRowUnselect)=\"cargarBeneficiarios($event)\" [rows]=\"10\" [totalRecords]=\"listaBeneficiario.length\" [paginator]=\"listaBeneficiario.length > 10\">\n                    <ng-template pTemplate=\"header\">\n                        <tr class=\"fondoTablaPincipal\">\n                            <th *ngIf=\"mapaCampos.get('tipoDocumento')\">{{mapaCampos.get('tipoDocumento')}}</th>\n                            <th *ngIf=\"mapaCampos.get('documento')\">{{mapaCampos.get('documento')}}</th>\n                            <th *ngIf=\"mapaCampos.get('tercero')\">{{mapaCampos.get('tercero')}}</th>\n                            <th *ngIf=\"mapaCampos.get('apellidos')\">{{mapaCampos.get('apellidos')}}</th>\n                            <th *ngIf=\"mapaCampos.get('referencia')\">{{mapaCampos.get('referencia')}}</th>\n                            <th *ngIf=\"mapaCampos.get('sucursal')\">{{mapaCampos.get('sucursal')}}</th>\n                            <th *ngIf=\"mapaCampos.get('tipoRefencia')\">{{mapaCampos.get('tipoRefencia')}}</th>\n                            <th *ngIf=\"mapaCampos.get('valor')\">{{mapaCampos.get('valor')}}</th>\n                            <th *ngIf=\"mapaCampos.get('tipo')\">{{mapaCampos.get('tipo')}}</th>\n                        </tr>\n                        <th>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-beneficiario>\n                        <tr [pSelectableRow]=\"beneficiario\">\n                            <td *ngIf=\"mapaCampos.get('tipoDocumento')\">{{beneficiario.descripcionTipoDocumento}}</td>\n                            <td *ngIf=\"mapaCampos.get('documento')\">{{beneficiario.documento}}</td>\n                            <td *ngIf=\"mapaCampos.get('tercero')\">{{beneficiario.tercero}}</td>\n                            <td *ngIf=\"mapaCampos.get('apellidos')\">{{beneficiario.apellidos}}</td>\n                            <td *ngIf=\"mapaCampos.get('referencia')\">{{beneficiario.referenciaExterna}}</td>\n                            <td *ngIf=\"mapaCampos.get('sucursal')\">{{beneficiario.sucursalReferencia}}</td>\n                            <td *ngIf=\"mapaCampos.get('tipoRefencia')\">{{beneficiario.tipoRefencia}}</td>\n                            <td *ngIf=\"mapaCampos.get('valor')\">{{beneficiario.valor}}</td>\n                            <td *ngIf=\"mapaCampos.get('tipo')\">{{beneficiario.valorTipo}}</td>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                </p-table>\n                <div *ngIf=\"verDetalleAfiliado\">\n                    <app-beneficiarios-entidad #beneficiarioEntidad (regresar)=\"setListarBeneficiarios($event)\" ></app-beneficiarios-entidad>\n                </div>\n        </p-accordionTab>\n    </p-accordion>\n    \n    <div *ngIf=\"mostrarLista\">\n    </div>\n</div>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { CampoFormularioModel, FormulariodinamicoComponent, ToastService } from 'general-library-union';\nimport { DatoorganizacionModel } from '../../../talento/models/DatoorganizacionModel';\nimport { ActosAdminTablaModel } from '../../models/ActosAdminTablaModel';\nimport { ActoCambioEmpleadoService } from '../../services/acto-cambio-empleado.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { ConfirmationService } from 'primeng/api';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-popup-formato-tabla-formu-dinamico-actos',\n    templateUrl: './popup-formato-tabla-formu-dinamico-actos.component.html',\n    styleUrls: ['./popup-formato-tabla-formu-dinamico-actos.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, ButtonDirective, Ripple, NgIf, TranslateModule, FormulariodinamicoComponent]\n})\nexport class PopupFormatoTablaFormuDinamicoActosComponent implements OnInit {\n\n  public nuevo: boolean;\n  public showDialog: boolean;\n  public campos: CampoFormularioModel[] = [];\n  public actosAdminTablaDTO: ActosAdminTablaModel;\n  public tabla: string;\n  @ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  constructor(private notificacionesService: ToastService,\n              private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n              private generalPipe: GeneralPipe,\n              private translateService: TranslateService,\n              private confirmationService: ConfirmationService) { }\n\n  ngOnInit(): void {\n  }\n\n  mostrarPopup() {\n    this.showDialog = true;\n  }\n\n  ocultarPopup() {\n    this.showDialog = false;\n  }\n\n  async buscar(lista: DatoorganizacionModel[], actosAdminTablaDTO: ActosAdminTablaModel, nuevo: boolean, tabla: string) {\n\t\tthis.campos = [];\n    this.nuevo = nuevo;\n    this.actosAdminTablaDTO = actosAdminTablaDTO;\n    this.tabla = tabla;\n\t\tawait this.cargarFormulario(lista, actosAdminTablaDTO);\n\t\tthis.mostrarPopup();\n\t}\n\n\tpublic continuar() {\n    if (!this.formularioDinamico.validar()) {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      return;\n    }\n    this.regresar.emit({perfil: this.formularioDinamico.getObjecto(), tabla: this.tabla});\n    this.ocultarPopup();\n\t}\n\n\tpublic eliminar(event) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message:  this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: this.generalPipe.SI_DESC,\n      header: this.translateService.instant('confirmar'),\n      accept: () => {\n        this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n        this.regresar.emit({perfil: null, tabla: this.tabla});\n        this.ocultarPopup();\n      }\n    })\n\t}\n\n\tpublic async cargarFormulario(lista: DatoorganizacionModel[], actosAdminTablaDTO: ActosAdminTablaModel) {\n\t\tvar campos2: CampoFormularioModel[]  = await this.actoCambioEmpleadoService.listaCampoPerfilTablas().toPromise();\n\t\tthis.formularioDinamico.limpiar();\n    lista.forEach(dto => {\n      campos2.forEach(campo => {\n        if (campo.descripcion ==  dto.campo.trim()) {\n          campo.obligatorio = true;\n          campo.descripcion = dto.descripcion != null && dto.descripcion.trim() != Constantes.ESPACIO_NULO ? dto.descripcion : campo.descripcion;\n          this.campos.push(campo);\n        }\n      })\n    })\n    this.formularioDinamico.modificar(actosAdminTablaDTO, true);\n\t}\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{'tabla' | translate}}\" [(visible)]=\"showDialog\"\n    (onHide)=\"showDialog = false\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '60vw'}\">\n\n    <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\" \n        [objeto]=\"actosAdminTablaDTO\" ></formulario-dinamico>\n\n    <!--BOTONES-->\n    <div class=\"flex justify-content-end mb-3\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"continuar()\"\n            icon=\"glyphicons {{!nuevo ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n            label=\"{{!nuevo ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"!nuevo\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n        </button>\n    </div>\n\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActosAdminTablaModel } from '../../models/ActosAdminTablaModel';\nimport { GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { SemestreModel } from '../../../jornadadocente/models/SemestreModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GrupoAsignaturaModel } from '../../../jornadadocente/models/GrupoAsignaturaModel';\nimport { ConfirmationService } from 'primeng/api';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputHelperGrupoAsignaturaComponent } from '../../../../shared/componentes/input-helper-grupo-asignatura/input-helper-grupo-asignatura.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { InputHelperSemestreComponent } from '../../../../shared/componentes/input-helper-semestre/input-helper-semestre.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-popup-ingreso-materias',\n    templateUrl: './popup-ingreso-materias.component.html',\n    styleUrls: ['./popup-ingreso-materias.component.scss'],\n    standalone: true,\n    imports: [\n        ConfirmPopupModule,\n        DialogModule,\n        InputHelperSemestreComponent,\n        FormsModule,\n        InputTextModule,\n        InputHelperGrupoAsignaturaComponent,\n        ButtonDirective,\n        Ripple,\n        NgIf,\n        TranslateModule,\n    ],\n})\nexport class PopupIngresoMateriasComponent implements OnInit {\n  @Input() public actosAdminTablaDTO: ActosAdminTablaModel = new ActosAdminTablaModel();\n  @Input() public consultarActo: boolean;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n  public verSemestre: boolean;\n  public showDialog: boolean;\n  public clickGuardar: boolean;\n  public nuevo: boolean;\n\n  constructor(\n    public utilsService: UtilsService,\n    private generalService: GeneralService,\n    private generalPipe: GeneralPipe,\n    private translateService: TranslateService,\n    private confirmationService: ConfirmationService,\n    private notificacionesService: ToastService,\n  ) {}\n\n  ngOnInit(): void {}\n\n  public isNuevo(): boolean {\n    return this.utilsService.isBlank(this.actosAdminTablaDTO.llaveTabla) &&\n      this.utilsService.isBlank(this.actosAdminTablaDTO.semestre) ? true : false;\n  }\n\n  public buscar(actosAdminTablaDTO: ActosAdminTablaModel, consultarActo?: boolean){\n    this.actosAdminTablaDTO = Object.assign({}, actosAdminTablaDTO);\n    this.consultarActo = consultarActo;\n    if (this.utilsService.isBlank(this.actosAdminTablaDTO.llaveTabla) && this.utilsService.isBlank(this.actosAdminTablaDTO.semestre)){\n      this.nuevo = true;\n    }\n    if (this.utilsService.isNotBlank(this.actosAdminTablaDTO.semestre)){\n      this.nuevo = false;\n    }\n    this.consultarSemestre().then((data) => {this.showDialog = true});\n    \n  }\n\n  mostrarPopup() {\n    this.showDialog = true;\n  }\n\n  private async consultarSemestre() {\n    if (this.utilsService.isBlank(this.actosAdminTablaDTO.semestre)) {\n      this.verSemestre = true;\n      return;\n    }\n    var semestreDTO = new SemestreModel();\n    semestreDTO.llaveTabla = this.actosAdminTablaDTO.semestre;\n    semestreDTO = await this.generalService\n      .queryForObject(new GeneralModel('SemestreDTO', null, false, semestreDTO))\n      .toPromise();\n    if (semestreDTO != null) {\n      this.actosAdminTablaDTO.semestre = semestreDTO.llaveTabla;\n      this.actosAdminTablaDTO.descripcionSemestre = semestreDTO.descripcion;\n    }\n    this.verSemestre = false;\n  }\n\n  public setSemestre(semestreDTO: SemestreModel) {\n    this.actosAdminTablaDTO.semestre = semestreDTO.llaveTabla;\n    this.actosAdminTablaDTO.descripcionSemestre = semestreDTO.descripcion;\n  }\n\n  public setGrupo(grupoAsignaturaDTO: GrupoAsignaturaModel) {\n    this.actosAdminTablaDTO.asignatura = grupoAsignaturaDTO.asignatura;\n    this.actosAdminTablaDTO.descripcionAsignatura = grupoAsignaturaDTO.descripcionAsignatura;\n    this.actosAdminTablaDTO.semestre = grupoAsignaturaDTO.semestre;\n    this.actosAdminTablaDTO.descripcionSemestre = grupoAsignaturaDTO.descripcionSemestre;\n    this.actosAdminTablaDTO.grupoAsignatura = grupoAsignaturaDTO.codigo;\n  }\n\n  private validar(): boolean {\n    var validador = true;\n    validador =\n      validador &&\n      this.utilsService.validarCampoObligatorio(\n        this.actosAdminTablaDTO.semestre\n      );\n    validador =\n      validador &&\n      this.utilsService.validarCampoObligatorio(\n        this.actosAdminTablaDTO.asignatura\n      );\n    validador =\n      validador &&\n      this.utilsService.validarCampoObligatorio(\n        this.actosAdminTablaDTO.grupoAsignatura\n      );\n    validador =\n      validador &&\n      this.utilsService.validarCampoObligatorio(\n        this.actosAdminTablaDTO.intensidad\n      );\n    return validador;\n  }\n\n  public aplicar() {\n    this.clickGuardar = true;\n    if (!this.validar()) {\n      this.notificacionesService.showError('Faltan campos obligatorios')\n      return;\n    }\n    this.clickGuardar = false;\n    this.regresar.emit(this.actosAdminTablaDTO);\n    this.ocultarPopup();\n  }\n\n  public eliminar(event) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message:  this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: this.generalPipe.SI_DESC,\n      header: this.translateService.instant('confirmar'),\n      accept: async () => {\n        if (this.consultarActo) {     \n          await this.generalService.delete(new GeneralModel('ActosAdminTablaDTO', null, false, this.actosAdminTablaDTO)).toPromise();\n        }\n        this.regresar.emit(null);        \n        this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n        this.ocultarPopup();\n      }\n    })\n    \n  } \n\n  public ocultarPopup(){\n    this.showDialog = false;\n  }\n}","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{'materia' | translate}}\" [(visible)]=\"showDialog\" (onShow)=\"mostrarPopup()\"\n    (onHide)=\"ocultarPopup()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '60vw'}\">\n\n    <div class=\"col-12\">\n        <div class=\"p-fluid p-formgrid grid\" >\n            <div class=\"field col-12 md:col-6\">\n                <app-input-helper-semestre [(ngModel)]=\"actosAdminTablaDTO.semestre\" [mostrarX]=\"false\"\n                    [label]=\"actosAdminTablaDTO.descripcionSemestre ? actosAdminTablaDTO.descripcionSemestre : ''\"\n                    [booleano]=\"!utilsService.validarCampoObligatorio(actosAdminTablaDTO.semestre) && clickGuardar\"\n                    [header]=\"('semestre' | translate) + '*'\" (onSelected)=\"setSemestre($event)\"></app-input-helper-semestre>\n            </div>\n            <div class=\"field col-12 md:col-6\">\n                <span class=\"p-float-label\">\n                    <input pInputText [(ngModel)]=\"actosAdminTablaDTO.descripcionAsignatura\" type=\"text\" [readonly]=\"true\"\n                        [class]=\"!utilsService.validarCampoObligatorio(actosAdminTablaDTO.asignatura) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" />\n                    <label>{{'materia' | translate }} *</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-6\">\n                <app-input-helper-grupo-asignatura [(ngModel)]=\"actosAdminTablaDTO.grupoAsignatura\" [mostrarX]=\"false\"\n                    [label]=\"actosAdminTablaDTO.grupoAsignatura ? actosAdminTablaDTO.grupoAsignatura : ''\" [semestre]=\"actosAdminTablaDTO.semestre\"\n                    [booleano]=\"!utilsService.validarCampoObligatorio(actosAdminTablaDTO.grupoAsignatura) && clickGuardar\"\n                    [header]=\"('grupo' | translate) + '*'\" (onSelected)=\"setGrupo($event)\"></app-input-helper-grupo-asignatura>\n            </div>\n            <div class=\"field col-12 md:col-6\">\n                <span class=\"p-float-label\">\n                    <input pInputText [(ngModel)]=\"actosAdminTablaDTO.intensidad\" type=\"text\" [readonly]=\"false\" maxlength=\"55\"\n                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0,15);\"\n                        [class]=\"!utilsService.validarCampoObligatorio(actosAdminTablaDTO.intensidad) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" />\n                    <label>{{'intensidad' | translate }} *</label>\n                </span>\n            </div>\n        </div>\n    </div>\n\n    <!--BOTONES-->\n    <div class=\"flex justify-content-end mb-3\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"aplicar()\"\n            icon=\"glyphicons {{!nuevo ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n            label=\"{{!nuevo ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"!nuevo\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n        </button>\n    </div>\n\n</p-dialog>","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CargarArchivosService } from '../../servicios/cargar-archivos.service';\nimport { AuthService, EncriptadoBasicoService, UtilsService } from 'general-library-union';\nimport { HojaVidaModel } from '../../../modules/hojavida/models/HojaVidaModel';\nimport { NgIf } from '@angular/common';\n\n@Component({\n  selector: 'app-cabecera-hoja-vida',\n  templateUrl: './cabecera-hoja-vida.component.html',\n  styleUrls: ['./cabecera-hoja-vida.component.scss'],\n  standalone: true,\n  imports: [NgIf]\n})\nexport class CabeceraHojaVidaComponent implements OnInit, OnChanges {\n\n  @Input() public hojaVida: HojaVidaModel;\n  public urlFoto: string;\n\n  constructor(private authService: AuthService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private cargarArchivo: CargarArchivosService) { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.hojaVida != null && this.hojaVida != undefined) {\n      this.urlFoto = null;\n      this.cargarImagenFoto();\n    }\n  }\n  ngOnInit(): void {\n    if (this.hojaVida != null && this.hojaVida != undefined) {\n      this.urlFoto = null;\n      this.cargarImagenFoto();\n    }\n  }\n\n  cargarImagenFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.hojaVida.nombrefoto + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n      this.blobToBase64(blob)\n\n    });\n\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  getNombreCompleto() {\n    if (this.hojaVida.segundoapelli != null || this.hojaVida.segundoapelli != undefined) {\n      if (this.hojaVida.primerapellid != null || this.hojaVida.primerapellid != undefined) {\n        if (this.hojaVida.nombres != null || this.hojaVida.nombres != undefined) {\n          this.hojaVida.nombreCompleto = this.hojaVida.primerapellid + ' ' + this.hojaVida.segundoapelli + ' ' + this.hojaVida.nombres;\n        } else {\n          this.hojaVida.nombreCompleto = this.hojaVida.primerapellid + ' ' + this.hojaVida.segundoapelli + ' ';\n        }\n      } else {\n        this.hojaVida.nombreCompleto = ' ' + this.hojaVida.segundoapelli + ' ' + this.hojaVida.nombres;\n      }\n    } else {\n      if (this.hojaVida.primerapellid != null || this.hojaVida.primerapellid != undefined) {\n        if (this.hojaVida.nombres != null || this.hojaVida.nombres != undefined) {\n          this.hojaVida.nombreCompleto = this.hojaVida.primerapellid + ' ' + this.hojaVida.nombres;\n        } else {\n          this.hojaVida.nombreCompleto = this.hojaVida.primerapellid + ' ';\n        }\n      } else {\n        this.hojaVida.nombreCompleto = ' ';\n      }\n    }\n    return this.hojaVida.nombreCompleto\n  }\n\n  public setHojaVida(hojaVida: HojaVidaModel): void {\n    this.hojaVida = new HojaVidaModel()\n    this.hojaVida = hojaVida;\n  }\n\n}\n","<div class=\"empleado\" style=\"justify-content: center; align-items: center\">\n\n    <div class=\"flex\" >\n\n      <div style=\"display: flex; justify-content: center; align-items: center; \">\n          <div class=\"avatar-container\">\n              <img  [src]=\"urlFoto\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"urlFoto\">\n              <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"!urlFoto\">\n          </div>\n      </div>\n        <div class=\"field\">\n            <div>\n                <div >\n                    <div class=\"col-md-12 ml-3\">\n                        <div class=\"p-fluid p-formgrid grid col-12\">\n                          <h1 class=\"w-full mb-3\">{{hojaVida.documento}} : {{getNombreCompleto()}}</h1>\n\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'personaConsPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class PersonaConsPipe implements PipeTransform {\n\n    //Coore Novedades Marcacion\n    NOMBRERESPONSABLE = \"nombreresponsable\";\n    CEDULARESPONSABLE = \"cedularesponsable\";\n    TABLAPERSONAS = \"personas\";\n    PLANTILLAAVISOMARCACION = \"avisomarcacion.html\";\n\n\n    // ESTADO\n    ACTIVO = \"A\";\n    INACTIVO = \"I\";\n    ACTIVO_DESC = \"Activo\";\n    INACTIVO_DESC = \"Inactivo\";\n\n    // TIPO\n    FIJO = \"FI\";\n    PROGRAMACION = \"PE\";\n    SINPROGRAMACION = \"NP\";\n\n    FIJO_DESC = \"Fijo\";\n    PROGRAMACION_DESC = \"Programaci\" + Constantes.O_TIDLE_MIN + \"n\";\n    SINPROGRAMACION_DESC = \"Sin programacion\";\n\n    // TIPO SITIO\n    UNICO = \"U\";\n    MULTIPLE = \"M\";\n    ALTERNO = \"A\";\n    UNICO_DESC = Constantes.U_TILDE_MAY + \"nico\";\n    MULTIPLE_DESC = \"M\" + Constantes.U_TILDE_MIN + \"ltiple\";\n    ALTERNO_DESC = \"Alterno\";\n\n    //DECLARACION DE LISTADOS\n    mapaEstado =\n        [\n            { codigo: this.ACTIVO, nombre: this.ACTIVO_DESC },\n            { codigo: this.INACTIVO, nombre: this.INACTIVO_DESC }\n        ]\n\n    mapaTipo = [\n        { codigo: this.FIJO, nombre: this.FIJO_DESC },\n        { codigo: this.PROGRAMACION, nombre: this.PROGRAMACION_DESC },\n        { codigo: this.SINPROGRAMACION, nombre: this.SINPROGRAMACION_DESC },\n    ]\n\n    mapaTipoSitio =\n        [\n            { codigo: this.UNICO, nombre: this.UNICO_DESC },\n            { codigo: this.MULTIPLE, nombre: this.MULTIPLE_DESC },\n            { codigo: this.ALTERNO, nombre: this.ALTERNO_DESC },\n        ]\n    \n    mapaTipoSitio2 =\n        [\n            { value: this.UNICO, label: this.UNICO_DESC },\n            { value: this.MULTIPLE, label: this.MULTIPLE_DESC },\n            { value: this.ALTERNO, label: this.ALTERNO_DESC },\n        ]\n\n    mapaTipoMarcacion =\n        [\n            { codigo: Constantes.CONSTANTE_SI, nombre: \"Marcaci\"+Constantes.O_TIDLE_MIN+\"n manual portal\" },\n            { codigo: Constantes.CONSTANTE_NO, nombre: \"No habilitar marcaci\"+Constantes.O_TIDLE_MIN+\"n portal\" },\n            { codigo: \"P\", nombre: \"Marcaci\"+Constantes.O_TIDLE_MIN+\"n manual portal - geoposici\"+Constantes.O_TIDLE_MIN+\"n\" },\n\n        ]\n    transform(value: any, ...args: any): any {\n        let result = value;\n        //if (args[0] == 'MAPATIPOCONCEPTO') { this.MAPATIPOCONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService} from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class ActoIngresoService {\n  \n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  nuevo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoIngreso/nuevo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  nuevoContratacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoIngreso/nuevoContratacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarListadoServicio(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoIngreso/cargarListadoServicio`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarListadoTipoServicio(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoIngreso/cargarListadoTipoServicio`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerValorContratacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoIngreso/traerValorContratacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ActoCambioEmpleadoModel } from '../../../models/ActoCambioEmpleadoModel';\nimport { DatoActoAdmonModel } from '../../../models/DatoActoAdmonModel';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { ActosAdminTablaModel } from '../../../models/ActosAdminTablaModel';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { ActividadFuenteTareaModel } from '../../../../talento/models/ActividadFuenteTareaModel';\nimport { DatosBasicosEmpresaModel } from '../../../../compensacion/models/DatosBasicosEmpresaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, EncriptadoBasicoService, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { DatosBasicosEmpresaCons } from '../../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { CentroCostoModel } from '../../../../compensacion/models/CentroCostoModel';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { AsignaturaModel } from '../../../../jornadadocente/models/AsignaturaModel';\nimport { SemestreModel } from '../../../../jornadadocente/models/SemestreModel';\nimport { ActoIngresoService } from '../../../services/acto-ingreso.service';\nimport { HojaVidaService } from '../../../../hojavida/services/hojavida.service';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { ActoIngresoAusenciaModel } from '../../../models/ActoIngresoAusenciaModel';\nimport { EntidadEmpleadoModel } from '../../../../compensacion/models/EntidadEmpleadoModel';\nimport { PopupEntidadDatosBasicosEmpleadoComponent } from '../../../../compensacion/pages/empleados/popups/popup-entidad-datos-basicos-empleado/popup-entidad-datos-basicos-empleado.component';\nimport { ServicioEntidadExternaModel } from '../../../../compensacion/models/ServicioEntidadExternaModel';\nimport { SelectListCompensa } from '../../../../compensacion/services/select-list-compensa.service';\nimport { ClasificacionModel } from '../../../../compensacion/models/ClasificacionModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { SelectListActos } from '../../../services/select-list-actos.service';\nimport { RolesModel } from '../../../models/RolesModel';\nimport { TipoHorarioModel } from '../../../../controltiempos/models/TipoHorarioModel';\nimport { TipoLiquidacionTiempoModel } from '../../../../controltiempos/models/TipoLiquidacionTiempoModel';\nimport { CodigoBaseTiempoModel } from '../../../../controltiempos/models/CodigoBaseTiempoModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { PersonaConsPipe } from '../../../../controltiempos/pipes/personaCons.pipe';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { InputHelperSeleccionSucursalEntidadComponent } from '../../../../../shared/componentes/input-helper-seleccion-sucursal-entidad/input-helper-seleccion-sucursal-entidad.component';\nimport { PopupSeleccionPuestoComponent } from '../../../popups/popup-seleccion-puesto/popup-seleccion-puesto.component';\nimport { PopupFormatoTablaFormuDinamicoActosComponent } from '../../../popups/popup-formato-tabla-formu-dinamico-actos/popup-formato-tabla-formu-dinamico-actos.component';\nimport { PopupIngresoMateriasComponent } from '../../../popups/popup-ingreso-materias/popup-ingreso-materias.component';\nimport { ActosDatosPuestoComponent } from '../actos-datos-puesto/actos-datos-puesto.component';\nimport { PlanillaService } from '../../../../compensacion/services/planilla.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { DialogModule } from 'primeng/dialog';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PopupAntecesorComponent } from '../../../popups/popup-antecesor/popup-antecesor.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CabeceraHojaVidaComponent } from '../../../../../shared/componentes/cabecera-hoja-vida/cabecera-hoja-vida.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-actos-ingreso',\n    templateUrl: './actos-ingreso.component.html',\n    styleUrls: ['./actos-ingreso.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, CabeceraHojaVidaComponent, FieldsetModule, PrimeTemplate, InputHelperHojaVidaComponent, FormsModule, InputTextModule, PopupAntecesorComponent, TableModule, TemplateTablaVaciaComponent, NgFor, RadioButtonModule, ActosDatosPuestoComponent, DialogModule, PopupEntidadDatosBasicosEmpleadoComponent, InputHelperSeleccionSucursalEntidadComponent, PopupSeleccionPuestoComponent, PopupFormatoTablaFormuDinamicoActosComponent, PopupIngresoMateriasComponent, DatePipe, TranslateModule, FormulariodinamicoComponent]\n})\nexport class ActosIngresoComponent implements OnInit {\n\n  public actoCambioEmpleadoBorrarDTO: ActoCambioEmpleadoModel;\n\tpublic actoHijoAdicionar: ActoCambioEmpleadoModel;\n\tpublic actoItemBase: ActoCambioEmpleadoModel;\n\tpublic listaSeleccionPuestoTrabajoRadio: any[];\n\n\tpublic etapa: string;\n\tpublic llaveBase: string = null;\n\tpublic archivoSalida: string;\n\tpublic valorSeleccionadoSelectOneRadio: string;\n\tpublic accion: string = null;\n\tpublic paso: string = null;\n\tpublic descripcionGrupo: string;\n\n\tpublic seguimiento: boolean;\n\tpublic origenContratacion: boolean;\n\tpublic mostrarFoto: boolean;\n\tpublic mostrarDatosCedulaCampos: boolean;\n\tpublic mostrarBuscarAntecesor: boolean;\n\tpublic mostrarTabla1: boolean;\n\tpublic mostrarTabla2: boolean;\n\tpublic mostrarTabla3: boolean;\n\tpublic mostrarTablaMateria: boolean;\n\tpublic mostrarEntidades: boolean;\n\tpublic mostrarCosteo: boolean;\n\tpublic editarHijos: boolean;\n\tpublic editarListaTabla: boolean;\n\tpublic editarListaTabla2: boolean;\n\tpublic editarListaTabla3: boolean;\n\tpublic editarListaTablaMateria: boolean;\n\tpublic entradaContrato: boolean;\n\tpublic entidadSeleccionada: DatoActoAdmonModel = new DatoActoAdmonModel();\n\n\tpublic listaParaPuesto: FormatoDatoModel[];\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[];\n\tpublic hojaVidaDTO: HojaVidaModel;\n\n\tpublic perfilTablasDTOGuardado: ActosAdminTablaModel;\n\n\tpublic ListaDatoOrtganizacionTabla1: DatoorganizacionModel[];\n\tpublic ListaDatoOrtganizacionTabla2: DatoorganizacionModel[];\n\tpublic ListaDatoOrtganizacionTabla3: DatoorganizacionModel[];\n\tpublic listaDatoOrganizacionTablaMateria: DatoorganizacionModel[];\n\n\tpublic listaDatosPlanta: FormatoDatoModel[] = [];\n\n\tpublic mapaCamposMasivo: Map<string, string>;\n\tpublic mapaCamposMasivoDesc: Map<string, string>;\n\n \tpublic filtrarContratosAnteriores;\n\t\n\tpublic actividadFuenteTareaDTO: ActividadFuenteTareaModel;\n\n\tpublic listaTurno: any[];\n\tpublic listadoClasificacion: any[];\n\tpublic listaTipoPeriodo: any[];\n\tpublic listadoVinculacion: any[];\n\tpublic listaLineaCosto: any[];\n\tpublic listaUbicacion: any[];\n\n\tpublic vistaVisualizar: string = null;\n\tpublic mostrar: boolean = false;\n\tpublic datosBasicosEmpresaDTO: DatosBasicosEmpresaModel = new DatosBasicosEmpresaModel();\n\tpublic formularioEditable: boolean;\n\tpublic campos: CampoFormularioModel[]=[];\n\t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\tpublic mostrarPopupEntidadDbe: boolean = false;\n\tpublic columnasTabla1: any[];\n\tpublic columnasTabla2: any[];\n\tpublic columnasTabla3: any[];\n\tpublic columnasTablaMateria: any[];\n\t@Output() regresarAction:  EventEmitter<any> = new EventEmitter();\n\t@ViewChild(PopupEntidadDatosBasicosEmpleadoComponent) popupEntidadDatosBasicosEmpleado: PopupEntidadDatosBasicosEmpleadoComponent;\n\t@ViewChild(InputHelperSeleccionSucursalEntidadComponent) seleccionSucursalEntidad: InputHelperSeleccionSucursalEntidadComponent;\n\t@ViewChild(PopupSeleccionPuestoComponent) popupSeleccionPuesto: PopupSeleccionPuestoComponent;\n\t@ViewChild(PopupFormatoTablaFormuDinamicoActosComponent) popupFormatoTabla: PopupFormatoTablaFormuDinamicoActosComponent;\n\t@ViewChild(PopupIngresoMateriasComponent) popupIngresoMateria: PopupIngresoMateriasComponent;\n\t@ViewChild(ActosDatosPuestoComponent) actosDatosPuesto: ActosDatosPuestoComponent;\n\tpublic validaPasoCedula: boolean;\n\t@Input() public tipoSeleccionado: string;\n\t\n  \tconstructor(private generalPipe: GeneralPipe,\n\t\t\t\tprivate authService: AuthService,\n\t\t\t\tpublic utilsService: UtilsService,    \n\t\t\t\tprivate personaPipe: PersonaConsPipe,          \n\t\t\t\tprivate generalService: GeneralService,\n\t\t\t\tprivate empleadoService: EmpleadoService,\n\t\t\t\tprivate selectListActos: SelectListActos,\n\t\t\t\tprivate planillaService: PlanillaService,\n\t\t\t\tprivate hojaVidaService: HojaVidaService,\n\t\t\t\tprivate translateService: TranslateService,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tprivate cargarArchivo: CargarArchivosService,\n\t\t\t\tprivate selectListCompensa: SelectListCompensa,\n\t\t\t\tprivate actoIngresoService: ActoIngresoService,\n\t\t\t\tprivate campoFormularioPipe: CampoFormularioPipe,\n\t\t\t\tprivate popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\t\t\tprivate encriptadorBasico: EncriptadoBasicoService,\n\t\t\t\tpublic  parametroFormatoPipe: ParametroFormatoPipe,\n\t\t\t\tprivate saraAplicacionService: SaraAplicacionService,\n\t\t\t\tprivate datosBasicosEmpresaPipe: DatosBasicosEmpresaCons,\n\t\t\t\tprivate actoCambioEmpleadoService: ActoCambioEmpleadoService,\n\t\t\t\tpublic  controlFuncionService: CargarControlFuncionalidadService,) { }\n\n  ngOnInit(): void {\n  }\n\n\tprivate async inicializar() {\n\t\t// INCIALIZAMOS LAS VARIABLES PARA EVITAR NULL POINTER EXCEPCION\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t\tthis.valorSeleccionadoSelectOneRadio = this.parametroFormatoPipe.OPCION_SIN_PUESTO;\n\t\tthis.listaParaPuesto = [];\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel();\n\t\tthis.hojaVidaDTO = new HojaVidaModel();\n\t\tthis.origenContratacion = false;\n\t\tthis.seguimiento = false;\n\n\t\tthis.listaSeleccionPuestoTrabajoRadio = [];\n\t\tthis.listaSeleccionPuestoTrabajoRadio.push({value: this.parametroFormatoPipe.OPCION_CON_PUESTO, label: this.parametroFormatoPipe.OPCION_CON_PUESTO_DES});\n\t\tthis.listaSeleccionPuestoTrabajoRadio.push({value: this.parametroFormatoPipe.OPCION_SIN_PUESTO, label: this.parametroFormatoPipe.OPCION_SIN_PUESTO_DES});\n\n\t\tthis.datosBasicosEmpresaDTO = new DatosBasicosEmpresaModel();\n\t\tthis.datosBasicosEmpresaDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tthis.datosBasicosEmpresaDTO = await this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, this.datosBasicosEmpresaDTO)).toPromise();\n\t\tif (this.datosBasicosEmpresaDTO != null) {\n\t\t\tthis.filtrarContratosAnteriores = this.datosBasicosEmpresaPipe.PENSIONADO != this.datosBasicosEmpresaDTO.flexible;\n\t\t}\n    \tthis.vistaVisualizar = null;\n\t}\n\n\t/**\n\t * Regresa el proceso al paso inmediatamente anterior\n\t * \n\t * @return\n\t */\n\tpublic async pasoAnterior() {\n    if (this.paso == null) {\n      return null;\n    }\n\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA){\n\t\tthis.regresarActoAdmin();\n\t\treturn;\n\t}\n    if (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION || this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR) {\n      if (this.paso == this.parametroFormatoPipe.PASO_FINAL) {\n        if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.length == 0) {\n          if ( this.isProcesoMasivo()) {\n            this.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n          }\n          else {\n            this.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n          }\n        } else {\n          this.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n          await this.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal);\n        }\n\n      } else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n        if ( this.isProcesoMasivo()) {\n          this.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n        }\n        else {\n          this.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n        }\n        \n        this.formularioDinamico.removerCamposIdGrupo(this.campoFormularioPipe.GRUPO_FINAL);\n        this.iniciarVisualizacionTablas();\n        await this.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos);\n      } else if (this.paso == this.parametroFormatoPipe.PASO_DATO_PUESTO) {\n        this.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n      } else if (this.paso == this.parametroFormatoPipe.PASO_PUESTO_TRABAJO) {\n        this.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n      } else if (this.paso == this.parametroFormatoPipe.PASO_BUSCAR_OTRO) {\n        this.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n      } else if (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n        this.paso = this.parametroFormatoPipe.PASO_CEDULA;\n      }\n    }\n    if (this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n      this.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n    }\n    this.accionPaso();\n\t}\n\n\t/**\n\t * Identifica el paso siguiente del proceso de acuerdo con el tipo de proceso (ELABORAR, MODIFICAR, LEGALIZAR) y el paso actual. Avanza al paso identificado\n\t * \n\t * @return\n\t */\n\tpublic async pasoSiguiente() {\n\t\tconsole.log('entra pasosiguiente con paso '+ this.paso)\n\t\tconsole.log('entra pasosiguiente con etapa '+ this.etapa)\n\t\tconsole.trace()\n\t\tif(this.parametroFormatoPipe.PASO_SOLICITUD_FINAL != this.paso) {\n\t\t\tthis.cancelarEdicionTablas();\n\t\t}\n\t\t\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION || this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR) {\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\t\tif (!await this.siguienteCedula()) {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\t}\n\t\t\t} else if (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n\t\t\t\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.formatoDTO.servicioValidador)) {\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.mensaje = null;\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.ejecutarValidadorActosWS({actoCambio: this.formularioDinamico.getObjecto()}).toPromise();\n\t\t\t\t\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\t\t\t\t\tthis.notificacionesService.showWarning(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconsole.log('validacion antes siguienteAdicional')\n\t\t\t\tif (!await this.siguienteAdicional()) {\n\t\t\t\t\tconsole.log('validacion despues siguienteAdicional')\n\t\t\t\t\tif ( (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION || this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR) && !this.origenContratacion) {\n\t\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_BUSCAR_OTRO;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconsole.log('validacion despues2 siguienteAdicional')\n\t\t\t\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAusencia)) {\n\t\t\t\t\tif ( this.actoCambioEmpleadoBorrarDTO.empresaAnt == null || this.actoCambioEmpleadoBorrarDTO.contratoAnt==null ) {\n\t\t\t\t\t\tthis.notificacionesService.showWarning('Sustituci'+Constantes.O_TIDLE_MIN+'n Patronal, sin definir la empresa y/o el contrato anterior');\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tvar empleado = new EmpleadoModel();\n\t\t\t\t\templeado = await this.empleadoService.obtenerContratoActivo( {empresa: this.actoCambioEmpleadoBorrarDTO.empresaAnt, contrato: this.actoCambioEmpleadoBorrarDTO.contratoAnt}).toPromise();\n\t\t\t\t\tif (empleado == null) {\n\t\t\t\t\t\tthis.popupSeleccionPuesto.ocultarPopup();\n\t\t\t\t\t\t//PopupSeleccionPuestoBean.Popup().ocultarPopup();\n\t\t\t\t\t\tthis.notificacionesService.showWarning('El empleado no se encuentra activo');\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (this.paso == this.parametroFormatoPipe.PASO_BUSCAR_OTRO) {\n\t\t\t\tif (await this.siguienteBuscarOtro()) {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n\t\t\t\t} else {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\t\t}\n\t\t\t} else if (this.paso == this.parametroFormatoPipe.PASO_PUESTO_TRABAJO) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\t} else if (this.paso == this.parametroFormatoPipe.PASO_DATO_PUESTO) {\n\t\t\t\tif(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.length == 0) {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\t\t}else {\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\t\t\tthis.adicionarCamposSolicitudFinal(this.campoFormularioPipe.GRUPO_FINAL);\n\t\t\t\t}\n\t\t\t}else if(this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\t\tif (!this.formularioDinamico.validar()) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tthis.cancelarEdicionTablas();\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\t}\n\t\t}\n\t\t// Si es proceso de LEGALIZACION\n\t\telse if (this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\t//FormularioDinamico dinamico = this.formularioDinamico;\n\t\t\tif (!this.formularioDinamico.validar()) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tawait this.siguienteDatosLegalizar();\n\t\t}\n\t\tthis.accionPaso();\n\t}\n\t\n\n\tpublic eliminarHijoActo(elemento) {\n\t\tlet acto= elemento.data;//(ActoCambioEmpleadoDTO) ((UIParameter) elemento.Component().findComponent('registrohijo')).Value();\n\t\t//this.actoCambioEmpleadoBorrarDTO.listaActosHijos.remove(acto);\n\t}\n\t\n\tpublic adicionarHijoActo() {\n\t\tvar validar: boolean = true;\n\t\t/*if ( this.actoHijoAdicionar.hojaVida == null) {\n\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:idNombreCompleto','Obligatorio');\n\t\t}\n\t\tint posicion=0;\n\t\tfor (FormatoDatoDTO unDatoPlanta : listaDatosPlanta) {\n\t\t\tunDatoPlanta.mensaje = null;\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.TURNO) && actoHijoAdicionar.Turno() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':turno','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.PERIODO) && actoHijoAdicionar.TipoPeriodo() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':tipoPeriodo','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.VINCULACION) && actoHijoAdicionar.Vincula() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':vincula','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.LINEA) && actoHijoAdicionar.LineaCosto() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':lineacosto','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.UBICACION) && actoHijoAdicionar.UbicacionFis() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':ubicafisicaDes','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.CLASIFICACION) && actoHijoAdicionar.Clasificacion() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':clasificacion','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.UNIDAD) && actoHijoAdicionar.Unidad() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':unidad','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.CARGO) && actoHijoAdicionar.cargo == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':cargo','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.NUMERO_DOC_ITEM) && actoHijoAdicionar.Numero() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':numerodocitem','Obligatorio');\n\t\t\t}\n\t\t\tif (unDatoPlanta.campo == (this.parametroFormatoPipe.FECHA_DOC_ITEM) && actoHijoAdicionar.FechaDocumento() == null) {\n\t\t\t\tvalidar = validar && Validador.adicionarMensaje('form_actoIngreso:idHijoActo:tablaHijos:'+posicion+':fechadocitem','Obligatorio');\n\t\t\t}\n\t\t\tposicion ++;\n\t\t\t\n\t\t}\n\t\tif ( !validar) {\n\t\t\treturn;\n\t\t}\n\t\tactoCambioEmpleadoBorrarDTO.listaActosHijos.push(actoHijoAdicionar);\n\t\tactoHijoAdicionar = new ActoCambioEmpleadoModel();*/\n\t}\n\t\n\tpublic setZonaCentro(centroCostoDTO: CentroCostoModel){\n\t\tif(centroCostoDTO != null){\n\t\t\tthis.actoItemBase.zonaEconomica = centroCostoDTO.zonaEconomica;\n\t\t\tthis.actoItemBase.descripcionZonaEconomica = centroCostoDTO.descripcionZona;\n\t\t\tthis.actoItemBase.centroCostro = centroCostoDTO.centroCosto;\n\t\t\tthis.actoItemBase.descripcionCentroCosto = centroCostoDTO.descripcion;\n\t\t}\t\t\n\t}\n\n\tpublic setRegresoHijoUnidadActo(unidad: UnidadUsuarioModel) {\n\t\tif ( unidad== null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.actoItemBase.unidad = unidad.unidad;\n\t\tthis.actoItemBase.unidadNombre = unidad.nombreUnidad;\n\t\t\n\t}\n\n\tpublic setRegresoHijoCargoActo(cargo: CargoModel) {\n\t\tif ( cargo== null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.actoItemBase.cargo =  cargo.cargo;\n\t\tthis.actoItemBase.descripcionCargo = cargo.descripcion;\n\t}\n\n\t/**\n\t * Muestra los objetos del formulario de acuerdo con el paso actual del proceso\n\t */\n\tprivate accionPaso() {\n\t\tthis.formularioDinamico?.camposCaracteristicaClear();\n\t\tif(this.paso == (this.parametroFormatoPipe.PASO_CEDULA) || this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n\t\t\tthis.formularioDinamico?.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL, this.campoFormularioPipe.CAMPO_EDITABLE);\n\t\t}else {\n\t\t\tthis.formularioDinamico?.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL, this.campoFormularioPipe.CAMPO_LECTURA);\n\t\t}\n\t\t\n\t\t\n\t\tif (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL) {\n\t\t\tthis.formularioDinamico.editable = true;\n\t\t\tthis.editarListaTabla = true;\n\t\t\tthis.editarListaTabla2 = true;\n\t\t\tthis.editarListaTabla3 = true;\n\t\t\tthis.editarHijos = true;\n\t\t}else if (this.paso == this.parametroFormatoPipe.PASO_DATO_PUESTO) {\n\t\t\tthis.mostrarDatosPlanta(true);\n\t\t}else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\tthis.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_FINAL, this.campoFormularioPipe.CAMPO_EDITABLE);\n\t\t}else if (this.paso == this.parametroFormatoPipe.PASO_FINAL) {\n\t\t\tthis.mostrarDatosPlanta(false);\n\t\t\tthis.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_FINAL, this.campoFormularioPipe.CAMPO_LECTURA);\n\t\t}else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL_LEGALIZAR)) {\n\t\t\tthis.formularioDinamico.editable = true;\n\t\t\tthis.mostrarDatosPlanta(false);\n\t\t}\n\t}\n\n\t/**\n\t * Inicializa los valores de las tablas 1, 2 y 3\n\t * \n\t * @param lista\n\t */\n\tprivate async iniciaValoresTablas(lista: FormatoDatoModel[]) {\n\t\tif (lista == null || lista.length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tlista.forEach(formatoDatoDTO => {\n\t\t\tif (this.visualizarTabla1(formatoDatoDTO)) {\n\t\t\t\tthis.validarTabla1(formatoDatoDTO);\n\t\t\t} else if (this.visualizarTabla2(formatoDatoDTO)) {\n\t\t\t\tthis.validarTabla2(formatoDatoDTO);\n\t\t\t} else if (this.visualizarTabla3(formatoDatoDTO)) {\n\t\t\t\tthis.validarTabla3(formatoDatoDTO);\n\t\t\t} else if (this.visualizarTablaMateria(formatoDatoDTO)) {\n\t\t\t\tthis.validarTablaMateria(formatoDatoDTO);\n\t\t\t} else if (this.mostrarTabla1 && this.mostrarTabla2 && this.mostrarTabla3 && this.mostrarTablaMateria) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t})\n\t\t/**\n\t\t * cargamos los nombre de las tablas en caso se deban mostrar\n\t\t */\n\t\tvar dato: DatoorganizacionModel;\n\t\tif (this.mostrarTabla1) {\n\t\t\tdato = await this.actoCambioEmpleadoService.obtenerInformacionTabla({tabla: this.actoCambioEmpleadoBorrarDTO.formatoDTO.tabla1}).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO1 = dato;\n\t\t}\n\n\t\tif (this.mostrarTabla2) {\n\t\t\tdato = await this.actoCambioEmpleadoService.obtenerInformacionTabla({tabla: this.actoCambioEmpleadoBorrarDTO.formatoDTO.tabla2}).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO2 = dato;\n\t\t}\n\n\t\tif (this.mostrarTabla3) {\n\t\t\tdato = await this.actoCambioEmpleadoService.obtenerInformacionTabla({tabla: this.actoCambioEmpleadoBorrarDTO.formatoDTO.tabla3}).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO3 = dato;\n\t\t}\n\n\t\tif (this.mostrarTablaMateria) {\n\t\t\tdato = await this.actoCambioEmpleadoService.obtenerInformacionTabla({tabla: this.actoCambioEmpleadoBorrarDTO.formatoDTO.tablaMateria}).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4 = dato;\n\t\t}\n\n\t\t/**\n\t\t * Cargamos la lista de campos de cada campo tabla\n\t\t */\n\t\tif (this.mostrarTabla1 || this.mostrarTabla2 || this.mostrarTabla3 || this.mostrarTablaMateria) {\n\t\t\tthis.cargarListaDatoOrganizacionTablas();\n\t\t}\n\t\n\t}\n\n\tprivate iniciarVisualizacionTablas() {\n\t\tthis.mostrarTabla1 = false;\n\t\tthis.mostrarTabla2 = false;\n\t\tthis.mostrarTabla3 = false;\n\t\tthis.mostrarTablaMateria = false;\n\t\t\n\t\tthis.cancelarEdicionTablas();\n\t}\n\t\n\tprivate cancelarEdicionTablas() {\n\t\tthis.editarListaTabla = false;\n\t\tthis.editarListaTabla2 = false;\n\t\tthis.editarListaTabla3 = false;\n\t\tthis.editarListaTablaMateria = false;\n\t\tthis.editarHijos = false;\n\t}\n\t\n\tprivate visualizarTablaMateria(formatoDatoDTO: FormatoDatoModel) {\n\t\treturn this.utilsService.isNotBlank(formatoDatoDTO.campo) && formatoDatoDTO.campo.trim() == (this.parametroFormatoPipe.TABLA_MATERIA)\n\t\t\t\t&& (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESARE) || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESOL)\n\t\t\t\t\t\t|| formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL));\n\t}\n\n\tprivate visualizarTabla3(formatoDatoDTO: FormatoDatoModel) {\n\t\treturn formatoDatoDTO.campo != null && formatoDatoDTO.campo.trim() == (this.parametroFormatoPipe.TABLA3)\n\t\t\t\t&& (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESARE) || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESOL)\n\t\t\t\t\t\t|| formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL));\n\t}\n\n\tprivate visualizarTabla2(formatoDatoDTO: FormatoDatoModel) {\n\t\treturn formatoDatoDTO.campo != null && formatoDatoDTO.campo.trim() == (this.parametroFormatoPipe.TABLA2)\n\t\t\t\t&& (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESARE) || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESOL)\n\t\t\t\t\t\t|| formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL));\n\t}\n\n\tprivate visualizarTabla1(formatoDatoDTO: FormatoDatoModel) {\n\t\treturn formatoDatoDTO.campo != null && formatoDatoDTO.campo.trim() == (this.parametroFormatoPipe.TABLA1)\n\t\t\t\t&& (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESARE) || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESOL)\n\t\t\t\t\t\t|| formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL));\n\t}\n\n\tprivate validarTablaMateria(formatoDatoDTO: FormatoDatoModel) {\n\t\tthis.editarListaTablaMateria = false;\n\t\tif (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL)) {\n\t\t\tif (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL == this.paso || this.mostrarTablaMateria) {\n\t\t\t\tthis.verTablaMateria(formatoDatoDTO);\n\t\t\t\tthis.editarListaTablaMateria = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.verTablaMateria(formatoDatoDTO);\n\t\t\tif(formatoDatoDTO.accion.trim() != (this.parametroFormatoPipe.INGRESOL) && (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL || this.paso == (this.parametroFormatoPipe.PASO_CEDULA))) {\n\t\t\t\tthis.editarListaTablaMateria = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate validarTabla3(formatoDatoDTO: FormatoDatoModel) {\n\t\tthis.editarListaTabla2 = false;\n\t\tif (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL)) {\n\t\t\tif (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL == this.paso || this.mostrarTabla3) {\n\t\t\t\tthis.verTabla3(formatoDatoDTO);\n\t\t\t\tthis.editarListaTabla3 = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.verTabla3(formatoDatoDTO);\n\t\t\tif(this.paso == this.parametroFormatoPipe.PASO_ADICIONAL || this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\t\tthis.editarListaTabla3 = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate validarTabla2(formatoDatoDTO: FormatoDatoModel) {\n\t\tthis.editarListaTabla2 = false;\n\t\tif (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL)) {\n\t\t\tif (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL == this.paso || this.mostrarTabla2) {\n\t\t\t\tthis.verTabla2(formatoDatoDTO);\n\t\t\t\tthis.editarListaTabla2 = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.verTabla2(formatoDatoDTO);\n\t\t\tif(this.paso == this.parametroFormatoPipe.PASO_ADICIONAL || this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\t\tthis.editarListaTabla2 = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate validarTabla1(formatoDatoDTO: FormatoDatoModel) {\n\t\tthis.editarListaTabla = false;\n\t\tif (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL)) {\n\t\t\tif (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL == this.paso || this.mostrarTabla1) {\n\t\t\t\tthis.verTabla1(formatoDatoDTO);\n\t\t\t\tthis.editarListaTabla = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.verTabla1(formatoDatoDTO);\n\t\t\tif(this.paso == this.parametroFormatoPipe.PASO_ADICIONAL || this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\t\tthis.editarListaTabla = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate verTablaMateria(formatoDatoDTO: FormatoDatoModel) {\n\t\tif ( this.isProcesoMasivo()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.mostrarTablaMateria = true;\n\t\tthis.actoCambioEmpleadoBorrarDTO.tituloTablaMateria = this.utilsService.isNotBlank(formatoDatoDTO.titulo) ? formatoDatoDTO.titulo : this.parametroFormatoPipe.TABLA_MATERIA;\n\t}\n\n\tprivate verTabla3(formatoDatoDTO: FormatoDatoModel) {\n\t\tif ( this.isProcesoMasivo()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.mostrarTabla3 = true;\n\t\tthis.actoCambioEmpleadoBorrarDTO.tituloPerfilTabla3 = formatoDatoDTO.titulo != null && formatoDatoDTO.titulo.trim() != Constantes.ESPACIO_NULO ? formatoDatoDTO.titulo: this.parametroFormatoPipe.TABLA3;\n\t}\n\n\tprivate verTabla2(formatoDatoDTO: FormatoDatoModel) {\n\t\tif ( this.isProcesoMasivo()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.mostrarTabla2 = true;\n\t\tthis.actoCambioEmpleadoBorrarDTO.tituloPerfilTabla2 = formatoDatoDTO.titulo != null && formatoDatoDTO.titulo.trim() != Constantes.ESPACIO_NULO ? formatoDatoDTO.titulo\n\t\t\t\t\t\t: this.parametroFormatoPipe.TABLA2;\n\t}\n\n\tprivate verTabla1(formatoDatoDTO: FormatoDatoModel) {\n\t\tif ( this.isProcesoMasivo()) {\n\t\t\treturn;\n\t\t}\n\t\tthis.mostrarTabla1 = true;\n\t\tthis.actoCambioEmpleadoBorrarDTO.tituloPerfilTabla1 = formatoDatoDTO.titulo != null && formatoDatoDTO.titulo.trim() != Constantes.ESPACIO_NULO ? formatoDatoDTO.titulo\n\t\t\t\t\t\t: this.parametroFormatoPipe.TABLA1;\n\t}\n\n\tpublic setPerfilTabla(retorno) {\n\t\tvar perfil: ActosAdminTablaModel = retorno.perfil;\n\t\tvar tabla = retorno.tabla;\n\t\tswitch (tabla) {\n\t\t\tcase 'tabla1':\n\t\t\t\tthis.setPerfilTabla1(perfil);\n\t\t\t\tbreak;\n\t\t\tcase 'tabla2':\n\t\t\t\tthis.setPerfilTabla2(perfil);\n\t\t\t\tbreak;\n\t\t\tcase 'tabla3':\n\t\t\t\tthis.setPerfilTabla3(perfil);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tpublic setPerfilTabla1(perfil: ActosAdminTablaModel) {\n\t\t/**\n\t\t * Si perfilTablasDTOGuardado es != null, entonces lo eliminamos y adicionamo el nuevo registro, con esto evitamos tener el registro varias veces en la lista\n\t\t */\n\t\tif (this.perfilTablasDTOGuardado != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla1DTO =\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla1DTO.filter(data => data.llaveTabla != this.perfilTablasDTOGuardado.llaveTabla);\n\t\t}\n\t\tif (perfil == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla1DTO.push(perfil);\n\t}\n\n\tpublic setPerfilTabla2(perfil: ActosAdminTablaModel) {\n\t\t/**\n\t\t * Si perfilTablasDTOGuardado es != null, entonces lo eliminamos y adicionamo el nuevo registro, con esto evitamos tener el registro varias veces en la lista\n\t\t */\n\t\tif (this.perfilTablasDTOGuardado != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla2DTO =\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla2DTO.filter(data => data.llaveTabla != this.perfilTablasDTOGuardado.llaveTabla);\n\t\t}\n\t\tif (perfil == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla2DTO.push(perfil);\n\t}\n\n\tpublic setPerfilTabla3(perfil: ActosAdminTablaModel) {\n\t\t\n\t\t\t/**\n\t\t\t * Si perfilTablasDTOGuardado es != null, entonces lo eliminamos y adicionamo el nuevo registro, con esto evitamos tener el registro varias veces en la lista\n\t\t\t */\n\t\t\tif (this.perfilTablasDTOGuardado != null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla3DTO =\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla3DTO.filter(data => data.llaveTabla != this.perfilTablasDTOGuardado.llaveTabla);\n\t\t\t}\n\t\t\tif (perfil == null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaPerfilTabla3DTO.push(perfil);\n\t\t\n\t}\n\n\tpublic async setPerfilTablaMateria(materia: ActosAdminTablaModel) {\n\t\t/**\n\t\t * Si perfilTablasDTOGuardado es != null, entonces lo eliminamos y adicionamo el nuevo registro, con esto evitamos tener el registro varias veces en la lista\n\t\t */\n\t\tif (this.perfilTablasDTOGuardado != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria =\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria.filter(data => data.llaveTabla != this.perfilTablasDTOGuardado.llaveTabla);\n\t\t}\n\t\tif (materia == null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.utilsService.isNotBlank(materia.asignatura)) {\n\t\t\tvar asignaturaDTO = new AsignaturaModel();\n\t\t\tasignaturaDTO.llaveTabla = this.utilsService.rightpad(materia.asignatura, 32, ' ');\n\t\t\tasignaturaDTO = await this.generalService.queryForObject(new GeneralModel('AsignaturaDTO', null, false, asignaturaDTO)).toPromise();\n\t\t\tif (asignaturaDTO != null) {\n\t\t\t\tmateria.descripcionAsignatura = asignaturaDTO.descripcion;\n\t\t\t}\n\t\t}\n\t\tif (this.utilsService.isNotBlank(materia.semestre)) {\n\t\t\tvar semestre = new SemestreModel();\n\t\t\tsemestre.llaveTabla = this.utilsService.rightpad(materia.semestre, 32, ' ');\n\t\t\tsemestre = await this.generalService.queryForObject(new GeneralModel('SemestreDTO', null, false, semestre)).toPromise();\n\t\t\tif (semestre != null) {\n\t\t\t\tmateria.descripcionSemestre = semestre.descripcion;\n\t\t\t}\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria.push(materia);\n\t\tthis.formularioEditable = true;\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t}\n\n\t/**\n\t * Si las tablas si son visibles para la realizacion del acto entonces cargamos la lista de datoOrganizacion, de lo contrario la dejamos nulas\n\t */\n\tpublic async cargarListaDatoOrganizacionTablas() {\n\t\tif (this.mostrarTabla1) {\n\t\t\tthis.ListaDatoOrtganizacionTabla1 = await this.cargarListaDatoOrganizacion(this.actoCambioEmpleadoBorrarDTO.formatoDTO.tabla1);\n\t\t\tthis.cargarColumnasTablas(this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO1, 'tabla1');\n\t\t}\n\t\tif (this.mostrarTabla2) {\n\t\t\tthis.ListaDatoOrtganizacionTabla2 = await this.cargarListaDatoOrganizacion(this.actoCambioEmpleadoBorrarDTO.formatoDTO.tabla2);\n\t\t\tthis.cargarColumnasTablas(this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO2, 'tabla2');\n\t\t}\n\t\tif (this.mostrarTabla3) {\n\t\t\tthis.ListaDatoOrtganizacionTabla3 = await this.cargarListaDatoOrganizacion(this.actoCambioEmpleadoBorrarDTO.formatoDTO.tabla3);\n\t\t\tthis.cargarColumnasTablas(this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO3, 'tabla3');\n\t\t}\n\t\tif (this.mostrarTablaMateria) {\n\t\t\tthis.listaDatoOrganizacionTablaMateria = await this.cargarListaDatoOrganizacion(this.actoCambioEmpleadoBorrarDTO.formatoDTO.tablaMateria);\n\t\t\tthis.cargarColumnasTablas(this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4, 'materia');\n\t\t}\n\t}\n\n\tcargarColumnasTablas(datoorganizacionDTO: DatoorganizacionModel, tabla: string) {\n\t\tvar columnasTablas = [];\n\t\tif (datoorganizacionDTO.tituloDescripcionRequerida) {\n\t\t\tcolumnasTablas.push({field: 'requerida', header: datoorganizacionDTO.tituloDescripcionRequerida})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionTemporal) {\n\t\t\tcolumnasTablas.push({field: 'temporal', header: datoorganizacionDTO.tituloDescripcionTemporal})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionArea) {\n\t\t\tcolumnasTablas.push({field: 'areaComite', header: datoorganizacionDTO.tituloDescripcionArea})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionProposito) {\n\t\t\tcolumnasTablas.push({field: 'proposito', header: datoorganizacionDTO.tituloDescripcionProposito})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionPapel) {\n\t\t\tcolumnasTablas.push({field: 'papel', header: datoorganizacionDTO.tituloDescripcionPapel})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionFrecuencia) {\n\t\t\tcolumnasTablas.push({field: 'frecuencia', header: datoorganizacionDTO.tituloDescripcionFrecuencia})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionAsignatura) {\n\t\t\tcolumnasTablas.push({field: 'descripcionAsignatura', header: datoorganizacionDTO.tituloDescripcionAsignatura})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionSemestre) {\n\t\t\tcolumnasTablas.push({field: 'descripcionSemestre', header: datoorganizacionDTO.tituloDescripcionSemestre})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionGrupoAsignatura) {\n\t\t\tcolumnasTablas.push({field: 'grupoAsignatura', header: datoorganizacionDTO.tituloDescripcionGrupoAsignatura})\n\t\t}\n\t\tif (datoorganizacionDTO.tituloDescripcionIntensidadAsignatura) {\n\t\t\tcolumnasTablas.push({field: 'intensidad', header: datoorganizacionDTO.tituloDescripcionIntensidadAsignatura})\n\t\t}\n\t\tswitch (tabla) {\n\t\t\tcase 'tabla1':\n\t\t\t\tthis.columnasTabla1 = [];\n\t\t\t\tthis.columnasTabla1 = columnasTablas;\n\t\t\t\tbreak;\n\t\t\tcase 'tabla2':\n\t\t\t\tthis.columnasTabla2 = [];\n\t\t\t\tthis.columnasTabla2 = columnasTablas;\n\t\t\t\tbreak;\n\t\t\tcase 'tabla3':\n\t\t\t\tthis.columnasTabla3 = [];\n\t\t\t\tthis.columnasTabla3 = columnasTablas;\n\t\t\t\tbreak;\n\t\t\tcase 'materia':\n\t\t\t\tthis.columnasTablaMateria = [];\n\t\t\t\tthis.columnasTablaMateria = columnasTablas;\n\t\t\t\tbreak;\n\t\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/**\n\t * traemos los datos de las tablas de dato organizacion\n\t * \n\t * @param tabla\n\t * @return\n\t * @\n\t */\n\tprivate async cargarListaDatoOrganizacion(tabla: string) {\n\t\tif ( tabla == null ) {\n\t\t\treturn [];\n\t\t}\n\t\tvar filtro = new DatoorganizacionModel();\n\t\tfiltro.tabla = tabla;\n\t\treturn await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, filtro)).toPromise();\n\t}\n\n\tpublic async modificarPerfilTabla1(evt) {\n\t\tif (!this.editarListaTabla) {\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edición');\n\t\t\treturn;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = evt.data;\n\t\tawait this.popupFormatoTabla.buscar(this.ListaDatoOrtganizacionTabla1, this.perfilTablasDTOGuardado, false, 'tabla1');\n\t}\n\n\tpublic async modificarPerfilTabla3(evt) {\n\t\tif (!this.editarListaTabla3) {\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edición');\n\t\t\treturn;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = evt.data;\n\t\tawait this.popupFormatoTabla.buscar(this.ListaDatoOrtganizacionTabla3, this.perfilTablasDTOGuardado, false, 'tabla3');\n\t}\n\n\tpublic async modificarPerfilTabla2(evt) {\n\t\tif (!this.editarListaTabla2) {\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edición');\n\t\t\treturn;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = evt.data;\n\t\tawait this.popupFormatoTabla.buscar(this.ListaDatoOrtganizacionTabla2, this.perfilTablasDTOGuardado, false, 'tabla2');\n\t}\n\n\tpublic modificarTablaMateria(evt) {\n\t\tif (!this.editarListaTablaMateria) {\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edición');\n\t\t\treturn;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = evt.data;\n\t\tthis.popupIngresoMateria.buscar(this.perfilTablasDTOGuardado);\n\t}\n\n\tpublic async nuevoPerfilTabla1() {\n\t\tif (this.ListaDatoOrtganizacionTabla1 == null || this.ListaDatoOrtganizacionTabla1.length == 0) {\n\t\t\tthis.notificacionesService.showInfo('No se ha configurado campos para esta tabla..');\n\t\t\treturn null;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = null;\n\t\tawait this.popupFormatoTabla.buscar(this.ListaDatoOrtganizacionTabla1, new ActosAdminTablaModel(), true, 'tabla1');\n\t}\n\n\tpublic async nuevoPerfilTabla2() {\n\t\tif (this.ListaDatoOrtganizacionTabla2 == null || this.ListaDatoOrtganizacionTabla2.length == 0) {\n\t\t\tthis.notificacionesService.showInfo('No se ha configurado campos para esta tabla..');\n\t\t\treturn null;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = null;\n\t\tawait this.popupFormatoTabla.buscar(this.ListaDatoOrtganizacionTabla2, new ActosAdminTablaModel(), true, 'tabla2');\n\t}\n\n\tpublic async nuevoPerfilTabla3() {\n\t\tif (this.ListaDatoOrtganizacionTabla3 == null || this.ListaDatoOrtganizacionTabla3.length == 0) {\n\t\t\tthis.notificacionesService.showInfo('No se ha configurado campos para esta tabla..');\n\t\t\treturn null;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = null;\n\t\tawait this.popupFormatoTabla.buscar(this.ListaDatoOrtganizacionTabla3, new ActosAdminTablaModel(), true, 'tabla3');\n\t}\n\n\tpublic nuevoPerfilTablaMateria() {\n\t\tif (this.listaDatoOrganizacionTablaMateria == null || this.listaDatoOrganizacionTablaMateria.length == 0) {\n\t\t\tthis.notificacionesService.showInfo('No se ha configurado campos para esta tabla..');\n\t\t\treturn null;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = null;\n\t\tvar actosAdminTablaDTO = new ActosAdminTablaModel();\n\t\tactosAdminTablaDTO.semestre = this.formularioDinamico.getObjecto()?.semestre;\n\t\tthis.popupIngresoMateria.buscar(actosAdminTablaDTO);\n\t}\n\n\tpublic async elaborar(cedula: number, formato: number, grupoVincula: number, descripcionGrupo: string, actoCorregir: ActoCambioEmpleadoModel) {\n\t\tawait this.inicializar();\n\t\tthis.descripcionGrupo = descripcionGrupo;\n\t\tif (actoCorregir == null ) {\n\t\t\tthis.nuevo(cedula, formato, grupoVincula).then(async data => {await this.setValorCampos()});\n\t\t}\n\t\telse {\n\t\t\tthis.corregir(actoCorregir).then(data => {});\n\t\t}\n\t}\n\t\n\tasync setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.campos.forEach(async element => {\n\t\t\t\n\t\t\tif (element.tipo === 'F'){\n\t\t\t  element.valor = element.valor ? new Date(element.valor) : null;\n\t\t\t} else if (element.tipo === 'H'){\n\t\t\t  if (element.valor){\n\t\t\t\tlet listaValortemp = [];\n\t\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t  listaValortemp.push ({label: element2, value:element2})\n\t\t\t\t})\n\t\t\t\telement.valor = listaValortemp\n\t\t\t  }\n\t\t\t} else if (element.tipo === 'P'){\n\t\t\t  this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id ){\n\t\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t  readonly: !this.formularioDinamico?.editable,\n\t\t\t\t\t  showDialog: false,\n\t\t\t\t\t  label: element.valor,\n\t\t\t\t\t  mostrarX: true,\n\t\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t\t}\n\t\t\t  });\n\t\n\t\t\t} else {\n\t\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\t\telement.valor = element.valor.trim()\n\t\t\t\t  }\n\t\t\t}\n\t\t  });\n\t\t  await this.utilsService.sleep(500)\n\t\n\t\t  this.formularioDinamico?.ngAfterViewInit();\n\t\t  this.utilsService.resizeWindowIFrame();\n\t\n\t\t  //this.formularioDinamico.campos = this.campos;\n\t  }\n\t\n\tprivate async corregir(actoCorregir: ActoCambioEmpleadoModel) {\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t\tthis.llaveBase = Constantes.ESPACIO_NULO;\n\t\tthis.mostrarFoto = true;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\tthis.origenContratacion = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: actoCorregir.llave, etapa: this.etapa}).toPromise();\n\t\tthis.actoCambioEmpleadoBorrarDTO.derogacion = actoCorregir.llave;\n\t\tthis.actoCambioEmpleadoBorrarDTO.postLegalizada = this.parametroFormatoPipe.CORREGIR;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\n\t\tthis.mostrarEntidades = this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length != 0 && !this.isProcesoMasivo();\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTA CEDULA\n\t\tawait this.cargarDatosCedula();\n\t\tthis.entradaContratoAction();\n\t\tthis.formularioEditable = false;\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t\t\n\t\tif (!await this.siguienteCedula()) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t}\n\t}\n\t\n\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * \n\t * @param cedula\n\t *            Identificacion del nuevo acto ingreso\n\t * @param formato\n\t *            LLave del formato que tendra relacionado este Acto Ingreso\n\t * @param grupoVincula\n\t *            Cada Acto Ingreso tendra relacionado un grupo vincula\n\t */\n\tpublic async nuevo(cedula: number, formato: number, grupoVincula: number) {\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t\tthis.formularioDinamico?.limpiar();\n\t\tthis.mostrarFoto = false;\n\t\tthis.actividadFuenteTareaDTO = null;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = Constantes.ESPACIO_NULO;\n\t\tthis.origenContratacion = false;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoIngresoService.nuevo({formato: formato, grupoVincula: grupoVincula, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tthis.mostrarDatosCedulaCampos = !this.isProcesoMasivo();\n\t\tthis.mostrarEntidades = this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length != 0 && !this.isProcesoMasivo();\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\tif (cedula != null && cedula != 0) {\n\t\t\tthis.hojaVidaDTO = new HojaVidaModel();\n\t\t\tthis.hojaVidaDTO.identifica = cedula;\n\t\t\tthis.hojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, this.hojaVidaDTO)).toPromise();\n\t\t\tif (this.hojaVidaDTO != null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.hojaVida = this.hojaVidaDTO.identifica;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.hojaVidaDTO = new HojaVidaModel();\n\t\t}\n\t\tthis.mostrar = true;\n\n\t\t//FIXME: Pte cabecera hoja vida\n\t\t//EmpleadoBean empleado = (EmpleadoBean) FacesUtils.Bean('empleadoBean');\n\t\t//empleado.traerHojaVida(new BigDecimal(0));\n\n\t\tthis.entradaContratoAction();\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.editarHijos = this.isProcesoMasivo();\n\t\tif ( this.isProcesoMasivo() ) {\n\t\t\t//await this.siguienteCedula();\n\t\t\tawait this.pasoSiguiente();\n\t\t}\n\t\t//await this.pasoSiguiente()\n\t}\n\n\tpublic async nuevoContratacion(acto: ActoCambioEmpleadoModel, formato: number, legalUnico: string) {\n\t\tthis.formularioDinamico.limpiar();\n\t\tthis.mostrarFoto = false;\n\t\tthis.mostrarDatosCedulaCampos = true;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = Constantes.ESPACIO_NULO;\n\t\tthis.origenContratacion = true;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO = acto;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoIngresoService.nuevoContratacion({nuevo: this.actoCambioEmpleadoBorrarDTO, formato: formato, empresa: this.actoCambioEmpleadoBorrarDTO.empresa}).toPromise();\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.legalUnico = legalUnico;\n\t\t}\n\t\tthis.mostrarEntidades = this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length != 0;\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\tif (acto.hojaVida != null && acto.hojaVida != 0) {\n\t\t\tthis.hojaVidaDTO = new HojaVidaModel();\n\t\t\tthis.hojaVidaDTO.identifica = acto.hojaVida;\n\t\t\tthis.hojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, this.hojaVidaDTO)).toPromise();\n\t\t\tif (this.hojaVidaDTO != null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.hojaVida = this.hojaVidaDTO.identifica;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.hojaVidaDTO = new HojaVidaModel();\n\t\t}\n\n\t\t//FIXME: Pte cabecera hoja vida\n\t\t//EmpleadoBean empleado = (EmpleadoBean) FacesUtils.Bean('empleadoBean');\n\t\t//empleado.traerHojaVida(acto.hojaVida);\n\n\t\tthis.entradaContratoAction();\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.mostrarBuscarAntecesor = true;\n\t}\n\n\t/**\n\t * \n\t */\n\tpublic async modificar(llave: string) {\n\t\tawait this.inicializar();\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\tthis.origenContratacion = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.actividadFuenteTareaDTO = null;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.mostrarEntidades = this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length != 0 && !this.isProcesoMasivo();\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tawait this.cargarDatosCedula();\n\t\t\tthis.entradaContratoAction();\n\t\t}\n\t\tthis.formularioEditable = false;\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\n\t\tthis.editarHijos = this.isProcesoMasivo();\n\t\tif ( this.isProcesoMasivo() ) {\n\t\t\tawait this.siguienteCedula();\n\t\t\tawait this.pasoSiguiente();\n\t\t}\n\t\telse if (!await this.siguienteCedula()) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t}\n\t}\n\n\tpublic async modificarContratacion(llave: string) {\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\tthis.origenContratacion = true;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\n\t\t//FIXME: Pte cabecera hoja vida\n\t\t//EmpleadoBean empleado = (EmpleadoBean) FacesUtils.Bean('empleadoBean');\n\t\t//HojaVidaDTO hojaVidaDTO = new HojaVidaModel();\n\t\t//hojaVidaDTO.Identifica(this.actoCambioEmpleadoBorrarDTO.hojaVida);\n\t\t//hojaVidaDTO = this.generalService.queryForObject(new GeneralModel(hojaVidaDTO);\n\t\t//empleado.traerHojaVida(this.actoCambioEmpleadoBorrarDTO.hojaVida);\n\t\t\n\t\tthis.mostrarEntidades = this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length != 0;\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTA CEDULA\n\t\tawait this.cargarDatosCedula();\n\t\tthis.entradaContratoAction();\n\t\tthis.formularioEditable = false;\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t}\n\n\tpublic async cargarDatosCedula() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.hojaVida != null) {\n\t\t\tvar hojaVidaDTO = new HojaVidaModel();\n\t\t\thojaVidaDTO.identifica = this.actoCambioEmpleadoBorrarDTO.hojaVida;\n\t\t\thojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, hojaVidaDTO)).toPromise();\n\t\t\tthis.actoItemBase = this.actoCambioEmpleadoBorrarDTO;\n\t\t\tthis.setFuncionario(hojaVidaDTO);\n\t\t}\n\t\t\n\t}\n\n\tpublic async cargaListaFormularioLeglizadaYcampo() {\n\t\tvar datoDTO = new FormatoDatoModel();\n\t\tdatoDTO.formato = this.actoCambioEmpleadoBorrarDTO.formato;\n\t\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n\t\t// CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n\t\tawait this.crearFormularioListaParaCampo()\n\t\tawait this.crearFormularioListaLegalizada();\n\t}\n\n\tpublic async legalizacion(llave: string) {\n\t\tawait this.inicializar();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llaveBase = llave;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.origenContratacion = false;\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\tthis.mostrar = true\n\t\tawait this.utilsService.sleep(1100)\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\n\t\tthis.mostrarEntidades = this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length != 0 && !this.isProcesoMasivo();\n\t\tthis.mostrarTablaMateria = this.actoCambioEmpleadoBorrarDTO.listaTablaMateria.length != 0;\n\t\tthis.mostrarTabla1 = this.actoCambioEmpleadoBorrarDTO.listaPerfilTabla1DTO.length != 0;\n\t\tthis.mostrarTabla2 = this.actoCambioEmpleadoBorrarDTO.listaPerfilTabla2DTO.length != 0;\n\t\tthis.mostrarTabla3 = this.actoCambioEmpleadoBorrarDTO.listaPerfilTabla3DTO.length != 0;\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTA CEDULA\n\t\tif (!this.isProcesoMasivo()) {\n\t\t\tawait this.cargarDatosCedula();\n\t\t\t\n\t\t}\n\t\t// cargamos las descripciones de Unidad y cargo\n\t\tawait this.cargarDescripcionesUnidadYcargo();\n\t}\n\n\tpublic async legalizacionContratacion(llave: string) {\n\t\t\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\n\t\t//FIXME: Pte cabecera hoja vida\n\t\t/*EmpleadoBean empleado = (EmpleadoBean) FacesUtils.Bean('empleadoBean');\n\t\tHojaVidaDTO hojaVidaDTO = new HojaVidaModel();\n\t\thojaVidaDTO.Identifica(this.actoCambioEmpleadoBorrarDTO.hojaVida);\n\t\thojaVidaDTO = this.generalService.queryForObject(new GeneralModel(hojaVidaDTO);\n\t\templeado.traerHojaVida(this.actoCambioEmpleadoBorrarDTO.hojaVida);*/\n\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.origenContratacion = true;\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTA CEDULA\n\t\tawait this.cargarDatosCedula();\n\n\n\t\t// cargamos las descripciones de Unidad y cargo\n\t\tawait this.cargarDescripcionesUnidadYcargo();\n\n\t\tif (this.listaParaCampoLegalizada.length == 0) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.procesoCombinacion();\n\t\t} else {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t}\n\t}\n\n\tpublic async eliminar(llave: string) {\n\t\tawait this.inicializar();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.listaParaPuesto = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1000)\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tawait this.cargarDatosCedula();\n\t\t\tthis.mostrarEntidades = this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length != 0;\n\t\t}\n\t\telse {\n\t\t\tthis.mostrarEntidades = false;\n\t\t}\n\n\t\t// cargamos las descripciones de Unidad y cargo\n\t\tawait this.cargarDescripcionesUnidadYcargo();\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tawait this.procesoCombinacion();\n\t}\n\n\t/**\n\t * Valida los datos ingresados en el paso inicial (PASO_CEDULA)\n\t * \n\t * @return true en caso de que se cumplan las validaciones sobre los datos solicitados en el paso inicial, en caso contrario false\n\t */\n\tpublic validarDatosCedulaEmpleado() {\n\t\tconsole.log('entra validar datos cedula empleado' )\n\t\tvar valida = true;\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.hojaVida);\n\t\tif (this.entradaContrato) {\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.codigoEmpleado);\n\t\t}\n\n\t\t// VALIDAMOS LA INCLUSION DE ALGUN DATO EN actoCambioEmpleadoBorrarDTO.ANTECESOR\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0) {\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.antesesor);\n\t\t}\n\t\treturn valida;\n\t}\n\n\t/**\n\t * Metodo que continua con el siguiente paso del proceso, despues del ingreso de cédula. Verifica y valida la informacion ingresada en el paso de ingreso de datos del del empleado (número de\n\t * cédula, número de contrato)\n\t */\n\tprivate async siguienteCedula() {\n\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tthis.validaPasoCedula = true;\n\t\t\tif (!this.validarDatosCedulaEmpleado()) {\n\t\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tthis.validaPasoCedula = false;\n\t\t\t}\n\t\t}\n\t\t// Validamos que el contrato ingresado no exista\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tif (this.parametroFormatoPipe.ACCION_CORRECCION == this.accion ) {\n\t\t\t\tthis.hojaVidaDTO = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, {identifica: this.actoCambioEmpleadoBorrarDTO.hojaVida})).toPromise();\n\t\t\t} else {\n\t\t\t\tlet respuesta = await this.actoCambioEmpleadoService.isVerificaExisteContrato({empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), contrato: this.actoCambioEmpleadoBorrarDTO.codigoEmpleado}).toPromise();\n\t\t\t\tif (respuesta.respuesta) {\n\t\t\t\t\tthis.notificacionesService.showInfo('Numero de contrato ya existe');\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tthis.hojaVidaDTO = await this.hojaVidaService.validaIngresoCedula({cedula: this.actoCambioEmpleadoBorrarDTO.hojaVida, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), contrato: this.actoCambioEmpleadoBorrarDTO.codigoEmpleado}).toPromise();\n\t\t\t}\n\t\t\t\n\t\t\tif (this.hojaVidaDTO == null) {\n\t\t\t\tthis.notificacionesService.showInfo('No existe hoja de vida.');\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (this.hojaVidaDTO.mensaje != null) {\n\t\t\t\tthis.notificacionesService.showInfo(this.hojaVidaDTO.mensaje);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tawait this.crearFormularioListaParaCampo();\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tif(this.parametroFormatoPipe.ACCION_CORRECCION != this.accion ) {\n\t\t\t\t\n\t\t\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION ) {\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna = await this.actoIngresoService.cargarListadoTipoServicio({formato: this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave, llaveContratacion: this.actoCambioEmpleadoBorrarDTO.contratacion}).toPromise();\n\t\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.hojaVida) {\n\t\t\t\t\t\t//pte porque genera error\n\t\t\t\t\t\t//this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna = await this.actoIngresoService.cargarListadoServicio({listaEntidadesExternas: this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna, cedula: this.actoCambioEmpleadoBorrarDTO.hojaVida, empresa: this.actoCambioEmpleadoBorrarDTO.empresa}).toPromise();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0 && this.actoCambioEmpleadoBorrarDTO.antesesor != null) {\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.conAntecesor({actoCambio: this.actoCambioEmpleadoBorrarDTO, antecesor: this.actoCambioEmpleadoBorrarDTO.antesesor}).toPromise();\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t\tawait this.utilsService.sleep(400)\n\t\t// Actualizamos los valores en el formulario\n\t\tthis.formularioEditable = true;\n\t\tthis.formularioDinamico?.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\tthis.cargarVariableFormato(this.actoCambioEmpleadoBorrarDTO.llave);\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la listaParaCampoLegalizada\n\t * \n\t * @see LegalizarActoIngresoBean\n\t */\n\tprivate async crearFormularioListaLegalizada() {\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\t\t\tthis.formularioDinamico.limpiar();\n\t\t\tthis.formularioDinamico.camposCaracteristicaClear()\n\n\t\t\t// adicionamos al grupo1, los datos del grupo 2\n\t\t\tthis.campos.forEach(g2 => {\n\t\t\t\tg2.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\t\tg2.obligatorio = false;\n\t\t\t\t//grupo1.Campos().push(g2);\n\t\t\t})\n\t\t\t/**\n\t\t\t * iniciamos las variables de TABLA1, TABLA2, TABLA3 si deben o no mostrarse\n\t\t\t **/\n\t\t\tthis.iniciarVisualizacionTablas();\n\t\t\tawait this.iniciaValoresTablas(this.listaParaCampoLegalizada);\n\n\t\t\tfor (var dato of this.listaParaCampoLegalizada) {\n\t\t\t\tfor(var campo of campos2) {\n\t\t\t\t\tif (campo.descripcion != (dato.campo.trim())) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.cargarDatosCampoFormulario(campo);\n\t\t\t\t\t\n\t\t\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != Constantes.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.verUnidadCargo();\n\n\t\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\t\t\n\t\t\tawait this.cargarVariableFormato(this.actoCambioEmpleadoBorrarDTO.llave);\n\t}\n\n\tpublic async seleccionaEntidad(evento) {\n\t\tthis.entidadSeleccionada = evento.data;\n\t\tconsole.log(this.entidadSeleccionada)\n\t\tif ( this.parametroFormatoPipe.PASO_ADICIONAL != this.paso && this.parametroFormatoPipe.PASO_LEGALIZAR != this.paso ) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.parametroFormatoPipe.ETAPA_LEGALIZACION == this.etapa && this.parametroFormatoPipe.LEGALIZACION != this.entidadSeleccionada.accion) {\n\t\t\tthis.notificacionesService.showInfo('No tiene permisos de edición.');\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.entidadSeleccionada.datoInicial == (Constantes.CONSTANTE_NO)) {\n\t\t\tthis.seleccionSucursalEntidad.showDialog = true;\n\t\t\t//getBean(PopupSucursalEntidad.class).buscar('#{actosIngresoBean.retornoSucursalEntidad}', entidadSeleccionada.tipoServicio, null);\n\t\t} else {\n\t\t\tconsole.log('pasa hasta aca seleccionar entidad')\n\n\t\t\tvar entidadEmpleado = new EntidadEmpleadoModel();\n\t\t\tentidadEmpleado.tipoServicio = this.entidadSeleccionada.tipoServicio;\n\t\t\tif (this.entidadSeleccionada.sucursal != null) {\n\t\t\t\tentidadEmpleado = this.cargarDatosEntidadEmpleado();\n\t\t\t}\n\t\t\tconsole.log('pasa hasta aca seleccionar entidad')\n\n\t\t\tthis.popupEntidadDatosBasicosEmpleado.init();\n\t\t\tthis.popupEntidadDatosBasicosEmpleado.nuevo = true;\n\t\t\tthis.popupEntidadDatosBasicosEmpleado.puedeActualizar = true;\n\t\t\tawait this.popupEntidadDatosBasicosEmpleado.setTraerEntidad(entidadEmpleado);\n\t\t\tawait this.popupEntidadDatosBasicosEmpleado.buscar( Constantes.ACTOS_TEXTO, null, 'Actos');\n\t\t\tthis.mostrarPopupEntidadDbe = true;\n\t\t\tconsole.log('pasa hasta aca seleccionar entidad')\n\t\t}\n\n\t}\n\n\tprivate cargarDatosEntidadEmpleado(): EntidadEmpleadoModel {\n\t\tvar entidadEmpleado = new EntidadEmpleadoModel();\n\t\t\n\t\tentidadEmpleado.identificacion = this.actoCambioEmpleadoBorrarDTO.hojaVida;\n\t\tentidadEmpleado.entidad = this.entidadSeleccionada.entidad;\n\t\tentidadEmpleado.sucursal = this.entidadSeleccionada.sucursal;\n\t\tentidadEmpleado.nombreEntidad = this.entidadSeleccionada.nombreEntidad;\n\t\tentidadEmpleado.nombreSucursal = this.entidadSeleccionada.nombreSucursal;\n\t\tentidadEmpleado.sucReferencia = this.entidadSeleccionada.sucreferencia;\n\t\tentidadEmpleado.referencia = this.entidadSeleccionada.referencia;\n\t\tentidadEmpleado.valor = this.entidadSeleccionada.valor;\n\t\tentidadEmpleado.tipo = this.entidadSeleccionada.tipo;\n\t\tentidadEmpleado.beneficiario = this.entidadSeleccionada.beneficiario;\n\t\tentidadEmpleado.tipoReferencia = this.entidadSeleccionada.tipoReferencia;\n\t\tentidadEmpleado.tipoServicio = this.entidadSeleccionada.tipoServicio;\n\t\tconsole.log(this.entidadSeleccionada)\n\t\tentidadEmpleado.entidadAux = this.utilsService.rightpad(this.entidadSeleccionada.entidadAux, 10, ' ');\n\t\tentidadEmpleado.ciudad = this.utilsService.rightpad(this.entidadSeleccionada.ciudad, 8, ' ');\n\t\t\n\t\treturn entidadEmpleado;\n\t}\n\n\tpublic setRetornoSucursalEntidad(sucursal: ServicioEntidadExternaModel) {\n\t\tthis.entidadSeleccionada.entidad = sucursal.entidad;\n\t\tthis.entidadSeleccionada.sucursal = sucursal.sucursal;\n\t\tthis.entidadSeleccionada.nombreEntidad = sucursal.nombreEntidad;\n\t\tthis.entidadSeleccionada.nombreSucursal = sucursal.nombreSucursal;\n\t\tthis.seleccionSucursalEntidad.showDialog = false;\n\t}\n\n\tpublic setRetornoEntidadEmpleado(entidadEmpleado: EntidadEmpleadoModel) {\n\t\tconsole.log('setRetornoEntidadEmpleado')\n\t\tconsole.log(entidadEmpleado)\n\t\tif ( entidadEmpleado == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.entidadSeleccionada.entidad = entidadEmpleado.entidad;\n\t\tthis.entidadSeleccionada.sucursal = entidadEmpleado.sucursal;\n\t\tthis.entidadSeleccionada.nombreEntidad = entidadEmpleado.nombreEntidad;\n\t\tthis.entidadSeleccionada.nombreSucursal = entidadEmpleado.nombreSucursal;\n\t\tthis.entidadSeleccionada.sucreferencia = entidadEmpleado.sucReferencia;\n\t\tthis.entidadSeleccionada.referencia = entidadEmpleado.referencia;\n\t\tthis.entidadSeleccionada.valor = entidadEmpleado.valor;\n\t\tthis.entidadSeleccionada.tipo = entidadEmpleado.tipo;\n\t\tthis.entidadSeleccionada.beneficiario = entidadEmpleado.beneficiario;\n\t\tthis.entidadSeleccionada.tipoReferencia = entidadEmpleado.tipoReferencia;\n\t\tthis.entidadSeleccionada.entidadAux = entidadEmpleado.entidadAux;\n\t\tthis.entidadSeleccionada.ciudad = entidadEmpleado.ciudad;\n\t\tthis.mostrarPopupEntidadDbe = false;\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la lista para campo\n\t */\n\tprivate async crearFormularioListaParaCampo() {\n\t\tvar unidadMasivo: boolean = false;\n\t\tvar cargoMasivo: boolean = false;\n\t\tthis.mostrarCosteo=false;\n\t\tthis.listaDatosPlanta = [];\n\n\t\tthis.mapaCamposMasivo = new Map<string, string>();\n\t\tthis.mapaCamposMasivoDesc = new Map<string, string>();\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\t\tif (this.formularioDinamico) {\n\t\t\tthis.formularioDinamico.limpiar();\n\t\t\tthis.formularioDinamico.camposCaracteristicaClear();\n\t\t\n\t\t}\n\t\tawait this.cargarLista();\n\t\tfor (let dato of this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos) {\n\t\t\tif ( dato.campo == (this.parametroFormatoPipe.FECHA_FINAL_ITEM) ||\n\t\t\t\t\tdato.campo == (this.parametroFormatoPipe.FECHA_DOC_ITEM) ||\n\t\t\t\t\tdato.campo == (this.parametroFormatoPipe.NUMERO_DOC_ITEM)) {\n\t\t\t\tthis.listaDatosPlanta.push(dato);\n\t\t\t\tthis.mapaCamposMasivo.set(dato.campo, dato.accion);\n\t\t\t\tthis.mapaCamposMasivoDesc.set(dato.campo, dato.mensaje);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcampos2.forEach(async campo => {\n\t\t\t\tif (campo.descripcion != (dato.campo.trim())) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\tthis.validarPresentacionCampoFormularioDinamico(dato.accion, campo);\n\t\t\t\t\n\t\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\t\t\n\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != Constantes.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\tcampo.orden = dato.orden;\n\t\t\t\tthis.campos.push(campo);\n\t\t\t\treturn;\n\t\t\t})\n\t\t}\n\t\tif (this.isProcesoMasivo()) {\n\t\t\tfor (let dato of this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaPuesto) {\n\t\t\t\tif ( this.parametroFormatoPipe.INGRESARINFO_AMBOS == (dato.accion ) || this.parametroFormatoPipe.INGRESARINFO_ITEM == (dato.accion ) ) {\n\t\t\t\t\tthis.mapaCamposMasivo.set(dato.campo, dato.datoInicial);\n\t\t\t\t\tthis.mapaCamposMasivoDesc.set(dato.campo, dato.mensaje);\n\t\t\t\t\tthis.listaDatosPlanta.push(dato);\n\t\t\t\t\tif ( dato.campo == (this.parametroFormatoPipe.COSTEO)) {\n\t\t\t\t\t\tvar adicional: FormatoDatoModel = Object.assign({}, dato);\n\t\t\t\t\t\tadicional.campo = 'CENTRO';\n\t\t\t\t\t\tthis.listaDatosPlanta.push(adicional);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ( !(this.parametroFormatoPipe.INGRESARINFO_AMBOS == (dato.accion ) || this.parametroFormatoPipe.INGRESARINFO == (dato.accion )) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( dato.campo == (this.parametroFormatoPipe.UNIDAD) ) {\n\t\t\t\t\tunidadMasivo=true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( dato.campo == (this.parametroFormatoPipe.CARGO)) {\n\t\t\t\t\tcargoMasivo=true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( dato.campo == (this.parametroFormatoPipe.COSTEO)) {\n\t\t\t\t\tthis.mostrarCosteo=true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcampos2.forEach(async campo => {\n\t\t\t\t\tif (campo.descripcion != (dato.campo.trim())) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t\tthis.validarPresentacionCampoFormularioDinamico(dato.accion, campo);\n\t\t\t\t\t\n\t\t\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\t\t\t\n\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != Constantes.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\t\tcampo.orden = dato.orden;\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t\treturn;\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\tif ( (!this.isProcesoMasivo()) || unidadMasivo ) {\n\t\t\tvar campo: CampoFormularioModel = new CampoFormularioModel(this.campoFormularioPipe.POPUP, this.translateService.instant('unidad'), 12, 0, 'unidad', false, null, 'popupUnidadUsuarioBean',this.parametroFormatoPipe.ESEDITABLE);\n\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\tif (this.origenContratacion) {\n\t\t\t\tcampo.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\t\tcampo.campoReferencia = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t\t}\n\t\t\t\n\t\t\tcampo.obligatorio = true;\n\t\t\tcampo.orden = 999;\n\t\t\tthis.campos.push(campo);\n\t\t}\n\n\t\tif ( (!this.isProcesoMasivo()) || cargoMasivo ) {\n\t\t\tvar campo: CampoFormularioModel = new CampoFormularioModel(this.campoFormularioPipe.POPUP, this.translateService.instant('cargo'), 8, 0, 'cargo', false, null, 'popupCargo', this.parametroFormatoPipe.ESEDITABLE);\n\t\t\tif ( (Constantes.CONSTANTE_SI != (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico)) \n\t\t\t\t&& ( (!this.isProcesoMasivo()) || unidadMasivo) ) {\n\t\t\t\tcampo.campoDepende = 'unidad';\n\t\t\t\tcampo.campoReferenciaDos = this.actoCambioEmpleadoBorrarDTO.formatoDTO.disponible;\n\t\t\t}\n\t\t\tif (this.origenContratacion) {\n\t\t\t\tcampo.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\t\tcampo.campoReferencia = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t\t}\n\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\tcampo.obligatorio = true;\n\t\t\tcampo.orden = 1000;\n\t\t\tthis.campos.push(campo);\n\t\t}\n\t\tthis.formularioEditable = true;\n\t\tthis.formularioDinamico?.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\tthis.verUnidadCargo();\n\n\t\t/**\n\t\t * iniciamos las variables de TABLA1, TABLA2, TABLA3 si deben o no mostrarse\n\t\t **/\n\t\tthis.iniciarVisualizacionTablas();\n\t\tawait this.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos);\n\t\tawait this.setValorCampos();\n\t\tconsole.log(this.campos)\n\t}\n\n\tprivate async cargarLista() {\n\t\tthis.listaTurno = await this.selectListCompensa.getListadoTurno();\n\t\tthis.listadoClasificacion = await this.selectListCompensa.getListaRoles(new ClasificacionModel());\n\t\tthis.listaTipoPeriodo = await this.selectListCompensa.getListadoTipoPeriodoConRolAcceso();\n\t\tthis.listadoVinculacion = await this.selectListCompensa.getListadoVinculacionLaboral();\n\t\tthis.listaLineaCosto = await this.selectListCompensa.getListaLineaCosto();\n\t\tthis.listaUbicacion = await this.selectListCompensa.getListaUbicacionFisica();\n\t}\n\n\tprivate async cargarDatosCampoFormulario(campo: CampoFormularioModel)  {\n\t\tlet formato = this.actoCambioEmpleadoBorrarDTO.formato;\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUSTITUCION)) {\n\t\t\tif (this.filtrarContratosAnteriores) {\n\t\t\t\tvar listaEmpresas: any[] = await this.selectListActos.getListadoEmpresaActoIngreso();\n\t\t\t\tvar campoEmpresaAnt: CampoFormularioModel = new CampoFormularioModel(this.campoFormularioPipe.COMBO, this.parametroFormatoPipe.EMPRESA_ANT, 22, 0, 'empresaAnt', false, null,\n\t\t\t\t\t\tConstantes.ESPACIO_NULO, Constantes.CONSTANTE_SI);\n\t\t\t\tcampoEmpresaAnt.descripcion = 'Empresa Anterior';\n\t\t\t\tcampoEmpresaAnt.descripcionAdicional = 'Empresa Anterior';\n\t\t\t\tcampoEmpresaAnt.lista = listaEmpresas;\n\t\t\t\tthis.campos.push(campoEmpresaAnt);\n\t\t\t\tcampo.campoDepende = 'empresaAnt';\n\t\t\t\tcampo.campoReferencia = this.actoCambioEmpleadoBorrarDTO.hojaVida;\n\t\t\t\tcampo.campoReferenciaDos = this.actoCambioEmpleadoBorrarDTO.empresaAnt;\n\t\t\t} else {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.empresaAnt = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.CONTRATO_CAUSANTE)) {\n\t\t\tvar listaEmpresas: any[] = await this.selectListActos.getListadoEmpresaActoIngreso();\n\t\t\tvar campoEmpresaAnt: CampoFormularioModel = new CampoFormularioModel(this.campoFormularioPipe.COMBO, this.parametroFormatoPipe.EMPRESA_ANT, 22, 0, 'empresaAnt', false, null,\n\t\t\t\t\tConstantes.ESPACIO_NULO, Constantes.CONSTANTE_SI);\n\t\t\tcampoEmpresaAnt.descripcion = 'Empresa Anterior';\n\t\t\tcampoEmpresaAnt.descripcionAdicional = 'Empresa Anterior';\n\t\t\tcampoEmpresaAnt.lista = listaEmpresas;\n\t\t\tthis.campos.push(campoEmpresaAnt);\n\t\t\tcampo.campoDepende = 'empresaAnt';\n\t\t\tcampo.campoReferencia = this.actoCambioEmpleadoBorrarDTO.hojaVida;\n\t\t}\n\t\t\n\t\tif(campo.descripcion == (this.parametroFormatoPipe.PROYECTO)){\n\t\t\tcampo.campoReferencia = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t}\n\t\t\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TURNO)) {\n\t\t\tcampo.lista = (this.listaTurno);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.PERIODO)) {\n\t\t\tcampo.lista = (this.listaTipoPeriodo);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.VINCULACION)) {\n\t\t\tcampo.lista = (this.listadoVinculacion);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.LINEA)) {\n\t\t\tcampo.lista = (this.listaLineaCosto);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.UBICACION)) {\n\t\t\tcampo.lista = (this.listaUbicacion);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.CLASIFICACION)) {\n\t\t\tcampo.lista = (this.listadoClasificacion);\n\t\t}\n\t\t\n\t\t//CARGAMOS EL COMBO PARA CADA CAMPO\t\t\t\t\t\t\t\t\t\t\n\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n\t\t\tvar formatoDatoDTO: FormatoDatoModel = new FormatoDatoModel();\n\t\t\tformatoDatoDTO.formato = formato;\n\t\t\tformatoDatoDTO.tipo = 'TD';\n\t\t\tvar listaFormatoDatoDocumentoItem: any[] = this.selectListActos.getSelectItemFormatoDatoDocumentoItem(await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, formatoDatoDTO)).toPromise());\n\t\t\tcampo.lista = (listaFormatoDatoDocumentoItem);\t\t\t\t\t\t\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\tvar listaFirmaDocumentoItem: any[];\n\t\t\tif(this.controlFuncionService.getControlFuncionalidad('actadm:filuni')) {\n\t\t\t\tlistaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).toPromise());\n\t\t\t}else {\n\t\t\t\tlistaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato})).toPromise());\n\t\t\t}\n\t\t\tcampo.lista = (listaFirmaDocumentoItem);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\tvar listaSucursalItem: any[] = this.selectListActos.getListaSucursaActo(await this.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', 'LoginAccesoSara.consultarListaVistaSucursal', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), aliasRol: this.authService.getTokenKey('aliasRol'), login: this.authService.getTokenKey('usuario')})).toPromise());\n\t\t\tcampo.lista = (listaSucursalItem);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.ROL)) {\n\t\t\tvar rolesDTO = new RolesModel();\n\t\t\trolesDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\tvar listaRoloItem: any[] = this.selectListActos.getSelectItemRolItem(await this.generalService.queryForList(new GeneralModel('RolesDTO', null, false, rolesDTO)).toPromise());\n\t\t\tcampo.lista = (listaRoloItem);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)) {\n\t\t\tvar listaTipoCambioItem = this.selectListActos.getSelectItemTipoCambioItem(await this.generalService.queryForList(new GeneralModel('TipoCambioEmpleadoDTO', 'TipoCambio.consultarListaTipoCambio', false, {tipo: this.parametroFormatoPipe.ACTO_INGRESO})).toPromise());\n\t\t\tcampo.lista = (listaTipoCambioItem);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\tvar listaSoporteItem = this.selectListActos.getSelectItemSoporteItem(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarListaSoporteDocumento', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),formato: formato, tipoSoporte: 'W'})).toPromise());\n\t\t\tcampo.lista = (listaSoporteItem);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIEMPO_TIPO_HORARIO)) {\n\t\t\tvar listaTipoHorarioDTO: TipoHorarioModel[] = await this.generalService.queryForList(new GeneralModel('TipoHorarioDTO', null, false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), organizacion: 1, tipo: 'SE'})).toPromise();\n\t\t\tvar listaTiempoTipoHorario = [];\n\t\t\tlistaTipoHorarioDTO.forEach(tipoHorarioDTO => {\n\t\t\t\tlistaTiempoTipoHorario.push({value: tipoHorarioDTO.llaveTabla, label: tipoHorarioDTO.descripcion});\n\t\t\t})\n\t\t\tcampo.lista = (listaTiempoTipoHorario);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIEMPO_TIPO_LIQUIDA)) {\n\t\t\tvar listaTiempoTipoLiquidacion = [];\n\t\t\tvar listaTipoLiquidacion: TipoLiquidacionTiempoModel[] = await this.generalService.queryForList(new GeneralModel('TipoLiquidacionTiempoDTO', null, false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), organizacion: 1})).toPromise();\n\t\t\tlistaTipoLiquidacion.forEach(tipoLiquidacionTiempoDTO => {\n\t\t\t\tlistaTiempoTipoLiquidacion.push({value: tipoLiquidacionTiempoDTO.llaveTabla, label: tipoLiquidacionTiempoDTO.descripcion});\n\t\t\t})\n\t\t\tcampo.lista = (listaTiempoTipoLiquidacion);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIEMPO_GRUPO)) {\n\t\t\tvar listaTiempoGrupo = [];\n\t\t\tvar listadoGrupoDTO: CodigoBaseTiempoModel[] = await this.generalService.queryForList(new GeneralModel('CodigoBaseTiempoDTO', null, false, {modoParametro: (await  this.saraAplicacionService.getEmpresa()).modoCompensacion})).toPromise() ;\n\t\t\tlistadoGrupoDTO.forEach(unCodigoBase => {\n\t\t\t\tlistaTiempoGrupo.push({value: unCodigoBase.llaveTabla, label: unCodigoBase.descripcion});\n\t\t\t})\n\t\t\tcampo.lista = (listaTiempoGrupo);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIEMPO_TIPO_SITIO)) {\n\t\t\tvar listaTiempoTipoSitio = this.personaPipe.mapaTipoSitio2;\n\t\t\tcampo.lista = (listaTiempoTipoSitio);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_1)) {\n\t\t\tvar listaAdicional1= await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_1);\n\t\t\tcampo.lista = (listaAdicional1);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_2)) {\n\t\t\tvar listaAdicional2 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_2);\n\t\t\tcampo.lista = (listaAdicional2);\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_3)) {\n\t\t\tvar listaAdicional3 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_3);\n\t\t\tcampo.lista = (listaAdicional3);\n\t\t}\n\t\tif(campo.descripcion == (this.parametroFormatoPipe.ELIMINAR_PUESTO)){\n\t\t\tvar listaEliminarPuesto = []; \n\t\t\tlistaEliminarPuesto = [{value: 'S', label: 'Si'}, {value: 'N', label: 'No'}];\n\t\t\tcampo.lista = (listaEliminarPuesto);\n\t\t}\n\t\telse if(campo.descripcion == (this.parametroFormatoPipe.SEMESTRE)){\n\t\t\tcampo.campoReferencia = 'C';\n\t\t}\n\t}\n\t\n\tprivate async adicionarCamposSolicitudFinal(etapaFormulario: string)  {\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.forEach(dato => {\n\t\t\tcampos2.forEach(async campo => {\n\t\t\t\tif (campo.descripcion != dato.campo.trim()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != Constantes.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\tcampo.idGrupoPertenece = etapaFormulario;\n\t\t\t\tthis.campos.push(campo);\n\t\t\t})\n\t\t})\n\t\tawait this.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal);\n\t\tthis.formularioEditable = true;\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\t//this.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, this.campoFormularioPipe.GRUPO_FINAL);\n\t}\n\t\n\tprivate validarPresentacionCampoFormularioDinamico(accion: string, campo: CampoFormularioModel) {\n\t\tif (accion != null && accion.trim() != this.parametroFormatoPipe.INGRESARE) {\n\t\t\tcampo.obligatorio = false;\n\t\t}\n\t\t// verificamos si el campo solo se pude visualizar\n\t\tif (accion != null && accion.trim() == this.parametroFormatoPipe.VISUALIZAR) {\n\t\t\tcampo.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\tcampo.obligatorio = false;\n\t\t}\n\t}\n\t\n\tpublic async siguienteAdicional() {\n\t\t/**\n\t\t * Validamos los campos listaparacampos de que esten correctamente adicionados Validamos la seleccion de una unidad y un cargo Con el formulario dinamico validamos la listaparacampos La\n\t\t * unidad y el cargo si la debemos validar con aqui\n\t\t */\n\t\tconsole.log(\"entra siguienteAdicional\")\n\t\tif (!this.formularioDinamico.validar()) {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\treturn true;\n\t\t}\n\t\tvar lista = this.actoCambioEmpleadoBorrarDTO.listaActosHijos;\n\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos = lista;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO.llaveActoBase = this.actoCambioEmpleadoBorrarDTO.llave;\n\n\t\tif (this.actoCambioEmpleadoBorrarDTO.tipoCambio == null || this.actoCambioEmpleadoBorrarDTO.tipoCambio.trim() == Constantes.PUNTO) {\n\t\t\tif ( this.formularioDinamico.obtenerCampo('tipoCambio') != null ) {\n\t\t\t\tthis.notificacionesService.showWarning('Tipo de cambio ingreso no definido');\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif ( this.actoCambioEmpleadoBorrarDTO.formatoDTO  != null && Constantes.CONSTANTE_SI == (this.actoCambioEmpleadoBorrarDTO.formatoDTO.definitivo) ) {\n\t\t\t\tthis.notificacionesService.showInfo('Tipo de cambio ingreso no definido');\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tif ( this.isProcesoMasivo()) {\n\t\t\tif ( this.actoCambioEmpleadoBorrarDTO.listaActosHijos.length == 0) {\n\t\t\t\tthis.notificacionesService.showInfo('No se presentaron registros relacionados');\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tvar acto = await this.actoCambioEmpleadoService.elaborarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = acto;\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.mensaje != null\t&& this.actoCambioEmpleadoBorrarDTO.mensaje.trim().length != 0) {\n\t\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tawait this.procesoCombinacion();\n\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t\tawait this.pasoSiguiente();\n\t\t\treturn true;\n\t\t}\n\t\tlet respuestaForeach: boolean ;\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.forEach(unaEntidad => {\n\t\t\tif (Constantes.CONSTANTE_SI != unaEntidad.obligatorio) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.parametroFormatoPipe.ETAPA_LEGALIZACION != this.etapa && this.parametroFormatoPipe.LEGALIZACION == unaEntidad.accion) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (unaEntidad.nombreEntidad == null) {\n\t\t\t\tthis.notificacionesService.showInfo('Tipo de servicio no relaconado -' + unaEntidad.tipoServicio);\n\t\t\t\trespuestaForeach = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t})\n\t\tif (respuestaForeach){\n\t\t\treturn respuestaForeach;\n\t\t}\n\t\tawait this.cargarDescripcionesUnidadYcargo();\n\n\t\t// colocamos los valores del formulario en el dto que tenemos en el formulario dinamico\n\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico == null || this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoAutomatico != Constantes.CONSTANTE_SI) {\n\t\t\tif (this.utilsService.isBlank(this.actoCambioEmpleadoBorrarDTO.llavePuesto) && this.actividadFuenteTareaDTO == null ){\n\t\t\t\tawait this.popupSeleccionPuesto.traerPuesto(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto);\n\t\t\t\t//PopupSeleccionPuestoBean.Popup().traerPuesto(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto, '#{actosIngresoBean.retornoPuesto}');\n\t\t\t}else{\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n\t\t\t\tawait this.pasoSiguiente();\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async setRetornoPuesto(dato: string) {\n\t\tconsole.log('setRetornoPuesto')\n\t\tconsole.log(dato)\n\t\tif (dato == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n\t\tawait this.pasoSiguiente();\n\t}\n\n\tprivate async cargarDescripcionesUnidadYcargo()  {\n\t\tvar unidadOrganizacionalDTO = await this.generalService.queryForObject(new GeneralModel('UnidadOrganizacionalDTO', null, false, {unidad: this.actoCambioEmpleadoBorrarDTO.unidad, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))})).toPromise();\n\n\t\tif (unidadOrganizacionalDTO != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUnidad = unidadOrganizacionalDTO.nombreUnidad;\n\t\t}\n\n\t\tvar cargoDTO = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, {cargo: this.actoCambioEmpleadoBorrarDTO.cargo, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))})).toPromise();\n\n\t\tif (cargoDTO != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCargo = cargoDTO.descripcion;\n\t\t}\n\t}\n\n\t/**\n\t * Metodo que controla el proceso de legalizacion Validando los campos de listaparacamposlegaliza\n\t */\n\tpublic async siguienteDatosLegalizar() {\n\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\t// VALIDAMOS LA INCLUISION DE LISTAPARACAMPOLEGALIZA\n\t\t\t//FormularioDinamico dinamico = this.formularioDinamico;\n\t\t\tif (!this.formularioDinamico.validar()) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t/**\n\t\t\t * Si paso las validaciones hacemos una actualizacion del registro actoCambioEmpleadoBorrarDTO\n\t\t\t */\n\t\t\tvar lista: ActoCambioEmpleadoModel[] = this.actoCambioEmpleadoBorrarDTO.listaActosHijos;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos = lista;\n\t\t\t \n\t\t\t//await this.generalService.update(new GeneralModel('ActoCambioEmpleadoDTO', null, false, this.actoCambioEmpleadoBorrarDTO)).toPromise();\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.procesoCombinacion();\n\t\t} else if (this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t\tawait this.procesoCombinacion();\n\t\t}\n\t}\n\n\t/**\n\t * \n\t */\n\tpublic async siguienteBuscarOtro() {\n\t\tif (this.valorSeleccionadoSelectOneRadio == this.parametroFormatoPipe.OPCION_CON_PUESTO) {\n\t\t\tawait this.popupSeleccionPuesto.traerPuesto(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto);\n\t\t\t//PopupSeleccionPuestoBean.Popup().traerPuesto(this.actoCambioEmpleadoBorrarDTO, listaParaPuesto, '#{actosIngresoBean.retornoPuesto}');\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Determina si se deben solicitar los datos de Cargo y Unidad para el acto\n\t */\n\tprivate verUnidadCargo() {\n\t\tvar entradaCargo: boolean = false;\n\t\tvar entradaUnidad: boolean = false;\n\t\tthis.entradaContrato = false;\n\t\tfor (var dto of this.listaParaPuesto) {\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.CARGO)) {\n\t\t\t\tif ( this.isProcesoMasivo()) {\n\t\t\t\t\tentradaCargo = this.parametroFormatoPipe.INGRESARINFO_AMBOS == (dto.accion ) || this.parametroFormatoPipe.INGRESARINFO == (dto.accion );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tentradaCargo = dto.accion == (this.parametroFormatoPipe.INGRESARE);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.UNIDAD)) {\n\t\t\t\tif ( this.isProcesoMasivo()) {\n\t\t\t\t\tentradaUnidad = this.parametroFormatoPipe.INGRESARINFO_AMBOS == (dto.accion ) || this.parametroFormatoPipe.INGRESARINFO == (dto.accion );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tentradaUnidad = dto.accion == (this.parametroFormatoPipe.INGRESARE);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\tfor (var campo of this.campos) {\n\t\t\t\tif (campo.descripcion != null) {\n\t\t\t\t\tif (campo.campo == ('unidad')) {\n\t\t\t\t\t\tif (!entradaUnidad) {\n\t\t\t\t\t\t\tcampo.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcampo.obligatorio = entradaUnidad;\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.campo == ('cargo')) {\n\t\t\t\t\t\tif (!entradaCargo) {\n\t\t\t\t\t\t\tcampo.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcampo.obligatorio = entradaCargo;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\tthis.entradaContratoAction();\n\t}\n\t\n\tprivate async cargarVariableFormato(acto: string)  {\n\t\tthis.formularioDinamico.camposCaracteristicaClear();\n\t\t// Carga las variables del formato\n\t\tvar longitud: number = 0;\n\t\tvar campoVariable: CampoFormularioModel;\n\t\tvar tipoDato: string;\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listadoVariables.forEach(async variableConfigurada => {\n\t\t\ttipoDato = variableConfigurada.tipoDato;\n\t\t\tif ('A' == (variableConfigurada.tipoDato)) {\n\t\t\t\tlongitud = 100;\n\t\t\t\ttipoDato = 'T';\n\t\t\t} else if ('N' == (variableConfigurada.tipoDato)) {\n\t\t\t\tlongitud = 20;\n\t\t\t\ttipoDato = 'D';\n\t\t\t}\n\t\t\tcampoVariable = new CampoFormularioModel(tipoDato, variableConfigurada.titulo, longitud, 2, variableConfigurada.llave,Constantes.CONSTANTE_SI == (variableConfigurada.obligatorio), null, Constantes.ESPACIO_NULO, this.campoFormularioPipe.CAMPO_EDITABLE);\n\t\t\tcampoVariable.orden = variableConfigurada.orden;\n\t\t\tcampoVariable.campoTabla = variableConfigurada.llave;\n\t\t\tcampoVariable.caracteristica = true;\n\t\t\tif ('N' == (variableConfigurada.tipoDato)) {\n\t\t\t\tcampoVariable.valor = await this.actoIngresoService.traerValorContratacion({formatoDatoDTO: variableConfigurada, llaveContratacion: this.actoCambioEmpleadoBorrarDTO.contratacion});\n\t\t\t}\n\t\t\tthis.campos.push(campoVariable)\n\t\t\t//this.formularioDinamico.Grupos().(0).Campos().push(campoVariable);\n\t\t})\n\t\t\n\t\tif (this.utilsService.isNotBlank(acto)) {\n\t\t\tvar datoActoAdmonDTO = new DatoActoAdmonModel();\n\t\t\tdatoActoAdmonDTO.actoAdmon = acto;\n\t\t\tdatoActoAdmonDTO.tipoServicio = 'VF';\n\t\t\tvar datosVariables: DatoActoAdmonModel[] = await this.generalService.queryForList(new GeneralModel('DatoActoAdmonDTO', null, false, datoActoAdmonDTO)).toPromise();\n\n\t\t\tdatosVariables.forEach(variable => {\n\t\t\t\tif (variable.tipoReferencia == null) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, null, variable);\n\t\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.NUMERO) || variable.tipoReferencia == (this.campoFormularioPipe.DECIMAL)) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.valor, variable);\n\t\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.FECHA)) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.fecha, variable);\n\t\t\t\t} else if (variable.tipoReferencia == (this.campoFormularioPipe.TEXTO)) {\n\t\t\t\t\tthis.formularioDinamico.cargarValor(variable.formatoDato, variable.cadena, variable);\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\t\n\tprivate obtenerVariablesFormato(): DatoActoAdmonModel[] {\n\t\tvar listadoVariablesFormulario: CampoFormularioModel[] = this.formularioDinamico.getCamposCaracteristica();\n\t\tvar datosVariableFormato: DatoActoAdmonModel[] = [];\n\t\tvar datoActoAdmonDTO: DatoActoAdmonModel;\n\t\tif (listadoVariablesFormulario != null) {\n\t\t\tlistadoVariablesFormulario.forEach(variable => {\n\t\t\t\tdatoActoAdmonDTO = new DatoActoAdmonModel();\n\t\t\t\tdatoActoAdmonDTO.formatoDato = variable.campo;\n\t\t\t\tdatoActoAdmonDTO.tipoReferencia = variable.tipo;\n\t\t\t\tdatoActoAdmonDTO.tipoServicio = 'VF';\n\t\t\t\tif (variable.tipo == (this.campoFormularioPipe.NUMERO) || variable.tipo == (this.campoFormularioPipe.DECIMAL)) {\n\t\t\t\t\tif (variable.valor == null || variable.valor.toString() == Constantes.ESPACIO_NULO) {\n\t\t\t\t\t\tdatoActoAdmonDTO.valor = null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdatoActoAdmonDTO.valor = variable.valor;\n\t\t\t\t\t}\n\t\t\t\t} else if (variable.tipo == (this.campoFormularioPipe.FECHA)) {\n\t\t\t\t\tdatoActoAdmonDTO.fecha = new Date(variable.valor);\n\t\t\t\t} else {\n\t\t\t\t\tdatoActoAdmonDTO.cadena = variable.valor.toString();\n\t\t\t\t}\n\t\t\t\tdatosVariableFormato.push(datoActoAdmonDTO);\n\t\t\t})\n\t\t}\n\t\treturn datosVariableFormato;\n\t}\n\n\tprivate entradaContratoAction() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.definitivo == Constantes.CONSTANTE_SI && this.actoCambioEmpleadoBorrarDTO.formatoDTO.asignaContrato == 'M') {\n\t\t\tthis.entradaContrato = true;\n\t\t}\n\t}\n\n\tpublic mostrarDatosPlanta(modificar: boolean) {\n\t\tthis.actoCambioEmpleadoBorrarDTO.variablesActo = this.obtenerVariablesFormato();\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO)\n\t\tthis.utilsService.sleep(500).then(data => {\n\t\t\tif (modificar) {\n\t\t\t\tthis.actosDatosPuesto.mostrarDato(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto, this.llaveBase, '#{actosIngresoBean.continuarDatosPlanta}');\n\t\t\t} else {\n\t\t\t\tthis.actosDatosPuesto.mostrarDato(this.actoCambioEmpleadoBorrarDTO, this.listaParaPuesto, null, null);\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Método de retorno desde mostrarDatosPlanta\n\t * \n\t * @param tipoRegreso\n\t */\n\tpublic async setContinuarDatosPlanta(actoCambioRetorno) {\n\t\tconsole.log('setContinuarDatosPlanta')\n\t\tconsole.log(actoCambioRetorno)\n\t\tif ( actoCambioRetorno.retorno == 'salir' ) {\n\t\t\tthis.regresarActoAdmin();\n\t\t\treturn;\n\t\t}\n\t\tif ( actoCambioRetorno.retorno == 'regresar') {\n\t\t\tawait this.pasoAnterior();\n\t\t\treturn;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO = actoCambioRetorno.actoCambioEmpleadoDTO;\n\t\tawait this.procesoCombinacion();\n\t\tawait this.pasoSiguiente();\n\t}\n\n\t/**\n\t * Metodo que me genera el reporte pdf\n\t */\n\tpublic async procesoCombinacion() {\n\t\tvar data = await this.planillaService.combinarArchivo({llave: this.actoCambioEmpleadoBorrarDTO.llave, llavePlantilla: this.actoCambioEmpleadoBorrarDTO.soporte, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n\t\t\t\tborrarArchivo: false, llaveEmpresa: this.authService.getTokenKey('llaveEmpresa')}).toPromise();\n\t\tif (data?.respuesta){\n\t\t\tthis.archivoSalida = data.respuesta;\n\t\t}\n\t\tif (this.etapa != null && (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION || this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tthis.borrarRegistro();\n\t\t}\n\t}\n\n\t/**\n\t * Accion final que sea aplica sobre el acto administrativo de acuerdo con la etapa del proceso (ELABORACION/MODIFICACION, ELIMINACION, LEGALIZACION)\n\t */\n\tpublic async aplicarFinal() {\n\t\ttry {\n\t\t\tvar llaveSeguimiento = this.seguimiento ? this.utilsService.generarLlave() : null;\n\t\t\t\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.variablesActo = this.obtenerVariablesFormato();\n\t\t\t\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.legalizarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), etapa: this.etapa, llaveBase: this.llaveBase, seguimiento: llaveSeguimiento}).toPromise();\n\t\t\tif (!this.utilsService.isBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar data  = await this.actoCambioEmpleadoService.registrarAnexoHojaActoCambio({actoCambioDTO: this.actoCambioEmpleadoBorrarDTO, archivo: this.archivoSalida, llaveEliminar: this.llaveBase}).toPromise();\n\t\t\tvar archivoResultado;\n\t\t\tif (data?.respuesta) {\n\t\t\t\tarchivoResultado = data.respuesta;\n\t\t\t}\n\t\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION) {\n\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.estadoNumero == 6) {\n\t\t\t\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\n\t\t\t\t// Verificamos que el archivo de este acto se haya generado bien\n\t\t\t\tif (archivoResultado != null) {\n\t\t\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actosIngresoBean.terminar}', this.actoCambioEmpleadoBorrarDTO.formatoDTO, archivoResultado);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Muestra el popup de seguimiento. Al cerrarlo muestra el mensaje de éxito del proceso\n\t\t\tif (this.seguimiento) {\n\t\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actosIngresoBean.cierreProceso}');\n\t\t\t} else {\n\t\t\t\tthis.setCierreProceso(null);\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_ELABORACION || this.etapa == this.parametroFormatoPipe.ETAPA_MODIFICAR) {\n\t\t\t\tthis.borrarRegistro();\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Método de retorno del evento de cierre del popup de seguimiento Muestra mensaje de éxito del proceso\n\t * \n\t * @param objeto\n\t *            Se utiliza este parámetro para dar al método la forma de un método SET\n\t */\n\tpublic setCierreProceso(objeto: string) {\n\t\tvar titulo = this.etapa == this.parametroFormatoPipe.ETAPA_ELIMINACION ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\tthis.notificacionesService.showInfo(titulo);\n\t\tthis.setTerminar('');\n\t}\n\n\tpublic setTerminar(s) {\n\t\tthis.regresarActoAdmin();\n\t}\n\n\t/**\n\t * Metodo que borra el registro insertado cuando se genera algun error..\n\t */\n\tpublic borrarRegistro() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO != null) {\n\t\t \tthis.actoCambioEmpleadoService.borrarRegistroCambio({llave: this.actoCambioEmpleadoBorrarDTO.llave}).subscribe(data => {});\n\t\t}\n\t\t\n\t}\n\n\tpublic regresarActoAdmin() {\n\t\t\n\t\tif (this.parametroFormatoPipe.ETAPA_LEGALIZACION == this.etapa && this.isActoIngreso() && this.actoCambioEmpleadoBorrarDTO.formatoDTO.planilla != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.definitivo == Constantes.CONSTANTE_SI) {\n\t\t\tthis.vistaVisualizar = 'IR_PLANILLA_EMPLEADO';\n\t\t\t/*PlanillaIngresoEmpleadoBean planillaIngresoEmpleadoBean = (PlanillaIngresoEmpleadoBean) FacesUtils.Bean('planillaIngresoEmpleadoBean');\n\t\t\tif (origenContratacion) {\n\t\t\t\tDetalleContratacionBean detalleContratacionBean = (DetalleContratacionBean) FacesUtils.Bean('detalleContratacionBean');\n\t\t\t\tdetalleContratacionBean.LlaveRequisito(detalleContratacionBean.LlaveRequisito());\n\t\t\t\tdetalleContratacionBean.actualizarEstado(this.actoCambioEmpleadoBorrarDTO.llave);\n\t\t\t\tplanillaIngresoEmpleadoBean.ActoAdministrativoDTO(detalleContratacionBean.ActoAdministrativoDTO());\n\t\t\t}\n\t\t\tplanillaIngresoEmpleadoBean.OrigenContratacion(origenContratacion);\n\t\t\tplanillaIngresoEmpleadoBean.traerEmpleado(this.actoCambioEmpleadoBorrarDTO.empresa, actoCambioEmpleadoBorrarDTO.codigoEmpleado, this.actoCambioEmpleadoBorrarDTO.formatoDTO.Planilla(), actoCambioEmpleadoBorrarDTO.llave);\n\t\t\treturn null;*/\n\t\t}\n\t\tif (!this.origenContratacion) {\n\t\t\tthis.regresarAction.emit(false);\n\t\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t\t\treturn null;\n\t\t} \n\t\t\n\t\tvar llaveActo = this.actoCambioEmpleadoBorrarDTO.llave;\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.llave != null &&  this.actoCambioEmpleadoBorrarDTO.estadoNumero == 0  ) {\n\t\t\tllaveActo = null;\n\t\t}\n\t\t//getBean(DetalleContratacionBean.class).regresoActo(llaveActo);\n\t\treturn null;\n\t}\n\n\tpublic salir() {\n\t\tthis.etapa = null;\n\t\treturn this.regresarActoAdmin();\n\t}\n\n\tpublic async setFuncionario(hojaVidaDTO: HojaVidaModel) {\n\t\tconsole.log(hojaVidaDTO)\n\t\tthis.hojaVidaDTO = null;\n\t\tthis.actoItemBase = this.actoCambioEmpleadoBorrarDTO;\n\t\tif (hojaVidaDTO != null && hojaVidaDTO.identifica != null) {\n\t\t\tif ( this.actoItemBase == this.actoHijoAdicionar ) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos.forEach(unHijo => {\n\t\t\t\t\tif (unHijo.hojaVida == hojaVidaDTO.identifica) {\n\t\t\t\t\t\tthis.notificacionesService.showWarning('Hoja de vida existe')\n\t\t\t\t\t\t//Validador.adicionarMensaje('form_actoIngreso:idHijoActo:idNombreCompleto','Hoja vida existe');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tthis.actoItemBase.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\t\t\tthis.actoItemBase.empleado = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.mostrarFoto = true;\n\t\t\t\t//getBean(EmpleadoBean.class).HojaVidaDTO(hojaVidaDTO);\n\t\t\t\tthis.mostrarBuscarAntecesor = true;\n\t\t\t}\n\t\t\tthis.actoItemBase.documentoEmpleado = hojaVidaDTO.documento;\n\t\t\tthis.actoItemBase.hojaVida = hojaVidaDTO.identifica;\n\t\t\tthis.actoItemBase.nombreCompleto = hojaVidaDTO.nombreCompleto;\n\t\t\tthis.actoItemBase.nombreCompletoHojaVida = hojaVidaDTO.nombreCompleto;\n\t\t\tthis.hojaVidaDTO = hojaVidaDTO;\n\t\t\tif (this.hojaVidaDTO.identifica) {\n\t\t\t\t//pte porque genera error\n\t\t\t\t//this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna = await this.actoIngresoService.cargarListadoServicio({listaEntidadesExternas: this.actoCambioEmpleadoBorrarDTO.listaEntidadesExterna, cedula: this.hojaVidaDTO.identifica, empresa: this.actoCambioEmpleadoBorrarDTO.empresa}).toPromise();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic verPopupHojaVida(actoItem: ActoCambioEmpleadoModel) {\n\t\tthis.actoItemBase = actoItem;\n\t\t//getBean(PopupHojaVida.class).buscar('#{actosIngresoBean.funcionario}');\n\t}\n\n\tpublic setAntecesor(actoDTO: ActoIngresoAusenciaModel) {\n\t\tconsole.log(actoDTO)\n\t\tif (actoDTO != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.antesesor = actoDTO.llaveActo;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcion = actoDTO.descripcion;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.cambio = actoDTO.fechaInicio;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.fechafinal = actoDTO.fechaFin;\n\t\t\tthis.formularioEditable = true;\n\t\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\t\tthis.setValorCampos().then(data =>{})\n\t\t}\n\t}\n\n\tpublic verPopupAntecesor() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO.hojaVida == null) {\n\t\t\tthis.notificacionesService.showInfo('Seleccione un empleado primero');\n\t\t\treturn null;\n\t\t}\n\t\tvar actoDTO = new ActoIngresoAusenciaModel();\n\t\tactoDTO.formatoPadre = this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\tactoDTO.estado = (6);\n\t\tactoDTO.cedula = this.hojaVidaDTO.identifica;\n\t\tactoDTO.campoEstado = this.parametroFormatoPipe.PARAMETRO_L_AUSENCIA;\n\t\t//getBean(PopupAntecesorBean.class).buscar('#{actosIngresoBean.antecesor}', actoDTO, this.parametroFormatoPipe.TIPO_ACTO_INGRESO);\n\t}\n\n\t\n\tpublic verPopupReingreso() {\n\t\t//getBean(PopupReIngreso.class).buscar('#{actosIngresoBean.reIngreso}', mapaCamposMasivo);\n\t}\n\n\tpublic nuevoFuncionarioMasivo() {\n\t\t\n\t}\n\t\n\tpublic setReIngreso(listaActo: ActoCambioEmpleadoModel[]) {\n\t\tlistaActo.forEach(unDato => {\n\t\t\tvar existe: boolean = false;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos.forEach(unActo => {\n\t\t\t\tif (unActo.hojaVida == unDato.hojaVida) {\n\t\t\t\t\texiste = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t})\n\t\t\tif ( existe ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos.push(unDato);\n\t\t})\n\t}\n\t\n\tpublic isProcesoMasivo() {\n\t\tif (!this.actoCambioEmpleadoBorrarDTO){\n\t\t\treturn false;\n\t\t}\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.formatoDTO.masivo == null || this.generalPipe.SI != this.actoCambioEmpleadoBorrarDTO.formatoDTO.masivo) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO)) {\n\t\t\treturn this.parametroFormatoPipe.PRORROGATERMINACIONCONTRATO == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion\n\t\t\t|| this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion \n\t\t\t|| this.parametroFormatoPipe.INGRESODEFINITIVO == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion \n\t\t\t|| this.parametroFormatoPipe.INGRESOTEMPORAL == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_LICENCIA_COMISIONES)) {\n\t\t\treturn this.parametroFormatoPipe.LICENCIA_COMISION == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic isExisteArchivo() {\n\t\treturn this.archivoSalida != null;\n\t}\n\n\tpublic getEtapaElaboracion() {\n\t\treturn this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t}\n\n\tpublic getEtapaModificacion() {\n\t\treturn this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t}\n\n\tpublic isMostrarRegresar() {\n\t\tif (this.paso == null) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.paso == this.parametroFormatoPipe.PASO_ADICIONAL && this.isProcesoMasivo()) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic isVerDatosCedula() {\n\t\tif (this.parametroFormatoPipe.PASO_FINAL == this.paso) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.parametroFormatoPipe.PASO_LEGALIZAR != this.paso;\n\t}\n\n\tpublic isVerDatosAdicional() {\n\t\treturn this.parametroFormatoPipe.PASO_FINAL != this.paso;\n\t}\n\n\tpublic isVerBuscarOtro() {\n\t\treturn this.parametroFormatoPipe.PASO_BUSCAR_OTRO == this.paso;\n\t}\n\n\tpublic isVerDatosPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.PASO_DATO_PUESTO == this.paso;\n\t}\n\n\tpublic isVerLegalizar() {\n\t\treturn this.parametroFormatoPipe.PASO_LEGALIZAR == this.paso;\n\t}\n\n\tisActoIngreso() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipo != this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.parametroFormatoPipe.INGRESODEFINITIVO == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion\n\t\t\t\t|| this.parametroFormatoPipe.INGRESOTEMPORAL == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion\n\t\t\t\t|| this.parametroFormatoPipe.INGRESOJUBILADOSINNOMINA == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion\n\t\t\t\t|| this.parametroFormatoPipe.INGRESODEFIEMPALME == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t}\n\n\tisMostrarSeleccionAntecesor() {\n\t\treturn this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.formatoDTO != null \n\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0;\n\t}\n\n\tobtenerDatoAntecesor(): ActoIngresoAusenciaModel {\n\t\tvar actoDTO = new ActoIngresoAusenciaModel;\n\t\tif (!this.actoCambioEmpleadoBorrarDTO){\n\t\t\treturn actoDTO;\n\t\t}\n\t\tactoDTO.formatoPadre = this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\tactoDTO.estado = 6;\n\t\tactoDTO.cedula = this.actoCambioEmpleadoBorrarDTO.hojaVida;\n\t\tactoDTO.campoEstado = this.parametroFormatoPipe.TIPO_ACTO_INGRESO;\n\t\treturn actoDTO;\n\t}\n\n\tdescargarPDF(){\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.archivoSalida.replace('.docx', '.pdf'))).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.pdf';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\t\n\tdescargarDoc() {\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.archivoSalida) ).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.docx';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n        <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n        \n        <button pButton pRipple (click)=\"pasoAnterior()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" \n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n    </div>\n    <app-cabecera-hoja-vida [hojaVida]=\"hojaVidaDTO\" *ngIf=\"hojaVidaDTO.documento != null && hojaVidaDTO.documento != undefined\"></app-cabecera-hoja-vida>\n\n    <div class=\"p-fluid grid\" *ngIf=\"vistaVisualizar == null\">\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mb-2\">\n                    <!-- PASO 1 - DATOS CEDULA -->\n                    <p-fieldset *ngIf=\"isVerDatosCedula()\">\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid grid\">\n                            <!-- IDENTIFICACION -->\n                            <div class=\"col-12 md:col-12 lg:col-6 responsivetablet\" *ngIf=\"mostrarDatosCedulaCampos\">\n                                <app-input-helper-hoja-vida [ocultarBtnLimpiar]=\"!(paso == 'cedula' && !origenContratacion)\" [header]=\"'identificacion' | translate\"\n                                    [booleano]=\"utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.hojaVida) && validaPasoCedula\"\n                                    [label]=\"actoCambioEmpleadoBorrarDTO.documentoEmpleado ? (actoCambioEmpleadoBorrarDTO.documentoEmpleado + ' : ' + actoCambioEmpleadoBorrarDTO.nombreCompletoHojaVida) : ''\"\n                                    (onSelected)=\"setFuncionario($event)\" ></app-input-helper-hoja-vida>\n                            </div>\n                            <!-- CONTRATO -->\n                            <div class=\"col-12 md:col-12 lg:col-6\" *ngIf=\"entradaContrato\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"documento\" [(ngModel)]=\"actoCambioEmpleadoBorrarDTO.codigoEmpleado\" [readOnly]=\"paso != 'cedula' && mostrarBuscarAntecesor\"\n                                        [class]=\"!utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.codigoEmpleado) && validaPasoCedula ? 'ng-invalid ng-dirty' : ''\"\n                                        autocomplete=\"off\"  oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 22);\"  />\n                                    <label>{{'contrato' | translate}}*</label>\n                                </span>\n                            </div>\n\n                            <!-- ANTECESOR -->\n                            <div class=\"col-12 md:col-12 lg:col-6\" *ngIf=\"isMostrarSeleccionAntecesor()\">\n                                <app-popup-antecesor [nombreInput]=\"actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion\" [actoIngresoAusenciaDTO]=\"obtenerDatoAntecesor()\"\n                                    [booleano]=\"utilsService.validarCampoObligatorio(actoCambioEmpleadoBorrarDTO.antesesor) && validaPasoCedula\"\n                                    [label]=\"actoCambioEmpleadoBorrarDTO.descripcion ? (actoCambioEmpleadoBorrarDTO.descripcion) : ''\" [tipo]=\"parametroFormatoPipe.TIPO_ACTO_INGRESO\"\n                                    (onSelected)=\"setAntecesor($event)\" ></app-popup-antecesor>\n                            </div>\n                        </div>\n                    </p-fieldset>\n                </div>\n                <!-- PASO 2 - Datos Adicionales -->\n                <div  >\n                    <formulario-dinamico #formulario [editable]=\"formularioEditable\" [campos]=\"campos\" \n                        [objeto]=\"actoCambioEmpleadoBorrarDTO\" ></formulario-dinamico>\n                    <div *ngIf=\"mostrarCosteo\">\n                    </div>\n                </div>\n                <!-- Masivo -->\n                <div *ngIf=\"isProcesoMasivo()\">\n                    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped input-helper-datatable\">\n                        <ng-template pTemplate=\"caption\">\n                            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                <h4 class=\"text-xl mb-1\" >{{'funcionario' | translate}}</h4>\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" \n                                    (click)=\"nuevoFuncionarioMasivo()\" label=\"{{'link_nuevo' | translate}}\" ></button>\n                            </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        <ng-template pTemplate=\"header\">\n                            <tr>\n                                <th style=\"width:10%\">{{\"identifica\" | translate}}</th>\n                                <th style=\"width:90%\">{{\"detalle\" | translate}}</th>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-hijoActo>\n                            <tr>\n                                <td></td>\n                                <td></td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                </div>\n                <!-- TABLA ENTIDADES -->\n                <div *ngIf=\"mostrarEntidades && paso != 'cedula'\">\n                    <p-table #tablaGeneral dataKey=\"llaveAlterna\" [value]=\"actoCambioEmpleadoBorrarDTO.listaEntidadesExterna\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaEntidadesExterna.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"seleccionaEntidad($event)\" (onRowUnselect)=\"seleccionaEntidad($event)\">\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        <ng-template pTemplate=\"header\">\n                            <tr>\n                                <th>{{\"tiposervicio\" | translate}}</th>\n                                <th>{{\"entidadexterna\" | translate}}</th>\n                                <th>{{\"sucursal\" | translate}}</th>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-entidadExterna>\n                            <tr [pSelectableRow]=\"entidadExterna\">\n                                <td>{{entidadExterna.nombreServicio}}</td>\n                                <td>{{entidadExterna.nombreEntidad}}</td>\n                                <td>{{entidadExterna.nombreSucursal}}</td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                </div>\n                <!-- Tabla 1 -->\n                <div *ngIf=\"mostrarTabla1\">\n                    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla1DTO\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla1DTO.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla1DTO.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [columns]=\"columnasTabla1\"\n                        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"modificarPerfilTabla1($event)\" (onRowUnselect)=\"modificarPerfilTabla1($event)\">\n                        <ng-template pTemplate=\"caption\">\n                            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                <h4 class=\"text-xl mb-1\" >{{actoCambioEmpleadoBorrarDTO.tituloPerfilTabla1}}</h4>\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoPerfilTabla1()\" \n                                    *ngIf=\"editarListaTabla \" label=\"{{'link_nuevo' | translate}}\" ></button>\n                            </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"header\" let-columns=\"columnasTabla1\">\n                            <tr>\n                              <th *ngFor=\"let col of columnasTabla1\">{{col.header}}</th>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"body\" let-item let-columns=\"columnasTabla1\">\n                            <tr>\n                              <td [pSelectableRow]=\"item\" *ngFor=\"let col of columnasTabla1\">{{col.date ? (item[col.field] | date : ('formatofecha' |\n                                translate)) : item[col.field]}}</td>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"emptymessage\" let-columns=\"columnasTabla1\">\n                            <tr>\n                                <td [attr.colspan]=\"columnasTabla1.length\">\n                                    <p class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' |\n                                        translate}}</p>\n                                </td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                </div>\n                <!-- Tabla 2 -->\n                <div *ngIf=\"mostrarTabla2\">\n                    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla2DTO\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla2DTO.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla2DTO.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [columns]=\"columnasTabla2\"\n                        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"modificarPerfilTabla2($event)\" (onRowUnselect)=\"modificarPerfilTabla2($event)\">\n                        <ng-template pTemplate=\"caption\">\n                            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                <h4 class=\"text-xl mb-1\" >{{actoCambioEmpleadoBorrarDTO.tituloPerfilTabla2}}</h4>\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoPerfilTabla2()\" \n                                    *ngIf=\"editarListaTabla2\" label=\"{{'link_nuevo' | translate}}\" ></button>\n                            </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"header\" let-columns=\"columnasTabla2\">\n                            <tr>\n                              <th *ngFor=\"let col of columnasTabla2\">{{col.header}}</th>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"body\" let-item let-columns=\"columnasTabla2\">\n                            <tr>\n                              <td [pSelectableRow]=\"item\" *ngFor=\"let col of columnasTabla2\">{{col.date ? (item[col.field] | date : ('formatofecha' |\n                                translate)) : item[col.field]}}</td>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"emptymessage\" let-columns=\"columnasTabla2\">\n                            <tr>\n                                <td [attr.colspan]=\"columnasTabla2.length\">\n                                    <p class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' |\n                                        translate}}</p>\n                                </td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                </div>\n                <!-- Tabla 3 -->\n                <div *ngIf=\"mostrarTabla3\">\n                    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla3DTO\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla3DTO.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaPerfilTabla3DTO.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [columns]=\"columnasTabla3\"\n                        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"modificarPerfilTabla3($event)\" (onRowUnselect)=\"modificarPerfilTabla3($event)\">\n                        <ng-template pTemplate=\"caption\">\n                            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                <h4 class=\"text-xl mb-1\" >{{actoCambioEmpleadoBorrarDTO.tituloPerfilTabla3}}</h4>\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoPerfilTabla3()\" \n                                    *ngIf=\"editarListaTabla3\" label=\"{{'link_nuevo' | translate}}\" ></button>\n                            </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"header\" let-columns=\"columnasTabla3\">\n                            <tr>\n                              <th *ngFor=\"let col of columnasTabla3\">{{col.header}}</th>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"body\" let-item let-columns=\"columnasTabla3\">\n                            <tr>\n                              <td [pSelectableRow]=\"item\" *ngFor=\"let col of columnasTabla3\">{{col.date ? (item[col.field] | date : ('formatofecha' |\n                                translate)) : item[col.field]}}</td>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"emptymessage\" let-columns=\"columnasTabla3\">\n                            <tr>\n                                <td [attr.colspan]=\"columnasTabla3.length\">\n                                    <p class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' |\n                                        translate}}</p>\n                                </td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                </div>\n                <!-- Tabla Materia -->\n                <div *ngIf=\"mostrarTablaMateria\">\n                    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"actoCambioEmpleadoBorrarDTO.listaTablaMateria\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaTablaMateria.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaTablaMateria.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [columns]=\"columnasTablaMateria\"\n                        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"modificarTablaMateria($event)\" (onRowUnselect)=\"modificarTablaMateria($event)\">\n                        <ng-template pTemplate=\"caption\">\n                            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                <h4 class=\"text-xl mb-1\" >{{actoCambioEmpleadoBorrarDTO.tituloTablaMateria}}</h4>\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoPerfilTablaMateria()\" \n                                    *ngIf=\"editarListaTablaMateria\" label=\"{{'link_nuevo' | translate}}\" ></button>\n                            </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"header\" let-columns=\"columnasTablaMateria\">\n                            <tr>\n                              <th *ngFor=\"let col of columnasTablaMateria\">{{col.header}}</th>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"body\" let-item let-columns=\"columnasTablaMateria\">\n                            <tr>\n                              <td [pSelectableRow]=\"item\" *ngFor=\"let col of columnasTablaMateria\">{{col.date ? (item[col.field] | date : ('formatofecha' |\n                                translate)) : item[col.field]}}</td>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"emptymessage\" let-columns=\"columnasTablaMateria\">\n                            <tr>\n                                <td [attr.colspan]=\"columnasTablaMateria.length\">\n                                    <p class=\"p-3 font-medium emptymessage\">{{'mensajetablavacia' |\n                                        translate}}</p>\n                                </td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                </div>\n            </div>\n            <div class=\"flex justify-content-end\" *ngIf=\"paso != 'datopuesto'\">\n            <!--<button pButton pRipple class=\"p-button-secondary font-semibold ml-2 mb-0 mt-0\" *ngIf=\"isMostrarRegresar()\"\n                label=\"{{'link_regresar' | translate}}\" icon=\"pi pi-chevron-left\" (click)=\"pasoAnterior()\">\n            </button>-->\n            <!-- EL BOTON CONTINUAR SOLO SE MOSTRARA CUANDO SE ESTE REALIZANDO EL ACTO (CUANDO SE ESTE REALIZANDO EL PROCESO DE DATOS BASICOS Y DATOS ADICIONALES) -->\n            <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-chevron-right\" *ngIf=\"paso != 'final'\"\n                label=\"{{'link_continuar' | translate}}\" (click)=\"pasoSiguiente()\">\n            </button>\n            <button pButton pRipple class=\"p-button p-button-raised ml-2 mb-0 mt-0\" icon=\"pi pi-check\" *ngIf=\"paso == 'final'\"\n                label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicarFinal()\">\n            </button>\n            <!-- LOS DOS PRIMEROS BOTONES (SALIR  Y REGRESAR) SIEMPRE SE MOSTRARAN -->\n            <button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out p-2 pr-1\"\n                label=\"{{'link_salir' | translate}}\" (click)=\"salir()\">\n            </button>\n                \n            </div>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\" *ngIf=\"isVerBuscarOtro() || isVerDatosPuestoTrabajo() || paso == 'final'\">\n            <div class=\"p-fluid p-formgrid grid text-xs\" *ngIf=\"isVerBuscarOtro()\">\n                <div class=\"field col-12 md:col-6 lg:col-3 align-items-center\">\n                    <p-radioButton name=\"seleccionradiopuesto\" [value]=\"parametroFormatoPipe.OPCION_CON_PUESTO\" [(ngModel)]=\"valorSeleccionadoSelectOneRadio\" inputId=\"seleccionradiopuesto1\"></p-radioButton>\n                    <label class=\"mb-0 ml-2\" >{{parametroFormatoPipe.OPCION_CON_PUESTO_DES}}</label>\n                </div>\n                <div class=\"field col-12 md:col-3 lg:col-3 align-items-center\">\n                    <p-radioButton name=\"seleccionradiopuesto\" [value]=\"parametroFormatoPipe.OPCION_SIN_PUESTO\" [(ngModel)]=\"valorSeleccionadoSelectOneRadio\"\n                        inputId=\"seleccionradiopuesto2\"></p-radioButton>\n                    <label class=\"mb-0 ml-2\" >{{parametroFormatoPipe.OPCION_SIN_PUESTO_DES}}</label>\n                </div>\n            </div>\n            <div class=\"card pb-4\" *ngIf=\"(isVerDatosPuestoTrabajo() || paso == 'final') && !isProcesoMasivo() && etapa != parametroFormatoPipe.ETAPA_ELIMINACION\">\n                <div class=\"mt-2 mb-2\">\n                    <app-actos-datos-puesto (regresar)=\"setContinuarDatosPlanta($event)\" \n                    ></app-actos-datos-puesto>\n                </div>\n            </div>\n            <!-- BOTONES DE ACCION -->\n            <div class=\"flex justify-content-end mt-2\" *ngIf=\"paso == 'final' && archivoSalida\" >\n                <button pButton pRipple class=\"p-button-secondary font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" \n                    label=\"{{'descargar' | translate}} pdf\" (click)=\"descargarPDF()\">\n                </button>\n                <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" *ngIf=\"!controlFuncionService.getControlFuncionalidad('actadm:nodoc')\"\n                    label=\"{{'descargar' | translate}} doc\" (click)=\"descargarDoc()\">\n                </button>\n            </div>\n        </div>\n\n        \n    </div>\n \n    <div *ngIf=\"vistaVisualizar == 'IR_PLANILLA_EMPLEADO'\">\n    </div>\n\n    <p-dialog header=\"{{'entidad' | translate}}\" [(visible)]=\"mostrarPopupEntidadDbe\"\n        (onHide)=\"mostrarPopupEntidadDbe = false\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '60vw'}\">\n        <app-popup-entidad-datos-basicos-empleado #entidadDbe [mostrar]=\"mostrarPopupEntidadDbe\" [ocultarRegresar]=\"true\"\n            (regresar)=\"setRetornoEntidadEmpleado($event)\" ></app-popup-entidad-datos-basicos-empleado>\n    </p-dialog>\n    <app-input-helper-seleccion-sucursal-entidad #seleccionSucursalEntidad [tipoServicio]=\"entidadSeleccionada.tipoServicio\" [ocultarInput]=\"true\"\n        [header]=\"('entidadexterna' | translate) + '*'\" (onSelected)=\"setRetornoSucursalEntidad($event)\" >\n    </app-input-helper-seleccion-sucursal-entidad>\n    <app-popup-seleccion-puesto #popupSeleccionPuesto (regresar)=\"setRetornoPuesto($event)\"></app-popup-seleccion-puesto>\n    <app-popup-formato-tabla-formu-dinamico-actos #popupFormatoTabla (regresar)=\"setPerfilTabla($event)\" ></app-popup-formato-tabla-formu-dinamico-actos>\n    <app-popup-ingreso-materias #popupIngresoMateria (regresar)=\"setPerfilTablaMateria($event)\" ></app-popup-ingreso-materias>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { ActoCambioEmpleadoModel } from '../../../models/ActoCambioEmpleadoModel';\nimport { DatoorganizacionModel } from '../../../../talento/models/DatoorganizacionModel';\nimport { ActosAdminTablaModel } from '../../../models/ActosAdminTablaModel';\nimport { ActoAdministrativosPdfModel } from '../../../models/ActoAdministrativosPdfModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { FormatoService } from '../../../services/formato.service';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { SelectListActos } from '../../../services/select-list-actos.service';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { MostrarDatosCombinacionActoIngresoComponent } from '../mostrar-datos-combinacion-acto-ingreso/mostrar-datos-combinacion-acto-ingreso.component';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { RolesModel } from '../../../models/RolesModel';\nimport { ActoIngresoAusenciaModel } from '../../../models/ActoIngresoAusenciaModel';\nimport { PopupFormatoTablaFormuDinamicoActosComponent } from '../../../popups/popup-formato-tabla-formu-dinamico-actos/popup-formato-tabla-formu-dinamico-actos.component';\nimport { PopupIngresoMateriasComponent } from '../../../popups/popup-ingreso-materias/popup-ingreso-materias.component';\nimport { AsignaturaModel } from '../../../../jornadadocente/models/AsignaturaModel';\nimport { SemestreModel } from '../../../../jornadadocente/models/SemestreModel';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { PopupSubirArchivoActosComponent } from '../../../popups/popup-subir-archivo-actos/popup-subir-archivo-actos.component';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PopupAntecesorComponent } from '../../../popups/popup-antecesor/popup-antecesor.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, DatePipe } from '@angular/common';\nimport { CalendarModule } from 'primeng/calendar';\n\n@Component({\n    selector: 'app-actos-prorroga-temporal',\n    templateUrl: './actos-prorroga-temporal.component.html',\n    styleUrls: ['./actos-prorroga-temporal.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, CabeceraEmpleadoComponent, FieldsetModule, PrimeTemplate, InputHelperEmpleadoBotonComponent, FormsModule, InputTextModule, PopupAntecesorComponent, TableModule, TemplateTablaVaciaComponent, NgFor, MostrarDatosCombinacionActoIngresoComponent, PopupIngresoMateriasComponent, PopupSubirArchivoActosComponent, DatePipe, TranslateModule, FormulariodinamicoComponent, CalendarModule]\n})\nexport class ActosProrrogaTemporalComponent implements OnInit {\n\n  public mostrarFoto: boolean;\n\tpublic mostrarDatosCedulaCampos: boolean;\n\tpublic mostrarBuscarAntecesor: boolean;\n\tpublic seguimiento: boolean;\n\t\n\tpublic actoDtoPdf: ActoAdministrativosPdfModel;\n\t\n\tpublic mostrarDatosCedula: boolean;\n\tpublic mostrarDatosAdicional: boolean;\n\tpublic mostrarFinal: boolean;\n\tpublic habilitarCombosUnidadCargo: boolean;\n\tpublic mostrarTablaMateria: boolean;\n\tpublic editarListaTablaMateria: boolean;\n\t\n\tpublic listaFormatoDatoDocumentoItem: any[];\n\tpublic listaFirmaDocumentoItem: any[];\n\tpublic listaUnidadDocumentoItem: any[];\n\tpublic listaSucursalItem: any[];\n\tpublic listaRoloItem: any[];\n\tpublic listaTipoCambioItem: any[];\n\tpublic listaSoporteItem: any[];\n\tpublic listaCargoItem: any[];\n\tpublic listaUnidadItem: any[];\n\tpublic listaAdicional1: any[];\n\tpublic listaAdicional2: any[];\n\tpublic listaAdicional3: any[];\n\t\n\tpublic etapa: string=null;\n\tpublic accion: string=null;\n\tpublic descripcionGrupo: string\n\t\n\tpublic llaveBase: string=null;\n\tpublic paso: string=null;\n\tpublic pasoAnterior: string=null;\n\t\n\tpublic actoCambioEmpleadoBorrarDTO: ActoCambioEmpleadoModel;\n\tpublic actoHijoAdicionar: ActoCambioEmpleadoModel;\n\t\n\tpublic listaParaCampos: FormatoDatoModel[];\n\tpublic listaParaPuesto: FormatoDatoModel[];\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[];\n\tpublic listaDatoOrganizacionTablaMateria: DatoorganizacionModel[];\n\tpublic perfilTablasDTOGuardado: ActosAdminTablaModel;\n\tpublic mapaAccion: Map<String, String>;\n\t\n\tpublic mapaCamposMasivo: Map<String, String>;\n\t\n\tpublic llaveNombreArchivoProcesoCombinacion: string;\n\n\t/**\n\t * esta variable sera usada con el fin de navegar al modulo correcto Este\n\t * acto en lanzado desde modulos independiente y deacuerdo el modulo de\n\t * donde vengo, asi mismo debo volver al modulo. Si esta variable llegase a\n\t * ser null, entonces sera direccionada al Modulo Actos Administrativo de lo\n\t * contrario sera direccionada al modulo que lo llama\n\t */\n\tpublic deDondeVengo: string;\n\tpublic vistaVisualizar: string;\n  \tpublic campos:CampoFormularioModel[] = [];\n\tpublic validaPasoCedula: boolean = false;\n\tpublic clickGuardarFuncionario: boolean = false;\n\n\t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\t@ViewChild('mostrarDatosCombinacionActoIngreso') mostrarDatosCombinacionActoIngreso: MostrarDatosCombinacionActoIngresoComponent;\n \t//@ViewChild('infoDatosPlanta') infoDatosPlanta: InfoDatosPlantaComponent;\n\t@ViewChild(PopupFormatoTablaFormuDinamicoActosComponent) popupFormatoTabla: PopupFormatoTablaFormuDinamicoActosComponent;\n\t@ViewChild(PopupIngresoMateriasComponent) popupIngresoMateria: PopupIngresoMateriasComponent;\n\t@ViewChild('inputEmpleado') inputEmpleado: InputHelperEmpleadoBotonComponent;\n\t@ViewChild(PopupSubirArchivoActosComponent) popupSubirArchivo: PopupSubirArchivoActosComponent;\n\t@Input() public tipoSeleccionado: string;\n\t@Output() regresarAction:  EventEmitter<any> = new EventEmitter();\n\n  \tpublic mostrarDatosCombinacion: boolean;\n\tpublic mostrar: boolean = false;\n\tpublic empleadoDTO: EmpleadoModel = new EmpleadoModel();\n\tpublic columnasTablaMateria: any[] = [];\n\tpublic cedulaFiltro: string;\n\tpublic formularioEditable: boolean = true;\n\tpublic mostrarPopupSubirArchivo: boolean = false;\n\tpublic nuevoFuncionario: boolean = false;\n\tpublic regresarInmediato: boolean = false;\n\n  constructor(private generalService: GeneralService,\n    public utilsService: UtilsService,\n    private authService: AuthService,\n    private formatoService: FormatoService,\n    private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n    private campoFormularioPipe: CampoFormularioPipe,\n    private notificacionesService: ToastService,\n    private translateService: TranslateService,\n    private generalPipe: GeneralPipe,\n    private selectListActos: SelectListActos,\n    private saraAplicacionService: SaraAplicacionService,\n    private popupsDinamicosPipe: PopupsDinamicosPipe,\n    private empleadoService: EmpleadoService,\n    private controlFuncionalidadService: CargarControlFuncionalidadService,\n    public parametroFormatoPipe: ParametroFormatoPipe) { }\n\n  ngOnInit(): void {\n  }\n\n  private inicializar() {\n\t\t// INCIALIZAMOS LAS VARIABLES PARA EVITAR NULL POINTER EXCEPCION\n\t\tthis.listaParaCampos = [];\n\t\tthis.listaParaPuesto = [];\n\t\tthis.listaParaCampoLegalizada = [];\n\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel();\n\t\t// hojaVidaDTO = new HojaVidaDTO();\n\n\t\tthis.mostrarFoto = false;\n\t\tthis.seguimiento = false;\n\n\t\tthis.listaFormatoDatoDocumentoItem = [];\n\t\tthis.listaFirmaDocumentoItem = [];\n\t\tthis.listaUnidadDocumentoItem = [];\n\t\tthis.listaSucursalItem = [];\n\t\tthis.listaRoloItem = [];\n\t\tthis.listaTipoCambioItem = [];\n\t\tthis.listaSoporteItem = [];\n\t\tthis.listaCargoItem = [];\n\t\tthis.listaUnidadItem = [];\n\n\t\tthis.mostrarDatosCedula = false;\n\t\tthis.mostrarDatosAdicional = false;\n\t\tthis.mostrarFinal = false;\n\t\tthis.mostrarDatosAdicional = false;\n\t\tthis.habilitarCombosUnidadCargo = false;\n\n\t\tthis.deDondeVengo = null;\n\t\tthis.vistaVisualizar = null;\n\t\tthis.mostrarPopupSubirArchivo = false;\n\t}\n\n\tpublic async elaborar(empresa: number, contrato: number, formato: number, grupo: number, descripcionGrupo: string, correcionDTO: ActoCambioEmpleadoModel) {\n\t\tthis.inicializar();\n\t\tthis.descripcionGrupo = descripcionGrupo;\n\t\tif ( correcionDTO == null) {\n\t\t\tawait this.nuevo(empresa, contrato, formato, grupo);\n\t\t}\n\t\telse {\n\t\t\t await this.corregir(correcionDTO);\n\t\t}\n\t}\n\n\tprivate async corregir(actoCorregir: ActoCambioEmpleadoModel) {\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\t\tthis.mostrarFoto = true;\t\t\t\t\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\tthis.mostrarFoto = true;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: actoCorregir.llave, etapa: this.etapa}).toPromise();\n\t\tthis.actoCambioEmpleadoBorrarDTO.derogacion = actoCorregir.llave;\n\t\tthis.actoCambioEmpleadoBorrarDTO.postLegalizada = this.parametroFormatoPipe.CORREGIR;\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\n\t\tawait this.cargarDatosEmpleado();\n\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\n\t\t// CARGAMOS EL FORUMARIO DINAMICO CON LISTAPARACAMPO\n\t\tawait this.crearFormularioListaParaCampo();\n\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n\t\tawait this.decideQueMostrar();\n\t\tthis.mostrarBuscarAntecesor = false;\n\t}\n\t\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * \n\t * @param empresa\n\t *            Empresa con la que se desea hacer el trasado\n\t * @param contrato\n\t *            Contrato del nuevo acto Traslado\n\t * @param formato\n\t *            LLave del formato que tendra relacionado este Acto Ingreso\n\t * @param grupo\n\t *            Cada Acto Ingreso tendra relacionado un grupo vincula\n\t */\n\tpublic async nuevo(empresa: number, contrato: number, formato: number, grupo: number) {\n\t\tthis.mostrarDatosCedulaCampos = true;\n\t\tthis.mostrarFoto = false;\n\t\tthis.mostrarDatosCedula = true;\n\t\tthis.seguimiento = false;\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO = new ActoCambioEmpleadoModel();\n\t\tthis.actoCambioEmpleadoBorrarDTO.formato = formato;\n\t\tif (contrato != 0) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleado = 0;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO = await this.formatoService.traerFormato({formato: formato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\tthis.actoCambioEmpleadoBorrarDTO.postLegalizada = this.generalPipe.PUNTO;\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria = [];\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos =  [];\n\n\t\tif (contrato != 0 && empresa != 0) {\n\t\t\tvar empleadoDTO = new EmpleadoModel();\n\t\t\templeadoDTO.empresa = empresa;\n\t\t\templeadoDTO.contrato = contrato;\n\t\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = empleadoDTO;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.hojaVida = empleadoDTO.cedula;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empresa = empresa;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.contratoAnt = contrato;\n\n\t\t\templeadoDTO = new EmpleadoModel();\n\t\t\templeadoDTO.contrato = contrato;\n\t\t\templeadoDTO.empresa = empresa;\n\t\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\t\t\tif (empleadoDTO != null) {\n\t\t\t\tthis.setFuncionario(empleadoDTO);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO = new EmpleadoModel();\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.grupoVincula = grupo;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaSoporteItem.forEach(formatoFirmaDTO => {\n\t\t\tif (formatoFirmaDTO.origenActo != null\t&& formatoFirmaDTO.origenActo == (this.parametroFormatoPipe.ACTOS_ORIGINALES)) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.soporte = formatoFirmaDTO.planilla;\n\t\t\t\treturn;\n\t\t\t}\n\t\t})\n\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp != this.generalPipe.PUNTO) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.tipoCambio = this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipoCambioEmp;\n\t\t}\n\n\t\tthis.cargarCombos(formato);\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\t\tawait this.decideQueMostrar();\n\t\tif ( this.isProcesoMasivo() ) {\n\t\t\tthis.mostrar = true;\n\t\t\tawait this.siguienteCedula();\n\t\t}\n\t\tthis.mostrar = true;\n\t}\n\n\tpublic async nuevo2(empresa: number, contrato: number, formato: number, grupo: number, entidad: string) {\n\t\tawait this.nuevo(empresa, contrato, formato, grupo);\n\t\tthis.actoCambioEmpleadoBorrarDTO.entidad1 = entidad;\n\t}\n\t\n\tpublic async nuevoProrrogaMasiva(empresa: number, formato: number, grupo: number, listaEmpleado: EmpleadoModel[]) {\n\t\tthis.regresarInmediato = true;\n\t\tawait this.nuevo(empresa, 0, formato, grupo);\n\t\tfor(let empleadoDTO of listaEmpleado) {\n\t\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t\t\tthis.actoHijoAdicionar.hojaVida = empleadoDTO.cedula;\n\t\t\tthis.actoHijoAdicionar.empresa = empleadoDTO.empresa;\n\t\t\tthis.actoHijoAdicionar.empleado = empleadoDTO.contrato;\n\t\t\tthis.actoHijoAdicionar.nombreCompletoHojaVida = empleadoDTO.nombreCompleto;\n\n\t\t\tthis.actoHijoAdicionar.unidad = empleadoDTO.unidad;\n      \t\tthis.actoHijoAdicionar.cargo = empleadoDTO.cargo;\n\t\t\tthis.actoHijoAdicionar.clasificacion = empleadoDTO.clasificacion;\n\t\t\tthis.actoHijoAdicionar.zonaEconomica = empleadoDTO.zonaEconomica;\n\t\t\tthis.actoHijoAdicionar.centroCostro = empleadoDTO.centroCosto;\n\t\t\tthis.actoHijoAdicionar.ubicacionFis = empleadoDTO.ubicacionfisica;\n\t\t\tthis.actoHijoAdicionar.vincula = empleadoDTO.vinculacion;\n\t\t\tthis.actoHijoAdicionar.turno = empleadoDTO.turno;\n\t\t\tthis.actoHijoAdicionar.lineaCosto = empleadoDTO.lineaCosto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos.push(this.actoHijoAdicionar);\n\t\t}\n\t\tconsole.log(this.actoCambioEmpleadoBorrarDTO.listaActosHijos)\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t}\n\n\n\t/**\n\t * Metodo que controla que componente es el que ya mo se debe mostrar en el\n\t * .jspx\n\t */\n\tpublic async decideQueNoMostrar() {\n\t\tif (this.regresarInmediato){\n\t\t\tthis.regresarActoAdmin();\n\t\t\treturn;\n\t\t}\n    if (this.paso != null) {\n\t\tif (this.paso == this.parametroFormatoPipe.PASO_CEDULA){\n\t\t\tthis.regresarActoAdmin();\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\tthis.mostrarDatosCedula = true;\n\t\t\tthis.mostrarDatosAdicional = false;\n\t\t\tthis.campos = [];\n\t\t\tthis.mostrarTablaMateria = false;\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n\t\t\tthis.mostrarDatosCedula = true;\n\t\t\tthis.mostrarDatosAdicional = true;\n\t\t\tthis.valoresEditablesFormulario(true);\n\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\tthis.formularioDinamico.removerCamposIdGrupo(this.campoFormularioPipe.GRUPO_FINAL);\n\t\t\tthis.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL, this.campoFormularioPipe.CAMPO_EDITABLE);\n\t\t\tthis.iniciarVisualizacionTablas();\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n\t\t\tthis.mostrarDatosCedula = true;\n\t\t\tthis.mostrarDatosAdicional = false;\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL) && (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION))) {\n\t\t\t//getBean(ActosAdministrativosBean.class).retornar();\n\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\tif(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.length != 0) {\n\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\tthis.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal);\n\t\t\t}else {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\tthis.pasoAnterior = this.parametroFormatoPipe.PASO_CEDULA;\n\t\t\t}\n\t\t\tawait this.decideQueMostrar();\n\t\t}\n\t\tthis.paso = this.pasoAnterior;\n\t\t}\n\t}\n\n\t/**\n\t * Metodo que controla que componente es el que se debe mostrar en el .jspx\n\t */\n\tpublic async decideQueMostrar() {\n    if (this.paso != null) {\n      if (this.paso == (this.parametroFormatoPipe.PASO_CEDULA)) {\n        this.mostrarDatosCedula = true;\n        this.mostrarDatosAdicional = false;\n      } else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n        this.mostrarDatosAdicional = true;\n        this.valoresEditablesFormulario(true);\n        this.vistaVisualizar = null;\n      } else if (this.paso == (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL)) {\n        this.valoresEditablesFormulario(true);\n        this.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL, this.campoFormularioPipe.CAMPO_LECTURA);\n        this.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_FINAL, this.campoFormularioPipe.CAMPO_EDITABLE);\n      } else if (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n        this.mostrarDatosCedula = true;\n        this.mostrarDatosAdicional = true;\n      } else if (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n        await this.procesoCombinacion();\n        await this.enviarPasoFinal();\n      }\n    }\n\t}\n\n\t/**\n\t * \n\t */\n\tpublic async modificar(llave: string) {\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t\tthis.inicializar();\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\tthis.mostrarDatosCedulaCampos = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n    this.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n    this.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null)\n      ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\n\n    this.pasoAnterior = this.paso;\n    this.paso = this.parametroFormatoPipe.PASO_CEDULA;\n\n    await this.cargarDatosEmpleado();\n\n    await this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\n    // CARGAMOS EL FORUMARIO DINAMICO CON LISTAPARACAMPO\n    await this.crearFormularioListaParaCampo();\n\n    this.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, false);\n    await this.decideQueMostrar();\n    this.mostrarBuscarAntecesor = false;\n    await this.siguienteCedula();\n\n\t\t\n\t}\n\n\tpublic async cargarDatosEmpleado() {\n\t\tif ( this.isProcesoMasivo()) {\n\t\t\treturn;\n\t\t}\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n    if (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null) {\n      var contrato: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n      var empresa: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n      var unidad: string = this.actoCambioEmpleadoBorrarDTO.unidad;\n      if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.INTERRUPCCIONENCARGO)\t\t\t\t \n        && contrato != 0 && empresa != 0) {\n        await this.cargarDatosEmpleadoContrato(contrato, empresa);\n      }\n      await this.validarCampoUnidadNoAplica(unidad);\n    }\n \t}\n\n\t/**\n\t * \n\t */\n\tpublic async legalizar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null)\t? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1100)\n\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null && this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato!= null) {\n\t\t\tvar contrato: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\t\tvar empresa: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\t\t\tvar unidad: string = this.actoCambioEmpleadoBorrarDTO.unidad;\n\t\t\tif (contrato != 0 && empresa != 0) {\n\t\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t\t}\n\t\t\tawait this.validarCampoUnidadNoAplica(unidad);\n\t\t}\n\t\tawait this.decideQueMostrar();\n\t}\n\n\tpublic async cargaListaFormularioLeglizadaYcampo() {\n    var datoDTO = new FormatoDatoModel();\n    datoDTO.formato = this.actoCambioEmpleadoBorrarDTO.formato;\n    this.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n    if (this.listaParaCampoLegalizada != null && this.listaParaCampoLegalizada.length == 0) {\n      this.pasoAnterior = this.paso;\n      this.paso = this.parametroFormatoPipe.PASO_FINAL;\n    } else {\n      this.pasoAnterior = this.paso;\n      this.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n    }\n\n    // CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n    this.crearFormularioListaParaCampo()\n    this.crearFormularioListaLegalizada();\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la listaParaCampoLegalizada\n\t * \n\t * @see LegalizarActoIngresoBean\n\t */\n\tpublic async crearFormularioListaLegalizada() {\n    var campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n    this.formularioDinamico.limpiar();\n    this.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\n    // adicionamos al grupo1, los datos del grupo 2\n    campos2.forEach(g2 => {\n      g2.editable = 'L';\n      g2.obligatorio = false;\n      this.campos.push(g2);\n    })\n    \n    this.iniciarVisualizacionTablas();\n    this.iniciaValoresTablas(this.listaParaCampoLegalizada);\n\n    for (let i = 0; i < this.listaParaCampoLegalizada.length; i++) {\n      var dato = this.listaParaCampoLegalizada[i];\n      for (let j = 0; j < campos2.length; j++) {\n        var campo = campos2[i]\n        if (campo.descripcion != (dato.campo.trim())) {\n          continue;\n        }\n        this.cargarDatosCampoFormulario(campo);\n        campo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n        campo.obligatorio = true;\n        campo.descripcion = dato.titulo != null\n            && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo\n                : campo.descripcion;\n        campo.descripcionAdicional = dato.campo;\n        this.campos.push(campo);\n      }\n    }\n    //this.formularioDinamico.Border(false);\n\t}\n\n\t/**\n\t * \n\t */\n\tpublic async eliminar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.mostrarFoto = true;\n\t\t\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.traerActoIngreso({llave: llave, etapa: this.etapa}).toPromise();\n\t\tthis.accion = (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.derogacion != null)\t? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t\n\t\tawait this.cargarCombos(this.actoCambioEmpleadoBorrarDTO.formato);\n\t\t\n\t\t// CARGA LOS DATOS NOMBRE DE ESTE CONTRATO\n\t\tif (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null && this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato!=null) {\n\t\tvar contrato: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.contrato;\n\t\tvar empresa: number = this.actoCambioEmpleadoBorrarDTO.empleadoDTO.empresa;\n\n\t\tif (contrato != 0 && empresa != 0) {\n\t\t\tawait this.cargarDatosEmpleadoContrato(contrato, empresa);\n\t\t}\n\t\t}\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tawait this.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos);\n\t\tthis.mostrar = true;\n\t\tawait this.decideQueMostrar();\n\t\t\n\t}\n\n\t/**\n\t * Metodo que continua con el siguiente paso del proceso, este metodo se\n\t * encargar de verificar la informacion que se ha registrado el proceso de\n\t * ingreso de datos del empleado. Validaciones y demas.. Ademas de validar\n\t * la inclusi\\u00F3n del n\\u00FAmero de la cedula, validar la inclusi\\u00F3n\n\t * del n\\u00FAmero del n\\u00FAmero del contrato (y/o sacar mensajes de\n\t * inconsistencia)\n\t */\n\tpublic async siguienteCedula() {\n\t\tif ( !this.isProcesoMasivo()) {\n\t\t\tthis.validaPasoCedula = true;\n\t\t\tif (!this.validarDatosCedulaEmpleado()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.validaPasoCedula = false\n\t\t}\n\t\t\n\t\t\n\t\t\tif ( !this.isProcesoMasivo() ) {\n\t\t\t\n\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.INTERRUPCCIONENCARGO)|| \n        this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.INTERRUPCIONASIGNAFUNCION)) {\n\t\t\t\t\t\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.validaIngresoContratoInterrupcion({actoCambio: this.actoCambioEmpleadoBorrarDTO, etapa: this.etapa, accion: this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion}).toPromise();\n\t\t\t\t}\n\t\t\t\telse if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL)|| \n          this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.PRORROGAASIGNACIONFUNCION)||\n          this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.ENTIDADEMPLEADO)) {\n\t\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.validaIngresoContratoProrroga({actoCambio: this.actoCambioEmpleadoBorrarDTO, etapa: this.etapa}).toPromise();\n\t\t\t\t}\n\t\t\t\telse if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.NOAPLICA)) {\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.validaIngresoContrato({actoCambio: this.actoCambioEmpleadoBorrarDTO}).toPromise();\n\t\t\t\t}\n\t\n\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.mensaje != null) {\n\t\t\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// asignamos el siguiente paso\n\t\t\tthis.pasoAnterior = this.paso;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\n\t\t\tthis.listaParaCampos = this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos;\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0 && this.actoCambioEmpleadoBorrarDTO.antesesor != null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO=await this.actoCambioEmpleadoService.conAntecesor({actoCambio: this.actoCambioEmpleadoBorrarDTO, antecesor: this.actoCambioEmpleadoBorrarDTO.antesesor}).toPromise();\n\t\t\t}\n\t\t\tthis.crearFormularioListaParaCampo();\n\t\t\tthis.mostrar = true;\n\t\t\tawait this.utilsService.sleep(200);\n\t\t\t// Actualizamos los valores en el formulario\n\t\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\n\t\t\tawait this.decideQueMostrar();\n\n\t\t\t// verificamos que la lista de unidad tenga datos, en caso no tenga\n\t\t\t// datos la lista de unidad\n\t\t\t// entonces muestro la unidad de que corresponde a esa persona\n\t\t\tif (this.listaUnidadItem == null || this.listaUnidadItem.length <= 1) {\n\t\t\t\tthis.listaUnidadItem = [];\n        let saraAplicacionCedula = await this.saraAplicacionService.getCedula();\n\t\t\t\tif (parseInt(this.authService.getTokenKey('numeroEmpresa')) != null && saraAplicacionCedula != null\n\t\t\t\t\t\t&& saraAplicacionCedula != 0) {\n\t\t\t\t\tvar eml:EmpleadoModel = await this.empleadoService.obtenerPorCedulaActivo({empresa: \n\t\t\t\t\t\t\tparseInt(this.authService.getTokenKey('numeroEmpresa')), cedula: saraAplicacionCedula}).toPromise();\n\t\t\t\t\tif (eml != null) {\n\t\t\t\t\t\tthis.listaUnidadItem.push({value: eml.unidad, label: eml.unidadNombreTitular});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\n\n\t}\n\n\t/**\n\t * Metodo que controla el tercer proceso que es donde se selecciona por\n\t * medio de selectoneradio si deseo incluir un puesto de trabajo o no\n\t * @ \n\t */\n\tpublic async siguienteAdicional()  {\n\t\t/**\n\t\t * Validamos los campos listaparacampos de que esten correctamente\n\t\t * adicionados Validamos la seleccion de una unidad y un cargo Con el\n\t\t * formulario dinamico validamos la listaparacampos La unidad y el cargo\n\t\t * si la debemos validar con aqui\n\t\t */\n\t\tif (!this.formularioDinamico.validar()) {\n      \tthis.notificacionesService.showError('Faltan campos obligatorios')\n\t\t\treturn;\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.NOAPLICA)\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.CARRERAADMINISTRATIVA)\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.ENTIDADEMPLEADO)\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.INTERRUPCCIONENCARGO)\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL)\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.PRORROGATERMINACIONCONTRATO)\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion != (this.parametroFormatoPipe.INTERRUPCIONASIGNAFUNCION)) {\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.tipoCambio == null\n\t\t\t\t\t|| this.actoCambioEmpleadoBorrarDTO.tipoCambio.trim() == this.generalPipe.PUNTO) {\n\t\t\t\tif ( this.formularioDinamico.obtenerCampo('tipoCambio') != null ) {\n\t\t\t\t\tthis.notificacionesService.showWarning('Tipo de cambio ingreso no definido');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO  != null && this.generalPipe.SI == (this.actoCambioEmpleadoBorrarDTO.formatoDTO.definitivo) ) {\n\t\t\t\t\tthis.notificacionesService.showInfo('Tipo de cambio ingreso no definido');\n\t\t\t\t\treturn ;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.formatoDTO.servicioValidador)) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.mensaje = null;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.ejecutarValidadorActosWS({actoCambio: this.actoCambioEmpleadoBorrarDTO}).toPromise();\n\t\t\tif (this.utilsService.isNotBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\t\t\tthis.notificacionesService.showWarning(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\tawait this.generalService.update(new GeneralModel('ActoCambioEmpleadoDTO', null, false, this.actoCambioEmpleadoBorrarDTO)).toPromise();\n\t\t} else {\n\t\tthis.actoCambioEmpleadoBorrarDTO.solicita = await this.saraAplicacionService.getCedula();\n\t\tvar acto: ActoCambioEmpleadoModel = await this.actoCambioEmpleadoService.elaborarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\tthis.actoCambioEmpleadoBorrarDTO = acto;\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO != null && this.actoCambioEmpleadoBorrarDTO.mensaje != null\n\t\t\t&& this.actoCambioEmpleadoBorrarDTO.mensaje.trim().length != 0) {\n\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\treturn;\n\t\t}\n\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\tthis.valoresEditablesFormulario(true);\n\n\t\tawait this.cargarDatosEmpleado();\n\n\t\tawait this.decideQueMostrar();\n\t}\n\n\t/**\n\t * Metodo que me genera el reporte pdf\n\t */\n\tpublic async procesoCombinacion() {\n\t\t\n\t\t// cada vez que se genere un proceso de combinacion el nombre de archivo\n\t\t// quedara null, en donde nos sirvara para saber si el\n\t\t// proceso de combinacion se efectuo bien, por si este se genero\n\t\t// correctamente esta variable que da con el nombre con que se genero el\n\t\t// el archivo..\n\n\t\tthis.llaveNombreArchivoProcesoCombinacion = null;\n\t\tthis.vistaVisualizar = 'mostrarDatosCombinacion';\n\t\tawait this.utilsService.sleep(1100)\n\t\tvar listaMarcador: any[] = [];\n\t\tvar columnas: string[] = [];\n\t\tcolumnas.push('C_LLAVE');\n\t\tvar valores: any[] = [];\n\t\tvalores.push(this.actoCambioEmpleadoBorrarDTO.llave);\n\n\t\tvar usf = new UsuarioFormatoModel();\n\t\tusf.usuario = this.authService.getTokenKey('usuario');\n\t\tusf.grupo = this.actoCambioEmpleadoBorrarDTO.grupoVincula;\n//\t\t\tusf.Vinculacion0;\n\t\tusf.tipo = 'US';\n\t\tusf.formato = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tusf = await this.generalService.queryForObject(new GeneralModel('UsuarioFormatoDTO', null, false, usf)).toPromise();\n\t\tvar mostrarPdfoWord: boolean;\n\t\t// verificamos en que formato vamos a mostrar este acto\n\t\t// si en formato pdf o formato word\n\t\tif (usf == null || usf.informe == null) {\n\t\t\tmostrarPdfoWord = false;\n\t\t} else {\n\t\t\t// si es F, Mostramos pdf\n\t\t\t// sino, mostramos word\n\t\t\tmostrarPdfoWord = ('F' == usf.informe.trim());\n\t\t}\n\n\t\tthis.actoDtoPdf = await this.actoCambioEmpleadoService.generarPdf({\n\t\t\tcolumnas: columnas, valores: valores, listaMarcador: listaMarcador, soportePlanilla: this.actoCambioEmpleadoBorrarDTO.soporte\n\t\t}).toPromise()\n\n\t\tthis.mostrarDatosCombinacionActoIngreso.actoCambioEmpleadoBorrarDTO = this.actoCambioEmpleadoBorrarDTO;\n\t\tthis.mostrarDatosCombinacionActoIngreso.etapa = this.etapa;\n\t\tthis.mostrarDatosCombinacionActoIngreso.deDondeVengo = this.deDondeVengo;\n\t\tthis.mostrarDatosCombinacionActoIngreso.formatoDTO = this.actoCambioEmpleadoBorrarDTO.formatoDTO;\n\t\tthis.mostrarDatosCombinacionActoIngreso.LLAVE_BASE = this.llaveBase;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarPdf = this.actoDtoPdf.resultado;\n\t\tthis.mostrarDatosCombinacionActoIngreso.rutaFisicaWord = this.actoDtoPdf.rutaWord;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarWord = !mostrarPdfoWord;\n\n\t\t// Enviamos los combos que se utilizarion en el acto, parta mostrar\n\t\t// la informacion en la\n\t\t// siguiente pagina, que son los combos del Formulario Dinamico\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaFormatoDatoDocumentoItem = this.listaFormatoDatoDocumentoItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaFirmaDocumentoItem = this.listaFirmaDocumentoItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaUnidadDocumentoItem = this.listaUnidadDocumentoItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaSucursalItem = this.listaSucursalItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaRoloItem = this.listaRoloItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaTipoCambioItem = this.listaTipoCambioItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaSoporteItem = this.listaSoporteItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaCargoItem = this.listaCargoItem;\n\t\tthis.mostrarDatosCombinacionActoIngreso.listaUnidadItem = this.listaUnidadItem;\n\n\t\t// cargamos el formulacion dinamico dependiendo de la etapa donde me\n\t\t// encuentre trabajando\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)\n\t\t\t\t|| this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)\n\t\t\t\t|| this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n\t\t\tthis.mostrarDatosCombinacionActoIngreso.cargarFormularioDinamicoElaboraModifica();\n\t\t} else if (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tthis.mostrarDatosCombinacionActoIngreso.cargarFormularioDinamicoLegalizaElimina();\n\t\t}\n\n\t\tif (this.actoDtoPdf.resultado) {\n\t\t\tthis.llaveNombreArchivoProcesoCombinacion = this.actoDtoPdf.rutaPdf;\n\t\t\tthis.mostrarDatosCombinacionActoIngreso.ruta = this.actoDtoPdf.rutaPdf;\n\t\t}\n\t\telse {\n\t\t\tif ( this.actoDtoPdf.mensaje != null) {\n\t\t\t\tthis.notificacionesService.showInfo(this.actoDtoPdf.mensaje);\n\t\t\t}/*\n\t\t\telse if (this.actoDtoPdf.ExceptionResultado() != null ) {\n\t\t\t\terror(actoDtoPdf.ExceptionResultado());\n\t\t\t}*/\n\t\t}\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarFotoEml = true;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarFotoHojaVida = false;\n\t\tthis.mostrarDatosCombinacionActoIngreso.mostrarTablaMateria = this.actoCambioEmpleadoBorrarDTO.listaTablaMateria != null && this.actoCambioEmpleadoBorrarDTO.listaTablaMateria.length != 0;\n\t\tthis.cabecera(this.actoCambioEmpleadoBorrarDTO.empleado, this.actoCambioEmpleadoBorrarDTO.empresa);\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)\n\t\t\t\t|| this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tthis.borrarRegistro();\n\t\t}\n\t\tthis.pasoAnterior = this.paso;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t}\n\n\tcargarColumnasTablas() {\n\t\tvar columnasTablas = [];\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionRequerida) {\n\t\t\tcolumnasTablas.push({field: 'requerida', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionRequerida})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionTemporal) {\n\t\t\tcolumnasTablas.push({field: 'temporal', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionTemporal})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionArea) {\n\t\t\tcolumnasTablas.push({field: 'areaComite', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionArea})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionProposito) {\n\t\t\tcolumnasTablas.push({field: 'proposito', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionProposito})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionPapel) {\n\t\t\tcolumnasTablas.push({field: 'papel', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionPapel})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionFrecuencia) {\n\t\t\tcolumnasTablas.push({field: 'frecuencia', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionFrecuencia})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionAsignatura) {\n\t\t\tcolumnasTablas.push({field: 'descripcionAsignatura', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionAsignatura})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionSemestre) {\n\t\t\tcolumnasTablas.push({field: 'descripcionSemestre', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionSemestre})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionGrupoAsignatura) {\n\t\t\tcolumnasTablas.push({field: 'grupoAsignatura', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionGrupoAsignatura})\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionIntensidadAsignatura) {\n\t\t\tcolumnasTablas.push({field: 'intensidad', header: this.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4.tituloDescripcionIntensidadAsignatura})\n\t\t}\n\t\tthis.columnasTablaMateria = [];\n\t\tthis.columnasTablaMateria = columnasTablas;\n\t}\n\n\tpublic procesoGeneralAnexo() {\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)) {\n\t\t\t/*generarAnexoSvcregistrarAnexoHojaActoCambioEml.(llaveNombreArchivoProcesoCombinacion,\n\t\t\t\t\tactoCambioEmpleadoBorrarDTO, false, null, this.authService.getTokenKey('usuario'),\n\t\t\t\t\tgetPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA));*/\n\t\t}\n\t\t// 2.SI ESTAMOS RELIZANDO UNA MODIFICACION o LEGALIZACION,\n\t\t// ELIMINAMOS EL AL ANTERIOR E INSERTAMOS UNO NUEVO\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\t//generarAnexoSvc.registrarAnexoHojaActoCambioEml(llaveNombreArchivoProcesoCombinacion,\tactoCambioEmpleadoBorrarDTO, true, llaveBase, this.authService.getTokenKey('usuario'),getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA));\n\t\t}\n\t\t// 2.SI ESTAMOS RELIZANDO UNA ELIMINACION, ELIMINAMOS EL ANEXO\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n\t\t\t//generarAnexoSvc.registrarAnexoHojaActoCambioEml(null, actoCambioEmpleadoBorrarDTO,\ttrue, llaveBase, this.authService.getTokenKey('usuario'),getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA));\n\t\t}\n\t\n\t}\n\n\t/**\n\t * Accion final que sea aplica sobre el acto administrativo de acuerdo con\n\t * la etapa del proceso (ELABORACION/MODIFICACION, ELIMINACION,\n\t * LEGALIZACION)\n\t */\n\tpublic async aplicarFinal() {\n\t\tvar llaveSeguimiento: string = this.seguimiento ? this.utilsService.generarLlave() : null;\n\n\t\tthis.actoCambioEmpleadoBorrarDTO = await this.actoCambioEmpleadoService.legalizarActoCambio({actoCambio: this.actoCambioEmpleadoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), etapa: this.etapa, llaveBase: this.llaveBase, seguimiento: llaveSeguimiento}).toPromise();\n\t\tif (!this.utilsService.isBlank(this.actoCambioEmpleadoBorrarDTO.mensaje)) {\n\t\t\tthis.notificacionesService.showInfo(this.actoCambioEmpleadoBorrarDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n\n\t\tthis.procesoGeneralAnexo();\n\n\t\tvar nombreArchivo = this.llaveBase+ this.generalPipe.PUNTO + Constantes.ARCHIVO_PDF;\n\t\tif (this.etapa == this.parametroFormatoPipe.ETAPA_LEGALIZACION) {\n\t\t\t/**\n\t\t\t * verificamos que el archivo de este acto, se halla genereado\n\t\t\t * bien\n\t\t\t */\n\t\t\tif (this.actoDtoPdf != null && this.actoDtoPdf.rutaPdf != null && this.actoDtoPdf.mensaje == null) {\n\t\t\t\tconsole.log('entra if ')\n\t\t\t\tthis.mostrarPopupSubirArchivo = true;\n\t\t\t\tawait this.utilsService.sleep(1100)\n\t\t\t\tthis.popupSubirArchivo.buscar(this.actoCambioEmpleadoBorrarDTO.formatoDTO, nombreArchivo)\n\t\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actosProrrogaTemporalBean.terminar}',actoCambioEmpleadoBorrarDTO.formatoDTO, nombreArchivo);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\t// Muestra el popup de seguimiento. Al cerrarlo muestra el mensaje\n\t\t// de éxito del proceso\n\t\tif (this.seguimiento) {\n\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actosProrrogaTemporalBean.cierreSeguimiento}');\n\t\t} else {\n\t\t\t// Muestra el mensaje de éxito del proceso\n\t\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t\tthis.notificacionesService.showInfo(titulo);\n      this.setTerminar({});\n    }\n\t}\n\n\t/**\n\t * Método de retorno del evento de cierre del popup de seguimiento Muestra\n\t * mensaje de éxito del proceso\n\t * \n\t * @param objeto\n\t *            Se utiliza este parámetro para dar al método la forma de un\n\t *            método SET\n\t */\n\tpublic setCierreSeguimiento(objeto: string) {\n\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\tthis.notificacionesService.showInfo(titulo);\n    this.setTerminar({});\n\t}\n\n\tpublic setTerminar(s) {\n\t\tthis.mostrarPopupSubirArchivo = false;\n\t\tthis.regresarActoAdmin();\n\t}\n\n\tpublic regresarActoAdmin() {\n\t\tthis.regresarAction.emit(false);\n\t\t/*String url = getUrl();\n\t\tif (url.endsWith('listadoEmpleados.xhtml')) {\n\t\t\tgetBean(EmpleadoBean.class).VistaVisualizar(null);\n\t\t\treturn;\n\t\t}\n\t\tif (url.endsWith('ActosAdministrativos.xhtml')) {\n\t\t\tgetBean(ActosAdministrativosBean.class).retornar();\n\t\t\treturn;\n\t\t}\n\t\tif (url.endsWith('listadoControlProrroga.xhtml')) {\n\t\t\tgetBean(ListadoControlProrrogaBean.class).retornar();\n\t\t\treturn;\n\t\t}*/\n\t}\n\n\t/**\n\t * Metodo que borra el registro insertado cuando se genera algun error..\n\t */\n\tpublic async borrarRegistro() {\n\t\t// BORRAMOS EL REGITRO\n\t\t\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO != null) {\n\t\t\t\tawait this.actoCambioEmpleadoService.borrarRegistroCambio({llave: this.actoCambioEmpleadoBorrarDTO.llave}).subscribe(data => {});\n\t\t\t}\n\t\t\n\t}\n\n\tpublic validarDatosCedulaEmpleado() {\n\t\tvar valida = true;\n  \t  \tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.empleado);\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0) {\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoCambioEmpleadoBorrarDTO.antesesor);\n\t\t}\n\t\treturn valida;\n\t}\n\n\tpublic async actionSiguienteAdicional() {\n\t\tif(this.parametroFormatoPipe.PASO_ADICIONAL == this.paso && this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.length != 0) {\n\t\t\tthis.pasoAnterior = this.paso;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_SOLICITUD_FINAL;\n\t\t\tthis.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal);\n\t\t\tawait this.adicionarCamposSolicitudFinal(this.campoFormularioPipe.GRUPO_FINAL);\n\t\t\tthis.valoresEditablesFormulario(true);\n\t\t\tthis.formularioDinamico.editarPermisoCamposPorIdGrupo(this.campoFormularioPipe.GRUPO_INICIAL, this.campoFormularioPipe.CAMPO_LECTURA);\n\t\t}\n\t\tawait this.siguienteAdicional();\t\t\t\n\t}\n\n\tpublic valoresEditablesFormulario(editable: boolean) {\n\t\tthis.formularioDinamico.editable = editable;\n\t\tthis.habilitarCombosUnidadCargo = editable;\n\t}\n\n\tpublic async cargarDatosEmpleadoContrato(contrato: number, empresa: number) {\n\t\tvar empleadoDTO = new EmpleadoModel();\n\t\templeadoDTO.empresa = empresa;\n\t\templeadoDTO.contrato = contrato;\n\t\templeadoDTO = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, empleadoDTO)).toPromise();\n\n\t\tif (empleadoDTO != null) {\n\t\tthis.setFuncionario(empleadoDTO);\n\t\t}\n\t}\n\n\t/**\n\t * Este metodo cargo todos los combos que necesitan entre\n\t * ellos..(ListaSoporte, ListaCargo, ListaUnidadOrganizacion etc...\n\t * \n\t * @param formato\n\t */\n\tprivate async cargarCombos(formato: number) {\n    var formatoDatoDTO = new FormatoDatoModel();\n    formatoDatoDTO.formato = formato;\n    formatoDatoDTO.tipo = 'TD';\n    this.listaFormatoDatoDocumentoItem = this.selectListActos.getSelectItemFormatoDatoDocumentoItem(await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, formatoDatoDTO)).toPromise());\n    \n    if(this.controlFuncionalidadService.getControlFuncionalidad('actadm:filuni')) {\n      this.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).toPromise());\n    }else {\n      this.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato})).toPromise());\n    }\n    var rolesDTO = new RolesModel();\n    rolesDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.listaRoloItem = this.selectListActos.getSelectItemRolItem(await this.generalService.queryForList(new GeneralModel('RolesDTO', null, false, rolesDTO)).toPromise());\n    this.listaTipoCambioItem = this.selectListActos.getSelectItemTipoCambioItem(await this.generalService.queryForList(new GeneralModel('TipoCambioEmpleadoDTO', 'TipoCambio.consultarListaTipoCambio', false, {})).toPromise());\n    this.listaSoporteItem = this.selectListActos.getSelectItemSoporteItem(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarListaSoporteDocumento', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),formato: formato, tipoSoporte: 'W'})).toPromise());\n\n    this.listaAdicional1 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_1);\n    this.listaAdicional2 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_2);\n    this.listaAdicional3 = await this.selectListActos.getSelectItemListaAdicionalFormato(formato, this.parametroFormatoPipe.TIPO_LISTA_3);\n\n    this.listaSucursalItem = this.selectListActos.getListaSucursaActo(await this.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', 'LoginAccesoSara.consultarListaVistaSucursal', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), aliasRol: this.authService.getTokenKey('aliasRol'), login: this.authService.getTokenKey('usuario')})).toPromise());\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la lista para campo\n\t */\n\tpublic async crearFormularioListaParaCampo() {\n\t\tthis.mapaCamposMasivo = new Map<string, string>();\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n    if (this.formularioDinamico) {\n\t\t\tthis.formularioDinamico.limpiar();\n      this.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t\t}\n\t\t\n\t\t\tthis.listaParaCampos.forEach(dato => {\n\t\t\t\tif ( dato.campo == (this.parametroFormatoPipe.FECHA_FINAL_ITEM)) {\n\t\t\t\t\tthis.mapaCamposMasivo.set(this.parametroFormatoPipe.FECHA_FINAL_ITEM, dato.accion);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcampos2.forEach(async campo => {\n\t\t\t\t\tif (campo.descripcion == (dato.campo.trim())) {\n\t\t\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t\t\tif (dato.accion != null && dato.accion.trim() != (this.parametroFormatoPipe.INGRESARE)) {\n\t\t\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// verificamos si el campo solo se pude visualizar\n\t\t\t\t\t\tif (dato.accion != null\n\t\t\t\t\t\t\t\t&& dato.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR)) {\n\t\t\t\t\t\t\tcampo.editable = 'L';\n\t\t\t\t\t\t\tcampo.obligatorio = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\t\t\t\tcampo.idGrupoPertenece = this.campoFormularioPipe.GRUPO_INICIAL;\n\t\t\t\t\t\tcampo.descripcion = dato.titulo != null\n\t\t\t\t\t\t\t\t&& dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo\n\t\t\t\t\t\t\t\t\t\t: campo.descripcion;\n\t\t\t\t\t\tcampo.descripcionAdicional = dato.campo;\n            this.campos.push(campo);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\tthis.iniciarVisualizacionTablas();\n      await this.iniciaValoresTablas(this.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCampos);\n      await this.setValorCampos();\n\t\t\t//formulario.Border(false);\n\t\t\n\t\t// SI LA LISTA FORMULARIO ESTA VACIA LO MANDAMOS A DATO PUESTO\n\t}\n\n  async setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.campos.forEach(async element => {\n\t\t\t\n\t\t\tif (element.tipo === 'F'){\n\t\t\t  element.valor = element.valor ? new Date(element.valor) : null;\n\t\t\t} else if (element.tipo === 'H'){\n\t\t\t  if (element.valor){\n\t\t\t\tlet listaValortemp = [];\n\t\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t  listaValortemp.push ({label: element2, value:element2})\n\t\t\t\t})\n\t\t\t\telement.valor = listaValortemp\n\t\t\t  }\n\t\t\t} else if (element.tipo === 'P'){\n\t\t\t  this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id ){\n\t\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t  readonly: !this.formularioDinamico?.editable,\n\t\t\t\t\t  showDialog: false,\n\t\t\t\t\t  label: element.valor,\n\t\t\t\t\t  mostrarX: false,\n\t\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t\t}\n\t\t\t  });\n\t\n\t\t\t} else {\n\t\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\t\telement.valor = element.valor.trim()\n\t\t\t\t  }\n\t\t\t}\n\t\t  });\n\t\t  await this.utilsService.sleep(500)\n\t\n\t\t  this.formularioDinamico?.ngAfterViewInit();\n\t\t  this.utilsService.resizeWindowIFrame();\n\t\n\t\t  //this.formularioDinamico.campos = this.campos;\n\t  }\n\t\n\n\tprivate async cargarDatosCampoFormulario(campo: CampoFormularioModel)  {\n\t\t// CARGAMOS EL COMBO PARA CADA CAMPO\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\tcampo.lista = this.listaFormatoDatoDocumentoItem;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n      let formato = this.actoCambioEmpleadoBorrarDTO.formato;\n\t\t\tif(this.controlFuncionalidadService.getControlFuncionalidad('actadm:filuni')) {\n        this.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato, login: this.authService.getTokenKey('usuario'), aliasRol: this.authService.getTokenKey('aliasRol')})).toPromise());\n      }else {\n        this.listaFirmaDocumentoItem = this.selectListActos.getSelectItemsPeriodoGestion(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarFirmasUnFormato', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), formato: formato})).toPromise());\n      }\n\t\t\tcampo.lista = this.listaFirmaDocumentoItem;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\tcampo.lista = this.listaSucursalItem;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.ROL)) {\n\t\t\tcampo.lista = this.listaRoloItem;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)) {\n\t\t\tcampo.lista = this.listaTipoCambioItem;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\tcampo.lista = this.listaSoporteItem;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_1)) {\n\t\t\tcampo.lista = this.listaAdicional1;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_2)) {\n\t\t\tcampo.lista = this.listaAdicional2;\n\t\t}\n\t\tif (campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_3)) {\n\t\t\tcampo.lista = this.listaAdicional3;\n\t\t}\n\t}\n\t\n\tprivate async adicionarCamposSolicitudFinal(etapaFormulario: string)  {\n    var campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoActoCambioEml().toPromise(); \n\t\tthis.actoCambioEmpleadoBorrarDTO.formatoDTO.listaParaCamposSolicitudFinal.forEach(dato => {\n\t\t\tcampos2.forEach(async campo => {\n        if (campo.descripcion != dato.campo.trim()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\t\t\n\t\t\t\tawait this.cargarDatosCampoFormulario(campo);\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\tcampo.idGrupoPertenece = etapaFormulario;\n\t\t\t\tthis.campos.push(campo);\n\t\t\t})\n\t\t})\n\t\tthis.formularioDinamico.modificarValorCamposAdicionales(this.actoCambioEmpleadoBorrarDTO, this.campoFormularioPipe.GRUPO_FINAL);\n\t}\n\n\tpublic async enviarPasoFinal() {\n\t\t// Cargamos los datos del bean InfoEmpleadoOcupaBean\n\t\t/*this.infoDatosPlanta.actoCambioEmpleadoBorrarDTO = this.actoCambioEmpleadoBorrarDTO;\n\t\tthis.infoDatosPlanta.eventoActosEjecutar = 'actoprorroga';\n\t\tthis.infoDatosPlanta.accion = this.accion;\n\t\tthis.infoDatosPlanta.etapa = this.etapa;\n\t\tthis.infoDatosPlanta.verUnidadAdicional = true;\n\t\tvar listaDatosPlanta: FormatoDatoModel[] = [];\n\t\tvar dtoF: FormatoDatoModel = new FormatoDatoModel();\n\t\tdtoF.formato = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tdtoF.tipo = 'PT';\n    listaDatosPlanta = await this.generalService.queryForList(new GeneralModel('FormatoDatoDTO', null, false, dtoF)).toPromise();\n\t\tthis.infoDatosPlanta.listaDatosPlanta = listaDatosPlanta;\n\t\tthis.infoDatosPlanta.asignaDatosDefecto();\n\t\tthis.infoDatosPlanta.LLAVE_BASE = this.llaveBase;*/\n\t}\n\n\tpublic async setAntecesor(actoDTO: ActoIngresoAusenciaModel) {\n\t\tif (actoDTO != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.antesesor = actoDTO.llaveActo;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcion = actoDTO.descripcion;\n\t\t\tawait this.actionEnviarSiguienteCedula();\n\t\t}\n\t}\n\n\tpublic verPopupAntecesor() {\n    var actoDTO = new ActoIngresoAusenciaModel();\n    actoDTO.formatoPadre = this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre;\n    actoDTO.formatoOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n    actoDTO.accionOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n    actoDTO.estado = 6;\n    actoDTO.contrato = this.actoCambioEmpleadoBorrarDTO.empleado;\n    actoDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n    actoDTO.entidad = this.actoCambioEmpleadoBorrarDTO.entidad1;\n    if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.PRORROGAASIGNACIONFUNCION)) {\n      actoDTO.prorrogaFuncion = this.generalPipe.SI;\n    } else if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL)) {\n      actoDTO.prorrogaTraslado = this.generalPipe.SI;\n    }\n    //getBean(PopupAntecesorBean.class).buscar('#{actosProrrogaTemporalBean.antecesor}', actoDTO,\tthis.parametroFormatoPipe.TIPO_ACTO_INGRESO);\n\t\treturn null;\n\t}\n\n\thandleEnterKey(event) {\n\t\tevent.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t  }\n\t\n\t\n/**\n * Despliega el popup para la búsqueda y seleccion de un empleado\n * (método de retorno actoCambioPuestoBean.Funcionario)\n * @return null\n */\nverPopupHojaVida(event){\n\tthis.setFuncionario(event);\n\tthis.actionEnviarSiguienteCedula();\n\t//this.actionSiguienteAdicional().then(data =>{})\n\t//getBean(PopupEmpleado.class).buscar('#{actoCambioPuestoBean.funcionario}');\n}\t\n\n\t  filtrarEnter(event) {\n\t\tif (event.key === 'Enter') {\n\t\t\tvar filtroEmpleado: EmpleadoModel = new EmpleadoModel;\n\t\t\tfiltroEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'))\n\t\t\tfiltroEmpleado.documento = this.cedulaFiltro,\n\t\t\tfiltroEmpleado.soloActivos = 'L'\n\t\t  this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, filtroEmpleado)).subscribe(data => {\n\t\t\tif (data.length == 1){\n\t\t\t\tthis.verPopupHojaVida(data[0])\n\t\t\t} else {\n\t\t\t\tthis.inputEmpleado.openDataTable()\n\t\t\t}\n\t\t  })\n\t\t}\n\t  }\n\t\n\n\tpublic setFuncionario(empleadoDTO: EmpleadoModel) {\n\t\tconsole.log(empleadoDTO)\n\t\tif (empleadoDTO != null) {\n\t\t\tthis.empleadoDTO = empleadoDTO;\n\t\t\tthis.mostrarFoto = true;\n\t\t\tthis.cedulaFiltro = empleadoDTO.documento;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.hojaVida = empleadoDTO.cedula;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.documentoEmpleado = empleadoDTO.documento;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.nombreCompleto = empleadoDTO.nombreCompleto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleado = empleadoDTO.contrato;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.unidad = empleadoDTO.unidad;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUnidad = empleadoDTO.unidadNombreTitular;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.cargo = empleadoDTO.cargo;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.clasificacion = empleadoDTO.clasificacion;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCargo = empleadoDTO.cargoNombreTitular;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.zonaEconomica = empleadoDTO.zonaEconomica;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionZonaEconomica = empleadoDTO.zonaEconomicaNombre;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.centroCostro = empleadoDTO.centroCosto;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionCentroCosto = empleadoDTO.centroCostoNombre;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.ubicacionFis = empleadoDTO.ubicacionfisica;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.descripcionUbicacionFis = empleadoDTO.ubicacionFisicaNombre;\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.vincula = empleadoDTO.vinculacion;\n\t\t\t//this.cabecera(empleadoDTO.contrato, this.actoCambioEmpleadoBorrarDTO.empresa);\n\t\t\tif (this.actoCambioEmpleadoBorrarDTO.empleadoDTO != null) {\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO.unidad = empleadoDTO.unidad;\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO.cargo = empleadoDTO.cargo;\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO.unidadNombreTitular = empleadoDTO.unidadNombreTitular;\n\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.empleadoDTO.cargoNombreTitular = empleadoDTO.cargoNombreTitular;\n\t\t\t}\n\t\t\tthis.mostrarBuscarAntecesor = true;\n\t\t}\n\t}\n\n\tpublic cabecera(contrato: number, empresa: number) {\n\t\tthis.generalService.queryForObject(new GeneralModel('EmpleadoDTO',  null, false, {empresa: empresa, contrato: contrato})).subscribe(data => {\n\t\t\tthis.empleadoDTO = data;\n\t\t})\n\t}\n\n\tpublic async actionEnviarSiguienteCedula() {\n\t\tawait this.siguienteCedula();\n\t\treturn null;\n\t}\n\n\tpublic isMostrarBotonPopup() {\n\t\treturn this.deDondeVengo == null || this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO != this.deDondeVengo;\n\t}\n\n\tpublic eliminarHijoActo(acto) {\n\t\t//var acto=(ActoCambioEmpleadoDTO) ((UIParameter) elemento.Component().findComponent('registrohijo')).Value();\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos = this.eliminarObjetoDeArray(this.actoCambioEmpleadoBorrarDTO.listaActosHijos, acto);\n\t}\n\n\tprivate validarHijoActo() {\n\t\tvar v: boolean = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.actoHijoAdicionar.empleado);\n\t\treturn v\n\t}\n\t\n\tpublic adicionarHijoActo() {\n\t\tthis.clickGuardarFuncionario = true;\n\t\tif (!this.validarHijoActo()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarFuncionario = false;\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaActosHijos.push(this.actoHijoAdicionar);\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t\tthis.nuevoFuncionario = false;\n\t}\n\n\teliminarObjetoDeArray(array: any[], objeto: any): any[] {\n\t\tconst objetoCadena = JSON.stringify(objeto);\n  \t\treturn array.filter(obj => JSON.stringify(obj) !== objetoCadena);\n\t}\n\t\n\tpublic verPopupEmpleado() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.INTERRUPCCIONENCARGO)|| \n      this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.INTERRUPCIONASIGNAFUNCION) ||\n      this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL)|| \n      this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.PRORROGAASIGNACIONFUNCION)) {\n\t\t\t//getBean(PopupEmpleado.class).buscarActivosEncargo('actosProrrogaTemporalBean.regresoHijoActo');\n\t\t}\n\t\telse {\n\t\t\t//getBean(PopupEmpleado.class).buscarActivosTerminaContrato('actosProrrogaTemporalBean.regresoHijoActo');\n\t\t}\n\t}\n\t\n\tpublic setRegresoHijoActo(empleadoDTO: EmpleadoModel) {\n\t\tif ( empleadoDTO== null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.actoHijoAdicionar.hojaVida = empleadoDTO.cedula;\n\t\tthis.actoHijoAdicionar.empresa = empleadoDTO.empresa;\n\t\tthis.actoHijoAdicionar.empleado = empleadoDTO.contrato;\n\t\tthis.actoHijoAdicionar.nombreCompletoHojaVida = empleadoDTO.nombreCompleto;\n\t\t\n\t\tthis.actoHijoAdicionar.unidad = empleadoDTO.unidad;\n\t\tthis.actoHijoAdicionar.cargo = empleadoDTO.cargo;\n\t\tthis.actoHijoAdicionar.clasificacion = empleadoDTO.clasificacion;\n\t\tthis.actoHijoAdicionar.zonaEconomica = empleadoDTO.zonaEconomica;\n\t\tthis.actoHijoAdicionar.centroCostro = empleadoDTO.centroCosto;\n\t\tthis.actoHijoAdicionar.ubicacionFis = empleadoDTO.ubicacionfisica;\n\t\tthis.actoHijoAdicionar.vincula = empleadoDTO.vinculacion;\n\t}\n\n\tpublic modificarTablaMateria(evt) {\n\t\t\n\t\t\tif (!this.editarListaTablaMateria) {\n\t\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edicion');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.actoCambioEmpleadoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\t\tthis.perfilTablasDTOGuardado = evt.data;\n      this.popupIngresoMateria.buscar(this.perfilTablasDTOGuardado);\n\t\t\n\t}\n\t\n\tpublic async setPerfilTablaMateria(materia: ActosAdminTablaModel) {\n    /**\n     * Si perfilTablasDTOGuardado es != null, entonces lo eliminamos y adicionamo el nuevo registro, con esto evitamos tener el registro varias veces en la lista\n     */\n    if (this.perfilTablasDTOGuardado != null) {\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria =\n\t\t\t\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria.filter(data => data.llaveTabla != this.perfilTablasDTOGuardado.llaveTabla);\n    }\n    if (materia == null) {\n      return;\n    }\n\n    if (this.utilsService.isNotBlank(materia.asignatura)) {\n\t\t\tvar asignaturaDTO = new AsignaturaModel();\n\t\t\tasignaturaDTO.llaveTabla = this.utilsService.rightpad(materia.asignatura, 32, ' ');\n\t\t\tasignaturaDTO = await this.generalService.queryForObject(new GeneralModel('AsignaturaDTO', null, false, asignaturaDTO)).toPromise();\n\t\t\tif (asignaturaDTO != null) {\n\t\t\t\tmateria.descripcionAsignatura = asignaturaDTO.descripcion;\n\t\t\t}\n\t\t}\n    if (this.utilsService.isNotBlank(materia.semestre)) {\n\t\t\tvar semestre = new SemestreModel();\n\t\t\tsemestre.llaveTabla = this.utilsService.rightpad(materia.semestre, 32, ' ');\n\t\t\tsemestre = await this.generalService.queryForObject(new GeneralModel('SemestreDTO', null, false, semestre)).toPromise();\n\t\t\tif (semestre != null) {\n\t\t\t\tmateria.descripcionSemestre = semestre.descripcion;\n\t\t\t}\n\t\t}\n\t\tthis.actoCambioEmpleadoBorrarDTO.listaTablaMateria.push(materia);\n\t\tthis.formularioDinamico.modificar(this.actoCambioEmpleadoBorrarDTO, true);\n\t}\n\t\n\t\n\t/**\n\t * Inicializa los valores de las tablas 1, 2 y 3\n\t * \n\t * @param lista\n\t */\n\tpublic async iniciaValoresTablas(lista: FormatoDatoModel[]) {\n    this.mostrarTablaMateria = false;\n\n    if (lista == null || lista.length == 0) {\n      return;\n    }\n\n    lista.forEach(formatoDatoDTO => {\n      if (this.utilsService.isNotBlank(formatoDatoDTO.campo) && formatoDatoDTO.campo.trim() == (this.parametroFormatoPipe.TABLA_MATERIA)\n          && (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESARE) || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR) \n            || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.INGRESOL) || formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL))) {\n        this.validarTablaMateria(formatoDatoDTO);\n      } else if (this.mostrarTablaMateria) {\n        return;\n      }\n    })\n    /**\n     * cargamos los nombre de las tablas en caso se deban mostrar\n     */\n    var dato: DatoorganizacionModel;\n    if (this.mostrarTablaMateria) {\n\t\t\tdato = await this.actoCambioEmpleadoService.obtenerInformacionTabla({tabla: this.actoCambioEmpleadoBorrarDTO.formatoDTO.tablaMateria}).toPromise();\n\t\t\tthis.actoCambioEmpleadoBorrarDTO.datoorganizacionDTO4 = dato;\n\t\t\tthis.cargarColumnasTablas();\n    }\n\n    /**\n     * Cargamos la lista de campos de cada campo tabla\n     */\n    if (this.mostrarTablaMateria) {\n      await this.cargarListaDatoOrganizacionTablas();\n    }\n\t}\n\n\tprivate validarTablaMateria(formatoDatoDTO: FormatoDatoModel) {\n\t\tthis.editarListaTablaMateria = false;\n\t\tif (formatoDatoDTO.accion.trim() == (this.parametroFormatoPipe.SOLICITUD_FINAL)) {\n\t\t\tif (this.parametroFormatoPipe.PASO_SOLICITUD_FINAL == this.paso || this.parametroFormatoPipe.PASO_FINAL == this.paso || this.mostrarTablaMateria) {\n\t\t\t\tthis.verTablaMateria(formatoDatoDTO);\n\t\t\t\tthis.editarListaTablaMateria = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.verTablaMateria(formatoDatoDTO);\n\t\t\tif(formatoDatoDTO.accion.trim() != (this.parametroFormatoPipe.INGRESOL) && formatoDatoDTO.accion.trim() != (this.parametroFormatoPipe.VISUALIZAR) && this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\t\tthis.editarListaTablaMateria = true;\n\t\t\t}\n\t\t}\n\t}\n\t\n\tprivate verTablaMateria(formatoDatoDTO: FormatoDatoModel) {\n\t\tthis.mostrarTablaMateria = true;\n\t\tthis.actoCambioEmpleadoBorrarDTO.tituloTablaMateria = this.utilsService.isNotBlank(formatoDatoDTO.titulo) ? formatoDatoDTO.titulo : this.parametroFormatoPipe.TABLA_MATERIA;\n\t}\n\t\n\tprivate iniciarVisualizacionTablas() {\n\t\tthis.mostrarTablaMateria = false;\n\t\tthis.cancelarEdicionTablas();\n\t}\n\t\n\tprivate cancelarEdicionTablas() {\n\t\tthis.editarListaTablaMateria = false;\n\t}\n\t\n\t/**\n\t * Si las tablas si son visibles para la realizacion del acto entonces cargamos la lista de datoOrganizacion, de lo contrario la dejamos nulas\n\t */\n\tpublic async cargarListaDatoOrganizacionTablas() {\n    if (this.mostrarTablaMateria) {\n      this.listaDatoOrganizacionTablaMateria = await this.cargarListaDatoOrganizacion(this.actoCambioEmpleadoBorrarDTO.formatoDTO.tablaMateria);\n    }\n\t}\n\t\n\tprivate async cargarListaDatoOrganizacion(tabla: string)  {\n\t\tvar filtro = new DatoorganizacionModel();\n\t\tfiltro.tabla = tabla;\n\t\treturn await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, filtro)).toPromise();\n\t}\n\t\n\tpublic nuevoPerfilTablaMateria () {\n    if (this.listaDatoOrganizacionTablaMateria == null || this.listaDatoOrganizacionTablaMateria.length == 0) {\n\t\t\tthis.notificacionesService.showInfo('No se ha configurado campos para esta tabla');\n\t\t\treturn null;\n\t\t}\n\t\tthis.perfilTablasDTOGuardado = null;\n\t\tvar actosAdminTablaDTO = new ActosAdminTablaModel();\n\t\tactosAdminTablaDTO.semestre = this.formularioDinamico.getObjecto()?.semestre;\n\t\tthis.popupIngresoMateria.buscar(actosAdminTablaDTO);\n\t}\n\t\n\t/*\n\t * Valida si el formato tiene el campo Unidad y si\n\t * la acción es No Aplica, esto para que no ponga \n\t * la unidad del empleado sino la seleccionada\n\t * en el acto\n\t */\n\tpublic async validarCampoUnidadNoAplica(unidad: string){\n\t\tvar dto = new FormatoDatoModel();\n\t\tdto.campo = this.parametroFormatoPipe.UNIDAD;\n\t\tdto.formato = this.actoCambioEmpleadoBorrarDTO.formato;\n\t\tdto.tipo = 'SC';\n\t\tdto = await this.generalService.queryForObject(new GeneralModel('FormatoDatoDTO', null, false, dto)).toPromise();\n\t\tif (dto != null && this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == (this.parametroFormatoPipe.NOAPLICA)) {\t\n\t\tthis.actoCambioEmpleadoBorrarDTO.unidad = unidad;\n\t\t}\n\t}\n\n\tobtenerDatoAntecesor(): ActoIngresoAusenciaModel {\n\t\tvar actoDTO = new ActoIngresoAusenciaModel;\n\t\tif (!this.actoCambioEmpleadoBorrarDTO){\n\t\t\treturn actoDTO;\n\t\t}\n\t\tactoDTO.formatoPadre = this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre;\n\t\tactoDTO.formatoOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.llave;\n\t\tactoDTO.accionOriginal = this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n\t\tactoDTO.estado = 6;\n\t\tactoDTO.contrato = this.actoCambioEmpleadoBorrarDTO.empleado;\n\t\tactoDTO.empresa = this.actoCambioEmpleadoBorrarDTO.empresa;\n\t\tactoDTO.entidad = this.actoCambioEmpleadoBorrarDTO.entidad1;\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.PRORROGAASIGNACIONFUNCION) {\n\t\t\tactoDTO.prorrogaFuncion = this.generalPipe.SI;\n\t\t} else if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL) {\n\t\t\tactoDTO.prorrogaTraslado = this.generalPipe.SI;\n\t\t}\n\t\treturn actoDTO;\n\t}\n\n\tpublic nuevoFuncionarioMasivo() {\n\t\tthis.nuevoFuncionario = true;\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t}\n\n\tpublic cancelarNuevoFuncionario() {\n\t\tthis.nuevoFuncionario = false;\n\t\tthis.actoHijoAdicionar = new ActoCambioEmpleadoModel();\n\t}\n\t\n\tpublic isProcesoMasivo () {\n\t\tif ( this.actoCambioEmpleadoBorrarDTO.formatoDTO.masivo == null || this.generalPipe.SI != this.actoCambioEmpleadoBorrarDTO.formatoDTO.masivo) {\n      return false;\n    }\n    if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO)) {\n      return this.parametroFormatoPipe.PRORROGATERMINACIONCONTRATO == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion\n      || this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion \n      || this.parametroFormatoPipe.INGRESODEFINITIVO == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion \n      || this.parametroFormatoPipe.INGRESOTEMPORAL == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n    }\n    if (this.actoCambioEmpleadoBorrarDTO.formatoDTO.tipo == (this.parametroFormatoPipe.PARAMETRO_ACTO_LICENCIA_COMISIONES)) {\n      return this.parametroFormatoPipe.LICENCIA_COMISION == this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion;\n    }\n    return false;\n\t}\n\t\n\tpublic isMostrarSeleccionFormatoPadre() {\n\t\tif (this.actoCambioEmpleadoBorrarDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\tif (this.actoCambioEmpleadoBorrarDTO.formatoDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != null\n\t\t\t\t&& this.actoCambioEmpleadoBorrarDTO.formatoDTO.formPadre != 0;\n\t}\n\n\tget existeFechaFinalItem(): boolean {\n\t\tlet valor = this.mapaCamposMasivo.get(this.parametroFormatoPipe.FECHA_FINAL_ITEM);\n\t\treturn valor != null && valor != undefined;\n\t}\n\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n        <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n        \n        <button pButton pRipple (click)=\"decideQueNoMostrar()\" [label]=\"!parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO ? ('regresar' | translate) : ('listado' | translate) + ' ' + ('actos' | translate) \" icon=\"pi pi-chevron-left\" \n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n    </div>\n    <app-cabecera-empleado [empleado]=\"empleadoDTO\" *ngIf=\"mostrarFoto && empleadoDTO != null && empleadoDTO != undefined && !parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO\"></app-cabecera-empleado>\n    <div class=\"p-fluid grid\" *ngIf=\"vistaVisualizar == null\">\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mb-2\">\n                    <!-- PASO 1 - DATOS CEDULA -->\n                    <p-fieldset *ngIf=\"mostrarDatosCedula && !isProcesoMasivo()\">\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid grid\">\n                            <!-- IDENTIFICACION -->\n                            <div class=\"col-12 md:col-12 lg:col-6 responsivetablet\" *ngIf=\"mostrarDatosCedulaCampos\">\n                                <app-input-helper-empleado-boton #inputEmpleado (onSelected)=\"verPopupHojaVida($event)\" *ngIf=\"mostrarDatosCedulaCampos\" [readonly]=\"!isMostrarBotonPopup()\"\n                                    [nombreInput]=\"'empleado' | translate\" [mostrarX]=\"false\"\n                                    [label]=\"empleadoDTO.nombreCompleto != null ? empleadoDTO.contrato + ' - ' + empleadoDTO.nombreCompleto : ''\" >\n                                </app-input-helper-empleado-boton>\n                            </div>\n                            <div class=\"col-12 md:col-12 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"documento\" [(ngModel)]=\"cedulaFiltro\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'cedula' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ANTECESOR -->\n                            <div class=\"col-12 md:col-12 lg:col-6\" *ngIf=\"isMostrarSeleccionFormatoPadre()\">\n                                <app-popup-antecesor [nombreInput]=\"actoCambioEmpleadoBorrarDTO.formatoDTO.descripcion\" [actoIngresoAusenciaDTO]=\"obtenerDatoAntecesor()\"\n                                    \n                                    [label]=\"actoCambioEmpleadoBorrarDTO.descripcion ? (actoCambioEmpleadoBorrarDTO.descripcion) : ''\" [tipo]=\"parametroFormatoPipe.TIPO_ACTO_INGRESO\"\n                                    (onSelected)=\"setAntecesor($event)\" ></app-popup-antecesor>\n                            </div>\n                        </div>\n                    </p-fieldset>\n                </div>\n                <!-- PASO 2 - Datos Adicionales -->\n                <div>\n                    <formulario-dinamico #formulario [editable]=\"formularioEditable\" [campos]=\"campos\" \n                        [objeto]=\"actoCambioEmpleadoBorrarDTO\" ></formulario-dinamico>\n                </div>\n                <!-- Masivo -->\n                <div *ngIf=\"isProcesoMasivo()\">\n                    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaActosHijos.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                        styleClass=\"p-datatable-striped input-helper-datatable\" >\n                        <ng-template pTemplate=\"caption\">\n                            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                <h4 class=\"text-xl mb-1\" >{{'funcionario' | translate}}</h4>\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoFuncionarioMasivo()\" \n                                    label=\"{{'link_nuevo' | translate}}\" ></button>\n                            </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"header\" >\n                            <tr>\n                                <th style=\"width: 20%\">{{'identifica' | translate}}</th>\n                                <th style=\"width: 30%\">{{'nombre' | translate}}</th>\n                                <th style=\"width: 20%\" *ngIf=\"existeFechaFinalItem\">{{'final' | translate}}</th>\n                                <th style=\"width: 20%\">{{'mensaje' | translate}}</th>\n                                <th style=\"width: 10%\"> </th>\n                            </tr>\n                            @if (nuevoFuncionario) {\n                                <tr class=\"TablaNuevoRegistro\">\n                                    <td style=\"width: 20%;\">\n                                        <input pInputText [(ngModel)]=\"actoHijoAdicionar.hojaVida\" [disabled]=\"true\"\n                                            [class]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.hojaVida) && clickGuardarFuncionario ? 'ng-invalid ng-dirty' : ''\" />\n                                    </td>\n                                    <td style=\"width: 30%;\">\n                                        <label>{{(this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.INTERRUPCCIONENCARGO|| \n                                            this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.INTERRUPCIONASIGNAFUNCION ||\n                                            this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL || \n                                            this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.PRORROGAASIGNACIONFUNCION) ? 'ActivoEncargo' : 'ActivoDeterminados'}}</label>\n                                        <app-input-helper-empleado-boton #inputEmpleadoMasivo (onSelected)=\"setRegresoHijoActo($event)\"  [mostrarX]=\"false\"\n                                            [verOpcionActivos]=\"false\" [activos]=\"false\" \n                                            [booleano]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.hojaVida) && clickGuardarFuncionario \"\n                                            [soloActivos]=\"(this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.INTERRUPCCIONENCARGO|| \n                                            this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.INTERRUPCIONASIGNAFUNCION ||\n                                            this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL || \n                                            this.actoCambioEmpleadoBorrarDTO.formatoDTO.accion == this.parametroFormatoPipe.PRORROGAASIGNACIONFUNCION) ? 'ActivoEncargo' : 'ActivoDeterminados'\"\n                                            [label]=\"actoHijoAdicionar.nombreCompletoHojaVida != null ? actoHijoAdicionar.nombreCompletoHojaVida : ''\" >\n                                        </app-input-helper-empleado-boton>\n                                    </td>\n                                    <td style=\"width: 20%;\" *ngIf=\"existeFechaFinalItem\">\n                                        <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"actoHijoAdicionar.fechafinal\"  dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"  >\n                                        </p-calendar>\n                                    </td>\n                                    <td style=\"width: 20%;\">\n                                        <input pInputText [(ngModel)]=\"actoHijoAdicionar.mensaje\" [disabled]=\"true\" />\n                                    </td>\n                                    <td style=\"width: 10%;\">\n                                        <div class=\"flex justify-content-end\">\n                                            <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                (click)=\"adicionarHijoActo()\"></button>\n                                            <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoFuncionario()\"\n                                                class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                        </div>\n                                    </td>\n                                </tr>\n                            }\n                          </ng-template>\n                          <ng-template pTemplate=\"body\" let-bean >\n                            <tr>\n                                <td style=\"width: 20%;\">{{bean.hojaVida}}</td>\n                                <td style=\"width: 30%;\">{{bean.nombreCompletoHojaVida}}</td>\n                                <td style=\"width: 20%;\" *ngIf=\"existeFechaFinalItem\">{{bean.fechafinal | date : ('formatofecha' | translate)}}</td>\n                                <td style=\"width: 20%;\">{{bean.mensaje}}</td>\n                                <td style=\"width: 10%;\">\n                                    <div class=\"flex justify-content-end\">\n                                        <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                            (click)=\"eliminarHijoActo(bean)\"\n                                            class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                            [disabled]=\"nuevoFuncionario\"></button>\n                                    </div>\n                                </td>\n                            </tr>\n                          </ng-template>\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    </p-table>\n                </div>\n                <!-- Tabla Materia -->\n                <div *ngIf=\"mostrarTablaMateria\">\n                    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"actoCambioEmpleadoBorrarDTO.listaTablaMateria\" selectionMode=\"single\" [rows]=\"10\"\n                        [paginator]=\"actoCambioEmpleadoBorrarDTO.listaTablaMateria.length > 10\" [totalRecords]=\"actoCambioEmpleadoBorrarDTO.listaTablaMateria.length\"\n                        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [columns]=\"columnasTablaMateria\"\n                        styleClass=\"p-datatable-striped\" [scrollable]=\"true\" scrollDirection=\"horizontal\" (onRowSelect)=\"modificarTablaMateria($event)\" (onRowUnselect)=\"modificarTablaMateria($event)\">\n                        <ng-template pTemplate=\"caption\">\n                            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                <h4 class=\"text-xl mb-1\" >{{actoCambioEmpleadoBorrarDTO.tituloTablaMateria}}</h4>\n                                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoPerfilTablaMateria()\" \n                                    *ngIf=\"editarListaTablaMateria\" label=\"{{'link_nuevo' | translate}}\" ></button>\n                            </div>\n                        </ng-template>\n                        <ng-template pTemplate=\"header\" let-columns=\"columnasTablaMateria\">\n                            <tr>\n                              <th style=\"width: 300px !important\" [style.flex]=\"'0 1 auto'\" *ngFor=\"let col of columnasTablaMateria\">{{col.header}}</th>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"body\" let-item let-columns=\"columnasTablaMateria\">\n                            <tr>\n                              <td style=\"width: 300px !important\" [style.flex]=\"'0 1 auto'\" [pSelectableRow]=\"item\" *ngFor=\"let col of columnasTablaMateria\">{{col.date ? (item[col.field] | date : ('formatofecha' |\n                                translate)) : item[col.field]}}</td>\n                            </tr>\n                          </ng-template>\n                          <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    </p-table>\n                </div>\n\t\t\t\t<!-- PANEL GRID CONTINUAR Y ATRAS, DATOS ADICIONAL -->\n                <div class=\"flex justify-content-end mt-3\" *ngIf=\"paso != 'cedula'\">\n                    <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-chevron-right\" *ngIf=\"paso != 'final'\"\n                        label=\"{{'link_continuar' | translate}}\" (click)=\"actionSiguienteAdicional()\">\n                    </button>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div *ngIf=\"vistaVisualizar == 'mostrarDatosCombinacion' && mostrar\">\n        <app-mostrar-datos-combinacion-acto-ingreso #mostrarDatosCombinacionActoIngreso \n        [seguimiento]=\"seguimiento\" (regresar)=\"decideQueNoMostrar()\" (aplicar)=\"aplicarFinal()\" ></app-mostrar-datos-combinacion-acto-ingreso>\n    </div>\n    <app-popup-ingreso-materias #popupIngresoMateria (regresar)=\"setPerfilTablaMateria($event)\" ></app-popup-ingreso-materias>\n    <app-popup-subir-archivo-actos (regresar)=\"setTerminar($event)\" *ngIf=\"mostrarPopupSubirArchivo\"></app-popup-subir-archivo-actos>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class ActoAdministrativosPdfModel extends UnionModel{\n\t getRutaPdf() {\n\t\t throw new Error('Method not implemented.')\n\t }\n\n\t rutaPdf: string\n\t rutaWord : string\n\t resultado: boolean\n\t mensaje: string\n\t\n\t\n}\n","import { UnionModel } from 'general-library-union'\nimport { EmpleadoModel } from '../../compensacion/models/EmpleadoModel'\nimport { SeleccionReporteModel } from '../../compensacion/models/SeleccionReporteModel'\nimport { FormatoModel } from './FormatoModel'\n\nexport class ActoEspecialModel extends UnionModel {\n\n\tllave:string;\n\tnumeroConsecutivo:number;\n\tempresa:number;\n\tnumeroEstado:number;\n\tformato:number;\n\tnombreFormato:string;\n\tidentifica:number;\n\tgrupoVincula:number;\n\tvincula:number;\n\tturno:number;\n\tdocumento:string;\n\tnumero:string;\n\tfechaDocumento:Date;\n\tfirmaDocumento:number;\n\tunidadDocumento:string;\n\tsucursal:string;\n\tsesion:string;\n\tfechaSesion:Date;\n\tfechaInicial:Date;\n\tfechaFinal:Date;\n\taplica:Date;\n\tmotivo:number;\n\trol:string;\n\tproyecto:string;\n\testado:string;\n\tsoporte:string;\n\tpostLegaliza:string;\n\telaboracion:string;\n\tderogado:string;\n\tantecesor:string;\n\tnumeroAntecesor:number;\n\tsueldo:number;\n\tcargo:string;\n\tfechaSueldoDesde:Date;\n\tfechaSueldoAdi:Date;\n\tsueldoAntes:number;\n\tfechaSueldoAntes:Date;\n\tvinculacion:number;\n\tseleccion:string;\n\ttipoCambioEml:string;\n\tsueldoCem:number;\n\tsueldoAntesCem:number;\n\tinteres:number;\n\tvalor1:number;\n\tvalor2:number;\n\tvalor3:number;\n\tvalor4:number;\n\tvalor5:number;\n\tvalor6:number;\n\tvalor7:number;\n\tvalor8:number;\n\tvalor9:number;\n\tvalor10:number;\n\tvalor11:number;\n\tvalor12:number;\n\tvalor13:number;\n\tvalor14:number;\n\tvalor15:number;\n\tvalor16:number;\n\tvalor17:number;\n\tvalor18:number;\n\tvalor19:number;\n\tvalor20:number;\n\ttercero:number;\n\ttextoTercero:string;\n\tvalor:number;\n\tentidad1:string;\n\tcadena1:string;\n\tcadena2:string;\n\tcadena3:string;\n\tlistaFiltro: SeleccionReporteModel [];\n\tlistaHijos: ActoEspecialModel [];\n\templeadoDTO: EmpleadoModel;\n\tmensaje:string;\n\tnombreEmpleado:string;\n\tllaveNombreArchivoAnexo:string;\n\ttipoServicio:string;\n\tnombreEntidad1:string;\n\tformatoDTO: FormatoModel;\n\tcedula:number;\n\ttipo:string;\n\tfiltro:string;\n\tdocumentoEmpleado:string;\n\tnumeroEstadoDiferenteUno:number;\n\tlistaAdicional2:string;\n\tlistaAdicional3:string;\n\toficio:string;\n\tfechaOficio:Date;\t\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class SeleccionReporteModel extends UnionModel{\n\n\tnumero: string;\n\tcolumna: string;\n\tdescripcionColumna: string;\n\ttipo: string;\n\tdescripcionTipo: string;\n\tparametro: string;\n\tparametroCopy: string;\n\tanidado: string;\n\tdescripcionAnidado: string;\n\tposicion: number;\t\n\t\t\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { GestionReportePipe } from '../../../../../shared/pipes/gestionReporte.pipe';\nimport { ToastService, UtilsService } from 'general-library-union';\nimport { SeleccionReporteModel } from '../../../../compensacion/models/SeleccionReporteModel';\nimport { ConfirmationService } from 'primeng/api';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-popup-columna-especial',\n    templateUrl: './popup-columna-especial.component.html',\n    styleUrls: ['./popup-columna-especial.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, DropdownModule, FormsModule, InputTextModule, ButtonDirective, Ripple, NgIf, TranslateModule]\n})\nexport class PopupColumnaEspecialComponent implements OnInit {\n\n  @Input() mostrarPopup: boolean;\n  @Input() seleccionReporte : SeleccionReporteModel;\n  @Input() tipo : string;\n  @Output() regresar = new EventEmitter;\n  @Input() nuevo : boolean;\n  public clickGuardar: boolean = false;\n  listaCamposSeleccion : any[];\n  listaTipoSeleccion : any[];\n  listaAnidado : any[];\n\n  constructor(private gestionPipe : GestionReportePipe, \n              private confirmationService: ConfirmationService, \n              public utilsService: UtilsService,\n              private generalPipe: GeneralPipe,\n              private notificacionesService: ToastService) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar(){\n    this.clickGuardar = false;\n    this.listaCamposSeleccion = this.gestionPipe.CAMPOSSELECCIONVISTA;\n    this.listaTipoSeleccion = this.gestionPipe.TIPOSELECCION;\n    this.listaAnidado = this.gestionPipe.ANIDADO;\n  }\n\n  validar() : boolean {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.seleccionReporte.columna);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.seleccionReporte.tipo);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.seleccionReporte.anidado);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.seleccionReporte.parametro);\n    return validador\n  }\n\n  guardar() {\n    this.clickGuardar = true;\n    if (!this.validar()) {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      return;\n    }\n    this.clickGuardar = false;\n    this.seleccionReporte.descripcionColumna = this.gestionPipe.CAMPOSSELECCIONVISTA.filter(data => this.seleccionReporte.columna)[0].nombre;\n    this.seleccionReporte.descripcionTipo = this.gestionPipe.TIPOSELECCION.filter(data => this.seleccionReporte.tipo)[0].nombre;\n    this.seleccionReporte.descripcionAnidado = this.gestionPipe.TIPOSELECCION.filter(data => this.seleccionReporte.anidado)[0].nombre;\n    this.regresar.emit({nuevo: this.nuevo, objeto: this.seleccionReporte});\n    this.mostrarPopup = false;\n  }\n  \n  regresarVista() {\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n  eliminar(event): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.regresar.emit({eliminar: true, objeto: this.seleccionReporte});\n      },\n    });\n  };\n\n   \n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{'seleccion' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '40vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n      <div class=\"field col-12 md:col-12 lg:col-12\">\n        <div class=\"Inputgroup\">\n          <div class=\"p-fluid p-formgrid grid\">\n            <!-- COLUMNA -->\n            <div class=\"field col-12 md:col-4 lg:col-4\" >\n                <span class=\"p-float-label\">\n                  <p-dropdown id=\"columna\" [options]=\"listaCamposSeleccion\" optionValue=\"codigo\" \n                    [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(seleccionReporte.columna) ? 'ng-invalid ng-dirty' : ''\"\n                    [(ngModel)]=\"seleccionReporte.columna\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                  <label htmlFor=\"columna\">{{'columna' | translate}} *</label>\n                </span>\n              </div>\n\n            <!-- TIPO -->\n            <div class=\"field col-12 md:col-4 lg:col-4\" >\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"tipo\" [options]=\"listaTipoSeleccion\" optionValue=\"codigo\" [(ngModel)]=\"seleccionReporte.tipo\" \n                  [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(seleccionReporte.tipo) ? 'ng-invalid ng-dirty' : ''\"\n                  optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"tipo\">{{'tipo' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- PARAMETRO -->\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"parametro\" [(ngModel)]=\"seleccionReporte.parametro\" maxlength=\"20\" \n                  [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(seleccionReporte.parametro) ? 'ng-invalid ng-dirty' : ''\"/>\n                <label htmlFor=\"parametro\">{{('parametros') | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- ANIDADO -->\n            <div class=\"field col-12 md:col-4 lg:col-4\" >\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"anidado\" [options]=\"listaAnidado\" optionValue=\"codigo\" optionLabel=\"nombre\" \n                  [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(seleccionReporte.anidado) ? 'ng-invalid ng-dirty' : ''\"\n                  [(ngModel)]=\"seleccionReporte.anidado\" [autoDisplayFirst]=\"false\" ></p-dropdown>\n                <label htmlFor=\"anidado\">{{'anidado' | translate}} *</label>\n              </span>\n            </div>\n\n          </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n          <button pButton pRipple class=\"m-2 p-button p-button-raised\" (click)=\"guardar()\"\n              icon=\"{{nuevo ? 'glyphicons glyphicons-floppy-save' : 'glyphicons glyphicons-refresh' }}\"\n              label=\"{{(nuevo ? 'link_guardar' : 'link_actualizar') | translate}}\" >\n          </button>\n          <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" (click)=\"eliminar($event)\"\n              label=\"{{'link_eliminar' | translate}}\" *ngIf=\"!nuevo\">\n          </button>\n        </div>\n      </div>\n</p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { ActoEspecialModel } from '../models/ActoEspecialModel';\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class ActoEspecialService {\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  listarSeleccionFiltroActoEspecial(general: any): Observable<any[]> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/listarSeleccionFiltroActoEspecial`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  registrarAnexoHojaActoEspecial(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/registrarAnexoHojaActoEspecial`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerActoEspecial(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/traerActoEspecial`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  borrarActoEspecial(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/borrarActoEspecial`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  servicioLegalizaActoEspecial(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/servicioLegalizaActoEspecial`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  insertarActoEspecialElaborar(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/insertarActoEspecialElaborar`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarCombosActoEspecial(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/cargarCombosActoEspecial`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  listaCampoEspecial(): Observable<any> {\n    return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/listaCampoEspecial`).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  formatearActoEspecial(actoEspecialDTO: ActoEspecialModel): ActoEspecialModel {\n    actoEspecialDTO.fechaDocumento= actoEspecialDTO.fechaDocumento? new Date(actoEspecialDTO.fechaDocumento) : null;\n    actoEspecialDTO.fechaSesion= actoEspecialDTO.fechaSesion? new Date(actoEspecialDTO.fechaSesion ) : null;\n    actoEspecialDTO.fechaInicial = actoEspecialDTO.fechaInicial ? new Date(actoEspecialDTO.fechaInicial) : null;\n    actoEspecialDTO.fechaFinal= actoEspecialDTO.fechaFinal? new Date(actoEspecialDTO.fechaFinal) : null;\n    actoEspecialDTO.aplica= actoEspecialDTO.aplica? new Date(actoEspecialDTO.aplica) : null;\n    actoEspecialDTO.fechaSueldoDesde= actoEspecialDTO.fechaSueldoDesde? new Date(actoEspecialDTO.fechaSueldoDesde) : null;\n    actoEspecialDTO.fechaSueldoAdi= actoEspecialDTO.fechaSueldoAdi? new Date(actoEspecialDTO.fechaSueldoAdi) : null;\n    actoEspecialDTO.fechaSueldoAntes= actoEspecialDTO.fechaSueldoAntes? new Date(actoEspecialDTO.fechaSueldoAntes) : null;\n    actoEspecialDTO.fechaOficio= actoEspecialDTO.fechaOficio? new Date(actoEspecialDTO.fechaOficio ) : null;\n    return actoEspecialDTO;\n  }\n\n  getSeleccionDelimitadorString(parametroGeneral: ParametrosGeneralModel): Observable<any>{\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoEspecial/getSeleccionDelimitadorString`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ActoAdministrativosPdfModel } from '../../../models/ActoAdministrativosPdfModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { ActoEspecialModel } from '../../../models/ActoEspecialModel';\nimport { SeleccionReporteModel } from '../../../../compensacion/models/SeleccionReporteModel';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { FormatoService } from '../../../services/formato.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { ActoEspecialService } from '../../../services/acto-especial.service';\nimport { PopupColumnaEspecialComponent } from '../../formato/popup-columna-especial/popup-columna-especial.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { PopupSeguimientoComponent } from '../../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\n\n@Component({\n    selector: 'app-actos-especiales',\n    templateUrl: './actos-especiales.component.html',\n    styleUrls: ['./actos-especiales.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, CabeceraEmpleadoComponent, FieldsetModule, PrimeTemplate, InputHelperEmpleadoBotonComponent, FormsModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PopupColumnaEspecialComponent, TranslateModule, FormulariodinamicoComponent, CheckboxModule, PopupSeguimientoComponent, ConfirmPopupModule, ConfirmDialogModule, DropdownModule, CalendarModule, InputTextModule, DatePipe]\n})\nexport class ActosEspecialesComponent implements OnInit {\n\n  \tpublic mostrarFoto: boolean;\n\t\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[];\n\t\n\tpublic mostrarBtnNuevoAccion: boolean;\n\t\n\tpublic actoDtoPdf: ActoAdministrativosPdfModel;\n\t\n\tpublic mostrarDatosCedula: boolean;\n\tpublic mostrarDatosAdicional: boolean;\n\tpublic mostrarFinal: boolean;\n\tpublic mostrarLegalizar: boolean;\n\tpublic mostrarProcesoCombinacion: boolean;\n\tpublic mostrarBotonSiguienteCedula: boolean;\n\tpublic pedirIngresoDatosCedula: boolean;\n\t\n\tpublic listaFormatoDatoDocumentoItem: any[];\n\tpublic listaFirmaDocumentoItem: any[];\n\tpublic listaUnidadDocumentoItem: any[];\n\tpublic listaSucursalItem: any[];\n\tpublic listaRoloItem: any[];\n\tpublic listaTipoCambioItem: any[];\n\tpublic listaSoporteItem: any[];\n\tpublic listaCargoItem: any[];\n\tpublic listaUnidadItem: any[];\t\n\tpublic listaMotivos: any[];\n\tpublic listaAdicional2: any[];\n\tpublic listaAdicional3: any[];\n\t\n\tpublic empleadoDTO: EmpleadoModel = new EmpleadoModel();\n\t\n\tpublic etapa: string = null;\n\tpublic accion: string = null;\n\tpublic llaveBase:string = null;\n\tpublic paso: string  = null;\n\tpublic pasoAnterior: string = null;\n\tpublic descripcionGrupo: string;\n\tpublic seguimiento: boolean;\n\t\n\tpublic llaveSeguimiento: string;\n  \tpublic verPopupSeguimiento: boolean;\n\t\n\tpublic llaveNombreArchivoProcesoCombinacion: string;\n\t\n\tpublic mostrarFechaInicialAccionAp: boolean;\n\tpublic mostrarMotivoAccionGP: boolean;\n\tpublic mostrarRolAccionGP: boolean;\n\tpublic mostrarPrtoyectoAccionGP: boolean;\n\t\n\t\n\tpublic actoEspecialBorrarDTO: ActoEspecialModel;\n\tpublic actoTemporal: ActoEspecialModel;\n\t\n\tpublic seleccionReporteTmp: SeleccionReporteModel;\n\n\t\n\t/**\n\t * esta variable sera usada con el fin de navegar al modulo correcto\n\t * Este acto en lanzado desde modulos independiente y deacuerdo el modulo de donde vengo, \n\t * asi mismo debo volver al modulo.\n\t * Si esta  variable llegase a ser null, entonces sera direccionada al Modulo Actos Administrativo\n\t * de lo contrario sera direccionada al modulo que lo llama\n\t */\n\tpublic deDondeVengo: string;\n\n\tpublic mostrarTabla: boolean;\n  \tpublic editarTabla: boolean;\n\tpublic procesoFinal: boolean;\n\tpublic contratoSeguimiento: number;\n\t\n\tpublic vistaVisualizar: string;\n\tpublic campos: CampoFormularioModel[] = [];\n\tpublic mostrar: boolean = false;\n\tpublic cedulaFiltro: string;\n\t@Input() public tipoSeleccionado: string;\n\t@Output() regresarAction:  EventEmitter<any> = new EventEmitter();\n\t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\t@ViewChild('inputEmpleado') inputEmpleado: InputHelperEmpleadoBotonComponent;\n\n\tpublic verPopupColumnaEspecial: boolean = false;\n\tpublic nuevoColumnaEspecial: boolean;\n\n\tpublic nuevoHijoActoEspecial: boolean;\n\tpublic clickGuardarHijo: boolean;\n\tpublic actoHijoAdicionar: ActoEspecialModel = new ActoEspecialModel();\n\tpublic archivoSalida: string;\n\n\tconstructor(private generalPipe: GeneralPipe,\n\t\t\t\tprivate authService: AuthService,\n\t\t\t\tpublic utilsService: UtilsService,\n\t\t\t\tprivate generalService: GeneralService,\n\t\t\t\tprivate formatoService: FormatoService,\n\t\t\t\tprivate translateService: TranslateService,\n\t\t\t\tprivate notificacionesService: ToastService,\n\t\t\t\tprivate cargarArchivo: CargarArchivosService,\n\t\t\t\tprivate encriptadorBasico: EncriptadoBasicoService,\n\t\t\t\tprivate actoEspecialService: ActoEspecialService,\n\t\t\t\tprivate popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\t\t\tprivate confirmationService: ConfirmationService,\n\t\t\t\tprivate campoFormularioPipe: CampoFormularioPipe,\n\t\t\t\tpublic parametroFormatoPipe: ParametroFormatoPipe,\n\t\t\t\t\n\t\t\t\tpublic controlFuncionService: CargarControlFuncionalidadService,\n\t\t\t\tprivate actoCambioEmpleadoService: ActoCambioEmpleadoService) { }\n\n\tngOnInit(): void {\n\t}\n\n\tprivate inicializa(){\n\t\tthis.actoEspecialBorrarDTO = new ActoEspecialModel();\n\t\tthis.listaFormatoDatoDocumentoItem = [];\n\t\tthis.listaFirmaDocumentoItem = [];\n\t\tthis.listaUnidadDocumentoItem = [];\n\t\tthis.listaSucursalItem = [];\n\t\tthis.listaRoloItem = [];\n\t\tthis.listaTipoCambioItem = [];\n\t\tthis.listaSoporteItem = [];\n\t\tthis.listaCargoItem = [];\n\t\tthis.listaUnidadItem = [];\n\t\tthis.seguimiento = false;\n\t\t\n\t\tthis.mostrarDatosCedula = false;\n\t\tthis.mostrarDatosAdicional = false;\n\t\tthis.mostrarFinal = false;\n\t\tthis.mostrarLegalizar = false;\n\t\tthis.mostrarBotonSiguienteCedula = false;\n\t\tthis.editarTabla = false;\n\t\tthis.mostrarTabla = false;\n\t\tthis.deDondeVengo = null;\n\t\tthis.vistaVisualizar = null;\n\t\tthis.verPopupColumnaEspecial = false;\n\t}\t\t\n\n\tpublic async nuevo(cedula: number, formato: number, grupoVincula: number, entidad: string){\n\t\tawait this.elaborar(cedula, formato, grupoVincula);\n\t\tthis.actoEspecialBorrarDTO.entidad1 = entidad;\n\t\tthis.formularioDinamico.modificar(this.actoEspecialBorrarDTO, true);\n\t}\n\n\tfiltrarEnter(event) {\n\t\tif (event.key === 'Enter') {\n\t\t\tvar filtroEmpleado: EmpleadoModel = new EmpleadoModel;\n\t\t\tfiltroEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'))\n\t\t\tfiltroEmpleado.documento = this.cedulaFiltro,\n\t\t\tfiltroEmpleado.soloActivos = 'L'\n\t\t\tthis.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, filtroEmpleado)).subscribe(async data => {\n\t\t\tif (data.length == 1){\n\t\t\t\tawait this.setFuncionario(data[0])\n\t\t\t} else {\n\t\t\t\tthis.inputEmpleado.openDataTable()\n\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\t\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * @param cedula Identificacion del nuevo acto ingreso\n\t * @param formato LLave del formato que tendra relacionado este Acto Ingreso\n\t * @param grupoVincula Cada Acto Ingreso tendra relacionado un grupo vincula\t \t \t \n\t */\n\tpublic async elaborar(cedula: number, formato: number, grupoVincula: number){\n\t\tthis.inicializa();\n\t\tthis.mostrarProcesoCombinacion = false;\n\t\tthis.mostrarFoto = false;\n\t\tthis.seguimiento = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\t\tthis.actoEspecialBorrarDTO = new ActoEspecialModel();\n\t\tthis.actoEspecialBorrarDTO.formatoDTO = await this.formatoService.traerFormato({formato: formato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\tthis.actoEspecialBorrarDTO.formato = formato;\n\t\tthis.actoEspecialBorrarDTO.grupoVincula = grupoVincula;\n\t\tthis.actoEspecialBorrarDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\tthis.actoEspecialBorrarDTO.postLegaliza = this.generalPipe.PUNTO;\n\t\t\n\t\tfor (var formatoFirmaDTO of this.actoEspecialBorrarDTO.formatoDTO.listaSoporteItem) {\n\t\t\tif(formatoFirmaDTO.origenActo!=null && formatoFirmaDTO.origenActo == (this.parametroFormatoPipe.ACTOS_ORIGINALES)){\n\t\t\t\tthis.actoEspecialBorrarDTO.soporte = formatoFirmaDTO.planilla;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.tipoCambioEmp != null && this.actoEspecialBorrarDTO.formatoDTO.tipoCambioEmp != this.generalPipe.PUNTO){\n\t\t\tthis.actoEspecialBorrarDTO.tipoCambioEml = this.actoEspecialBorrarDTO.formatoDTO.tipoCambioEmp;\n\t\t}\n\t\t\n\t\tthis.actoEspecialBorrarDTO.listaFiltro = [];\n\t\t\n\t\tthis.actoEspecialBorrarDTO.listaHijos = [];\n\t\t\n\t\tawait this.cargarCombos(this.actoEspecialBorrarDTO.formato);\n\t\t\n\t\tthis.validaIngresoDatosCedula();\n\n\t\tthis.mostrar = true;\n\t\t\n\t\tawait this.crearFormularioListaParaCampo(true);\n\t\t\t\t\t\t\t\n\t\t//Actualizamos los valores en el formulario\n\t\tthis.formularioDinamico.modificar(this.actoEspecialBorrarDTO, true);\n\t\t\n\t\t//en caso no se pida empleado\n\t\tif(!this.pedirIngresoDatosCedula){\n\t\t\tthis.actoEspecialBorrarDTO.identifica = 0;\n\t\t}\t\n\t\tconsole.log(this.actoEspecialBorrarDTO.formatoDTO.seleccion)\n\t\tthis.actoEspecialBorrarDTO.listaFiltro = await this.actoEspecialService.listarSeleccionFiltroActoEspecial({seleccion: this.actoEspecialBorrarDTO.formatoDTO.seleccion}).toPromise();\n\t\t\n\t\tthis.mostrarBtnNuevoAccion = true;\n\t\tthis.mostrarVariablesAcciones();\n\t}\n\t\n\tpublic validaIngresoDatosCedula(){\n\t\t//verificamos si debe pedir el ingreso de impleado, en caso de que no..\n\t\t//asignamos por defecto (0)\n\t\tthis.pedirIngresoDatosCedula=false;\n\t\tfor (var dato of this.actoEspecialBorrarDTO.formatoDTO.listaParaCampos) {\n\t\t\tif ( dato.campo.trim() == (this.parametroFormatoPipe.CONTRATO)){\n\t\t\t\tthis.pedirIngresoDatosCedula=true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * \n\t */\n\tpublic async modificar(llave: string){\n\t\tthis.inicializa();\n\t\tthis.llaveBase = llave;\t\t\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t\tthis.mostrarProcesoCombinacion = false;\n\t\tthis.actoEspecialBorrarDTO = await this.actoEspecialService.traerActoEspecial(llave).toPromise();\n\t\tif(this.actoEspecialBorrarDTO == null){\n\t\t\tthis.notificacionesService.showInfo('No pudo seleccionar datos acto especial');\n\t\t\treturn;\n\t\t}\n\t\tthis.actoEspecialBorrarDTO = this.actoEspecialService.formatearActoEspecial(this.actoEspecialBorrarDTO);\n\t\tthis.accion = (this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.derogado != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\t\t\t\t\t\t\n\t\t\n\t\tawait this.cargarCombos(this.actoEspecialBorrarDTO.formato);\n\t\t\n\t\t//verificamos si debe pedir el ingreso de impleado, en caso de que no..\n\t\t//asignamos por defecto (0)\n\t\tthis.pedirIngresoDatosCedula = false;\t\t\t\n\t\tthis.mostrar = true;\n\n\t\tawait this.crearFormularioListaParaCampo(true);\n\t\t\t\t\t\t\t\n\t\t//Actualizamos los valores en el formulario\n\t\tthis.formularioDinamico.modificar(this.actoEspecialBorrarDTO, true);\n\t\t\n\t\tthis.cabecera(this.actoEspecialBorrarDTO.identifica, this.actoEspecialBorrarDTO.empresa);\t\n\t\t\n\t\tthis.validaIngresoDatosCedula();\n\t\t\n\t\t//cargamos la lista de Filtro si la accion es AM (Asignacion Basica Masiva)\n\t\tif((this.isMostrarSeleccionAccionAM() || (this.isMostrarSeleccionAccionNoAplica() && !this.pedirIngresoDatosCedula))){\n\t\t\tawait this.cargarListaFiltro();\n\t\t}\n\t\t//cargamos los hijos con sus respectivos contratos\n\t\tif(this.isMostrarSeleccionAccionAP() || this.isMostrarSeleccionAccionGP()){\n\t\t\tthis.cargarEmpleadoHijos();\n\t\t}\n\t\t\t\t\t\t\t\t\n\t\tthis.mostrarBtnNuevoAccion = true;\n\t\t\n\t\tthis.mostrarVariablesAcciones();\n\t}\n\t\n\tpublic legalizarAction() {\n\t\tthis.confirmationService.confirm({\n\t\ttarget: event.target,\n\t\tmessage:  '¿Desea ejecutar proceso?',\n\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\theader: this.translateService.instant('confirmar'),\n\t\taccept: async () => {\n\t\t\tawait this.setLegalizarAction()\n\t\t}\n\t\t})\n\t}\n\n  async setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.campos.forEach(async element => {\n\t\t\tif (element.tipo === 'F'){\n\t\t\t  \telement.valor = element.valor ? new Date(element.valor) : null;\n\t\t\t} else if (element.tipo === 'H'){\n\t\t\t  \tif (element.valor){\n\t\t\t\t\tlet listaValortemp = [];\n\t\t\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t\tlistaValortemp.push ({label: element2, value:element2})\n\t\t\t\t\t})\n\t\t\t\t\telement.valor = listaValortemp\n\t\t\t\t}\n\t\t\t} else if (element.tipo === 'P'){\n\t\t\t  \tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id ){\n\t\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t  readonly: !this.formularioDinamico?.editable,\n\t\t\t\t\t  showDialog: false,\n\t\t\t\t\t  label: element.valor,\n\t\t\t\t\t  mostrarX: false,\n\t\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t\t}\n\t\t\t  });\n\t\n\t\t\t} else {\n\t\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\t\telement.valor = element.valor.trim()\n\t\t\t\t  }\n\t\t\t}\n\t\t  });\n\t\t  await this.utilsService.sleep(500)\n\t\t  this.formularioDinamico?.ngAfterViewInit();\n\t\t  this.utilsService.resizeWindowIFrame();\n\t\t  //this.formularioDinamico.campos = this.campos;\n\t}\n\n\tpublic async setLegalizarAction() {\n\t\tthis.procesoFinal=true;\n\t\t//popupEspera = getBean(PopupEspera.class);\n\t\t//popupEspera.mostrar('Generando... ');\n\t\t//setPopupSeguimiento(getBean(PopUpSeguimiento.class));\n\t\t//Thread th = new Thread(this);\n\t\tawait this.run();\n\t}\n\t\n\t/**\n\t * \n\t */\n\tpublic async legalizacion(llave: string){\n\t\tthis.inicializa();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llaveBase = llave;\t\t\n\t\tthis.mostrarProcesoCombinacion = false;\n\t\tthis.actoEspecialBorrarDTO = await this.actoEspecialService.traerActoEspecial( llave).toPromise();\n\t\tif(this.actoEspecialBorrarDTO == null){\n\t\t\tthis.notificacionesService.showInfo('No pudo seleccionar datos acto especial');\n\t\t\treturn;\n\t\t}\n\t\tthis.actoEspecialBorrarDTO = this.actoEspecialService.formatearActoEspecial(this.actoEspecialBorrarDTO);\n\t\tthis.pedirIngresoDatosCedula = false;\t\t\n\t\tthis.accion = (this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.derogado != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t\n\t\tthis.cabecera(this.actoEspecialBorrarDTO.identifica, this.actoEspecialBorrarDTO.empresa);\t\t\n\t\t\n\t\tawait this.cargarCombos(this.actoEspecialBorrarDTO.formato);\n\t\tthis.mostrar = true;\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\t\n\t\tthis.validaIngresoDatosCedula();\n\t\t\n\t\t//cargamos la lista de Filtro si la accion es AM (Asignacion Basica Masiva)\n\t\tif((this.isMostrarSeleccionAccionAM() || (this.isMostrarSeleccionAccionNoAplica() && !this.pedirIngresoDatosCedula))){\n\t\t\tawait this.cargarListaFiltro();\n\t\t}\n\t\t//cargamos los hijos con sus respectivos contratos\n\t\tif(this.isMostrarSeleccionAccionAP() || this.isMostrarSeleccionAccionGP()){\n\t\t\tthis.cargarEmpleadoHijos();\n\t\t}\n\t\tthis.mostrarBtnNuevoAccion = false;\n\t\tthis.mostrarVariablesAcciones();\n\t}\n\t\n\tpublic async eliminar(llave: string){\n\t\tthis.inicializa();\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\t\tthis.llaveBase = llave;\n\t\t\n\t\tthis.actoEspecialBorrarDTO = await this.actoEspecialService.traerActoEspecial(llave).toPromise();\n\t\tif(this.actoEspecialBorrarDTO == null){\n\t\t\tthis.notificacionesService.showInfo('No pudo seleccionar datos acto especial');\n\t\t\treturn;\n\t\t}\n\t\tthis.actoEspecialBorrarDTO = this.actoEspecialService.formatearActoEspecial(this.actoEspecialBorrarDTO);\n\t\tthis.pedirIngresoDatosCedula = false;\t\t\n\t\tthis.accion = (this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.derogado != null) ? this.parametroFormatoPipe.ACCION_CORRECCION : this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t\n\t\tthis.cabecera(this.actoEspecialBorrarDTO.identifica, this.actoEspecialBorrarDTO.empresa);\t\t\n\t\t\n\t\tawait this.cargarCombos(this.actoEspecialBorrarDTO.formato);\n\t\tthis.mostrar = true;\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\tthis.valoresEditablesFormulario(false);\n\t\tawait this.procesoCombinacion();\n\t\tthis.mostrarProcesoCombinacion = true;\n\t\t\n\t\tthis.validaIngresoDatosCedula();\n\t\t\n\t\t//cargamos la lista de Filtro si la accion es AM (Asignacion Basica Masiva)\n\t\tif((this.isMostrarSeleccionAccionAM() || (this.isMostrarSeleccionAccionNoAplica() && !this.pedirIngresoDatosCedula))){\n\t\t\tawait this.cargarListaFiltro();\n\t\t}\n\t\t\n\t\t//cargamos los hijos con sus respectivos contratos\n\t\tif(this.isMostrarSeleccionAccionAP() || this.isMostrarSeleccionAccionGP()){\n\t\t\tthis.cargarEmpleadoHijos();\n\t\t}\n\t\t\n\t\tthis.mostrarBtnNuevoAccion = false;\n\t\t\n\t\tthis.mostrarVariablesAcciones();\n\t\t\n\t}\n\t\n\tpublic reporte(actoDtoPdf: ActoAdministrativosPdfModel){\n\t\t\n\t\t\t/*AutenticacionDTO autenticacionDTO = getCredencial();\n\t\t\tParametroReporte parametroReporte = new ParametroReporte(ReportesWebUtil.rutaJasper(FacesUtils.servletContext()));\n\t\t\tparametroReporte.nombreReporte('actos/actosAdministrativosAccionAM');\n\t\t\tparametroReporte.tipoReporte(this.generalPipe.ARCHIVO_PDF);\n\t\t\tparametroReporte.llaveConexion(autenticacionDTO.dataSource());\n\t\t\tMap<String, Object> parametros = new HashMap<String, Object>();\n\t\t\tparametros.put('PARAMETRO_LLAVE_ACTO', this.actoEspecialBorrarDTO.llave);\n\t\t\t\t\t\t\n\t\t\tparametroReporte.parametros(parametros);\n\t\t\t\n\t\t\tInputStream input = new ByteArrayInputStream(generadorReporte.generarReporteTipo(parametroReporte.llaveConexion(),actoTemporal, parametroReporte.nombreReporteReal(), parametroReporte.parametros(), parametroReporte.tipoReporte(), getPropiedadSistema(PropiedadesSistemaDTO.RUTA_TEMPORAL)));\n\t\t\t\n\t\t\tFile archivo=new File(getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)+this.generalPipe.BARRA_INCLINADA_DERECHA+actoEspecialBorrarDTO.llave+this.generalPipe.PUNTO+this.generalPipe.ARCHIVO_PDF);\n\t\t\t\n\t\t\tFileOutputStream DestinoF = new FileOutputStream(archivo);  \n\t\t\tint c;  \n\t        while( ( c = input.read() ) != -1 ) {  \n\t             DestinoF.write(c);  \n\t        } \n\t        DestinoF.close();\n\t        actoDtoPdf.resultado(true);\n\t        actoDtoPdf.rutaPdf(archivo.absolutePath());\n\t      */  \n\t\t\n\t}\n\t\n\tpublic async cargarListaFiltro(){\n\t\tconsole.log(this.actoEspecialBorrarDTO.seleccion)\n\t\tthis.actoEspecialBorrarDTO.listaFiltro = await this.actoEspecialService.listarSeleccionFiltroActoEspecial({seleccion: this.actoEspecialBorrarDTO.seleccion}).toPromise();\n\t}\n\t\n\tpublic cargarEmpleadoHijos(){\n\t\tif(this.actoEspecialBorrarDTO.listaHijos == null){\n\t\t\treturn;\n\t\t}/*\n\t\tfor (let i=0; i<this.actoEspecialBorrarDTO.listaHijos.length;i++) {\n\t\t\tvar eml = new EmpleadoModel();\n\t\t\teml.empresa = this.actoEspecialBorrarDTO.listaHijos.(i).empresa;\n\t\t\teml.contrato = this.actoEspecialBorrarDTO.listaHijos.(i).identifica;\n\t\t\teml = this.generalService.queryForObject(  eml);\n\t\t\tif(eml != null){\n\t\t\t\tthis.actoEspecialBorrarDTO.listaHijos.(i).empleadoDTO(eml);\n\t\t\t}\n\t\t}*/\n\t}\n\t\t\n\tpublic volver(){\n\t\tthis.mostrarProcesoCombinacion = false;\n\t\t//colocamos los valoress del formulario como editables\n\t\tthis.valoresEditablesFormulario(true);\n\t}\n\n\tpublic async cargaListaFormularioLeglizadaYcampo(){\n\t\tvar datoDTO = new FormatoDatoModel();\n\t\tdatoDTO.formato = this.actoEspecialBorrarDTO.formato;\n\t\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n\t\t//CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n\t\tawait this.crearFormularioListaParaCampo(true)\n\t\tawait this.crearFormularioListaLegalizada();\n\t}\t\n\t\n\tpublic setReporte(obj: SeleccionReporteModel){\n\t\tif(obj != null){\n\t\t\tthis.actoEspecialBorrarDTO.listaFiltro.push(obj);\n\t\t}\t\t\t\n\t}\n\t\n\tpublic setReporteModifica(obj: SeleccionReporteModel, eliminar: boolean){\n\t\tif(this.seleccionReporteTmp == null){\n\t\t\treturn;\n\t\t}\n\t\tconst indice = this.actoEspecialBorrarDTO.listaFiltro.findIndex(objeto => objeto.llaveTabla === obj.llaveTabla);\n\t\tif (eliminar) {\n\t\t\tif (indice !== -1) {\n\t\t\t\tthis.actoEspecialBorrarDTO.listaFiltro.splice(indice, 1);\n\t\t\t}\n\t\t} else {\n\t\t\tif (indice !== -1) {\n\t\t\t\tthis.actoEspecialBorrarDTO.listaFiltro[indice] = obj;\n\t\t\t  }\n\t\t}\n\t}\n\t\n\tpublic verPopupSeleccionReporte(event){\n\t\tif(this.mostrarProcesoCombinacion || !this.mostrarBtnNuevoAccion || !this.editarTabla){\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edicion');\n\t\t\treturn ; \n\t\t}\n\t\tthis.seleccionReporteTmp = Object.assign({}, event.data);\n\t\tthis.nuevoColumnaEspecial = false;\n\t\tthis.verPopupColumnaEspecial = true;\n\t\t//(SeleccionReporteDTO)event.object(); \n\t\t//getBean(PopupColumnaEspecialBean.class).init('#{actosEspecialesBean.reporteModifica}', seleccionReporteTmp, false);\n\t}\n\n\tregresaPopupColumnaEspecial(event){\n\t\tconsole.log(event)\n\t\tthis.verPopupColumnaEspecial = false\n\t\tlet objeto = event?.objeto;\n\t\tif (event?.eliminar) {\n\t\t\tthis.setReporteModifica(objeto, true);\n\t\t\treturn;\n\t\t}\n\t\tlet nuevo: boolean = event?.nuevo;\n\t\tif (nuevo == undefined || nuevo == null) {\n\t\t\treturn;\n\t\t}\n\t\tif (nuevo) {\n\t\t\tthis.setReporte(objeto);\n\t\t} else {\n\t\t\tthis.setReporteModifica(objeto, false);\n\t\t}\n\t}\n\n\tpublic setRecibeEml(eml: EmpleadoModel){\n\t\tif(eml != null){\n\t\t\tvar tmp = new ActoEspecialModel();\n\t\t\ttmp.empleadoDTO = eml;\n\t\t\tthis.actoEspecialBorrarDTO.listaHijos.push(tmp);\n\t\t}\n\t}\n\tpublic seleccionaHijoAP(evento){\n\t\tif(this.mostrarProcesoCombinacion || !this.mostrarBtnNuevoAccion){\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edicion');\n\t\t\treturn null;\n\t\t}\n\t\tthis.actoTemporal = evento.data;//(ActoEspecialDTO)evento.object();\n\t\t//PopupHijoActoEspecialBean.popup().init('#{actosEspecialesBean.hijoModifica}', actoTemporal,true,false,listaRoloItem,listaMotivos);\n\t\treturn null;\n\t}\n\tpublic seleccionaHijoGP(evento){\n\t\tif(this.mostrarProcesoCombinacion || !this.mostrarBtnNuevoAccion){\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edicion');\n\t\t\treturn null;\n\t\t}\n\t\tthis.actoTemporal = evento.data;//(ActoEspecialDTO) evento.object();\n\t\t//PopupHijoActoEspecialBean.popup().init('#{actosEspecialesBean.hijoModifica}', actoTemporal,false,true,listaRoloItem,listaMotivos);\n\t\treturn null;\n\t}\n\tpublic setHijoNuevo(acto: ActoEspecialModel){\n\t\tif(acto != null){\n\t\t\tthis.actoEspecialBorrarDTO.listaHijos.push(acto);\n\t\t}\n\t}\n\tpublic setHijoModifica(acto: ActoEspecialModel){\n\t\tif(acto != null && this.actoTemporal != null){\n\t\t\t//if(this.actoEspecialBorrarDTO.listaHijos.remove(actoTemporal)){\n\t\t\t\t//this.actoEspecialBorrarDTO.listaHijos.push(acto);\n\t\t\t//}\t\t\t\n\t\t}\n\t}\n\tpublic cargarNuevoListaHijoAP(){\n\t\tthis.nuevoHijoActoEspecial = true;\n\t\tthis.actoHijoAdicionar = new ActoEspecialModel();\n\t\tthis.actoHijoAdicionar.empleadoDTO = new EmpleadoModel();\n\t\t//PopupHijoActoEspecialBean.popup().init('#{actosEspecialesBean.hijoNuevo}', new ActoEspecialDTO(),true,false,listaRoloItem,listaMotivos);\n\t}\n\tpublic cargarNuevoListaHijoGP(){\n\t\tthis.nuevoHijoActoEspecial = true;\n\t\tthis.actoHijoAdicionar = new ActoEspecialModel();\n\t\tthis.actoHijoAdicionar.empleadoDTO = new EmpleadoModel();\n\t\t//PopupHijoActoEspecialBean.popup().init('#{actosEspecialesBean.hijoNuevo}', new ActoEspecialDTO(),false,true,listaRoloItem,listaMotivos);\n\t}\n\tpublic cargarNuevoSeleccionColumna(){\n\t\tthis.seleccionReporteTmp = new SeleccionReporteModel();\n\t\tthis.nuevoColumnaEspecial = true;\n\t\tthis.verPopupColumnaEspecial = true;\n    //getBean(PopupColumnaEspecialBean.class).init('#{actosEspecialesBean.reporte}', new SeleccionReporteDTO(), true);\n\t}\n\t\n\tpublic setFuncionario(empleadoDTO: EmpleadoModel){\n\t\tif(empleadoDTO != null){\n\t\t\tthis.empleadoDTO = empleadoDTO; \n\t\t\tthis.mostrarFoto = true;\n\t\t\tthis.actoEspecialBorrarDTO.empleadoDTO = empleadoDTO;\n\t\t\tthis.actoEspecialBorrarDTO.documentoEmpleado = empleadoDTO.documento;\n\t\t\tthis.actoEspecialBorrarDTO.identifica = empleadoDTO.contrato;\n\t\t\tthis.cedulaFiltro = empleadoDTO.documento;\n\t\t\tthis.cabecera(empleadoDTO.contrato,empleadoDTO.empresa);\t\t\t\t\t\n\t\t}\n\t}\t\n\t\n\tpublic cabecera(contrato: number, empresa: number){\n\t\tif(contrato != 0){\n\t\t\tthis.actoEspecialBorrarDTO.empleadoDTO = this.empleadoDTO;\n\t\t\tthis.actoEspecialBorrarDTO.identifica = contrato;\n\t\t\tthis.mostrarFoto = true;\n\t\t}\n\t}\n\t\n\tpublic validarDatosCedulaEmpleado(){\n\t\tvar valida: boolean = true;\n\t\tvar cedula: number = null;\n\t\tif(this.actoEspecialBorrarDTO.empleadoDTO != null){\t\t\t\n\t\t\tcedula = this.actoEspecialBorrarDTO.empleadoDTO.cedula;\n\t\t}\n\t\t//valida &= Validador.validarDecimal(cedula, 'form_actoEspeciales:identifica_especial', true, 22,126);\t\t\t\n\t\t\t\t\n\t\treturn valida;\n\t}\t\n\t\t\n\tpublic async aplicarDatos(){\n\t\t//primero verificamos que debemos validar\n\t\t//1. datos empleado\n\t\tif(this.pedirIngresoDatosCedula && !this.validarDatosCedulaEmpleado()){\n\t\t\treturn null;\n\t\t}\n\t\t//2. formulario dinamico\n\t\tif(!this.formularioDinamico.validar()){\n\t\t\treturn null;\n\t\t}\n\t\tthis.actoEspecialBorrarDTO = this.formularioDinamico.getObjecto();\n\t\t\n\t\tif ( this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION) ) {\n\t\t\tawait this.generalService.update(new GeneralModel('ActoEspecialDTO', null, false, this.actoEspecialBorrarDTO)).toPromise();\n\t\t\tawait this.procesoCombinacion();\n\t\t\tthis.mostrarProcesoCombinacion = true;\n\t\t\treturn null;\n\t\t}\n\t\tif(!this.isMostrarSeleccionAccionAE() && !this.isMostrarSeleccionAccionLP()){\n\t\t\tif((this.isMostrarSeleccionAccionGP() || this.isMostrarSeleccionAccionAP()) && this.actoEspecialBorrarDTO.listaHijos.length == 0){\n\t\t\t\tthis.notificacionesService.showInfo('No se han relacionados registros de hijos.');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if((this.isMostrarSeleccionAccionAM()) && this.actoEspecialBorrarDTO.listaFiltro.length == 0){\n\t\t\t\tthis.notificacionesService.showInfo('No se han relacionados registros de filtro.');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif ( !this.pedirIngresoDatosCedula && this.seguimiento ) {\n\t\t\t//getBean(PopupEmpleado.class).buscar('#{actosEspecialesBean.ejecutarSeguimiento}');\n\t\t}\n\t\telse {\n\t\t\tawait this.ejecucionElaboracion(this.actoEspecialBorrarDTO.identifica);\n\t\t}\n\t\t\t\n\t}\n\n\tpublic async setEjecutarSeguimiento(empleado: EmpleadoModel) {\n\t\tawait this.ejecucionElaboracion(empleado.contrato);\n\t}\n\n\tprivate async ejecucionElaboracion(contrato: number) {\n\t\tthis.contratoSeguimiento=contrato;\n\t\tthis.procesoFinal=false;\n\t\t//popupEspera = getBean(PopupEspera.class);\n\t\t//popupEspera.mostrar('Elaborando... ');\n\t\t//setPopupSeguimiento(getBean(PopUpSeguimiento.class));\n\t\t//Thread th = new Thread(this);\n\t\t//th.start();\n    \tawait this.run();\n\t}\n\t/**\n\t * Método de retorno del evento de cierre del popup de seguimiento Muestra mensaje de éxito del proceso\n\t * \n\t * @param objeto\n\t *            Se utiliza este parámetro para dar al método la forma de un método SET\n\t */\n\tpublic async setCierreSeguimiento(objeto: string) {\n\t\tthis.formularioDinamico.modificar(this.actoEspecialBorrarDTO, true);\n\t\tif(this.utilsService.isBlank(this.actoEspecialBorrarDTO.mensaje)){\n\t\t\tif(this.empleadoDTO != null){\n\t\t\t\tthis.actoEspecialBorrarDTO.empleadoDTO = this.empleadoDTO;\n\t\t\t\tthis.actoEspecialBorrarDTO.identifica = this.empleadoDTO.contrato;\n\t\t\t}\n\t\t\t\n\t\t\tawait this.procesoCombinacion();\n\t\t\tthis.mostrarProcesoCombinacion = true;\n\t\t\t\n\t\t\t//colocamos los valoress del formulario como no editable\n\t\t\tthis.valoresEditablesFormulario(false);\n\t\t}\n\t\telse {\n\t\t\tthis.notificacionesService.showInfo(this.actoEspecialBorrarDTO.mensaje);\n\t\t}\n\t\t\n\t\tif (this.seguimiento) {\n\t\t\tthis.verPopupSeguimiento = true;\n\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento,null);\n\t\t}\n\n\t}\n\t\n\t/**\t \n\t * Metodo que me genera el reporte pdf\n\t */\n\tpublic async procesoCombinacion(){\n\t\t\n\t\t//cada vez que se genere un proceso de combinacion el nombre de archivo quedara null, en donde nos sirvara para saber si el \n\t\t//proceso de combinacion se efectuo bien, por si este se genero correctamente esta variable que da con el nombre con que se genero el \n\t\t//el archivo..\n\t\t\n\t\tthis.llaveNombreArchivoProcesoCombinacion = null;\n\t\t\t\t\n\t\tthis.actoDtoPdf = new ActoAdministrativosPdfModel();\n\t\tvar mostrarPdfoWord: boolean = false;\n\t//AHORA VERIFICAMOS SI DEBEMOS EJECUTAR EL PROCESO DE COMBINACION \n\t//SOLO GENERAMOS ESTE PROCESO SI LA ACCION ES ES DIFERENTE DE AM\n\t\tif(this.isMostrarSeleccionAccionAM() && this.listaSoporteItem.length == 0){\n\t\t\tthis.reporte(this.actoDtoPdf);\n\t\t} else {\n\t\t\tvar listaMarcador: any[] = [];\t\t\t\t\t\t\n\t\t\tvar columnas: string[] = [];\t\t\t\t\t\t\n\t\t\tcolumnas.push('C_LLAVE');\n\t\t\tvar valores: any[] = [];\n\t\t\tvalores.push(this.actoEspecialBorrarDTO.llave);\n\t\t\t\n\t\t\tvar usf = new UsuarioFormatoModel();\n\t\t\tusf.usuario = this.authService.getTokenKey('usuario');\n\t\t\tusf.grupo = this.actoEspecialBorrarDTO.grupoVincula;\n\t//\t\t\t\tusf.vinculacion(new Integer(0));\n\t\t\tusf.tipo = 'US';\n\t\t\tusf.formato = this.actoEspecialBorrarDTO.formatoDTO.llave;\n\t\t\tusf = await this.generalService.queryForObject(new GeneralModel('UsuarioFormatoDTO', null, false, usf)).toPromise();\n\t\t\t\n\t\t\t//verificamos en que formato vamos a mostrar este acto\n\t\t\t//si en formato pdf o formato word\t\t\t\t\n\t\t\tif(usf == null || usf.informe == null){\n\t\t\t\tmostrarPdfoWord = false;\n\t\t\t} else{\n\t\t\t\t//si es F, Mostramos pdf\n\t\t\t\t//sino, mostramos word\n\t\t\t\tmostrarPdfoWord = ('P' == usf.informe.trim());\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.actoDtoPdf = await this.actoCambioEmpleadoService.generarPdf({\n\t\t\t\tcolumnas: columnas, valores: valores, listaMarcador: listaMarcador, soportePlanilla: this.actoEspecialBorrarDTO.soporte\n\t\t\t\t}).toPromise()\n\t\t\t}\n\n\t\t\tconsole.log('this.actoDtoPdf')\n\t\t\tconsole.log(this.actoDtoPdf)\n\t\t\t\t\t\t\n\t\t\t/*MostrarDatosCombinacionActoEspecialBean bean = (MostrarDatosCombinacionActoEspecialBean)FacesUtils.bean('mostrarDatosCombinacionActoEspecialBean');\n\t\t\tbean.actoEspecialDTO(this.actoEspecialBorrarDTO);\n\t\t\tbean.formatoDTO(this.actoEspecialBorrarDTO.formatoDTO);\t\t\n\t\t\tbean.deDondeVengo(deDondeVengo);\n\t\t\tbean.lLAVE_BASE(llaveBase);\n\t\t\tbean.mostrarPdf(actoDtoPdf.isResultado());\n\t\t\tbean.mostrarWord(mostrarPdfoWord);\n\t\t\tbean.rutaFisicaWord(actoDtoPdf.rutaWord());*/\n\t\t\t\n\t\t\tif(this.actoDtoPdf.resultado){\n\t\t\t\tthis.llaveNombreArchivoProcesoCombinacion = this.actoDtoPdf.rutaPdf;\n\t\t\t\tthis.archivoSalida = this.actoDtoPdf.rutaWord;\n\t\t\t\t//bean.ruta(actoDtoPdf.rutaPdf());\t\t\t\t\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( this.actoDtoPdf.mensaje != null) {\n\t\t\t\t\tthis.notificacionesService.showWarning(this.actoDtoPdf.mensaje);\n\t\t\t\t}\n\t\t\t\t/*else if (this.actoDtoPdf.exceptionResultado != null ) {\n\t\t\t\t\tthis.notificacionesService.showError(this.actoDtoPdf.exceptionResultado);\n\t\t\t\t}*/\n\t\t\t}\n\t\t\t//bean.mostrarFotoEml(false);\n\t\t\t//bean.mostrarFotoHojaVida(true);\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)){\n\t\t\tthis.borrarRegistro(this.actoEspecialBorrarDTO.llave);\n\t\t}\t\t\n\t}\n\t\n\tpublic async procesoGeneralAnexo(){\n    \t\n    \t\t//despues de cada aplicar y que el proceso se realize de forma correcta\n\t\t\t//guardamos una registro de ese archivo en la tabla anexoHojaVida_ahv\n\t\t\t//1. SI ESTAMOS REALIZANDO UNA ELABORACION, INSERTAMOS UN NUEVO REGISTRO ANEXO\n\t\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)){\n\t\t\t\tawait this.actoEspecialService.registrarAnexoHojaActoEspecial({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, actoEspecialDTO: this.actoEspecialBorrarDTO, eliminar: false, llaveElimina: null, login: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t\t}\t\t\t\n\t\t\t//2.SI ESTAMOS RELIZANDO UNA MODIFICACION o LEGALIZACION, ELIMINAMOS EL AL ANTERIOR E INSERTAMOS UNO NUEVO\n\t\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\t\tawait this.actoEspecialService.registrarAnexoHojaActoEspecial({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, actoEspecialDTO: this.actoEspecialBorrarDTO, eliminar: true, llaveElimina: this.llaveBase, usuario: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t\t}\n\t\t\t//2.SI ESTAMOS RELIZANDO UNA ELIMINACION, ELIMINAMOS EL ANEXO\n\t\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\t\tawait this.actoEspecialService.registrarAnexoHojaActoEspecial({llaveNombreArchivoProcesoCombinacion: null, actoEspecialDTO: this.actoEspecialBorrarDTO, eliminar: true, llaveElimina: this.llaveBase, usuario: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t\t}\n\t\t\n    }\n\t\n\t/**\n\t * Metodo que borra el registro insertado cuando se genera algun error..\n\t */\n\tpublic borrarRegistro(llave: string){\n\t\t//BORRAMOS EL REGITRO\n\t\t\n\t\t\tif(llave != null){\n\t\t\t\tthis.actoEspecialService.borrarActoEspecial( this.actoEspecialBorrarDTO.llave).subscribe(data => {});\n\t\t\t}\n\t}\n\t    \n\tpublic async aplicarFinal(){\n\t\ttry {\t\t\t\t\n\t\t\tif(!this.utilsService.isBlank(this.actoEspecialBorrarDTO.mensaje)){\n\t\t\t\tthis.notificacionesService.showInfo(this.actoEspecialBorrarDTO.mensaje);\n\t\t\t\treturn null;\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tawait this.procesoGeneralAnexo();\n\t\t\t//String nombreArchivo = getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)+llaveBase+this.generalPipe.PUNTO+this.generalPipe.ARCHIVO_PDF;\n\t\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\t\t/**\n\t\t\t\t * verificamos que el archivo de este acto, se halla genereado bien\n\t\t\t\t */\n\t\t\t\tif(this.actoDtoPdf != null && this.actoDtoPdf.rutaPdf != null && this.actoDtoPdf.mensaje == null){\n\t\t\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actosEspecialesBean.terminar}', this.actoEspecialBorrarDTO.formatoDTO, nombreArchivo);\n\t\t\t\t\treturn null;\n\t\t\t\t}\t\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t\tthis.notificacionesService.showInfo(titulo);\n      //this.setTerminar({})\n\t\t} catch (error) {\t\t\t\t\n\t\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)){\n\t\t\t\tthis.borrarRegistro(this.actoEspecialBorrarDTO.llave);\n\t\t\t}\t\t\t\n\t\t}\t\t\n\t\t\n\t\treturn null;\n\t}\n\tpublic async setRegresaHilo(s){\n\t\tif ( this.procesoFinal ) {\n\t\t\tif(!this.utilsService.isBlank(this.actoEspecialBorrarDTO.mensaje)){\n\t\t\t\tthis.notificacionesService.showInfo(this.actoEspecialBorrarDTO.mensaje);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.regresarActoAdmin();\n\t\t\t/*String url = getUrl();\n\n\t\t\tif (url.endsWith('listadoEmpleados.xhtml')) {\n\t\t\t\tgetBean(EmpleadoBean.class).vistaVisualizar(null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (url.endsWith('ActosAdministrativos.xhtml')) {\n\t\t\t\tgetBean(ActosAdministrativosBean.class).traerListado();\n\t\t\t\treturn;\n\t\t\t}\t\n\t\t\tif(deDondeVengo != null && deDondeVengo == (this.parametroFormatoPipe.ORIGEN_DETALLE_ENTIDAD_CUOTA)){\n\t\t\t\tgetBean(DetalleEntidadCuotasPartesBean.class).vistaVisualizar(null);\n\t\t\t}else if(deDondeVengo != null && deDondeVengo == (this.parametroFormatoPipe.ORIGEN_LISTADO_ENTIDAD_CUOTA)){\n\t\t\t\tgetBean(ListadoCuotasPartesBean.class).vistaVisualizar(null);\n\t\t\t}*/\n\t\t}\n\t\telse {\n\t\t\tawait this.setCierreSeguimiento(null);\n\t\t}\n\t}\n\t\n\t/**\n\t * Este metodo cargo todos los combos que necesitan\n\t * entre ellos..(ListaSoporte, ListaCargo, ListaUnidadOrganizacion etc...\n\t * @param formato\n\t */\n\tprivate async cargarCombos(formato: number) {\n\t\tvar data = await this.actoEspecialService.cargarCombosActoEspecial(formato).toPromise();\n\t\tthis.listaFormatoDatoDocumentoItem = data.listaFormatoDatoDocumentoItem;\n\t\tthis.listaFirmaDocumentoItem = data.listaFirmaDocumentoItem;\n\t\tthis.listaRoloItem = data.listaRoloItem;\n\t\tthis.listaTipoCambioItem = data.listaTipoCambioItem;\n\t\tthis.listaSoporteItem = data.listaSoporteItem;\n\t\tthis.listaSucursalItem = data.listaSucursalItem;\n\t\tthis.listaMotivos = data.listaMotivos;\n\t\tthis.listaAdicional2 = data.listaAdicional2;\n\t\tthis.listaAdicional3 = data.listaAdicional3;\n\t}\n\t\n\t/**\n\t * Metodo que carga el formulario dinamico \n\t * de la listaParaCampoLegalizada\n\t * @see LegalizarActoIngresoBean\n\t */\n\tpublic async crearFormularioListaLegalizada(){\n\t\tvar campos2:CampoFormularioModel[] = await this.actoEspecialService.listaCampoEspecial().toPromise(); \n\t\tawait this.utilsService.sleep(500);\n\t\tthis.formularioDinamico?.limpiar();\n\t\tthis.formularioDinamico?.camposCaracteristicaClear()\n    \n\t\t//adicionamos al grupo1, los datos del grupo 2\n\t\tthis.campos.forEach(g2 => {\n\t\t\tg2.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\tg2.obligatorio = false;\n\t\t\t//grupo1.Campos().push(g2);\n\t\t})\n    \n   \t\tfor (var dato of this.listaParaCampoLegalizada) {\n\t\t\tfor(var campo of campos2) {\n        \t\tif (campo.descripcion != dato.campo.trim()) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n\t\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)){\n\t\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)){\n\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.ROL)){\n\t\t\t\tcampo.lista = (this.listaRoloItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)){\n\t\t\t\tcampo.lista = (this.listaTipoCambioItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SOPORTE)){\n\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.MOTIVO)){\n\t\t\t\tcampo.lista = (this.listaMotivos);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_2)){\n\t\t\t\tcampo.lista = (this.listaAdicional2);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_3)){\n\t\t\t\tcampo.lista = (this.listaAdicional3);\n\t\t\t\t}if(campo.descripcion == (this.parametroFormatoPipe.ENTIDAD)){\n\t\t\t\tcampo.campoReferencia = this.actoEspecialBorrarDTO.formatoDTO.tipoServicio1;\n\t\t\t\t}\n\t\t\t\tcampo.obligatorio = true;\n\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\t\tthis.campos.push(campo);\n\t\t\t}\n\t\t}\n    \tthis.formularioDinamico?.modificar(this.actoEspecialBorrarDTO, true);\n\t}\n\t\n\t/**\n\t * Metodo que decide si se deben mostrar los siguiente valores en las (jspx)\n\t */\n\tpublic mostrarVariablesAcciones(){\n\t\tthis.mostrarFechaInicialAccionAp = false;\n\t\tthis.mostrarMotivoAccionGP = false;\n\t\tthis.mostrarRolAccionGP = false;\n\t\tthis.mostrarPrtoyectoAccionGP = false;\n\t\t\n\t\tif(this.actoEspecialBorrarDTO.formatoDTO.listaParaCampos == null){\n\t\t\treturn;\n\t\t}\n\t\tfor (var dto of this.actoEspecialBorrarDTO.formatoDTO.listaParaCampos) {\n\t\t\tif(dto.campo == null || dto.accion == null || dto.accion.trim() != this.parametroFormatoPipe.INGRESARE){\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif(dto.campo.trim() == (this.parametroFormatoPipe.ITEM_FECHA_INICIAL)){\n\t\t\t\tthis.mostrarFechaInicialAccionAp = true;\n\t\t\t}\n\t\t\tif(dto.campo.trim() == (this.parametroFormatoPipe.ITEM_MOTIVO)){\n\t\t\t\tthis.mostrarMotivoAccionGP = true;\n\t\t\t}\n\t\t\tif(dto.campo.trim() == (this.parametroFormatoPipe.ITEM_ROL)){\n\t\t\t\tthis.mostrarRolAccionGP = true;\n\t\t\t}\n\t\t\tif(dto.campo.trim() == (this.parametroFormatoPipe.ITEM_PROYECTO)){\n\t\t\t\tthis.mostrarPrtoyectoAccionGP = true;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Metodo que carga el formulario dinamico \n\t * de la lista para campo\n\t */\n\tpublic async crearFormularioListaParaCampo(obligatorio: boolean){\n\t\tvar campos2:CampoFormularioModel[] = await this.actoEspecialService.listaCampoEspecial().toPromise();\n\t\t\tawait this.utilsService.sleep(500);\n\t\t\tthis.formularioDinamico?.limpiar();\n\t\t\tthis.formularioDinamico?.camposCaracteristicaClear();\n\t\t\t\n\t\t\t\t\t\t\t\n\t\tfor (var dato of this.actoEspecialBorrarDTO.formatoDTO.listaParaCampos) {\n\t\tfor (var campo of campos2) {\n\t\t\tif(campo.descripcion == (dato.campo.trim())){\n\t\t\t\tconsole.log(campo)\n\t\t\t\n\t\t\t//Si se parametrizo el filtro, debemos obtener sus caracteristicas para mostrarlo\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.FILTRO)){\n\t\t\t\tthis.mostrarTabla = true;\n\t\t\t\tif(dato.accion != null){\n\t\t\t\tif(dato.accion.trim() == this.parametroFormatoPipe.INGRESARE){\n\t\t\t\t\tthis.editarTabla = true;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif(dato.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR)){\n\t\t\t\t\tthis.editarTabla = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\tcampo.obligatorio = obligatorio;\t\t\t\t\t\t\n\t\t\t//CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS QUE CUMPLAN CON DICHO CONDICION\n\t\t\tif(dato.accion != null && dato.accion.trim() != this.parametroFormatoPipe.INGRESARE){\n\t\t\t\tcampo.obligatorio = false;\n\t\t\t}\n\t\t\t//verificamos si el campo solo se pude visualizar\n\t\t\tif(dato.accion != null && dato.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR)){\n\t\t\t\tcampo.editable = 'L';\n\t\t\t\tcampo.obligatorio = false;\n\t\t\t}\n\t\t\t//CARGAMOS EL COMBO PARA CADA CAMPO\t\t\t\t\t\t\t\t\t\t\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\t\t\t\t\t\t\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)){\n\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)){\n\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.ROL)){\n\t\t\t\tcampo.lista = (this.listaRoloItem);\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)){\n\t\t\t\tcampo.lista = (this.listaTipoCambioItem);\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SOPORTE)){\n\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.MOTIVO)){\n\t\t\t\tcampo.lista = (this.listaMotivos);\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_2)){\n\t\t\t\tcampo.lista = (this.listaAdicional2);\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.LISTA_ADICIONAL_3)){\n\t\t\t\tcampo.lista = (this.listaAdicional3);\n\t\t\t}\n\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.ENTIDAD)){\n\t\t\t\tcampo.campoReferencia = this.actoEspecialBorrarDTO.formatoDTO.tipoServicio1;\n\t\t\t}\n\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\tcampo.descripcionAdicional = dato.campo;\n\t\t\tthis.campos.push(campo);\t\t\t\t\t\n\t\t\t}\n\t\t}}\n\t\tthis.formularioDinamico?.modificar(this.actoEspecialBorrarDTO, true);\n\t\tawait this.setValorCampos();\n\t} \n\t\n\tpublic valoresEditablesFormulario(editable: boolean){\n\t\tthis.formularioDinamico.editable = editable;\n\t}\n\tpublic regresarActoAdmin(){\n\t\tthis.regresarAction.emit(false);\n\t\t/*String url = getUrl();\n\t\tif (url.endsWith('listadoEmpleados.xhtml')) {\n\t\t\tgetBean(EmpleadoBean.class).vistaVisualizar(null);\n\t\t\treturn null;\n\t\t}\n\t\tif (url.endsWith('ActosAdministrativos.xhtml')) {\n\t\t\tgetBean(ActosAdministrativosBean.class).traerListado();\n\t\t\treturn null;\n\t\t}\n\n\t\tif(deDondeVengo != null && deDondeVengo == (this.parametroFormatoPipe.ORIGEN_DETALLE_ENTIDAD_CUOTA)){\n\t\t\tgetBean(DetalleEntidadCuotasPartesBean.class).vistaVisualizar(null);\n\t\t}else if(deDondeVengo != null && deDondeVengo == (this.parametroFormatoPipe.ORIGEN_LISTADO_ENTIDAD_CUOTA)){\n\t\t\tgetBean(ListadoCuotasPartesBean.class).vistaVisualizar(null);\n\t\t}\n\t\treturn null;*/\n\t}\n\t\n\tpublic isMostrarBotonPopup(){\n\t\treturn this.deDondeVengo == null || this.parametroFormatoPipe.ORIGEN_DETALLE_ENTIDAD_CUOTA == this.deDondeVengo;\n\t}\n\t\n\t\n\t/**\n\t * @return\n\t */\n\tpublic verEntidad(event){\n\t\tif (this.mostrarProcesoCombinacion || !this.mostrarBtnNuevoAccion){\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edicion');\n\t\t\treturn null;\n\t\t}\t\n\t\tvar actoEspecial: ActoEspecialModel = event.data;//(ActoEspecialDTO) event.object();\n\t\t//getBean(PopUpEntidadesPorPagarBean.class).eliminar('#{actosEspecialesBean.agregarHijos}', this.actoEspecialBorrarDTO.listaHijos, actoEspecial); \n\t\treturn null;\n\t}\n\t/**\n\t * @return\n\t */\n\tpublic verProrrogaEmpleados(event){\n\t\tif(this.mostrarProcesoCombinacion || !this.mostrarBtnNuevoAccion){\n\t\t\tthis.notificacionesService.showWarning('No tiene permisos de edicion');\n\t\t\treturn null;\n\t\t}\n\t\tvar actoEspecial: ActoEspecialModel = event.data;\n\t\t//PopUpEmpleadoProrrogaBean.popup().eliminar('#{actosEspecialesBean.agregarHijos}', this.actoEspecialBorrarDTO.listaHijos, actoEspecial); \n\t\treturn null;\n\t}\n\t\n\tpublic nuevaEntidad(){\n\t\tvar actoEspecial: ActoEspecialModel = this.formularioDinamico.getObjecto();//(ActoEspecialDTO) this.formularioDinamico.getObjecto();\n\t\tvar titulo = this.generalPipe.ESPACIO_BLANCO;\n\t\tfor (var campo of this.campos) {\n\t\tif(campo.campo == 'fechaFinal'){\n\t\t\ttitulo = campo.descripcion;\n\t\t\tbreak;\n\t\t}\n    }\n\t\t\n\t\ttitulo = ((this.utilsService.validarCampoObligatorio(titulo)||(this.utilsService.isBlank(titulo)))?'Fecha Final':titulo);\n\t\t\n\t\tif(actoEspecial == null ){\n\t\t\tthis.notificacionesService.showInfo('Debe configurar o ingresar ' + titulo);\n\t\t\treturn null;\n\t\t}\n\t\tif(actoEspecial.fechaFinal == null){\n\t\t\tthis.notificacionesService.showInfo('Debe configurar o ingresar ' + titulo);\n\t\t\treturn null;\n\t\t}\n\t\t//getBean(PopUpEntidadesPorPagarBean.class).traerInformacion('#{actosEspecialesBean.agregarHijos}', actoEspecial); \n\t\treturn null;\n\t}\n\tpublic nuevaProrrogaPersona(){\n\t\tvar actoEspecial: ActoEspecialModel = this.formularioDinamico.getObjecto();//(ActoEspecialDTO) this.formularioDinamico.getObjecto();\n\t\tvar titulo = this.generalPipe.ESPACIO_BLANCO;\n\t\tfor (var campo of this.campos) {\n\t\tif(campo.campo == ('fechaFinal')){\n\t\t\ttitulo = campo.descripcion;\n\t\t\tbreak;\n\t\t}\n\t\t}\n\t\t\n\t\ttitulo = this.utilsService.isBlank(titulo)?'Fecha Final':titulo;\n\t\t\n\t\tif(actoEspecial == null ){\n\t\t\tthis.notificacionesService.showInfo('Debe configurar o ingresar ' + titulo);\n\t\t\treturn null;\n\t\t}\n\t\tif(actoEspecial.fechaFinal == null){\n\t\t\tthis.notificacionesService.showInfo('Debe configurar o ingresar ' + titulo);\n\t\t\treturn null;\n\t\t}\n\t\t//PopUpEmpleadoProrrogaBean.popup().nuevo('#{actosEspecialesBean.agregarHijos}', actoEspecial); \n\t\treturn null;\n\t}\n\t\n\tpublic setAgregarHijos(listaEntidades){\n\t\tthis.actoEspecialBorrarDTO.listaHijos = listaEntidades;\n\t}\n\n\tsetRegresoHijoActo(empleadoDTO) {\n\t\tif (empleadoDTO) {\n\t\t\tthis.actoHijoAdicionar.empleadoDTO = empleadoDTO;\n\t\t}\n\t}\n\n\tvalidarHijo(): boolean {\n\t\tvar v = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.actoHijoAdicionar.empleadoDTO.contrato);\n\t\tif (this.mostrarFechaInicialAccionAp) {\n\t\t\tv = v && this.utilsService.validarCampoObligatorio(this.actoHijoAdicionar.fechaInicial);\n\t\t}\n\t\tif (this.mostrarMotivoAccionGP) {\n\t\t\tv = v && this.utilsService.validarCampoObligatorio(this.actoHijoAdicionar.motivo);\n\t\t}\n\t\tif (this.mostrarRolAccionGP) {\n\t\t\tv = v && this.utilsService.validarCampoObligatorio(this.actoHijoAdicionar.rol);\n\t\t}\n\t\tif (this.mostrarPrtoyectoAccionGP) {\n\t\t\tv = v && this.utilsService.validarCampoObligatorio(this.actoHijoAdicionar.proyecto);\n\t\t}\n\t\treturn v;\n\t}\n\n\tadicionarHijo(){\n\t\tthis.clickGuardarHijo = true;\n\t\tif (!this.validarHijo()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarHijo = false;\n\t\tthis.setHijoNuevo(this.actoHijoAdicionar);\n\t\tthis.actoHijoAdicionar = new ActoEspecialModel();\n\t\tthis.nuevoHijoActoEspecial = false;\n\t}\n\n\tcancelarNuevoHijo() {\n\t\tthis.nuevoHijoActoEspecial = false;\n\t}\n\n\teliminarHijo(event, bean) {\n\t\tthis.actoEspecialBorrarDTO.listaHijos = this.eliminarObjetoDeArray(this.actoEspecialBorrarDTO.listaHijos, bean);\n\t}\n\n\teliminarObjetoDeArray(array: any[], objeto: any): any[] {\n\t\tconst objetoCadena = JSON.stringify(objeto);\n  \t\treturn array.filter(obj => JSON.stringify(obj) !== objetoCadena);\n\t}\n \n\tdescargarPDF(){\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.archivoSalida.replace('.docx', '.pdf'))).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.pdf';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\t\n\tdescargarDoc() {\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadorBasico.encriptar(this.archivoSalida) ).subscribe(blob => {\n\t\t\tconst a = document.createElement('a')\n\t\t\tconst objectUrl = URL.createObjectURL(blob)\n\t\t\ta.href = objectUrl\n\t\t\ta.download = 'Acto.docx';\n\t\t\ta.click();\n\t\t\tURL.revokeObjectURL(objectUrl);\n\t\t});\n\t}\n\n\tpublic isMostrarSeleccionAccionAM() {\n\t\treturn this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.ASIGNACION_BASICA_MASIVA);\n\t}\n\t\n\tpublic isMostrarSeleccionAccionAE() {\n\t\treturn this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.ASIGNACION_EMPLEADO);\n\t}\n\n\tpublic isMostrarSeleccionAccionLP() {\n\t\treturn this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.LIQUIDACIONPRESTACIONAL);\n\t}\n\n\tpublic isMostrarSeleccionAccionAP() {\n\t\treturn this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.ASIGNACION_BASICA_PERSONA);\n\t}\n\t\n\tpublic isMostrarSeleccionAccionGP() {\n\t\treturn this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.GRUPO_PERSONAS);\n\t}\n\n\tpublic isMostrarSeleccionAccionNoAplica() {\n\t\treturn (this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.NO_APLICA_DETALLE)); \n\t}\n\t\n\tpublic isMostrarSeleccionAccionPC() {\n\t\treturn (this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.ENTIDAD_PENSIONADO_COBRAR)); \n\t}\n\t/***\n\t * metodo que valida si es el acto es de cuaotas partes por cobrar\n\t * @return\n\t */\n\tpublic isMostrarSeleccionAccionPP() {\n\t\treturn (this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.ENTIDAD_PENSIONADO_PAGAR)); \n\t}\n\t/***\n\t * metodo que valida si es el acto es de cuaotas partes por cobrar\n\t * @return\n\t */\n\tpublic isMostrarSeleccionAccionPM() {\n\t\treturn (this.actoEspecialBorrarDTO != null && this.actoEspecialBorrarDTO.formatoDTO != null && this.actoEspecialBorrarDTO.formatoDTO.accion != null && this.actoEspecialBorrarDTO.formatoDTO.accion.trim() == (this.parametroFormatoPipe.PRORROGA_MASIVA)); \n\t}\n\t\n\tpublic isMostrarAccionEspecial(){\n\t\treturn this.paso != null && this.paso == (this.parametroFormatoPipe.PASO_ACCION_ESPECIAL); \n\t}\n\t\n\tpublic setTerminado(objeto){\n\t\tthis.aplicarFinal().then(data => {});\n\t}\n\n\tpublic async run() {\n\t\tif ( this.procesoFinal ) {\n\t\t\tthis.actoEspecialBorrarDTO = await this.actoEspecialService.servicioLegalizaActoEspecial({actoEspecialDTO: this.actoEspecialBorrarDTO, usuario: this.authService.getTokenKey('usuario'),etapa: this.etapa, llaveBase: this.llaveBase}).toPromise();\n\t\t\tthis.actoEspecialBorrarDTO = this.actoEspecialService.formatearActoEspecial(this.actoEspecialBorrarDTO);\n\t\t} else {\n\t\t\tthis.llaveSeguimiento = this.seguimiento ? this.utilsService.generarLlave() : null;\n\t\t\tvar actoResultado: ActoEspecialModel =  await this.actoEspecialService.insertarActoEspecialElaborar({actoEspecialDTO: this.actoEspecialBorrarDTO, usuario: this.authService.getTokenKey('usuario'),llaveBase: this.llaveBase, seguimiento: this.llaveSeguimiento, contratoSeguimiento: this.contratoSeguimiento}).toPromise();\n\t\t\tthis.actoEspecialBorrarDTO = actoResultado;\n\t\t\tthis.actoEspecialBorrarDTO = this.actoEspecialService.formatearActoEspecial(this.actoEspecialBorrarDTO);\n\t\t}\n\t\tthis.notificacionesService.showInfo('Generado')\n\t\t//popupEspera.terminar('Generado','#{actosEspecialesBean.regresaHilo}');\n\t\tawait this.setRegresaHilo({})\n\t}\n\n  \n\n}\n","<p-confirmPopup ></p-confirmPopup>\n<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n        <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n        \n        <button pButton pRipple (click)=\"regresarActoAdmin()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" \n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n    </div>\n    <app-cabecera-empleado [empleado]=\"empleadoDTO\" *ngIf=\"mostrarFoto && empleadoDTO != null && empleadoDTO != undefined && !parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO\"></app-cabecera-empleado>\n    <div class=\"p-fluid grid\" >\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mb-2\">\n                    <!-- PASO 1 - DATOS CEDULA -->\n                    <p-fieldset >\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{actoEspecialBorrarDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid grid\">\n                            <!-- IDENTIFICACION -->\n                            <div class=\"col-12 md:col-12 lg:col-6 responsivetablet\" *ngIf=\"pedirIngresoDatosCedula\">\n                                <app-input-helper-empleado-boton #inputEmpleado (onSelected)=\"setFuncionario($event)\" *ngIf=\"pedirIngresoDatosCedula\"\n                                    [nombreInput]=\"'empleado' | translate\" [mostrarX]=\"false\"\n                                    [label]=\"empleadoDTO.nombreCompleto != null ? empleadoDTO.contrato + ' - ' + empleadoDTO.nombreCompleto : ''\" >\n                                </app-input-helper-empleado-boton>\n                            </div>\n                            <div class=\"col-12 md:col-12 lg:col-6\" *ngIf=\"pedirIngresoDatosCedula\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"documento\" [(ngModel)]=\"cedulaFiltro\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\"  />\n                                    <label>{{'cedula' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </p-fieldset>\n                    <div>\n                        <formulario-dinamico #formulario [campos]=\"campos\" [objeto]=\"actoEspecialBorrarDTO\" ></formulario-dinamico>\n                    </div>\n                    <div *ngIf=\"isMostrarSeleccionAccionAM() && mostrarTabla\">\n                        <p-table dataKey=\"llaveTabla\" [value]=\"actoEspecialBorrarDTO.listaFiltro\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                            [paginator]=\"actoEspecialBorrarDTO.listaFiltro.length > 10\" [totalRecords]=\"actoEspecialBorrarDTO.listaFiltro.length\"\n                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                            styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"verPopupSeleccionReporte($event)\" (onRowUnselect)=\"verPopupSeleccionReporte($event)\">\n                            <ng-template pTemplate=\"caption\">\n                                <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                    <h4 class=\"text-xl mb-1\" >{{'filtros' | translate}}</h4>\n                                    <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"cargarNuevoSeleccionColumna()\" \n                                        *ngIf=\"!mostrarProcesoCombinacion && mostrarBtnNuevoAccion && editarTabla\" label=\"{{'link_nuevo' | translate}}\" ></button>\n                                </div>\n                            </ng-template>\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th>{{\"columna\" | translate}}</th>\n                                    <th>{{\"tipo\" | translate}}</th>\n                                    <th>{{\"parametros\" | translate}}</th>\n                                    <th>{{\"anidado\" | translate}}</th>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-bean>\n                                <tr [pSelectableRow]=\"bean\">\n                                    <td>{{bean.descripcionColumna}}</td>\n                                    <td>{{bean.descripcionTipo}}</td>\n                                    <td>{{bean.parametro}}</td>\n                                    <td>{{bean.descripcionAnidado}}</td>\n                                    </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>\n                    </div>\n                    @if (isMostrarSeleccionAccionAP() || isMostrarSeleccionAccionGP()) {\n                        <p-table [value]=\"actoEspecialBorrarDTO.listaHijos\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                            [paginator]=\"actoEspecialBorrarDTO.listaHijos.length > 10\" [totalRecords]=\"actoEspecialBorrarDTO.listaHijos.length\"\n                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                            styleClass=\"p-datatable-striped input-helper-datatable\" >\n                            <ng-template pTemplate=\"caption\">\n                                <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                                    <h4 class=\"text-xl mb-1\" >{{'funcionario' | translate}}</h4>\n                                    <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"isMostrarSeleccionAccionAP() ? cargarNuevoListaHijoAP() : cargarNuevoListaHijoGP()\" \n                                        *ngIf=\"!mostrarProcesoCombinacion && mostrarBtnNuevoAccion\" label=\"{{'link_nuevo' | translate}}\" ></button>\n                                </div>\n                            </ng-template>\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th style=\"width: 10%\">{{\"identificacion\" | translate}}</th>\n                                    <th style=\"width: 10%\">{{\"contrato\" | translate}}</th>\n                                    <th style=\"width: 20%\">{{\"nombrefuncionario\" | translate}}</th>\n                                    <th style=\"width: 50%\" *ngIf=\"mostrarFechaInicialAccionAp || mostrarMotivoAccionGP || mostrarRolAccionGP || mostrarPrtoyectoAccionGP\">{{\"detalle\" | translate}}</th>\n                                    <th style=\"width: 10%\"></th>\n                                </tr>\n                                @if(nuevoHijoActoEspecial) {\n                                    <tr class=\"TablaNuevoRegistro\">\n                                        <td style=\"width: 10%\">\n                                            <input pInputText [(ngModel)]=\"actoHijoAdicionar.empleadoDTO.cedula\" [disabled]=\"true\"\n                                                [class]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.empleadoDTO.cedula) && clickGuardarHijo ? 'ng-invalid ng-dirty' : ''\" />\n                                        </td>\n                                        <td style=\"width: 10%\">\n                                            <input pInputText [(ngModel)]=\"actoHijoAdicionar.empleadoDTO.contrato\" [disabled]=\"true\"\n                                                [class]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.empleadoDTO.contrato) && clickGuardarHijo ? 'ng-invalid ng-dirty' : ''\" />\n                                        </td>\n                                        <td style=\"width: 20%\">\n                                            <app-input-helper-empleado-boton (onSelected)=\"setRegresoHijoActo($event)\" [mostrarX]=\"false\"\n                                                [booleano]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.empleadoDTO.nombreCompleto) && clickGuardarHijo \"\n                                                [label]=\"actoHijoAdicionar.empleadoDTO.nombreCompleto != null ? actoHijoAdicionar.empleadoDTO.nombreCompleto : ''\" >\n                                            </app-input-helper-empleado-boton>\n                                        </td>\n                                        <td style=\"width: 50%\" *ngIf=\"mostrarFechaInicialAccionAp || mostrarMotivoAccionGP || mostrarRolAccionGP || mostrarPrtoyectoAccionGP\">\n                                            @if (mostrarFechaInicialAccionAp) {\n                                                <span class=\"p-float-label\">\n                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"actoHijoAdicionar.fechaInicial\"  \n                                                        dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" ></p-calendar>\n                                                    <label>{{'fecha' | translate}}*</label>\n                                                </span>\n                                            }\n                                            @if (mostrarMotivoAccionGP) {\n                                                <span class=\"p-float-label\">\n                                                    <p-dropdown appendTo=\"body\" [options]=\"listaMotivos\" [autoDisplayFirst]=\"false\" [showClear]=\"false\" [(ngModel)]=\"actoHijoAdicionar.motivo\"\n                                                        [class]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.motivo) && clickGuardarHijo ? 'ng-invalid ng-dirty' : ''\" >\n                                                    </p-dropdown>\n                                                    <label>{{'motivo' | translate}}*</label>\n                                                </span>\n                                            }\n                                            @if (mostrarRolAccionGP) {\n                                                <span class=\"p-float-label\">\n                                                    <p-dropdown appendTo=\"body\" [options]=\"listaRoloItem\" [autoDisplayFirst]=\"false\" [showClear]=\"false\" [(ngModel)]=\"actoHijoAdicionar.rol\"\n                                                        [class]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.rol) && clickGuardarHijo ? 'ng-invalid ng-dirty' : ''\" >\n                                                    </p-dropdown>\n                                                    <label>{{'rol' | translate}}*</label>\n                                                </span>\n                                            }\n                                            @if (mostrarPrtoyectoAccionGP) {\n                                                <span class=\"p-float-label\">\n                                                    <input pInputText [(ngModel)]=\"actoHijoAdicionar.proyecto\" \n                                                        [class]=\"!utilsService.validarCampoObligatorio(actoHijoAdicionar.proyecto) && clickGuardarHijo ? 'ng-invalid ng-dirty' : ''\" />\n                                                    <label>{{'proyecto' | translate}}*</label>\n                                                </span>\n                                            }\n                                        </td>\n                                        <td style=\"width: 10%;\">\n                                            <div class=\"flex justify-content-end\">\n                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                    class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                    (click)=\"adicionarHijo()\"></button>\n                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoHijo()\"\n                                                    class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                }\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-bean>\n                                <tr>\n                                    <td style=\"width: 10%\">{{bean.empleadoDTO?.cedula}}</td>\n                                    <td style=\"width: 10%\">{{bean.empleadoDTO?.contrato}}</td>\n                                    <td style=\"width: 20%\">{{bean.empleadoDTO?.nombreCompleto}}</td>\n                                    <td style=\"width: 50%\" *ngIf=\"mostrarFechaInicialAccionAp || mostrarMotivoAccionGP || mostrarRolAccionGP || mostrarPrtoyectoAccionGP\">\n                                        @if (mostrarFechaInicialAccionAp) {\n                                            <label class=\"font-semibold\">{{'fechainicial' | translate}}: </label>\n                                            <label>{{bean.fechaInicial | date : ('formatofecha' | translate)}}</label>\n                                            <br/> \n                                        }\n                                        @if (mostrarMotivoAccionGP) {\n                                            <label class=\"font-semibold\">{{'motivo' | translate}}: </label>\n                                            <label>{{bean.motivo}}</label>\n                                            <br/> \n                                        }\n                                        @if (mostrarRolAccionGP) {\n                                            <label class=\"font-semibold\">{{'rol' | translate}}: </label>\n                                            <label>{{bean.rol}}</label>\n                                            <br/> \n                                        }\n                                        @if (mostrarPrtoyectoAccionGP) {\n                                            <label class=\"font-semibold\">{{'proyecto' | translate}}: </label>\n                                            <label>{{bean.proyecto}}</label>\n                                            <br/> \n                                        }\n                                    </td>\n                                    <td style=\"width: 10%;\">\n                                        <div class=\"flex justify-content-end\">\n                                            <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                (click)=\"eliminarHijo($event, bean)\"\n                                                class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                [disabled]=\"nuevoHijoActoEspecial\"></button>\n                                        </div>\n                                    </td>\n                                </tr>\n                                \n\n                            </ng-template>\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        </p-table>\n                    }\n                </div>\n                <div class=\"p-fluid grid mb-2\" >\n                    <div class=\"field col-12 md:col-12 lg:col-12\">\n                        <!-- check SEGUIMIENTO -->\n                        <div class=\"flex justify-content-end\" *ngIf=\"!mostrarProcesoCombinacion && controlFuncionService.getControlFuncionalidad('comseg:seguimiento') && (etapa == 'ELABORACION' || etapa == 'MODIFICACION')\">\n                            <div class=\"flex align-items-center gap-1\">\n                                <p-checkbox class=\"mr-1\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                                <label>{{'seguimiento' | translate}}</label>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n                <div class=\"flex justify-content-end\" *ngIf=\"!mostrarProcesoCombinacion\">\n                    <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-chevron-right\"\n                        label=\"{{'link_continuar' | translate}}\" (click)=\"aplicarDatos()\">\n                    </button>\n                    <button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out p-2 pr-1\"\n                        label=\"{{'link_salir' | translate}}\" (click)=\"regresarActoAdmin()\">\n                    </button>\n                </div>\n            </div>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\" *ngIf=\"mostrarProcesoCombinacion\">\n            <div class=\"flex justify-content-end mt-2\" *ngIf=\"archivoSalida\" >\n                <button pButton pRipple class=\"p-button-secondary font-semibold ml-2\" icon=\"glyphicons glyphicons-download\" \n                    label=\"{{'descargar' | translate}} pdf\" (click)=\"descargarPDF()\">\n                </button>\n                <button pButton pRipple class=\"p-button-outlined claro font-semibold ml-2\" icon=\"glyphicons glyphicons-download\"  \n                    label=\"{{'descargar' | translate}} doc\" (click)=\"descargarDoc()\">\n                </button>\n            </div>\n            <div class=\"flex justify-content-end\" *ngIf=\"paso != 'datopuesto'\">\n                <button pButton pRipple class=\"p-button p-button-raised ml-2 mb-0 mt-0\" icon=\"pi pi-check\"\n                    label=\"{{'link_aplicar' | translate}}\" (click)=\"legalizarAction()\">\n                </button>\n                <button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out p-2 pr-1\"\n                    label=\"{{'link_salir' | translate}}\" (click)=\"regresarActoAdmin()\">\n                </button>\n            </div>\n        </div>\n    </div>\n</div>\n\n@if (verPopupSeguimiento) {\n    <app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"verPopupSeguimiento\"  ></app-popup-seguimiento>\n}\n\n<app-popup-columna-especial [mostrarPopup]=\"verPopupColumnaEspecial\" [seleccionReporte]=\"seleccionReporteTmp\" *ngIf=\"verPopupColumnaEspecial\"\n    [nuevo]=\"nuevoColumnaEspecial\" (regresar)=\"regresaPopupColumnaEspecial($event)\"></app-popup-columna-especial>","import { UnionModel } from 'general-library-union'\nimport { FormatoModel } from './FormatoModel';\n\nexport class ActoMovPlantaModel extends UnionModel {\n\n\t\n\tllave:string;\n\testadoNumero:number;\n\tempresa:number;\n\tformato:number;\n\tgrupoVincula:number;\n\tdocumento:string;\n\tnumero:string;\n\tfechaDocumento:Date;\n\tfirmaDocumento:number;\n\tunidadDocumento:string;\n\tsucursal:string;\n\tsucursalAntes:string;\n\tfechaCambio:Date;\n\tllavePuesto:string;\n\tllavePuestoAntes:string;\n\tnumeroTurno:number;\n\tnumeroTurnoAntes:number;\n\tcargo:string;\n\tcargoAntes:string;\n\tunidad:string;\n\tunidadAntes:string;\n\tnumeroVincula:number;\n\tnumeroVinculaAntes:number;\n\tsueldo:number;\n\tzonaEconomica:string;\n\tzonaAntes:string;\n\tcentroCosto:string;\n\tcentroAntes:string;\n\tlineaCosto:string;\n\tlineaCostoAntes:string;\n\tnumeroTipoPeriodo:number;\n\tnumeroTipoPeriodoAntes:number;\n\ttipoPuestoTrabajo:string;\n\ttipoPuestoTrabajoAntes:string;\n\tubicacionFisicaAntes:string;\n\tubicacionFisica:string;\n\tdescripcionUbicacionFis:string;\n\ttipoCambio:string;\n\testado:string;\n\toficio:string;\n\tfechaOficio:Date;\n\tsesion:string;\n\tfechaSesion:Date;\n\tcomunicado:Date;\n\tantecesor:string;\n\tdescripcionAntecesor:string;\n\tderogacion:string;\n\telaboracion:string;\n\tadicional:string;\n\trol:string;\n\tnumeroCantidad:number;\n\tpostLegaliza:string;\n\tvalor1:number;\n\tvalor2:number;\n\tvalor3:number;\n\tvalor4:number;\n\tvalor5:number;\n\tvalor6:number;\n\tvalor7:number;\n\tvalor8:number;\n\tvalor9:number;\n\tvalor10:number;\n\tvalor11:number;\n\tvalor12:number;\n\tvalor13:number;\n\tvalor14:number;\n\tvalor15:number;\n\tvalor16:number;\n\tvalor17:number;\n\tvalor18:number;\n\tvalor19:number;\n\tvalor20:number;\n\tidentifica:number;\n\ttemporal:number;\n\testadoPuesto:string;\n\tsucursalNueva:string;\n\tclasePuesto:string;\n\tclaseAntes:string;\n\tsoporte:string;\n\tsueldoAntes:number;\n\tfechaFinal:Date;\n\tintensidad:number;\n\tnegociacion:number;\n\tobservacion:string;\n\tdescripcionFormato:string;\n\ttipo:string;\n\tcedula:number;\n\templeado:number;\n\tdescripcionZonaEconomica:string;\n\tdescripcionCentroCosto:string;\n\tlineaAntes:string;\n\tdescripcionLineaCosto:string;\n\tllaveNombreArchivoAnexo:string;\n\tdescripcionCargo:string;\n\tdescripcionCargoAntes:string;\n\tdescripcionUnidad:string;\n\tdescripcionUnidadAntes:string;\n\tmensaje:string;\n\tpuestoResponde:string;\n\tnombrePuestoResponde:string;\n\tdescripcionTipoPeriodo:string;\n\tdescripcionTipoPeriodoAntes:string;\n\tdescripcionVincula:string;\n\tdescripcionVinculaAntes:string;\n\tdescripcionTurno:string;\n\tdescripcionTurnoAntes:string;\n\testadoNumeroDiferenteUno:number;\n\tclasificacion:string;\n\tclasificacionAntes:string;\n\tsinContrato:string;\n\tformatoDTO: FormatoModel;\t\n\t\t\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService} from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class ActoMovPlantaService {\n  \n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarCombos(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/cargarCombos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerActoMovPlanta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/traerActoMovPlanta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  elaborarActoMovPlanta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/elaborarActoMovPlanta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  legalizarActoMovPlanta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/legalizarActoMovPlanta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  borrarRegistroActoMovPlanta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/borrarRegistroActoMovPlanta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  registrarAnexoHojaActoMovPlanta(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/registrarAnexoHojaActoMovPlanta`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  listaCampoMovPlanta(): Observable<any> {\n    return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/listaCampoMovPlanta`).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarCombosInfoEmpleado(): Observable<any> {\n    return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/cargarCombosInfoEmpleado`).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  conAntecesor(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoMovPlanta/conAntecesor`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { ActoMovPlantaModel } from '../../../models/ActoMovPlantaModel';\nimport { FormatoModel } from '../../../models/FormatoModel';\nimport { CentroCostoModel } from '../../../../compensacion/models/CentroCostoModel';\nimport { CampoFormularioModel, FormulariodinamicoComponent, UtilsService } from 'general-library-union';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { ActoMovPlantaService } from '../../../services/acto-mov-planta.service';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\n\n@Component({\n  selector: 'app-mostrar-datos-combinacion-acto-mov-planta',\n  standalone: true,\n  imports: [],\n  templateUrl: './mostrar-datos-combinacion-acto-mov-planta.component.html',\n  styleUrl: './mostrar-datos-combinacion-acto-mov-planta.component.scss'\n})\nexport class MostrarDatosCombinacionActoMovPlantaComponent implements OnInit{\n  \n  public listaFormatoDatoDocumentoItem: any[] = [];\n\tpublic listaFirmaDocumentoItem: any[] = [];\n\tpublic listaUnidadDocumentoItem: any[] = [];\n\tpublic listaSucursalItem: any[] = [];\n\tpublic listaRoloItem: any[] = [];\n\tpublic listaTipoCambioItem: any[] = [];\n\tpublic listaSoporteItem: any[] = [];\n\tpublic listaCargoItem: any[] = [];\n\tpublic listaUnidadItem: any[] = [];\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[] = [];\n\t\n\tpublic actoMovimientoBorrarDTO: ActoMovPlantaModel;\n\tpublic formatoDTO: FormatoModel;\n\tpublic ruta: string;\t\n\tpublic LLAVE_BASE: string;\n\tpublic mostrarPdf: boolean;\n\tpublic mostrarFotoEml: boolean;\n\tpublic mostrarFotoHojaVida: boolean;\n\tpublic rutaFisicaWord: string;\n\tpublic mostrarWord: boolean;\t\n\tpublic mostrarRegresar: boolean;\n\tpublic procesoQueEstoyTrabajando: string; \n\t\n\t/**\n\t * esta variable sera usada con el fin de navegar al modulo correcto\n\t * Este acto en lanzado desde modulos independiente y deacuerdo el modulo de donde vengo, \n\t * asi mismo debo volver al modulo.\n\t * Si esta  variable llegase a ser null, entonces sera direccionada al Modulo Actos Administrativo\n\t * de lo contrario sera direccionada al modulo que lo llama\n\t */\n\tpublic deDondeVengo: string;\n\tpublic etapa: string;\n\n  public campos: CampoFormularioModel[] = [];\n\n  @ViewChild(FormulariodinamicoComponent) formulario: FormulariodinamicoComponent;\n\n  constructor(private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n              private actoMovPlantaService: ActoMovPlantaService,\n              private utilsService: UtilsService,\n              private campoFormularioPipe: CampoFormularioPipe,\n              private parametroFormatoPipe: ParametroFormatoPipe,\n  ) {}\n\n  ngOnInit(): void {\n\n  }\n  public setZonaCentro(centroCostoDTO: CentroCostoModel){\n\t\tif(centroCostoDTO != null){\n\t\t\tthis.actoMovimientoBorrarDTO.zonaEconomica = centroCostoDTO.zonaEconomica;\n      this.actoMovimientoBorrarDTO.descripcionZonaEconomica = centroCostoDTO.descripcionZona;\n      this.actoMovimientoBorrarDTO.centroCosto = centroCostoDTO.centroCosto;\n      this.actoMovimientoBorrarDTO.descripcionCentroCosto = centroCostoDTO.descripcion;\n\t\t}\t\t\n\t}\t\n\t\n\tpublic cargarFormularioDinamicoElaboraModifica(){\n\t\tthis.crearFormularioListaParaCampo();\n\t\tthis.formulario.modificar(this.actoMovimientoBorrarDTO, false);\n\t}\n\t\n\tpublic cargarFormularioDinamicoLegalizaElimina(){\n\t\tthis.cargaListaFormularioLeglizadaYcampo();\n\t\tthis.formulario.modificar(this.actoMovimientoBorrarDTO, false);\n\t}\n\t\n\tpublic async cargaListaFormularioLeglizadaYcampo(){\n    var datoDTO = new FormatoDatoModel();\n    datoDTO.formato = this.actoMovimientoBorrarDTO.formatoDTO.llave;\n\t\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n    //CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n    await this.crearFormularioListaParaCampo();\n    await this.crearFormularioListaLegalizada();\t\t\t\n\t}\n\t\n\t/**\n\t * Metodo que carga el formulario dinamico \n\t * de la listaParaCampoLegalizada\n\t * @see LegalizarActoIngresoBean\n\t */\n\tpublic async crearFormularioListaLegalizada(){\n    var campos2 = await this.actoMovPlantaService.listaCampoMovPlanta().toPromise();\n    await this.utilsService.sleep(500);\n    this.formulario?.limpiar();\n    this.formulario?.camposCaracteristicaClear()\n    //adicionamos al grupo1, los datos del grupo 2\n    this.campos.forEach(g2 => {\n      g2.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n      g2.obligatorio = false;\n      //grupo1.Campos().push(g2);\n    })\n    \n    for (let dato of this.listaParaCampoLegalizada) {\n      for (let campo of campos2) {\n        if(campo.descripcion != dato.campo.trim()){\n          continue;\n        }\n        if(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n          campo.lista == (this.listaFormatoDatoDocumentoItem);\t\t\t\t\t\t\n        }\n        if(campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)){\n          campo.lista == (this.listaFirmaDocumentoItem);\n        }\n        if(campo.descripcion == (this.parametroFormatoPipe.UNIDAD_ORIGEN)){\n          campo.lista == (this.listaUnidadDocumentoItem);\n        }\n        if(campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)){\n          campo.lista == (this.listaSucursalItem);\n        }\n        if(campo.descripcion == (this.parametroFormatoPipe.ROL)){\n          campo.lista == (this.listaRoloItem);\n        }\n        if(campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)){\n          campo.lista == (this.listaTipoCambioItem);\n        }\n        if(campo.descripcion == (this.parametroFormatoPipe.SOPORTE)){\n          campo.lista == (this.listaSoporteItem);\n        }\t\n        \n        campo.obligatorio = true;\n        campo.descripcion = dato.titulo != null && dato.titulo.trim() != (Constantes.ESPACIO_NULO) ? dato.titulo : campo.descripcion;\n        this.campos.push(campo);\n      }\n    }\n    this.formulario.modificar(this.actoMovimientoBorrarDTO, true);\n\t}\n\t\n\t\n\t/**\n\t * Metodo que carga el formulario dinamico \n\t * de la lista para campo\n\t */\n\tpublic async crearFormularioListaParaCampo(){\n    var campos2 = await this.actoMovPlantaService.listaCampoMovPlanta().toPromise();\n    await this.utilsService.sleep(500);\n    this.formulario?.limpiar();\n    this.formulario?.camposCaracteristicaClear()\n    for (let dato of this.actoMovimientoBorrarDTO.formatoDTO.listaParaCampos) {\n      for (let campo of campos2) {\t\t\t\t\n        if(campo.descripcion == (dato.campo.trim())){\n          campo.setObligatorio(true);\n          //CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS QUE CUMPLAN CON DICHO CONDICION\n          if(dato.accion != null && dato.accion.trim() != (this.parametroFormatoPipe.INGRESARE)){\n            campo.setObligatorio(false);\n          }\n          //CARGAMOS EL COMBO PARA CADA CAMPO\t\t\t\t\t\t\t\t\t\t\n          if(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n            campo.lista == (this.listaFormatoDatoDocumentoItem);\t\t\t\t\t\t\n          }\n          if(campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)){\n            campo.lista == (this.listaFirmaDocumentoItem);\n          }\n          if(campo.descripcion == (this.parametroFormatoPipe.UNIDAD_ORIGEN)){\n            campo.lista == (this.listaUnidadDocumentoItem);\n          }\n          if(campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)){\n            campo.lista == (this.listaSucursalItem);\n          }\n          if(campo.descripcion == (this.parametroFormatoPipe.ROL)){\n            campo.lista == (this.listaRoloItem);\n          }\n          if(campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)){\n            campo.lista == (this.listaTipoCambioItem);\n          }\n          if(campo.descripcion == (this.parametroFormatoPipe.SOPORTE)){\n            campo.lista == (this.listaSoporteItem);\n          }\t\n          campo.setDescripcion(dato.titulo != null && dato.titulo.trim() != (Constantes.ESPACIO_NULO) ? dato.titulo : campo.descripcion);\n          this.campos.push(campo);\t\t\t\t\t\n        }\n      }\n        }\t\n    \n    this.formulario.modificar(this.actoMovimientoBorrarDTO, true);\n\t} \n\t \n\tpublic regresarActoAdmin(){\n\t\tif(this.deDondeVengo != null && this.deDondeVengo == (this.parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO)){\n\t\t\t//getBean(ActosEmpleadoBean.class).setRegresar();\n\t\t\treturn;\t\t\n\t\t}\n\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t}\t\n\n\tpublic isCrearPuestoTrabajo(){\n\t\treturn this.parametroFormatoPipe.CREAR_PUESTO_TRABAJO == (this.procesoQueEstoyTrabajando);\n\t}\n\t\n\tpublic isEliminarPuestoTrabajo(){\n\t\treturn this.parametroFormatoPipe.ELIMININAR_PUESTO_TRABAJO == (this.procesoQueEstoyTrabajando);\n\t}\n\tpublic isLiberarPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.LIBERAR_PUESTO_TRABAJO == (this.procesoQueEstoyTrabajando);\n\t}\n\n\tpublic isTrasladoPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.TRALADO_PUESTO_DE_TRABAJO == (this.procesoQueEstoyTrabajando);\n\t}\n\tpublic isReclasificacionPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.RECLASIFICACION_PUESTO_TRABAJO == (this.procesoQueEstoyTrabajando);\n  }\n\t\n}\n","<p>mostrar-datos-combinacion-acto-mov-planta works!</p>\n","import { Component, OnInit } from '@angular/core';\nimport { ActoMovPlantaModel } from '../../../models/ActoMovPlantaModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { ActoAusenciaModel } from '../../../models/ActoAusenciaModel';\nimport { ActoMovPlantaService } from '../../../services/acto-mov-planta.service';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { CentroCostoModel } from '../../../../compensacion/models/CentroCostoModel';\nimport { UbicacionFisicaModel } from '../../../../compensacion/models/UbicacionFisicaModel';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { UnidadOrganizacionalModel } from '../../../../talento/models/UnidadOrganizacionalModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralModel, UtilsService } from 'general-library-union';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperCargoComponent } from '../../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputHelperSeleccionCargoComponent } from '../../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component'\nimport { FormsModule } from '@angular/forms';\n\n\n@Component({\n  selector: 'app-info-empleado-ocupa-mov-planta',\n  standalone: true,\n  imports: [\n\tInputHelperUnidadComponent,\n\tInputHelperCargoComponent,\n\tDropdownModule,\n\tNgIf,\n\tTranslateModule,\n\tInputHelperSeleccionCargoComponent,\n\tFormsModule\n  ],\n  templateUrl: './info-empleado-ocupa-mov-planta.component.html',\n  styleUrl: './info-empleado-ocupa-mov-planta.component.scss'\n})\nexport class InfoEmpleadoOcupaMovPlantaComponent implements OnInit {\n\n  public crearPuestoTrabajo: boolean;\n  public liberaPuestoTrabajo: boolean;\n  public trasladoPuestoTrabajo: boolean;\n\tpublic actoMovimientoBorrarDTO: ActoMovPlantaModel;\n\tpublic LLAVE_BASE: string;\n\tpublic listadoVinculacion: any[] = [];\n  public listadoTurno: any[] = [];\n  public listadoTipoPeriodo: any[] = [];\n  public listaLineaCosto: any[] = [];\n  public listatipoPuestoTrabjo: any[] = [];\n  public listadoClasificacion: any[] = [];\n  public listaClasePuesto: any[] = [];\n\tpublic listaDatosPlanta: FormatoDatoModel[] = [];\n\tpublic actoAusenciaDTO: ActoAusenciaModel;\n\n\t/*\n\t * atributos que indican la visibilidad de los diferentes campos del\n\t * formulario\n\t */\n\tpublic verUnidadAdicional: boolean;\n  public mostrarTotal: boolean;\n  public mostrarPeriodo: boolean;\n  public mostrarCosteo: boolean;\n  public mostrarTurno: boolean;\n  public mostrarVinculacion: boolean;\n  public mostrarLinea: boolean;\n  public mostrarCargo: boolean;\n  public mostrarUbicacion: boolean;\n  public mostrarNegociacion: boolean;\n  public mostrarTipoPlanta: boolean;\n  public mostrarClasePuesto: boolean;\n  public mostrarClasificacion: boolean;\n  public mostrarSueldo: boolean;\n  public mostrarUnidad: boolean;\n  public bloquearTotal: boolean;\n  public bloquearPeriodo: boolean;\n  public bloquearCosteo: boolean;\n  public bloquearTurno: boolean;\n  public bloquearVinculacion: boolean;\n  public bloquearLinea: boolean;\n  public bloquearCargo: boolean;\n  public bloquearUbicacion: boolean;\n  public bloquearSueldo: boolean;\n  public bloquearUnidad: boolean;\n  public bloquearNegociacion: boolean;\n  public bloquearTipoPlanta: boolean;\n  public bloquearClasePuesto: boolean;\n  public bloquearClasificacion: boolean;\n  public mostrarPuestoResponde: boolean;\n  public bloquearPuestoResponde: boolean;\n\n\tpublic eventoActosEjecutar: string;\n\tpublic accion: string;\n\tpublic etapa: string;\n\t\n\tpublic puedeEditarUnidadCargo: boolean;\n\tpublic validarInfo: boolean = false;\n\n  constructor(private actoMovPlantaService: ActoMovPlantaService,\n              public parametroFormatoPipe: ParametroFormatoPipe,\n              private generalService: GeneralService,\n\t\t\t  public utilsService: UtilsService,\n  ) {}\n\n  ngOnInit(): void {\n    this.actoMovPlantaService.cargarCombosInfoEmpleado().subscribe(data => {\n      this.listadoVinculacion = data.listadoVinculacion;\n      this.listadoTurno = data.listadoTurno;\n      this.listadoTipoPeriodo = data.listadoTipoPeriodo;\n      this.listaLineaCosto = data.listaLineaCosto;\n      this.listatipoPuestoTrabjo = data.listatipoPuestoTrabjo;\n      this.listadoClasificacion = data.listadoClasificacion;\n      this.listaClasePuesto = data.listaClasePuesto;\n    })\n    this.actoMovimientoBorrarDTO = new ActoMovPlantaModel();\n    this.listaDatosPlanta = [];\n  }\n\n  public asignaDatosDefecto() {\n\t\t// antes de asiganar los datos que van por defecto, asignamos las\n\t\t// variables a mostrar\n\t\tthis.inicializarVariables();\n\t\tfor (var dto of this.listaDatosPlanta) {\n\t\t\tif (dto.accion == null || dto.campo == null || dto.accion == (\"-\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (dto.accion == (this.parametroFormatoPipe.NOVISUALIZAR)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// evaluacion total del formulario\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.TOTAL)) {\n\t\t\t\tthis.mostrarTotal = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearTotal = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de periodo\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.PERIODO)) {\n\t\t\t\tthis.mostrarPeriodo = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearPeriodo = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de costeo\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.COSTEO)) {\n\t\t\t\tthis.mostrarCosteo = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearCosteo = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de turno\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.TURNO)) {\n\t\t\t\tthis.mostrarTurno = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearTurno = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de clasificacion\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.CLASIFICACION)) {\n\t\t\t\tthis.mostrarClasificacion = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearClasificacion = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de vinculacion\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.VINCULACION)) {\n\t\t\t\tthis.mostrarVinculacion = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearVinculacion = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de linea\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.LINEA)) {\n\t\t\t\tthis.mostrarLinea = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearLinea = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de cargo\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.CARGO)) {\n\t\t\t\tthis.mostrarCargo = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearCargo = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de ubicacion\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.UBICACION)) {\n\t\t\t\tthis.mostrarUbicacion = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearUbicacion = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de sueldo\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.SUELDO)) {\n\t\t\t\tthis.mostrarSueldo = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearSueldo = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de unidad\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.UNIDAD)) {\n\t\t\t\tthis.mostrarUnidad = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearUnidad = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de negociacion\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.NEGOCIACION)) {\n\t\t\t\tthis.mostrarNegociacion = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearNegociacion = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de clase puesto\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.CLASE_PUESTO)) {\n\t\t\t\tthis.mostrarClasePuesto = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearClasePuesto = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// evaluacion de clase puesto\n\t\t\tif (dto.campo.trim() == (this.parametroFormatoPipe.PUESTO_RESPONDE)) {\n\t\t\t\tthis.mostrarPuestoResponde = true;\n\t\t\t\tif (dto.accion == (this.parametroFormatoPipe.VISUALIZAR) || this.liberaPuestoTrabajo) {\n\t\t\t\t\tthis.bloquearPuestoResponde = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\tpublic inicializarVariables() {\n\t\tthis.mostrarTotal = false;\n\t\tthis.mostrarPeriodo = false;\n\t\tthis.mostrarCosteo = false;\n\t\tthis.mostrarTurno = false;\n\t\tthis.mostrarVinculacion = false;\n\t\tthis.mostrarLinea = false;\n\t\tthis.mostrarCargo = false;\n\t\tthis.mostrarUbicacion = false;\n\t\tthis.mostrarSueldo = false;\n\t\tthis.mostrarUnidad = false;\n\t\tthis.mostrarNegociacion = false;\n\t\tthis.mostrarTipoPlanta = false;\n\t\tthis.mostrarClasePuesto = false;\n\t\tthis.mostrarPuestoResponde = false;\n\t\tthis.bloquearTotal = false;\n\t\tthis.bloquearPeriodo = false;\n\t\tthis.bloquearCosteo = false;\n\t\tthis.bloquearTurno = false;\n\t\tthis.bloquearVinculacion = false;\n\t\tthis.bloquearLinea = false;\n\t\tthis.bloquearCargo = false;\n\t\tthis.bloquearUbicacion = false;\n\t\tthis.bloquearSueldo = false;\n\t\tthis.bloquearUnidad = false;\n\t\tthis.bloquearNegociacion = false;\n\t\tthis.bloquearClasePuesto = false;\n\t\tthis.bloquearTipoPlanta = false;\n\t\tthis.bloquearPuestoResponde = false;\n\t}\n\n\tpublic setPuestoSeleccionado(dtoPt: PuestoTrabajoModel): void {\n    if (dtoPt) {\n        this.actoMovimientoBorrarDTO.puestoResponde = dtoPt.llave;\n        this.actoMovimientoBorrarDTO.nombrePuestoResponde = dtoPt.nombreOcupa;\n    }\n  }\n\n  public setZonaCentro(centroCostoDTO: CentroCostoModel): void {\n      if (centroCostoDTO) {\n          this.actoMovimientoBorrarDTO.zonaEconomica = centroCostoDTO.zonaEconomica;\n          this.actoMovimientoBorrarDTO.descripcionZonaEconomica = centroCostoDTO.descripcionZona;\n          this.actoMovimientoBorrarDTO.centroCosto = centroCostoDTO.centroCosto;\n          this.actoMovimientoBorrarDTO.descripcionCentroCosto = centroCostoDTO.descripcion;\n      }\n  }\n\n  public setUbicacion(ubicacionFisicaDTO: UbicacionFisicaModel): void {\n      if (ubicacionFisicaDTO) {\n          this.actoMovimientoBorrarDTO.ubicacionFisica = ubicacionFisicaDTO.ubicacionFisica;\n          this.actoMovimientoBorrarDTO.descripcionUbicacionFis = ubicacionFisicaDTO.descripcion;\n      }\n  }\n\n  public setRegresarUnidad(unidadUsuarioDTO: UnidadUsuarioModel): void {\n      this.actoMovimientoBorrarDTO.unidad = unidadUsuarioDTO.unidad;\n      this.actoMovimientoBorrarDTO.descripcionUnidad = `${unidadUsuarioDTO.unidad} : ${unidadUsuarioDTO.nombreUnidad}`;\n  }\n\n  public setRegresarCargo(cargoDTO: CargoModel) {\n      this.actoMovimientoBorrarDTO.cargo = cargoDTO.cargo;\n      this.actoMovimientoBorrarDTO.descripcionCargo = `${cargoDTO.cargo} : ${cargoDTO.descripcion}`;\n  }\n\n\tpublic async cargarDescripciones() {\n\t\tif (this.actoMovimientoBorrarDTO != null) {\n      let cargoDTO: CargoModel = new CargoModel();\n      cargoDTO.empresa = this.actoMovimientoBorrarDTO.empresa;\n      cargoDTO.cargo = this.actoMovimientoBorrarDTO.cargo ?? this.actoMovimientoBorrarDTO.cargoAntes;\n      \n      if (cargoDTO.cargo) {\n          cargoDTO = await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, cargoDTO)).toPromise();\n          if (cargoDTO) {\n              this.actoMovimientoBorrarDTO.descripcionCargo = `${cargoDTO.cargo} : ${cargoDTO.nombreCargo}`;\n          }\n      }\n      \n      let unidadDTO: UnidadOrganizacionalModel = new UnidadOrganizacionalModel();\n      unidadDTO.empresa = this.actoMovimientoBorrarDTO.empresa;\n      unidadDTO.unidad = this.actoMovimientoBorrarDTO.unidad ?? this.actoMovimientoBorrarDTO.unidadAntes;\n      \n      if (unidadDTO.unidad) {\n          unidadDTO = await this.generalService.queryForObject(new GeneralModel('UnidadOrganizacionalDTO', null, false, unidadDTO)).toPromise();\n          if (unidadDTO) {\n              this.actoMovimientoBorrarDTO.descripcionUnidad = `${unidadDTO.unidad} : ${unidadDTO.nombreUnidad}`;\n          }\n      }\n      \n      if (this.actoMovimientoBorrarDTO.centroCosto) {\n          let centroCostoDTO: CentroCostoModel = new CentroCostoModel();\n          centroCostoDTO.zonaEconomica = this.actoMovimientoBorrarDTO.zonaEconomica;\n          centroCostoDTO.centroCosto = this.actoMovimientoBorrarDTO.centroCosto;\n          centroCostoDTO.empresa = this.actoMovimientoBorrarDTO.empresa;\n          centroCostoDTO = await this.generalService.queryForObject(new GeneralModel('CentroCostoDTO', null, false, centroCostoDTO)).toPromise();\n          this.setZonaCentro(centroCostoDTO);\n      }\n      \n      let ubicacionFisicaDTO: UbicacionFisicaModel = new UbicacionFisicaModel();\n      ubicacionFisicaDTO.ubicacionFisica = this.actoMovimientoBorrarDTO.ubicacionFisica;\n      ubicacionFisicaDTO = await this.generalService.queryForObject(new GeneralModel('UbicacionFisicaDTO', null, false, ubicacionFisicaDTO)).toPromise();\n      this.setUbicacion(ubicacionFisicaDTO);\n      \n\t\t}\n\t}\n \n\tpublic borrarRegistro() {\n\t\t// BORRAMOS EL REGITRO\n    this.generalService.delete(new GeneralModel('ActoMovPlantaDTO', null, false, this.actoMovimientoBorrarDTO)).subscribe(data => {\n      \n    });\n\t}\n\n \n\n\t/**\n\t * Es valido que se muestre si y solo si, estoy trabajando con Acto\n\t * Traslado, Acto Indefinido de planta (Formato) y que VerUnidadAdicional\n\t * sea true\n\t * \n\t * @return boolean si este componente en el jspx de puede o no mostrar\n\t */\n\tpublic isDecideMostrar() {\n\t\treturn this.verUnidadAdicional;\n\t}\n\n\tpublic isMostrarPopupCargo(): boolean{\n\t\treturn this.mostrarCargo;\n\t}\n\n \n\n}\n","<div class=\"p-fluid grid\">\n    <!--Unidad Organizacional-->\n    <div class=\"field col-12 md:col-12 lg:col-12\" >\n        <app-input-helper-unidad [readonly]=\"!puedeEditarUnidadCargo\"\n            [label]=\"actoMovimientoBorrarDTO.descripcionUnidad == null ? '' : actoMovimientoBorrarDTO.descripcionUnidad\"\n            [booleano]=\"!utilsService.validarCampoObligatorio(actoMovimientoBorrarDTO.descripcionUnidad) && validarInfo\" (onSelected)=\"setRegresarUnidad($event)\"\n            [header]=\"('unidadorganizacional' | translate)+'*'\" [mostrarX]=\"false\" >\n        </app-input-helper-unidad>\n    </div>\n    <!--Cargo-->\n    <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"mostrarCargo\">\n        <app-input-helper-seleccion-cargo [readonly]=\"!isMostrarPopupCargo()\"\n            [booleano]=\"!utilsService.validarCampoObligatorio(actoMovimientoBorrarDTO.descripcionCargo) && validarInfo\"\n            [unidad]=\"actoMovimientoBorrarDTO.formatoDTO.accion == parametroFormatoPipe.ELIMININAR_PUESTO_TRABAJO ? actoMovimientoBorrarDTO.unidad : null\"\n            [label]=\"actoMovimientoBorrarDTO.descripcionCargo == null ? '' : actoMovimientoBorrarDTO.descripcionCargo\"\n            (onSelected)=\"setRegresarCargo($event)\" [mostrarX]=\"true\"\n            [header]=\"('cargo' | translate)+'*'\">\n        </app-input-helper-seleccion-cargo>\n    </div>\n    <!--Clase puesto-->\n    <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"crearPuestoTrabajo && mostrarClasePuesto\">\n        <span class=\"p-float-label\">\n            <p-dropdown [showClear]=\"false\" [options]=\"listaClasePuesto\" [class]=\"!utilsService.validarCampoObligatorio(actoMovimientoBorrarDTO.clasePuesto) && validarInfo ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"bloquearClasePuesto\"\n                [(ngModel)]=\"actoMovimientoBorrarDTO.clasePuesto\" ></p-dropdown>\n            <label>{{'clasepuesto' | translate}}*</label>\n        </span>\n    </div>\n    <!--Turno-->\n    <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"mostrarTurno && crearPuestoTrabajo\">\n        <span class=\"p-float-label\">\n            <p-dropdown [showClear]=\"false\" [options]=\"listadoTurno\" [class]=\"!utilsService.validarCampoObligatorio(actoMovimientoBorrarDTO.numeroTurno) && validarInfo ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"bloquearTurno\"\n                [(ngModel)]=\"actoMovimientoBorrarDTO.numeroTurno\" ></p-dropdown>\n            <label>{{'turno' | translate}}*</label>\n        </span>\n    </div>\n    <!-- Tipo Periodo -->\n    <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"mostrarPeriodo && crearPuestoTrabajo\">\n        <span class=\"p-float-label\">\n            <p-dropdown [showClear]=\"false\" [options]=\"listadoTipoPeriodo\" [class]=\"!utilsService.validarCampoObligatorio(actoMovimientoBorrarDTO.numeroTipoPeriodo) && validarInfo ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"bloquearPeriodo\"\n                [(ngModel)]=\"actoMovimientoBorrarDTO.numeroTipoPeriodo\" ></p-dropdown>\n            <label>{{'tipoperiodo' | translate}}*</label>\n        </span>\n    </div>\n    <!-- Vinculación -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'VINCULACION'\">\n        <span class=\"p-float-label\">\n            <p-dropdown [showClear]=\"false\" [options]=\"listadoVinculacion\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"dato.accion != 'S'\"\n                [(ngModel)]=\"actoMovimientoBorrarDTO.vincula\" ></p-dropdown>\n            <label>{{'vinculacion' | translate}}*</label>\n        </span>\n    </div>-->\n    <!-- Linea Costo -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'LINEA'\">\n        <span class=\"p-float-label\">\n            <p-dropdown [showClear]=\"false\" [options]=\"listaLineaCosto\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\" [disabled]=\"dato.accion != 'S'\"\n                [(ngModel)]=\"actoMovimientoBorrarDTO.lineaCosto\" ></p-dropdown>\n            <label>{{'lineacosto' | translate}}*</label>\n        </span>\n    </div>-->\n    <!-- Zona Economica -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'COSTEO'\">\n        <app-input-helper-seleccion-zona-centro [readonly]=\"dato.accion != 'S'\" [showDialog]=\"false\"\n            [booleano]=\"dato.mensaje == 'S'\" [mostrarZonaLabel]=\"true\"\n            [label]=\"actoMovimientoBorrarDTO.descripcionCentroCosto ? '' : actoMovimientoBorrarDTO.descripcionCentroCosto\"\n            [labelIntput]=\"'centrocosto' | translate\" (onSelected)=\"setZonaCentro($event)\" [mostrarX]=\"true\" >\n        </app-input-helper-seleccion-zona-centro>\n    </div>-->\n    <!-- Centro Costo -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'CENTRO'\">\n        <span class=\"p-float-label\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"actoMovimientoBorrarDTO.descripcionZonaEconomica\" [readOnly]=\"true\" [disabled]=\"true\"\n                 autocomplete=\"off\" />\n            <label>{{'zonaeconomica' | translate}}*</label>\n        </span>\n    </div>-->\n    <!-- Ubicacion Fisica -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'UBICACION'\">\n        <app-input-helper-seleccion-ubicacion-fisica [readonly]=\"dato.accion != 'S'\" [showDialog]=\"false\"\n            [label]=\"(actoMovimientoBorrarDTO.descripcionUbicacionFis != null ? actoMovimientoBorrarDTO.descripcionUbicacionFis : '')\"\n            (onSelected)=\"setUbicacion($event)\" [mostrarX]=\"true\" [booleano]=\"dato.mensaje == 'S'\">\n        </app-input-helper-seleccion-ubicacion-fisica>\n    </div>-->\n    <!-- Asignación -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'SUELDO' || dato.campo == 'NEGOCIACION'\">\n        <span class=\"p-float-label\">\n            <p-inputNumber [disabled]=\"dato.accion != 'S'\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                [(ngModel)]=\"actoMovimientoBorrarDTO.sueldo\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n            </p-inputNumber>\n            <label>{{'asignacion' | translate}}*</label>\n        </span>\n    </div>-->\n    <!-- Total -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'TOTAL'\">\n        <span class=\"p-float-label\">\n            <p-inputNumber [disabled]=\"dato.accion != 'S'\" [class]=\"dato.mensaje == 'S' ? 'ng-invalid ng-dirty' : ''\"\n                [(ngModel)]=\"actoMovimientoBorrarDTO.total\" mode=\"decimal\" [minFractionDigits]=\"2\" >\n            </p-inputNumber>\n            <label>{{'total' | translate}}*</label>\n        </span>\n    </div>-->\n    <!-- Responsable -->\n    <!--<div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"dato.campo == 'RESPONDE'\">\n        <app-input-helper-planta-lider [readonly]=\"dato.accion != 'S'\" [showDialog]=\"false\"\n            [booleano]=\"dato.mensaje == 'S'\" [mostrarX]=\"dato.accion == 'S'\"\n            [label]=\"actoMovimientoBorrarDTO.nombreResponde  == null ? '' : actoMovimientoBorrarDTO.nombreResponde\"\n            [llaveUnidad]=\"actoMovimientoBorrarDTO.unidad\" [llavePuestoActual]=\"actoMovimientoBorrarDTO.responde\"\n            (onSelected)=\"setPuestoSeleccionado($event)\" [mostrarX]=\"true\" >\n        </app-input-helper-planta-lider>\n    </div>-->\n</div>\n\n<!--<div class=\"flex justify-content-end\" *ngIf=\"mostrarBotones\">\n    <button pButton pRipple class=\"ml-2 p-button-outlined\"\n        label=\"{{'link_continuar' | translate}}\" (click)=\"continuarAction()\" icon=\"glyphicons glyphicons-chevron-right\">\n    </button>\n    <button pButton pRipple class=\"p-button-outlined font-semibold ml-2 mb-0 mt-0\" icon=\"pi pi-sign-out p-2 pr-1\"\n        label=\"{{'link_salir' | translate}}\" (click)=\"salirAction()\">\n    </button>\n</div>-->","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, viewChild } from '@angular/core';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { ActoMovPlantaModel } from '../../../models/ActoMovPlantaModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { ActoAdministrativosPdfModel } from '../../../models/ActoAdministrativosPdfModel';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { FormatoService } from '../../../services/formato.service';\nimport { AuthService, CampoFormularioModel, FormulariodinamicoComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { ActoMovPlantaService } from '../../../services/acto-mov-planta.service';\nimport { PuestoTrabajoService } from '../../../../talento/services/puesto-trabajo.service';\nimport { PopupSubirArchivoActosComponent } from '../../../popups/popup-subir-archivo-actos/popup-subir-archivo-actos.component';\nimport { PopupSeguimientoComponent } from '../../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { MostrarDatosCombinacionActoMovPlantaComponent } from '../mostrar-datos-combinacion-acto-mov-planta/mostrar-datos-combinacion-acto-mov-planta.component';\nimport { InfoEmpleadoOcupaMovPlantaComponent } from '../info-empleado-ocupa-mov-planta/info-empleado-ocupa-mov-planta.component';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\n\n@Component({\n  selector: 'app-actos-mov-planta-crea-elimina',\n  standalone: true,\n  imports: [FormulariodinamicoComponent, \n\tPopupSubirArchivoActosComponent, \n\tPopupSeguimientoComponent, \n\tMostrarDatosCombinacionActoMovPlantaComponent, \n\tInfoEmpleadoOcupaMovPlantaComponent, \n\tButtonModule, \n\tRippleModule,\n\tTranslateModule],\n  templateUrl: './actos-mov-planta-crea-elimina.component.html',\n  styleUrl: './actos-mov-planta-crea-elimina.component.scss'\n})\nexport class ActosMovPlantaCreaEliminaComponent implements OnInit {\n\n\n\t/*Variable donde tengo eun puesto de trabajo seleccionado\n\t*/\n\tpublic puestoTrabajoDTOSeleccionado: PuestoTrabajoModel;\n\t\n\tpublic actoMovimientoBorrarDTO: ActoMovPlantaModel;\n\t\n\tpublic etapa: string = null;\n\tpublic accion: string = null;\t\n\tpublic llaveBase: string = null;\n\tpublic paso: string = null;\n\t\n\tpublic listaPuestoTrabajoOcupa: PuestoTrabajoModel[];\n\t\n\tpublic listaFormatoDatoDocumentoItem: any[];\n\tpublic listaFirmaDocumentoItem: any[];\n\tpublic listaUnidadDocumentoItem: any[];\n\tpublic listaSucursalItem: any[];\n\tpublic listaRoloItem: any[];\n\tpublic listaTipoCambioItem: any[];\n\tpublic listaSoporteItem: any[];\n\tpublic listaCargoItem: any[];\n\tpublic listaUnidadItem: any[];\n\t\n\tpublic mostrarRegresar: boolean;\n\tpublic puedeEditarUnidadCargo: boolean;\n\tpublic seguimiento: boolean;\n\tpublic descripcionGrupo: string;\n\t\n\tpublic listaParaPuesto: FormatoDatoModel[];\n\t\n\tpublic listaParaCampoLegalizada: FormatoDatoModel[];\n\t\n\tpublic actoDtoPdf: ActoAdministrativosPdfModel;\n\t\n\t/*variable donde almacenaremos el nombre del archivo que genero el proceso de combinacion del acto\n\ten donde el nombre de ese archivo sera una llave generada .pdf\n\tpor ejemplo e29bf30e30f2450dafe0747665fcefe6.pdf*/\n\tpublic llaveNombreArchivoProcesoCombinacion: string;\t\t\n\t\n\tpublic accionFormato: string;\n\tpublic rutaFoto:string=null;\n\n\tpublic vistaVisualizar:string=null;\n\tpublic campos: CampoFormularioModel[] = [];\n\tpublic mostrar: boolean = false;\n\tpublic mostrarPopupSubirArchivo: boolean = false;\n\tpublic mostrarPopupSeguimiento: boolean = false;\n\t@Input() public tipoSeleccionado: string;\n\t@Output() public regresar = new EventEmitter();\n\t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\t@ViewChild(PopupSubirArchivoActosComponent) popupSubirArchivo: PopupSubirArchivoActosComponent;\n\t@ViewChild(PopupSeguimientoComponent) popupSeguimiento: PopupSeguimientoComponent;\n\t@ViewChild(MostrarDatosCombinacionActoMovPlantaComponent) mostrarDatosCombinacion: MostrarDatosCombinacionActoMovPlantaComponent;\n\t@ViewChild(InfoEmpleadoOcupaMovPlantaComponent) infoEmpleado: InfoEmpleadoOcupaMovPlantaComponent;\n\n  ngOnInit(): void {\n      \n  }\n\n  constructor(private parametroFormatoPipe: ParametroFormatoPipe,\n              private generalPipe: GeneralPipe,\n\t\t\t  private campoFormularioPipe: CampoFormularioPipe,\n              private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n\t\t\t  private notificacionesService: ToastService,\n              private formatoService: FormatoService,\n\t\t\t  public utilsService: UtilsService,\n\t\t\t  private translateService: TranslateService,\n\t\t\t  private actoMovPlantaService: ActoMovPlantaService,\n\t\t\t  private puestoTrabajoService: PuestoTrabajoService,\n\t\t\t  private generalService: GeneralService,\n\t\t\t  private authService: AuthService,\n\t\t\t  private popupsDinamicosPipe: PopupsDinamicosPipe,\n  ){}\n\n  private inicializar(){\n    this.etapa = null;\n    this.accion = null;\t\n    this.llaveBase = null;\t\t\t\n    this.listaParaPuesto = [];\n    this.listaParaCampoLegalizada = [];\n    this.listaPuestoTrabajoOcupa = [];\n    this.puestoTrabajoDTOSeleccionado = null;\n    this.puedeEditarUnidadCargo = false;\n    this.seguimiento = false;\n    this.vistaVisualizar = null;\n\t}\n\t\n\t\n\tpublic async pasoAnterior(){\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)){\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\t\t\n\t\t\tawait this.crearFormularioListaParaCampo();\n\t\t}\t\t\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\t}\n\t\tthis.vistaVisualizar = null;\n\t\tawait this.enviarPasoInfoEmlOcupaMovPlanta();\n\t\tif (this.isEliminarPuestoTrabajo()) {\n\t\t\t//this.cargarFotoPuestos();\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * @param empresa Empresa en donde se vincula la planta\n\t * @param formato LLave del formato que tendra relacionado este Acto\n\t * @param grupoVincula Cada Acto Ingreso tendra relacionado un grupo vincula\t \t \t \n\t */\n\tpublic async nuevo(empresa: number, formato: number, grupoVincula: number, accionFormato: string){\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\t\tthis.mostrarRegresar = true;\n\t\tthis.seguimiento = false;\n\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\t\n\t\tthis.accionFormato = accionFormato;\n\t\t\n\t\t\n\t\tthis.actoMovimientoBorrarDTO = new ActoMovPlantaModel();\n\t\tthis.actoMovimientoBorrarDTO.formato = formato;\n\t\tthis.actoMovimientoBorrarDTO.empresa = empresa;\n\t\tthis.actoMovimientoBorrarDTO.grupoVincula = grupoVincula;\n\t\tthis.actoMovimientoBorrarDTO.identifica = 0;\n\t\tthis.actoMovimientoBorrarDTO.formatoDTO = await this.formatoService.traerFormato({formato: formato, empresa: empresa}).toPromise();\n\t\tthis.actoMovimientoBorrarDTO.postLegaliza = this.generalPipe.PUNTO;\n\n\t\t\t\n//\t\t\tif(actoMovimientoBorrarDTO.formatoDTO.getListaSoporteItem() != null && actoMovimientoBorrarDTO.formatoDTO.getListaSoporteItem().length != 0){\n//\t\t\t\tactoMovimientoBorrarDTO.setSoporte((String)actoMovimientoBorrarDTO.formatoDTO.getListaSoporteItem().get(0).getPlanilla());\n//\t\t\t}\n      for (let formatoFirmaDTO of this.actoMovimientoBorrarDTO.formatoDTO.listaSoporteItem) {\n\n        if(formatoFirmaDTO.origenActo != null && formatoFirmaDTO.origenActo == (this.parametroFormatoPipe.ACTOS_ORIGINALES)){\n            this.actoMovimientoBorrarDTO.soporte = formatoFirmaDTO.planilla;\n            break;\n        }\n      }\n\n      if(this.actoMovimientoBorrarDTO.formatoDTO != null && this.actoMovimientoBorrarDTO.formatoDTO.tipoCambioEmp != null && this.actoMovimientoBorrarDTO.formatoDTO.tipoCambioEmp != this.generalPipe.PUNTO){\n        this.actoMovimientoBorrarDTO.tipoCambio = this.actoMovimientoBorrarDTO.formatoDTO.tipoCambioEmp;\n      }\n\n      this.actoMovimientoBorrarDTO.cargo = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.cargoAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.centroAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.centroCosto = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.lineaAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.lineaCosto = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.ubicacionFisica = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.ubicacionFisicaAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.unidadAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.zonaAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.zonaEconomica = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.sueldo = 0;\n      this.actoMovimientoBorrarDTO.sueldoAntes = 0;\n      this.actoMovimientoBorrarDTO.numeroTurno = 0;\n      this.actoMovimientoBorrarDTO.numeroTurnoAntes = 0;\n      this.actoMovimientoBorrarDTO.negociacion = 0;\n      this.actoMovimientoBorrarDTO.numeroTipoPeriodo = 0;\n      this.actoMovimientoBorrarDTO.numeroTipoPeriodoAntes = 0;\n      this.actoMovimientoBorrarDTO.tipoPuestoTrabajo = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.tipoPuestoTrabajoAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.centroCosto = this.generalPipe.PUNTO;\n\n      if(this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra != null && this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra != this.generalPipe.PUNTO){\n        this.actoMovimientoBorrarDTO.tipoPuestoTrabajo = this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra;\n      }\n\n      this.actoMovimientoBorrarDTO.sucursalNueva = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.sucursalAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.clasePuesto = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.claseAntes = this.generalPipe.PUNTO;\n      this.actoMovimientoBorrarDTO.llavePuesto = null;\n      this.actoMovimientoBorrarDTO.llavePuestoAntes = null;\n      this.actoMovimientoBorrarDTO.numeroVincula = 0;\n      this.actoMovimientoBorrarDTO.numeroVinculaAntes = 0;\n\n      if(this.actoMovimientoBorrarDTO.formatoDTO.vincula != null){\n        this.actoMovimientoBorrarDTO.numeroVincula = this.actoMovimientoBorrarDTO.formatoDTO.vincula;\n      }\n      this.actoMovimientoBorrarDTO.soporte = this.generalPipe.PUNTO;\n\n      this.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\tawait this.cargarComboYFormulario(formato);\n\t\t\n\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\n\t\t\n\t}\n\t\n\tpublic async cargarComboYFormulario(formato: number){\n\t\tthis.mostrar = true;\n\t\tawait this.cargarCombos(formato);\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)  || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\tawait this.crearFormularioListaParaCampo();\n\t\t}\n\t\telse if(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\t}\n\t\tawait this.enviarPasoInfoEmlOcupaMovPlanta();\t\t\n\t}\n\t\n\t\n\tpublic async cargaListaFormularioLeglizadaYcampo(){\n\t\tvar datoDTO = new FormatoDatoModel();\n\t\tdatoDTO.formato = this.actoMovimientoBorrarDTO.formato;\n\t\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n\t\t//CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n    \tawait this.crearFormularioListaParaCampo();\n\t\tawait this.crearFormularioListaLegalizada();\n\t\t\n\t\tif((this.listaParaCampoLegalizada != null && this.listaParaCampoLegalizada.length == 0) || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t\t}\n\t\telse{\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t}\n\t\t\t\t\t\n\t}\n\t\n\tpublic async crearFormularioListaLegalizada(){\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoMovPlanta().toPromise(); \n\t\tthis.formularioDinamico.limpiar();\n\t\tthis.formularioDinamico.camposCaracteristicaClear()\n\n\t\t// adicionamos al grupo1, los datos del grupo 2\n\t\tthis.campos.forEach(g2 => {\n\t\t\tg2.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n\t\t\tg2.obligatorio = false;\n\t\t\t//grupo1.Campos().push(g2);\n\t\t})\n\t\t\t\n\t\t/**\n\t\t * iniciamos las variables de TABLA1, TABLA2, TABLA3 si deben o no mostrarse\n\t\t */\t\t\t\n\t\t\n\t\tfor (var dato of this.listaParaCampoLegalizada) {\n\t\t\tfor (var campo of campos2) {\n\t\t\t\tif(campo.descripcion != (dato.campo.trim())){\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n\t\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)){\n\t\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t}\n\t//\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.UNIDAD_ORIGEN)){\n\t//\t\t\t\t\t\tcampo.lista = (listaUnidadDocumentoItem);\n\t//\t\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)){\n\t\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.ROL)){\n\t\t\t\t\tcampo.lista = (this.listaRoloItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)){\n\t\t\t\t\tcampo.lista = (this.listaTipoCambioItem);\n\t\t\t\t}\n\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SOPORTE)){\n\t\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t\t}\t\t\t\t\t\n\t\t\t\tcampo.obligatorio = (true);\n\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\tthis.campos.push(campo);\n\t\t\t}\n\t\t}\n\t\tthis.formularioDinamico.modificar(this.actoMovimientoBorrarDTO, true);\n\t\tawait this.setValorCampos();\n\n\t}\n\t\n\t\n\tpublic async enviarPasoInfoEmlOcupaMovPlanta(){\n\t\t//Cargamos los datos del bean InfoEmpleadoOcupaBean\n\t\tthis.infoEmpleado.actoMovimientoBorrarDTO = (this.actoMovimientoBorrarDTO);\t\t\n\t\tthis.infoEmpleado.accion = (this.accion);\n\t\tthis.infoEmpleado.etapa = (this.etapa);\n\t\tthis.infoEmpleado.verUnidadAdicional = (true);\t\t\n\t\tawait this.infoEmpleado.cargarDescripciones();\t\t\n\t\tthis.infoEmpleado.crearPuestoTrabajo = (this.isCrearPuestoTrabajo());\n\t\tthis.infoEmpleado.listaDatosPlanta = this.listaParaPuesto;\n\t\tthis.infoEmpleado.asignaDatosDefecto();\n\t\tthis.infoEmpleado.LLAVE_BASE = this.llaveBase;\n\t\tthis.infoEmpleado.puedeEditarUnidadCargo = this.puedeEditarUnidadCargo;\n\t}\n\t\n\t/**\n\t * Metodo que carga el formulario dinamico de la lista para campo\n\t */\n\tpublic async crearFormularioListaParaCampo(){\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoMovPlanta().toPromise(); \n\t\tif (this.formularioDinamico) {\n\t\t\tthis.formularioDinamico.limpiar();\n\t\t\tthis.formularioDinamico.camposCaracteristicaClear();\n\t\t\n\t\t}\n\t\tfor (var dato of this.actoMovimientoBorrarDTO.formatoDTO.listaParaCampos) {\n\t\t\tfor (var campo of campos2) {\t\t\t\t\n\t\t\t\tif(campo.descripcion == (dato.campo.trim())){\n\t\t\t\t\tcampo.obligatorio = (true);\n\t\t\t\t\t//CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS QUE CUMPLAN CON DICHO CONDICION\n\t\t\t\t\tif(dato.accion != null && dato.accion.trim() != (this.parametroFormatoPipe.INGRESARE)){\n\t\t\t\t\t\tcampo.obligatorio = (false);\n\t\t\t\t\t}\n\t\t\t\t\t//verificamos si el campo solo se pude visualizar\n\t\t\t\t\tif(dato.accion != null && dato.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR)){\n\t\t\t\t\t\tcampo.editable = 'L';\n\t\t\t\t\t\tcampo.obligatorio = (false);\n\t\t\t\t\t}\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t//CARGAMOS EL COMBO PARA CADA CAMPO\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)){\n\t\t\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)){\n\t\t\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t\t}\n//\t\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.UNIDAD_ORIGEN)){\n//\t\t\t\t\t\t\tcampo.lista = (listaUnidadDocumentoItem);\n//\t\t\t\t\t\t}\n\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)){\n\t\t\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t\t\t}\n\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.ROL)){\n\t\t\t\t\t\tcampo.lista = (this.listaRoloItem);\n\t\t\t\t\t}\n\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)){\n\t\t\t\t\t\tcampo.lista = (this.listaTipoCambioItem);\n\t\t\t\t\t}\n\t\t\t\t\tif(campo.descripcion == (this.parametroFormatoPipe.SOPORTE)){\n\t\t\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t\t\t}\n\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != this.generalPipe.ESPACIO_NULO ? dato.titulo : campo.descripcion;\n\t\t\t\t\tthis.campos.push(campo);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t\n\t\tthis.formularioDinamico.modificar(this.actoMovimientoBorrarDTO, true);\n\t\tawait this.setValorCampos();\n\n\t} \n\t\n\t\n\t/**\n\t * Este metodo cargo todos los combos que necesitan\n\t * entre ellos..(ListaSoporte, ListaCargo, ListaUnidadOrganizacion etc...\n\t * @param formato\n\t */\n\tprivate async cargarCombos(formato: number) {\n\t\tlet data = await this.actoMovPlantaService.cargarCombos({formato: formato}).toPromise();\n\t\tif (!data) {\n\t\t\treturn;\n\t\t}\n\t\tthis.listaFormatoDatoDocumentoItem = data.listaFormatoDatoDocumentoItem;\n\t\tthis.listaFirmaDocumentoItem = data.listaFirmaDocumentoItem;\n\t\tthis.listaRoloItem = data.listaRoloItem;\n\t\tthis.listaTipoCambioItem = data.listaTipoCambioItem;\n\t\tthis.listaSoporteItem = data.listaSoporteItem;\n\t\tthis.listaSucursalItem = data.listaSucursalItem;\n\t}\n\t\n\t/**\n\t * Regresa a la pantalla principal de actos administrativos\n\t * @return null\n\t */\n\tpublic regresarActoAdmin(){\n\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t}\n\t\n\tpublic async seleccionaAction(){\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)){\n\t\t\tif(this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)){\n\t\t\t\tawait this.siguienteAdicional();\n\t\t\t}\n\t\t\telse if(this.paso == (this.parametroFormatoPipe.PASO_PUESTO_TRABAJO)){\n\t\t\t\tawait this.siguientePuestoTrabajo();\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t\telse if(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\tif(this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR) || this.paso == (this.parametroFormatoPipe.PASO_FINAL)){\n\t\t\t\tawait this.siguienteDatoLegalizar();\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\tpublic async elaborar(empresa: number, formato: number, grupo: number,accionFormato: string, actoCorregir: ActoMovPlantaModel){\n\t\tthis.mostrar = false;\n\t\tthis.inicializar();\n\t\tthis.accionFormato = accionFormato;\n\n\t\tif (actoCorregir == null) {\n\t\t\tawait this.nuevo(empresa, formato, grupo, accionFormato);\n\t\t\tthis.mostrar = true;\n\t\t}\n\t\telse {\n\t\t\tawait this.corregir(actoCorregir);\n\t\t}\n\t}\n\n\t/**\n\t * Metodo encargado de realizar las correccion sobre un acto mov Planta\n\t * @param llave Es la llave del acto administrativo que se desea procesar\n\t */\n\tprivate async corregir(actoCorregir: ActoMovPlantaModel){\n\t\tthis.llaveBase = this.generalPipe.ESPACIO_NULO;\n\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.traerActoMovPlanta({llave: actoCorregir.llave}).toPromise();\n\t\tthis.actoMovimientoBorrarDTO.derogacion = (actoCorregir.llave);\n\t\tthis.actoMovimientoBorrarDTO.postLegaliza = (this.parametroFormatoPipe.CORREGIR);\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t\n\t\tthis.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\n\t\tawait this.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n\t\t\n\t\t//SI ESTAMOS REALIZANDO UN PROCESO DE ELIMINACION DEBEMOS MOSTRAR EL PUESTO DE TRABAJO SELECCIONADO\n\t\tif(this.isEliminarPuestoTrabajo()){\n\t\t\tvar puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\tpuestoTrabajoDTO.unidad=(this.actoMovimientoBorrarDTO.unidad);\n\t\t\tpuestoTrabajoDTO.cargo=(this.actoMovimientoBorrarDTO.cargo);\n\t\t\tpuestoTrabajoDTO.empresa=(parseInt(this.authService.getTokenKey('numeroEmpresa')));\t\t\t\t\n\t\t\tpuestoTrabajoDTO.tipoEstados=('DISPONIBLES');\n\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n\t\t\t\n\t\t\tthis.buscarYseleccionarPuesto();\n\t\t\t//y cambiamos el paso \n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\t\t\t\t\n\t\t}\n\t\t\t\t\n\t}\n\t\n\t/**\n\t * Permite modificar el acto administrativo\n\t * @param llave La llave del acto administrativo que se quiere modificar\n\t */\n\tpublic async modificar(llave: string ,accionFormato: string){\n\t\tthis.inicializar();\n\t\tthis.accionFormato = accionFormato;\n\t\tthis.mostrarRegresar = true;\n\t\tthis.llaveBase = llave;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.traerActoMovPlanta({llave: llave}).toPromise();\n\t\t\n\t\tif(this.actoMovimientoBorrarDTO.derogacion != null){\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t}\n\t\telse{\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\t\t\t\t\n\t\t}\t\t\t\n\t\t\n\t\tthis.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tawait this.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n\t\t\n\t\t//SI ESTAMOS REALIZANDO UN PROCESO DE ELIMINACION DEBEMOS MOSTRAR EL PUESTO DE TRABAJO SELECCIONADO\n\t\tif(this.isEliminarPuestoTrabajo()){\n\t\t\tvar puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\tpuestoTrabajoDTO.unidad = this.actoMovimientoBorrarDTO.unidad;\n\t\t\tpuestoTrabajoDTO.cargo = this.actoMovimientoBorrarDTO.cargo;\n\t\t\tpuestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\t\t\t\t\n\t\t\tpuestoTrabajoDTO.tipoEstados = 'DISPONIBLES';\n\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n\t\t\t\n\t\t\tthis.buscarYseleccionarPuesto();\n\t\t\t//y cambiamos el paso \n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\t\t\t\t\n\t\t}\n\t}\n\t\n\tpublic buscarYseleccionarPuesto(){\n\t\tvar unidad = this.actoMovimientoBorrarDTO.unidad;\n\t\tvar cargo = this.actoMovimientoBorrarDTO.cargo;\n\t\tvar llave = this.actoMovimientoBorrarDTO.llavePuesto;\n\t\tvar emp = this.actoMovimientoBorrarDTO.empresa;\n\t\tfor (var puesto of this.listaPuestoTrabajoOcupa) {\n\t\t\tif (llave == (puesto.llave) && unidad == (puesto.unidad) && cargo == (puesto.cargo) && emp == (puesto.empresa)) {\n\t\t\t\tthis.cambiarEstadoSeleccion(puesto.llave);\n\t\t\t\tthis.puestoTrabajoDTOSeleccionado = Object.assign({}, puesto);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\n\t/**\n\t * Permite legalizar un acto administrativo\n\t * @param llave La llave del acto administrativo que se quiere legalizar\n\t */\n\tpublic async legalizacion(llave: string,accionFormato: string){\n\t\tthis.inicializar();\n\t\tthis.accionFormato = accionFormato;\n\t\tthis.mostrarRegresar = true;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.traerActoMovPlanta({llave: llave}).toPromise();\n\t\tif(this.actoMovimientoBorrarDTO.derogacion != null){\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t}\n\t\telse{\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\t\t\t\t\n\t\t}\n\t\t\n\t\tthis.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t\n\t\tawait this.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n//\t\t\tcargarDescripcionesUnidadYcargo();\n\t\t\n\t\t//SI ESTAMOS REALIZANDO UN PROCESO DE ELIMINACION DEBEMOS MOSTRAR EL PUESTO DE TRABAJO SELECCIONADO\n\t\tif(this.isEliminarPuestoTrabajo()){\n\t\t\t\n\t\t\tvar puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\tpuestoTrabajoDTO.unidad = this.actoMovimientoBorrarDTO.unidad;\n\t\t\tpuestoTrabajoDTO.cargo = this.actoMovimientoBorrarDTO.cargo;\n\t\t\tpuestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\t\t\t\t\n\t\t\tpuestoTrabajoDTO.tipoEstados = 'DISPONIBLES';\n\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n\t\t\tthis.puedeEditarUnidadCargo = true;\n\t\t\tthis.buscarYseleccionarPuesto();\n\t\t}\t\t\t\n\t}\n\t\n\t\n\t/**\n\t * Permite eliminar un acto administrativo\n\t * @param llave La llave del acto administrativo que se quiere eliminar\n\t */\n\tpublic async eliminar(llave: string,accionFormato: string){\n\t\tthis.inicializar();\n\t\tthis.accionFormato = accionFormato;\n\t\tthis.mostrarRegresar = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\t\tthis.llaveBase = llave;\n\t\tthis.actoMovimientoBorrarDTO  = await this.actoMovPlantaService.traerActoMovPlanta({llave: llave}).toPromise();\n\t\t\n\t\tif(this.actoMovimientoBorrarDTO.derogacion != null){\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t}\n\t\telse{\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\t\t\t\t\n\t\t}\n\t\t\n\t\tthis.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\t\t\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\t\t\n\t\t\t\t\t\n\t\tawait this.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n\t\t//cargarDescripcionesUnidadYcargo();\n\t\tawait this.procesoCombinacion();\n\t}\n\t\n\t\n\tpublic async siguienteAdicional(){\n\t\tif (!this.formularioDinamico.validar()) {\n\t\t\tthis.notificacionesService.showError('Faltan campos obligatorios');\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis.actoMovimientoBorrarDTO = this.formularioDinamico.getObjecto();\n\t\t\n\t\tif(this.actoMovimientoBorrarDTO.tipoCambio == null || this.actoMovimientoBorrarDTO.tipoCambio.trim() == this.generalPipe.PUNTO){\n\t\t\tif ( this.formularioDinamico.obtenerCampo('tipoCambio') != null ) {\n\t\t\t\tthis.notificacionesService.showError('Tipo de cambio ingreso no definido');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif ( this.actoMovimientoBorrarDTO.formatoDTO  != null && this.generalPipe.SI == (this.actoMovimientoBorrarDTO.formatoDTO.definitivo) ) {\n\t\t\t\tthis.notificacionesService.showInfo('Tipo de cambio ingreso no definido');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tif(!this.validarDatosPuestoTrabajo()){\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\t//ESTA VALIDACION SE REALIZA PARA EL PROCESO DE CREACION DE PUESTO DE TRABAJO\n\t\tif(this.isCrearPuestoTrabajo()){\n\t\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.elaborarActoMovPlanta({actoMovPlantaDTO: this.actoMovimientoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\t\t\n\t\t\tif(!this.utilsService.isBlank(this.actoMovimientoBorrarDTO.mensaje)){\n\t\t\t\tthis.notificacionesService.showInfo(this.actoMovimientoBorrarDTO.mensaje);\n\t\t\t\treturn null;\n\t\t\t}\t\t\t\t\n\t\t\tawait this.procesoCombinacion();\n\t\t} else if(this.isEliminarPuestoTrabajo()){\n\t\t\tthis.puestoTrabajoDTOSeleccionado = null;\n\t\t\tvar puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\tpuestoTrabajoDTO.unidad = this.actoMovimientoBorrarDTO.unidad;\n\t\t\tpuestoTrabajoDTO.cargo = this.actoMovimientoBorrarDTO.cargo;\n\t\t\tpuestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\t\t\t\t\n\t\t\tpuestoTrabajoDTO.tipoEstados = 'DISPONIBLES';\n\t\t\tpuestoTrabajoDTO.tipoPuestoTrabajo = this.actoMovimientoBorrarDTO.tipoPuestoTrabajo;\n\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n\t\t\tif(this.listaPuestoTrabajoOcupa == null || this.listaPuestoTrabajoOcupa.length == 0){\n\t\t\t\tthis.notificacionesService.showInfo('No existen puestos de trabajo disponibles en la unidad seleccionada');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t//this.cargarFotoPuestos();\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n\t\t\tthis.cambiarEstadoSeleccion(null);\n\t\t}\t\t\t\t\t\t\t\t\t\t\n\t}\n\t\n\t/**\n\t * Accion final que sea aplica sobre el acto administrativo de acuerdo con la etapa del proceso (ELABORACION/MODIFICACION, ELIMINACION, LEGALIZACION)\n\t */\n\tpublic async aplicarFinal(){\n\t\ttry {\n\t\t\tvar llaveSeguimiento = this.seguimiento ? this.utilsService.generarLlave() : null;\n\t\t\t\n\t\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.legalizarActoMovPlanta({actoMovPlantaDTO: this.actoMovimientoBorrarDTO, etapa: this.etapa, llaveBase: this.llaveBase, usuario: this.authService.getTokenKey('usuario'), llaveSeguimiento}).toPromise();\n\t\t\tif(!this.utilsService.isBlank(this.actoMovimientoBorrarDTO.mensaje)){\n\t\t\t\tthis.notificacionesService.showInfo(this.actoMovimientoBorrarDTO.mensaje);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t\n\t\t\tthis.procesoGeneralAnexo();\n\n\t\t\tvar nombreArchivo //getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)+this.llaveBase+this.generalPipe.PUNTO+this.generalPipe.ARCHIVO_PDF;\n\t\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\t\t/**\n\t\t\t\t * verificamos que el archivo de este acto, se halla genereado bien\n\t\t\t\t */\n\t\t\t\tif(this.actoDtoPdf != null && this.actoDtoPdf.rutaPdf != null && this.actoDtoPdf.mensaje == null){\n\t\t\t\t\tthis.mostrarPopupSubirArchivo = true;\n\t\t\t\t\tawait this.utilsService.sleep(1100)\n\t\t\t\t\tthis.popupSubirArchivo.buscar(this.actoMovimientoBorrarDTO.formatoDTO, nombreArchivo)\n\t\t\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actosIngresoBean.terminar}', this.actoMovimientoBorrarDTO.formatoDTO, nombreArchivo);\n\t\t\t\t\treturn null;\n\t\t\t\t}\t\t\t\t\t\n\t\t\t}\n\t\t\t\t\t\t\n\t\t\t//Muestra el popup de seguimiento. Al cerrarlo muestra el mensaje de éxito del proceso\n\t\t\tif (this.seguimiento ) {\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t\tthis.popupSeguimiento.llave = llaveSeguimiento;\n\t\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actosMovPlantaBean.cierreSeguimiento}');\n\t\t\t}\n\t\t\telse{\n\t\t\t\t//Muestra el mensaje de éxito del proceso\n\t\t\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t\t\tthis.notificacionesService.showInfo(titulo);\n\t\t\t}\n\t\t\t\t\t\t\n\t\t} catch (e) {\n\t\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)){\n\t\t\t\tthis.borrarRegistro();\n\t\t\t}\t\t\t\n\t\t\tthis.notificacionesService.showError(e);\n\t\t}\t\t\n\t\t\n\t\treturn null;\n\t}\n\t\n\t/**\n\t * Método de retorno del evento de cierre del popup de seguimiento\n\t * Muestra mensaje de éxito del proceso\n\t * @param objeto Se utiliza este parámetro para dar al método la forma de un método SET\n\t */\n\tpublic setCierreSeguimiento(objeto){\n\t\t//BundleBean bean = (BundleBean)FacesUtils.getBean('basicBundleBase');\n\t\t//String titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t//info(titulo,'#{actosIngresoBean.terminar}');\n\t}\n\t\n\t/**\t \n\t * Metodo que me genera el reporte pdf\n\t */\n\tpublic async  procesoCombinacion(){\n\t\t//cada vez que se genere un proceso de combinacion el nombre de archivo quedara null, en donde nos sirvara para saber si el \n\t\t//proceso de combinacion se efectuo bien, por si este se genero correctamente esta variable que da con el nombre con que se genero el \n\t\t//el archivo..\n\t\t\n\t\tthis.llaveNombreArchivoProcesoCombinacion = null;\n\t\tvar listaMarcador: any[] = [];\n\t\tvar columnas: string[] = [];\n\t\tcolumnas.push('C_LLAVE');\n\t\tvar valores: any[] = [];\n\t\tvalores.push(this.actoMovimientoBorrarDTO.llave);\n\t\t\n\t\tvar usf = new UsuarioFormatoModel();\n\t\tusf.usuario = this.authService.getTokenKey('usuario');\n\t\tusf.grupo = this.actoMovimientoBorrarDTO.grupoVincula;\n\t\t// usf.vinculacion = new Integer(0);\n\t\tusf.tipo = 'US';\n\t\tusf.formato = this.actoMovimientoBorrarDTO.formatoDTO.llave;\n\t\tusf = await this.generalService.queryForObject(new GeneralModel('UsuarioFormatoDTO', null, false, usf)).toPromise(); \n\t\tvar mostrarPdfoWord: boolean;\n\t\t//verificamos en que formato vamos a mostrar este acto\n\t\t//si en formato pdf o formato word\t\t\t\t\n\t\tif(usf == null || usf.informe == null){\n\t\t\tmostrarPdfoWord = false;\n\t\t}\n\t\telse{\n\t\t\t//si es F, Mostramos pdf\n\t\t\t//sino, mostramos word\n\t\t\tmostrarPdfoWord = ('F' == (usf.informe.trim()));\t\t\t\t\t\t\t\t\t\t\t\n\t\t}\n\t\tthis.actoDtoPdf = await this.actoCambioEmpleadoService.generarPdf({\n\t\t\tcolumnas: columnas, valores: valores, listaMarcador: listaMarcador, soportePlanilla: this.actoMovimientoBorrarDTO.soporte\n\t\t}).toPromise()\n\n\t\tthis.vistaVisualizar = ('VIZUALIZAR_DATOS_COMBINACION_EMPLEADO_MOV_PLANTA');\t\t\t\t\t\t\t\t\t\t\t\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.mostrarDatosCombinacion.actoMovimientoBorrarDTO = this.actoMovimientoBorrarDTO;\n\t\tthis.mostrarDatosCombinacion.etapa = this.etapa;\n\t\tthis.mostrarDatosCombinacion.deDondeVengo = null;\n\t\tthis.mostrarDatosCombinacion.formatoDTO = this.actoMovimientoBorrarDTO.formatoDTO;\t\t\t\t\t\t\t\t\t\t\n\t\tthis.mostrarDatosCombinacion.LLAVE_BASE = this.llaveBase;\n\t\tthis.mostrarDatosCombinacion.mostrarPdf = this.actoDtoPdf.resultado;\n\t\tthis.mostrarDatosCombinacion.mostrarWord = !mostrarPdfoWord;\n\t\tthis.mostrarDatosCombinacion.rutaFisicaWord = this.actoDtoPdf.rutaWord;\n\t\tthis.mostrarDatosCombinacion.procesoQueEstoyTrabajando = this.accionFormato;\n\t\tthis.mostrarDatosCombinacion.mostrarRegresar = this.mostrarRegresar;\n\n\t\t// Enviamos los combos que se utilizaron en el acto, para mostrar la información en la \n\t\t// siguiente página, que son los combos del Formulario Dinámico\n\t\tthis.mostrarDatosCombinacion.listaFormatoDatoDocumentoItem = this.listaFormatoDatoDocumentoItem;\n\t\tthis.mostrarDatosCombinacion.listaFirmaDocumentoItem = this.listaFirmaDocumentoItem;\n\t\tthis.mostrarDatosCombinacion.listaUnidadDocumentoItem = this.listaUnidadDocumentoItem;\n\t\tthis.mostrarDatosCombinacion.listaSucursalItem = this.listaSucursalItem;\n\t\tthis.mostrarDatosCombinacion.listaRoloItem = this.listaRoloItem;\n\t\tthis.mostrarDatosCombinacion.listaTipoCambioItem = this.listaTipoCambioItem;\n\t\tthis.mostrarDatosCombinacion.listaSoporteItem = this.listaSoporteItem;\n\t\tthis.mostrarDatosCombinacion.listaCargoItem = this.listaCargoItem;\n\t\tthis.mostrarDatosCombinacion.listaUnidadItem = this.listaUnidadItem;\n\n\t\t//cargamos el formulacion dinamico dependiendo de la etapa donde me encuentre trabajando \t\t\t\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)  || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\tthis.mostrarDatosCombinacion.cargarFormularioDinamicoElaboraModifica();\n\t\t}\n\t\telse if(this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\tthis.mostrarDatosCombinacion.cargarFormularioDinamicoLegalizaElimina();\n\t\t}\t\t\t\n\t\t\n\t\tif(this.actoDtoPdf.resultado){\n\t\t\tthis.llaveNombreArchivoProcesoCombinacion = this.actoDtoPdf.rutaPdf;\n\t\t\tthis.mostrarDatosCombinacion.ruta = this.actoDtoPdf.rutaPdf;\t\t\t\t\n\t\t}\n\t\telse {\n\t\t\tif ( this.actoDtoPdf.mensaje != null) {\n\t\t\t\tthis.notificacionesService.showInfo(this.actoDtoPdf.mensaje);\n\t\t\t}\n\t\t\t/*else if (this.actoDtoPdf.exceptionResultado != null ) {\n\t\t\t\tthis.notificacionesService.showError(this.actoDtoPdf.exceptionResultado);\n\t\t\t}*/\n\t\t}\n\t\tthis.mostrarDatosCombinacion.mostrarFotoEml = false;\n\t\tthis.mostrarDatosCombinacion.mostrarFotoHojaVida = true;\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)){\n\t\t\tthis.borrarRegistro();\n\t\t}\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t}\t\n\t\n\t/**\n\t * Metodo que borra el registro insertado cuando se genera algun error..\n\t */\n\tpublic borrarRegistro(){\n\t\t//BORRAMOS EL REGITRO\n\t\tif(this.actoMovimientoBorrarDTO != null){\n\t\t\tthis.actoMovPlantaService.borrarRegistroActoMovPlanta({llave: this.actoMovimientoBorrarDTO.llave}).subscribe(data => {\n\n\t\t\t});\n\t\t}\n\t}\t\n\t\n\tpublic procesoGeneralAnexo(){\n\t\t//despues de cada aplicar y que el proceso se realize de forma correcta\n\t\t//guardamos una registro de ese archivo en la tabla anexoHojaVida_ahv\n\t\t//1. SI ESTAMOS REALIZANDO UNA ELABORACION, INSERTAMOS UN NUEVO REGISTRO ANEXO\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)){\n\t\t\tthis.actoMovPlantaService.registrarAnexoHojaActoMovPlanta({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, actoMovPlantaDTO: this.actoMovimientoBorrarDTO, eliminar: false, llaveEliminar: null}).subscribe(data => {});\n\t\t}\t\t\t\n\t\t//2.SI ESTAMOS RELIZANDO UNA MODIFICACION o LEGALIZACION, ELIMINAMOS EL AL ANTERIOR E INSERTAMOS UNO NUEVO\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\tthis.actoMovPlantaService.registrarAnexoHojaActoMovPlanta({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, actoMovPlantaDTO: this.actoMovimientoBorrarDTO, eliminar: true, llaveEliminar: this.llaveBase}).subscribe(data => {});\n\t\t}\n\t\t//2.SI ESTAMOS RELIZANDO UNA ELIMINACION, ELIMINAMOS EL ANEXO\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\tthis.actoMovPlantaService.registrarAnexoHojaActoMovPlanta({llaveNombreArchivoProcesoCombinacion: null, actoMovPlantaDTO: this.actoMovimientoBorrarDTO, eliminar: true, llaveEliminar: this.llaveBase}).subscribe(data => {});\n\t\t}\n    }\n\t\n\t/**\n\t * Metodo que nos valida los datos del puesto trabajo\n\t * @return boolean Retorna True o False de acuerdo pase las validaciones\n\t */\n\tprivate validarDatosPuestoTrabajo(): boolean {\n\t\tvar valida: boolean = true;\n\t\t\t\t\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.cargo);\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.unidad);\n\t\t\n\t\t//ESTA VALLIDACION SON VALIDAS PARA EL PROCESO DE CREACION DE PUESTO DE TRABAJO\n\t\tif(this.isCrearPuestoTrabajo()){\n\t\t\t\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.TURNO)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.numeroTurno);\t\t\t\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.PERIODO)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.numeroTipoPeriodo);\t\t\t\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.VINCULACION)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.numeroVincula);\t\t\t\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.COSTEO)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.zonaEconomica);\t\t\t\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.LINEA)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.lineaCosto);\t\t\t\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.UBICACION)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.ubicacionFisica);\t\t\t\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.SUELDO)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.sueldo);\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.NEGOCIACION)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.negociacion);\n\t\t\t}\n\t\t\tif(this.obligatorio(this.parametroFormatoPipe.CLASE_PUESTO)){\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.clasePuesto);\n\t\t\t}\n\t\t\tif (this.obligatorio(this.parametroFormatoPipe.PUESTO_RESPONDE)) {\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.puestoResponde);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn valida;\n\t}\n\t\n\t/**\n\t * Metodo que selecciona un puesto trabajo \n\t * @param ActionEvent Objeto para obtener el objeto seleccionado\n\t */\n\tpublic seleccionarPuestoTrabajo(){\n\t\tif(this.puestoTrabajoDTOSeleccionado != null){\n\t\t\tthis.cambiarEstadoSeleccion(this.puestoTrabajoDTOSeleccionado.llave);\n\t\t\tthis.actoMovimientoBorrarDTO.llavePuesto = this.puestoTrabajoDTOSeleccionado.llave;\t\t\t\n\t\t}\t\t\n\t}\n\t\n\t/**\n\t * Determina si el campo indicado es obligatorio\n\t * @param campo El campo que se quiere evaluar\n\t * @return true en caso de ser obligatorio, en caso contrario false\n\t */\n\tpublic  obligatorio(campo: string){\n\t\tfor (var dto of this.listaParaPuesto) {\n\t\t\tif(dto.campo != null && dto.campo.trim() == (campo)){\n\t\t\t\treturn dto.accion != null && (dto.accion == (this.parametroFormatoPipe.INGRESARE));\t\t\t\t\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t\n\tpublic cambiarEstadoSeleccion(llave: string){\n\t\tif(this.listaPuestoTrabajoOcupa != null){\t\t\t\n\t\t\tfor (var pt of this.listaPuestoTrabajoOcupa) {\t\t\t\n\t\t\t\tpt.check = (pt.llave == (llave));\t\t\t\t\n\t\t\t}\t\t\n\t\t}\n\t}\n\t\n\tpublic async siguienteDatoLegalizar() {\n\t\tif(!this.formularioDinamico.validar()){\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tthis.actoMovimientoBorrarDTO = this.formularioDinamico.getObjecto();\t\t\t\t\t\t\t\t\t\t\n\t\t\n\t\tawait this.generalService.update(new GeneralModel('ActoMovPlantaDTO', null, false, this.actoMovimientoBorrarDTO)).toPromise();\n\t\t\n\t\tawait this.procesoCombinacion();\n\t\t\n\t\treturn null;\n\t}\n\t\n\tpublic async siguientePuestoTrabajo(){\n\t\tif(this.isEliminarPuestoTrabajo()){\n\t\t\tvar puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\tpuestoTrabajoDTO.unidad = this.actoMovimientoBorrarDTO.unidad;\n\t\t\tpuestoTrabajoDTO.cargo = this.actoMovimientoBorrarDTO.cargo;\n\t\t\tpuestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\t\t\t\t\n\t\t\tpuestoTrabajoDTO.tipoEstados = 'DISPONIBLES';\n\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\t\t\t\t\t\t\t\t\t\n\t\t\tif(this.listaPuestoTrabajoOcupa == null || this.listaPuestoTrabajoOcupa.length == 0){\n\t\t\t\tthis.notificacionesService.showInfo('No existen puestos de trabajo disponibles en la unidad seleccionada');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif(this.puestoTrabajoDTOSeleccionado == null){\n\t\t\t\tthis.notificacionesService.showError('SELECCIONE UN PUESTO DE TRABAJO');\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif(this.etapa != null && this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)){\n\t\t\t\tthis.actoMovimientoBorrarDTO.numeroTurno = this.puestoTrabajoDTOSeleccionado.turno;\n\t\t\t\tthis.actoMovimientoBorrarDTO.numeroVincula = this.puestoTrabajoDTOSeleccionado.vinculacion;\n\t\t\t\tthis.actoMovimientoBorrarDTO.centroCosto = this.puestoTrabajoDTOSeleccionado.centroCosto;\n\t\t\t\tthis.actoMovimientoBorrarDTO.zonaEconomica = this.puestoTrabajoDTOSeleccionado.zonaEconomica;\t\t\t\t\t\t\t\n\t\t\t\tthis.actoMovimientoBorrarDTO.lineaCosto = this.puestoTrabajoDTOSeleccionado.lineaCosto;\n\t\t\t\tthis.actoMovimientoBorrarDTO.ubicacionFisica = this.puestoTrabajoDTOSeleccionado.ubicacionFisica;\n\t\t\t\tthis.actoMovimientoBorrarDTO.numeroTipoPeriodo = this.puestoTrabajoDTOSeleccionado.tipoPeriodo;\n\t\t\t\tthis.actoMovimientoBorrarDTO.negociacion = this.puestoTrabajoDTOSeleccionado.negociacion;\n\t\t\t\tthis.actoMovimientoBorrarDTO.sueldo = this.puestoTrabajoDTOSeleccionado.asignacion;\n\t\t\t}\n\t\t\tthis.actoMovimientoBorrarDTO.unidadAntes = this.actoMovimientoBorrarDTO.unidad;\n\t\t\tthis.actoMovimientoBorrarDTO.llavePuestoAntes = this.actoMovimientoBorrarDTO.llavePuesto;\n\t\t}\n\t\tthis.actoMovimientoBorrarDTO.llavePuesto = this.puestoTrabajoDTOSeleccionado.llave;\n\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.elaborarActoMovPlanta({actoMovPlantaDTO: this.actoMovimientoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\t\t\n\t\tif(!this.utilsService.isBlank(this.actoMovimientoBorrarDTO.mensaje)){\n\t\t\tthis.notificacionesService.showInfo(this.actoMovimientoBorrarDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n//\t\tcargarDescripcionesUnidadYcargo();\n\t\tawait this.procesoCombinacion();\n\t\treturn null;\n\t}\n\n\tasync setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.campos.forEach(async element => {\n\t\t\tif (element.tipo === 'F'){\n\t\t\t  \telement.valor = element.valor ? new Date(element.valor) : null;\n\t\t\t} else if (element.tipo === 'H'){\n\t\t\t  \tif (element.valor){\n\t\t\t\t\tlet listaValortemp = [];\n\t\t\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t\tlistaValortemp.push ({label: element2, value:element2})\n\t\t\t\t\t})\n\t\t\t\t\telement.valor = listaValortemp\n\t\t\t\t}\n\t\t\t} else if (element.tipo === 'P'){\n\t\t\t  \tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id ){\n\t\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t  readonly: !this.formularioDinamico?.editable,\n\t\t\t\t\t  showDialog: false,\n\t\t\t\t\t  label: element.valor,\n\t\t\t\t\t  mostrarX: false,\n\t\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t\t}\n\t\t\t  });\n\t\n\t\t\t} else {\n\t\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\t\telement.valor = element.valor.trim()\n\t\t\t\t  }\n\t\t\t}\n\t\t  });\n\t\t  await this.utilsService.sleep(500)\n\t\t  this.formularioDinamico?.ngAfterViewInit();\n\t\t  this.utilsService.resizeWindowIFrame();\n\t\t  //this.formularioDinamico.campos = this.campos;\n\t}\n\t\n\t\n\t//--------------------------\n\t//  GETTERS y SETTERS\n\t//--------------------------\n\t\t\n\t\n\n\tpublic  isCrearPuestoTrabajo(){\n\t\treturn this.parametroFormatoPipe.CREAR_PUESTO_TRABAJO == (this.accionFormato);\n\t}\n\t\n\tpublic  isEliminarPuestoTrabajo(){\n\t\treturn this.parametroFormatoPipe.ELIMININAR_PUESTO_TRABAJO == (this.accionFormato);\n\t}\n\n\n}\n","@if(mostrar) {\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n        <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n        \n        <button pButton pRipple (click)=\"pasoAnterior()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" \n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n    </div>\n    <div class=\"p-fluid grid\">\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mt-3 flex align-items-center\">\n                    <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                    <span class=\"font-bold\">{{actoMovimientoBorrarDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                </div>\n                <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\" [objeto]=\"actoMovimientoBorrarDTO\" ></formulario-dinamico>\n            </div>\n        </div>\n\n        <div class=\"field col-12 md:col-6 lg:col-6\" >\n            <app-info-empleado-ocupa-mov-planta></app-info-empleado-ocupa-mov-planta>\n        </div>\n        \n    </div>\n    @if (vistaVisualizar == 'VIZUALIZAR_DATOS_COMBINACION_EMPLEADO_MOV_PLANTA') {\n        \n    }\n}","import { Component, Input, ViewChild } from '@angular/core';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { ActoAdministrativosPdfModel } from '../../../models/ActoAdministrativosPdfModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { ActoMovPlantaModel } from '../../../models/ActoMovPlantaModel';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { FormatoService } from '../../../services/formato.service';\nimport { ActoMovPlantaService } from '../../../services/acto-mov-planta.service';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { AuthService, CampoFormularioModel, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { InfoEmpleadoOcupaMovPlantaComponent } from '../info-empleado-ocupa-mov-planta/info-empleado-ocupa-mov-planta.component';\nimport { PuestoTrabajoService } from '../../../../talento/services/puesto-trabajo.service';\nimport { PopupSubirArchivoActosComponent } from '../../../popups/popup-subir-archivo-actos/popup-subir-archivo-actos.component';\nimport { PopupSeguimientoComponent } from '../../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { MostrarDatosCombinacionActoMovPlantaComponent } from '../mostrar-datos-combinacion-acto-mov-planta/mostrar-datos-combinacion-acto-mov-planta.component';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ActoIngresoAusenciaModel } from '../../../models/ActoIngresoAusenciaModel';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\n\n@Component({\n  selector: 'app-actos-mov-planta-libera-traslada',\n  standalone: true,\n  imports: [InputHelperUnidadComponent,],\n  templateUrl: './actos-mov-planta-libera-traslada.component.html',\n  styleUrl: './actos-mov-planta-libera-traslada.component.scss'\n})\nexport class ActosMovPlantaLiberaTrasladaComponent {\n\n  // Variable donde tengo eun puesto de trabajo seleccionado\n  public puestoTrabajoDTOSeleccionado: PuestoTrabajoModel;\n\n  public muestraDatosPlanta: boolean;\n  public seguimiento: boolean;\n\n  public actoMovimientoBorrarDTO: ActoMovPlantaModel;\n\n  public etapa: string = null;\n  public accion: string = null;\n  public llaveBase: string = null;\n  public paso: string = null;\n  public descripcionGrupo: string;\n\n  public listaPuestoTrabajoOcupa: any[];\n\n  public listaFormatoDatoDocumentoItem: any[] = []; // Puedes reemplazar `any` con el tipo adecuado si está disponible\n  public listaFirmaDocumentoItem: any[] = [];\n  public listaUnidadDocumentoItem: any[] = [];\n  public listaSucursalItem: any[] = [];\n  public listaRoloItem: any[] = [];\n  public listaTipoCambioItem: any[] = [];\n  public listaSoporteItem: any[] = [];\n  public listaCargoItem: any[] = [];\n  public listaUnidadItem: any[] = [];\n\n  public mostrarRegresar: boolean;\n  public puedeEditarUnidadCargo: boolean;\n\n  public listaParaPuesto: FormatoDatoModel[] = [];\n\n  public listaParaCampoLegalizada: FormatoDatoModel[] = [];\n\n  public actoDtoPdf: ActoAdministrativosPdfModel;\n\n  // Variable donde almacenaremos el nombre del archivo que generó el proceso de combinación del acto\n  // en donde el nombre de ese archivo será una llave generada .pdf\n  // por ejemplo, e29bf30e30f2450dafe0747665fcefe6.pdf\n  public llaveNombreArchivoProcesoCombinacion: string;\n\n  public accionFormato: string;\n\n  public labelCargo: string;\n  public labelCargoAntes: string;\n\n  public listaCargoDTOs: CargoModel[] = [];\n\n  public puedeEditarFoto: boolean;\n  public rutaFoto: string = null;\n\n  public vistaVisualizar: string = null;\n  private campos: CampoFormularioModel[] = [];\n\tpublic mostrarPopupSubirArchivo: boolean = false;\n\tpublic mostrarPopupSeguimiento: boolean = false;\n\t@Input() public tipoSeleccionado: string;\n\t@ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n\t@ViewChild(PopupSubirArchivoActosComponent) popupSubirArchivo: PopupSubirArchivoActosComponent;\n\t@ViewChild(PopupSeguimientoComponent) popupSeguimiento: PopupSeguimientoComponent;\n\t@ViewChild(MostrarDatosCombinacionActoMovPlantaComponent) mostrarDatosCombinacion: MostrarDatosCombinacionActoMovPlantaComponent;\n\t@ViewChild(InfoEmpleadoOcupaMovPlantaComponent) infoEmpleado: InfoEmpleadoOcupaMovPlantaComponent;\n\n  constructor(private parametroFormatoPipe: ParametroFormatoPipe,\n              private formatoService: FormatoService,\n              private actoMovPlantaService: ActoMovPlantaService,\n              private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n              private campoFormularioPipe: CampoFormularioPipe,\n              public utilsService: UtilsService,\n              private notificacionesService: ToastService,\n              private authService: AuthService,\n              private puestoTrabajoService: PuestoTrabajoService,\n              private translateService: TranslateService,\n\t\t\t  private generalPipe: GeneralPipe,\n              private generalService: GeneralService,\n  ) {}\n\n  private inicializar()  {\n\t\tthis.etapa = null;\n\t\tthis.accion = null;\n\t\tthis.llaveBase = null;\n\t\tthis.listaParaPuesto = [];\n\t\tthis.listaParaCampoLegalizada = [];\n\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\tthis.puestoTrabajoDTOSeleccionado = null;\n\t\tthis.puedeEditarUnidadCargo = false;\n\t\tthis.muestraDatosPlanta = false;\n\t\tthis.actoMovimientoBorrarDTO = new ActoMovPlantaModel();\n\t\tthis.labelCargo = Constantes.ESPACIO_NULO;\n\t\tthis.labelCargoAntes = Constantes.ESPACIO_NULO;\n\t\tthis.seguimiento = false;\n\t\tthis.vistaVisualizar = (null);\n\t}\n\n\t/**\n\t * Regresa el proceso al paso inmediatamente anterior\n\t * @return\n\t */\n\tpublic async pasoAnterior() {\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tthis.mostrarRegresar = false;\n\t\t\tif(this.isMostrarSeleccionAntecesor() && this.parametroFormatoPipe.PASO_ADICIONAL == (this.paso)) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ANTECESOR;\n\t\t\t}else {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\tawait this.crearFormularioListaParaCampo();\n\t\t\t\tthis.puedeEditarUnidadCargo = false;\n\t\t\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\t\t\tthis.puestoTrabajoDTOSeleccionado = null;\n\t\t\t\tthis.muestraDatosPlanta = false;\n\t\t\t}\n\t\t}\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\t\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\t}\n\t\tthis.vistaVisualizar = (null);\n\t\treturn null;\n\t}\n\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * \n\t * @param empresa\n\t *            Empresa en donde se vincula la planta\n\t * @param formato\n\t *            LLave del formato que tendra relacionado este Acto\n\t * @param grupoVincula\n\t *            Cada Acto Ingreso tendra relacionado un grupo vincula\n\t */\n\tpublic async nuevo(empresa: number, formato: number, grupoVincula: number, accionFormato: string) {\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.llaveBase = Constantes.ESPACIO_NULO;\n\t\tthis.mostrarRegresar = false;\n\t\tthis.puedeEditarUnidadCargo=false;\n\t\tthis.muestraDatosPlanta=false;\n\t\tthis.listaPuestoTrabajoOcupa = [];\n\t\tthis.accionFormato = accionFormato;\n\n\t\t\tthis.actoMovimientoBorrarDTO = new ActoMovPlantaModel();\n\t\t\tthis.actoMovimientoBorrarDTO.formato = formato;\n      this.actoMovimientoBorrarDTO.empresa = empresa;\n      this.actoMovimientoBorrarDTO.grupoVincula = grupoVincula;\n      this.actoMovimientoBorrarDTO.identifica = 0;\n\n      // Asignación de formatoDTO utilizando await para esperar la resolución de la promesa\n      this.actoMovimientoBorrarDTO.formatoDTO = await this.formatoService.traerFormato({ formato: formato, empresa: empresa }).toPromise();\n\n      this.actoMovimientoBorrarDTO.postLegaliza = Constantes.PUNTO;\n\n\n\t\t\tfor (let formatoFirmaDTO of this.actoMovimientoBorrarDTO.formatoDTO.listaSoporteItem) {\n        if (formatoFirmaDTO.origenActo != null && formatoFirmaDTO.origenActo === this.parametroFormatoPipe.ACTOS_ORIGINALES) {\n            this.actoMovimientoBorrarDTO.soporte = formatoFirmaDTO.planilla;\n            break;\n        }\n    }\n    \n    if (\n        this.actoMovimientoBorrarDTO.formatoDTO != null &&\n        this.actoMovimientoBorrarDTO.formatoDTO.tipoCambioEmp != null &&\n        this.actoMovimientoBorrarDTO.formatoDTO.tipoCambioEmp !== Constantes.PUNTO\n    ) {\n        this.actoMovimientoBorrarDTO.tipoCambio = this.actoMovimientoBorrarDTO.formatoDTO.tipoCambioEmp;\n    }\n    \n    this.actoMovimientoBorrarDTO.cargo = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.cargoAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.centroAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.centroCosto = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.lineaAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.lineaCosto = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.ubicacionFisica = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.ubicacionFisicaAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.unidadAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.zonaAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.zonaEconomica = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.sueldo = 0;\n    this.actoMovimientoBorrarDTO.sueldoAntes = 0;\n    this.actoMovimientoBorrarDTO.numeroTurno = 0;\n    this.actoMovimientoBorrarDTO.numeroTurnoAntes = 0;\n    this.actoMovimientoBorrarDTO.negociacion = 0;\n    this.actoMovimientoBorrarDTO.numeroTipoPeriodo = 0;\n    this.actoMovimientoBorrarDTO.numeroTipoPeriodoAntes = 0;\n    this.actoMovimientoBorrarDTO.tipoPuestoTrabajo = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.tipoPuestoTrabajoAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.centroCosto = Constantes.PUNTO;\n    \n    if (this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra != null && this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra !== Constantes.PUNTO) {\n        this.actoMovimientoBorrarDTO.tipoPuestoTrabajo = this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra;\n    }\n    \n    this.actoMovimientoBorrarDTO.sucursalNueva = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.sucursalAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.clasePuesto = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.claseAntes = Constantes.PUNTO;\n    this.actoMovimientoBorrarDTO.llavePuesto = null;\n    this.actoMovimientoBorrarDTO.llavePuestoAntes = null;\n    this.actoMovimientoBorrarDTO.numeroVincula = 0;\n    this.actoMovimientoBorrarDTO.numeroVinculaAntes = 0;\n    \n    if (this.actoMovimientoBorrarDTO.formatoDTO.vincula != null) {\n        this.actoMovimientoBorrarDTO.numeroVincula = this.actoMovimientoBorrarDTO.formatoDTO.vincula;\n    }\n    \n    this.actoMovimientoBorrarDTO.soporte = Constantes.PUNTO;\n    \n    this.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n    if(this.isMostrarSeleccionAntecesor()) {\n      this.paso = this.parametroFormatoPipe.PASO_ANTECESOR;\n    }else {\n      this.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n      this.cargarComboYFormulario(formato);\n    }\n\n\t}\n\n\tpublic async cargarComboYFormulario(formato: number) {\n\t\tawait this.cargarCombos(formato);\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n\t\t\tawait this.crearFormularioListaParaCampo();\n\t\t} else if (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\t\t}\n\t\tthis.enviarPasoInfoEmlOcupaMovPlanta();\n\t}\n\t\n\t/**\n\t * Método de retorno del popupUnidad - Establece la unidad usuario seleccionada\n\t * @param unidadUsuarioDTO La unidad seleccionada\n\t */\n\tpublic setRegresarUnidad(unidadUsuarioDTO: UnidadUsuarioModel): void {\n    this.actoMovimientoBorrarDTO.unidad = unidadUsuarioDTO.unidad;\n    this.actoMovimientoBorrarDTO.descripcionUnidad = `${unidadUsuarioDTO.unidad} : ${unidadUsuarioDTO.nombreUnidad}`;\n  }\n\n\tpublic setRegresarUnidadAntes(unidadUsuarioDTO: UnidadUsuarioModel): void {\n    this.actoMovimientoBorrarDTO.unidadAntes = unidadUsuarioDTO.unidad;\n    this.actoMovimientoBorrarDTO.descripcionUnidadAntes = `${unidadUsuarioDTO.unidad} : ${unidadUsuarioDTO.nombreUnidad}`;\n  }\n\n  public setRegresarCargo(cargoDTO: CargoModel): void {\n      this.actoMovimientoBorrarDTO.cargo = cargoDTO.cargo;\n      this.actoMovimientoBorrarDTO.descripcionCargo = `${cargoDTO.cargo} : ${cargoDTO.descripcion}`;\n  }\n\n  public setRegresarCargoAntes(cargoDTO: CargoModel): void {\n      this.actoMovimientoBorrarDTO.cargoAntes = cargoDTO.cargo;\n      this.actoMovimientoBorrarDTO.descripcionCargoAntes = `${cargoDTO.cargo} : ${cargoDTO.descripcion}`;\n  }\n\n\tpublic async cargaListaFormularioLeglizadaYcampo() {\n    var datoDTO = new FormatoDatoModel();\n    datoDTO.formato = this.actoMovimientoBorrarDTO.formato;\n    this.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n    // CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n    await this.crearFormularioListaLegalizada();\n    await this.crearFormularioListaParaCampo();\n\n    if ((this.listaParaCampoLegalizada != null && this.listaParaCampoLegalizada.length == 0) || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n      this.paso = this.parametroFormatoPipe.PASO_FINAL;\n    } else {\n      this.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n    }\n\t}\n\n\tpublic async crearFormularioListaLegalizada() {\n\t\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoMovPlanta().toPromise(); \n\t\t\tif (this.formularioDinamico) {\n        this.formularioDinamico.limpiar();\n        this.formularioDinamico.camposCaracteristicaClear();\n      \n      }\n\n\t\t\t// adicionamos al grupo1, los datos del grupo 2\n\t\t\tthis.campos.forEach(g2 => {\n        g2.editable = this.campoFormularioPipe.CAMPO_LECTURA;\n        g2.obligatorio = false;\n        //grupo1.Campos().push(g2);\n      })\n\n\t\t\t/**\n\t\t\t * iniciamos las variables de TABLA1, TABLA2, TABLA3 si deben o no mostrarse\n\t\t\t */\n\n\t\t\tfor (let dato of this.listaParaCampoLegalizada) {\n\t\t\t\tfor (let campo of campos2) {\n\t\t\t\t\tif (campo.descripcion != (dato.campo.trim())) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\t\t\t\tcampo.lista == (this.listaFormatoDatoDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\t\t\t\tcampo.lista == (this.listaFirmaDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\t\t\t\tcampo.lista == (this.listaSucursalItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.ROL)) {\n\t\t\t\t\t\tcampo.lista == (this.listaRoloItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)) {\n\t\t\t\t\t\tcampo.lista == (this.listaTipoCambioItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\t\t\t\tcampo.lista == (this.listaSoporteItem);\n\t\t\t\t\t}\n\t\t\t\t\tcampo.obligatorio = true;\n\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != (Constantes.ESPACIO_NULO) ? dato.titulo : campo.descripcion;\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.formularioDinamico.modificar(this.actoMovimientoBorrarDTO, true);\n\n\t}\n\n\tpublic async enviarPasoInfoEmlOcupaMovPlanta() {\n\t\t// Cargamos los datos del bean InfoEmpleadoOcupaBean\n\t\tthis.infoEmpleado.actoMovimientoBorrarDTO = this.actoMovimientoBorrarDTO;\n    this.infoEmpleado.accion = this.accion;\n    this.infoEmpleado.etapa = this.etapa;\n    this.infoEmpleado.verUnidadAdicional = true;\n    await this.infoEmpleado.cargarDescripciones();\n    this.infoEmpleado.liberaPuestoTrabajo = this.isLiberarPuestoTrabajo();\n    this.infoEmpleado.trasladoPuestoTrabajo = this.isTrasladoPuestoTrabajo();\n    this.infoEmpleado.listaDatosPlanta = this.listaParaPuesto;\n    this.infoEmpleado.asignaDatosDefecto();\n    this.infoEmpleado.LLAVE_BASE = this.llaveBase;\n\t}\n\n\t/**\n\t * Metodo que carga el formulario dinamico de la lista para campo\n\t */\n\tpublic async crearFormularioListaParaCampo() {\n\t\tvar campos2:CampoFormularioModel[] = await this.actoCambioEmpleadoService.listaCampoMovPlanta().toPromise(); \n\t\tif (this.formularioDinamico) {\n\t\t\tthis.formularioDinamico.limpiar();\n\t\t\tthis.formularioDinamico.camposCaracteristicaClear();\n\t\t\n\t\t}\n\t\t\tfor (var dato of this.actoMovimientoBorrarDTO.formatoDTO.listaParaCampos) {\n\t\t\t\tfor (var campo of campos2) {\n\t\t\t\t\tif (campo.descripcion == (dato.campo.trim())) {\n\t\t\t\t\t\tcampo.obligatorio = (true);\n\t\t\t\t\t\t// CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS QUE CUMPLAN CON DICHO CONDICION\n\t\t\t\t\t\tif (dato.accion != null && dato.accion.trim() != (this.parametroFormatoPipe.INGRESARE)) {\n\t\t\t\t\t\t\tcampo.obligatorio = (false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// verificamos si el campo solo se pude visualizar\n\t\t\t\t\t\tif (dato.accion != null && dato.accion.trim() == (this.parametroFormatoPipe.VISUALIZAR)) {\n\t\t\t\t\t\t\tcampo.editable = \"L\";\n\t\t\t\t\t\t\tcampo.obligatorio = (false);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// CARGAMOS EL COMBO PARA CADA CAMPO\n\t\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\t\t\t\t\tcampo.lista == (this.listaFormatoDatoDocumentoItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\t\t\t\t\tcampo.lista == (this.listaFirmaDocumentoItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\t\t\t\t\tcampo.lista == (this.listaSucursalItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.ROL)) {\n\t\t\t\t\t\t\tcampo.lista == (this.listaRoloItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DE_CAMBIO)) {\n\t\t\t\t\t\t\tcampo.lista == (this.listaTipoCambioItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\t\t\t\t\tcampo.lista == (this.listaSoporteItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcampo.descripcion = dato.titulo != null && dato.titulo.trim() != (Constantes.ESPACIO_NULO) ? dato.titulo : campo.descripcion;\n            this.campos.push(campo);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.formularioDinamico.modificar(this.actoMovimientoBorrarDTO, true);\t\t\t\t\n\t}\n\t\n\t/**\n\t * Este metodo cargo todos los combos que necesitan entre ellos..(ListaSoporte, ListaCargo, ListaUnidadOrganizacion etc...\n\t * \n\t * @param formato\n\t */\n\tprivate async cargarCombos(formato: number) {\n\t\tlet data = await this.actoMovPlantaService.cargarCombos({formato: formato}).toPromise();\n\t\tif (!data) {\n\t\t\treturn;\n\t\t}\n\t\tthis.listaFormatoDatoDocumentoItem = data.listaFormatoDatoDocumentoItem;\n\t\tthis.listaFirmaDocumentoItem = data.listaFirmaDocumentoItem;\n\t\tthis.listaRoloItem = data.listaRoloItem;\n\t\tthis.listaTipoCambioItem = data.listaTipoCambioItem;\n\t\tthis.listaSoporteItem = data.listaSoporteItem;\n\t\tthis.listaSucursalItem = data.listaSucursalItem;\n\t}\n\n\t/**\n\t * Regresa a la pantalla principal de actos administrativos\n\t * @return null\n\t */\n\tpublic regresarActoAdmin() {\n\t\t//getBean(ActosAdministrativosBean.class).traerListado();\n\t}\n\n\tprivate cargarDescripcionesUnidadYcargo() {\n\t\tif(this.listaUnidadItem!=null){\n\t\t\t\n\t\t\tfor (let item of this.listaUnidadItem) {\n\t\t\t\tif (item.value == (this.actoMovimientoBorrarDTO.unidad)) {\n\t\t\t\t\tthis.actoMovimientoBorrarDTO.descripcionUnidad = item.label;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(this.listaCargoItem!=null){\t\t\t\n\t\t\tfor (let item of this.listaCargoItem) {\n\t\t\t\tif(item.valueu == (this.actoMovimientoBorrarDTO.cargo)){\n\t\t\t\t\tthis.actoMovimientoBorrarDTO.descripcionCargo = item.label;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\tpublic async seleccionaAction() {\n\t\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_ANTECESOR)) {\n\t\t\t\t\tif(this.utilsService.isBlank(this.actoMovimientoBorrarDTO.antecesor)){\n\t\t\t\t\t\t//Validador.adicionarMensaje(\"form_actoMovPlantaLiberaTranslada:antecesor\", \"obligatorio\");\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\t\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.conAntecesor({actoMovPlantaDTO: this.actoMovimientoBorrarDTO, antecesor: this.actoMovimientoBorrarDTO.antecesor}).toPromise();\n\t\t\t\t\tthis.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formato);\n\t\t\t\t\tthis.mostrarRegresar = true;\n\t\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_ADICIONAL)) {\n\t\t\t\t\tawait this.siguienteAdicional();\n\t\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_PUESTO_TRABAJO)) {\n\t\t\t\t\tawait this.siguientePuestoTrabajo();\n\t\t\t\t} else if (this.paso == (this.parametroFormatoPipe.PASO_DATO_PUESTO)) {\n\t\t\t\t\tawait this.siguienteDatoPuesto();\n\t\t\t\t}\n\t\t\t} else if (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR) || this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\t\t\tawait this.siguienteDatoLegalizar();\n\t\t\t\t}\n\t\t\t}\n\t}\n\n\tprivate async siguienteDatoPuesto() {\n\t\t\tif (!this.validarDatosPuestoTrabajo()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(this.puestoTrabajoDTOSeleccionado==null){\n\t\t\t\tthis.notificacionesService.showInfo(\"Seleccione un puesto de trabajo\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.actoMovimientoBorrarDTO.llavePuesto = this.puestoTrabajoDTOSeleccionado.llave;\n\t\t\tthis.actoMovimientoBorrarDTO.llavePuestoAntes = this.puestoTrabajoDTOSeleccionado.llave;\n\t\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.elaborarActoMovPlanta({actoMovPlantaDTO: this.actoMovimientoBorrarDTO, usuario: this.authService.getTokenKey('usuario'), llaveBase: this.llaveBase, seguimiento: null}).toPromise();\n\n\t\t\tif (!this.utilsService.isBlank(this.actoMovimientoBorrarDTO.mensaje)) {\n\t\t\t\tthis.notificacionesService.showInfo(this.actoMovimientoBorrarDTO.mensaje);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.cargarDescripcionesUnidadYcargo();\n\t\t\tawait this.procesoCombinacion();\n\t}\n\n\tpublic async elaborar(empresa: number, formato: number, grupo: number, accionFormato: string, actoCorregir: ActoMovPlantaModel){\n\t\t\tthis.inicializar();\n\t\t\tthis.accionFormato = accionFormato;\n\t\t\tif (actoCorregir == null) {\n\t\t\t\tawait this.nuevo(empresa, formato, grupo, accionFormato);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tawait this.corregir(actoCorregir);\n\t\t\t}\n\t}\n\n\tprivate async corregir(actoCorregir: ActoMovPlantaModel){\n    this.actoMovimientoBorrarDTO = await this.actoMovPlantaService.traerActoMovPlanta({llave: actoCorregir.llave}).toPromise();\n    this.actoMovimientoBorrarDTO.derogacion = (actoCorregir.llave);\n    this.actoMovimientoBorrarDTO.postLegaliza = (this.parametroFormatoPipe.CORREGIR);\n    this.llaveBase = Constantes.ESPACIO_NULO;\n    this.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n    this.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n    \n    this.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n    \n    this.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\n    this.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n\t}\n\t\n\n\t/**\n\t * Permite modificar el acto administrativo\n\t * @param llave La llave del acto administrativo que se quiere modificar\n\t */\n\tpublic async modificar(llave: string, accionFormato: string) {\n\t\t\tthis.inicializar();\n\t\t\tthis.accionFormato = accionFormato;\n\n\t\t\tthis.mostrarRegresar = false;\n\t\t\tthis.llaveBase = llave;\n\t\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_ADICIONAL;\n\t\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.traerActoMovPlanta({llave: llave}).toPromise();\n\n\t\t\tif (this.actoMovimientoBorrarDTO.derogacion != null) {\n\t\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t\t} else {\n\t\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t\t}\n\n\t\t\tthis.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\t\tthis.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n\t\t\t\n\n\t\t\t//SI ESTAMOS REALIZANDO UN PROCESO DE ELIMINACION DEBEMOS MOSTRAR EL PUESTO DE TRABAJO SELECCIONADO\n\t\t\tif (this.isLiberarPuestoTrabajo()) {\n\n\t\t\t\tvar puestoTrabajoDTO: PuestoTrabajoModel = new PuestoTrabajoModel();\n        puestoTrabajoDTO.unidad = this.actoMovimientoBorrarDTO.unidad;\n        puestoTrabajoDTO.cargo = this.actoMovimientoBorrarDTO.cargo;\n        puestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        puestoTrabajoDTO.tipoEstados = \"DISPONIBLES\";\n      \n\t\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n\t\t\t\t\n\t\t\t\tthis.buscarYseleccionarPuesto();\n\t\t\t\t// y cambiamos el paso\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n\t\t\t}\n\n\t}\n\n\tpublic buscarYseleccionarPuesto() {\n\t\tvar unidad = this.actoMovimientoBorrarDTO.unidad;\n\t\tvar cargo = this.actoMovimientoBorrarDTO.cargo;\n\t\tvar llave = this.actoMovimientoBorrarDTO.llavePuesto;\n\t\tvar emp = this.actoMovimientoBorrarDTO.empresa;\n\t\tfor (var puesto of this.listaPuestoTrabajoOcupa) {\n\t\t\tif (llave == (puesto.llave) && unidad == (puesto.unidad) && cargo == (puesto.cargo) && emp == (puesto.empresa)) {\n\t\t\t\tthis.cambiarEstadoSeleccion(puesto.llave);\n\t\t\t\tthis.puestoTrabajoDTOSeleccionado = Object.assign({}, puesto);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Permite legalizar un acto administrativo\n\t * @param llave La llave del acto administrativo que se quiere legalizar\n\t */\n\tpublic async legalizacion(llave: string, accionFormato: string) {\n\t\t\tthis.inicializar();\n\t\t\tthis.accionFormato = accionFormato;\n\n\t\t\tthis.mostrarRegresar = false;\n\t\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\t\tthis.llaveBase = llave;\n\t\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.traerActoMovPlanta({llave: llave}).toPromise();\n\t\t\tif (this.actoMovimientoBorrarDTO.derogacion != null) {\n\t\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t\t} else {\n\t\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t\t}\n\n\t\t\tthis.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\n\t\t\tthis.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n\t\t\tthis.cargarDescripcionesUnidadYcargo();\n\n\t\t\t//SI ESTAMOS REALIZANDO UN PROCESO DE ELIMINACION DEBEMOS MOSTRAR EL PUESTO DE TRABAJO SELECCIONADO\n\t\t\tif (this.isLiberarPuestoTrabajo() || this.isTrasladoPuestoTrabajo() || this.isReclasificacionPuestoTrabajo()) {\n\n\t\t\t\tvar puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\t\tpuestoTrabajoDTO.unidad = this.actoMovimientoBorrarDTO.unidad;\n\t\t\t\tpuestoTrabajoDTO.cargo = this.actoMovimientoBorrarDTO.cargo;\n\t\t\t\tpuestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\tif (this.isLiberarPuestoTrabajo()) {\n\t\t\t\t\tpuestoTrabajoDTO.tipoEstados = \"CONTITULAR\";\n\t\t\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n\t\t\t\t} else if (this.isTrasladoPuestoTrabajo()) {\n\t\t\t\t\tpuestoTrabajoDTO.tipoEstados = \"TODOS\";\n\t\t\t\t\tthis.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n\t\t\t\t}\n\t\t\t\tthis.puedeEditarUnidadCargo = true;\n\t\t\t\tthis.puedeEditarFoto = true;\n\t\t\t\tthis.buscarYseleccionarPuesto();\n\t\t\t}\n\n\n\t}\n\n\t/**\n\t * Permite eliminar un acto administrativo\n\t * @param llave La llave del acto administrativo que se quiere eliminar\n\t */\n\tpublic async eliminar(llave: string, accionFormato: string) {\n    this.inicializar();\n\n    this.accionFormato = accionFormato;\n    this.mostrarRegresar = false;\n    this.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n    this.llaveBase = llave;\n    this.actoMovimientoBorrarDTO  = await this.actoMovPlantaService.traerActoMovPlanta({llave: llave}).toPromise();\n\n    if (this.actoMovimientoBorrarDTO.derogacion != null) {\n      this.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n    } else {\n      this.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n    }\n\n    this.listaParaPuesto = this.actoMovimientoBorrarDTO.formatoDTO.listaParaPuesto;\n\n    this.paso = this.parametroFormatoPipe.PASO_FINAL;\n\n    this.cargarComboYFormulario(this.actoMovimientoBorrarDTO.formatoDTO.llave);\n    this.cargarDescripcionesUnidadYcargo();\n    await this.procesoCombinacion();\n\n\t}\n\n\tpublic async siguienteAdicional() {\n    if (!this.formularioDinamico.validar()) {\n      return null;\n    }\n\n    this.actoMovimientoBorrarDTO =  this.formularioDinamico.getObjecto();\n\n    if (this.actoMovimientoBorrarDTO.tipoCambio == null || this.actoMovimientoBorrarDTO.tipoCambio.trim() == (Constantes.PUNTO)) {\n      if ( this.formularioDinamico.obtenerCampo(\"tipoCambio\") != null ) {\n        this.notificacionesService.showWarning(\"Tipo de cambio ingreso no definido\");\n        return null;\n      }\n      if ( this.actoMovimientoBorrarDTO.formatoDTO  != null && Constantes.CONSTANTE_SI == (this.actoMovimientoBorrarDTO.formatoDTO.definitivo) ) {\n        this.notificacionesService.showInfo(\"Tipo de cambio ingreso no definido\");\n        return null;\n      }\n    }\n\n    var valida = true;\n    var cargo = null;\n    var unidad = null;\n\n    if (this.isLiberarPuestoTrabajo()) {\n\n      valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.cargo);\n      valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.unidad);\n      cargo = this.actoMovimientoBorrarDTO.cargo;\n      unidad = this.actoMovimientoBorrarDTO.unidad;\n\n    }\n\n    if (this.isTrasladoPuestoTrabajo()) {\n\n      valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.cargoAntes);\n      valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.unidadAntes);\n      cargo = this.actoMovimientoBorrarDTO.cargoAntes;\n      unidad = this.actoMovimientoBorrarDTO.unidadAntes;\n    }\n\n    if (this.isReclasificacionPuestoTrabajo()) {\n\n      valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.cargoAntes);\n      valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.unidadAntes);\n      cargo = this.actoMovimientoBorrarDTO.cargoAntes;\n      unidad = this.actoMovimientoBorrarDTO.unidadAntes;\n    }\n\n    if (!valida) {\n      return null;\n    }\n\n    if (this.isLiberarPuestoTrabajo() || this.isTrasladoPuestoTrabajo() || this.isReclasificacionPuestoTrabajo()) {\n\n      this.puestoTrabajoDTOSeleccionado = null;\n\n      var puestoTrabajoDTO = new PuestoTrabajoModel();\n      puestoTrabajoDTO.unidad = unidad; // Acceso directo a la propiedad\n      puestoTrabajoDTO.cargo = cargo;\n      puestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t  if (this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra != null && this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra != this.generalPipe.PUNTO) {\n\t\tpuestoTrabajoDTO.filtroTipoPuestoActoMov = this.actoMovimientoBorrarDTO.formatoDTO.tipoPuestoTra;\n\t}\n      \n\n      // Carga la lista de puestos de trabajo que cumplen con el filtro puestoTrabajoDTO\n      this.listaPuestoTrabajoOcupa = null;\n      if (this.isLiberarPuestoTrabajo()) {\n        puestoTrabajoDTO.tipoEstados = (\"CONTITULAR\");\n        this.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n      } else if (this.isTrasladoPuestoTrabajo() || this.isReclasificacionPuestoTrabajo()) {\n        puestoTrabajoDTO.tipoEstados = (\"TODOS\");\n        this.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\n        \n        if (this.parametroFormatoPipe.ETAPA_MODIFICAR == (this.etapa) && this.parametroFormatoPipe.TRALADO_PUESTO_DE_TRABAJO == (this.accionFormato)) {\n          this.buscarYseleccionarPuesto();\n          if(this.puestoTrabajoDTOSeleccionado != null){\n            this.actualizaInfoDatosPlanta();\n            var puesto: PuestoTrabajoModel=null;\n            for (let seleccionado of this.listaPuestoTrabajoOcupa) {\n              puesto = seleccionado;\n              if (puesto.llave == this.puestoTrabajoDTOSeleccionado.llave) {\n                seleccionado.color = \"color-tema\";\n              } else {\n                seleccionado.color = null;\n              }\n            }\n          }\n        }\n        \n      }\n\n      if (this.listaPuestoTrabajoOcupa == null || this.listaPuestoTrabajoOcupa.length == 0) {\n        this.notificacionesService.showInfo(\"No existen puestos de trabajo disponibles en la unidad seleccionada\");\n        return null;\n      }\n\n      this.enviarPasoInfoEmlOcupaMovPlanta();\n      \n      /*var caminoFoto;\n      PuestoTrabajoDTO unPuesto;\n      for (SeleccionableWrapper seleccionable : this.listaPuestoTrabajoOcupa) {\n        caminoFoto = null;\n        unPuesto = (PuestoTrabajoDTO) seleccionable.getUnionDTO();\n        if ( unPuesto.getCedulaOcupa() != null) {\n          if (!this.utilsService.isBlank(unPuesto.getCaminoFotoOcupa())) {\n            caminoFoto = this.rutaFoto + unPuesto.getCaminoFotoOcupa() + Constantes.PUNTO + Constantes.ARCHIVO_JPG;\n            caminoFoto = EncriptadorBasico.encriptar(caminoFoto);\n          }\n        }\n        unPuesto.setCaminoFotoOcupa(caminoFoto);\n      }*/\n\n      this.mostrarRegresar = true;\n      this.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n      this.cambiarEstadoSeleccion(null);\n\n      await this.seleccionaPuestoAnterior();\n\n      this.puedeEditarUnidadCargo = true;\n      this.puedeEditarFoto = false;\n\n    }\n\t}\n\n\t/**\n\t * Accion final que sea aplica sobre el acto administrativo de acuerdo con la etapa del proceso (ELABORACION/MODIFICACION, ELIMINACION, LEGALIZACION)\n\t */\n\tpublic async aplicarFinal() {\n\t\ttry {\n\t\t\tvar llaveSeguimiento = this.seguimiento ? this.utilsService.generarLlave() : null;\n\t\t\t\n\t\t\tthis.actoMovimientoBorrarDTO = await this.actoMovPlantaService.legalizarActoMovPlanta({actoMovPlantaDTO: this.actoMovimientoBorrarDTO, etapa: this.etapa, llaveBase: this.llaveBase, usuario: this.authService.getTokenKey('usuario'), llaveSeguimiento}).toPromise();\n\t\t\tif (!this.utilsService.isBlank(this.actoMovimientoBorrarDTO.mensaje)) {\n\t\t\t\tthis.notificacionesService.showInfo(this.actoMovimientoBorrarDTO.mensaje);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tthis.procesoGeneralAnexo();\n\n\t\t\tvar nombreArchivo// = getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)+this.llaveBase+Constantes.PUNTO+Constantes.ARCHIVO_PDF;\n\t\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\t\t/**\n\t\t\t\t * verificamos que el archivo de este acto, se halla genereado bien\n\t\t\t\t */\n\t\t\t\tif(this.actoDtoPdf != null && this.actoDtoPdf.rutaPdf != null && this.actoDtoPdf.mensaje == null){\n\t\t\t\t\tthis.mostrarPopupSubirArchivo = true;\n\t\t\t\t\tawait this.utilsService.sleep(1100)\n\t\t\t\t\tthis.popupSubirArchivo.buscar(this.actoMovimientoBorrarDTO.formatoDTO, nombreArchivo)\n\t\t\t\t\t//getBean(PopupSubirArchivoActosBean.class).buscar('#{actosIngresoBean.terminar}', this.actoMovimientoBorrarDTO.formatoDTO, nombreArchivo);\n\t\t\t\t\treturn null;\n\t\t\t\t}\t\n\t\t\t}\n\n\t\t\t//Muestra el popup de seguimiento. Al cerrarlo muestra el mensaje de éxito del proceso\n\t\t\tif (this.seguimiento ) {\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t\tthis.popupSeguimiento.llave = llaveSeguimiento;\n\t\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento, '#{actosMovPlantaBean.cierreSeguimiento}');\n\t\t\t}\n\t\t\telse{\n\t\t\t\t//Muestra el mensaje de éxito del proceso\n\t\t\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t\t\tthis.notificacionesService.showInfo(titulo);\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\t\tthis.borrarRegistro();\n\t\t\t}\n\t\t\tthis.notificacionesService.showError(e);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Método de retorno del evento de cierre del popup de seguimiento\n\t * Muestra mensaje de éxito del proceso\n\t * @param objeto Se utiliza este parámetro para dar al método la forma de un método SET\n\t */\n\tpublic setCierreSeguimiento(objeto){\n    var titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n    this.notificacionesService.showInfo(titulo);\n\t}\n\n\t/**\n\t * Metodo que me genera el reporte pdf\n\t */\n\tpublic async procesoCombinacion() {\n\t\t// cada vez que se genere un proceso de combinacion el nombre de archivo quedara null, en donde nos sirvara para saber si el\n\t\t// proceso de combinacion se efectuo bien, por si este se genero correctamente esta variable que da con el nombre con que se genero el\n\t\t// el archivo..\n\n\t\tthis.llaveNombreArchivoProcesoCombinacion = null;\n    var listaMarcador: any[] = [];\n    var columnas: string[] = [];\n    columnas.push('C_LLAVE');\n    var valores: any[] = [];\n    valores.push(this.actoMovimientoBorrarDTO.llave);\n    \n    var usf = new UsuarioFormatoModel();\n    usf.usuario = this.authService.getTokenKey('usuario');\n    usf.grupo = this.actoMovimientoBorrarDTO.grupoVincula;\n    // usf.vinculacion = new Integer(0);\n    usf.tipo = 'US';\n    usf.formato = this.actoMovimientoBorrarDTO.formatoDTO.llave;\n    usf = await this.generalService.queryForObject(new GeneralModel('UsuarioFormatoDTO', null, false, usf)).toPromise(); \n    var mostrarPdfoWord: boolean;\n    //verificamos en que formato vamos a mostrar este acto\n    //si en formato pdf o formato word\t\t\t\t\n    if(usf == null || usf.informe == null){\n      mostrarPdfoWord = false;\n    }\n    else{\n      //si es F, Mostramos pdf\n      //sino, mostramos word\n      mostrarPdfoWord = ('F' == (usf.informe.trim()));\t\t\t\t\t\t\t\t\t\t\t\n    }\n    this.actoDtoPdf = await this.actoCambioEmpleadoService.generarPdf({\n      columnas: columnas, valores: valores, listaMarcador: listaMarcador, soportePlanilla: this.actoMovimientoBorrarDTO.soporte\n    }).toPromise()\n\n    this.vistaVisualizar = (\"VIZUALIZAR_DATOS_COMBINACION_EMPLEADO_MOV_PLANTA\");\n    await this.utilsService.sleep(500)\n    this.mostrarDatosCombinacion.actoMovimientoBorrarDTO = this.actoMovimientoBorrarDTO;\n    this.mostrarDatosCombinacion.etapa = this.etapa;\n    this.mostrarDatosCombinacion.deDondeVengo = null;\n    this.mostrarDatosCombinacion.formatoDTO = this.actoMovimientoBorrarDTO.formatoDTO;\n    this.mostrarDatosCombinacion.LLAVE_BASE = this.llaveBase;\n    this.mostrarDatosCombinacion.mostrarPdf = this.actoDtoPdf.resultado; // Cambiado 'isResultado()' por acceso directo\n    this.mostrarDatosCombinacion.mostrarWord = !mostrarPdfoWord;\n    this.mostrarDatosCombinacion.rutaFisicaWord = this.actoDtoPdf.rutaWord; // Cambiado 'getRutaWord()' por acceso directo\n    this.mostrarDatosCombinacion.procesoQueEstoyTrabajando = this.accionFormato;\n    this.mostrarDatosCombinacion.mostrarRegresar = this.mostrarRegresar;\n\n    // Enviamos los combos que se utilizarion en el acto, parta mostrar la informacion en la\n    // siguiente pagina, que son los combos del Formulario Dinamico\n    this.mostrarDatosCombinacion.listaFormatoDatoDocumentoItem = this.listaFormatoDatoDocumentoItem;\n    this.mostrarDatosCombinacion.listaFirmaDocumentoItem = this.listaFirmaDocumentoItem;\n    this.mostrarDatosCombinacion.listaUnidadDocumentoItem = this.listaUnidadDocumentoItem;\n    this.mostrarDatosCombinacion.listaSucursalItem = this.listaSucursalItem;\n    this.mostrarDatosCombinacion.listaRoloItem = this.listaRoloItem;\n    this.mostrarDatosCombinacion.listaTipoCambioItem = this.listaTipoCambioItem;\n    this.mostrarDatosCombinacion.listaSoporteItem = this.listaSoporteItem;\n    this.mostrarDatosCombinacion.listaCargoItem = this.listaCargoItem;\n    this.mostrarDatosCombinacion.listaUnidadItem = this.listaUnidadItem;\n\n    // cargamos el formulacion dinamico dependiendo de la etapa donde me encuentre trabajando\n    if (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n      this.mostrarDatosCombinacion.cargarFormularioDinamicoElaboraModifica();\n    } else if (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n      this.mostrarDatosCombinacion.cargarFormularioDinamicoLegalizaElimina();\n    }\n\n    if (this.actoDtoPdf.resultado) {\n      this.llaveNombreArchivoProcesoCombinacion = this.actoDtoPdf.rutaPdf;\n      this.mostrarDatosCombinacion.ruta = this.actoDtoPdf.rutaPdf;\n    } else {/*\n      if (this.actoDtoPdf.getExceptionResultado() != null ) {\n        error(this.actoDtoPdf.getExceptionResultado());\n      }*/\n    }\n    \n    this.mostrarDatosCombinacion.mostrarFotoEml = false;\n    this.mostrarDatosCombinacion.mostrarFotoHojaVida = true;\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\tthis.borrarRegistro();\n\t\t}\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\t}\n\n\t/**\n\t * Metodo que borra el registro insertado cuando se genera algun error..\n\t */\n\tpublic borrarRegistro() {\n\t\t// BORRAMOS EL REGITRO\n\t\t\tif (this.actoMovimientoBorrarDTO != null) {\n\t\t\t\tthis.actoMovPlantaService.borrarRegistroActoMovPlanta({llave: this.actoMovimientoBorrarDTO.llave}).subscribe(data => {\n\n        });\n\t\t\t}\n\t}\n\n\tpublic procesoGeneralAnexo() {\n\t\t//despues de cada aplicar y que el proceso se realize de forma correcta\n\t\t//guardamos una registro de ese archivo en la tabla anexoHojaVida_ahv\n\t\t//1. SI ESTAMOS REALIZANDO UNA ELABORACION, INSERTAMOS UN NUEVO REGISTRO ANEXO\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)){\n\t\t\tthis.actoMovPlantaService.registrarAnexoHojaActoMovPlanta({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, actoMovPlantaDTO: this.actoMovimientoBorrarDTO, eliminar: false, llaveEliminar: null}).subscribe(data => {});\n\t\t}\t\t\t\n\t\t//2.SI ESTAMOS RELIZANDO UNA MODIFICACION o LEGALIZACION, ELIMINAMOS EL AL ANTERIOR E INSERTAMOS UNO NUEVO\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)){\n\t\t\tthis.actoMovPlantaService.registrarAnexoHojaActoMovPlanta({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, actoMovPlantaDTO: this.actoMovimientoBorrarDTO, eliminar: true, llaveEliminar: this.llaveBase}).subscribe(data => {});\n\t\t}\n\t\t//2.SI ESTAMOS RELIZANDO UNA ELIMINACION, ELIMINAMOS EL ANEXO\n\t\tif(this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)){\n\t\t\tthis.actoMovPlantaService.registrarAnexoHojaActoMovPlanta({llaveNombreArchivoProcesoCombinacion: null, actoMovPlantaDTO: this.actoMovimientoBorrarDTO, eliminar: true, llaveEliminar: this.llaveBase}).subscribe(data => {});\n\t\t}\n\t}\n\n\t/**\n\t * Metodo que nos valida los datos del puesto trabajo\n\t * \n\t * @return boolean Retorna True o False de acuerdo pase las validaciones\n\t */\n\tprivate validarDatosPuestoTrabajo() {\n\t\tvar valida: boolean = true;\n\n\t\tif (this.isLiberarPuestoTrabajo()) {\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.cargo);\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.unidad);\n\t\t} else if (this.isTrasladoPuestoTrabajo()) {\n\t\t\tif (this.obligatorio(this.parametroFormatoPipe.UNIDAD)) {\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.unidad);\n\t\t\t}\n\t\t\tif (this.obligatorio(this.parametroFormatoPipe.CARGO)) {\n\t\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.cargo);\n\t\t\t}\n\t\t}\n\n\t\t// ESTA VALLIDACION SON VALIDAS PARA EL PROCESO DE CREACION DE PUESTO DE TRABAJO\n\t\tif (this.isLiberarPuestoTrabajo() || this.isTrasladoPuestoTrabajo()) {\n\n\t\t\tif (this.obligatorio(this.parametroFormatoPipe.TURNO)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.numeroTurno);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.PERIODO)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.numeroTipoPeriodo);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.VINCULACION)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.numeroVincula);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.COSTEO)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.zonaEconomica);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.LINEA)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.lineaCosto);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.UBICACION)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.ubicacionFisica);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.SUELDO)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.sueldo);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.NEGOCIACION)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.negociacion);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.CLASE_PUESTO)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.clasePuesto);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.PUESTO_RESPONDE)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.puestoResponde);\n      }\n      if (this.obligatorio(this.parametroFormatoPipe.CLASIFICACION)) {\n        valida = valida && this.utilsService.validarCampoObligatorio(this.actoMovimientoBorrarDTO.clasificacion);\n      }\n\t\t}\n\n\t\treturn valida;\n\t}\n\n\t/**\n\t * Listener del evento de seleccion de un puesto de trabajo \n\t * \n\t * @param ActionEvent\n\t *            Objeto para obtener el objeto puesto de trabajo seleccionado\n\t */\n\tpublic seleccionarPuestoTrabajo( se) {\n\t\tvar puestoSeleccionado = se.data;\n\t\tthis.puestoTrabajoDTOSeleccionado = puestoSeleccionado;\n\t\t\n\t\tvar puesto: PuestoTrabajoModel;\n\t\tfor (let seleccionado of this.listaPuestoTrabajoOcupa){\n\t\t\tpuesto = seleccionado;\n\t\t\tif(puesto.llave == this.puestoTrabajoDTOSeleccionado.llave){\n\t\t\t\tseleccionado.color = (\"color-tema\");\n\t\t\t}else{\n\t\t\t\tseleccionado.color = (null);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (this.puestoTrabajoDTOSeleccionado != null) {\n\t\t\tthis.cambiarEstadoSeleccion(this.puestoTrabajoDTOSeleccionado.llave);\n\t\t\tthis.actoMovimientoBorrarDTO.llavePuesto = this.puestoTrabajoDTOSeleccionado.llave;\n\n\t\t\tthis.actualizaInfoDatosPlanta();\n\n\t\t\tif (this.isTrasladoPuestoTrabajo()) {\n\t\t\t\tthis.actoMovimientoBorrarDTO.cargo = this.actoMovimientoBorrarDTO.cargoAntes;\n\t\t\t}\n\n\t\t\tthis.muestraDatosPlanta = true;\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\t\t}\n\t}\n\n\tpublic obligatorio(campo: string) {\n\t\tfor (var dto of this.listaParaPuesto) {\n\t\t\tif(dto.campo != null && dto.campo.trim() == (campo)){\n\t\t\t\treturn dto.accion != null && (dto.accion == (this.parametroFormatoPipe.INGRESARE));\t\t\t\t\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic cambiarEstadoSeleccion(llave: string) {\n\t\tif(this.listaPuestoTrabajoOcupa != null){\t\t\t\n\t\t\tfor (var pt of this.listaPuestoTrabajoOcupa) {\t\t\t\n\t\t\t\tpt.check = (pt.llave == (llave));\t\t\t\t\n\t\t\t}\t\t\n\t\t}\n\t}\n\n\tpublic async siguienteDatoLegalizar() {\n\t\t\tif (!this.formularioDinamico.validar()) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tthis.actoMovimientoBorrarDTO = this.formularioDinamico.getObjecto();\n\n      await this.generalService.update(new GeneralModel('ActoMovPlantaDTO', null, false, this.actoMovimientoBorrarDTO)).toPromise();\n\n\t\t\tawait this.procesoCombinacion();\n\t\t\tthis.mostrarRegresar = true;\n\t}\n\n\tpublic async siguientePuestoTrabajo() {\n    this.muestraDatosPlanta = false;\n    if (this.isLiberarPuestoTrabajo() || this.isTrasladoPuestoTrabajo()) {\n\n      var cargo = null;\n      var unidad = null;\n\n      if (this.isLiberarPuestoTrabajo()) {\n        cargo = this.actoMovimientoBorrarDTO.cargo;\n        unidad = this.actoMovimientoBorrarDTO.unidad;\n      }\n\n      if (this.isTrasladoPuestoTrabajo()) {\n        cargo = this.actoMovimientoBorrarDTO.cargoAntes;\n        unidad = this.actoMovimientoBorrarDTO.unidadAntes;\n      }\n\n      var puestoTrabajoDTO = new PuestoTrabajoModel();\n      puestoTrabajoDTO.unidad = unidad;\n      puestoTrabajoDTO.cargo = cargo;\n      puestoTrabajoDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n      this.paso = this.parametroFormatoPipe.PASO_PUESTO_TRABAJO;\n\n      this.listaPuestoTrabajoOcupa = null;\n      if (this.isLiberarPuestoTrabajo()) {\n        this.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\t\n      } else if (this.isTrasladoPuestoTrabajo()) {\n        puestoTrabajoDTO.tipoEstados = (\"TODOS\");\n        this.listaPuestoTrabajoOcupa = await this.puestoTrabajoService.consultarListaPuestoTrabajo(puestoTrabajoDTO);\t\n        if (this.parametroFormatoPipe.ETAPA_MODIFICAR == (this.etapa) && this.puestoTrabajoDTOSeleccionado !=null) {\n          var puesto: PuestoTrabajoModel;\n          for (var seleccionado of this.listaPuestoTrabajoOcupa) {\n            puesto = seleccionado;\n            if (puesto.llave == this.puestoTrabajoDTOSeleccionado.llave) {\n              seleccionado.color = (\"color-tema\");\n            } else {\n              seleccionado.color = (null);\n            }\n          }\n        }\n      }\n\n      if (this.listaPuestoTrabajoOcupa == null || this.listaPuestoTrabajoOcupa.length == 0) {\n        this.notificacionesService.showInfo(\"No existen puesto de trabajo en la unidad y cargo seleccionados\");\n\n        return null;\n      }\n      \n      /*String caminoFoto;\n      PuestoTrabajoDTO unPuesto;\n      for (SeleccionableWrapper seleccionable : this.listaPuestoTrabajoOcupa) {\n        caminoFoto = null;\n        unPuesto = (PuestoTrabajoDTO) seleccionable.getUnionDTO();\n        if ( unPuesto.getCedulaOcupa() != null) {\n          if (!this.utilsService.isBlank(unPuesto.getCaminoFotoOcupa())) {\n            caminoFoto = this.rutaFoto + unPuesto.getCaminoFotoOcupa() + Constantes.PUNTO + Constantes.ARCHIVO_JPG;\n            caminoFoto = EncriptadorBasico.encriptar(caminoFoto);\n          }\n        }\n        unPuesto.setCaminoFotoOcupa(caminoFoto);\n      }*/\n\n      /**\n       * metodo que me selecciona el puesto de trabajo que el usuario habia realizado en el proceso de elaboracion\n       */\n      await this.seleccionaPuestoAnterior();\n\n      if (this.puestoTrabajoDTOSeleccionado == null) {\n        this.notificacionesService.showInfo(\"SELECCIONE UN PUESTO DE TRABAJO\");\n        //FacesContext.getCurrentInstance().addMessage(\"form_actoMovPlantaLiberaTranslada:seleccionpuestotrabajoemp\", new FacesMessage(\"SELECCIONE UN PUESTO DE TRABAJO\"));\n        this.notificacionesService.showError(\"SELECCIONE UN PUESTO DE TRABAJO\");\n        return null;\n      }\n      this.cambiarEstadoSeleccion(this.puestoTrabajoDTOSeleccionado.llave);\n      this.muestraDatosPlanta = true;\n    }\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_DATO_PUESTO;\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * metodo que me selecciona el puesto de trabajo que el usuario habia realizado en el proceso de elaboracion\n\t */\n\tprivate async seleccionaPuestoAnterior() {\n    if (this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n      this.puestoTrabajoDTOSeleccionado = new PuestoTrabajoModel();\n\n      this.puestoTrabajoDTOSeleccionado.unidad = this.actoMovimientoBorrarDTO.unidad;\n      this.puestoTrabajoDTOSeleccionado.cargo = this.actoMovimientoBorrarDTO.cargo;\n\n      if (this.isTrasladoPuestoTrabajo()) {\n          this.puestoTrabajoDTOSeleccionado.unidad = this.actoMovimientoBorrarDTO.unidadAntes;\n          this.puestoTrabajoDTOSeleccionado.cargo = this.actoMovimientoBorrarDTO.cargoAntes;\n      }\n\n      this.puestoTrabajoDTOSeleccionado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      this.puestoTrabajoDTOSeleccionado.llave = this.actoMovimientoBorrarDTO.llavePuesto;\n\n      this.puestoTrabajoDTOSeleccionado = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, this.puestoTrabajoDTOSeleccionado)).toPromise();\n\n      if (this.puestoTrabajoDTOSeleccionado != null) {\n        this.cambiarEstadoSeleccion(this.puestoTrabajoDTOSeleccionado.llave);\n      }\n    }\n\n\t}\n\n\tprivate actualizaInfoDatosPlanta() {\n    if (this.etapa != null && (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR))) {\n\n      this.actoMovimientoBorrarDTO.numeroTurno = this.puestoTrabajoDTOSeleccionado.turno;\n      this.actoMovimientoBorrarDTO.numeroVincula = this.puestoTrabajoDTOSeleccionado.vinculacion;\n      this.actoMovimientoBorrarDTO.centroCosto = this.puestoTrabajoDTOSeleccionado.centroCosto;\n      this.actoMovimientoBorrarDTO.descripcionCentroCosto = this.puestoTrabajoDTOSeleccionado.nombreCentro;\n      this.actoMovimientoBorrarDTO.zonaEconomica = this.puestoTrabajoDTOSeleccionado.zonaEconomica;\n      this.actoMovimientoBorrarDTO.descripcionZonaEconomica = this.puestoTrabajoDTOSeleccionado.nombreZonaEconomica;\n      this.actoMovimientoBorrarDTO.ubicacionFisica = this.puestoTrabajoDTOSeleccionado.ubicacionFisica;\n      this.actoMovimientoBorrarDTO.descripcionUbicacionFis = this.puestoTrabajoDTOSeleccionado.nombreUbicacionFisica;\n      this.actoMovimientoBorrarDTO.lineaCosto = this.puestoTrabajoDTOSeleccionado.lineaCosto;\n      this.actoMovimientoBorrarDTO.numeroTipoPeriodo = this.puestoTrabajoDTOSeleccionado.tipoPeriodo;\n      this.actoMovimientoBorrarDTO.negociacion = this.puestoTrabajoDTOSeleccionado.negociacion;\n      this.actoMovimientoBorrarDTO.sueldo = this.puestoTrabajoDTOSeleccionado.asignacion;\n      this.actoMovimientoBorrarDTO.llavePuesto = this.puestoTrabajoDTOSeleccionado.llave;\n\n      if (this.isLiberarPuestoTrabajo() || this.isTrasladoPuestoTrabajo()) {\n          this.actoMovimientoBorrarDTO.unidad = this.puestoTrabajoDTOSeleccionado.unidad;\n          this.actoMovimientoBorrarDTO.clasePuesto = this.puestoTrabajoDTOSeleccionado.clasePuesto;\n          this.actoMovimientoBorrarDTO.cargo = this.puestoTrabajoDTOSeleccionado.cargo;\n          this.actoMovimientoBorrarDTO.descripcionCargo = this.puestoTrabajoDTOSeleccionado.nombreCargo;\n          this.actoMovimientoBorrarDTO.claseAntes = this.puestoTrabajoDTOSeleccionado.clasePuesto;\n          this.actoMovimientoBorrarDTO.lineaAntes = this.puestoTrabajoDTOSeleccionado.lineaCosto;\n          this.actoMovimientoBorrarDTO.numeroVinculaAntes = this.puestoTrabajoDTOSeleccionado.vinculacion;\n          this.actoMovimientoBorrarDTO.numeroTurnoAntes = this.puestoTrabajoDTOSeleccionado.turno;\n          this.actoMovimientoBorrarDTO.llavePuestoAntes = this.puestoTrabajoDTOSeleccionado.llave;\n          this.actoMovimientoBorrarDTO.sueldoAntes = this.puestoTrabajoDTOSeleccionado.asignacion;\n          this.actoMovimientoBorrarDTO.ubicacionFisicaAntes = this.puestoTrabajoDTOSeleccionado.ubicacionFisica;\n          this.actoMovimientoBorrarDTO.unidadAntes = this.puestoTrabajoDTOSeleccionado.unidad;\n          this.actoMovimientoBorrarDTO.zonaAntes = this.puestoTrabajoDTOSeleccionado.zonaEconomica;\n      }\n\n      if (this.isLiberarPuestoTrabajo()) {\n          this.actoMovimientoBorrarDTO.cargoAntes = this.puestoTrabajoDTOSeleccionado.cargo;\n      }\n\n    }\n\t}\n\n\tpublic cambioValorCargo(event)  {\n\t\t/*String newWord = (String) event.getNewValue();\n\t\tthis.listaCargoItem = FiltroLista.filtrarListaObjeto(this.listaCargoDTOs, newWord, \"descripcion\", \"cargo\");\n\t\tif (newWord != null) {\n\t\t\tthis.actoMovimientoBorrarDTO.setCargo(newWord);\n\t\t} else {\n\t\t\tthis.actoMovimientoBorrarDTO.setCargo(null);\n\t\t\tthis.labelCargo = \"\";\n\t\t}*/\n\t}\n\t\n\tpublic verPopupAntecesor() {\n    var actoDTO = new ActoIngresoAusenciaModel();\n    actoDTO.formatoPadre = this.actoMovimientoBorrarDTO.formatoDTO.formPadre;\n    actoDTO.formatoOriginal = this.actoMovimientoBorrarDTO.formatoDTO.llave;\n    actoDTO.accionOriginal = this.actoMovimientoBorrarDTO.formatoDTO.accion;\n    actoDTO.estado = 6;\n    actoDTO.campoEstado = this.parametroFormatoPipe.PARAMETRO_L_AUSENCIA;\n\n\t\t//\tgetBean(PopupAntecesorBean.class).buscar(\"#{actosMovPlantaLiberaTransladaBean.antecesor}\", actoDTO, this.parametroFormatoPipe.TIPO_ACTO_MOVIMIENTO_PLANTA);\n\t}\n\t\n\tpublic setAntecesor(actoDTO: ActoIngresoAusenciaModel) {\n\t\tif (actoDTO != null) {\n\t\t\tthis.actoMovimientoBorrarDTO.antecesor = actoDTO.llaveActo;\n\t\t\tthis.actoMovimientoBorrarDTO.descripcionAntecesor = actoDTO.descripcion;\n\t\t}\n\t}\n\n\tpublic cambioValorCargoAntes(event)  {\n\t\t/*String newWord = (String) event.getNewValue();\n\t\tthis.listaCargoItem = FiltroLista.filtrarListaObjeto(this.listaCargoDTOs, newWord, \"descripcion\", \"cargo\");\n\t\tif (newWord != null) {\n\t\t\tthis.actoMovimientoBorrarDTO.setCargoAntes(newWord);\n\t\t} else {\n\t\t\tthis.actoMovimientoBorrarDTO.setCargoAntes(null);\n\t\t\tthis.labelCargoAntes = \"\";\n\t\t}*/\n\t}\n\n\t// ----------------------\n\t//  GETTERS y SETTERS\n\t// ----------------------\n\n\n\tpublic isLiberarPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.LIBERAR_PUESTO_TRABAJO == (this.accionFormato);\n\t}\n\n\tpublic isReclasificacionPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.RECLASIFICACION_PUESTO_TRABAJO == (this.accionFormato);\n\t}\n\n\n\tpublic isTrasladoPuestoTrabajo() {\n\t\treturn this.parametroFormatoPipe.TRALADO_PUESTO_DE_TRABAJO == (this.accionFormato);\n\t}\n\t\n\tpublic isMostarTablaPuesto(){\n\t\treturn (this.parametroFormatoPipe.TRALADO_PUESTO_DE_TRABAJO == (this.accionFormato) \n\t\t\t\t|| this.parametroFormatoPipe.RECLASIFICACION_PUESTO_TRABAJO == (this.accionFormato))\n\t\t\t\t&& this.parametroFormatoPipe.ETAPA_LEGALIZACION == (this.etapa);\n\t}\n\t\n\tpublic isMostrarSeleccionAntecesor() {\n\t\treturn this.actoMovimientoBorrarDTO != null && this.actoMovimientoBorrarDTO.formatoDTO != null && this.actoMovimientoBorrarDTO.formatoDTO.formPadre != 0;\n\t}\n\n\tpublic isMostrarBuscarAntecesor() {\n\t\treturn this.parametroFormatoPipe.ETAPA_ELABORACION == (this.etapa) && this.parametroFormatoPipe.PASO_ANTECESOR == (this.paso);\n\t}\n\t\n\tpublic isVerFormulario() {\n\t\treturn this.parametroFormatoPipe.PASO_ANTECESOR != (this.paso);\n\t}\n\n}","<p>actos-mov-planta-libera-traslada works!</p>\n","import { UnionModel } from 'general-library-union'\nimport { ProcesoNominaModel } from './ProcesoNominaModel';\n\nexport class PeriodoModel  extends UnionModel{\n\n\n\tperiodo: string;\n\tdescripcion: string;\n\ttipoperiodo: number;\n\tfechainicial: Date;\n\tfechafinal: Date;\n\tfechapago: Date;\n\tabono: Date;\n\tciclo: number;\n\tempresa: number;\n\tliquidacion: string;\n\tdescripcionLiquidacion: string;\n\tgenerada: string;\n\tdescripcionGenerada: string;\n\tdescestado: string;\n\tcomodinBusqueda: string;\n    novedad: Date;\n    accionReg: string;\n\testadoLaboral: string;\n\tfechalep: string;\n\tnombreTipoPeriodo: string;\n\tmostrarAbono: boolean;\n\tlistainconsistencia: ProcesoNominaModel[];\n\tfechaGeneral: Date;\n\tusuario: string;\n\ttextoComprobante: string;\n\tmodo: string;\n\tperiodoInforme: string;\n\t/** Corresponde a la fecha publicacion comprobante */\n\tcomprobante: Date;\n\t/** Corresponde al estado de publicacion del comprobante*/\n\tpublicacion: string;\n\testadoProceso: string;\n\tfechaPagoAnterior: Date;\n\tfechaAbonoAnterior: Date;\n\tfechaFiltro: Date;\n\tcontabilizado: string;\n\tprocesoInterfaz: string;\n\tdescripcionInterfaz: string;\n\tsegundoPlano: string;\n\tperiodoNoContabilizado: Boolean;\n\tiniciaCalculo: Date;\n\tfinalCalculo: Date;\n\n\t/**Campo Fecha filtro**/\n\tfechaLiquida: Date;\n\ttipoLiquidacion: string;\n\taliasRol: string;\n\n  valorPopup: string;\n\n}\n","export class ParametrosGeneralModel {\n\n    nombreDTO: string;\n    objeto: any;\n    lista: any;\n    parametros: any;\n    json: any;\n\n    constructor(nombreDTO?: string, objeto?: any, lista?: any, parametros?: any, json?:any) {\n        this.nombreDTO = nombreDTO;\n        this.lista = lista;\n        this.parametros = parametros;\n        this.objeto = objeto;\n        this.json = json;\n    }\n}","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { LiquidacionPerPipe } from '../../../pipes/liquidacionper.pipe';\n\nimport { AuthService, GeneralModel, PublicacionWebModel, ToastService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { EmpresaModel } from '../../../../hojavida/models/EmpresaModel';\nimport { DocumentoSoporteModel } from '../../../../sarageneral/models/DocumentoSoporteModel';\nimport { PlanillaPipe } from '../../../../../shared/pipes/planilla.pipe';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { ActoAusenciaModel } from '../../../../actos/models/ActoAusenciaModel';\nimport { GeneracionVacacionesService } from '../../../services/generacionVacaciones.service';\nimport { ParametrosGeneralModel } from '../../../models/ParametrosGeneralModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { NgFor, NgIf } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-comprobante-vacaciones',\n    templateUrl: './popup-comprobante-vacaciones.component.html',\n    styleUrls: ['./popup-comprobante-vacaciones.component.scss'],\n    standalone: true,\n    imports: [DialogModule, DropdownModule, FormsModule, NgFor, RadioButtonModule, NgIf, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupComprobanteVacacionesComponent implements OnInit {\n\n\n  mostrar: boolean;\n  opciones: any[] = [];\n  opcionSeleccionada;\n  empresa: EmpresaModel = new EmpresaModel();\n  tipoComprobante;\n  llaveComprobante;\n  llaveRegistro;\n  listaActos: ActoAusenciaModel[] = [];\n  tipo : String;\n  rutas = [{ ruta: 'ruta_temporal' }, { ruta: 'ruta_recursos' }, { ruta: 'ruta_plantillas' }];\n  cargando: boolean;\n  constructor(public liquidacionPipe: LiquidacionPerPipe, private authService: AuthService, private generalService: GeneralService, public planillaPipe: PlanillaPipe,\n    private cargarmapasGlobal: cargarmapasGlobal, private generacionvService: GeneracionVacacionesService, private notificacionesBusService: ToastService) { }\n\n  ngOnInit(): void { }\n\n  public async cargardatos(llaveRegistro, listaActos): Promise<void> {\n    this.tipo = null;\n    this.mostrar = true;\n    this.opciones = [];\n    this.llaveComprobante = null;\n    this.tipoComprobante = null;\n    this.listaActos = listaActos;\n    this.llaveRegistro = llaveRegistro\n    let lista = this.liquidacionPipe.LISTAACCIONCOMPROBANTE;\n    let obj;\n    lista.forEach(elemento => {\n      this.opciones.push({ name: elemento.nombre, key: elemento.codigo });\n    });\n    //cargamos el select con la info necesaria\n    this.cargarDatosComprobante();\n  }\n\n  async cargarDatosComprobante() {\n    this.cargarEmpresa();\n    try {\n      let dto: DocumentoSoporteModel = new DocumentoSoporteModel;\n      dto.empresa = this.empresa.empresa;\n      dto.tipo = this.planillaPipe.COMPROBANTE_VACACION;\n      let objeto = new GeneralModel('DocumentoSoporteDTO', null, false, dto);\n      this.tipoComprobante = await this.cargarmapasGlobal.cargarSelectItemString('llaveTabla', 'descripcion', objeto)\n    } catch (error) {\n\n    }\n  }\n\n  async cargarEmpresa() {\n    try {\n      this.empresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      this.empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, this.empresa)).toPromise();\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n\n  async enviarMail(){\n    try {\n      if(this.llaveComprobante == null) {\n        this.notificacionesBusService.showInfo('Debe seleccionar un tipo comprobante');\n        return;\n      }\n      let actoAusenciaDTO: ActoAusenciaModel = this.listaActos[0];\n      actoAusenciaDTO.identifica = this.llaveRegistro ? 0 : actoAusenciaDTO.identifica;\n      let docSoporteDTO = await this.traerRegistroProceso(this.llaveComprobante);\n      let respuesta = await this.generacionvService.enviarComprobanteVacaciones(new ParametrosGeneralModel(null,null,this.listaActos,{\n        empresa: this.empresa,\n        actoAusencia: actoAusenciaDTO,\n        login: this.authService.getTokenKey('usuario'),\n        codigoEmpresa: this.authService.getTokenKey('numeroEmpresa').toString(),\n        docSoporteDTO: docSoporteDTO,\n        llaveRegistro: this.llaveRegistro,\n        llaveRol: this.authService.getTokenKey('llaveRol'),}\n        )).toPromise();\n      if(respuesta.estado == '500'){\n        this.notificacionesBusService.showWarning(respuesta.mensaje);\n        return\n      }\n      this.notificacionesBusService.showSuccess(respuesta.mensaje);\n    } catch (error) {\n      \n    }\n  }\n\n  async generarComprobante() {\n    try {\n      if (this.llaveComprobante == null) {\n        return;\n      }\n      let actoAusenciaDTO: ActoAusenciaModel = this.listaActos[0];\n      actoAusenciaDTO.identifica = this.llaveRegistro ? 0 : actoAusenciaDTO.identifica;\n      let documentoSoporteDTO: DocumentoSoporteModel = await this.traerRegistroProceso(this.llaveComprobante);\n      this.generacionvService.generarComprobanteVacaciones(new ParametrosGeneralModel(null, null, null, {\n        empresa: this.empresa,\n        login: this.authService.getTokenKey('usuario'),\n        codigoEmpresa: this.authService.getTokenKey('numeroEmpresa').toString(),\n        docSoporteDTO: documentoSoporteDTO.llaveTabla,\n        llaveRegistro: this.llaveRegistro,\n        actoAusencia: actoAusenciaDTO,\n        \n      })).subscribe({\n        next: (data) => {\n          const a = document.createElement('a')\n          const objectUrl = URL.createObjectURL(data)\n          a.href = objectUrl\n          a.download = 'Informe Vacaciones' + '.pdf';\n          a.click();\n          URL.revokeObjectURL(objectUrl);\n          this.notificacionesBusService.showInfo('Archivo Generado Correctamente')\n        },\n        error: (err) => {\n          if(err.status == '500'){\n            this.notificacionesBusService.showError('No se ha encontrado el archivo en el servidor, informe al administrador del sistema para que se configure correctamente las rutas.')\n          }else{\n            this.notificacionesBusService.showError('Error en el servicio')\n          }\n          \n        }\n        \n      });\n    } catch (error) {\n      \n    }\n  }\n\n  async publicar(){\n    try {\n      this.cargando = true;\n      if(this.llaveComprobante == null){\n        this.notificacionesBusService.showInfo('Debe seleccionar un tipo de comprobante');\n        return;\n      }\n      let actoAusenciaDTO: ActoAusenciaModel = this.listaActos[0];\n      actoAusenciaDTO.identifica = this.llaveRegistro ? 0 : actoAusenciaDTO.identifica;\n      let docSoporteDTO = await this.traerRegistroProceso(this.llaveComprobante);\n      let respuesta = await this.generacionvService.publicarComprobanteVacaciones(new ParametrosGeneralModel(null,null,this.listaActos,{\n        empresa: this.empresa,\n        actoAusencia: actoAusenciaDTO,\n        login: this.authService.getTokenKey('usuario'),\n        codigoEmpresa: this.authService.getTokenKey('numeroEmpresa').toString(),\n        docSoporteDTO: docSoporteDTO,\n        llaveRegistro: this.llaveRegistro,\n        llaveRol: this.authService.getTokenKey('llaveRol'),}\n        )).toPromise();\n      if(respuesta.estado == '500'){\n        this.notificacionesBusService.showWarning(respuesta.mensaje);\n        this.cargando = false;\n        return\n      }  \n      this.notificacionesBusService.showSuccess(respuesta['mensaje']);\n      this.cargando = false;\n    } catch (error) {\n      console.log(JSON.stringify(error));\n      \n    }\n  }\n\n\n\n  async traerRegistroProceso(llaveComprobante) {\n    let documentoSoporteDTO: DocumentoSoporteModel = new DocumentoSoporteModel();\n    documentoSoporteDTO.llaveTabla = llaveComprobante;\n    documentoSoporteDTO = await this.generalService.queryForObject(new GeneralModel('DocumentoSoporteDTO', null, false, documentoSoporteDTO)).toPromise();\n    return documentoSoporteDTO\n  }\n\n  verOpcion() {\n    this.tipo = this.opcionSeleccionada.key;\n  }\n\n\n\n  public ocultar() {\n    this.mostrar = false;\n  }\n\n}\n","<p-dialog id='comprobanteVacaciones' header=\"{{'comprobante' | translate}} {{'vacaciones' | translate}}\" [style]=\"{width: '30vw'}\"\n    [(visible)]=\"mostrar\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\">\n    <div class=\"mt-2\">\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <label htmlFor=\"tipo\">{{'tipo' | translate}} {{'comprobante' | translate}}</label>\n                <p-dropdown [autoDisplayFirst]=\"false\" id=\"formadepago\" [options]=\"this.tipoComprobante\"\n                    optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"llaveComprobante\" [showClear]=\"true\">\n                </p-dropdown>\n            </div>\n            <div class=\" col-12 md:col-12 lg:col-12 flex\">\n                <div *ngFor=\"let opcion of opciones\" class=\"mr-4\">\n                    <p-radioButton class=\"mr-1\" [inputId]=\"opcion.key\" name=\"opcion\" [value]=\"opcion\" [(ngModel)]=\"opcionSeleccionada\" (click)=\"verOpcion()\" ></p-radioButton>\n                    <label [for]=\"opcion.key\">{{opcion.name}}</label>\n                </div>\n            </div>\n            <div class=\"col-12 md:col-12 lg:col-12\">\n            <div class=\"flex align-items-center justify-content-end align-items-center\">\n                <button pButton pRipple class=\"mt-4 p-button-raised\" *ngIf=\"tipo == 'T'\"\n                label=\"{{'descargar' | translate}}\"\n                (click)=\"generarComprobante()\"><span class=\"glyphicons glyphicons-download-alt\"></span></button>\n                <button pButton pRipple class=\"mt-4 p-button-raised\" *ngIf=\"tipo == 'C'\"\n                label=\"{{'enviar' | translate}}\"\n               (click)=\"enviarMail()\"><span class=\"glyphicons glyphicons-envelope\"></span></button>\n               <button pButton pRipple class=\"mt-4 p-button-raised\" *ngIf=\"tipo == 'P'\" [disabled]=\"cargando\"\n                label=\"{{'publicar' | translate}}\"\n               (click)=\"publicar()\"><span [style]=\"cargando ? 'margin: 0.4rem;' : ''\" [class]=\"cargando ? 'pi pi-spin pi-spinner' : 'glyphicons glyphicons-send'\"></span></button>\n            </div>\n        </div>\n    </div>\n</p-dialog>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService} from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class ActoVacacionesService {\n  \n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  nuevo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/nuevo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n \n  liquidarVacaciones(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/liquidarVacaciones`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerAusenciaNovedad(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/traerAusenciaNovedad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerRegistroVacacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/traerRegistroVacacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  ContractoUsuario(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/ContractoUsuario`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  ListaDiaspendientes(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/ListaDiaspendientes`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  elaborarActoVacacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/elaborarActoVacacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  LegalizarVacacionesAusencia(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/LegalizarVacacionesAusencia`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarCombos(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/cargarCombos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerAusenciaNovedadInterrupcion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/traerAusenciaNovedadInterrupcion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  verificaInterrupcionVacacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actoVacaciones/verificaInterrupcionVacacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n})\n\n\nexport class ParametroFormatoWeb {\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n            //Llamado a interceptor\n            this.errorInterceptor.showError(JSON.stringify(error.error));\n            // A client-side or network error occurred. Handle it accordingly.\n            console.error('An error occurred:', error.error);\n        } else {\n            // The backend returned an unsuccessful response code.\n            // The response body may contain clues as to what went wrong.\n            console.error(\n                `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    listaVacaciones(): Observable<any> {\n        return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/parametroFormatoWeb/listaVacaciones`).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    listaCampoTerminacionContrato(): Observable<any> {\n        return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/parametroFormatoWeb/listaCampoTerminacionContrato`).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    listaRetiro(): Observable<any> {\n        return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/parametroFormatoWeb/listaRetiro`).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    listaCampoEspecial(): Observable<any> {\n        return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/parametroFormatoWeb/listaCampoEspecial`).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    listaCampoMovPlanta(): Observable<any> {\n        return this.httpClient.get<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/parametroFormatoWeb/listaCampoMovPlanta`).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n\n}","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { ActoAdministrativosPdfModel } from '../../../models/ActoAdministrativosPdfModel';\nimport { ActoAusenciaModel } from '../../../models/ActoAusenciaModel';\nimport { EmpleadoModel } from '../../../../../modules/compensacion/models/EmpleadoModel';\nimport { FormatoDatoModel } from '../../../models/FormatoDatoModel';\nimport { FormatoFirmaModel } from '../../../models/FormatoFirmaModel';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { PeriodoModel } from '../../../../../modules/compensacion/models/PeriodoModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ActoAusenciaService } from '../../../services/acto-ausencia.service';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AusenciaNovedadModel } from '../../../../../modules/compensacion/models/AusenciaNovedadModel';\nimport { ActoVacacionesService } from '../../../services/acto-vacaciones.service';\nimport { ActoCambioEmpleadoService } from '../../../services/acto-cambio-empleado.service';\nimport { SelectListActos } from '../../../services/select-list-actos.service';\nimport { FormatoService } from '../../../services/formato.service';\nimport { EmpleadoService } from '../../../../../modules/compensacion/services/empleado.service';\nimport { PopupSubirArchivoActosComponent } from '../../../popups/popup-subir-archivo-actos/popup-subir-archivo-actos.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PopupComprobanteVacacionesComponent } from '../../../../../modules/compensacion/pages/generacion-vacaciones/popup-comprobante-vacaciones/popup-comprobante-vacaciones.component';\nimport { ParametroFormatoWeb } from '../../../services/parametroFormatoWeb.service';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CabeceraEmpleadoComponent } from '../../../../../shared/componentes/cabecera-empleado/cabecera-empleado.component';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n  selector: 'app-actos-vacaciones',\n  standalone: true,\n  imports: [NgIf, InputHelperEmpleadoBotonComponent, InputTextModule, FormulariodinamicoComponent, FieldsetModule, CabeceraEmpleadoComponent, ButtonModule, RippleModule, TranslateModule, FormsModule],\n  templateUrl: './actos-vacaciones.component.html',\n  styleUrl: './actos-vacaciones.component.scss'\n})\nexport class ActosVacacionesComponent {\n\n  public etapa: string;\n  public accion: string;\n  public paso: string;\n  \n  public actoDtoPdf: ActoAdministrativosPdfModel;\n  \n  public actoAusenciaDTO: ActoAusenciaModel;\n  public llaveAusenciaEmpleado: string;\n  public origenTarea: string;\n  public formVista: string;\n  public empleado: EmpleadoModel = new EmpleadoModel();\n  public ruta: string;\n  \n  // public urlFile: string; // Comentado como en el código original\n  public listaFormatoDatoDocumentoItem: any[] = [];\n  public listaFirmaDocumentoItem: any[] = [];\n  public listaParaCampoLegalizada: FormatoDatoModel[] = [];\n  public listaSucursalItem: any[] = [];\n  public listaformaPago: any[] = [];\n  public listaSoporteItem: any[] = [];\n  public listasoporte: FormatoFirmaModel[] = [];\n  public llavebase: string;\n  public tabla: boolean;\n  public accionDisfrute: string;\n  public accionDinero: string;\n  \n  public pdf: boolean = false;\n  public verPopupEml: boolean;\n  public mostrarProcesoAplicarProcesoLiquidacion: boolean;\n  public seguimiento: boolean = false;\n  \n  public mostrarWord: boolean;\n  public mostrarDatosContrato: boolean;\n  public mostrarProgramacion: boolean;\n  public mostrarFinal: boolean;\n  public mostrarSiguienteContrato: boolean;\n  public mostrarSiguienteProgramacion: boolean;\n  public mostrarSiguienteLegalizacion: boolean;\n  public mostrarAnteriorFinal: boolean;\n  \n  public tituloCompensada: string;\n  public tituloDisfrute: string;\n  public rutaFisicaWord: string;\n  public llaveNombreArchivoProcesoCombinacion: string;\n  public entraProcesoLiquidacion: boolean;\n  public descripcionGrupo: string;\n\n  @Output() public regresarAction = new EventEmitter();\n  @ViewChild(FormulariodinamicoComponent) formularioDinamico: FormulariodinamicoComponent;\n  @ViewChild(PopupSubirArchivoActosComponent) popupSubirArchivo: PopupSubirArchivoActosComponent;\n  @ViewChild(PopupComprobanteVacacionesComponent) popupComprobanteVacaciones: PopupComprobanteVacacionesComponent;\n\n  public campos: CampoFormularioModel[] = [];\n  public vistaVisualizar: string;\n  public mostrarPopupSeguimiento: boolean = false;\n  public mostrarPopupSubirArchivo: boolean = false;\n  public llaveSeguimiento=null;\n  public contratoSeguimiento=null;\n\n  //campos nuevos\n  public mostrar: boolean = false;\n  public cedulaFiltro: string  ;\n  public deDondeVengo: string;\n  @Input() public tipoSeleccionado: string;\n  @ViewChild('inputEmpleado') inputEmpleado: InputHelperEmpleadoBotonComponent;\n\n  constructor(private generalPipe: GeneralPipe,\n              public utilsService: UtilsService,\n              private authService: AuthService,\n\t\t\t  private formatoService: FormatoService,\n\t\t\t  private generalService: GeneralService,\n\t\t\t  private empleadoService: EmpleadoService,\n\t\t\t  private selectListActos: SelectListActos,\n\t\t\t  private translateService: TranslateService,\n\t\t\t  private notificacionesService: ToastService,\n              private actoAusenciaService: ActoAusenciaService,\n\t\t\t  private popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\t\t  private campoFormularioPipe: CampoFormularioPipe,\n              public  parametroFormatoPipe: ParametroFormatoPipe,\n              private actoVacacionesService: ActoVacacionesService,\n\t\t\t  private parametroFormatoWebService: ParametroFormatoWeb,\n\t\t\t  private actoCambioEmpleadoService: ActoCambioEmpleadoService,\n              private controlFuncionService: CargarControlFuncionalidadService,\n  ) {}\n\n  public decideQueNoMostrar() {\n\n\t\tif (this.paso != null) {\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_PROGRAMACION)) {\n\t\t\t\tthis.paso = this.parametroFormatoPipe.PASO_CONTRATO;\n\t\t\t}\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\t\tthis.paso = this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION) ? this.parametroFormatoPipe.PASO_LEGALIZAR : this.parametroFormatoPipe.PASO_PROGRAMACION;\n\t\t\t}\n\n\t\t\tthis.decideQueMostrar();\n\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Metodo que controla que componente es el que se debe mostrar en el .jspx\n\t */\n\tpublic decideQueMostrar() {\n\n\t\tif (this.paso != null) {\n\n\t\t\tthis.mostrarDatosContrato = false;\n\t\t\tthis.mostrarProgramacion = false;\n\t\t\tthis.mostrarFinal = false;\n\t\t\tthis.mostrarSiguienteContrato = false;\n\t\t\tthis.mostrarSiguienteProgramacion = false;\n\t\t\tthis.mostrarSiguienteLegalizacion = false;\n\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_CONTRATO)) {\n\t\t\t\tthis.mostrarDatosContrato = true;\n\t\t\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION_NOVEDAD) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\t\t\tthis.mostrarSiguienteContrato = true;\n\t\t\t\t}\n\t\t\t\tthis.verPopupEml = this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION);\n\t\t\t\tthis.formularioDinamico.editable == (true);\n\t\t\t}\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_PROGRAMACION)) {\n\t\t\t\tthis.mostrarDatosContrato = true;\n\t\t\t\tthis.mostrarProgramacion = true;\n\t\t\t\tthis.mostrarSiguienteProgramacion = true;\n\t\t\t}\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_LEGALIZAR)) {\n\t\t\t\tthis.mostrarDatosContrato = true;\n\t\t\t\tthis.mostrarProgramacion = true;\n\t\t\t\tthis.mostrarSiguienteLegalizacion = true;\n\t\t\t\tthis.formularioDinamico.editable == (true);\n\t\t\t}\n\t\t\tif (this.paso == (this.parametroFormatoPipe.PASO_FINAL)) {\n\t\t\t\tthis.mostrarDatosContrato = true;\n\t\t\t\tthis.mostrarProgramacion = true;\n\t\t\t\tthis.mostrarFinal = true;\n\t\t\t\tthis.mostrarAnteriorFinal = this.etapa != (this.parametroFormatoPipe.ETAPA_ELIMINACION);\n\t\t\t}\n\t\t}\n\t}\n\t\n\tprivate inicializar() {\n\t\tthis.actoAusenciaDTO = new ActoAusenciaModel();\n\t\tthis.mostrarProcesoAplicarProcesoLiquidacion = false;\n\t\tthis.vistaVisualizar == null;\n\t}\n\n\t/**\n\t * Metodo para crear un nuevo acto ingreso.\n\t * \n\t * @param cedula\n\t *            Identificacion(contrato de la persona) a la que se va hacer el\n\t *            acto\n\t * @param formato\n\t *            LLave del formato que tendra relacionado este Acto\n\t * @param grupoVincula\n\t *            Cada Acto tendra relacionado un grupo vincula\n\t */\n\n\tpublic async nuevo(cedula: number, formato: number, grupo: number) {\n\t\tthis.inicializar();\n\t\n\t\t//cabecera(null,null);\n\t\tthis.verPopupEml = true;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CONTRATO;\n\t\tthis.llavebase = this.generalPipe.ESPACIO_NULO;\n\n\t\tthis.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarListaSoporteDocumento', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),formato: formato, tipoSoporte: 'W'})).subscribe(data => {\n\t\t\tthis.listasoporte =data\n\t\t});\n\n\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.nuevo({formato: formato, grupoVincula: grupo, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\tthis.mostrar = true;\n\t\tsetTimeout(async () => {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_CONTRATO;\n\t\t\tthis.decideQueMostrar();\n\t\t\tawait this.cargarformulario();\n\t\t\tawait this.setValorCampos();\n\t\t}, 0);\n\t\t\n\t\t\n\t}\n\n\tpublic async setNuevoAusenciaNovedad(novedad: AusenciaNovedadModel) {\n\t\tthis.mostrarProcesoAplicarProcesoLiquidacion = false;\n\t\tthis.verPopupEml = true;\n\t\tthis.llavebase = this.generalPipe.ESPACIO_NULO;\n\n\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.traerAusenciaNovedad(novedad).toPromise();\n\t\tthis.listasoporte = await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', 'FormatoFirma.consultarListaSoporteDocumento', false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),formato: this.actoAusenciaDTO.formatoDTO.llave, tipoSoporte: 'W'})).toPromise();\n\n\t\tfor (let formatoFirmaDTO of this.listasoporte) {\n\n\t\t\tif (formatoFirmaDTO.origenActo != null && formatoFirmaDTO.origenActo == (this.parametroFormatoPipe.ACTOS_ORIGINALES)) {\n\t\t\t\tthis.actoAusenciaDTO.soporte = formatoFirmaDTO.planilla;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.actoAusenciaDTO == null) {\n\t\t\tthis.notificacionesService.showInfo('no pudo seleccionar datos acto ausencia');\n\t\t\treturn;\n\t\t}\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t//cabecera(this.actoAusenciaDTO.identifica,this.actoAusenciaDTO.getEmpresa());\n\n\t\tawait this.cargarformulario();\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CONTRATO;\n\t\tthis.decideQueMostrar();\n    }\n\n\t\n\tpublic async nuevoCorrecion(llave: string, formato: number) {\n\t\tthis.mostrarProcesoAplicarProcesoLiquidacion = false;\n\t\tthis.actoAusenciaDTO = new ActoAusenciaModel();\n\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.traerRegistroVacacion(llave).toPromise();\n\t\tthis.actoAusenciaDTO.derogacion = llave;\n\t\tthis.llavebase = this.generalPipe.ESPACIO_NULO;\n\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELABORACION;\n\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\n\t\tthis.actoAusenciaDTO.formatoDTO = await this.formatoService.traerFormato({ formato: formato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) }).toPromise();\n\t\tthis.paso = 'datosformulario';\n\t\t//cabecera(this.actoAusenciaDTO.identifica,this.actoAusenciaDTO.getEmpresa());\n\n\t\tthis.decideQueMostrar();\n\t}\n\n\tpublic async modificar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.verPopupEml = false;\n\t\tthis.llavebase = llave;\n\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.traerRegistroVacacion(llave).toPromise();\n\t\tthis.cargarCampoAnioServicio();\n\t\tif (this.actoAusenciaDTO == null) {\n\t\t\tthis.notificacionesService.showWarning('no pudo seleccionar datos acto ausencia');\n\t\t\treturn;\n\t\t}\n\t\tif (this.actoAusenciaDTO.derogacion != null) {\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t} else {\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t}\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_MODIFICAR;\n\n\t\t//cabecera(this.actoAusenciaDTO.identifica,this.actoAusenciaDTO.getEmpresa());\n\n\t\tawait this.cargarformulario();\n\t\tthis.paso = this.parametroFormatoPipe.PASO_CONTRATO;\n\n\t\tthis.decideQueMostrar();\n\t}\n\t\n\tprivate cargarCampoAnioServicio() {\n\t\tif(this.actoAusenciaDTO.fechaServicio!=null) {\n\t\t\tthis.actoAusenciaDTO.anioServicio = this.actoAusenciaDTO.fechaServicio.getFullYear();\n\t\t}\n\t}\n\n\tpublic async legalizar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.verPopupEml = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_LEGALIZACION;\n\t\tthis.llavebase = llave;\n\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.traerRegistroVacacion(llave).toPromise();\n\t\tthis.cargarCampoAnioServicio();\n\t\tif (this.actoAusenciaDTO.derogacion != null) {\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t} else {\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t}\n\t\tawait this.cargaListaFormularioLeglizadaYcampo();\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_LEGALIZAR;\n\n\t\t//cabecera(this.actoAusenciaDTO.identifica,this.actoAusenciaDTO.getEmpresa());\n\n\t\tthis.decideQueMostrar();\n\t}\n\n\tpublic async eliminar(llave: string) {\n\t\tthis.inicializar();\n\t\tthis.verPopupEml = false;\n\t\tthis.etapa = this.parametroFormatoPipe.ETAPA_ELIMINACION;\n\t\tthis.llavebase = llave;\n\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.traerRegistroVacacion(llave).toPromise();\n\t\tthis.cargarCampoAnioServicio();\n\t\tif (this.actoAusenciaDTO.derogacion != null) {\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_CORRECCION;\n\t\t} else {\n\t\t\tthis.accion = this.parametroFormatoPipe.ACCION_ORIGINAL;\n\t\t}\n\t\tawait this.cargarformulario();\n\n\t\tawait this.procesoCombinacion();\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\n\t\t//cabecera(this.actoAusenciaDTO.identifica,this.actoAusenciaDTO.getEmpresa());\n\n\t\tthis.decideQueMostrar();\n\t}\n\n\tpublic validar() {\n\t\tvar validador = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.actoAusenciaDTO.identifica);\n\t\treturn validador;\n\t}\n\n\tpublic async siguienteCedula() {\n\t\tif (!this.validar()) {\n\t\t\treturn null;\n\t\t}\n\t\tvar empleadoDTO: EmpleadoModel = await this.empleadoService.obtenerContratoActivo( {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), contrato: this.actoAusenciaDTO.identifica}).toPromise();\n\t\tif (empleadoDTO == null) {\n\t\t\tthis.notificacionesService.showWarning('Empleado no ha sido seleccionado');\n\t\t\treturn null;\n\t\t}\n\t\tvar mensaje = await this.actoVacacionesService.ContractoUsuario({vinculacion: empleadoDTO.vinculacion, grupo: this.actoAusenciaDTO.grupoVincula}).toPromise();\n\n\t\tif (mensaje != null) {\n\t\t\tthis.notificacionesService.showWarning(mensaje);\n\t\t\treturn null;\n\t\t}\n\n\t\tif (empleadoDTO.unidadFuncion != null && empleadoDTO.unidadFuncion.trim().length > 0) {\n\t\t\tthis.actoAusenciaDTO.unidad = (empleadoDTO.unidadFuncion);\n\t\t} else {\n\t\t\tthis.actoAusenciaDTO.unidad = (empleadoDTO.unidad);\n\t\t}\n\n\t\t/**\n\t\t * SI LA LISTA DE VACACIONES PROGRAMADAS YA VIENE LLENA, NO LA\n\t\t * RECARGAMOS.\n\t\t */\n\t\tif (this.actoAusenciaDTO.listaprogramada == null || this.actoAusenciaDTO.listaprogramada.length == 0) {\n\t\t\tthis.actoAusenciaDTO.listaprogramada = await this.actoVacacionesService.ListaDiaspendientes({contrato: this.actoAusenciaDTO.identifica, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\t}\n\t\tthis.actoAusenciaDTO.vincula = (empleadoDTO.vinculacion);\n\n\t\tif (!this.formularioDinamico.validar()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn null;\n\t\t}\n\n\t\t/**\n\t\t * HASTA PASO HEMOS VALIDADO LOS DATOS Y ESTAN CORRECTOS PARA SEGUIR\n\t\t * CON EL PROCESO DE PROGRAMACION, POR LO TANTO CAMBIAMOS EL paso A\n\t\t * this.parametroFormatoPipe.PASO_PROGRAMACION\n\t\t */\n\n\t\t\n\n\t\t// asignamos los valores del formulario al dto\n\t\tthis.actoAusenciaDTO = this.formularioDinamico.getObjecto();\n\n\t\t/**\n\t\t * LOS CAMPOS DEL FORMULARIO DEBEN QUEDAR DESHALITADOS\n\t\t */\n\t\tthis.formularioDinamico.editable == false;\n\t\t\n\t\tif ( this.tabla ) {\n\t\t\tthis.paso = this.parametroFormatoPipe.PASO_PROGRAMACION;\n\t\t\tthis.decideQueMostrar();\n\t\t}\n\t\telse {\n\t\t\tawait this.procesoElaboracion();\n\t\t}\n\t}\n\n\tpublic async siguienteProgramacion() {\n\t\t/**\n\t\t * VALIDAMOS QUE EXITAN PERIODOS Y QUE SEAN VALIADOS ESOS PERIODOS\n\t\t * DE VACACION\n\t\t */\n\t\tif (!this.validarPeriodos(this.actoAusenciaDTO.listaprogramada)) {\n\t\t\tthis.notificacionesService.showWarning('Dias no concuerdan');\n\t\t\treturn null;\n\t\t}\n\t\tawait this.procesoElaboracion();\n\t}\n\t\n\tprivate async procesoElaboracion () {\n\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tthis.actoAusenciaDTO.mensaje = null;\n\t\t\tawait this.generalService.update(new GeneralModel('ActoAusenciaDTO', null, false, this.actoAusenciaDTO)).toPromise();\n\t\t} else {\n\t\t\tthis.setValorAnioServicio();\n\t\t\tthis.llaveSeguimiento=null;\n\t\t\tthis.contratoSeguimiento=null;\n\t\t\tif ( this.seguimiento ) {\n\t\t\t\tthis.llaveSeguimiento = this.utilsService.generarLlave();\n\t\t\t\tthis.contratoSeguimiento = this.actoAusenciaDTO.identifica;\n\t\t\t}\n\t\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.elaborarActoVacacion({actoAusenciaDTO: this.actoAusenciaDTO, \n\t\t\t\tusuario: this.authService.getTokenKey('usuario'), llavebase: this.llavebase, seguimiento: this.llaveSeguimiento,\n\t\t\t\tcontratoSeguimiento: this.contratoSeguimiento}).toPromise();\n\t\t\tif (this.seguimiento) {\n\t\t\t\tthis.mostrarPopupSeguimiento = true;\n\t\t\t\t//getBean(PopUpSeguimiento.class).buscar(llaveSeguimiento,null);\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (this.actoAusenciaDTO.mensaje != null) {\n\t\t\tthis.notificacionesService.showWarning(this.actoAusenciaDTO.mensaje);\n\t\t\treturn;\n\t\t}\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\n\t\tawait this.procesoCombinacion();\n\n\t\tthis.decideQueMostrar();\n\n\t}\n\t\n\tpublic botonAnterior() {\n\t\tif (this.paso == ('datoscedula')) {\n\t\t\tthis.regresarAction.emit(false);\n\t\t\t/*if (url.endsWith('listadoEmpleados.xhtml') ) {\n\t\t\t\tgetBean(EmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (url.endsWith('aplicarNovedadProcesoEmpleado.xhtml') ) {\n\t\t\t\tgetBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\treturn null;\n\t\t\t\t\n\t\t\t}*/\n\t\t}\n\t\tif (this.paso == ('datosformulario')) {\n\t\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\t\tthis.regresarAction.emit(false);\n\t\t\t\t/*if (url.endsWith('listadoEmpleados.xhtml') ) {\n\t\t\t\t\tgetBean(EmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (url.endsWith('aplicarNovedadProcesoEmpleado.xhtml') ) {\n\t\t\t\t\tgetBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\t\treturn null;\n\t\t\t\t\t\n\t\t\t\t}*/\n\t\t\t}\n\t\t\tthis.paso = 'datoscedula';\n\t\t} else if (this.paso == ('datosaplicar')) {\n\t\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n\t\t\t\tthis.regresarAction.emit(false);\n\t\t\t\t/*if (url.endsWith('listadoEmpleados.xhtml') ) {\n\t\t\t\tgetBean(EmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (url.endsWith('aplicarNovedadProcesoEmpleado.xhtml') ) {\n\t\t\t\t\tgetBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\t\treturn null;\n\t\t\t\t\t\n\t\t\t\t}*/\n\t\t\t}\n\t\t\tthis.paso = 'datosformulario';\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic regresarActoAdmin() {\n\t\tthis.regresarAction.emit(false);\n\t\t/*String url = getUrl();\n\t\t\n\t\t\tif (url.endsWith('listadoEmpleados.xhtml') ) {\n\t\t\t\tgetBean(EmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\tif ( this.llaveAusenciaEmpleado != null ) {\n\t\t\t\t\tAusenciaNovedadDTO ausenciaBuscar = new AusenciaNovedadModel();\n\t\t\t\t\tausenciaBuscar.setLlaveTabla(this.llaveAusenciaEmpleado);\n\t\t\t\t\tausenciaBuscar = this.generalService.queryForObject( ausenciaBuscar);\n\t\t\t\t\tgetBean(DetalleVacacionAusenciaBean.class).buscar(this.origenTarea, this.formVista, ausenciaBuscar, this.empleado);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (url.endsWith('aplicarNovedadProcesoEmpleado.xhtml') ) {\n\t\t\t\tgetBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).setVistaVisualizar(null);\n\t\t\t\tgetBean(ListadoAplicarNovedadProcesoEmpleadoBean.class).setMostrarListadoNovedades(null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (url.endsWith('ActosAdministrativos.xhtml') ) {\n\t\t\t\tgetBean(ActosAdministrativosBean.class).retornar();\n\t\t\t\treturn;\n\t\t\t}*/\n\t\t\n\t}\n\n\tpublic async cargarformulario() {\n\t\tawait this.crearFormularioListaParaCampo();\n\t\tthis.accionDisfrute = null;\n\t\tthis.accionDinero = null;\n\t\t\n\t\tfor (let campo of this.actoAusenciaDTO.formatoDTO.listaParaCampos) {\n\t\t\tif (campo.campo.trim() == (this.parametroFormatoPipe.DINERO_ITEM)) {\n\t\t\t\tthis.accionDinero =campo.accion.trim(); \n\t\t\t\tthis.tituloCompensada = campo.titulo;\n\t\t\t}\n\t\t\tif (campo.campo.trim() == (this.parametroFormatoPipe.DISFRUTE_ITEM)) {\n\t\t\t\tthis.accionDisfrute = campo.accion.trim(); \n\n\t\t\t\tthis.tituloDisfrute = campo.titulo;\n\t\t\t}\n\t\t}\n\t\tif (this.accionDisfrute == null &&  this.accionDinero == null) {\n\t\t\tthis.tabla = false;\n\t\t} else {\n\t\t\tthis.tabla = true;\n\t\t}\n\t}\n\n\tpublic async siguienteLegalizacion() {\n\t\tif (!this.formularioDinamico.validar()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn null;\n\t\t}\n\t\tif (!this.validarPeriodos(this.actoAusenciaDTO.listaprogramada)) {\n\t\t\tthis.notificacionesService.showWarning('Dias no concuerdan');\n\t\t\treturn null;\n\t\t}\n\n\t\tthis.actoAusenciaDTO = this.formularioDinamico.getObjecto();\n\t\tthis.actoAusenciaDTO.mensaje = null;\n\t\tawait this.generalService.update(new GeneralModel('ActoAusenciaDTO', null, false, this.actoAusenciaDTO)).toPromise();\n\n\t\tthis.formularioDinamico.editable == false;\n\n\t\tif (this.actoAusenciaDTO.mensaje != null) {\n\t\t\tthis.notificacionesService.showWarning(this.actoAusenciaDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n\t\tawait this.procesoCombinacion();\n\n\t\tthis.paso = this.parametroFormatoPipe.PASO_FINAL;\n\n\t\tthis.decideQueMostrar();\n\t}\n\n\tpublic async procesoCombinacion() {\n\t\tawait this.generarPdf();\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION) || this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR)) {\n\t\t\t\tthis.actoAusenciaService.borrarRegistroAusencia( this.actoAusenciaDTO.llave).subscribe(data => {});\n\t\t}\n\t}\n\n\tpublic async procesoGeneralAnexo() {\n\t\t// despues de cada aplicar y que el proceso se realize de forma\n\t\t// correcta\n\t\t// guardamos una registro de ese archivo en la tabla\n\t\t// anexoHojaVida_ahv\n\t\t// 1. SI ESTAMOS REALIZANDO UNA ELABORACION, INSERTAMOS UN NUEVO\n\t\t// REGISTRO ANEXO\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION)) {\n\t\t\tawait this.actoAusenciaService.registrarAnexoHojaActoAusencia({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, \n\t\t\t\tactoAusenciaDTO: this.actoAusenciaDTO, eliminar: false, llaveElimina: null, login: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t}\n\t\t// 2.SI ESTAMOS RELIZANDO UNA MODIFICACION o LEGALIZACION,\n\t\t// ELIMINAMOS EL AL ANTERIOR E INSERTAMOS UNO NUEVO\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR) || this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tawait this.actoAusenciaService.registrarAnexoHojaActoAusencia({llaveNombreArchivoProcesoCombinacion: this.llaveNombreArchivoProcesoCombinacion, \n\t\t\t\tactoAusenciaDTO: this.actoAusenciaDTO, eliminar: true, llaveElimina: this.llavebase, login: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t}\n\t\t// 2.SI ESTAMOS RELIZANDO UNA ELIMINACION, ELIMINAMOS EL ANEXO\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n\t\t\tawait this.actoAusenciaService.registrarAnexoHojaActoAusencia({llaveNombreArchivoProcesoCombinacion: null, actoAusenciaDTO: this.actoAusenciaDTO,\n\t\t\t\teliminar: true, llaveElimina: this.llavebase, login: this.authService.getTokenKey('usuario')}).toPromise();\n\t\t}\n\t}\n\t\n\tprivate setValorAnioServicio() {\n\t\tif(this.actoAusenciaDTO.anioServicio!=null) {\n\t\t\tthis.actoAusenciaDTO.fechaServicio = new Date(this.actoAusenciaDTO.anioServicio, 0, 1);\n\t\t}\n\t}\n\n\tpublic async aplicar() {\n\t\tthis.mostrarProcesoAplicarProcesoLiquidacion = false;\n\t\tthis.setValorAnioServicio();\n\t\tthis.actoAusenciaDTO = await this.actoVacacionesService.LegalizarVacacionesAusencia({actoAusenciaDTO: this.actoAusenciaDTO, etapa: this.etapa, \n\t\t\tllaveBase: this.llavebase, usuario: this.authService.getTokenKey('usuario'), seguimiento: null, contratoSeguimiento: null}).toPromise();\n\t\tif (this.actoAusenciaDTO.mensaje != null) {\n\t\t\tthis.notificacionesService.showWarning(this.actoAusenciaDTO.mensaje);\n\t\t\treturn null;\n\t\t}\n\n\t\tawait this.procesoGeneralAnexo();\n\t\tthis.entraProcesoLiquidacion = false;\n\n\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION)) {\n\t\t\tthis.mostrarProcesoAplicarProcesoLiquidacion = true;\n\t\t\tthis.entraProcesoLiquidacion = true;\n\n\t\t\t/**\n\t\t\t * verificamos que el archivo de este acto, se halla genereado\n\t\t\t * bien\n\t\t\t */\n\t\t\tvar nombreArchivo;\n\t\t\tif (this.actoDtoPdf != null && this.actoDtoPdf.getRutaPdf() != null && this.actoDtoPdf.mensaje == null) {\n\t\t\t\tthis.mostrarPopupSubirArchivo = true;\n\t\t\t\tawait this.utilsService.sleep(500);\n\t\t\t\tthis.popupSubirArchivo.buscar(this.actoAusenciaDTO.formatoDTO, nombreArchivo)\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tif (this.parametroFormatoPipe.NOREQUIERE == this.actoAusenciaDTO.formatoDTO.legalUnico) {\n\t\t\tthis.mostrarProcesoAplicarProcesoLiquidacion = true;\n\t\t\tthis.entraProcesoLiquidacion = true;\n\t\t}\n\n\t\t//Muestra el mensaje de éxito del proceso\n\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\tthis.notificacionesService.showInfo(titulo);\n\t\tthis.setRegresar(null);\n\t}\n\t\n\t\n\tpublic setRegresar(regresar){\n\t\tif (!this.controlFuncionService.getControlFuncionalidad('actvac:procliquidacion') || !this.mostrarProcesoAplicarProcesoLiquidacion) {\n\t\t\tthis.regresarActoAdmin();\n\t\t}\n\t}\n\t\n\tpublic async setPeriodoSelecionado(periodoDTO: PeriodoModel) {\n    \ttry {\n\t\t\tif (periodoDTO != null) {\n\t\t\t\tvar resultado = await this.actoVacacionesService.liquidarVacaciones({actoAusenciaDTO: this.actoAusenciaDTO, \n\t\t\t\t\tusuario: this.authService.getTokenKey('usuario'), periodoDTO: periodoDTO, seguimiento: null, contratoSeguimiento: null}).toPromise();\n\t\t\t\tif (resultado == null) {\n\t\t\t\t\tawait this.popupComprobanteVacaciones.cargardatos(null,this.actoAusenciaDTO);\n\t\t\t\t} else {\n\t\t\t\t\tthis.notificacionesService.showInfo(resultado);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar titulo = this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION) ? this.translateService.instant('procesosatisfactorioeliminar') : this.translateService.instant('procesosatisfactorio');\n\t\t\tthis.notificacionesService.showInfo(titulo);\n\t\t\tthis.setRegresar(null);\n\t\t} catch (e) {\n\t\t\tthis.notificacionesService.showError(e);\n\t\t\tthis.regresarActoAdmin();\n\t\t}\n\t}\n\n\tpublic setNada(o) {\n\n\t}\n\n\tprivate realizarProcesoLiquidacion() {\n\n\t\tvar per = new PeriodoModel();\n\t\tper.usuario = (this.authService.getTokenKey('usuario'));\n\t\tper.empresa = (parseInt(this.authService.getTokenKey('numeroEmpresa')));\n\t\tper.aliasRol = (this.authService.getTokenKey('aliasRol'));\n\t\t//FIXME: pendiente popup periodo pago\n\t\t//getBean(PopUpPeriodoPago.class).buscar('#{actosVacacionesBean.periodoSelecionado}', per, Constantes.COMPENSACION_TEXTO);\n\n\t}\n\n\tpublic aplicarProcesoLiquidacion() {\n\t\tif (this.entraProcesoLiquidacion) {\n\t\t\tthis.realizarProcesoLiquidacion();\n\t\t} else {\n\t\t\tthis.regresarActoAdmin();\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tpublic validarPeriodos(actos: ActoAusenciaModel[]) {\n\t\tfor (let ac of actos) {\n\t\t\tif (ac.disfrute + ac.compensada > ac.pendienteBase) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tpublic cabecera( contrato, empresa) {\n\t\t\n\t}\n\n\tpublic async crearFormularioListaParaCampo() {\n\t\tvar tieneFormaPago: boolean = false;\n\t\tvar campos2 = await this.parametroFormatoWebService.listaVacaciones().toPromise();\n\t\tthis.formularioDinamico?.limpiar();\n\t\tthis.cargarCombos(this.actoAusenciaDTO.formato);\n\n\t\tfor (var dato of this.actoAusenciaDTO.formatoDTO.listaParaCampos) {\n\t\t\tfor (var campo of campos2) {\n\t\t\t\tif (campo.descripcion == (dato.campo.trim())) {\n\n\t\t\t\t\t// CAMBIAMOS LAS PROPIEDADES PARA SOLO VISUALIZAR LOS\n\t\t\t\t\t// QUE CUMPLAN CON DICHO CONDICION\n\t\t\t\t\tif (dato.accion == (this.parametroFormatoPipe.VISUALIZAR)) {\n\t\t\t\t\t\tcampo.editable == ('L');\n\t\t\t\t\t\tcampo.obligatorio = (false);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcampo.obligatorio = (true);\n\t\t\t\t\t}\n\t\t\t\t\t// CARGAMOS EL COMBO PARA CADA CAMPO\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\t// if(campo.descripcion == (this.parametroFormatoPipe.UNIDAD_ORIGEN)){\n\t\t\t\t\t// campo.lista = (listaUnidadDocumentoItem);\n\t\t\t\t\t// }\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.FORMA_PAGO)) {\n\t\t\t\t\t\tcampo.lista = (this.listaformaPago);\n\t\t\t\t\t\ttieneFormaPago = true;\n\t\t\t\t\t}else if (campo.descripcion == (this.parametroFormatoPipe.ANO_SERVICIO)) {\n\t\t\t\t\t\tcampo.descripcion = (this.parametroFormatoPipe.NRO_ANO_SERVICIO);\n\t\t\t\t\t\tcampo.tipo = (this.campoFormularioPipe.COMBO);\n\t\t\t\t\t\tcampo.campo = ('anioServicio');\n\t\t\t\t\t\tcampo.longitud = (4);\n\t\t\t\t\t\tcampo.lista = this.selectListActos.getListadoAnioServicio();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tcampo.descripcion = (dato.titulo != null && dato.titulo.trim() != (this.generalPipe.ESPACIO_NULO) ? dato.titulo : campo.descripcion);\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(!tieneFormaPago){\n\t\t\tthis.actoAusenciaDTO.formatoPago = this.parametroFormatoPipe.PERIODONOMINA;\n\t\t}\n\t\tthis.formularioDinamico.modificar(this.actoAusenciaDTO, true);\n\t}\n\n\tpublic async cargaListaFormularioLeglizadaYcampo() {\n\t\tvar datoDTO = new FormatoDatoModel();\n\t\tdatoDTO.formato = this.actoAusenciaDTO.formato;\n\t\tthis.listaParaCampoLegalizada = await this.actoCambioEmpleadoService.consultarListaParaCampoLegalizada({formatoDato: datoDTO}).toPromise();\n\t\t// CARGAR DATOS FORMULARIO LISTA LEGALIZADA\n\t\tawait this.crearFormularioListaParaCampo()\n\t\tawait this.crearFormularioListaLegalizada();\n\t}\n\n\tpublic async crearFormularioListaLegalizada() {\n\t\tvar campos2 = await this.parametroFormatoWebService.listaVacaciones().toPromise();\n\t\tthis.formularioDinamico.limpiar();\n\t\tthis.cargarCombos(this.actoAusenciaDTO.formato);\n\n\t\t// adicionamos al grupo1, los datos del grupo 2\n\t\tfor (let g2 of this.campos) {\n\t\t\tg2.editable == ('L');\n\t\t\tg2.obligatorio = (false);\n\t\t\t//grupo1.getCampos().add(g2);\n\t\t}\n\n\t\tfor (let dato of this.listaParaCampoLegalizada) {\n\t\t\tfor (let campo of campos2) {\n\t\t\t\tif (campo.descripcion == (dato.campo.trim())) {\n\t\t\t\t\tcampo.obligatorio = (true);\n\t\t\t\t\tif (this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION)) {\n\t\t\t\t\t\tcampo.editable == ('L');\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.TIPO_DOC)) {\n\t\t\t\t\t\tcampo.lista = (this.listaFormatoDatoDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.CEDULA_FIRMA)) {\n\t\t\t\t\t\tcampo.lista = (this.listaFirmaDocumentoItem);\n\t\t\t\t\t}\n\t\t\t\t\t// if(campo.descripcion == (this.parametroFormatoPipe.UNIDAD_ORIGEN)){\n\t\t\t\t\t// campo.lista = (listaUnidadDocumentoItem);\n\t\t\t\t\t// }\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SUCURSAL)) {\n\t\t\t\t\t\tcampo.lista = (this.listaSucursalItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.SOPORTE)) {\n\t\t\t\t\t\tcampo.lista = (this.listaSoporteItem);\n\t\t\t\t\t}\n\t\t\t\t\tif (campo.descripcion == (this.parametroFormatoPipe.FORMA_PAGO)) {\n\t\t\t\t\t\tcampo.lista = (this.listaformaPago);\n\t\t\t\t\t}\n\t\t\t\t\tthis.campos.push(campo);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.formularioDinamico.modificar(this.actoAusenciaDTO, true);\n\t}\n\n\tprivate cargarCombos(formato: number) {\n\t\tthis.actoVacacionesService.cargarCombos({formato: this.actoAusenciaDTO.formato}).subscribe(data => {\n\t\t\tthis.listaFormatoDatoDocumentoItem = data.listaFormatoDatoDocumentoItem;\n\t\t\tthis.listaFirmaDocumentoItem = data.listaFirmaDocumentoItem;\n\t\t\tthis.listaformaPago = data.listaformaPago;\n\t\t\tthis.listaSoporteItem = data.listaSoporteItem;\n\t\t\tthis.listaSucursalItem = data.listaSucursalItem;\n\t\t})\n\t\t\n\t}\n\n\tpublic async generarPdf() {\n\t\t// cada vez que se genere un proceso de combinacion el nombre de archivo\n\t\t// quedara null, en donde nos sirvara para saber si el\n\t\t// proceso de combinacion se efectuo bien, por si este se genero\n\t\t// correctamente esta variable que da con el nombre con que se genero el\n\t\t// el archivo..\n\n\t\tthis.llaveNombreArchivoProcesoCombinacion = null;\n\t\tthis.pdf = false;\n\n\t\t\n\t\t\tif (this.actoAusenciaDTO == null || this.actoAusenciaDTO.soporte == null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar listaMarcador: any[] = [];\n\t\t\tvar columnas: string[] = [];\n\t\t\tcolumnas.push('C_LLAVE');\n\t\t\tvar valores: any[] = [];\n\t\t\tvalores.push(this.actoAusenciaDTO.llave);\n\n\t\t\tvar usf = new UsuarioFormatoModel();\n\t\t\tusf.usuario = (this.authService.getTokenKey('usuario'));\n\t\t\tusf.grupo = (this.actoAusenciaDTO.grupoVincula);\n//\t\t\tusf.vincula = cion(new Integer(0));\n\t\t\tusf.tipo = ('US');\n\t\t\tusf.formato = (this.actoAusenciaDTO.formatoDTO.llave);\n\t\t\tusf = await this.generalService.queryForObject(new GeneralModel('UsuarioFormatoDTO', null, false, usf)).toPromise(); \n\t\t\tvar mostrarPdfoWord;\n\t\t\t// verificamos en que formato vamos a mostrar este acto\n\t\t\t// si en formato pdf o formato word\n\t\t\tif (usf == null || usf.informe == null) {\n\t\t\t\tmostrarPdfoWord = false;\n\t\t\t} else {\n\t\t\t\t// si es F, Mostramos pdf\n\t\t\t\t// sino, mostramos word\n\t\t\t\tmostrarPdfoWord = 'F' == usf.informe.trim();\n\t\t\t}\n\n\t\t\tthis.actoDtoPdf = await this.actoCambioEmpleadoService.generarPdf({\n\t\t\t\tcolumnas: columnas, valores: valores, listaMarcador: listaMarcador, soportePlanilla: this.actoAusenciaDTO.soporte\n\t\t\t}).toPromise();\n\t\t\t\n\t\t\tthis.rutaFisicaWord = this.actoDtoPdf.rutaWord;\n\t\t\tthis.mostrarWord = !mostrarPdfoWord;\n\t\t\tif (this.actoDtoPdf.resultado) {\n\t\t\t\tthis.ruta = this.actoDtoPdf.rutaPdf;\n\t\t\t\tthis.llaveNombreArchivoProcesoCombinacion = this.actoDtoPdf.rutaPdf;\n\t\t\t}\n\t\t\telse{\n\t\t\t\tif ( this.actoDtoPdf.mensaje != null) {\n\t\t\t\t\tthis.notificacionesService.showWarning(this.actoDtoPdf.mensaje);\n\t\t\t\t}\n\t\t\t\t/*else if (this.actoDtoPdf.getExceptionResultado() != null ) {\n\t\t\t\t\terror(this.actoDtoPdf.getExceptionResultado());\n\t\t\t\t}*/\n\t\t\t}\n\t\t\tthis.pdf = this.actoDtoPdf.resultado;\n\n\t\t\n\t}\n\n\t/*public ResourceUnion getDescargar() {\n\t\tParametroReporteAuditoria parametroReporteAuditoria=new ParametroReporteAuditoria(this.authService.getTokenKey('usuario'),this.generalService);\n\t\treturn new DescargarArchivo(parametroReporteAuditoria,this.rutaFisicaWord);\n\t}*/\n\n\tpublic setIngresarEmpleado(empleadoDTO: EmpleadoModel) {\n\t\tthis.actoAusenciaDTO.cedula = empleadoDTO.cedula;\n\t\tthis.actoAusenciaDTO.documentoEmpleado = empleadoDTO.documento;\n\t\tthis.actoAusenciaDTO.nombreEmpleado = empleadoDTO.nombreCompleto;\n\t\tthis.actoAusenciaDTO.identifica = empleadoDTO.contrato;\n\t\t//cabecera(actoAusenciaDTO.identifica,actoAusenciaDTO.getEmpresa());\n\t}\n\n\thandleEnterKey(event) {\n\t\tevent.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t}\n\t\n\t\n\tfiltrarEnter(event) {\n\t\tif (event.key === 'Enter') {\n\t\t\tvar filtroEmpleado: EmpleadoModel = new EmpleadoModel;\n\t\t\tfiltroEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'))\n\t\t\tfiltroEmpleado.documento = this.cedulaFiltro,\n\t\t\tfiltroEmpleado.soloActivos = 'L'\n\t\t\tthis.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, filtroEmpleado)).subscribe(async data => {\n\t\t\tif (data.length == 1){\n\t\t\t\tawait this.setIngresarEmpleado(data[0])\n\t\t\t} else {\n\t\t\t\tthis.inputEmpleado.openDataTable()\n\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\tasync setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.campos.forEach(async element => {\n\t\t\t\n\t\t\tif (element.tipo === 'F'){\n\t\t\t  element.valor = element.valor ? new Date(element.valor) : null;\n\t\t\t} else if (element.tipo === 'H'){\n\t\t\t  if (element.valor){\n\t\t\t\tlet listaValortemp = [];\n\t\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\t  listaValortemp.push ({label: element2, value:element2})\n\t\t\t\t})\n\t\t\t\telement.valor = listaValortemp\n\t\t\t  }\n\t\t\t} else if (element.tipo === 'P'){\n\t\t\t  this.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\t\tif (element.popup == pop.id ){\n\t\t\t\t\tconsole.log(element)\n\t\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\t\telement.popupComponent = pop.popup ;\n\t\t\t\t\telement['cargarValorPopup']  = (event) => {element.valor = event};\n\t\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\t\t  readonly: !this.formularioDinamico?.editable || element.editable == 'L',\n\t\t\t\t\t  showDialog: false,\n\t\t\t\t\t  //label: element.valor,\n\t\t\t\t\t  mostrarX: true,\n\t\t\t\t\t  campoReferencia: element.campoReferencia,\n\t\t\t\t\t  campoReferenciaDos: element.campoReferenciaDos,\n\t\t\t\t\t  onChange: (event) => element.cargarValorPopup(event),\n\t\t\t\t\t  onCambio: (event) => {\n\t\t\t\t\t\tthis.campos.forEach(campo2 => {\n\t\t\t\t\t\t\tif(campo2.campoDepende!= null){\n\t\t\t\t\t\t\t\tif(campo2.campoDepende == element.campo){\n\t\t\t\t\t\t\t\t\tcampo2.campoReferencia = event;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.setValorCampos().then(data =>{\n\t\t\t\t\t\t\tthis.formularioDinamico?.ngAfterViewInit();\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\telement.listaPopups = [];\n\t\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t\t}\n\t\t\t  });\n\t\n\t\t\t} else {\n\t\t\t\tif (typeof element.valor === \"string\") {\n\t\t\t\t\telement.valor = element.valor.trim()\n\t\t\t\t  }\n\t\t\t}\n\t\t  });\n\t\t  await this.utilsService.sleep(500)\n\t\n\t\t  this.formularioDinamico?.ngAfterViewInit();\n\t\t  this.utilsService.resizeWindowIFrame();\n\t\n\t\t  //this.formularioDinamico.campos = this.campos;\n\t  }\n\n\t  setFuncionario(event) {\n\n\t  }\n\n\t  pasoAnterior() {}\n\tpublic isEtapaElaboracion() {\n\t\treturn this.etapa == (this.parametroFormatoPipe.ETAPA_ELABORACION);\n\t}\n\n\tpublic isEtapaModificacion() {\n\t\treturn this.etapa == (this.parametroFormatoPipe.ETAPA_MODIFICAR);\n\t}\n\n\tpublic isEtapaEliminacion() {\n\t\treturn this.etapa == (this.parametroFormatoPipe.ETAPA_ELIMINACION);\n\t}\n\n\tpublic isEtapaLegalizacion() {\n\t    return this.etapa == (this.parametroFormatoPipe.ETAPA_LEGALIZACION);\n\t}\n\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n        <h1  class=\"mb-1\">{{tipoSeleccionado}} </h1>\n        \n        <button pButton pRipple (click)=\"pasoAnterior()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" \n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n    </div>\n    <app-cabecera-empleado [adicional]=\"true\" [empleado]=\"empleado\" *ngIf=\"empleado.contrato != null && parametroFormatoPipe.ORIGEN_ACTO_VACACION_EMPLEADO != deDondeVengo\"></app-cabecera-empleado>\n    <div class=\"p-fluid grid\">\n        <div class=\"field col-12 md:col-6 lg:col-6 responsivetablet\">\n            <div class=\"card pb-4\">\n                <div class=\"mb-2\">\n                    <!-- PASO 1 - DATOS CEDULA -->\n                    <p-fieldset *ngIf=\"mostrarDatosContrato && verPopupEml\">\n                        <ng-template pTemplate=\"header\">\n                            <div class=\"flex align-items-center\">\n                                <span class=\"glyphicons glyphicons-book mr-2 color-400\"></span>\n                                <span class=\"font-bold\">{{actoAusenciaDTO.formatoDTO.descripcion}} / {{accion}} - {{etapa}}</span>\n                            </div>\n                        </ng-template>\n                        <div class=\"p-fluid grid\">\n                            <!--CONTRATO-->\n                            <div class=\"col-12 md:col-12 lg:col-6 responsivetablet\">\n                                <app-input-helper-empleado-boton #inputEmpleado (onSelected)=\"setFuncionario($event)\"\n                                    [nombreInput]=\"'empleado' | translate\" [mostrarX]=\"false\"\n                                    [label]=\"empleado.nombreCompleto != null ? empleado.contrato + ' - ' + empleado.nombreCompleto : ''\" >\n                                </app-input-helper-empleado-boton>\n                            </div>\n                             \n                            <div class=\"col-12 md:col-12 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"documento\" [(ngModel)]=\"cedulaFiltro\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label>{{'cedula' | translate}}</label>\n                                </span>\n                            </div>\n\n                        </div>\n                    </p-fieldset>\n                </div>\n                <!-- PASO 2 - Datos Adicionales -->\n                <div [hidden]=\"!mostrarDatosContrato\" >\n                    <formulario-dinamico #formulario [editable]=\"true\" [campos]=\"campos\" \n                        [objeto]=\"actoAusenciaDTO\" ></formulario-dinamico>\n                </div>\n\n            </div>\n        </div>\n    </div>\n</div>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormatoModel } from '../../../models/FormatoModel';\nimport { UsuarioFormatoModel } from '../../../models/UsuarioFormatoModel';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { AuthService, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { EmpresaModel } from '../../../../compensacion/models/EmpresaModel';\nimport { DatosBasicosEmpresaModel } from '../../../../compensacion/models/DatosBasicosEmpresaModel';\nimport { DatosBasicosEmpresaCons } from '../../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { TreeNode, PrimeTemplate } from 'primeng/api';\nimport { TitleCasePipe, NgIf, NgFor, DatePipe } from '@angular/common';\nimport { FormatoService } from '../../../services/formato.service';\nimport { PopupSeleccionarDerogarComponent } from '../../../popups/popup-seleccionar-derogar/popup-seleccionar-derogar.component';\nimport { ActoCambioPuestoComponent } from '../acto-cambio-puesto/acto-cambio-puesto.component';\nimport { ActosIngresoComponent } from '../actos-ingreso/actos-ingreso.component';\nimport { ActosProrrogaTemporalComponent } from '../actos-prorroga-temporal/actos-prorroga-temporal.component';\nimport { ActoTrasladoComponent } from '../acto-traslado/acto-traslado.component';\nimport { ActosAusenciaTerminacionComponent } from '../actos-ausencia-terminacion/actos-ausencia-terminacion.component';\nimport { ActosEspecialesComponent } from '../actos-especiales/actos-especiales.component';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TreeModule } from 'primeng/tree';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ActosMovPlantaCreaEliminaComponent } from '../actos-mov-planta-crea-elimina/actos-mov-planta-crea-elimina.component';\nimport { ActosMovPlantaLiberaTrasladaComponent } from '../actos-mov-planta-libera-traslada/actos-mov-planta-libera-traslada.component';\nimport { ActosVacacionesComponent } from '../actos-vacaciones/actos-vacaciones.component';\n\n@Component({\n    selector: 'app-actos-administrativos',\n    templateUrl: './actos-administrativos.page.html',\n    styleUrls: ['./actos-administrativos.page.scss'],\n    standalone: true,\n    imports: [NgIf, NgFor, ButtonDirective, Ripple, TreeModule, PopupSeleccionarDerogarComponent, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, ActosIngresoComponent, ActoCambioPuestoComponent, ActosProrrogaTemporalComponent, ActoTrasladoComponent, ActosAusenciaTerminacionComponent, ActosEspecialesComponent, DatePipe, TranslateModule, ParametroFormatoPipe, ActosMovPlantaCreaEliminaComponent, ActosMovPlantaLiberaTrasladaComponent, GeneralPipe, ActosVacacionesComponent],\n    providers: [TitleCasePipe]\n})\nexport class ActosAdministrativosPage implements OnInit {\n\n  public usuarioFormatoDTO: UsuarioFormatoModel;\n\n\tpublic listaEstado: UsuarioFormatoModel[]=[];\n\tpublic listaGrupo: UsuarioFormatoModel[]=[];\n\tpublic listaPendiente: UsuarioFormatoModel[];\n\tpublic listaPendienteOriginal: UsuarioFormatoModel[];\n\tpublic listaFormato: UsuarioFormatoModel[];\n\tpublic listaActosAmostrar: FormatoModel[] = [];\n\n\tpublic formatoDTO: FormatoModel;\n\n\tpublic datos: boolean;\n\tpublic datosFormato: boolean;\n\tpublic datosMenu: boolean;\n\tpublic mostrar: boolean;\n\n\tpublic arbolGrupo: TreeNode[];\n\tpublic arbolFormato: TreeNode[];\n\n\tpublic imagen: string;\n\tpublic temporal: string;\n\tpublic actoSelecionado: string;\n\tpublic nombreGrupo: string;\n\tpublic tipoFormatoAtrabajar: string;\n\tpublic tipoActo: string;\n\tpublic descripcionGrupo: string;\n\n\tpublic grupo: number;\n\tpublic estadoFiltro: string;\n\n  public mapaAcciones;\n\n\tpublic busquedaFormato: string;\n\tpublic busquedaGrupo: string;\n\n  public empresaDTO: EmpresaModel;\n  public datosBasicosEmpresaDTO: DatosBasicosEmpresaModel;\n  public vistaVisualizar: string;\n  public tipoSeleccionado: string=null;\n  public accionARealizar: string=null;\n  public verSeleccionar: boolean = false;\n\n  public formatoSeleccionado;\n  public directo: boolean = false;\n  public accionesTrabajar: string;\n//  actoAusenciaComponent: any\n//  actosEspecialesComponent: any\n  @ViewChild('derogar') popupSeleccionarDerogar: PopupSeleccionarDerogarComponent;\n  @ViewChild(ActoCambioPuestoComponent) actoCambioPuestoComponent: ActoCambioPuestoComponent;\n  @ViewChild(ActosIngresoComponent) actosIngresoComponent: ActosIngresoComponent;\n  @ViewChild(ActosProrrogaTemporalComponent) actoProrrogaTemporalComponent: ActosProrrogaTemporalComponent;\n  @ViewChild(ActoTrasladoComponent) actoTrasladoComponent: ActoTrasladoComponent;\n\n  @ViewChild(ActosAusenciaTerminacionComponent) actoAusenciaComponent: ActosAusenciaTerminacionComponent;\n  @ViewChild(ActosEspecialesComponent) actosEspecialesComponent: ActosEspecialesComponent;\n  @ViewChild(ActosMovPlantaCreaEliminaComponent) actosMovCreaEliminaComponent: ActosMovPlantaCreaEliminaComponent;\n  @ViewChild(ActosMovPlantaLiberaTrasladaComponent) actosMovLiberaTrasladaComponent: ActosMovPlantaLiberaTrasladaComponent;\n  @ViewChild(ActosVacacionesComponent) actosVacacionesComponent: ActosVacacionesComponent;\n\tpublic mostrarTabla: boolean;\n\n  constructor(public parametroFormatoPipe: ParametroFormatoPipe,\n              private authService: AuthService,\n              private menuService: MenuService,\n              private translateService: TranslateService,\n              public utilsService: UtilsService,\n              private notificacionesService: ToastService,\n              private datosBasicosEmpresaPipe: DatosBasicosEmpresaCons,\n              private generalService: GeneralService,\n              private generalPipe: GeneralPipe,\n              private formatoService: FormatoService,\n              private titleCasePipe: TitleCasePipe\n              ) { }\n\n  ngOnInit(): void {\n    this.mapaAcciones = this.parametroFormatoPipe.ACCION;\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('actosadministrativos')}]) \n    //BORRAR\n    //this.grupo = 1;\n    //this.seleccionaFormato(336, null).then(data =>{})\n    //return;\n    this.listaEstado = [];\n    this.listaGrupo = [];\n    this.listaPendiente = [];\n    this.listaPendienteOriginal = [];\n    this.listaFormato = [];\n    this.formatoDTO = new FormatoModel();\n    this.usuarioFormatoDTO = new UsuarioFormatoModel();\n    this.mostrar = true;\n    this.temporal = null;\n    this.grupo = 0;\n    this.directo = false;\n    this.accionesTrabajar = null;\n    let formatoDTO = new FormatoModel();\n    formatoDTO.usuario = this.authService.getTokenKey('usuario');\n    var menuPadre = {label: 'Actos', items: []}\n    this.generalService.queryForList(new GeneralModel('FormatoDTO', 'Formato.consultarTiposActosAdministrativosAmostrarPorUsuario', false, formatoDTO)).subscribe(data =>  {\n      this.listaActosAmostrar = data;\n      this.listaActosAmostrar = this.listaActosAmostrar.filter(data => data.tipo != 'AU')\n      if (this.listaActosAmostrar.length > 0) {\n        this.seleccionarTipo(this.listaActosAmostrar[0])\n      }\n      this.utilsService.resizeWindowIFrame();\n    })\n    \n    this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))})).subscribe(data => {\n      this.empresaDTO = data;\n      this.utilsService.resizeWindowIFrame();\n    })\n    this.datosBasicosEmpresaDTO = new DatosBasicosEmpresaModel();\n    this.datosBasicosEmpresaDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, this.datosBasicosEmpresaDTO)).subscribe(data => {\n      this.datosBasicosEmpresaDTO = data;\n    })\n    \n    this.tipoFormatoAtrabajar = '';\n    this.actoSelecionado = this.translateService.instant('seleccione') + ' ' + this.translateService.instant('acto')\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async traerDatos(tipoAtrabajar: string) {\n    this.usuarioFormatoDTO = new UsuarioFormatoModel();\n    this.usuarioFormatoDTO.usuario = this.authService.getTokenKey('usuario');\n    this.usuarioFormatoDTO.tipo = tipoAtrabajar;\n    this.usuarioFormatoDTO.setColocarLista(this.accionesTrabajar);\n    this.listaEstado = await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerEstado', false, this.usuarioFormatoDTO)).toPromise()\n    if (this.listaEstado.length == 0) {\n      this.notificacionesService.showError('No existen registros asociados a este usuario');\n    }\n    for(let dto of this.listaEstado){\n      dto.sdescripcion = dto.sdescripcion.trim();\n      if (dto.sdescripcion == 'Elaborar') {\n        dto.estilo = 'glyphicons glyphicons-disk-save';\n      } else if (dto.sdescripcion == 'Eliminar') {\n        dto.estilo = 'glyphicons glyphicons-remove';\n      } else if (dto.sdescripcion == 'Modificar') {\n        dto.estilo = 'glyphicons glyphicons-edit';\n      } else if (dto.sdescripcion == 'Legalizar') {\n        dto.estilo = 'glyphicons glyphicons-check';\n      }\n    }\n    await this.utilsService.sleep(300)\n    this.utilsService.resizeWindowIFrame();\n    \n  }\n\n  \t/**\n\t * Listener del evento de seleccion de la accion que se quiere realizar (Elaborar, Modificar, Eliminar, Legalizar) \n\t * @param event Evento que encapsula la accion a realizar\n\t */\n\tasync recibirDetalle(event) {\n    this.mostrarTabla = false;\n    this.nombreGrupo = null;\n    this.arbolGrupo = [];\n    var descripcion = event.sdescripcion;\n    this.accionARealizar = event.sdescripcion;\n    var usuarioFormatoDTO = new UsuarioFormatoModel();\n    usuarioFormatoDTO.sdescripcion = descripcion;\n    this.temporal = usuarioFormatoDTO.sdescripcion;\n    await this.traerEstado(this.temporal);\n\t}\n\n  /**\n\t * Carga el listado de acciones (estados) que se pueden realizar para los actos administrativo del tipo seleccionado\n\t * @param estado El estado/accion seleccionado\n\t */\n\tasync traerEstado(estado) {\n    this.estadoFiltro = estado;\n    if (estado == null) {\n      return;\n    }\n    if (estado == 'Elaborar') {\n      await this.traerGrupo();\n      //cargarIdAyudasNuevo();\n    } else {\n      await this.traerListado();\n      this.mostrarTabla = true;\n    }\n\t}\n\n  async traerListado() {\n    this.vistaVisualizar = null;\n    if (this.estadoFiltro == 'Elaborar') {\n      return;\n    }\n\n    if (this.estadoFiltro != null) {\n      //cargarIdAyudasDiferenteNuevo();\n    } else {\n      //cambiarIdAyuda(null);\n    }\n    this.usuarioFormatoDTO = new UsuarioFormatoModel();\n    this.usuarioFormatoDTO.usuario = this.authService.getTokenKey('usuario')\n    this.usuarioFormatoDTO.tipo = this.tipoFormatoAtrabajar;\n    this.usuarioFormatoDTO.empresa = this.empresaDTO.empresa;\n    this.usuarioFormatoDTO.sdescripcion = this.estadoFiltro;\n    if (this.datosBasicosEmpresaDTO.tipoFiltro != null) {\n      this.usuarioFormatoDTO.filtroUnidad = (this.tipoFiltro(this.datosBasicosEmpresaDTO.tipoFiltro, this.datosBasicosEmpresaPipe.TIPO_FILTRO_ZONA_UNIDAD));\n    }\n    this.usuarioFormatoDTO.rolUsuario = this.authService.getTokenKey('aliasRol');\n    this.listaPendienteOriginal = await this.traerPendiente(this.usuarioFormatoDTO, this.tipoFormatoAtrabajar);\n    this.listaPendiente = [];\n    this.listaPendiente = this.listaPendiente.concat(this.listaPendienteOriginal);\n    if (this.listaPendiente.length == 0) {\n      this.notificacionesService.showInfo('No existen datos');\n    }\n  }\n\n  async traerPendiente(usuarioFormatoDTO: UsuarioFormatoModel, tipoFormatoAtrabajar: string) {\n\t\tif(tipoFormatoAtrabajar == this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO){\n\t\t\treturn await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerPendienteCE', false, usuarioFormatoDTO)).toPromise();\n\t\t}\n\t\telse if(tipoFormatoAtrabajar == this.parametroFormatoPipe.PARAMETRO_ACTO_VACACION  || \n      tipoFormatoAtrabajar == this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO || \n      tipoFormatoAtrabajar == this.parametroFormatoPipe.PARAMETRO_ACTO_LICENCIA_COMISIONES){\n\t\t\tusuarioFormatoDTO.tipo = tipoFormatoAtrabajar;\n\t\t\treturn await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerPendienteVA', false, usuarioFormatoDTO)).toPromise();\n\t\t}\n\t\telse if(tipoFormatoAtrabajar == this.parametroFormatoPipe.PARAMETRO_ACTO_FORMATO_ESPECIAL){\n\t\t\tusuarioFormatoDTO.tipo == tipoFormatoAtrabajar;\n\t\t\treturn await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerPendienteES', false, usuarioFormatoDTO)).toPromise();\n\t\t}\n\t\telse if(tipoFormatoAtrabajar == this.parametroFormatoPipe.PARAMETRO_ACTO_MOVIMIENTO_PLANTA){\n\t\t\tusuarioFormatoDTO.tipo == tipoFormatoAtrabajar;\n\t\t\treturn await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerPendienteMP', false, usuarioFormatoDTO)).toPromise();\n\t\t}\n\t\treturn [];\n\t}\n\n  tipoFiltro(tipoFiltro: string, constanteFiltro: string) {\n\t\tvar tiposFiltros: string[] = tipoFiltro.split(',');\n\t\tfor (let i = 0; i < tiposFiltros.length; i++) {\n      let filtro = tiposFiltros[i]  \n\t\t\tif (filtro.trim() == constanteFiltro) {\n\t\t\t\treturn 'S';\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n  async traerGrupo() {\n    this.listaFormato = null;\n    //Carga los grupos de formatos\n    this.usuarioFormatoDTO = new UsuarioFormatoModel();\n    this.usuarioFormatoDTO.usuario = this.authService.getTokenKey('usuario');\n    this.usuarioFormatoDTO.tipo = this.tipoFormatoAtrabajar;\n    this.usuarioFormatoDTO.busquedaGrupo = (this.utilsService.isNotBlank(this.busquedaGrupo) ? '%' + this.busquedaGrupo + '%' : null);\n    this.usuarioFormatoDTO.modo = this.empresaDTO.modoCompensacion;\n    this.usuarioFormatoDTO.setColocarLista(this.accionesTrabajar);\n    this.listaGrupo = await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerGrupo', false, this.usuarioFormatoDTO)).toPromise();\n    if (this.listaGrupo.length == 0 && this.utilsService.isBlank(this.busquedaGrupo)) {\n      this.notificacionesService.showInfo('No Existen Datos de Grupo');\n      return;\n    }\n    \n    //Construye el arbol con los grupos existentes\n    if (this.listaGrupo.length > 1 || ( (this.listaGrupo.length==1 || this.listaGrupo.length == 0))) {\n      var grupo = new UsuarioFormatoModel();\n      grupo.descripcionGrupo = 'Grupos de Actos Administrativos';\n      grupo.grupo = 0;\n      var object = {\n        text: grupo.descripcionGrupo,\n        usuarioFormatoDTO: grupo\n      }\n      var padreGrupo:TreeNode = {};\n      padreGrupo.label = object.text\n      padreGrupo.data = object;\n      padreGrupo.expanded = true;\n      padreGrupo.icon =  'pi pi-folder'\n      padreGrupo.key = this.utilsService.generarLlave();\n      padreGrupo.children = [];\n      if (!this.arbolGrupo){\n        this.arbolGrupo = []\n      }\n      this.construyeHijos(padreGrupo, '.', this.listaGrupo);\n      //this.arbolGrupo.push(padreGrupo)\n      this.arbolGrupo = padreGrupo.children\n    }\n  }\n\n  construyeHijos(padre: TreeNode, grupo: string, lista: UsuarioFormatoModel[]) {\n\t\tlista.forEach(async temporal => {\n        var listFormato = await this.traerFormato(temporal.grupo, temporal.descripcionGrupo, 'ORIGINAL')\n        var padre2: TreeNode = {};\n          padre2.key = this.utilsService.generarLlave();\n          padre2.label =this.titleCasePipe.transform( temporal.descripcionGrupo);\n          padre2.data = temporal;\n          padre2.expanded = true\n          padre2.icon =  'pi pi-folder'\n          padre2.children = listFormato.length > 0 ? listFormato : null;\n          if (!padre.children){\n            padre.children = []\n          }\n          padre.children.push(padre2);\n      })\n\t\treturn;\n\t}\n\n\n  /**\n\t * Carga el listado de formatos de actos administrativos clasificados dentro del grupo indicado\n\t * @param grupo El id del grupo cuyo listado de formatos se quiere obtener\n\t * @param descripcionGrupo La descripcion del grupo cuyo listado de formatos se quiere obtener\n\t */\n\tasync traerFormato(grupo: number, descripcionGrupo: string, proceso: string) {\n    this.usuarioFormatoDTO = new UsuarioFormatoModel();\n    this.usuarioFormatoDTO.usuario = this.authService.getTokenKey('usuario');\n    this.usuarioFormatoDTO.tipo = this.tipoFormatoAtrabajar;\n    this.usuarioFormatoDTO.setColocarLista(this.accionesTrabajar);\n    this.usuarioFormatoDTO.grupo = grupo;\n    this.usuarioFormatoDTO.descripcionGrupo = descripcionGrupo;\n    this.usuarioFormatoDTO.busquedaFormato = this.utilsService.isNotBlank(this.busquedaFormato) ? '%' + this.busquedaFormato + '%' : null;\n    //this.descripcionGrupo = descripcionGrupo;\n    this.listaFormato = await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerFormato', false, this.usuarioFormatoDTO)).toPromise()\n    var lista: TreeNode[] = []\n    if (proceso == 'DEROGAR') {\n\t\t\tvar noExiste: boolean = true;\n\t\t\tfor (let i = 0; i < this.listaFormato.length; i++){\n        let formatoTemporal = this.listaFormato[i]\n\t\t\t\tif (formatoTemporal.postLegalizaActo == 'D' || formatoTemporal.postLegalizaActo == 'A') {\n\t\t\t\t\tnoExiste = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (noExiste) {\n\t\t\t\t//return;\n\t\t\t}\n\t\t\t//formato.descripcionFormato = 'Derogar';\n\t\t} else {\n\t\t\t//formato.descripcionFormato = 'Original';\n\t\t}\n    await this.listaFormato.forEach(data => {\n      data.proceso = proceso;\n      let nodo: TreeNode = {}\n      nodo.label = this.titleCasePipe.transform(data.descripcionFormato);\n      nodo.data = data;\n      nodo.key = this.utilsService.generarLlave()\n      nodo.icon = 'pi pi-file'\n      \n      lista.push(nodo);\n    })\n    return lista;\n  }\n\n  construyeHijosProceso(lista: UsuarioFormatoModel[], proceso: string) {\n\t\tvar formato = new UsuarioFormatoModel();\n\t\tif (proceso == 'DEROGAR') {\n\t\t\tvar noExiste: boolean = true;\n\t\t\tfor (let i = 0; i < lista.length; i++){\n        let formatoTemporal = lista[i]\n\t\t\t\tif (formatoTemporal.postLegalizaActo == 'D' || formatoTemporal.postLegalizaActo == 'A') {\n\t\t\t\t\tnoExiste = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (noExiste) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tformato.descripcionFormato = 'Derogar';\n\t\t} else {\n\t\t\tformato.descripcionFormato = 'Original';\n\t\t}\n\t\t\n\t\tformato.formato = this.grupo;\n\n\t\tvar padre: TreeNode = null;\n\t\tpadre = this.addNodeFormato(null, formato);\n    padre.label = 'Formato'\n    padre.expanded = true;\n\t\t//if (!this.arbolFormato){\n      this.arbolFormato = []\n    //}\n   \n\t\tlista.forEach(temporal => {\n\t\t\ttemporal.proceso = proceso;\n\t\t\t//this.addNodeFormato(this.arbolFormato, temporal);\n      this.addNodeFormato(padre, temporal);\n\t\t})\n    this.arbolFormato.push(padre);\n\t\treturn;\n\t}\n\n  addNodeFormato(parent: TreeNode, formato: UsuarioFormatoModel) {\n\t\tvar node: TreeNode = {};\n\t\tvar object = {\n      text: this.utilsService.isNotBlank(formato.descripcionFormato) ? formato.descripcionFormato.toLowerCase() : formato.descripcionFormato,\n      usuarioFormatoDTO: formato\n    }\n\t\t//node.setUserObject(object);\n\t\tnode.label =this.titleCasePipe.transform( object.text)\n    node.data = object;\n\n//\t\t((GrupoUserObject) node.getUserObject()).setLeaf(true);\n\t\tif (parent != null) {\n        if (!parent.children){\n          parent.children = []\n        }\n        parent.children.push(node);\n      \n    }\n\t\treturn node;\n  }\n\n  seleccionarTipo(event) {\n\t\tvar tipo = event.tipo;\n    this.tipoSeleccionado = this.parametroFormatoPipe.transform(event.tipo, ['actosAdminEml']);\n\t\tvar formato = new FormatoModel();\n\t\tformato.tipo = tipo;\n\t\t\n\t\tif (formato != null) {\n\t\t\tthis.tipoFormatoAtrabajar = formato.tipo;\n\t\t\tthis.traerDatos(formato.tipo).then(data => {\n        this.actoSelecionado = this.translateService.instant('actualmente') + ' ' + this.translateService.instant('esta') + ' '\n            + this.translateService.instant('trabajando') + ' ' + this.translateService.instant('con') + ':' + ' (  '\n            + this.parametroFormatoPipe.transform(formato.tipo, ['imgAdminEml'])[0].nombre + '  )';\n        this.datos = false;\n        this.datosFormato = false;\n        this.listaPendiente =[];\n        this.listaPendienteOriginal =[];\n        this.temporal = null;\n        if (this.listaEstado.length > 0) {\n          this.recibirDetalle(this.listaEstado[0]).then(data2=> {})\n        }\n      })\n\t\t}\n  }\n \n\n  detalleFormato(event) {\n    this.formatoSeleccionado = event.node;\n    this.detalleFormatoAction().then(data => {});\n  }\n\n  async detalleFormatoAction(){\n    if (!this.formatoSeleccionado.data.descripcionFormato){\n      this.formatoSeleccionado.expanded = !this.formatoSeleccionado.expanded \n      return;\n    }\n    this.usuarioFormatoDTO = new UsuarioFormatoModel();\n    this.usuarioFormatoDTO = this.formatoSeleccionado.data;\n    if (this.usuarioFormatoDTO.proceso == null) {\n      return;\n    }\n    this.grupo = this.usuarioFormatoDTO.grupo;\n    this.descripcionGrupo = this.formatoSeleccionado.parent.label;\n    var usuarioFormato: UsuarioFormatoModel = this.usuarioFormatoDTO;\n    usuarioFormato.grupo = this.usuarioFormatoDTO.grupo;\n    usuarioFormato.usuario = this.authService.getTokenKey('usuario');\n    var listUsuarioFormatoDTO: UsuarioFormatoModel[] = await this.generalService.queryForList(new GeneralModel('UsuarioFormatoDTO', null, false, usuarioFormato)).toPromise()\n    if (listUsuarioFormatoDTO.length == 0) {\n      return;\n    }\n    usuarioFormato = listUsuarioFormatoDTO[0];\n    // en este proceso contiene si se levanta popup para seleccionar si\n    // elabora o derogar\n    var acciones='';\n    if ('S' == usuarioFormato.derogado) {\n      acciones=this.parametroFormatoPipe.DEROGAR;\n    }\n    if ('S' == usuarioFormato.elaborado ) {\n      acciones=acciones+this.parametroFormatoPipe.ELABORAR;\n    }\n    if ('S' == usuarioFormato.modificar ) {\n      acciones=acciones+this.parametroFormatoPipe.CORREGIR;\n    }\n    if ( acciones.length > 1) {\n      this.verSeleccionar = true;\n      await this.utilsService.sleep(100)\n      this.popupSeleccionarDerogar.inicializar(this.usuarioFormatoDTO.formato, acciones);\n      //getBean(PopupSeleccionDerogarBean.class).inicializar(this.usuarioFormatoDTO.getFormato(), acciones);\n    }\n    else if ('S' == usuarioFormato.derogado ) {\n      //mostrarPopupDerogar(this.usuarioFormatoDTO.getFormato(),ParametroFormatoCons.DEROGAR);\n    }\n    else if ('S' == usuarioFormato.elaborado ) {\n      this.seleccionaFormato(this.usuarioFormatoDTO.formato,null).then(data =>{});\n    }\n    else if ('S' == usuarioFormato.modificar ) {\n      //mostrarPopupDerogar(this.usuarioFormatoDTO.formato, this.parametroFormatoPipe.CORREGIR);\n    }\n  }\n\n  async seleccionaFormato(llaveFormato: number, correcionDTO: any) {\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    var formato = await this.formatoService.traerFormato({formato: llaveFormato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('actosadministrativos'), command: (event) => {this.regresar()}}, { label: this.translateService.instant('detalle') + ' ' + this.translateService.instant('actosadministrativos')}]) \n\n   if (formato.actoIngreso) {\n      this.vistaVisualizar = 'ir_acto_ingreso';\n      await sleep(1100)\n      await this.actosIngresoComponent.elaborar(0, formato.llave, this.grupo, this.descripcionGrupo, correcionDTO);\n      return;\n    }\n    if (formato.actoTraslado) {\n      this.vistaVisualizar = 'ir_acto_traslado';\n      await sleep(1100)\n      await this.actoTrasladoComponent.elaborar(parseInt(this.authService.getTokenKey('numeroEmpresa')), 0, formato.llave, this.grupo, this.descripcionGrupo, correcionDTO);\n      return;\n    }\n    if (formato.actoCambioPuesto) {\n      this.vistaVisualizar = 'ir_acto_cambio_puesto';\n      await sleep(1100)\n      this.actoCambioPuestoComponent.elaborar(parseInt(this.authService.getTokenKey('numeroEmpresa')), 0, formato.llave, this.grupo,this.descripcionGrupo, correcionDTO);\n      //ActoCambioPuestoBean actoCambioPuestoBean = (ActoCambioPuestoBean) FacesUtils.getBean('actoCambioPuestoBean');\n      //actoCambioPuestoBean.elaborar(parseInt(this.authService.getTokenKey('numeroEmpresa')), new BigDecimal(0), formato.llave, grupo,descripcionGrupo, (ActoCambioEmpleadoDTO) correcionDTO);\n      return;\n    } \n    if (formato.actoProrroga) {\n      this.vistaVisualizar = 'ir_acto_prorroga';\n      await sleep(1100)\n      this.actoProrrogaTemporalComponent.elaborar(parseInt(this.authService.getTokenKey('numeroEmpresa')), 0, formato.llave, this.grupo,this.descripcionGrupo, correcionDTO);\n      return;\n    }\n    if (formato.actoVacaciones) {\n      this.vistaVisualizar = 'ir_acto_vaciones';\n      setTimeout(async () => {\n        this.actosVacacionesComponent.nuevo(0, formato.llave, this.grupo);\n        this.actosVacacionesComponent.descripcionGrupo = this.descripcionGrupo;\n      }, 0);\n      \n      return;\n    }\n    /*if (formato.isActoVacacionesInterrupcion()) {\n      this.vistaVisualizar = 'ir_acto_vaciones_interrupcion');\n      ActoVacacionInterrupcionBean actoVacacionInterrupcionBean = (ActoVacacionInterrupcionBean) FacesUtils.getBean('actoVacacionInterrupcionBean');\n      actoVacacionInterrupcionBean.nuevo(new BigDecimal(0), formato.llave, grupo);\n      actoVacacionInterrupcionBean.setDescripcionGrupo(descripcionGrupo);\n      return;\n    }*/\n    if (formato.terminacionContrato || formato.licenciasComision || formato.licencias) {\n      this.vistaVisualizar = 'ir_acto_terminacion_contrato';\n      await sleep(1100);\n      this.actoAusenciaComponent.elaborar(parseInt(this.authService.getTokenKey('numeroEmpresa')), formato.llave, this.grupo, this.descripcionGrupo, correcionDTO);\n      return;\n    }\n    if (formato.especial) {\n      this.vistaVisualizar = 'ir_acto_especial';\n      await sleep(1100);\n      await this.actosEspecialesComponent.elaborar(0, formato.llave, this.grupo);\n      this.actosEspecialesComponent.descripcionGrupo = this.descripcionGrupo;\n      return;\n    }\n    if (formato.movimientoPlanta) {\n      this.vistaVisualizar = 'ir_acto_mov_planta';\n      await sleep(1100);\n      this.actosMovCreaEliminaComponent.elaborar(parseInt(this.authService.getTokenKey('numeroEmpresa')), formato.llave, this.grupo, formato.accion.trim(), correcionDTO);\n      this.actosMovCreaEliminaComponent.descripcionGrupo = this.descripcionGrupo;\n      return;\n    }\n    if (formato.movimientoPlantaLiberaTraslada || formato.movimientoPlantaReclasificacionPuesto) {\n      this.vistaVisualizar = 'ir_acto_mov_planta_libera_traslada';\n      await sleep(1100);\n      this.actosMovLiberaTrasladaComponent.elaborar(parseInt(this.authService.getTokenKey('numeroEmpresa')), formato.llave, this.grupo, formato.accion.trim(), correcionDTO);\n      this.actosMovLiberaTrasladaComponent.descripcionGrupo = this.descripcionGrupo;\n      return;\n    }\n    /*\n    if(formato.isActoVacacionesMasivasPM() || formato.isActoVacacionesMasivasPF() || formato.isActoVacacionesMasivasIM() || formato.isActoVacacionesMasivasNM()) {\n      this.vistaVisualizar = 'ir_acto_vacaciones_masivas');\n      ActosVacacionesMasivasBean actosVacacionesMasivasBean = getBean(ActosVacacionesMasivasBean.class);\n      actosVacacionesMasivasBean.nuevo(formato.llave, grupo);\n    }*/\n\n    else {\n      this.notificacionesService.showInfo('TIPO DE FORMATO NO HABILITADO..');\n    }\n  }\n\n  isOriginal(postLegalizaActo): boolean {\n    if (!postLegalizaActo) {\n      return true;\n    }\n    return postLegalizaActo == '.';\n  }\n\n  isDerogar(postLegalizaActo): boolean {\n    return postLegalizaActo == this.parametroFormatoPipe.DEROGAR;\n  }\n\n  isCorregir(postLegalizaActo): boolean {\n    return postLegalizaActo == this.parametroFormatoPipe.CORREGIR;\n  }\n\n  async traerActo(event){\n    this.usuarioFormatoDTO = event.data;\n\n\t\tvar dto = await this.formatoService.traerFormato({formato: this.usuarioFormatoDTO.formato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\n    if (this.temporal == null || this.isElaborar()) {\n      return;\n    }\n\n    //ACTO INGRESO\n    if (dto.actoIngreso) {\n      if (this.usuarioFormatoDTO.actoCambioEmpActo != null) {\n\n        if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo) || this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n          this.vistaVisualizar = (\"ir_acto_ingreso\");\n          await this.utilsService.sleep(1100)\n          if (this.isModificar()) {\n            await this.actosIngresoComponent.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n          } else if (this.isEliminar()) {\n            await this.actosIngresoComponent.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n          } else if (this.isLegalizar()) {\n            await this.actosIngresoComponent.legalizacion(this.usuarioFormatoDTO.actoCambioEmpActo);\n          }\n        }\n        // if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n        //   this.vistaVisualizar = (\"ir_acto_derogacion_cambio_empleado\");\n        //   if (this.isModificar()) {\n        //     actoDerogacionIngresoBean.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        //   } else if (this.isEliminar()) {\n        //     actoDerogacionIngresoBean.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        //   } else if (this.isLegalizar()) {\n        //     actoDerogacionIngresoBean.legalizacion(this.usuarioFormatoDTO.actoCambioEmpActo);\n        //   }\n        // }\n        return;\n      }\n    }\n    \n    //ACTO TRASLADO\n    if (dto.actoTraslado) {\n      if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo) || this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n        this.vistaVisualizar = (\"ir_acto_traslado\");\n        await this.utilsService.sleep(1100)\n        if (this.isModificar()) {\n          await this.actoTrasladoComponent.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        } else if (this.isEliminar()) {\n          await this.actoTrasladoComponent.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        } else if (this.isLegalizar()) {\n          await this.actoTrasladoComponent.legalizacion(this.usuarioFormatoDTO.actoCambioEmpActo);\n        }\n      }\n      // if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n      //   this.vistaVisualizar = (\"ir_acto_derogacion_cambio_empleado\");\n      //   if (this.isModificar()) {\n      //     actoDerogacionIngresoBean.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   } else if (this.isEliminar()) {\n      //     actoDerogacionIngresoBean.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   } else if (this.isLegalizar()) {\n      //     actoDerogacionIngresoBean.legalizacion(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   }\n      // }\n      return;\n    }\n    \n    //ACTO CAMBIO PUESTO\n    if (dto.actoCambioPuesto) {\n      if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo) || this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n        this.vistaVisualizar = (\"ir_acto_cambio_puesto\");\n        await this.utilsService.sleep(1100)\n        if (this.isModificar()) {\n          await this.actoCambioPuestoComponent.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        } else if (this.isEliminar()) {\n          await this.actoCambioPuestoComponent.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n          this.actoCambioPuestoComponent.validarCambioAnterior();\n        } else if (this.isLegalizar()) {\n          await this.actoCambioPuestoComponent.legalizacion(this.usuarioFormatoDTO.actoCambioEmpActo);\n          this.actoCambioPuestoComponent.validarCambioAnterior();\n        }\n      }\n      // if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n      //   this.vistaVisualizar = (\"ir_acto_derogacion_cambio_empleado\");\n      //   if (this.isModificar()) {\n      //     actoDerogacionIngresoBean.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   } else if (this.isEliminar()) {\n      //     actoDerogacionIngresoBean.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   } else if (this.isLegalizar()) {\n      //     actoDerogacionIngresoBean.legalizacion(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   }\n      // }\n      return;\n    }\n    \n    //ACTO PRORROGA\n    if (dto.actoProrroga) {\n      if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo) || this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n        this.vistaVisualizar = (\"ir_acto_prorroga\");\n        await this.utilsService.sleep(1100)\n        if (this.isModificar()) {\n          await this.actoProrrogaTemporalComponent.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        } else if (this.isEliminar()) {\n          await this.actoProrrogaTemporalComponent.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        } else if (this.isLegalizar()) {\n          await this.actoProrrogaTemporalComponent.legalizar(this.usuarioFormatoDTO.actoCambioEmpActo);\n        }\n      }\n      // if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n      //   this.vistaVisualizar = (\"ir_acto_derogacion_cambio_empleado\");\n      //   if (this.isModificar()) {\n      //     actoDerogacionIngresoBean.modificar(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   } else if (this.isEliminar()) {\n      //     actoDerogacionIngresoBean.eliminar(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   } else if (this.isLegalizar()) {\n      //     actoDerogacionIngresoBean.legalizacion(this.usuarioFormatoDTO.actoCambioEmpActo);\n      //   }\n      // }\n      return;\n    }\n    \n    // //ACTO VACACIONES\n    // if (dto.isActoVacaciones()) {\n    //   if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_vaciones\");\n    //     if (this.isModificar()) {\n    //       actosVacacionesBean.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isEliminar()) {\n    //       actosVacacionesBean.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isLegalizar()) {\n    //       actosVacacionesBean.legalizar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     }\n    //   }\n    //   if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_derogacion_ausencia\");\n    //     if (this.isModificar()) {\n    //       actoDerogacionAusenciaBean.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isEliminar()) {\n    //       actoDerogacionAusenciaBean.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isLegalizar()) {\n    //       actoDerogacionAusenciaBean.legalizacion(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     }\n    //   }\n    //   return;\n    // }\n    \n    // //ACTO VACACIONES INTERRUPCION\n    // if (dto.isActoVacacionesInterrupcion()) {\n    //   if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_vaciones_interrupcion\");\n    //     if (this.isModificar()) {\n    //       actoVacacionInterrupcionBean.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isEliminar()) {\n    //       actoVacacionInterrupcionBean.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isLegalizar()) {\n    //       actoVacacionInterrupcionBean.legalizacion(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     }\n    //   }\n    //   if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_derogacion_ausencia\");\n    //     if (this.isModificar()) {\n    //       actoDerogacionAusenciaBean.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isEliminar()) {\n    //       actoDerogacionAusenciaBean.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isLegalizar()) {\n    //       actoDerogacionAusenciaBean.legalizacion(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     }\n    //   }\n    //   return;\n    // }\n    \n    //ACTO TERMINACION CONTRATO\n    if (dto.terminacionContrato) {\n      if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo) || this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n        this.vistaVisualizar = (\"ir_acto_terminacion_contrato\");\n        await this.utilsService.sleep(500)\n        if (this.isModificar()) {\n          await this.actoAusenciaComponent.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n        } else if (this.isEliminar()) {\n          await this.actoAusenciaComponent.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n        } else if (this.isLegalizar()) {\n          await this.actoAusenciaComponent.legalizar(this.usuarioFormatoDTO.actoAusenciaEml);\n        }\n      }\n    //   if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_derogacion_ausencia\");\n    //     if (this.isModificar()) {\n    //       actoDerogacionAusenciaBean.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isEliminar()) {\n    //       actoDerogacionAusenciaBean.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isLegalizar()) {\n    //       actoDerogacionAusenciaBean.legalizacion(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     }\n    //   }\n       return;\n\n    }\n    \n    // //ACTOS LICENCIAS\n    if (dto.licencias) {\n      if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo)  || this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n        this.vistaVisualizar = (\"ir_acto_terminacion_contrato\");\n        await this.utilsService.sleep(500);\n        if (this.isModificar()) {\n          await this.actoAusenciaComponent.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n        } else if (this.isEliminar()) {\n          await this.actoAusenciaComponent.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n        } else if (this.isLegalizar()) {\n          await this.actoAusenciaComponent.legalizar(this.usuarioFormatoDTO.actoAusenciaEml);\n        }\n      }\n    //   if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_derogacion_ausencia\");\n    //     ActoDerogacionAusenciaBean actoDerogacionAusenciaBean = (ActoDerogacionAusenciaBean) FacesUtils.getBean(\"actoDerogacionAusenciaBean\");\n    //     if (this.isModificar()) {\n    //       actoDerogacionAusenciaBean.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isEliminar()) {\n    //       actoDerogacionAusenciaBean.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isLegalizar()) {\n    //       actoDerogacionAusenciaBean.legalizacion(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     }\n    //   }\n      return;\n    }\n    \n    //ACTOS ESPECIALES\n    if (dto.especial) {\n      if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo)) {\n        this.vistaVisualizar = (\"ir_acto_especial\");\n        await this.utilsService.sleep(1100);\n        if (this.isModificar()) {\n          this.actosEspecialesComponent.modificar(this.usuarioFormatoDTO.actoEspecialEml);\n        } else if (this.isEliminar()) {\n          this.actosEspecialesComponent.eliminar(this.usuarioFormatoDTO.actoEspecialEml);\n        } else if (this.isLegalizar()) {\n          this.actosEspecialesComponent.legalizacion(this.usuarioFormatoDTO.actoEspecialEml);\n        }\n      }\n    //   if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_derogacion_especial\");\n    //     ActoDerogacionEspecialBean actoDerogacionEspecialBean = (ActoDerogacionEspecialBean) FacesUtils.getBean(\"actoDerogacionEspecialBean\");\n    //     if (this.isModificar()) {\n    //       actoDerogacionEspecialBean.modificar(this.usuarioFormatoDTO.actoEspecialEml);\n    //     } else if (this.isEliminar()) {\n    //       actoDerogacionEspecialBean.eliminar(this.usuarioFormatoDTO.actoEspecialEml);\n    //     } else if (this.isLegalizar()) {\n    //       actoDerogacionEspecialBean.legalizacion(this.usuarioFormatoDTO.actoEspecialEml);\n    //     }\n    //   }\n    //   return;\n    }\n    \n    // //ACTOS MOVIMIENTO DE PLANTA (CREAR ELIMINAR)\n    // if (dto.isMovimientoPlanta()) {\n    //   if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo) || this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_mov_planta\");\n    //     ActosMovPlantaCreaEliminaBean actosMovPlantaBean = (ActosMovPlantaCreaEliminaBean) FacesUtils.getBean(\"actosMovPlantaBean\");\n    //     if (this.isModificar()) {\n    //       actosMovPlantaBean.modificar(this.usuarioFormatoDTO.getActoMovPlanta(), usuarioFormatoDTO.getAccionFormato());\n    //     } else if (this.isEliminar()) {\n    //       actosMovPlantaBean.eliminar(this.usuarioFormatoDTO.getActoMovPlanta(), usuarioFormatoDTO.getAccionFormato());\n    //     } else if (this.isLegalizar()) {\n    //       actosMovPlantaBean.legalizacion(this.usuarioFormatoDTO.getActoMovPlanta(), usuarioFormatoDTO.getAccionFormato());\n    //     }\n    //   }\n    //   if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_derogacion_movimiento_planta\");\n    //     ActoDerogacionMovPlantaBean actoDerogacionMovPlantaBean = (ActoDerogacionMovPlantaBean) FacesUtils.getBean(\"actoDerogacionMovPlantaBean\");\n    //     if (this.isModificar()) {\n    //       actoDerogacionMovPlantaBean.modificar(this.usuarioFormatoDTO.getActoMovPlanta());\n    //     } else if (this.isEliminar()) {\n    //       actoDerogacionMovPlantaBean.eliminar(this.usuarioFormatoDTO.getActoMovPlanta());\n    //     } else if (this.isLegalizar()) {\n    //       actoDerogacionMovPlantaBean.legalizacion(this.usuarioFormatoDTO.getActoMovPlanta());\n    //     }\n    //   }\n    //   return;\n    // }\n    \n    // ACTOS MOVIMIENTO PLANTA LIBERAR TRASLADAR\n    // if (dto.isMovimientoPlantaLiberaTraslada() || dto.isMovimientoPlantaReclasificacionPuesto()) {\n    //   if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo)|| this.isCorregir(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_mov_planta_libera_traslada\");\n    //     ActosMovPlantaLiberaTransladaBean actosMovPlantaLiberaTransladaBean = (ActosMovPlantaLiberaTransladaBean) FacesUtils.getBean(\"actosMovPlantaLiberaTransladaBean\");\n    //     if (this.isModificar()) {\n    //       actosMovPlantaLiberaTransladaBean.modificar(this.usuarioFormatoDTO.getActoMovPlanta(), usuarioFormatoDTO.getAccionFormato());\n    //     } else if (this.isEliminar()) {\n    //       actosMovPlantaLiberaTransladaBean.eliminar(this.usuarioFormatoDTO.getActoMovPlanta(), usuarioFormatoDTO.getAccionFormato());\n    //     } else if (this.isLegalizar()) {\n    //       actosMovPlantaLiberaTransladaBean.legalizacion(this.usuarioFormatoDTO.getActoMovPlanta(), usuarioFormatoDTO.getAccionFormato());\n    //     }\n    //   }\n    //   if (this.isDerogar(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_derogacion_movimiento_planta\");\n    //     ActoDerogacionMovPlantaBean actoDerogacionMovPlantaBean = (ActoDerogacionMovPlantaBean) FacesUtils.getBean(\"actoDerogacionMovPlantaBean\");\n    //     if (this.isModificar()) {\n    //       actoDerogacionMovPlantaBean.modificar(this.usuarioFormatoDTO.getActoMovPlanta());\n    //     } else if (this.isEliminar()) {\n    //       actoDerogacionMovPlantaBean.eliminar(this.usuarioFormatoDTO.getActoMovPlanta());\n    //     } else if (this.isLegalizar()) {\n    //       actoDerogacionMovPlantaBean.legalizacion(this.usuarioFormatoDTO.getActoMovPlanta());\n    //     }\n    //   }\n    //   return;\n    // }\n    \n    // if(dto.isActoVacacionesMasivasPM() || dto.isActoVacacionesMasivasPF() || dto.isActoVacacionesMasivasIM() || dto.isActoVacacionesMasivasNM()) {\n    //   if (this.isOriginal(this.usuarioFormatoDTO.postLegalizaActo)) {\n    //     this.vistaVisualizar = (\"ir_acto_vacaciones_masivas\");\n    //     ActosVacacionesMasivasBean actosVacacionesMasivasBean = getBean(ActosVacacionesMasivasBean.class);\n        \n    //     if (this.isModificar()) {\n    //       actosVacacionesMasivasBean.modificar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isEliminar()) {\n    //       actosVacacionesMasivasBean.eliminar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     } else if (this.isLegalizar()) {\n    //       actosVacacionesMasivasBean.legalizar(this.usuarioFormatoDTO.actoAusenciaEml);\n    //     }\n        \n    //   }\n    // }\n  }\n\n  regresarSeleccionDerogar(event){\n    switch (event) {\n      case 'seleccionaFormato':\n        this.seleccionaFormato(this.usuarioFormatoDTO.formato, null).then(data => {})\n        break;\n      case 'mostrarPopupDerogar':\n      \n      break;\n      case 'mostrarPopupDerogarCorregir':\n        \n        break;\n    \n      default:\n        break;\n    }\n  }\n\n  getDetalle() {\n\t\treturn !this.utilsService.isBlank(this.temporal) ? this.temporal : '';\n\t}\n\n  getIconoActo() {\n\t\tif (this.temporal == null) {\n\t\t\treturn '';\n\t\t} else if (this.isElaborar()) {\n\t\t\treturn 'glyphicons glyphicons-disk-save';\n\t\t} else if (this.isLegalizar()) {\n\t\t\treturn 'glyphicons glyphicons-check';\n\t\t} else if (this.isModificar()) {\n\t\t\treturn 'glyphicons glyphicons-edit';\n\t\t} else if (this.isEliminar()) {\n\t\t\treturn 'glyphicons glyphicons-remove';\n\t\t}\n\t\treturn '';\n\t}\n\n  public async seleccionarCambioEmpleado(acciones: string) {\n\t\tthis.directo = true;\n\t\tthis.tipoFormatoAtrabajar = this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO;\n\t\tthis.accionesTrabajar = acciones;\n\t\tawait this.traerTipo();\n\t}\n\n  async traerTipo() {\n\t\tawait this.traerDatos(this.tipoFormatoAtrabajar);\n\t\tthis.actoSelecionado = (this.translateService.instant(\"actualmente\") + this.generalPipe.ESPACIO_BLANCO + this.translateService.instant(\"esta\") + this.generalPipe.ESPACIO_BLANCO\n\t\t\t\t+ this.translateService.instant(\"trabajando\") + this.generalPipe.ESPACIO_BLANCO + this.translateService.instant(\"con\") + this.generalPipe.DOS_PUNTOS + \" (  \"\n\t\t\t\t+ this.mapaAcciones.filter(data => data.codigo == this.tipoFormatoAtrabajar)[0].nombre + \"  )\");\n\t\tthis.datos = false;\n\t\tthis.datosFormato = false;\n\t\tthis.listaPendiente = [];\n\t\tthis.listaPendienteOriginal = [];\n\t\tthis.temporal = null;\n\t}\n\n  isElaborar() {\n\t\treturn this.temporal != null && this.temporal.trim() == 'Elaborar';\n\t}\n\n\tisModificar() {\n\t\treturn this.temporal != null && this.temporal.trim() == 'Modificar';\n\t}\n\n\tisLegalizar() {\n\t\treturn this.temporal != null && this.temporal.trim() == 'Legalizar';\n\t}\n\n\tisEliminar() {\n\t\treturn this.temporal != null && this.temporal.trim() == 'Eliminar';\n\t}\n\t\n\tisActoRetiro() {\n\t\treturn this.tipoFormatoAtrabajar != null && this.parametroFormatoPipe.PARAMETRO_ACTO_RETIRO_EMPLEADO == this.tipoFormatoAtrabajar;\n\t}\n\tisActoEspecial() {\n\t\treturn this.tipoFormatoAtrabajar !=null && this.parametroFormatoPipe.PARAMETRO_ACTO_FORMATO_ESPECIAL == this.tipoFormatoAtrabajar;\n\t}\n\n  regresar(){\n    //this.ngOnInit();\n\t\t//this.tipoFormatoAtrabajar = null;\n    this.verSeleccionar = false;\n    this.vistaVisualizar = null;\n    this.traerListado().then(data => {})\n  }\n\n  regresarAction(event){\n    this.regresar();\n  }\n\n  isVerActos(){\n\t\treturn this.utilsService.isBlank(this.tipoFormatoAtrabajar);\n\t}\n\n  isDatos() {\n\t\tif (this.listaGrupo != null && (this.listaGrupo.length > 1 || ( (this.listaGrupo.length==1 || this.listaGrupo.length == 0) )) && this.temporal != null && this.isElaborar()) {\n\t\t\tthis.datos = true;\n\t\t} else {\n\t\t\tthis.datos = false;\n\t\t}\n\t\treturn this.datos;\n\t}\n\n  isDatosMenu() {\n\t\tif ((this.listaPendiente != null && this.listaPendiente.length > 0) && (this.temporal != null && this.isModificar() || this.isEliminar() || this.isLegalizar())) {\n\t\t\tthis.datosMenu = true;\n\t\t} else {\n\t\t\tthis.datosMenu = false;\n\t\t}\n\t\treturn this.datosMenu;\n\t}\n\n  isDatosFormato() {\n\t\tif (this.listaFormato != null && (this.listaFormato.length > 0 || (this.listaFormato.length == 0 && this.utilsService.isNotBlank(this.busquedaFormato)) ) && (this.temporal != null && this.isElaborar())) {\n\t\t\tthis.datosFormato = true;\n\t\t} else {\n\t\t\tthis.datosFormato = false;\n\t\t}\n\t\treturn this.datosFormato;\n\t}\n \n}\n","<div id=\"actosAdministrativos\">\n  <!--<<div class=\"flex align-items-center justify-content-between align-items-center mb-3\" *ngIf=\"vistaVisualizar == null || vistaVisualizar == undefined\">\n    \n  button pButton pRipple (click)=\"regresar()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" *ngIf=\"!isVerActos() && listaEstado.length > 0\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n</div>-->\n\n<div *ngIf=\"listaActosAmostrar.length > 0 && (vistaVisualizar == null || vistaVisualizar == undefined) && !directo\" class=\"lista-tipo-actos\">\n    <div class=\"contenedor-titulo-actos\">\n\n        <div class=\"contenedor-icono-titulo-actos p-1\">\n                <img src=\"/assets/images/ico-actos-adm.webp\" alt=\"Foto\" class=\"avatar-image\"  >\n        </div>\n        <div>\n            <h5 class=\"text-left ml-2\" style=\"margin: 0 0 0 0\">{{'actosadministrativos' | translate}}</h5>\n        </div>\n    </div>\n    <div class=\"contenedor-lista-tipo-acto \" (click)=\"seleccionarTipo(data)\" *ngFor=\"let data of listaActosAmostrar\" >\n        <div style=\"width:20%\">\n            <span class=\"spanIzquierda\">\n                <i class=\"pi pi-angle-left text-lg ml-2\"></i>\n            </span>\n        </div>\n        <div style=\"width:60%; text-align: left !important;\">\n            <label class=\"text-sm font-semibold\">{{data.tipo | parametroFormatoPipe : 'actosAdminEml' }}</label>\n        </div>\n        <div style=\"width:20%\">\n            <span class=\"spanDerecha\">\n                <i class=\"{{data.tipo | parametroFormatoPipe : 'imgAdminEml'}}\"></i>\n            </span>\n        </div>\n    </div> \n</div>\n<div class=\"contenido\" *ngIf=\"vistaVisualizar == null || vistaVisualizar == undefined\">\n    <h1  class=\"mb-4\">{{tipoSeleccionado}} </h1>\n\n    <div class=\"encabezado-acciones sombra-caja flex justify-content-between mb-3\" *ngIf=\"!isVerActos()\">\n        <button *ngFor=\"let data of listaEstado\" pButton pRipple class=\"{{accionARealizar == data.sdescripcion ? 'p-button p-button-raised boton-accion-principal' : 'p-button p-button-secondary font-semibold flex-shrink-0 boton-accion-principal'}}\"\n            label=\"{{data.sdescripcion}}\" (click)=\"recibirDetalle(data)\">\n            <div class=\"contenedor-icono-acciones-principal\">\n                <i style=\"color: var(--color-500)\" class=\"{{data.estilo}}\"></i>\n            </div>\n        </button>\n    </div>\n\n    <div class=\" flex ResponsiveaAjuste\">\n        <div class=\"sombra-caja icono-naranja\" [style]=\"!directo ? 'width:30%; margin-right:15px; overflow-y: auto; height: 50vh;' : ''\" *ngIf=\"isDatos()\">\n            <p-tree [value]=\"arbolGrupo\"  selectionMode=\"single\" (onNodeSelect)=\"detalleFormato($event)\" (onNodeUnselect)=\"detalleFormato($event)\" [(selection)]=\"formatoSeleccionado\"\n            [filter]=\"true\" filterMode=\"strict\" filterPlaceholder=\"{{'filtro' | translate}}\" ></p-tree>\n        </div>\n        <div class=\"card pl-4 pr-3 pt-3 pb-3 mb-3\" style=\"width:70%; height: fit-content\" *ngIf=\"verSeleccionar\" >\n            <h1 class=\"text-xl mt-2 mb-4\">{{usuarioFormatoDTO.descripcionFormato | generalPipe : 'capitallizeFully'}}</h1>\n            <app-popup-seleccionar-derogar #derogar (regresar)=\"regresarSeleccionDerogar($event)\"></app-popup-seleccionar-derogar>\n        </div>\n    </div>\n\n    @if(mostrarTabla) {\n        @if(isDatosMenu()) {\n            <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listaPendiente\" [rows]=\"10\" selectionMode=\"single\" dataKey=\"llaveTabla\"\n                [totalRecords]=\"listaPendiente.length\" [paginator]=\"listaPendiente.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                [showCurrentPageReport]=\"true\" [scrollable]=\"true\" (onRowSelect)=\"traerActo($event)\" (onRowUnselect)=\"traerActo($event)\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n                <ng-template pTemplate=\"header\">\n\n                    <tr class=\"fondoTablaPincipal\">\n                        <th pSortableColumn=\"descripcionGrupo\">{{'descripcion' | translate}} </th>\n                        <th pSortableColumn=\"descripcionFormato\">{{'actoadministrativo' | translate}} </th>\n                        <th pSortableColumn=\"documento\">{{'identificacion' | translate}} </th>\n                        <th pSortableColumn=\"nombreHov\">{{'nombre' | translate}} </th>\n                        <th pSortableColumn=\"fechaCambioActo\" *ngIf=\"!isActoRetiro()\">{{'cambio' | translate}} </th>\n                        <th pSortableColumn=\"fechaRetiro\" *ngIf=\"isActoRetiro()\">{{'fecharetiro' | translate}} </th>\n                        <th pSortableColumn=\"unidad\">{{'unidad' | translate}} </th>\n                        <th>{{'tipo' | translate}}</th>\n                    </tr>\n                    <tr class=\"fondoTablaPincipal\">\n                        <th>\n                            <p-columnFilter type=\"text\" matchMode=\"contains\" [showMenu]=\"false\" [showClearButton]=\"false\"\n                                field=\"descripcionGrupo\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                        </th>\n                        <th>\n                            <p-columnFilter type=\"text\" matchMode=\"contains\" [showMenu]=\"false\" [showClearButton]=\"false\"\n                                field=\"descripcionFormato\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                        </th>\n                        <th>\n                            <p-columnFilter type=\"text\" matchMode=\"contains\" [showMenu]=\"false\" [showClearButton]=\"false\"\n                                field=\"documento\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                        </th>\n                        <th>\n                            <p-columnFilter type=\"text\" matchMode=\"contains\" [showMenu]=\"false\" [showClearButton]=\"false\"\n                                field=\"nombreHov\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                        </th>\n                        <th *ngIf=\"!isActoRetiro()\">\n                            <p-columnFilter type=\"text\" matchMode=\"contains\" [showMenu]=\"false\" [showClearButton]=\"false\"\n                                field=\"fechaCambioActo\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                        </th>\n                        <th *ngIf=\"isActoRetiro()\">\n                            <p-columnFilter type=\"text\" matchMode=\"contains\" [showMenu]=\"false\" [showClearButton]=\"false\"\n                                field=\"fechaRetiro\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                        </th>\n                        <th>\n                            <p-columnFilter type=\"text\" matchMode=\"contains\" [showMenu]=\"false\" [showClearButton]=\"false\"\n                                field=\"unidad\" placeholder=\"Buscar\" ariaLabel=\"Buscar\" />\n                        </th>\n                        <th>\n                        </th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-bean>\n                    <tr [pSelectableRow]=\"bean\">\n                        <td>\n                            <label>{{bean.descripcionGrupo}}</label>\n                        </td>\n                        <td>\n                            <label>{{bean.descripcionFormato}}</label>\n                        </td>\n                        <td>\n                            <label>{{bean.documento}}</label>\n                        </td>\n                        <td>\n                            <label>{{bean.nombreHov}}</label>\n                        </td>\n                        <td *ngIf=\"!isActoRetiro()\">\n                            <label>{{bean.fechaCambioActo | date : ('formatofecha' | translate)}}</label>\n                        </td>\n                        <td *ngIf=\"isActoRetiro()\">\n                            <label>{{bean.fechaRetiro | date : ('formatofecha' | translate) }}</label>\n                        </td>\n                        <td>\n                            <label>{{bean.unidad}} - {{bean.nombreUnidad}}</label>\n                        </td>\n                        <td>\n                            <label *ngIf=\"isOriginal(bean.postLegalizaActo)\">Original</label>\n                            <label *ngIf=\"isDerogar(bean.postLegalizaActo)\">Derogación</label>\n                            <label *ngIf=\"isCorregir(bean.postLegalizaActo)\">Correción</label>\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        }\n        @if (listaPendiente.length <= 0 && (isModificar() || isEliminar() || isLegalizar())) {\n            <div class=\"centrar-contenedor-imagen-sin-datos mt-3\" >\n                <img src=\"/assets/images/no-info.webp\" alt=\"No se encontraron datos\" height=\"30%\" width=\"30%\">\n            </div>\n        }\n    }\n</div>\n    \n\n\n<div *ngIf=\"vistaVisualizar == 'ir_acto_ingreso'\">\n    <app-actos-ingreso [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-actos-ingreso>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_cambio_puesto'\">\n    <app-acto-cambio-puesto [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-acto-cambio-puesto>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_prorroga'\">\n    <app-actos-prorroga-temporal [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-actos-prorroga-temporal>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_traslado'\">\n    <app-acto-traslado [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-acto-traslado>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_terminacion_contrato'\">\n    <app-actos-ausencia-terminacion [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-actos-ausencia-terminacion>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_especial'\">\n    <app-actos-especiales [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-actos-especiales>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_mov_planta'\">\n    <app-actos-mov-planta-crea-elimina [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-actos-mov-planta-crea-elimina>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_mov_planta_libera_traslada'\">\n    <app-actos-mov-planta-libera-traslada [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-actos-mov-planta-libera-traslada>\n</div>\n<div *ngIf=\"vistaVisualizar == 'ir_acto_vaciones'\">\n    <app-actos-vacaciones [tipoSeleccionado]=\"tipoSeleccionado\" (regresarAction)=\"regresarAction($event)\"></app-actos-vacaciones>\n</div>\n\n</div>","import { NgIf } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../pipes/general.pipe';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, GeneralService, UtilsService } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { firstValueFrom } from 'rxjs';\nimport { UnidadUsuarioModel } from '../../../../modules/compensacion/models/UnidadUsuarioModel';\n\n@Component({\n  selector: 'app-input-helper-unidad-usuario',\n  standalone: true,\n  imports: [InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent],\n  templateUrl: './input-helper-unidad-usuario.component.html',\n  styleUrl: './input-helper-unidad-usuario.component.scss',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperUnidadUsuarioComponent),\n      multi: true,\n    },\n  ],\n})\nexport class InputHelperUnidadUsuarioComponent implements ControlValueAccessor, OnInit {\n\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() value: string;\n  @Input() label: string = '';\n  @Input() readonly: boolean = false;\n  @Input() ocultarBoton: boolean = false;\n  @Input() mostrarX: boolean = true;\n  @Input() booleano: boolean;\n  @Input() estado: string = null;\n  @Input() empresa: number;\n  @Input() header: string;\n  @Input() showDialog: boolean = false;\n  @Input() verUnidad: boolean = false;\n\n  dataSelected: UnidadUsuarioModel;\n  filtro: UnidadUsuarioModel;\n  listaUnidad: UnidadUsuarioModel[] = [];\n  usuario: string = null;\n  aliasRol: string = null;\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  onChange: Function = () => { };\n  onCambio: Function = () => { };\n  onTouched: Function = () => { };\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private generalPipe: GeneralPipe,\n    private utilsService: UtilsService,\n    private translateService: TranslateService) { }\n\n  ngOnInit() {\n\n    this.filtro = new UnidadUsuarioModel();\n    this.listaUnidad = [];\n\n    if (this.header == null) {\n      this.header = '';\n    }\n\n    this.filters = [\n      {\n        field: 'comodinBusqueda',\n        header: this.translateService.instant('nombre'),\n        matchMode: 'equal',\n      }\n    ]\n  }\n\n  ocultar() {\n    this.showDialog = false;\n    this.filtroGeneral.panel.hide();\n  }\n\n  /*async mostrar() {\n    this.openDataTable();\n  }*/\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.dataSelected = new UnidadUsuarioModel();\n    this.dataSelected.unidad = null;\n    this.dataSelected.nombreUnidad = null;\n    this.onChange(this.value)\n    this.onCambio(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async openDataTable() {\n    \n    let event = {};\n\n    if (this.filtroGeneral?.filterForm?.controls?.['comodinBusqueda']?.value) {\n      event = { comodinBusqueda: { value: this.filtroGeneral?.filterForm?.controls?.['comodinBusqueda']?.value } };\n    }\n\n    await this.cargarListaFiltros(event);\n\n    this.showDialog = true;\n\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.unidad;\n    this.label = this.dataSelected.unidad?.trim() + ' - ' + this.dataSelected.nombreUnidad;\n    this.onChange(this.value);\n    this.onCambio(this.value);\n    this.onSelected.emit(this.dataSelected);\n\n  }\n\n  async cargarListaFiltros(event) {\n    this.cargarListado(event);\n  }\n\n  async colocarFiltro() {\n\n    this.filtro.login = this.authService.getTokenKey('usuario');\n    this.filtro.rol = this.authService.getTokenKey('aliasRol');\n\n    if (this.empresa != null || this.empresa != undefined) {\n      this.filtro.empresa = this.empresa;\n    } else {\n      this.filtro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    }\n\n    this.filtro.estado = this.generalPipe.SI;\n\n  }\n\n  async cargarListado(event) {\n\n    await this.colocarFiltro();\n\n    this.filtro.comodinBusqueda = event['comodinBusqueda'] ? '%' + event['comodinBusqueda']['value'] + '%' : null;\n\n    if (!this.filtro.comodinBusqueda && !this.verUnidad) {\n      this.listaUnidad = [];\n    } else {\n      let filtroUnidad = new GeneralModel('UnidadUsuarioDTO', null, false, this.filtro)\n      this.listaUnidad = await firstValueFrom(this.generalService.queryForList(filtroUnidad));\n    }\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n    if (llave != null) {\n      let filtro = new UnidadUsuarioModel();\n      filtro.unidad = llave;\n      filtro.empresa = parseInt(authService.getTokenKey('numeroEmpresa'));\n      let objeto = new GeneralModel('UnidadUsuarioDTO', null, false, filtro);\n      let respuesta: UnidadUsuarioModel = await generalService.queryForObject(objeto).toPromise();\n      if (!respuesta) {\n        return null;\n      }\n      return `${respuesta.unidad.trim()} - ${respuesta.nombreUnidad}`;\n    }\n\n    return null;\n  }\n\n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n\n    <!-- Cuando no lleva label el input, evita que se muestre la etiqueta vacia en la parte superior-->\n    <input *ngIf=\"header == ''\" pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n\n    <span class=\"p-float-label\" *ngIf=\"header != ''\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <label>{{header}}</label>\n    </span>\n\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n        (click)=\"deleteSelection()\">\n        <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n</div>\n\n<p-dialog header=\"{{'unidad' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    [breakpoints]=\"{ '2000px': '40vw','1400px': '60vw','960px': '75vw','800px': '80vw', '700px': '100vw' }\"\n    [style]=\"{ width: '50vw' }\" (onHide)=\"ocultar()\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general #filtroGeneral [filtros]=\"filters\" (onHide)=\"showDialog\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"comodinBusqueda\"\n                                formControlName=\"comodinBusqueda\" autocomplete=\"off\" />\n                            <label for=\"comodinBusqueda\">{{'busqueda' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"unidad\" [value]=\"listaUnidad\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n        [rows]=\"10\" [paginator]=\"listaUnidad.length >10\" [totalRecords]=\"listaUnidad.length\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\"\n        (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 10%;\">{{\"codigo\" | translate}}</th>\n                <th style=\"width: 40%;\">{{\"nombre\" | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-unidad>\n            <tr [pSelectableRow]=\"unidad\">\n                <td style=\"width: 10%;\">{{unidad.unidad}}</td>\n                <td style=\"width: 40%;\">{{unidad.nombreUnidad}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n\n</p-dialog>","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, MenuService, PuntoProcesoCompComponent, ToastService, UtilsService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { EmpleadoService } from '../../../services/empleado.service';\nimport { NovedadService } from '../../../services/novedad.service';\nimport { FormatoModel } from '../../../../actos/models/FormatoModel';\nimport { UsuarioFormatoService } from '../../../services/usuario-formato.service';\nimport { UsuarioFormatoModel } from '../../../../actos/models/UsuarioFormatoModel';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { CentroCostoModel } from '../../../models/CentroCostoModel';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { UnidadUsuarioModel } from '../../../models/UnidadUsuarioModel';\nimport { TipoPeriodoModel } from '../../../models/TipoPeriodoModel';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { Ripple } from 'primeng/ripple';\nimport { InputHelperSeleccionCargoComponent } from '../../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgIf, TitleCasePipe, DatePipe, CommonModule } from '@angular/common';\nimport { MenubarModule } from 'primeng/menubar';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ActosProrrogaTemporalComponent } from '../../../../actos/pages/actos-administrativos/actos-prorroga-temporal/actos-prorroga-temporal.component';\nimport { InputHelperUnidadUsuarioComponent } from '../../../../../shared/componentes/input-helper-unidad-usuario/input-helper-unidad-usuario/input-helper-unidad-usuario.component';\n\n@Component({\n  selector: 'app-listado-control-prorroga',\n  templateUrl: './listado-control-prorroga.component.html',\n  styleUrls: ['./listado-control-prorroga.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule,\n    ConfirmDialogModule,\n    PrimeTemplate,\n    ButtonDirective,\n    MenubarModule,\n    NgIf,\n    FormsModule,\n    ReactiveFormsModule,\n    InputTextModule,\n    DropdownModule,\n    CalendarModule,\n    InputHelperSeleccionZonaCentroComponent,\n    InputHelperUnidadUsuarioComponent,\n    InputHelperSeleccionCargoComponent,\n    Ripple,\n    SplitButtonModule,\n    TableModule, TemplateTablaVaciaComponent,\n    CheckboxModule,\n    TitleCasePipe,\n    DatePipe,\n    TranslateModule,\n    FiltroGeneralComponent,\n    CommonModule,\n    ActosProrrogaTemporalComponent,\n    PuntoProcesoCompComponent\n  ],\n  providers: [EmpleadoService]\n})\nexport class ListadoControlProrrogaComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @ViewChild(ActosProrrogaTemporalComponent) actosProrrogaTemporalComponent: ActosProrrogaTemporalComponent;\n  @Input() tipoSeleccionado: string;\n\n  lista: EmpleadoModel[] = [];\n\n  filtro: EmpleadoModel;\n  filtroEmpleadoModel: EmpleadoModel;\n  seleccionar: boolean = true;\n  seleccionarTodo: boolean = false;\n  filters = [];\n  listaQueryMapa: { key: string; label: String; }[];\n  tipo: string;\n  formatoGenerar: number;\n  items: MenuItem[];\n  llaveProceso: string;\n  mostrarReporte: boolean;\n  listaInconsistencia: EmpleadoModel[] = [];\n  listaSeleccionados: EmpleadoModel[] = [];\n  porNovedad: boolean;\n  mostrarInconsistencia: boolean;\n  listaFormato;\n  visualizar: string;\n  listadoVinculacionLabora: { key: string; label: String; }[];\n  unidad: UnidadUsuarioModel;\n  zonaCentro: CentroCostoModel;\n  cargo: CargoModel;\n  listadoTipoPeriodo;\n  itemsBotonAcciones: MenuItem[];\n  cargarFiltroGeneral: any;\n  listaObjetoVinculacion: {};\n  listaObjetoTipoPeriodo: {};\n  listaObjetoFormato: any;\n  isLoadingData: boolean = false;\n\n  constructor(private authService: AuthService, private generalService: GeneralService, public translateService: TranslateService,\n    private toastService: ToastService, public utilServices: UtilsService, private empleadoService: EmpleadoService,\n    private confirmationService: ConfirmationService, private menuService: MenuService, private controlFuncionService: CargarControlFuncionalidadService,\n    private novedadServices: NovedadService, private usuarioFormato: UsuarioFormatoService, private parametroFormatoPipe: ParametroFormatoPipe,\n    private cargarMapas: cargarmapasGlobal) { }\n\n  async ngOnInit(): Promise<void> {\n\n    this.cargo = new CargoModel();\n    this.zonaCentro = new CentroCostoModel();\n    this.unidad = new UnidadUsuarioModel();\n    this.filtro = new EmpleadoModel();\n    this.filtroEmpleadoModel = new EmpleadoModel();\n    this.mostrarInconsistencia = false;\n    this.mostrarReporte = false;\n    this.llaveProceso = \"\";\n    this.visualizar = '';\n    this.cargarMigaPan();\n    await this.cargarFiltro();\n    await this.cargarListadosIniciales();\n    await this.listadoProrroga();\n    await this.cargarMenu();\n\n    await this.utilServices.sleep(500);\n    this.utilServices.resizeWindowIFrame();\n  }\n\n  async cargarListadosIniciales() {\n\n    //Obtener listado\n    let mapa: Map<string, String> = new Map<string, String>();\n\n    let objetoConsulta = new GeneralModel('EmpresaDTO', null, false, {\n      empresa: this.authService.getTokenKey('numeroEmpresa')\n    });\n\n    let modo = await this.generalService.queryForObject(objetoConsulta).toPromise();\n\n    //Map Vinculación    \n    let listaRespuestaVinculacion = await this.generalService.queryForList(new GeneralModel('VinculacionLaboralDTO', null, false, { modo: modo.modoCompensacion })).toPromise();\n\n    listaRespuestaVinculacion.forEach((item) => {\n      mapa.set(item.vinculacion, item.vinculacion + ' : ' + item.descripcion);\n    });\n\n    this.listadoVinculacionLabora = Array.from(mapa, ([key, label]) => ({ key, label }));\n\n    this.listaObjetoVinculacion = await this.listadoVinculacionLabora.reduce((obj, area) => {\n      obj[area.key] = area.label;\n      return obj;\n    }, {});\n\n    //Lista tipo Periodo\n    let tipoPeriodoFiltro = new TipoPeriodoModel()\n    tipoPeriodoFiltro.aliasRol = this.authService.getTokenKey('aliasRol');\n    tipoPeriodoFiltro.usuarioLogin = this.authService.getTokenKey('usuario');\n    tipoPeriodoFiltro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.listadoTipoPeriodo = await this.cargarMapas.cargarSelectItemString('tipo', 'descripcion', new GeneralModel('TipoPeriodoDTO', null, false, tipoPeriodoFiltro));\n\n    this.listaObjetoTipoPeriodo = await this.listadoTipoPeriodo.reduce((obj, area) => {\n      obj[area.key] = area.label;\n      return obj;\n    }, {});\n  }\n\n  cargarMigaPan() {\n    this.menuService.setBreadcrumb([{ label: 'Listado Control Prorroga' }]);\n  }\n\n  async cargarFiltro() {\n    this.filters = [\n      {\n        field: 'nombreCompleto',\n        header: this.translateService.instant('nombrefuncionario'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'contrato',\n        header: this.translateService.instant('contrato'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'vinculacion',\n        header: this.translateService.instant('vinculacion'),\n        values: (value) => this.listaObjetoVinculacion[value],\n        matchMode: 'equals',\n      },\n      {\n        field: 'zonaEconomica',\n        header: this.translateService.instant('zonaeconomica'),\n        matchMode: 'equals',\n      },\n      {\n        field: 'centroCosto',\n        header: this.translateService.instant('centrocosto'),\n        matchMode: 'equals',\n      },\n      {\n        field: 'unidad',\n        header: this.translateService.instant('unidad'),\n        matchMode: 'equals',\n      },\n      {\n        field: 'cargo',\n        header: this.translateService.instant('cargo'),\n        matchMode: 'equals',\n      },\n      {\n        field: 'rangofechas',\n        header: this.translateService.instant('rangofechas'),\n        formatDate: true,\n        matchMode: 'contains'\n      },\n      {\n        field: 'tipoPeriodo',\n        header: this.translateService.instant('tipoperiodo'),\n        values: (value) => this.listaObjetoTipoPeriodo[value],\n        matchMode: 'equals',\n      },\n      {\n        field: 'formatoGenerar',\n        header: this.translateService.instant('formato'),\n        values: (value) => this.listaObjetoFormato[value],\n        matchMode: 'equals',\n      },\n    ];\n  }\n\n  async cargarListaFiltros(event) {\n\n    //Remover  y limpiar filtros\n    if (!event['zonaEconomica'] || !event['centroCosto']) {\n      this.zonaCentro = new CentroCostoModel();\n\n      this.eliminarChipFiltro('zonaEconomica');\n\n      this.eliminarChipFiltro('centroCosto');\n    };\n\n    if (!event['formatoGenerar']) { this.formatoGenerar = 0 };\n    if (!event['unidad']) { this.unidad = new UnidadUsuarioModel(); };\n    if (!event['cargo']) { this.cargo = new CargoModel(); };\n\n    await this.cargarLista(event);\n  }\n\n  async eliminarChipFiltro(nombreChip: any) {\n\n    let filtro = { field: nombreChip };\n\n    const indice = this.filtroItem.chips.findIndex((objeto) =>\n      objeto.field === filtro.field\n    );\n\n    if (indice !== -1) {\n      this.filtroItem.chips.splice(indice, 1);\n    }\n\n  }\n\n  async cargarMenu() {\n    \n    this.items = [\n      {\n        label: this.translateService.instant('listadoprorrogacontrato'), icon: 'glyphicons glyphicons-file',\n        visible: true,\n        command:\n          (event) => {\n            this.listaInconsistencia = [];\n            this.listadoProrroga();\n            this.filtroItem.filterForm.reset();\n            this.filtroItem.chips = [];\n          }\n      },\n      {\n        label: this.translateService.instant('listadoprorrogaencargo'), icon: 'glyphicons glyphicons-group', visible: true, command:\n          (event) => {\n            this.listaInconsistencia = [];\n            this.listadoEncargo();\n            this.filtroItem.filterForm.reset();\n            this.filtroItem.chips = [];\n          }\n      }\n    ]\n  }\n\n  public verificarControl(control) {\n    return this.controlFuncionService.getControlFuncionalidad(control);\n  }\n\n  async cargarListaFormato() {\n\n    let formatoDTO = new FormatoModel();\n    formatoDTO.tipo = this.parametroFormatoPipe.PARAMETRO_ACTO_CAMBIO_EMPLEADO;\n\n    if (\"encargo\" == this.tipo) {\n      formatoDTO.accion = this.parametroFormatoPipe.PRORROGAENCARGOTEMPORAL;\n    }\n    else {\n      formatoDTO.accion = this.parametroFormatoPipe.PRORROGATERMINACIONCONTRATO;\n    }\n\n    formatoDTO.masivo = Constantes.CONSTANTE_SI;\n    formatoDTO.usuario = this.authService.getTokenKey('usuario');\n    formatoDTO.tipoPermiso = \"elaborar\";\n    this.listaFormato = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('FormatoDTO', null, false, formatoDTO));\n\n    this.listaObjetoFormato = await this.listaFormato.reduce((obj, area) => {\n      obj[area.key] = area.label;\n      return obj;\n    }, {});\n  }\n\n  async listadoProrroga() {\n    this.tipo = \"terminacion\";\n    this.formatoGenerar = 0;\n    this.filtroEmpleadoModel = new EmpleadoModel();\n    this.filtroEmpleadoModel.soloActivos = \"ActivoDeterminados\";\n    this.cargarListaFormato();\n    let event = {}\n    this.cargarLista(event);\n    //Menú\n    this.cargarMenu();\n    this.cargarAccionesBoton();\n  }\n\n  listadoEncargo() {\n\n    this.formatoGenerar = 0;\n    this.tipo = \"encargo\";\n    this.filtroEmpleadoModel = new EmpleadoModel();\n    this.filtroEmpleadoModel.soloActivos = \"ActivoEncargo\";\n    this.cargarListaFormato();\n    let event = {}\n    this.cargarLista(event);\n    //Menú\n    this.cargarMenu();\n\n  }\n\n  async cargarLista(event) {\n    this.isLoadingData = true;\n    this.filtroEmpleadoModel.comodinBuscarNombre = event['nombreCompleto'] ? event['nombreCompleto']['value'] : null;\n    this.filtroEmpleadoModel.documento = event['documento'] ? event['documento']['value'] : null;\n    this.filtroEmpleadoModel.contrato = event['contrato'] ? event['contrato']['value'] : null;\n    this.filtroEmpleadoModel.vinculacion = event['vinculacion'] ? event['vinculacion']['value'] : null;\n\n    if (this.tipo == 'terminacion') {\n      this.filtroEmpleadoModel.fechaInicialTermina = event['rangofechas'] && event['rangofechas']['value'][0] ? new Date(event['rangofechas']['value'][0]) : null;\n      this.filtroEmpleadoModel.fechaFinalTermina = event['rangofechas'] && event['rangofechas']['value'][1] ? new Date(event['rangofechas']['value'][1]) : null;\n    }\n\n    if (this.tipo == 'encargo') {\n      this.filtroEmpleadoModel.fechaInicialEncargo = event['rangofechas'] && event['rangofechas']['value'][0] ? new Date(event['rangofechas']['value'][0]) : null;\n      this.filtroEmpleadoModel.fechaFinalEncargo = event['rangofechas'] && event['rangofechas']['value'][1] ? new Date(event['rangofechas']['value'][1]) : null;\n    }\n\n    this.filtroEmpleadoModel.unidadDescripcion = event['nombreUnidad'] ? this.unidad.nombreUnidad : null;\n    this.filtroEmpleadoModel.zonaEconomica = event['zonaEconomica'] ? this.zonaCentro.zonaEconomica : null;\n    this.filtroEmpleadoModel.centroCosto = event['zonaEconomica'] ? this.zonaCentro.centroCosto : null;\n    this.filtroEmpleadoModel.unidad = event['unidad'] ? this.unidad.unidad : null;\n    this.filtroEmpleadoModel.cargo = event['cargo'] ? this.cargo.cargo : null;\n    this.filtroEmpleadoModel.tipoPeriodo = event['tipoPeriodo'] ? event['tipoPeriodo']['value'] : null;\n    this.formatoGenerar = event['formatoGenerar'] ? event['formatoGenerar']['value'] : this.formatoGenerar;\n\n    this.filtroEmpleadoModel.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.filtroEmpleadoModel.usuarioLogin = this.authService.getTokenKey('usuario');\n    this.filtroEmpleadoModel.usuarioRol = this.authService.getTokenKey('aliasRol');\n\n    this.lista = await this.empleadoService.listaEmpleadosActoMasivo(this.filtroEmpleadoModel, this.formatoGenerar, this.tipo);\n\n    this.seleccionarTodo = false;\n    this.seleccionar = true;\n\n    this.lista.forEach(item => {\n      item.nombreCompleto = (item.primerApellido ? item.primerApellido : '') + ' ' + (item.segundoApellido ? item.segundoApellido : '') + ' ' + item.nombres;\n      item.nombreCompleto = item.nombreCompleto.toLowerCase();\n      item.nombreCompleto = item.nombreCompleto.replace(/\\b\\w/g, l => l.toUpperCase())\n\n      item = this.getUnidadNombreOcupa(item);\n      item = this.getUnidadOcupa(item);\n      item = this.getCargoNombreOcupa(item);\n      item = this.getCargoOcupa(item);\n    });\n\n    this.isLoadingData = false;\n  }\n\n  cambiarEstadoCheck() {\n\n    if (this.seleccionar) {\n      this.seleccionar = false;\n      for (let per of this.lista) {\n        per.check = true;\n      }\n    } else {\n      this.seleccionar = true;\n      for (let per of this.lista) {\n        per.check = false;\n      }\n    }\n    return null;\n\n  }\n\n  estadoCheck(dato: any) {\n\n    let isvalidar = false;\n\n    for (let per of this.lista) {\n      if (!per.check) {\n        isvalidar = true;\n        break;\n      }\n    }\n\n    if (isvalidar) {\n      this.seleccionar = true;\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionar = false;\n      this.seleccionarTodo = true;\n    }\n\n  }\n\n  registroSeleccionado(event) {\n\n  }\n\n  async prorrogar() {\n\n    if (await this.selecciona()) {\n\n      this.confirmationService.confirm({\n        header: 'Confirmación',\n        message: '¿Desea realizar proceso de prorroga?',\n        icon: 'confirmar',\n        accept: () => {\n          this.cargarMenu()\n          this.setProrroga();\n        },\n        reject: () => {\n          this.llaveProceso = \"\";\n          this.mostrarReporte = false;\n          return;\n        }\n      });\n\n    } else {\n      this.toastService.showWarning(\"Debe seleccionar al menos un registro...\");\n      return;\n    }\n\n  }\n\n  async selecciona(): Promise<boolean> {\n\n    this.listaSeleccionados = [];\n\n    if (this.lista.length > 0) {\n      for (let ser of this.lista) {\n        if (ser.check) {\n          this.listaSeleccionados.push(ser);\n        }\n      }\n    }\n    return this.listaSeleccionados.length > 0;\n  }\n\n  async setProrroga() {\n\n    this.llaveProceso = this.utilServices.generarLlave();\n    this.listaInconsistencia = await this.novedadServices.terminacionProrroga(this.listaSeleccionados, this.authService.getTokenKey('usuario'), this.llaveProceso, true, null);\n    this.mostrarReporte = this.listaInconsistencia.length != this.listaSeleccionados.length;\n    this.toastService.showSuccess(\"Proceso realizado\");\n  }\n\n  cargarInconsistencias() {\n\n    let label: any = 'Listado Inconsistencias';\n\n    this.cargarFiltroGeneral = this.filtroItem;\n\n    this.menuService.setBreadcrumb([{\n      label: 'Listado Control Prorroga', command: (event) => {\n        this.visualizar = '',\n          this.cargarMigaPan()\n      }\n    },\n    { label: label }]);\n\n    this.visualizar = 'detalle';\n\n  }\n\n  async ejecutarActo() {\n\n    //Pendiente acto adminstrativo, charla con el Inge Francisco\n\n    if (!(await this.selecciona())) {\n      this.toastService.showWarning(\"Seleccione por lo menos un empleado\");\n      return;\n    }\n\n    if (this.formatoGenerar == null || this.formatoGenerar == 0) {\n      this.toastService.showWarning(\"Debe seleccionar un formato a generar\");\n      return;\n    }\n\n    let formatoModel = new FormatoModel();\n    formatoModel.llave = this.formatoGenerar;\n    let objetoFormato: GeneralModel = new GeneralModel('FormatoDTO', null, false, formatoModel);\n    formatoModel = await this.generalService.queryForObject(objetoFormato).toPromise();\n\n    this.formatoProrroga(formatoModel);\n  }\n\n  async formatoProrroga(formato: FormatoModel) {\n\n    if (!formato) {\n      return;\n    }\n\n    let listaGrupos: UsuarioFormatoModel[] = await this.usuarioFormato.buscarFormatoGrupo(this.listaSeleccionados[0].vinculacion, null, formato.llave, null);\n\n    if (listaGrupos.length == 0 || !listaGrupos) {\n      this.toastService.showSuccess('Grupo de formato/vinculación no encontrado');\n      return;\n    }\n\n    this.visualizar = 'ir_acto_prorroga';\n\n    await this.utilServices.sleep(500);\n\n    await this.actosProrrogaTemporalComponent.nuevoProrrogaMasiva(parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      formato.llave, listaGrupos[0].grupo, this.listaSeleccionados);\n  }\n\n  async terminarNovedad() {\n\n    this.porNovedad = true;\n\n    if (await (this.selecciona())) {\n      this.confirmationService.confirm({\n        header: 'Confirmación',\n        message: '¿Desea realizar proceso de terminación por novedad?',\n        icon: 'confirmar',\n        accept: () => {\n          this.destinoTerminar();\n        },\n        reject: () => {\n          this.llaveProceso = \"\";\n          this.mostrarReporte = false;\n          return;\n        }\n      });\n    } else {\n      this.toastService.showWarning('Seleccione por lo menos un empleado');\n    }\n  }\n\n  async destinoTerminar() {\n\n    try {\n\n      this.llaveProceso = this.utilServices.generarLlave();\n      if (this.porNovedad) {\n        this.listaInconsistencia = await this.novedadServices.terminacionProrroga(this.listaSeleccionados, this.authService.getTokenKey('usuario'), this.llaveProceso, false, null);\n      }\n      else {\n        this.listaInconsistencia = await this.empleadoService.procesoLiquidacion(this.listaSeleccionados);\n      }\n      this.mostrarReporte = this.listaInconsistencia.length != this.listaSeleccionados.length;\n      this.filtrar();\n      this.filtroItem.aplicarFiltros();\n      this.utilServices.sleep(200);\n      this.toastService.showSuccess(\"Proceso realizado\");\n\n    } catch (e) {\n      return null;\n    }\n  }\n\n  filtrar() {\n    this.listaInconsistencia = [];\n    this.mostrarInconsistencia = false;\n    this.mostrarReporte = false;\n  }\n\n  async terminar() {\n    this.porNovedad = false;\n\n    if (await (this.selecciona())) {\n      this.confirmationService.confirm({\n        header: 'Confirmación',\n        message: '¿Desea realizar proceso de terminación por proceso liquidación?',\n        icon: 'confirmar',\n        accept: () => {\n          this.destinoTerminar();\n        },\n        reject: () => {\n          this.llaveProceso = \"\";\n          this.mostrarReporte = false;\n          return;\n        }\n      });\n    } else {\n      this.toastService.showWarning('Seleccione por lo menos un empleado');\n    }\n  }\n\n  regresar() {\n    this.cargarMigaPan();\n    this.visualizar = '';\n    this.filtroItem = this.cargarFiltroGeneral;\n  }\n\n  onSelectCentroCosto(event) {\n    this.zonaCentro.centroCosto = event.centroCosto;\n    this.zonaCentro.zonaEconomica = event.zonaEconomica;\n    this.zonaCentro.descripcionZona = event.descripcionZona;\n    this.zonaCentro.descripcion = event.descripcion;\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n\n  filtrarEnter(event) {\n    if (event.key === 'Enter') {\n      this.filtroItem.aplicarFiltros();\n    }\n  }\n\n  cargarUnidad(event) {\n    this.unidad.unidad = event.unidad;\n    this.unidad.nombreUnidad = event.nombreUnidad;\n  }\n\n  cargarCargo(event) {\n    this.cargo.cargo = event.cargo;\n    this.cargo.descripcion = event.descripcion;\n  }\n\n  getUnidadNombreOcupa(empleado: EmpleadoModel): EmpleadoModel {\n    if (!empleado.unidadFuncion || empleado.unidadFuncion.trim() == '.') {\n      empleado.unidadNombreOcupa = empleado.unidadNombreTitular;\n    } else {\n      empleado.unidadNombreOcupa = empleado.unidadNombreEncargo;\n    }\n    return empleado;\n  }\n\n  getUnidadOcupa(empleado: EmpleadoModel): EmpleadoModel {\n    if (!empleado.unidadFuncion || empleado.unidadFuncion.trim() == '.') {\n      empleado.unidadOcupa = empleado.unidad;\n    } else {\n      empleado.unidadOcupa = empleado.unidadFuncion;\n    }\n    return empleado;\n  }\n\n  getCargoNombreOcupa(empleado: EmpleadoModel): EmpleadoModel {\n    if (!empleado.cargoFuncion || empleado.cargoFuncion.trim() == '.') {\n      empleado.cargoNombreOcupa = empleado.cargoNombreTitular;\n    } else {\n      empleado.cargoNombreOcupa = empleado.cargoNombreEncargo;\n    }\n    return empleado;\n  }\n\n  getCargoOcupa(empleado: EmpleadoModel): EmpleadoModel {\n    if (!empleado.cargoFuncion || empleado.cargoFuncion.trim() == '.') {\n      empleado.cargoOcupa = empleado.cargo;\n    } else {\n      empleado.cargoOcupa = empleado.cargoFuncion;\n    }\n    return empleado;\n  }\n\n  cargarAccionesBoton() {\n\n    this.itemsBotonAcciones = [\n      {\n        label: this.translateService.instant('generarnovedad'), icon: 'glyphicons glyphicons-inbox-in',\n        visible: this.verificarControl('lisconpro:prorrogar'),\n        command:\n          (event) => {\n            this.prorrogar();\n          }\n      },\n      {\n        label: this.translateService.instant('acto'), icon: 'glyphicons glyphicons-pen',\n        visible: this.verificarControl('lisconpro:prorrogar'),\n        command:\n          (event) => {\n            this.ejecutarActo();\n          }\n      },\n      {\n        label: this.translateService.instant('terminar'), icon: 'glyphicons glyphicons-user-ban',\n        visible: this.verificarControl('lisconpro:terminar'),\n        command:\n          (event) => {\n            this.terminarNovedad();\n          }\n      },\n      {\n        label: this.translateService.instant('terminardirecto'), icon: 'glyphicons glyphicons-user-ban',\n        visible: this.verificarControl('lisconpro:terminardirecto'),\n        command:\n          (event) => {\n            this.terminar();\n          }\n      },\n    ]\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  cargarReporte() {\n    //punto proceso ejecutar reporte\n  }\n\n  regresarAction(event) {\n    this.visualizar = '';\n  }\n\n}\n","<p-confirmPopup key=\"prorroga\"></p-confirmPopup>\n\n<p-confirmDialog #cd>\n    <ng-template pTemplate=\"footer\">\n        <div class=\"mt-3\">\n            <button type=\"button\" class=\"p-button-outlined-button-secondary p-button-outlined p-button p-component\"\n                pButton icon=\"pi pi-times\" label=\"No\" (click)=\"cd.reject()\"></button>\n            <button type=\"button\" pButton icon=\"pi pi-check\" label=\"Si\" class=\"p-button-raised\"\n                (click)=\"cd.accept()\"></button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n\n<div id=\"id_listado_control_prorroga\" [hidden]=\"visualizar !== ''\">\n\n    <h1>{{'control' | translate}} {{'prorroga' | translate}}</h1>\n\n    <!-- Menu Superior -->\n    <p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>\n\n    <h5 *ngIf=\"tipo == 'terminacion' && !isCliente()\" class=\"mt-4\">{{'listadoprorrogacontrato' | translate}}</h5>\n    <h5 *ngIf=\"tipo == 'encargo' && !isCliente()\" class=\"mt-4\">{{'listadoprorrogaencargo' | translate}}</h5>\n\n    <div class=\"mt-2\">\n\n        <div class=\"flex justify-content-between align-items-center mb-3 mt-3\">\n            <!-- Filtro-->\n            <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"flex mt-3\">\n                            <div class=\"mr-3 w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <!-- filtro Nombre-->\n                                <span class=\"p-float-label\">\n                                    <input pInputText type=\"text\" id=\"id_nombreCompleto\"\n                                        formControlName=\"nombreCompleto\" autocomplete=\"off\"\n                                        (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label for=\"id_responsable\">{{'nombrefuncionario' | translate}}</label>\n                                </span>\n                            </div>\n                            <div class=\"mr-3 w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <!-- filtro Documento-->\n                                <span class=\"p-float-label\">\n                                    <input pInputText type=\"text\" id=\"id_documento\" formControlName=\"documento\"\n                                        autocomplete=\"off\" (keydown)=\"filtrarEnter($event)\" [maxlength]=\"20\"\n                                        (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label for=\"id_responsable\">{{'identificacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <div class=\"w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <!-- filtro Contrato-->\n                                <span class=\"p-float-label\">\n                                    <input pInputText type=\"text\" id=\"id_contrato\" formControlName=\"contrato\"\n                                        autocomplete=\"off\" [maxlength]=\"20\"\n                                        onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                                        (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                    <label for=\"id_responsable\">{{'contrato' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n\n                        <div class=\"flex mt-3\">\n                            <!-- filtro Vinculación-->\n                            <div class=\"mr-3 w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown inputId=\"id_vinculacion\" [options]=\"listadoVinculacionLabora\"\n                                        optionLabel=\"label\" optionValue=\"key\" [autoDisplayFirst]=\"false\"\n                                        formControlName=\"vinculacion\" [showClear]=\"true\" [virtualScroll]=\"true\"\n                                        [virtualScrollItemSize]=\"38\"></p-dropdown>\n                                    <label for=\"id_vinculacion\">{{'vinculacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- Filtro Zona Centro -->\n                            <div class=\"mr-3 w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <span class=\"p-float-label\">\n                                    <app-input-helper-seleccion-zona-centro [readonly]=\"false\" [showDialog]=\"false\"\n                                        [label]=\"zonaCentro.descripcionZona  == null ? '' : zonaCentro.descripcionZona\"\n                                        [labelIntput]=\"'Zona Económica'\" (onSelected)=\"onSelectCentroCosto($event)\"\n                                        formControlName=\"zonaEconomica\" [(ngModel)]=\"zonaCentro.descripcionZona\"\n                                        (keydown.enter)=\"handleEnterKey($event)\" [mostrarZonaLabel]=\"true\">\n                                    </app-input-helper-seleccion-zona-centro>\n                                </span>\n                            </div>\n                            <!-- Filtro Centro Costo -->\n                            <div class=\"w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"id_descripcion\"\n                                        formControlName=\"centroCosto\" [(ngModel)]=\"zonaCentro.descripcion\"\n                                        autocomplete=\"off\" readonly />\n                                    <label>{{'centrocosto' | translate}} </label>\n                                </span>\n                            </div>\n                        </div>\n\n                        <div class=\"flex mt-3\">\n                            <!-- Filtro Unidad -->\n                            <div class=\"mr-3 w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <app-input-helper-unidad-usuario formControlName=\"unidad\" [readonly]=\"false\"\n                                    [label]=\"unidad.nombreUnidad == null ? '' : unidad.nombreUnidad\"\n                                    (onSelected)=\"cargarUnidad($event)\" [(ngModel)]=\"unidad.nombreUnidad\"\n                                    [header]=\"this.translateService.instant('unidad' | translate)\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                                </app-input-helper-unidad-usuario>\n                            </div>\n                            <!-- Filtro Cargo -->\n                            <div class=\"mr-3 w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <app-input-helper-seleccion-cargo formControlName=\"cargo\" [readonly]=\"false\"\n                                    [label]=\"cargo.descripcion == null ? '' : cargo.descripcion\"\n                                    (onSelected)=\"cargarCargo($event)\" [(ngModel)]=\"cargo.descripcion\"\n                                    [header]=\"this.translateService.instant('cargo' | translate)\">\n                                </app-input-helper-seleccion-cargo>\n                            </div>\n\n                            <div class=\"w-full\" style=\"min-width:15rem; max-width:15rem\">\n                                <!-- filtro Tipo Periodo-->\n                                <span class=\"p-float-label\">\n                                    <p-dropdown inputId=\"id_tipoPeriodo\" [options]=\"listadoTipoPeriodo\"\n                                        optionLabel=\"label\" optionValue=\"key\" [autoDisplayFirst]=\"false\"\n                                        formControlName=\"tipoPeriodo\" [showClear]=\"true\"></p-dropdown>\n                                    <label for=\"id_tipoPeriodo\">{{'tipoperiodo' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n\n                        <div class=\"flex mt-3\">\n                            <!--Rango Fecha-->\n                            <div class=\"mr-3\" style=\"min-width:15rem; max-width:15rem\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar selectionMode=\"range\" dateFormat=\"dd/mm/yy\"\n                                        formControlName=\"rangofechas\"></p-calendar>\n                                    <label>{{'rangofechas' | translate}}</label>\n                                </span>\n                            </div>\n\n                            <!-- filtro Formato-->\n                            <div class=\"w-full\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown inputId=\"id_formator\" [options]=\"listaFormato\" optionLabel=\"label\"\n                                        optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"formatoGenerar\"\n                                        [showClear]=\"true\"></p-dropdown>\n                                    <label for=\"id_formato\">{{'formato' | translate}}</label>\n                                </span>\n                            </div>\n\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n\n            <div class=\"flex justify-content-end\">\n\n                <!-- Botón Punto proceso-->\n                @if(mostrarReporte){\n                <div style=\"margin-top: -6px;\">\n                    <app-punto-proceso-comp [key]=\"'listadoControlProrrogaBean'\"\n                        [componente]=\"this\"></app-punto-proceso-comp>\n                </div>\n                }\n                <!-- Botón de Inconsistencias-->\n                <button pButton pRipple label=\"{{'inconsistencias' | translate}}\" (click)=\"cargarInconsistencias()\"\n                    icon=\"pi pi-plus\" *ngIf=\"listaInconsistencia.length > 0\"\n                    class=\"p-button-secondary font-semibold ml-2 border-solid-1 border-color-75 w-11rem\"></button>\n\n                <!-- Botón Listado Prorroga Contrato-->\n                @if( this.verificarControl('lisconpro:prorrogar') || this.verificarControl('lisconpro:terminar')\n                || this.verificarControl('lisconpro:terminardirecto')){\n                <div class=\"ml-2\">\n                    <p-splitButton *ngIf=\"tipo == 'terminacion'\" label=\"Acciones Contrato\"\n                        icon=\"glyphicons glyphicons-list\" [model]=\"itemsBotonAcciones\"></p-splitButton>\n                </div>\n                }\n\n                <!-- Botón Listado Prorroga Encargo-->\n                <button pButton pRipple label=\"{{'actoencargo' | translate}}\" (click)=\"ejecutarActo()\"\n                    icon=\"glyphicons glyphicons-pen\" *ngIf=\"tipo == 'encargo'\"\n                    class=\"p-button-secondary font-semibold border-solid-1 border-color-75 ml-2\"></button>\n\n            </div>\n        </div>\n\n        <p-table #tablaGeneral id=\"tabla_listado_control_prorroga\" [value]=\"lista\" responsiveLayout=\"scroll\" [rows]=\"10\"\n            scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [paginator]=\"lista.length > 10\"\n            [scrollable]=\"true\" [totalRecords]=\"lista.length\" [showCurrentPageReport]=\"true\"\n            [rowsPerPageOptions]=\"[10, 20, 50]\" [loading]=\"isLoadingData\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n            (onRowSelect)=\"registroSeleccionado($event)\">\n\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th *ngIf=\"lista.length > 0\">\n                        <p-checkbox [(ngModel)]=\"seleccionarTodo\" (onChange)=\"cambiarEstadoCheck()\" [binary]=\"true\"\n                            (click)=\"$event.stopPropagation()\">\n                        </p-checkbox>\n                    </th>\n                    <th>{{'contrato' | translate}}</th>\n                    <th>{{'identificacion' | translate}}</th>\n                    <th>{{'nombrefuncionario' | translate}}</th>\n                    <th>{{'unidad' | translate}}</th>\n                    <th>{{'cargo' | translate}}</th>\n                    <th>{{'fechaingreso' | translate}}</th>\n                    <th *ngIf=\"tipo == 'terminacion'\">{{'fechatermina' | translate}}</th>\n                    <th *ngIf=\"tipo == 'terminacion'\">{{'numeroprorroga' | translate}}</th>\n                    <th *ngIf=\"tipo == 'encargo'\">{{'fechatermina' | translate}}</th>\n                </tr>\n                <th></th>\n            </ng-template>\n\n            <ng-template pTemplate=\"body\" let-dato>\n                <tr>\n                    <td style=\"max-width:50px\">\n                        <div class=\"field-checkbox\">\n                            <p-checkbox [(ngModel)]=\"dato.check\" [binary]=\"true\" (onChange)=\"estadoCheck(dato)\"\n                                (click)=\"$event.stopPropagation()\">\n                            </p-checkbox>\n                        </div>\n                    </td>\n                    <td>{{dato.contrato}}</td>\n                    <td>{{dato.documento}}</td>\n                    <td>{{dato.nombreCompleto}}</td>\n                    <td>{{dato.unidadNombreOcupa | titlecase}}</td>\n                    <td>{{dato.cargoNombreOcupa | titlecase}}</td>\n                    <td>{{dato.fechaIngreso | date:('formatofecha'|translate)}}</td>\n                    <td *ngIf=\"tipo == 'terminacion'\">{{dato.fechaTermina | date:('formatofecha'|translate)}}</td>\n                    <td *ngIf=\"tipo == 'terminacion'\">{{dato.numeroProrroga}}</td>\n                    <td *ngIf=\"tipo == 'encargo'\">{{dato.congela | date:('formatofecha'|translate)}}</td>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n</div>\n\n<div id=\"id_listado_control_prorroga\" [hidden]=\"visualizar !== 'detalle'\">\n\n    <div class=\"flex align-items-center justify-content-between mb-3\">\n\n        <h1 class=\"mb-0\">{{'lista' | translate}} {{'inconsistencias' | translate}}</h1>\n\n        <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\"></button>\n\n    </div>\n\n    <p-table #tablaGeneralInconsistencias id=\"tabla_lista_inconsistencia\" [value]=\"listaInconsistencia\"\n        responsiveLayout=\"scroll\" [rows]=\"10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n        [paginator]=\"lista.length > 10\" [totalRecords]=\"lista.length\" [showCurrentPageReport]=\"true\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        (onRowSelect)=\"registroSeleccionado($event)\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'contrato' | translate}}</th>\n                <th>{{'identificacion' | translate}}</th>\n                <th>{{'nombrefuncionario' | translate}}</th>\n                <th>{{'mensaje' | translate}}</th>\n            </tr>\n            <th></th>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-dato>\n            <tr>\n                <td>{{dato.contrato}}</td>\n                <td>{{dato.documento}}</td>\n                <td>{{dato.nombreCompleto}}</td>\n                <td>{{dato.mensaje}}</td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n\n<div *ngIf=\"visualizar == 'ir_acto_prorroga'\">\n    <app-actos-prorroga-temporal [tipoSeleccionado]=\"tipoSeleccionado\"\n        (regresarAction)=\"regresarAction($event)\"></app-actos-prorroga-temporal>\n</div>","import { UnionModel } from 'general-library-union'\nimport { EtapaFaseGestionModel } from './EtapaFaseGestionModel';\n\n\nexport class FaseGestionHojaModel extends UnionModel {\n\t\n\tnombreEvaluacion: string;\n\tllaveGestionPeriodo: string;\n\tcedula: number;\n\tdocumento: string;\n\tpuntajeObtenido: number;\n\tcedulaResponsable: number;\n\tcedulaAutorizador: number;\n\tcedulaHistorico: number;\n\testado: string;\n\tnombreEstado: string;\n\ttipoEvaluador: string;\n\ttipoNombreEvaluador: string;\n\tnombreFase: string;\n\tllaveFase: string;\n\tllave: string;\n\tfechaLimite: Date;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tfechaAplicado: Date;\n\tnumeroSeguimiento: number;\n\tllaveGestionHoja: string;\n\tllavetipoEvaluador: string;\n\tpeso: number;\n\tunidadPK: string;\n\tcargoPK: string;\n\tempresa: number;\n\tconcertada: string;\n\t  fechaUltimoAviso: Date;\n\tdiasAviso: number;\n\tdiasAvisoFase: number;\n\tcontrato: number;\n\testadoPrimario: string;\n\testadoSecundario: string;\n\tmensaje: string;\n\tfechaAsignacion: Date;\n\tnombreCompletoEvaluado: string;\n\tnombreCompletoResponsable: string;\n\tmailResposanble: string;\n\tmailResposanble2: string;\n\tmailAutoriza: string;\n\tnombreCompletoAutoriza: string;\n\tanoInicial: string;\n\testadoActivo: number;\n\tperiodoEvaluacion: string;\n\tperiodo:string;\n\tpuntaje: number;\n\tnombreCargo: string;\n\tnivelCargo: string;\n\tnombreUnidad: string;\n\tfactor: number;\n\taccionGestion: string;\n\torganizacion: number;\n\tfechaInicioLimite: Date;\n\tfechaFinalLimite: Date;\n\trol: string;\n\tmensajeFinal: string;\n\tnombreClasificacion: string;\n\tclasificacionPK: string;\n\tprogramada: boolean;\n\tdocumentoResponsable: string;\n\tdocumentoAutorizador: string;\n\tllaveEtapaFase: string;\n\tmotivoReprograma: string;\n\tdocumentoActor: string;\n\tnombreActor: string;\n\tmailActor: string;\n\tcedulaActor: number;\n\tnotificaFinal: string;\n\tmailEvaluado: string;\n\tipUsuario: string;\n\tperfilFuncion: string;\n\ttipoEvaluacion: string;\n\tlugar: string;\n\tlistaEtapas: EtapaFaseGestionModel[];\n\ttipoPeriodo: number;\n\tcantidadCerrada: number;\n\tcantidadEvaluadores: number;\n\testadoHerramienta: string;\n\t//atributos para filtrar por permisos organizacion/empresa \n\t//en la herramienta\n\tempresaFiltro: number;\n\torganizacionFiltro: number;\n\tnombreFoto: string;\n\tactores: string;\n\thistorico: string;\n\tnombreEstadoPrimario:string;\n\tnombreEstadoSecundario:string;\n}","import { UnionModel } from 'general-library-union'\nimport { EscalaMetaHojaModel } from './EscalaMetaHojaModel';\nimport { SeguimientoMetaModel } from './SeguimientoMetaModel';\n\nexport class MetaEvaluacionModel extends UnionModel {\n\n\n    llave: string;\n    llaveFaseEvaluacion: string;\n    tema: string;\n    fechaInicio: Date;\n    fechaFinal: Date;\n    estado: string;\n    indicador: string;\n    prioridad: string;\n    accionMeta: string;\n    llaveGestionHoja: string;\n    accionPermitida: string;\n    competencia: string;\n    competenciaDescripcion: string;\n    competenciaTema: string;\n    tipo: string;\n    metaPlanAccion: MetaEvaluacionModel[];\n    nuevaMetaPlanAccion: MetaEvaluacionModel;\n    comodinSeguimiento: string;\n    cedula: number;\n    numeroSeguimiento: number;\n    contrato: number;\n    empresa: number;\n    email: string;\n    eMailAutoriza: string;\n    autoriza: number;\n    ultimoAviso: Date;\n    diasAviso: number;\n    nombreCompleto: string;\n    medida: string;\n    esperado: string;\n    codigoObjetivo: string;\n    nombreObjetivo: string;\n    valorCalifica: string;\n    puntaje: number;\n    detalleCalifica: string;\n    peso: number;\n    peso2: number;\n    metaEscala: EscalaMetaHojaModel[];\n    listaSeguimiento: SeguimientoMetaModel[];\n    valorAcuerdo: number;\n    porcentajeAcuerdo: number;\n    mensaje: string;\n    observacion: string;\n    porcentaje: number;\n    porcentaje2: number;\n    datoLista1: string;\n    datoLista2: string;\n    datoLista3: string;\n    datoLista4: string;\n    datoLista5: string;\n    procesoGestion: string;\n    valorAlcance1: number;\n    valorAlcance2: number;\n    valorAlcance3: number;\n    area: string;\n    responsable: string;\n    cadena1: string;\n    cadena2: string;\n    cadena3: string;\n    cadena4: string;\n    metaFaseGestion: string;\n    tipoCalifica: string;\n    descripcionTipoCalificacion: string;\n    tipoRecomendacion: string;\n    documento: string;\n    curso: string;\n    temaCapacitacion: string;\n    competenciaDimension: string;\n    orden: number;\n    ordenAdicion: number;\n    objetivoGeneral: string;\n    llaveObjetivoGeneral: string;\n    origenMeta: string;\n    funcionPuesto: string;\n    texto1: string;\n    texto2: string;\n    llaveFaseGestion: string;\n    cargo: string;\n    unidad: string;\n    nombreCargo: string;\n    nombreUnidad: string;\n    codigoMeta: string;\n    inicioPeriodo: Date;\n    mapaMensaje: Map<String, String>;\n\n    anexoOrigen: string;\n    anexoCarpeta: string;\n\n    anexoRuta: string;\n    anexoTemporal: string;\n\n    anexoOrigen2: string;\n    anexoCarpeta2: string;\n\n    anexoRuta2: string;\n    anexoTemporal2: string;\n}","import { UnionModel } from 'general-library-union'\nimport { ArchivoModel } from '../../hojavida/models/ArchivoModel';\n\nexport class SeguimientoMetaModel extends UnionModel {\n\n\tmetaGestionHoja: string;\n\tfaseGestionHoja: string;\n\tporcentaje: number;\n\tobservacion: string;\n\ttexto1: string;\n\ttexto2: string;\n\talcance: number;\n\tnumeroSeguimiento: number;\n\tvalor1: number;\n\tporcentajeAcuerdo: number;\n\tacuerdo: number;\n\tcadena1: string;\n\tcadena2: string;\n\tfecha: Date;\n\taviso: Date;\n\tanexos: ArchivoModel[];\n\n\tdimension: string;\n\tdescripcionDimension: string;\n\tcomportamientoDimension: string;\n\ttemaDimension: string;\n\tprocesoGestion: string;\n\tmensaje: string;\n\tllaveGestionHoja: string;\n\tetapaFaseGestion: string;\n\ttipoSeguimiento: string;\n\tvalorCalifica: string;\n\tpuntaje: number;\n\tdatoLista1: string;\n\tdatoLista2: string;\n\tdatoLista3: string;\n\n\tanexoOrigen: string;\n\tanexoCarpeta: string;\n\n\tanexoRuta: string;\n\tanexoTemporal: string;\n\n\n}","export class ReglillaExtremoComp {\n\n    public labelIzquierdo: string;\n\tpublic labelDerecho: string;\n\tpublic valores: any[];\n\tpublic seleccionado: string;\n\tpublic habilitado: boolean;\n\n    constructor(valores: any[], calificacionesDTO: any){\n\t\tthis.labelIzquierdo = calificacionesDTO.etiqueta;\n\t\tthis.labelDerecho = calificacionesDTO.etiqueta2;\n\t\tthis.valores = valores;\n\t\tthis.habilitado = true;\n\t}\n}","export class ReglillaComp {\n\n    public rowModel: string[];\n\tpublic colModel: any[];\n\tpublic listaValores: any[];\n\tpublic respuestas: any[];\n\tpublic valor: string;\n\n\tconstructor(listaValores?: any[], valor?: string){\n\t\tthis.listaValores = listaValores;\n\t\tthis.valor = valor;\n\t\tthis.generarDataModels();\n\t}\n\n\tgenerarDataModels() {\n\t\tconsole.log('generarDataModels')\n\t\tthis.rowModel = [];\n\t\t//Creamos una lista de un solo elemento para que la tabla tenga unicamente una sola fila\n\t\tthis.rowModel.push(' ');\n\t\tthis.colModel = [];\n\t\tthis.listaValores.sort((a, b) => a.orden - b.orden);\n\t\tvar dto1 = null;\n\t\tthis.respuestas = [];\n\t\t//Si la lista de opciones tiene datos agrupamos los valores por etiquetas\n\t\tconsole.log('generarDataModels')\n\t\tconsole.log(this.listaValores)\n\t\tif (this.listaValores.length > 0) {\n\t\t\tfor (var i = 0; i < this.listaValores.length; i++) {\n\t\t\t\tdto1 = this.listaValores[i];\n\t\t\t\tif(this.listaValores[0].etiqueta == null){\n\t\t\t\t\tconsole.error(\"Debe parametrizarse la etiqueta en el tipo de calificación\"); \n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.respuestas.push({value: dto1.llaveValor, label: dto1.descripcion});\n\t\t\t}\n\t\t\t//finalmente anadimos la utima columna a la tabla dinamica\n//\t\t\tcolModel.add(new ColumnaReglillaDTO(etiquetaActual, respuesta));\n\t\t}\n\t}\n}","import { UnionModel } from 'general-library-union'\n\nexport class EscalaMetaHojaModel extends UnionModel {\n\n\t\n    llave: string;\n\tmetaGestionHoja: string;\n\tvalor: string;\n\tmedida: string;\n\torden: number;\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CargarArchivosService } from '../../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../../shared/servicios/encriptado-basico.service';\nimport { AuthService, ToastService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ArchivoModel } from '../../../../../hojavida/models/ArchivoModel';\nimport { SeguimientoMetaModel } from '../../../../../talento/models/SeguimientoMetaModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-anexo-seguimiento',\n    templateUrl: './popup-anexo-seguimiento.component.html',\n    styleUrls: ['./popup-anexo-seguimiento.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, ButtonDirective, Ripple, NgIf, FormsModule, InputTextModule, FileUploadModule, TranslateModule]\n})\nexport class PopupAnexoSeguimientoComponent implements OnInit {\n\n  @Input() public mostrarPopup: boolean;\n  @Input() public seguimientoMeta: SeguimientoMetaModel ;\n  @Input() public habilitar: boolean;\n  @Input() public cedula: number;\n  @Output() public regresar = new EventEmitter();\n\n  public nuevoAnexo: boolean = false;\n  public archivoDTO: ArchivoModel;\n  public listaAnexos: ArchivoModel[] = []\n  public archivoSeleccionadoAnexo: File;\n\n  paginator={rows:10, totalRecords:0}\n\n  constructor(private notificacionesService: ToastService,\n              private cargarArchivo: CargarArchivosService,\n              private authService: AuthService,\n              private encriptadoBasico: EncriptadoBasicoService,\n              private confirmationService: ConfirmationService) { }\n\n  ngOnInit(): void {\n    this.nuevoAnexo = false;\n    this.archivoSeleccionadoAnexo = null;\n    this.cargarLista();\n  }\n\n  cargarLista(){\n    if(this.seguimientoMeta.anexos){\n      this.seguimientoMeta.anexos.forEach(archivo => {\n        this.listaAnexos.push(archivo);\n        this.paginator.totalRecords = this.listaAnexos.length;        \n      })\n    }\n  }\n\n  cargarAnexo(data: any, fubauto) {\n    this.archivoSeleccionadoAnexo = data.files[0];\n    this.readFile(this.archivoSeleccionadoAnexo);\n    this.notificacionesService.showSuccess('Se cargó el documento con éxito');\n    fubauto.clear();\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    //this.filename = file.name;\n  }\n\n  verNuevoAnexo(){\n    this.nuevoAnexo = true;\n    this.archivoSeleccionadoAnexo = null\n\t\tthis.archivoDTO = new ArchivoModel();\n\t\tthis.archivoDTO.identifica = this.cedula;\n\t\tthis.archivoDTO.llaveTablaArchivo = this.seguimientoMeta.llaveTabla;\n\t}\n\n  descargarAnexo(documento) {\n\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    console.log(documento)\n    //Ruta archivo\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llaveTabla + '.pdf'), propiedad, aplicacion).subscribe(blob => {\n      console.log(blob)\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.archivoorigen;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n  eliminarAnexo(event, documento) {\n\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea eliminar?',\n      header: 'Confirmar',\n      accept: () => {\n\n        let propiedad = 'ruta_anexosHojaVida'\n        let aplicacion = this.authService.getTokenKey('aplicacion');\n\n        /*this.hojaVidaService.eliminarAnexo(documento).subscribe({\n          next: (data) => {\n            if (data  == 1) {\n              this.notificacionesService.showSuccess('Se eliminó exitosamente');\n\n              //Ruta archivo\n\n              let rutaSeg = data;\n                this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(documento.rutaFisica), propiedad, aplicacion).subscribe(blob => { });\n\n              this.cargarListaAnexos()\n\n            } else {\n              this.notificacionesService.showError('Error en el método de eliminar recurso');\n              //this.isLoading = false;\n            }\n          },\n          error: (err) => {\n            var data = JSON.stringify(err.error.mensajeEtiqueta);\n            if (data.includes('ORA-02292')) {\n              this.notificacionesService.showError('El regitro se utiliza en otros tareas, No es posible eliminarlo');\n            }\n          },\n        });*/\n      },\n    });\n\n  }\n\n  guardarAnexo(){\n    if (this.archivoDTO.descripcion && this.archivoSeleccionadoAnexo){\n        \n    } else {\n      this.notificacionesService.showInfo('por favor diligenciar todos los campos')\n    }\n  }\n\n  mostrar(){\n    this.mostrarPopup = true;\n  }\n\n  ocultar(){\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n}\n","<p-dialog header=\"{{ 'anexo' | translate }} {{ 'seguimiento' | translate }}\" [(visible)]=\"mostrarPopup\"\n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '30vw' }\" (onShow)=\"mostrar()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <p-table #tablaGeneralDoc [value]=\"listaAnexos\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n        [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > paginator.rows\" scrollDirection=\"horizontal\"\n        styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\">\n        <ng-template pTemplate=\"header\">\n            <tr class=\"fondoTablaPincipal\">\n                <th></th>\n                <th>{{'descripcion' | translate}}</th>\n                <th>{{'nombre' | translate}}</th>\n                <th>{{'ver' | translate}}</th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-documento>\n            <tr>\n                <td>\n                    <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-bin\"\n                        (click)=\"eliminarAnexo($event, documento)\" type=\"file\"></button>\n                </td>\n                <td>{{documento.descripcion}}</td>\n                <td>{{documento.archivoorigen}}</td>\n                <td>\n                    <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-paperclip\"\n                        (click)=\"descargarAnexo(documento)\" type=\"file\"></button>\n                </td>\n\n            </tr>\n        </ng-template>\n    </p-table>\n\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n            label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevoAnexo()\"></button>\n    </div>\n\n    <div class=\"col-md-12\" *ngIf=\"nuevoAnexo\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <!-- DESCRIPCIÓN -->\n            <div class=\"field col-12 md:col-12\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_detalle\" [(ngModel)]=\"archivoDTO.descripcion\" required>\n                    <label htmlFor=\"detalle\">{{'detalle' | translate}} * </label>\n                </span>\n            </div>\n\n            <!-- DOCUMENTO -->\n            <div class=\"field col-12 md:col-4\">\n                <label htmlFor=\"detalle\">{{'examinar' | translate}}</label>\n                <p-fileUpload #fubauto chooseLabel=\"Cargar\" mode=\"basic\" [customUpload]=\"true\" accept=\"application/pdf\" chooseIcon=\"pi pi-paperclip\"\n                    (onSelect)=\"cargarAnexo($event, fubauto)\"></p-fileUpload>\n            </div>\n        </div>\n\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 mt-4 p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n                label=\"{{'link_guardar' | translate}}\" (click)=\"guardarAnexo()\"></button>\n        </div>\n    </div>\n\n</p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { AuthService, ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { FaseGestionHojaModel } from '../models/FaseGestionHojaModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EvaluacionService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService, private generalSvc: GeneralService,\n    private authService: AuthService,\n  ) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  borrarEvaluador(llaveFaseHoja: string): Observable<void>{\n    return this.httpClient.post<void>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacion/borrarEvaluador`, llaveFaseHoja).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  procesoBPM(llave: string): Observable<boolean>{\n    return this.httpClient.post<boolean>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacion/procesoBPM`, llave).pipe(\n      catchError(this.handleError)\n    );\n  }\n  async obtenerGestionHojaEvaluaciones(llaveHojaGestion: string,registroInicial: number,registroFinal: number, args: string): Promise<any[]>{\n    let general = new FormData();\n      general.append(\"llaveHojaGestion\",llaveHojaGestion);\n      general.append('registroInicial',registroInicial ? registroInicial.toString() : '');\n      general.append('registroFinal', registroFinal ? registroFinal?.toString(): '');\n      general.append(\"args\",args);\n      // FaseGestionHojaDTO \n      let comodinFase = new FaseGestionHojaModel();\n\t\t\tcomodinFase.llaveGestionHoja = (llaveHojaGestion);\n      comodinFase.paginacionRegistroInicial = (registroInicial);\n\t\t  comodinFase.paginacionRegistroFinal = (registroFinal);\n\t\t\tif (args?.length == 1) {\n\t\t\t\tif (\"R\" == (args[0])) {\n\t\t\t\t\tcomodinFase.concertada = (\"G\");\n\t\t\t\t} else {\n\t\t\t\t\tcomodinFase.concertada = (\"E\");\n\t\t\t\t}\n\t\t\t}\n      return this.generalSvc.queryForList(new GeneralModel('FaseGestionHojaDTO',null,false,comodinFase)).toPromise()\n    // return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacion/obtenerGestionHojaEvaluaciones`, general).pipe(\n    //   catchError(this.handleError)\n    // );\n  }\n  cantidadGestionHojaEvaluacion(llaveHojaGestion: string,args: string): Observable<number>{\n    let general = new FormData();\n      general.append(\"llaveHojaGestion\",llaveHojaGestion);\n      general.append(\"args\",args);\n    return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacion/cantidadGestionHojaEvaluacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  enviarCorreo(filtro: FaseGestionHojaModel): Observable<any>{\n    let general = new FormData();\n      general.append(\"filtro\",JSON.stringify(filtro));\n      general.append(\"login\",this.authService.getTokenKey('login'));\n      general.append(\"llaveRol\",this.authService.getTokenKey('llaveRol'));\n      general.append(\"llaveEmpresa\",this.authService.getTokenKey('llaveEmpresa'));\n      general.append(\"caminoAplicacion\",this.utilsService.obtenerBase());\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacion/enviarCorreo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  combinarArchivo(llaveGestionPeriodo: string,llavePlantilla: string, empresa: number,llaveEmpresa: string,archivo: string): Observable<any>{\n    let general = new FormData();\n      general.append(\"llaveGestionPeriodo\",llaveGestionPeriodo);\n      general.append(\"llavePlantilla\",llavePlantilla);\n      general.append(\"empresa\",empresa.toString());\n      general.append(\"llaveEmpresa\",llaveEmpresa);\n      general.append(\"archivo\",archivo);\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacion/combinarArchivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { DocumentoSoporteModel } from '../models/DocumentoSoporteModel';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DocumentoSoporteService {\n\n   \n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cantidadListaDocumentoSoporte(tipoPadre: string,llavePadre: string, clasificacion: string, tipo : string , faseGestion:string, aplicaReporte:string): Observable<any>{\n    let form = new  FormData;\n    form.append('tipoPadre',tipoPadre);\n    form.append('llavePadre',llavePadre);\n    form.append('clasificacion',clasificacion);\n    form.append('tipo',tipo);\n    form.append('faseGestion',faseGestion);\n    form.append('aplicaReporte',aplicaReporte);\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/documentosoporte/cantidadListaDocumentoSoporte`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  retornarArchivo(archivoResultado: string,llaveBase: string, aplicaReporte: string, documentoSoporteDTO : DocumentoSoporteModel , faseGestion:string): Observable<Blob>{\n    let form = new  FormData;\n    form.append('archivoResultado',archivoResultado);\n    form.append('llaveBase',llaveBase);\n    form.append('documentoSoporteDTO',JSON.stringify(documentoSoporteDTO));\n    form.append('faseGestion',faseGestion);\n    form.append('aplicaReporte',aplicaReporte);\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/sarageneral/documentosoporte/retornarArchivo`, form,{\n      responseType: 'blob'\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, TablaGeneralComponent } from 'general-library-union';\nimport { DocumentoSoporteModel } from '../../../sarageneral/models/DocumentoSoporteModel';\nimport { DialogModule } from 'primeng/dialog';\nimport { EvaluacionService } from '../../services/evaluacion.service';\nimport { DocumentoSoporteService } from '../../../sarageneral/services/documento-soporte.service';\n\n@Component({\n    selector: 'app-popup-consulta-documento-soporte',\n    templateUrl: './popup-consulta-documento-soporte.component.html',\n    styleUrls: ['./popup-consulta-documento-soporte.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TranslateModule, TablaGeneralComponent, FiltroGeneralComponent]\n})\nexport class PopupConsultaDocumentoSoporteComponent implements OnInit {\n\n  @Input() public mostrarPopup: boolean;\n  @Input() public tipoPadre: string; \n  @Input() public llavePadre: string; \n  @Input() public llaveBase: string; \n  @Input() public clasificacion: string; \n  @Input() public tipo: string; \n  @Input() public faseGestion: string; \n  @Input() public aplicaReporte: string;\n  @Output() public regresar = new EventEmitter();\n\n  public columns : any[] = [];\n  public loading: boolean;\n  public paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  public listaResultado:DocumentoSoporteModel[] = [];\n  regla: any;\n\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService, \n              private evaluacionSvc: EvaluacionService, \n              private authService: AuthService,\n              private documentoSoporteService: DocumentoSoporteService) { }\n\n  ngOnInit(): void {\n    this.columns = [\n      {\n        field:  'descripcion',\n        header: this.translateService.instant('planilla'),\n        width: 100,\n      },\n    ];\n  }\n\n  public init(destino: string,tipoPadre: string,llavePadre: string,llaveBase: string,clasificacion: string,tipo: string,regla: string,faseGestion: string,aplicaReporte: string): void {\n\t\t// archivoStreamPdf = null;\n\t\t// setDestino(destino);\n\t\tthis.tipoPadre = tipoPadre;\n\t\tthis.llavePadre = llavePadre;\n\t\tthis.llaveBase = llaveBase;\n\t\tthis.clasificacion = clasificacion;\n\t\tthis.tipo = tipo;\n\t\tthis.regla = regla;\n\t\tthis.faseGestion = faseGestion;\n\t\tthis.aplicaReporte = aplicaReporte;\n\t\tthis.cargarlistado(null);\n\t\tthis.mostrarPopup = true;\n\t}\n\n  async cargarlistado(event){\n    try {\n      this.loading = true\n      this.listaResultado = []\n      let objeto = {\n        paginacionRegistroInicial: event?.first,\n        paginacionRegistroFinal: event?.rows,\n        tablaPadre: this.tipoPadre,\n        llavePadre: this.llavePadre,\n        clasificacion: this.clasificacion,\n        tipo: this.tipo,\n        faseGestion: this.faseGestion,\n        aplicaReporte: this.aplicaReporte,\n      }\n      let general = new GeneralModel('DocumentoSoporteDTO', null, false, objeto)\n      this.listaResultado = await this.generalService.queryForList(general).toPromise();\n      this.paginator.totalRecords = await this.generalService.cantidadRegistros(general).toPromise();\n      this.loading = false;\n    } catch (error) {\n     console.log(error);\n    }\n  }\n\n  async seleccion(event){\n    //DocumentoSoporteDTO \n    let dto: DocumentoSoporteModel =  event;\n\t\ttry {\n\t\t\tawait this.evaluacionSvc.combinarArchivo(this.llaveBase, dto.planillaReporte, parseInt(this.authService.getTokenKey('numeroEmpresa')), this.authService.getTokenKey('llaveEmpresa'), dto.rutaArchivo).subscribe((data) => {\n        this.documentoSoporteService.retornarArchivo(data.ruta,this.llaveBase,this.aplicaReporte,dto,this.faseGestion).subscribe(async data => {\n          console.log(data);\n          const a = document.createElement('a')\n          const objectUrl = URL.createObjectURL(data)\n          a.href = objectUrl\n          a.download = dto.descripcion + '.pdf';\n          a.click();\n          URL.revokeObjectURL(objectUrl);\n          await this.ocultar()\n        });\n\n      });\n      \n    } catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn ;\n  }\n\n  mostrar(){\n    this.mostrarPopup = true;\n  }\n\n  ocultar(){\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n\n}\n","<p-dialog header=\"{{ 'documentosoporte' | translate }}\" [(visible)]=\"mostrarPopup\" \n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '30vw' }\" (onShow)=\"mostrar()\" \n    (onHide)=\"ocultar()\" [modal]=\"true\" >\n    <app-tabla-general #tablaGeneral [columns]=\"columns\" [value]=\"listaResultado\" [rows]=\"paginator.rows\" \n        [totalRecords]=\"paginator.totalRecords\" (onLoad)=\"cargarlistado($event)\" (onRowSelect)=\"seleccion($event)\" \n        [loading]=\"loading\"></app-tabla-general>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class HomologaIdiomaModel extends UnionModel {\n\n\ttabla: string;\n\tllaveOrigen: string;\n\tidioma: string;\n\tdescripcion: string;\n\tdescripcion2: string;\n\n\n\t}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DialogModule } from 'primeng/dialog';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DimensionModel } from '../../../../models/DimensionModel';\n\n@Component({\n  selector: 'app-popup-competencia-gestion',\n  standalone: true,\n  imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, TranslateModule],\n  templateUrl: './popup-competencia-gestion.component.html',\n  styleUrl: './popup-competencia-gestion.component.scss'\n})\nexport class PopupCompetenciaGestionComponent {\n\n  @Input() public mostrarPopup: boolean;\n  @Output() public regresar = new EventEmitter();\n  public listaDimension: DimensionModel[] = [];\n\n  seleccionar(event) {\n    this.regresar.emit(event.data);\n  }\n\n  mostrar(){\n    this.mostrarPopup = true;\n  }\n\n  ocultar(){\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n}\n","<p-dialog header=\"{{ 'competencia' | translate }}\" [(visible)]=\"mostrarPopup\"\n    [breakpoints]=\"{ '2000px': '40vw','1400px': '60vw','960px': '75vw','800px': '80vw', '700px': '100vw' }\" [style]=\"{ width: '50vw' }\"  (onShow)=\"mostrar()\"\n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <p-table #tablaGeneral dataKey=\"unaDimension\" [value]=\"listaDimension\" selectionMode=\"single\" responsiveLayout=\"scroll\" [rows]=\"10\"\n        [paginator]=\"listaDimension?.length > 10\" [totalRecords]=\"listaDimension?.length\" \n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"seleccionar($event)\" (onRowUnselect)=\"seleccionar($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 10%;\">{{\"competencia\" | translate}}</th>\n                <th style=\"width: 30%;\">{{\"descripcion\" | translate}}</th>\n                <th style=\"width: 30%;\">{{\"descripciondetalla\" | translate}}</th>\n                <th style=\"width: 30%;\">{{\"descripcionconducta\" | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-unaDimension>\n            <tr [pSelectableRow]=\"unaDimension\">\n                <td style=\"width: 10%;\">{{unaDimension.dimension}}</td>\n                <td style=\"width: 30%;\">\n                    <label>{{unaDimension.descripcion}}</label>\n                    <br/>\n                    <label>{{unaDimension.descripcionTipoDimension}}</label>\n                </td>\n                <td style=\"width: 30%;\">{{unaDimension.tema}}</td>\n                <td style=\"width: 30%;\">{{unaDimension.comportamiento}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'faseGestionHojaPipe'\n})\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FaseGestionHojaPipe implements PipeTransform {\n\n  VISUALIZAR = 'V';\n\tNOVISUALIZAR = 'N';\n\tINGRESODATO = 'S';\n\n\tRADIO = 'N';\n\tMANUAL = 'M';\n\tHORIZONTAL = 'H';\n\tEXTREMOS = 'X';\n\tCONSENSO = 'S';\n\n\tRADIO_DES = 'Reglilla por Defecto';\n\tHORIZONTAL_DES = 'Reglilla Horizontal Agrupada';\n\tEXTREMOS_DES = 'Reglilla Horizontal Extremos';\n\tMANUAL_DES = 'Dato Manual';\n\tDESCCONSENSO  = 'Consenso';\n\t\n\tLISTA_VALORES_COMPETENCIAS = [\n\t\t{codigo: this.RADIO, nombre: this.RADIO_DES},\n\t\t{codigo: this.HORIZONTAL, nombre: this.HORIZONTAL_DES},\n\t\t{codigo: this.EXTREMOS, nombre: this.EXTREMOS_DES},\n\t\t{codigo: this.MANUAL, nombre: this.MANUAL_DES},\n\t\t{codigo: this.CONSENSO, nombre: this.DESCCONSENSO},\n\t]\n\t\n\tVERDATO = 'S';\n\tSI = 'S';\n\n\tTOKEN ='|';\n\tNOINCLUIR = 'N';\n\tSIINCLUIR = 'S';\n\t\n\tPROGRAMADA = 'P';\n\tEVALUACION = 'E';\n\tAPLICADA = 'C';\n\tBLOQUEADA = 'B';\n\tPORAUTORIZAR = 'L';\n\tNOAUTORIZAR = 'N';\n\tNULA = '';\n\tRECONCERTADA = 'R';\n\t\n\tDESCPROGRAMADA = 'No Diligenciada';\n\tDESCEVALUACION = 'Diligenciada Parcialmente';\n\tDESCLEGALIZADA = 'Por Autorizar';\n\tDESCAPLICADA   = 'Aplicada';\n\tDESCBLOQUEADA  = 'Bloqueada';\n\tDESCPLANACCION  = 'Definici\\u00F3n Plan Acci\\u00F3n';\n\tDESCNOAUTORIZAR  = 'No autorizada';\n\tDESCPROCESO  = 'En Proceso';\n\tRECONCERTADA_DESC  = 'Reprogramada';\n\t\n\tMAILNOMBREFASE = 'nombrefase';\n\tMAILNOMBREEVALUACION = 'nombreevaluacion';\n\tMAILANNOEVALUACION = 'anoevaluacion';\n\tMAILNOMBREEVALUADOR = 'nombreevaluador';\n\tMAILIDENTIFICAEVALUADOR = 'identificaevaluador';\n\tMAILNOMBREEVALUADO = 'nombreevaluado';\n\tMAILIDENTIFICAEVALUADO = 'identificaevaluado';\n\tMAILFECHALIMITE = 'fechalimite';\n\tMAILESTADO = 'estadoevaluacion';\n\tMAILTEMA = 'tema';\n\tMAILMOTIVONOAUTORIZA = 'motivonoautoriza';\n\tMAILFECHAINICIAL='fechainicial';\n\tMAILFECHAFINAL='fechafinal';\n\tMAILLUGAR='lugar';\n\tMAILFECHACITACION='fechacitacion';\n\n\tMAILPLANTILLAMASIVO = 'evaluacionMasiva.html';\n\tMAILPLANTILLAAUTORIZA = 'evaluacionAutoriza.html';\n\tMAILPLANTILLANOAUTORIZA = 'evaluacionNoAutoriza.html';\n\tMAILPLANTILLAAUTORIZADA = 'evaluacionAutorizada.html';\n\tMAILRECUERDAPLAN = 'planAccionRecuerda.html';\n\n\tESTADOS = [\n\t\t{codigo: this.PROGRAMADA,  nombre: this.DESCPROGRAMADA},\n\t\t{codigo: this.EVALUACION,  nombre: this.DESCEVALUACION},\n\t\t{codigo: this.APLICADA,  nombre: this.DESCAPLICADA},\n\t\t{codigo: this.BLOQUEADA,  nombre: this.DESCBLOQUEADA},\n\t\t{codigo: this.PORAUTORIZAR,  nombre: this.DESCLEGALIZADA},\n\t\t{codigo: this.NOAUTORIZAR,  nombre: this.DESCNOAUTORIZAR},\n\t\t{codigo: this.CONSENSO,  nombre: this.DESCCONSENSO},\n\t\t{codigo: this.RECONCERTADA,  nombre: this.RECONCERTADA_DESC},\n  ]\n\t\n\tEVALUACIONEXTAORDINARIA='X';\n\tEVALUACIONEXTAORDINARIA_DESC='Evaluación Extraordinaria';\n\tEVALUACIONEVENTUAL='V';\n\tEVALUACIONEVENTUAL_DESC='Evaluación Eventual';\n\tNOAPLICA='N';\n\tNOAPLICA_DESC='No Aplica';\n\tGENERAL = 'G';\n\tGENERAL_DESC = 'General';\n\tCIERRE = 'C';\n\tCIERRE_DESC = 'Cierre';\n\t\n\tLISTA_TIPO_EVALUACION = [\n\t\t{codigo: this.NOAPLICA,  nombre: this.NOAPLICA_DESC},\n\t\t{codigo: this.EVALUACIONEXTAORDINARIA,  nombre: this.EVALUACIONEXTAORDINARIA_DESC},\n\t\t{codigo: this.EVALUACIONEVENTUAL,  nombre: this.EVALUACIONEVENTUAL_DESC},\n\t\t{codigo: this.GENERAL,  nombre: this.GENERAL_DESC},\n\t\t{codigo: this.CIERRE,  nombre: this.CIERRE_DESC},\n  ]\n\t\n\t\n\tEDITABLEREQUERIDO='S';\n\tEDITABLENOREQUERIDO='N';\n\tNOEDITABLE='V';\n\t\n\n\tLISTA_EDITABLE = [\n\t\t{codigo: this.EDITABLEREQUERIDO,  nombre: 'Editable requerido'},\n\t\t{codigo: this.EDITABLENOREQUERIDO, nombre: 'Editable opcional'},\n\t\t{codigo: this.NOEDITABLE, nombre: 'Solo visualizar'},\n  ]\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaEstado') { this.ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EvaluacionesService {\n\n    listProcedure(objetoFiltro: GeneralModel) {\n      throw new Error('Method not implemented.');\n    }\n\n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n      this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n    \n    consultarFaseGestionHojaPorNombre( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/consultarFaseGestionHojaPorNombre`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    enviarCorreo( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/enviarCorreo`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    obtenerFaseGestionHojaTotal( general: any ) : Observable<any>{\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/obtenerFaseGestionHojaTotal`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    obtenerCampoMetas(general: any): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/obtenerCampoMetas`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    obtenerCampoPlanAccion(general: any): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/obtenerCampoPlanAccion`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    obtenerListaDimensionPerfil(general: any): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/obtenerListaDimensionPerfil`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    obtenerListaDimensionFiltro(general: any): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/obtenerListaDimensionFiltro`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    actualizarCapacitacion(general: any): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/actualizarCapacitacion`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    aplicarEvaluacion(general: any): Observable<any> {\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/aplicarEvaluacion`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    actualizaPreguntaFase(general: any): Observable<any> {\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/actualizaPreguntaFase`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    validarPlanAvisoAccionEvaluacion(general: any): Observable<any> {\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/validarPlanAvisoAccionEvaluacion`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    actualizaPlanAvisoAccionEvaluacion(general: any): Observable<any> {\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/actualizaPlanAvisoAccionEvaluacion`, general).pipe(\n        catchError(this.handleError)\n      );\n    }\n\n    actualizarMetas(general: any): Observable<any> {\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/actualizarMetas`, general);\n    }\n    \n    actualizarCompetenciaSeg(general: any): Observable<any> {\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluaciones/actualizarCompetenciaSeg`, general);\n    }\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'gestionHerramientasPipe',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class GestionHerramientasPipe implements PipeTransform {\n\n\tNOEVALUADOR = 'S';\n\tSIEVALUADOR = 'N';\n\t\n\tNOEVALUADOR_DESC = 'No Asociar evaluado';\n\tSIEVALUADOR_DESC = 'Asociar evaluado';\n\n\n\tMAPA_TIPO_PERSONA = [\n\t\t{codigo: this.NOEVALUADOR, nombre: this.NOEVALUADOR_DESC},\n\t\t{codigo: this.SIEVALUADOR, nombre: this.SIEVALUADOR_DESC},\n\t]\n\n\n\tCOMPETENCIA_SEG = 'D';\n\tMETA = 'M';\n\tCAPACITACION = 'C';\n\tENCUESTA = 'E';\n\tPLAN_ACCION = 'P';\n\n\tMETA_DESC = 'Meta';\n\tCAPACITACION_DESC = 'Capacitacion';\n\tENCUESTA_DESC = 'Encuesta';\n\tPLAN_ACCION_DESC = 'Plan Accion';\n\tCOMP_SEG_DES = 'Seguimiento Competencias';\n\t\n\tMAPA_TIPO_ETAPA_FASE_GESTION = [\n\t\t{codigo: this.META, nombre: this.META_DESC},\n\t\t{codigo: this.CAPACITACION, nombre: this.CAPACITACION_DESC},\n\t\t{codigo: this.ENCUESTA, nombre: this.ENCUESTA_DESC},\n\t\t{codigo: this.PLAN_ACCION, nombre: this.PLAN_ACCION_DESC},\n\t\t{codigo: this.COMPETENCIA_SEG, nombre: this.COMP_SEG_DES},\n\t]\n\n\t\n\tINCLUIR_METAS = 'I';\n\tSOLO_SEGUIMIENTO = 'S';\n\tMETAS_Y_SEGUIMIENTO = 'A';\n\tEVALUAR = 'E';\n\n\tINCLUIR_METAS_DESC = 'Incluir Metas';\n\tSOLO_SEGUIMIENTO_DESC = 'Solo Seguimiento';\n\tMETAS_Y_SEGUIMIENTO_DESC = 'Incluir Metas y Seguimiento';\n\tEVALUAR_DESC = 'Evaluar';\n\t\n\tMAPA_TIPO_SEGUIMIENTO = [\n\t\t{codigo: this.INCLUIR_METAS, nombre: this.INCLUIR_METAS_DESC},\n\t\t{codigo: this.SOLO_SEGUIMIENTO, nombre: this.SOLO_SEGUIMIENTO_DESC},\n\t\t{codigo: this.METAS_Y_SEGUIMIENTO, nombre: this.METAS_Y_SEGUIMIENTO_DESC},\n\t\t{codigo: this.EVALUAR, nombre: this.EVALUAR_DESC},\n\t]\n\t\n\tMAPA_TIPO_SEGUIMIENTO_COMPETENCIA = [\n\t\t{codigo: this.SOLO_SEGUIMIENTO, nombre: this.SOLO_SEGUIMIENTO_DESC},\n\t\t{codigo: this.EVALUAR, nombre: this.EVALUAR_DESC},\n\t]\n\n\t\n\tORIGEN_MOTIVO_RECONCERTAR= 'F';\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaletapa1') { this.MAPA_TIPO_ETAPA_FASE_GESTION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { FaseGestionHojaModel } from '../../../models/FaseGestionHojaModel';\nimport { MetaEvaluacionModel } from '../../../models/MetaEvaluacionModel';\nimport { ResultadoEvaluacionModel } from '../../../models/ResultadoEvaluacionModel';\nimport { DimensionModel } from '../../../models/DimensionModel';\nimport { MetaFaseGestionModel } from '../../../models/MetaFaseGestionModel';\nimport { DimensionGestionHojaModel } from '../../../models/DimensionGestionHojaModel';\nimport { ValorCalificaModel } from '../../../models/ValorCalificaModel';\nimport { PreguntaEvaluacionModel } from '../../../models/PreguntaEvaluacionModel';\nimport { CapacitacionEvaluacionModel } from '../../../models/CapacitacionEvaluacionModel';\nimport { FaseGestionModel } from '../../../models/FaseGestionModel';\nimport { SeguimientoMetaModel } from '../../../models/SeguimientoMetaModel';\nimport { PlanillaGestionModel } from '../../../models/PlanillaGestionModel';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { EvaluacionHojaModel } from '../../../models/EvaluacionHojaModel';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { FaseGestionHojaPipe } from '../../../pipes/fase-gestion-hoja.pipe';\nimport { EvaluacionesService } from '../../../services/evaluaciones.service';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { GestionHerramientasPipe } from '../../../pipes/gestion-herramientas.pipe';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { ReglillaExtremoComp } from '../../../models/ReglillaExtremoComp';\nimport { ReglillaComp } from '../../../models/ReglillaComp';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { CaracteristicaOpcionModel } from '../../../../hojavida/models/CaracteristicaOpcionModel';\nimport { EscalaMetaHojaModel } from '../../../models/EscalaMetaHojaModel';\nimport { SafeHTMLPipe } from '../../../../../shared/pipes/safe-html.pipe';\nimport { PopupAnexoSeguimientoComponent } from '../popups/popup-anexo-seguimiento/popup-anexo-seguimiento.component';\nimport { PopupConsultaDocumentoSoporteComponent } from '../../../popups/popup-consulta-documento-soporte/popup-consulta-documento-soporte.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FormsModule } from '@angular/forms';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, DatePipe } from '@angular/common';\nimport { HomologaIdiomaModel } from '../../../../hojavida//models/HomologaIdiomaModel';\nimport { PopupCompetenciaGestionComponent } from '../popups/popup-competencia-gestion/popup-competencia-gestion.component';\nimport { AccordionModule } from 'primeng/accordion';\n\n@Component({\n  selector: 'app-fase-gestion-hoja-cont',\n  templateUrl: './fase-gestion-hoja-cont.component.html',\n  styleUrls: ['./fase-gestion-hoja-cont.component.scss'],\n  standalone: true,\n  imports: [\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    BreadcrumbModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    FormsModule,\n    InputTextareaModule,\n    CalendarModule,\n    InputNumberModule,\n    CheckboxModule,\n    DropdownModule,\n    NgFor,\n    RadioButtonModule,\n    InputTextModule,\n    PopupConsultaDocumentoSoporteComponent,\n    PopupAnexoSeguimientoComponent,\n    TranslateModule,\n    SafeHTMLPipe,\n    DatePipe,\n    PopupCompetenciaGestionComponent,\n    AccordionModule,\n  ],\n})\nexport class FaseGestionHojaContComponent implements OnInit {\n  @Output() public regresar = new EventEmitter();\n\n  public faseEvaluacionDTO: FaseGestionHojaModel;\n  public listaHistorico: FaseGestionHojaModel[] = [];\n  public llaveFaseEvaluacion: string;\n  public rol: string;\n  public planesAccion: any;\n  public listaResultadoCompetencia: ResultadoEvaluacionModel[] = [];\n  public listaCalificaMeta: any[] = [];\n  public listaCalificaMetaDes: any[] = [];\n  public listaObjetivo: any[] = [];\n  public listaCurso: any[] = [];\n  public listaTemaCapacitacion: any[] = [];\n  public listaMetaLista1: any[] = [];\n  public listaMetaLista2: any[] = [];\n  public listaMetaLista3: any[] = [];\n  public listaMetaLista4: any[] = [];\n  public listaMetaLista5: any[] = [];\n  public listaCompetenciaSegunFiltro: any[] = [];\n  public listaObjetivosGenerales: MetaFaseGestionModel[] = [];\n  public listaDimensiones: DimensionModel[] = [];\n  public listaDimensionesFiltro: DimensionModel[] = [];\n\n  public listaResultadoEvaluacion: DimensionGestionHojaModel[] = [];\n  public listaValoresMeta: ValorCalificaModel[] = [];\n  public listaPreguntaEvaluacionWrapper: any[] = [];\n  public listaPaginasEvaluacion: any[] = [];\n  public paginasEvaluacionActual: any = {}; //PaginasEvaluacionWrapper;\n\n  public competenciaSegEvaluacionWrapper: any; //CompetenciaSegEvaluacionWrapper;\n  public metaWrapper: any;\n  public borrarMetaEvaluacionDTO: MetaEvaluacionModel[] = [];\n  public capacitacionWrapper: any;\n  public borrarCapacitacion: CapacitacionEvaluacionModel[] = [];\n  public resultadoFinal: boolean;\n  public fueModificado: boolean;\n\n  public mostrarArchivoFase: boolean;\n  public periodo: boolean;\n  public mostrarArchivoHerramienta: boolean;\n  public faseGestionDTO: FaseGestionModel;\n  public mensajeInicial: string;\n  public ipUsuario: string;\n  public seguimiento: SeguimientoMetaModel;\n  public metaEvaluacion: MetaEvaluacionModel;\n  public unaMeta: MetaEvaluacionModel;\n  public unMetaOriginal: MetaEvaluacionModel;\n  public preguntaSelect: any;//PreguntaEvaluacionModel;\n  public planillaGestionDTO: PlanillaGestionModel;\n  public verUnaMetaDetalle: boolean;\n  public pasos: MenuItem[] = []; // BreadcrumbMenuModel;\n  public home = { icon: 'pi pi-home', routerLink: '/' };\n  public origen: string;\n  public empleadoDTO: EmpleadoModel;\n  public filtroBean: EvaluacionHojaModel;\n  public llaveEvaluacionHoja: string;\n  public puestoTrabajoDTO: PuestoTrabajoModel;\n  public etiquetaAutoriza: HomologaIdiomaModel;\n  private metaAnexo: MetaEvaluacionModel;\n  private factorAnexo: ResultadoEvaluacionModel;\n  public etiquetaNuevo: string;\n  private rutaAnexo: string;\n  private rutaTemporal: string;\n  private totalPorcentaje: number;\n  private totalPorcentajeDes: string;\n  private tituloPorcentaje: string;\n\n  public navegar: string;\n  public caminoFoto: string;\n\n  public cantidadPorPagina: number = 10;\n  public cantidadTotal: number;\n  public paginaActual: number;\n  public paginaTotal: number;\n  public ventana: any[];\n\n  public verFrame: boolean = false;\n  public mostrarPopupConsultaDocumentoSoporte: boolean = false;\n  public tipoPadre: string;\n  public llavePadre: string;\n  public llaveBase: string;\n  public clasificacion: string;\n  public tipo: string;\n  public faseGestion: string;\n  public aplicaReporte: string;\n\n  public mostrarPopupAnexoSeguimiento: boolean = false;\n  public consultaAnexoSeguimiento: boolean;\n  public seguimientoAnexo: SeguimientoMetaModel;\n  public mostrarPopupCompetenciaGestion: boolean = false;\n  @ViewChild(PopupCompetenciaGestionComponent) popupCompetenciaGestion : PopupCompetenciaGestionComponent;\n  public cedula;\n\n  public selectListPrioridad; //= this.selectListEvaluacionesService.getSelectListPrioridad();\n  public listaCompetencias; //= this.selectListEvaluacionesService.getListaCompetencias();\n  public selectListEstadoPlanAccion = [\n    { label: 'No', value: 'P' },\n    { label: 'Si', value: 'T' },\n    { label: 'Cancelada', value: 'C' },\n  ];\n\n  constructor(\n    private generalService: GeneralService,\n    private utilsService: UtilsService,\n    private saraAplicacionService: SaraAplicacionService,\n    private translateService: TranslateService,\n    private faseGesHojaPipe: FaseGestionHojaPipe,\n    private evaluacionesService: EvaluacionesService,\n    private confirmationService: ConfirmationService,\n    private notificacionesService: ToastService,\n    private gestionHerramientasPipe: GestionHerramientasPipe,\n    private cargarArchivo: CargarArchivosService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private parametrosEvaluacionPipe: ParametrosEvaluacionPipe,\n    public controlFuncionService: CargarControlFuncionalidadService,\n    private selectListEvaluacionesService: SelectListEvaluacionesService,\n    private authService: AuthService,\n    private menuService: MenuService,\n  ) {}\n\n  ngOnInit(): void {\n    this.cargarListas();\n  }\n\n  async cargarListas() {\n    this.selectListPrioridad =\n      await this.selectListEvaluacionesService.getSelectListPrioridad();\n    this.listaCompetencias =\n      await this.selectListEvaluacionesService.getListaCompetencias();\n  }\n\n  async setTraerFaseEvaluacion(llaveFaseHoja: string, origen: string) {\n    this.menuService.setBreadcrumb([{ label: 'Listado gestión hoja' }, { label: 'Detalle gestión hoja' }]);\n    this.verFrame = true;\n    this.verUnaMetaDetalle = false;\n    this.faseEvaluacionDTO = new FaseGestionHojaModel();\n    this.faseGestionDTO = new FaseGestionModel();\n    this.cantidadPorPagina = 30;\n    this.paginaTotal = 0;\n    this.paginaActual = 0;\n    this.fueModificado = false;\n    this.mostrarArchivoFase = false;\n    this.mostrarArchivoHerramienta = false;\n\n    this.resultadoFinal = false;\n\n    this.navegar = origen;\n\n    this.borrarMetaEvaluacionDTO = [];\n    this.borrarCapacitacion = [];\n    //llaveFaseHoja = StringUtils.rightPad(llaveFaseHoja,32);\n    this.llaveFaseEvaluacion = llaveFaseHoja;\n    this.cedula = await this.saraAplicacionService.getCedula();\n    await this.traeFaseHoja(llaveFaseHoja, true);\n    await this.defineRol();\n    await this.consultarLlavePlantilla();\n    this.planillaGestionDTO = new PlanillaGestionModel();\n\n    if (\n      this.paginasEvaluacionActual.etapaFaseGestionDTO != null &&\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso != null\n    ) {\n      this.planillaGestionDTO.llavePlanillaGestion =\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso;\n      this.planillaGestionDTO = await this.generalService\n        .queryForObject(\n          new GeneralModel(\n            'PlanillaGestionDTO',\n            null,\n            false,\n            this.planillaGestionDTO\n          )\n        )\n        .toPromise();\n    }\n\n    if (this.isLimiteFecha()) {\n      this.notificacionesService.showInfo(\n        'Evaluación ha sobre pasado la fecha limite para diligenciar'\n      );\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async traeFaseHoja(llave: string, procesoInicio: boolean) {\n    var verDimension = false;\n    this.fueModificado = false;\n    this.listaResultadoEvaluacion = null;\n    this.listaResultadoCompetencia = null;\n    this.listaPaginasEvaluacion = [];\n    this.faseEvaluacionDTO = await this.evaluacionesService\n      .obtenerFaseGestionHojaTotal({ llave: llave })\n      .toPromise();\n    if ('S' == this.faseEvaluacionDTO.historico) {\n      this.listaHistorico = await this.generalService\n        .queryForList(\n          new GeneralModel('FaseGestionHojaDTO', null, false, {\n            llaveFase: this.faseEvaluacionDTO.llaveFase,\n            cedula: this.faseEvaluacionDTO.cedula,\n            estado: 'C',\n          })\n        )\n        .toPromise();\n    } else {\n      this.listaHistorico = [];\n    }\n\n    this.listaCompetenciaSegunFiltro = [];\n    var lista = await this.generalService\n      .queryForList(\n        new GeneralModel('MetaFaseGestionDTO', null, false, {\n          planillaGestion: this.faseEvaluacionDTO.periodoEvaluacion,\n        })\n      )\n      .toPromise();\n    lista.forEach(async (data) => {\n      this.listaCompetenciaSegunFiltro.push({\n        codigo: data.competencia,\n        nombre: data.nombreCompetencia,\n      });\n    });\n    this.paginaTotal = 0;\n    if (await this.establecerMensajeInicial()) {\n      this.listaPaginasEvaluacion.push({ ultimo: false, actualizar: false });\n    }\n\tthis.traerEtiqueta();\n    this.pasos = [];\n    //pte breadcrumb\n    this.faseEvaluacionDTO.listaEtapas.forEach(async (data) => {\n      this.pasos.push({ label: data.descripcion });\n    });\n\n    var actualizar = true;\n    if (this.faseEvaluacionDTO.llaveEtapaFase != null) {\n      actualizar = false;\n    }\n\n    /* Carga las etapas de la fase de evaluacion */\n    var numeroPaso = 0;\n    this.faseEvaluacionDTO.listaEtapas.forEach(async (unaEtapa) => {\n      if (\n        this.faseEvaluacionDTO.llaveEtapaFase != null &&\n        this.faseEvaluacionDTO.llaveEtapaFase == unaEtapa.llaveTabla\n      ) {\n        actualizar = true;\n      }\n\n      if (unaEtapa.tipo == this.gestionHerramientasPipe.ENCUESTA) {\n        var cantidadPaginas: number = Math.floor(\n          unaEtapa.preguntas.length / this.cantidadPorPagina\n        );\n        if (unaEtapa.preguntas.length % this.cantidadPorPagina != 0) {\n          cantidadPaginas = cantidadPaginas + 1;\n        }\n        if (cantidadPaginas == 0) {\n          let paginaEvaluacion: any = {};\n          paginaEvaluacion.etapaFaseGestionDTO = unaEtapa;\n          paginaEvaluacion.ultimo = true;\n          paginaEvaluacion.registroInicial = 0;\n          paginaEvaluacion.registroFinal = 0;\n          paginaEvaluacion.numeroPaso = numeroPaso;\n          this.listaPaginasEvaluacion.push(paginaEvaluacion);\n        } else {\n          for (var i = 0; i < cantidadPaginas; i++) {\n            let paginaEvaluacion: any = {};\n            paginaEvaluacion.etapaFaseGestionDTO = unaEtapa;\n            paginaEvaluacion.registroInicial = i * this.cantidadPorPagina + 1;\n            paginaEvaluacion.registroFinal = (i + 1) * this.cantidadPorPagina;\n            paginaEvaluacion.ultimo = i == cantidadPaginas - 1;\n            paginaEvaluacion.actualizar = actualizar;\n            paginaEvaluacion.numeroPaso = numeroPaso;\n            this.listaPaginasEvaluacion.push(paginaEvaluacion);\n          }\n        }\n        if (verDimension == false) {\n          unaEtapa.preguntas.forEach(async (unaPregunta) => {\n            if (\n              this.parametrosEvaluacionPipe.COMPETENCIASEGUNUSUARIO ==\n              unaPregunta.tipo\n            ) {\n              verDimension = true;\n              return;\n            }\n          });\n        }\n      } else {\n        var paginaEvaluacion: any = {};\n        paginaEvaluacion.etapaFaseGestionDTO = unaEtapa;\n        paginaEvaluacion.ultimo = true;\n        paginaEvaluacion.actualizar = actualizar;\n        paginaEvaluacion.numeroPaso = numeroPaso;\n        this.listaPaginasEvaluacion.push(paginaEvaluacion);\n      }\n      numeroPaso++;\n    });\n    //this.listaPaginasEvaluacion.shift()\n    this.paginaTotal = this.listaPaginasEvaluacion.length;\n    if (this.paginaTotal == 0) {\n      this.notificacionesService.showInfo(\n        'No se presentaron etapas para definir'\n      );\n      return;\n    }\n    this.traerOpcionesMetas();\n    if (!procesoInicio) {\n      return;\n    }\n    this.paginaActual = 0;\n    await this.siguiente();\n    if (this.isVerBotonResultado()) {\n      this.traerDatosFinales();\n    }\n    console.log('verDimension' + verDimension)\n    if (verDimension) {\n      this.listaDimensiones = await this.evaluacionesService\n        .obtenerListaDimensionPerfil({empresa: this.faseEvaluacionDTO.empresa, unidadPK: this.faseEvaluacionDTO.unidadPK, \n          cargoPK: this.faseEvaluacionDTO.cargoPK, contrato: this.faseEvaluacionDTO.contrato,\n\t\t\t\t\tclasificacionPK: this.faseEvaluacionDTO.clasificacionPK, perfilFuncion: this.faseEvaluacionDTO.perfilFuncion})\n        .toPromise();\n      this.listaDimensionesFiltro = await this.evaluacionesService\n      .obtenerListaDimensionFiltro({empresa: this.faseEvaluacionDTO.empresa, unidadPK: this.faseEvaluacionDTO.unidadPK, \n        cargoPK: this.faseEvaluacionDTO.cargoPK, clasificacionPK: this.faseEvaluacionDTO.clasificacionPK, \n        categoriaCargo: null, nivelCargo: this.faseEvaluacionDTO.nivelCargo})\n      .toPromise();\n      console.log('listaDimensionesFiltro')\n      console.log(this.listaDimensionesFiltro)\n    }\n\tthis.sumaTotales();\n  }\n\n  async traerDatosFinales() {\n    if (this.isVerBotonResultado()) {\n      this.listaResultadoEvaluacion = await this.generalService\n        .queryForList(\n          new GeneralModel(\n            'DimensionGestionHojaDTO',\n            'DimensionGestionHoja.resultadosDimensionEvaluacion',\n            false,\n            {\n              gestionHojaVida: this.faseEvaluacionDTO.llaveGestionHoja,\n            }\n          )\n        )\n        .toPromise();\n      //grafico();\n      this.listaResultadoCompetencia = await this.generalService\n        .queryForList(\n          new GeneralModel(\n            'FaseGestionHojaDTO',\n            'FaseGestionHoja.obtenerResultadoCompetencias',\n            false,\n            {\n              empresa: this.faseEvaluacionDTO.empresa,\n              unidadPK: this.faseEvaluacionDTO.unidadPK,\n              cargoPK: this.faseEvaluacionDTO.cargoPK,\n              llaveGestionHoja: this.faseEvaluacionDTO.llaveGestionHoja,\n            }\n          )\n        )\n        .toPromise();\n    }\n  }\n\n  async atras() {\n    this.paginaActual = this.paginaActual - 1;\n    await this.defineMostrar();\n  }\n\n  async siguiente() {\n    if (this.paginaActual != 0) {\n      if (!this.isVerMensajeInicial()) {\n        var procesaCalifica = false;\n        if (\n          this.paginasEvaluacionActual.ultimo &&\n          'S' == this.paginasEvaluacionActual.etapaFaseGestionDTO.califica\n        ) {\n          procesaCalifica = true;\n        }\n        if (await this.actualizar(true, procesaCalifica)) {\n          return null;\n        }\n        if (procesaCalifica && this.paginasEvaluacionActual.ultimo) {\n          if (this.faseEvaluacionDTO.mensaje != null) {\n            this.notificacionesService.showInfo(this.faseEvaluacionDTO.mensaje);\n            return null;\n          }\n          if (\n            this.faseEvaluacionDTO.estado == this.faseGesHojaPipe.APLICADA &&\n            (this.paginasEvaluacionActual.etapaFaseGestionDTO.llaveTabla ==\n              this.faseEvaluacionDTO.llaveEtapaFase ||\n              this.faseEvaluacionDTO.llaveFase == null)\n          ) {\n            if (\n              this.controlFuncionService.getControlFuncionalidad(\n                'evalua:verreporte'\n              ) == null &&\n              this.controlFuncionService.getControlFuncionalidad(\n                'evalua:verreportefinal'\n              ) == null &&\n              this.controlFuncionService.getControlFuncionalidad(\n                'evalua:verreportecombinado'\n              ) == null &&\n              this.controlFuncionService.getControlFuncionalidad(\n                'evalua:verreportecomjefe'\n              ) == null\n            ) {\n              return this.cancelarAction();\n            }\n            return 'detalle'; //ConstantesGenerales.REGLA_DETALLE;\n          }\n        }\n      }\n    }\n\n    this.paginaActual = this.paginaActual + 1;\n    await this.defineMostrar();\n  }\n\n  async defineMostrar() {\n    //this.paginasEvaluacionActual = this.listaPaginasEvaluacion[this.paginaActual - 1];\n    this.paginasEvaluacionActual =\n      this.listaPaginasEvaluacion[this.paginaActual - 1];\n    //logica para definir siguiente paso breadcrumb\n    if (this.isVerMensajeInicial()) {\n      return;\n    }\n    if (\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo ==\n      this.gestionHerramientasPipe.ENCUESTA\n    ) {\n      if (this.paginasEvaluacionActual.registroInicial == 1) {\n        this.listaPreguntaEvaluacionWrapper = await this.pasarPreguntasWrapper(\n          this.paginasEvaluacionActual.etapaFaseGestionDTO.preguntas,\n          false\n        );\n      }\n      await this.selectVentana(\n        this.paginasEvaluacionActual.registroInicial,\n        this.paginasEvaluacionActual.registroFinal\n      );\n      return;\n    }\n    if (\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo ==\n      this.gestionHerramientasPipe.META\n    ) {\n      this.etiquetaNuevo = this.paginasEvaluacionActual.etapaFaseGestionDTO.etiquetaNuevo;\n\t  if ( this.etiquetaNuevo == null) {\n\t  \tthis.etiquetaNuevo = this.translateService.instant(\"nuevameta\");\n\t  }\n    console.log('antes this.metaWrapper')\n    console.log(this.metaWrapper)\n    console.log(this.paginasEvaluacionActual.etapaFaseGestionDTO.listaMeta)\n      this.metaWrapper = await this.pasarMetasWrapper(\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.listaMeta,\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso,\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.seguimiento\n      );\n      console.log('despues this.metaWrapper')\n      console.log(this.metaWrapper)\n      this.metaWrapper.tipoSeguimiento =\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.seguimiento;\n      this.metaWrapper.tipoPresentacion =\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.tipoListado;\n\n      this.listaCalificaMetaDes = [];\n      this.listaCalificaMeta = [];\n      this.listaValoresMeta = [];\n      if (\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.tipoCalifica != null\n      ) {\n        this.listaValoresMeta = await this.generalService\n          .queryForList(\n            new GeneralModel(\n              'ValorCalificaDTO',\n              'FaseGestionHoja.obtenerValoresCalificacion',\n              false,\n              {\n                llaveTipoCalifica:\n                  this.paginasEvaluacionActual.etapaFaseGestionDTO.tipoCalifica,\n                nivelCargo: this.faseEvaluacionDTO.nivelCargo,\n              }\n            )\n          )\n          .toPromise();\n        this.listaValoresMeta.forEach(async (calificacion) => {\n          if (calificacion.orden == null) {\n            calificacion.orden = 0;\n          }\n          this.listaCalificaMetaDes.push({\n            value: calificacion.llaveValor,\n            label: calificacion.llaveValor + ' : ' + calificacion.descripcion,\n          });\n          this.listaCalificaMeta.push({\n            value: calificacion.llaveValor,\n            label: calificacion.llaveValor,\n          });\n        });\n      }\n\n      return;\n    }\n    if (\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo ==\n      this.gestionHerramientasPipe.COMPETENCIA_SEG\n    ) {\n      this.competenciaSegEvaluacionWrapper =\n        await this.pasarCompentenciaSegWrapper(\n          this.paginasEvaluacionActual.etapaFaseGestionDTO.preguntas,\n          this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso,\n          this.paginasEvaluacionActual.etapaFaseGestionDTO.seguimiento\n        );\n      return;\n    }\n    if (\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo ==\n      this.gestionHerramientasPipe.CAPACITACION\n    ) {\n      this.capacitacionWrapper = await this.pasarCapacicionWrapper(\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.listaCapacitacion,\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso\n      );\n      return;\n    }\n    if (\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo ==\n      this.gestionHerramientasPipe.PLAN_ACCION\n    ) {\n      this.planesAccion = await this.pasarPlanAccionWrapper(\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.listaPlanAccion,\n        this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso\n      );\n      return;\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async pasarPlanAccionWrapper(\n    listaPlanAccion: MetaEvaluacionModel[],\n    gestionProceso: string\n  ) {\n    var planesAccion: any = {};\n    planesAccion.listaMeta = listaPlanAccion;\n    planesAccion.listaMeta.forEach(async (plan) => {\n      let nueva: MetaEvaluacionModel = new MetaEvaluacionModel();\n      nueva.estado = 'P'; //MetaGestionHojaCons.ESTADOPROGRAMA\n      plan.nuevaMetaPlanAccion = nueva;\n    });\n    planesAccion.campos = await this.evaluacionesService\n      .obtenerCampoPlanAccion({ procesoGestion: gestionProceso, tipo: 'base' })\n      .toPromise();\n    planesAccion.camposSeguimiento = await this.evaluacionesService\n      .obtenerCampoPlanAccion({\n        procesoGestion: gestionProceso,\n        tipo: 'seguimiento',\n      })\n      .toPromise();\n    return planesAccion;\n  }\n\n  async pasarCapacicionWrapper(\n    listaCapacitacion: CapacitacionEvaluacionModel[],\n    gestionProceso: string\n  ) {\n    var dato: any = {};\n    dato.listaCapacitacion = listaCapacitacion;\n    dato.campos = await this.generalService\n      .queryForList(\n        new GeneralModel('DatoorganizacionDTO', null, false, {\n          organizacion: (\n            await this.saraAplicacionService.getEmpresa()\n          ).organizacion,\n          tipo: 'GP',\n          tabla: gestionProceso,\n        })\n      )\n      .toPromise();\n    return dato;\n  }\n\n  async pasarCompentenciaSegWrapper(\n    listaPreguntas: PreguntaEvaluacionModel[],\n    gestionProceso: string,\n    tipoSeguimiento: string\n  ) {\n    var dato: any = {};\n    dato.modificar = false;\n    dato.listaPreguntas = listaPreguntas;\n    if (this.gestionHerramientasPipe.EVALUAR == tipoSeguimiento) {\n      dato.camposSeguimiento = await this.evaluacionesService\n        .obtenerCampoMetas({\n          llavePlanillaGestion: gestionProceso,\n          tipo: 'evaluacion',\n        })\n        .toPromise();\n    } else {\n      dato.camposSeguimiento = await this.evaluacionesService\n        .obtenerCampoMetas({\n          llavePlanillaGestion: gestionProceso,\n          tipo: 'seguimiento',\n        })\n        .toPromise();\n    }\n    dato.camposSeguimiento.forEach(async (datoOrganizacion) => {\n      datoOrganizacion.accionEdicion = 'V';\n      if (\n        this.parametrosEvaluacionPipe.FIJOAUTORIZADOR == datoOrganizacion.accion\n      ) {\n        if (this.isAutorizar()) {\n          datoOrganizacion.accionEdicion = 'E';\n        }\n      } else {\n        if (!this.isAutorizar()) {\n          datoOrganizacion.accionEdicion = 'E';\n        }\n      }\n      if (datoOrganizacion.accionEdicion == 'V') {\n        datoOrganizacion.requerido = null;\n      } else {\n        dato.modificar = true;\n      }\n    });\n    return dato;\n  }\n\n  async pasarMetasWrapper(\n    listaMetas: [],\n    gestionProceso: string,\n    tipoSeguimiento: string\n  ) {\n    var dato: any = {};\n    var listaEncabezado: DatoorganizacionModel[] = [];\n\n    dato.tipoObjetivoGeneral = null;\n    dato.modificar = false;\n    dato.listaMeta = listaMetas;\n    dato.campos = await this.evaluacionesService\n      .obtenerCampoMetas({ llavePlanillaGestion: gestionProceso, tipo: 'meta' })\n      .toPromise();\n    dato.campos.forEach(async (datoOrganizacion) => {\n      if ('S' == datoOrganizacion.estilo) {\n        listaEncabezado.push(datoOrganizacion);\n      }\n      if (\n        datoOrganizacion.campo == this.parametrosEvaluacionPipe.OBJETIVOGENERAL\n      ) {\n        dato.tipoObjetivoGeneral =\n          this.parametrosEvaluacionPipe.OBJETIVOGENERAL;\n      }\n      if (\n        datoOrganizacion.campo ==\n        this.parametrosEvaluacionPipe.OBJETIVOGENERALUNICO\n      ) {\n        dato.tipoObjetivoGeneral =\n          this.parametrosEvaluacionPipe.OBJETIVOGENERALUNICO;\n      }\n\n      datoOrganizacion.accionEdicion = 'V';\n      if (\n        datoOrganizacion.accion == this.parametrosEvaluacionPipe.FIJOAUTORIZADOR\n      ) {\n        if (this.isAutorizar()) {\n          datoOrganizacion.accionEdicion = 'E';\n        }\n      } else {\n        if (!this.isAutorizar()) {\n          datoOrganizacion.accionEdicion = 'E';\n        }\n      }\n      if (datoOrganizacion.accionEdicion == 'V') {\n        datoOrganizacion.requerido = null;\n      } else {\n        dato.modificar = true;\n      }\n    });\n\n    if (this.gestionHerramientasPipe.EVALUAR == tipoSeguimiento) {\n      dato.camposSeguimiento = await this.evaluacionesService\n        .obtenerCampoMetas({\n          llavePlanillaGestion: gestionProceso,\n          tipo: 'evaluacion',\n        })\n        .toPromise();\n    } else {\n      dato.camposSeguimiento = await this.evaluacionesService\n        .obtenerCampoMetas({\n          llavePlanillaGestion: gestionProceso,\n          tipo: 'seguimiento',\n        })\n        .toPromise();\n    }\n\n    dato.listaColumnaGestion = listaEncabezado;\n\n    return dato;\n  }\n\n  public sumaTotales() {\n\tthis.totalPorcentajeDes=null;\n\tthis.totalPorcentaje = 0;\n\tfor (let i=0; i<this.listaPaginasEvaluacion.length ; i++) {\n\t\tvar unaPagina: any = this.listaPaginasEvaluacion[i];\n\t\tif (unaPagina.etapaFaseGestionDTO.tipo != this.gestionHerramientasPipe.META) {\n\t\t\tcontinue;\n\t\t}\n\t\t\n\t\tif ( this.gestionHerramientasPipe.EVALUAR != unaPagina.etapaFaseGestionDTO.seguimiento) {\n\t\t\tcontinue;\n\t\t}\n\t\tunaPagina.etapaFaseGestionDTO.listaMeta.forEach(unaMeta => {\n\t\t\tunaMeta.listaSeguimiento.forEach(unSeguimiento => {\n\t\t\t\tif ( unSeguimiento.numeroSeguimiento == this.faseEvaluacionDTO.numeroSeguimiento) {\n\t\t\t\t\tif ( unSeguimiento.porcentaje != null) {\n\t\t\t\t\t\tthis.totalPorcentaje = this.totalPorcentaje +unSeguimiento.porcentaje;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\tvar tipoSeguimiento = this.paginasEvaluacionActual.etapaFaseGestionDTO.seguimiento;\n\tif ( this.gestionHerramientasPipe.EVALUAR != tipoSeguimiento) {\n\t\treturn;\n\t}\n\tthis.totalPorcentajeDes = this.tituloPorcentaje;\n\tif ( this.totalPorcentajeDes == null ) {\n\t\tthis.totalPorcentajeDes = \"Total porcentaje \";\n\t}\n}\n\n  selectVentana(registroInicial: number, registroFinal: number) {\n    var competenciaTitulo: string = '';\n\n    var lista = [];\n    for (var fila = registroInicial; fila <= registroFinal; fila++) {\n      if (fila > this.listaPreguntaEvaluacionWrapper.length) {\n        break;\n      }\n      var unaPregunta =\n        this.listaPreguntaEvaluacionWrapper[fila - 1].preguntaEvaluacionDTO;\n      if (\n        (unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO) &&\n        competenciaTitulo != unaPregunta.dimensionPK\n      ) {\n        competenciaTitulo = unaPregunta.dimensionPK;\n        if (unaPregunta.modo != null && unaPregunta.modo == 'S') {\n          lista.push(\n            this.crearTitulo(\n              this.parametrosEvaluacionPipe.SUBTITULO,\n              unaPregunta.dimensionDescripcion\n            )\n          );\n\n          if (unaPregunta.temaCompetencia != null) {\n            lista.push(\n              this.crearTitulo(\n                this.parametrosEvaluacionPipe.INSTRUCCION,\n                unaPregunta.temaCompetencia\n              )\n            );\n          }\n        }\n      }\n      lista.push(this.listaPreguntaEvaluacionWrapper[fila - 1]);\n    }\n    this.ventana = lista;\n  }\n\n  crearTitulo(tipo: string, temaCompetencia: string) {\n    var tituloFactor: any = {};\n    tituloFactor.preguntaEvaluacionDTO = {};\n    tituloFactor.preguntaEvaluacionDTO.tipo = tipo;\n    tituloFactor.preguntaEvaluacionDTO.temaPregunta = temaCompetencia;\n    return tituloFactor;\n  }\n\n  async pasarPreguntasWrapper(\n    listaPreguntasDTO: PreguntaEvaluacionModel[],\n    actualizar: boolean\n  ) {\n    var listaValores: any[];\n    var calificacionesDTO: any = {};\n    var extremo: ReglillaExtremoComp;\n    var preguntasWrapper: any[] = [];\n    listaPreguntasDTO.forEach(async (unaPregunta) => {\n      let unaPreguntaWrapper: any = {};\n      unaPreguntaWrapper.preguntaEvaluacionDTO = unaPregunta;\n\n      let tipo = unaPregunta.tipo;\n\n      if (unaPregunta.listaCalificacionDTO != null) {\n        unaPreguntaWrapper.calificacionEtiqueta =\n          await this.selectListEvaluacionesService.CalificacionToSelectItem(\n            unaPregunta.listaCalificacionDTO\n          );\n      } else {\n        unaPreguntaWrapper.calificacionEtiqueta =\n          await this.selectListEvaluacionesService.CalificacionToSelectItem([]);\n      }\n\n      // Construye la lista de objetos seleccionables con base en la lista de valores predefinidos para el factor de evaluacion\n      if (unaPregunta.listaValores != null) {\n        unaPreguntaWrapper.valorCalificacion = Object.entries(\n          unaPregunta.listaValores\n        ).map(([key, value]) => {\n          return { value: key, label: value };\n        });\n      }\n      /*if (this.isListaMultiple(tipo)) {\n        unaPregunta.resultado.valoresCualitativosMultiples = Object.entries(\n          unaPregunta.listaValores\n        ).map(([key, value]) => {\n          return { value: key, label: value };\n        });\n      }*/\n     if(this.isFecha(tipo)){\n      unaPregunta.resultado.datoFecha = new Date(unaPregunta.resultado.datoFecha) || null;\n     }\n\n      if (\n        tipo == this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_EXT &&\n        unaPregunta.listaCalificacionDTO != null &&\n        unaPregunta.listaCalificacionDTO.length > 0\n      ) {\n        listaValores = [];\n        unaPregunta.listaCalificacionDTO.sort((a, b) => a.orden - b.orden);\n        unaPregunta.listaCalificacionDTO.forEach(async (valorCalificaDTO) => {\n          listaValores.push({\n            value: valorCalificaDTO.llaveValor,\n            label: valorCalificaDTO.descripcion,\n          });\n        });\n        var calificacionesDTO: any = {};\n        calificacionesDTO.etiqueta =\n          unaPregunta.listaCalificacionDTO[0].etiqueta;\n        calificacionesDTO.etiqueta2 =\n          unaPregunta.listaCalificacionDTO[\n            unaPregunta.listaCalificacionDTO.length - 1\n          ].etiqueta;\n        extremo = new ReglillaExtremoComp(listaValores, calificacionesDTO);\n        extremo.seleccionado = unaPregunta.resultado.valorCualitativo;\n        if (this.isSoloVer()) {\n          extremo.habilitado = false;\n        }\n        unaPreguntaWrapper.reglillaExtremoComp = extremo;\n      }\n\n      if (\n        (this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_HOR == tipo ||\n          this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO == tipo ||\n          this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA == tipo ||\n          this.parametrosEvaluacionPipe.VALORCOMPETENCIA == tipo) &&\n        this.faseGesHojaPipe.HORIZONTAL == unaPregunta.textoAdicionalLista\n      ) {\n        var listaCal: any[] = [];\n        var cal: any;\n        unaPregunta.listaCalificacionDTO.forEach(dto => {\n          cal = {};\n          cal.descripcion = dto.descripcion;\n          cal.etiqueta = dto.etiqueta.replace(' ', '&nbsp;');\n          cal.llaveValor = dto.llaveValor;\n          cal.orden = dto.orden;\n          cal.puntaje = dto.puntaje;\n          cal.puntajeMaximo = dto.puntajeMaximo;\n          listaCal.push(cal);\n        });\n        unaPreguntaWrapper.reglillaComp = new ReglillaComp(listaCal);\n        unaPreguntaWrapper.reglillaComp.valor =\n          unaPregunta.resultado.valorCualitativo;\n      }\n\n      preguntasWrapper.push(unaPreguntaWrapper);\n      if (actualizar) {\n        this.listaPreguntaEvaluacionWrapper.forEach(\n          async (unaPreguntaLista) => {\n            if (\n              unaPreguntaLista.preguntaEvaluacionDTO.numeroPregunta ==\n              unaPregunta.numeroPregunta\n            ) {\n              unaPreguntaLista.preguntaEvaluacionDTO = unaPregunta;\n            }\n          }\n        );\n      }\n    });\n    return preguntasWrapper;\n  }\n\n  async actualizar(definitivo: boolean, procesaCalifica: boolean) {\n    if (this.isSoloVer()) {\n      if (this.isAutorizar() && this.isVerMetas()) {\n        if (await this.actualizarMetas(definitivo)) {\n          return true;\n        }\n      }\n      return false;\n    }\n    this.fueModificado = true;\n\n    if (this.isVerFactores()) {\n      var resultado = await this.procesarPreguntas(definitivo);\n      if (resultado) {\n        this.notificacionesService.showError(\n          'Campos requeridos sin diligenciar \\u00F3 valor no permitido'\n        );\n        return true;\n      }\n    }\n    if (this.isVerMetas()) {\n\n      if (await this.actualizarMetas(definitivo)) {\n        return true;\n      }\n    }\n    if (this.isVerCompetenciaSeg()) {\n      if (await this.actualizarCompetenciaSeg(definitivo)) {\n        return true;\n      }\n    }\n    if (this.isVerCapacitacion()) {\n      var mensaje = false;\n      var variableRetorno;\n      this.capacitacionWrapper.listaCapacitacion.forEach((unaCapacitacion) => {\n        unaCapacitacion.mensaje = null;\n        if (this.validarRequerido(unaCapacitacion, this.getListaCampos())) {\n          unaCapacitacion.mensaje =\n            'Campos requeridos no han sido diligenciados';\n          mensaje = true;\n        }\n        if (mensaje) {\n          this.notificacionesService.showInfo(\n            'Campos requeridos no han sido diligenciados'\n          );\n          variableRetorno = true;\n        }\n      });\n      if (variableRetorno) {\n        return true;\n      }\n      await this.evaluacionesService\n        .actualizarCapacitacion({\n          listaCapacitacion: this.capacitacionWrapper.listaCapacitacion,\n          listaBorrar: this.borrarCapacitacion,\n        })\n        .toPromise();\n      this.borrarCapacitacion = [];\n    }\n\n    if (this.isVerPlanAccion()) {\n      if (await this.actualizarPlanAccion()) {\n        return true;\n      }\n    }\n    if (this.paginasEvaluacionActual.ultimo && procesaCalifica) {\n      await this.evaluacionesService\n        .aplicarEvaluacion({\n          llave: this.llaveFaseEvaluacion,\n          seguimiento: null,\n          etapaFase:\n            this.paginasEvaluacionActual.etapaFaseGestionDTO.llaveTabla,\n          ipUsuario: this.ipUsuario,\n          usuario: this.authService.getTokenKey('usuario'),\n        })\n        .toPromise();\n\n      await this.traeFaseHoja(this.llaveFaseEvaluacion, false);\n    } else {\n      this.faseEvaluacionDTO.estado = this.faseGesHojaPipe.EVALUACION;\n      this.faseEvaluacionDTO.ipUsuario = this.ipUsuario;\n      const objetoClonado = Object.assign({}, this.faseEvaluacionDTO);\n      delete objetoClonado['nombreEstadoPrimario'];\n      delete objetoClonado['periodo'];\n      delete objetoClonado['nombreEstadoSecundario'];\n      delete objetoClonado['nombreTabla'];\n      delete objetoClonado['alias'];\n      delete objetoClonado['listaEtapas'];\n      delete objetoClonado['evaluacionConcertada'];\n      await this.generalService\n        .update(\n          new GeneralModel(\n            'FaseGestionHojaDTO',\n            'FaseGestionHoja.actualizarEstadoFase',\n            false,\n            objetoClonado\n          )\n        )\n        .toPromise();\n    }\n    return await false;\n  }\n\n  async actualizarPlanAccion() {\n    this.fueModificado = true;\n\n    var mensaje = await this.evaluacionesService\n      .validarPlanAvisoAccionEvaluacion({\n        listaPlanAccion: this.planesAccion.listaMeta,\n        listaCampos: this.planesAccion.campos,\n      })\n      .toPromise();\n    if (mensaje != null) {\n      this.notificacionesService.showInfo(mensaje);\n      return true;\n    }\n    this.planesAccion.listaMeta = await this.evaluacionesService\n      .actualizaPlanAvisoAccionEvaluacion({\n        listaPlanAccion: this.planesAccion.listaMeta,\n        listaBorrar: this.borrarMetaEvaluacionDTO,\n        llaveFaseEvaluacion: this.llaveFaseEvaluacion,\n        llaveGestionHoja: this.faseEvaluacionDTO.llaveGestionHoja,\n      })\n      .toPromise();\n    this.borrarMetaEvaluacionDTO = [];\n    var hayMensajes: boolean = false;\n    this.planesAccion.listaMeta.forEach((unPlan) => {\n      unPlan.metaPlanAccion.forEach((unaAccion) => {\n        if (this.validarRequerido(unaAccion, this.planesAccion.campos)) {\n          unaAccion.mensaje = 'Campos requeridos no han sido diligenciados';\n          hayMensajes = true;\n        }\n      });\n    });\n    if (hayMensajes) {\n      this.notificacionesService.showInfo('Campos requeridos sin diligenciar');\n      return true;\n    }\n    return false;\n  }\n\n  async actualizarCompetenciaSeg(definitivo) {\n    if (!this.competenciaSegEvaluacionWrapper.modificar) {\n      return false;\n    }\n    this.competenciaSegEvaluacionWrapper.listaPreguntas =\n      await this.evaluacionesService\n        .actualizarCompetenciaSeg({\n          listaPreguntas: this.competenciaSegEvaluacionWrapper.listaPreguntas,\n        })\n        .toPromise();\n    if (!definitivo) {\n      return false;\n    }\n    var hayMensajes: boolean = false;\n\n    this.competenciaSegEvaluacionWrapper.listaPreguntas.forEach(\n      async (unaPregunta) => {\n        unaPregunta.listaSeguimiento.forEach((unSeguimiento) => {\n          if (\n            this.validarRequerido(\n              unSeguimiento,\n              this.competenciaSegEvaluacionWrapper.camposSeguimiento\n            )\n          ) {\n            unSeguimiento.mensaje =\n              'Campos requeridos no han sido diligenciados';\n            hayMensajes = true;\n            return;\n          }\n        });\n      }\n    );\n\n    if (hayMensajes) {\n      this.notificacionesService.showInfo(\n        'Se han presentado mensajes de control por favor verificar'\n      );\n      return true;\n    }\n    return false;\n  }\n\n  async procesarPreguntas(definitivo) {\n    var existeMensaje = false;\n\n    if (!definitivo) {\n      await this.actualizarPreguntas();\n      return await false;\n    }\n\n    /* Califica las preguntas obligatorias de la evaluacion */\n    this.ventana.forEach(async (unaPreguntaWrapper) => {\n      var unaPregunta: PreguntaEvaluacionModel =\n        unaPreguntaWrapper.preguntaEvaluacionDTO;\n\n      unaPregunta.mensaje = null;\n      if (\n        !(\n          this.parametrosEvaluacionPipe.TITULO != unaPregunta.tipo &&\n          this.parametrosEvaluacionPipe.SUBTITULO != unaPregunta.tipo &&\n          this.parametrosEvaluacionPipe.INSTRUCCION != unaPregunta.tipo &&\n          this.parametrosEvaluacionPipe.INSTRUCCIONREGLA != unaPregunta.tipo\n        ) ||\n        unaPregunta.requerido != 'S' ||\n        unaPregunta.tipo == null\n      ) {\n        return;\n      }\n      var resultado: ResultadoEvaluacionModel = unaPregunta.resultado;\n      var valor: string;\n      if (\n        (unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_HOR ||\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO ||\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n          unaPregunta.tipo == this.parametrosEvaluacionPipe.VALORCOMPETENCIA) &&\n        this.faseGesHojaPipe.HORIZONTAL == unaPregunta.textoAdicionalLista &&\n        unaPreguntaWrapper.reglillaComp != null\n      ) {\n        valor = unaPreguntaWrapper.reglillaComp.valor;\n        if (this.isSecundario()) {\n          valor = resultado.valorCualitativoOtro;\n        }\n        if (this.isPrimario()) {\n          valor = resultado.valorCualitativoPropio;\n        }\n        if (valor == null) {\n          existeMensaje = true;\n          unaPregunta.mensaje == 'S';\n        }\n        return;\n      }\n      if (\n        unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_EXT &&\n        unaPreguntaWrapper.reglillaExtremoComp != null\n      ) {\n        valor = unaPreguntaWrapper.reglillaExtremoComp.seleccionado;\n        if (this.isSecundario()) {\n          valor = resultado.valorCualitativoOtro;\n        }\n        if (this.isPrimario()) {\n          valor = resultado.valorCualitativoPropio;\n        }\n        if (valor == null) {\n          existeMensaje = true;\n          unaPregunta.mensaje = 'S';\n        }\n        return;\n      }\n      if (\n        ((unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO ||\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n          unaPregunta.tipo == this.parametrosEvaluacionPipe.VALORCOMPETENCIA) &&\n          this.faseGesHojaPipe.RADIO == unaPregunta.textoAdicionalLista) ||\n        unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA ||\n        unaPregunta.tipo == this.parametrosEvaluacionPipe.LISTA\n      ) {\n        valor = resultado.valorCualitativo;\n        if (this.isSecundario()) {\n          valor = resultado.valorCualitativoOtro;\n        }\n        if (this.isPrimario()) {\n          valor = resultado.valorCualitativoPropio;\n        }\n        if (valor == null) {\n          existeMensaje = true;\n          unaPregunta.mensaje = 'S';\n        }\n        return;\n      }\n      if (\n        ((unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO ||\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n          unaPregunta.tipo == this.parametrosEvaluacionPipe.VALORCOMPETENCIA) &&\n          this.faseGesHojaPipe.MANUAL == unaPregunta.textoAdicionalLista) ||\n        unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA ||\n        unaPregunta.tipo == this.parametrosEvaluacionPipe.LISTA\n      ) {\n        if (resultado.valorPuntaje == null) {\n          unaPregunta.mensaje = 'S';\n          existeMensaje = true;\n          return;\n        }\n\n        var existe: boolean = false;\n        unaPregunta.listaCalificacionDTO.forEach((unValor) => {\n          if (\n            resultado.valorPuntaje >= unValor.puntaje &&\n            resultado.valorPuntaje <= unValor.puntajeMaximo\n          ) {\n            resultado.valorCualitativo = unValor.llaveValor;\n            existe = true;\n            return;\n          }\n        });\n        if (!existe) {\n          existeMensaje = true;\n          unaPregunta.mensaje = 'S';\n        }\n        return;\n      }\n      if (\n        unaPregunta.tipo == this.parametrosEvaluacionPipe.CALIFICACION_VALOR ||\n        unaPregunta.tipo == this.parametrosEvaluacionPipe.NUMERICO\n      ) {\n        if (resultado.valorPuntaje == null) {\n          unaPregunta.mensaje = 'S';\n          existeMensaje = true;\n        }\n        var existe=false;\n\t\t\t\tfor (var unValor of unaPregunta.listaCalificacionDTO) {\n\t\t\t\t\tif (resultado.valorPuntaje >= unValor.puntaje && resultado.valorPuntaje <= unValor.puntajeMaximo ) {\n\t\t\t\t\t\tresultado.valorCualitativo = unValor.llaveValor;\n\t\t\t\t\t\texiste=true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!existe) {\n\t\t\t\t\texisteMensaje = true;\n\t\t\t\t\tunaPregunta.mensaje = 'S';\n\t\t\t\t}\n        return;\n      }\n      if (unaPregunta.tipo == this.parametrosEvaluacionPipe.FECHA) {\n        if (resultado.datoFecha == null) {\n          existeMensaje = true;\n          unaPregunta.mensaje = 'S';\n        }\n        return;\n      }\n      if (unaPregunta.tipo == this.parametrosEvaluacionPipe.MARCA) {\n        if ((resultado.valorCualitativo == 'S') == null) {\n          existeMensaje = true;\n          unaPregunta.mensaje = 'S';\n        }\n        return;\n      }\n      if (unaPregunta.tipo == this.parametrosEvaluacionPipe.TEXTO) {\n        if (\n          resultado.datoTexto == null ||\n          !resultado.datoTexto ||\n          /^\\s*$/.test(resultado.datoTexto)\n        ) {\n          existeMensaje = true;\n          unaPregunta.mensaje = 'S';\n        }\n        return;\n      }\n    });\n    if (!existeMensaje) {\n      await this.actualizarPreguntas();\n    }\n    return await existeMensaje;\n  }\n\n  async actualizarPreguntas() {\n    var preguntasVentanaDTO: PreguntaEvaluacionModel[] = [];\n    this.ventana.forEach(async (unaPreguntaWrapper) => {\n      var unaPregunta: PreguntaEvaluacionModel =\n        unaPreguntaWrapper.preguntaEvaluacionDTO;\n\n      if (unaPreguntaWrapper.reglillaExtremoComp != null) {\n        if (\n          unaPregunta.tipo ==\n          this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_EXT\n        ) {\n          unaPregunta.resultado.valorCualitativo =\n            unaPreguntaWrapper.reglillaExtremoComp.seleccionado;\n        }\n      }\n      if (\n        this.faseGesHojaPipe.HORIZONTAL == unaPregunta.textoAdicionalLista &&\n        unaPreguntaWrapper.reglillaComp != null\n      ) {\n        if (\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_HOR ||\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO ||\n          unaPregunta.tipo ==\n            this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n          unaPregunta.tipo == this.parametrosEvaluacionPipe.VALORCOMPETENCIA\n        ) {\n          if (unaPreguntaWrapper.reglillaComp.valor == null) {\n            unaPregunta.resultado.valorCualitativo = null;\n          } else {\n            unaPregunta.resultado.valorCualitativo =\n              unaPreguntaWrapper.reglillaComp.valor.trim();\n          }\n        }\n      }\n\n      /* Si es una pregunta de tipo ListaMultiple - condensa las opciones seleccionadas en un string separado por '|'*/\n      if (unaPregunta.tipo == this.parametrosEvaluacionPipe.LISTA_MULTIPLE) {\n        var valoresSeleccionados = '';\n\n        if (unaPregunta.resultado.valoresCualitativosMultiples != null) {\n          unaPregunta.resultado.valoresCualitativosMultiples.forEach(\n            async (valorSeleccionado) => {\n              if (valorSeleccionado != null) {\n                valoresSeleccionados =\n                  valoresSeleccionados + '|' + valorSeleccionado;\n              }\n            }\n          );\n        }\n        unaPregunta.resultado.significadoCalifica = valoresSeleccionados;\n      }\n\n      preguntasVentanaDTO.push(unaPregunta);\n    });\n    preguntasVentanaDTO = await this.evaluacionesService\n      .actualizaPreguntaFase({\n        llaveFase: this.llaveFaseEvaluacion,\n        listaPreguntas: preguntasVentanaDTO,\n      })\n      .toPromise();\n    this.ventana = await this.pasarPreguntasWrapper(preguntasVentanaDTO, true);\n    this.faseEvaluacionDTO.estado = this.faseGesHojaPipe.EVALUACION;\n    const objetoClonado = Object.assign({}, this.faseEvaluacionDTO);\n    delete objetoClonado['nombreEstadoPrimario'];\n    delete objetoClonado['periodo'];\n    delete objetoClonado['nombreEstadoSecundario'];\n    delete objetoClonado['nombreTabla'];\n    delete objetoClonado['alias'];\n    delete objetoClonado['listaEtapas'];\n    delete objetoClonado['evaluacionConcertada'];\n    await this.generalService\n      .update(\n        new GeneralModel(\n          'FaseGestionHojaDTO',\n          'FaseGestionHoja.actualizarEstadoFase',\n          false,\n          objetoClonado\n        )\n      )\n      .toPromise();\n  }\n\n  async actualizarMetas(definitivo: boolean) {\n    if (!this.metaWrapper.modificar) {\n      return false;\n    }\n\n    var cantidad = this.paginasEvaluacionActual.etapaFaseGestionDTO.cantidad;\n    if (cantidad != null && cantidad != 0 && definitivo) {\n      if (cantidad > this.metaWrapper.listaMeta.length) {\n        this.notificacionesService.showInfo('Minimo de registro: ' + cantidad);\n        return true;\n      }\n    }\n\n    var cantidadMaxima =\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.cantidadMaximo;\n    if (cantidadMaxima != null && cantidadMaxima != 0) {\n      if (cantidadMaxima < this.metaWrapper.listaMeta.length) {\n        this.notificacionesService.showInfo(\n          'Maximo de registro: ' + cantidadMaxima\n        );\n        return true;\n      }\n    }\n    console.log('llega aca this.metaWrapper.listaMeta')\n    console.log(this.metaWrapper.listaMeta)\n    this.metaWrapper.listaMeta = await this.evaluacionesService\n      .actualizarMetas({\n        listaMetas: this.metaWrapper.listaMeta,\n        listaBorrar: this.borrarMetaEvaluacionDTO,\n        listaValoresMeta: this.listaValoresMeta,\n      })\n      .toPromise();\n    console.log('termina this.metaWrapper.listaMeta')\n    console.log(this.metaWrapper.listaMeta)\n    this.borrarMetaEvaluacionDTO = [];\n    if (!definitivo) {\n      return false;\n    }\n    var hayMensajes = false;\n    var hay100 = false;\n    var total100 = 0;\n\n    this.metaWrapper.campos.forEach(async (element) => {\n      if (element.campo == this.parametrosEvaluacionPipe.PORCENTAJE100) {\n        if (element.requerido == null) {\n          hay100 = false;\n          return;\n        }\n        hay100 = element.requerido == 'S';\n        return;\n      }\n    });\n\n    var camposValidar = [];\n    this.metaWrapper.camposSeguimiento.forEach(async (datoOrganizacion) => {\n      if (\n        datoOrganizacion.campo.includes('seguimiento_') &&\n        !this.gestionHerramientasPipe.EVALUAR ==\n          this.metaWrapper.tipoSeguimiento\n      ) {\n        camposValidar.push(datoOrganizacion);\n      }\n      if (\n        datoOrganizacion.campo.includes('evaluacion_') &&\n        this.gestionHerramientasPipe.EVALUAR == this.metaWrapper.tipoSeguimiento\n      ) {\n        camposValidar.push(datoOrganizacion);\n      }\n    });\n\n    var datoValorSeguimiento = null;\n    this.metaWrapper.camposSeguimiento.forEach(async (element) => {\n      if (element.campo == this.parametrosEvaluacionPipe.METAEVAL_VALOR) {\n        datoValorSeguimiento = element;\n      }\n    });\n\n    this.metaWrapper.listaMeta.forEach(async (meta) => {\n      meta.mensaje = null;\n      if (meta.llaveFaseEvaluacion == this.llaveFaseEvaluacion) {\n        if (this.validarRequerido(meta, this.getListaCampos())) {\n          meta.mensaje = 'Campos requeridos no han sido diligenciados';\n          hayMensajes = true;\n          return;\n        }\n      }\n      if (meta.porcentaje2 != null && hay100) {\n        total100 = total100 + meta.porcentaje2;\n      }\n\n      if (meta.listaSeguimiento == null) {\n        return;\n      }\n\n      meta.listaSeguimiento.forEach(async (unSeguimiento) => {\n        if (\n          unSeguimiento.numeroSeguimiento ==\n          this.faseEvaluacionDTO.numeroSeguimiento\n        ) {\n          if (this.validarRequerido(unSeguimiento, camposValidar)) {\n            meta.mensaje = 'Campos requeridos no han sido diligenciados';\n            hayMensajes = true;\n            return;\n          }\n        }\n        if (\n          this.isCampoMetaWrapper(this.parametrosEvaluacionPipe.VALORACUERDO) &&\n          meta.valorAcuerdo != null\n        ) {\n          if (unSeguimiento.acuerdo == null) {\n            unSeguimiento.acuerdo = 0;\n          }\n          if (unSeguimiento.acuerdo > meta.valorAcuerdo) {\n            meta.mensaje = 'Valor sobrepasa alcance definido';\n            hayMensajes = true;\n            return;\n          }\n          if (unSeguimiento.acuerdo != meta.valorAcuerdo) {\n            if (unSeguimiento.observacion == null) {\n              meta.mensaje =\n                'Falta incluir campo observaci\\u00F3n valro acuerdo inferior al alcance definido';\n              hayMensajes = true;\n              return;\n            }\n          }\n        }\n\n        if (\n          this.isCampoMetaWrapper(\n            this.parametrosEvaluacionPipe.PORCENTAJEACUERDO\n          ) &&\n          meta.porcentajeAcuerdo != null\n        ) {\n          if (unSeguimiento.porcentajeAcuerdo == null) {\n            unSeguimiento.porcentajeAcuerdo = 0;\n          }\n          if (unSeguimiento.porcentajeAcuerdo > meta.porcentajeAcuerdo) {\n            meta.mensaje = 'Valor sobrepasa alcance definido';\n            hayMensajes = true;\n            return;\n          }\n          if (unSeguimiento.porcentajeAcuerdo == meta.porcentajeAcuerdo) {\n            if (unSeguimiento.observacion == null) {\n              meta.mensaje =\n                'Falta incluir campo observaci\\u00F3n porcentaje acuerdo inferior al alcance definido';\n              hayMensajes = true;\n              return;\n            }\n          }\n        }\n\n        if (this.isCampoMetaWrapper(this.parametrosEvaluacionPipe.PORCENTAJE)) {\n          if (unSeguimiento.porcentaje != null) {\n            if (unSeguimiento.porcentaje < 100) {\n              if (unSeguimiento.observacion == null) {\n                meta.mensaje =\n                  'Falta incluir campo observaci\\u00F3n porcentaje inferior al 100%';\n                hayMensajes = true;\n                return;\n              }\n            }\n          }\n        }\n        if (\n          this.isCampoSeguimientoMetaWrapper(\n            this.parametrosEvaluacionPipe.METAEVAL_VALOR\n          ) &&\n          datoValorSeguimiento != null\n        ) {\n          if (\n            datoValorSeguimiento.alto != null &&\n            unSeguimiento.valor1 != null\n          ) {\n            var tope = datoValorSeguimiento.alto;\n            if (unSeguimiento.valor1 > tope) {\n              meta.mensaje =\n                'Sobrepasa valor maximo ' + datoValorSeguimiento.alto;\n              hayMensajes = true;\n              return;\n            }\n          }\n        }\n      });\n    });\n\n    if (hayMensajes) {\n      this.notificacionesService.showInfo(\n        'Se han presentado mensajes de control por favor verificar 2'\n      );\n      return true;\n    }\n    if (hay100 && total100 != 100) {\n      this.notificacionesService.showInfo(\n        'Porcentaje al 100% inferior, el reportado es : ' + total100.toString()\n      );\n      return true;\n    }\n    return false;\n  }\n\n  public validarRequerido(objeto, lista: any[]) {\n    var mapaMensaje: Map<string, string> = new Map<string, string>();\n\n    lista.forEach(async (datoOrganizacion) => {\n      if (\n        (datoOrganizacion.campo.includes('peso') ||\n          datoOrganizacion.campo == 'porcentaje') &&\n        'M' == datoOrganizacion.accion\n      ) {\n        datoOrganizacion.requerido = 'S';\n      }\n\n      if (datoOrganizacion.requerido == null) {\n        return;\n      }\n      if (datoOrganizacion.requerido == 'N') {\n        return;\n      }\n      var campo = datoOrganizacion.campo;\n      campo = campo.replace('seguimiento_', '');\n      campo = campo.replace('evaluacion_', '');\n\n      if (campo == this.parametrosEvaluacionPipe.LISTAMETA1) {\n        campo = 'datoLista1';\n      }\n\n      if (campo == this.parametrosEvaluacionPipe.LISTAMETA2) {\n        campo = 'datoLista2';\n      }\n\n      if (campo == this.parametrosEvaluacionPipe.LISTAMETA3) {\n        campo = 'datoLista3';\n      }\n\n      var valor = objeto[campo]; //method.invoke(objeto);\n      /*if(valor instanceof List<?>){\n\t\t\t\tif(validarLista(valor)){\n\t\t\t\t\tmapaMensaje.put(campo, 'Campo requerido');\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse{*/\n      if (valor == null) {\n        mapaMensaje.set(campo, 'Campo requerido');\n      }\n\n      if (\n        typeof valor === 'number' &&\n        (datoOrganizacion.campo.includes('peso') ||\n          datoOrganizacion.campo == 'porcentaje')\n      ) {\n        if (valor === 0) {\n          mapaMensaje.set(\n            campo,\n            'Negativo Rango permitido de 0 a ' + datoOrganizacion.rangoMaximo\n          );\n        }\n        if (datoOrganizacion.rangoMaximo != valor) {\n          mapaMensaje.set(\n            campo,\n            'Rango permitido de 0 a ' + datoOrganizacion.rangoMaximo\n          );\n        }\n      }\n    });\n    objeto.mapaMensaje = mapaMensaje;\n\n    return mapaMensaje.size != 0;\n  }\n\n  cancelarAction() {\n    this.regresar.emit(false);\n  }\n\n  async traerOpcionesMetas() {\n    this.listaObjetivo =\n      await this.selectListEvaluacionesService.selectListObjetivos(\n        this.faseEvaluacionDTO.empresa,\n        this.faseEvaluacionDTO.unidadPK\n      );\n    this.listaMetaLista1 =\n      await this.selectListEvaluacionesService.getLista1GestionPeriodo(\n        this.faseEvaluacionDTO.llaveGestionPeriodo,\n        this.parametrosEvaluacionPipe.LISTA_01\n      );\n    this.listaMetaLista2 =\n      await this.selectListEvaluacionesService.getLista1GestionPeriodo(\n        this.faseEvaluacionDTO.llaveGestionPeriodo,\n        this.parametrosEvaluacionPipe.LISTA_02\n      );\n    this.listaMetaLista3 =\n      await this.selectListEvaluacionesService.getLista1GestionPeriodo(\n        this.faseEvaluacionDTO.llaveGestionPeriodo,\n        this.parametrosEvaluacionPipe.LISTA_03\n      );\n    this.listaMetaLista4 =\n      await this.selectListEvaluacionesService.getLista1GestionPeriodo(\n        this.faseEvaluacionDTO.llaveGestionPeriodo,\n        this.parametrosEvaluacionPipe.LISTA_04\n      );\n    this.listaMetaLista5 =\n      await this.selectListEvaluacionesService.getLista1GestionPeriodo(\n        this.faseEvaluacionDTO.llaveGestionPeriodo,\n        this.parametrosEvaluacionPipe.LISTA_05\n      );\n    this.listaObjetivosGenerales = await this.generalService\n      .queryForList(\n        new GeneralModel('MetaFaseGestionDTO', null, false, {\n          faseGestion: this.faseEvaluacionDTO.llaveFase,\n          empresa: this.faseEvaluacionDTO.empresa,\n          unidadOrganizacional: this.faseEvaluacionDTO.unidadPK,\n          cargo: this.faseEvaluacionDTO.cargoPK,\n          planillaGestion: this.faseEvaluacionDTO.periodoEvaluacion,\n          origen: 'E',\n        })\n      )\n      .toPromise();\n\n    this.listaCurso =\n      await this.selectListEvaluacionesService.consultarCursos();\n    this.listaTemaCapacitacion =\n      await this.selectListEvaluacionesService.consultarTemas();\n  }\n\n  defineRol() {\n    this.rol = 'usuario';\n    if (this.isCliente()) {\n      if ('S' == this.faseEvaluacionDTO.concertada) {\n        if (this.cedula == this.faseEvaluacionDTO.cedulaResponsable) {\n          this.rol = 'primario';\n        } else {\n          this.rol = 'secundario';\n          if (this.faseEvaluacionDTO.estadoPrimario != null) {\n            if (this.faseEvaluacionDTO.estadoSecundario != null) {\n              if (\n                this.faseEvaluacionDTO.estadoPrimario ==\n                  this.faseGesHojaPipe.APLICADA &&\n                this.faseEvaluacionDTO.estadoSecundario ==\n                  this.faseGesHojaPipe.APLICADA\n              ) {\n                this.rol = 'terciario';\n              }\n            }\n          }\n        }\n      } else {\n        if (this.cedula == this.faseEvaluacionDTO.cedulaResponsable) {\n          this.rol = 'evaluador';\n          if (this.faseEvaluacionDTO.cedulaResponsable == 0) {\n            this.rol = 'evaluadorfinal';\n          }\n        } else {\n          this.rol = 'autorizador';\n        }\n      }\n    }\n  }\n\n  async consultarLlavePlantilla() {\n    var cantidad = await this.generalService\n      .cantidadRegistros(\n        new GeneralModel('DocumentoSoporteDTO', null, false, {\n          tablaPadre: this.parametrosEvaluacionPipe.TABLAGESTIONPERIODO,\n          llavePadre: this.faseEvaluacionDTO.llaveGestionPeriodo,\n          clasificacion: this.faseEvaluacionDTO.clasificacionPK,\n          tipo: 'C',\n          faseGestion: this.faseEvaluacionDTO.llaveFase,\n          aplicaReporte: 'F',\n        })\n      )\n      .toPromise();\n    if (cantidad == 0) {\n      this.mostrarArchivoFase = false;\n    } else {\n      this.mostrarArchivoFase = true;\n    }\n\n    cantidad = await this.generalService\n      .cantidadRegistros(\n        new GeneralModel('DocumentoSoporteDTO', null, false, {\n          tablaPadre: this.parametrosEvaluacionPipe.TABLAGESTIONPERIODO,\n          llavePadre: this.faseEvaluacionDTO.llaveGestionPeriodo,\n          clasificacion: this.faseEvaluacionDTO.clasificacionPK,\n          tipo: 'C',\n          faseGestion: null,\n          aplicaReporte: 'H',\n        })\n      )\n      .toPromise();\n    if (cantidad == 0) {\n      this.mostrarArchivoHerramienta = false;\n    } else {\n      this.mostrarArchivoHerramienta = true;\n    }\n  }\n\n  traerCaminoFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivo\n      .descargarArchivo(\n        this.encriptadoBasico.encriptar(\n          this.faseEvaluacionDTO.nombreFoto + '.jpg'\n        ),\n        propiedad,\n        aplicacion\n      )\n      .subscribe((blob) => {\n        this.blobToBase64(blob);\n      });\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.caminoFoto = 'data:image/png;base64,' + base64;\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  async establecerMensajeInicial() {\n    this.faseGestionDTO = await this.generalService\n      .queryForObject(\n        new GeneralModel('FaseGestionDTO', null, false, {\n          llave: this.faseEvaluacionDTO.llaveFase,\n        })\n      )\n      .toPromise();\n    this.traerCaminoFoto();\n    if (!this.validarFaseGestion()) {\n      return false;\n    } else {\n      let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n      await this.cargarArchivo\n        .descargarArchivo(\n          this.encriptadoBasico.encriptar(this.faseGestionDTO.mensajeInicial),\n          'ruta_plantillas',\n          codigoAplicacion\n        )\n        .subscribe((blob) => {\n          const reader = new FileReader();\n          reader.onload = async () => {\n            const dataUrl = reader.result as string;\n            this.mensajeInicial = dataUrl;\n          };\n          reader.readAsText(blob);\n        });\n\n      return true;\n    }\n  }\n\n  eliminarMeta(eliminar) {\n    if (this.verUnaMetaDetalle) {\n      this.verUnaMetaDetalle = false;\n    }\n    if (eliminar == null) {\n      return;\n    }\n    this.metaWrapper.listaMeta = this.metaWrapper.listaMeta.filter(\n      (element) => element !== eliminar\n    );\n    this.borrarMetaEvaluacionDTO.push(eliminar);\n  }\n\n  async crearMetaObjetivo() {\n    if (this.metaWrapper.tipoObjetivoGeneral != null) {\n      var listaObjetivos: MetaFaseGestionModel[] = [];\n      this.listaObjetivosGenerales.forEach((unObjetivo) => {\n        if (\n          unObjetivo.procesoGestion == null ||\n          this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso ==\n            unObjetivo.procesoGestion\n        ) {\n          listaObjetivos.push(unObjetivo);\n        }\n      });\n\n      if (\n        this.metaWrapper.tipoObjetivoGeneral ==\n        this.parametrosEvaluacionPipe.OBJETIVOGENERALUNICO\n      ) {\n        this.metaWrapper.listaMeta.forEach(async (unaMeta) => {\n          listaObjetivos.forEach(async (unObjetivo) => {\n            if (unObjetivo.llaveTabla == unaMeta.llaveObjetivoGeneral) {\n              listaObjetivos = listaObjetivos.filter(\n                (element) => element !== unObjetivo\n              );\n              return;\n            }\n          });\n        });\n      }\n      //getBean(PopupObjetivoGeneral.class).buscar('faseGestionHojaBean.retornaListaObjetivos', listaObjetivos);\n    } else {\n      await this.procesoCrearMeta(null);\n    }\n    return null;\n  }\n\n  async procesoCrearMeta(objetivoGeneralBase: MetaFaseGestionModel) {\n    var nuevaMeta: MetaEvaluacionModel = new MetaEvaluacionModel();\n    var listaActual: EscalaMetaHojaModel[] = [];\n    if (this.listaValoresMeta != null) {\n      var nueva: EscalaMetaHojaModel;\n      this.listaValoresMeta.forEach(async (unValor) => {\n        nueva = new EscalaMetaHojaModel();\n        nueva.valor = unValor.llaveValor;\n        listaActual.push(nueva);\n      });\n    }\n    nuevaMeta.metaEscala = listaActual;\n\n    nuevaMeta.llaveFaseEvaluacion = this.llaveFaseEvaluacion;\n    nuevaMeta.llaveGestionHoja = this.faseEvaluacionDTO.llaveGestionHoja;\n    nuevaMeta.procesoGestion =\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.proceso;\n    if (objetivoGeneralBase != null) {\n      nuevaMeta.objetivoGeneral = objetivoGeneralBase.objetivoGeneral;\n      nuevaMeta.llaveObjetivoGeneral = objetivoGeneralBase.llaveTabla;\n    }\n    if (nuevaMeta.objetivoGeneral != null) {\n      nuevaMeta.origenMeta = 'E';\n    }\n    if (this.faseEvaluacionDTO.numeroSeguimiento > 0) {\n      var listaSeguimiento: SeguimientoMetaModel[] = [];\n      var seguimientoMetaDTO: SeguimientoMetaModel = new SeguimientoMetaModel();\n      seguimientoMetaDTO.metaGestionHoja = nuevaMeta.llave;\n      seguimientoMetaDTO.faseGestionHoja = this.faseEvaluacionDTO.llave;\n      seguimientoMetaDTO.numeroSeguimiento =\n        this.faseEvaluacionDTO.numeroSeguimiento;\n      seguimientoMetaDTO.etapaFaseGestion =\n        this.faseEvaluacionDTO.llaveEtapaFase;\n      listaSeguimiento.push(seguimientoMetaDTO);\n      nuevaMeta.listaSeguimiento = listaSeguimiento;\n    }\n\n    nuevaMeta = await this.colocarValoresInicializador(nuevaMeta);\n    if (this.isVerMetaTabla()) {\n      this.unMetaOriginal = null;\n      this.unaMeta = nuevaMeta;\n      this.verUnaMetaDetalle = true;\n    } else {\n      this.metaWrapper.listaMeta.push(nuevaMeta);\n    }\n  }\n\n  async colocarValoresInicializador(metaNueva: MetaEvaluacionModel) {\n    this.metaWrapper.campos.forEach(async (datoOrganizacion) => {\n      if (datoOrganizacion.campo == this.parametrosEvaluacionPipe.LISTAMETA1) {\n        var opcionesListaMeta1: CaracteristicaOpcionModel[] =\n          await this.generalService\n            .queryForList(\n              new GeneralModel(\n                'CaracteristicaOpcionDTO',\n                'CaracteristicaOpcion.consultarCaracteristicaOpcion',\n                false,\n                {\n                  lista: this.parametrosEvaluacionPipe.LISTA_01,\n                  tabla: this.faseEvaluacionDTO.llaveGestionPeriodo,\n                  tipo: 'GP',\n                }\n              )\n            )\n            .toPromise();\n        opcionesListaMeta1.forEach(async (opcion1) => {\n          if ('S' == opcion1.inicio) {\n            metaNueva.datoLista1 == opcion1.cadena;\n          }\n        });\n      }\n      if (datoOrganizacion.campo == this.parametrosEvaluacionPipe.LISTAMETA2) {\n        var opcionesListaMeta1: CaracteristicaOpcionModel[] =\n          await this.generalService\n            .queryForList(\n              new GeneralModel(\n                'CaracteristicaOpcionDTO',\n                'CaracteristicaOpcion.consultarCaracteristicaOpcion',\n                false,\n                {\n                  lista: this.parametrosEvaluacionPipe.LISTA_02,\n                  tabla: this.faseEvaluacionDTO.llaveGestionPeriodo,\n                  tipo: 'GP',\n                }\n              )\n            )\n            .toPromise();\n        opcionesListaMeta1.forEach(async (opcion1) => {\n          if ('S' == opcion1.inicio) {\n            metaNueva.datoLista2 == opcion1.cadena;\n          }\n        });\n      }\n      if (datoOrganizacion.campo == this.parametrosEvaluacionPipe.LISTAMETA3) {\n        var opcionesListaMeta1: CaracteristicaOpcionModel[] =\n          await this.generalService\n            .queryForList(\n              new GeneralModel(\n                'CaracteristicaOpcionDTO',\n                'CaracteristicaOpcion.consultarCaracteristicaOpcion',\n                false,\n                {\n                  lista: this.parametrosEvaluacionPipe.LISTA_03,\n                  tabla: this.faseEvaluacionDTO.llaveGestionPeriodo,\n                  tipo: 'GP',\n                }\n              )\n            )\n            .toPromise();\n        opcionesListaMeta1.forEach(async (opcion1) => {\n          if ('S' == opcion1.inicio) {\n            metaNueva.datoLista3 == opcion1.cadena;\n          }\n        });\n      }\n      if (datoOrganizacion.campo == this.parametrosEvaluacionPipe.LISTAMETA4) {\n        var opcionesListaMeta1: CaracteristicaOpcionModel[] =\n          await this.generalService\n            .queryForList(\n              new GeneralModel(\n                'CaracteristicaOpcionDTO',\n                'CaracteristicaOpcion.consultarCaracteristicaOpcion',\n                false,\n                {\n                  lista: this.parametrosEvaluacionPipe.LISTA_04,\n                  tabla: this.faseEvaluacionDTO.llaveGestionPeriodo,\n                  tipo: 'GP',\n                }\n              )\n            )\n            .toPromise();\n        opcionesListaMeta1.forEach(async (opcion1) => {\n          if ('S' == opcion1.inicio) {\n            metaNueva.datoLista4 == opcion1.cadena;\n          }\n        });\n      }\n      if (datoOrganizacion.campo == this.parametrosEvaluacionPipe.LISTAMETA5) {\n        var opcionesListaMeta1: CaracteristicaOpcionModel[] =\n          await this.generalService\n            .queryForList(\n              new GeneralModel(\n                'CaracteristicaOpcionDTO',\n                'CaracteristicaOpcion.consultarCaracteristicaOpcion',\n                false,\n                {\n                  lista: this.parametrosEvaluacionPipe.LISTA_05,\n                  tabla: this.faseEvaluacionDTO.llaveGestionPeriodo,\n                  tipo: 'GP',\n                }\n              )\n            )\n            .toPromise();\n        opcionesListaMeta1.forEach(async (opcion1) => {\n          if ('S' == opcion1.inicio) {\n            metaNueva.datoLista5 == opcion1.cadena;\n          }\n        });\n      }\n    });\n    return metaNueva;\n  }\n\n  cancelarCrearMetaObjetivo() {\n    this.verUnaMetaDetalle = false;\n  }\n\n  private traerEtiqueta() {\n    this.etiquetaAutoriza = new HomologaIdiomaModel();\n    this.etiquetaAutoriza.tabla = 'FASEGESTIONAUTO';\n    this.etiquetaAutoriza.idioma = 'ES';\n    this.etiquetaAutoriza.llaveOrigen = this.faseGestionDTO.llave;\n    this.generalService\n      .queryForObject(\n        new GeneralModel(\n          'HomologaIdiomaDTO',\n          null,\n          false,\n          this.etiquetaAutoriza\n        )\n      )\n      .subscribe((data) => {\n        this.etiquetaAutoriza = data;\n        if (this.etiquetaAutoriza == null) {\n          this.etiquetaAutoriza = new HomologaIdiomaModel();\n        }\n        if (this.etiquetaAutoriza.descripcion == null) {\n          this.etiquetaAutoriza.descripcion =\n            this.translateService.instant('link_autorizar');\n        }\n        if (this.etiquetaAutoriza.descripcion2 == null) {\n          this.etiquetaAutoriza.descripcion2 =\n            this.translateService.instant('link_noautorizar');\n        }\n      });\n  }\n\n  actualizarAccion() {\n    this.actualizar(false, false);\n    this.notificacionesService.showInfo(\n      'Evaluaci\\u00F3n ha sido guardada temporalmente'\n    );\n  }\n\n  async aplicarAccion() {\n    if (await this.actualizar(true, false)) {\n      return;\n    }\n\n    if (this.isPrimario() || this.isSecundario()) {\n      this.faseEvaluacionDTO.estado = this.faseGesHojaPipe.EVALUACION;\n      if (this.isPrimario()) {\n        this.faseEvaluacionDTO.estadoPrimario = this.faseGesHojaPipe.APLICADA;\n      } else {\n        this.faseEvaluacionDTO.estadoSecundario = this.faseGesHojaPipe.APLICADA;\n      }\n      this.faseEvaluacionDTO.estado = this.faseGesHojaPipe.EVALUACION;\n      if (this.faseEvaluacionDTO.estadoPrimario != null) {\n        if (\n          this.faseEvaluacionDTO.estadoPrimario ==\n          this.faseEvaluacionDTO.estadoSecundario\n        ) {\n          this.faseEvaluacionDTO.estado = this.faseGesHojaPipe.CONSENSO;\n        }\n      }\n      this.faseEvaluacionDTO.llaveEtapaFase = null;\n      const objetoClonado = Object.assign({}, this.faseEvaluacionDTO);\n      delete objetoClonado['nombreEstadoPrimario'];\n      delete objetoClonado['periodo'];\n      delete objetoClonado['nombreEstadoSecundario'];\n      delete objetoClonado['nombreTabla'];\n      delete objetoClonado['alias'];\n      delete objetoClonado['listaEtapas'];\n      delete objetoClonado['evaluacionConcertada'];\n      this.generalService\n        .update(\n          new GeneralModel(\n            'FaseGestionHojaDTO',\n            'FaseGestionHoja.actualizarEstadoFase',\n            false,\n            objetoClonado\n          )\n        )\n        .subscribe((data) => {});\n      var mensaje = this.translateService.instant(\n        'evaluacion_termina_secundario'\n      );\n      if (this.isPrimario()) {\n        if (this.faseEvaluacionDTO.cedulaAutorizador != null) {\n          this.enviarEmailParaAutorizar();\n        }\n        this.notificacionesService.showInfo(\n          this.translateService.instant('evaluacion_termina_primario')\n        );\n      }\n      if (mensaje == null) {\n        mensaje = 'Evaluación terminó';\n      }\n      this.notificacionesService.showInfo(mensaje);\n      this.cancelarAction();\n      return;\n    }\n    if (this.faseEvaluacionDTO.mensajeFinal == null) {\n      this.notificacionesService.showInfo('Evaluación terminó');\n    } else {\n      this.notificacionesService.showInfo(this.faseEvaluacionDTO.mensajeFinal);\n    }\n    //evaluacionSvc.aplicarEvaluacion(getDataSource(), llaveFaseEvaluacion,null,paginasEvaluacionActual.getEtapaFaseGestionDTO().getLlaveTabla(), ipUsuario, getCredencial().getLogin());\n    this.evaluacionesService\n      .aplicarEvaluacion({\n        llave: this.llaveFaseEvaluacion,\n        seguimiento: null,\n        etapaFase: this.paginasEvaluacionActual.etapaFaseGestionDTO.llaveTabla,\n        ipUsuario: this.ipUsuario,\n        usuario: this.authService.getTokenKey('usuario'),\n      })\n      .subscribe((data) => {});\n    this.traeFaseHoja(this.llaveFaseEvaluacion, true);\n\n    if (this.faseEvaluacionDTO.estado == this.faseGesHojaPipe.PORAUTORIZAR) {\n      if (this.faseEvaluacionDTO.cedulaAutorizador != null) {\n        this.enviarEmailParaAutorizar();\n      }\n    }\n    if (this.faseEvaluacionDTO.estado == this.faseGesHojaPipe.APLICADA) {\n      this.enviarEmailFinal();\n    }\n\n    if (this.faseEvaluacionDTO.mensaje != null) {\n      this.notificacionesService.showInfo(this.faseEvaluacionDTO.mensaje);\n      return;\n    }\n    if (\n      this.controlFuncionService.getControlFuncionalidad('evalua:verreporte') ==\n        null &&\n      this.controlFuncionService.getControlFuncionalidad(\n        'evalua:verreportefinal'\n      ) == null &&\n      this.controlFuncionService.getControlFuncionalidad(\n        'evalua:verreportecombinado'\n      ) == null &&\n      this.controlFuncionService.getControlFuncionalidad(\n        'evalua:verreportecomjefe'\n      ) == null\n    ) {\n      this.cancelarAction();\n      return;\n    }\n    if (\n      this.faseEvaluacionDTO.tipoEvaluador == 'N' ||\n      this.faseEvaluacionDTO.tipoEvaluador == 'J'\n    ) {\n      this.resultadoFinal = true;\n    }\n  }\n\n  enviarEmailFinal() {}\n\n  enviarEmailParaAutorizar() {}\n\n  eliminarPlanAccion(eliminar, planBase) {\n    if (planBase != null && planBase.metaPlanAccion != null) {\n      planBase.metaPlanAccion = planBase.metaPlanAccion.filter(\n        (element) => element !== eliminar\n      );\n    }\n\n    this.borrarMetaEvaluacionDTO.push(eliminar);\n  }\n\n  combinarArchivoHerramienta() {\n    this.mostrarPopupConsultaDocumentoSoporte = true;\n    this.tipoPadre = this.parametrosEvaluacionPipe.TABLAGESTIONPERIODO;\n    this.llavePadre = this.faseEvaluacionDTO.llaveGestionPeriodo;\n    this.llaveBase = this.faseEvaluacionDTO.llaveGestionHoja;\n    this.clasificacion = this.faseEvaluacionDTO.clasificacionPK;\n    this.tipo = 'C';\n    this.faseGestion = null;\n    this.aplicaReporte = 'H';\n  }\n\n  combinarArchivoFase() {\n    this.mostrarPopupConsultaDocumentoSoporte = true;\n    this.tipoPadre = this.parametrosEvaluacionPipe.TABLAGESTIONPERIODO;\n    this.llavePadre = this.faseEvaluacionDTO.llaveGestionPeriodo;\n    this.llaveBase = this.faseEvaluacionDTO.llave;\n    this.clasificacion = this.faseEvaluacionDTO.clasificacionPK;\n    this.tipo = 'C';\n    this.faseGestion = this.faseEvaluacionDTO.llaveFase;\n    this.aplicaReporte = 'F';\n  }\n\n  regresarPopupConsultaDocumentoSoporte() {\n    this.mostrarPopupConsultaDocumentoSoporte = false;\n  }\n  eliminarCapacitacion(capacitacion) {\n    this.capacitacionWrapper.listaCapacitacion =\n      this.capacitacionWrapper.listaCapacitacion.filter(\n        (element) => element !== capacitacion\n      );\n    this.borrarCapacitacion.push(capacitacion);\n  }\n\n  verAnexosSeguimiento(seguimiento: SeguimientoMetaModel) {\n    this.seguimientoAnexo = seguimiento;\n    this.consultaAnexoSeguimiento =\n      this.isSoloVer() ||\n      seguimiento.numeroSeguimiento !=\n        this.faseEvaluacionDTO.numeroSeguimiento ||\n      this.isSecundario();\n    this.mostrarPopupAnexoSeguimiento = true;\n  }\n\n  regresarPopupAnexoSeguimiento() {\n    this.mostrarPopupAnexoSeguimiento = false;\n  }\n\n  verPopupListaDimension(preguntaWrapper) {\n    this.preguntaSelect = preguntaWrapper;\n    this.mostrarPopupCompetenciaGestion = true;\n    setTimeout(() => {\n      console.log(this.listaDimensiones)\n      this.popupCompetenciaGestion.listaDimension = this.listaDimensiones;\n    }, 0);\n  }\n\n  verPopupListaDimensionFiltro(preguntaWrapper) {\n    this.preguntaSelect = preguntaWrapper;\n    this.mostrarPopupCompetenciaGestion = true;\n    setTimeout(() => {\n      this.popupCompetenciaGestion.listaDimension = this.listaDimensionesFiltro;\n    }, 0);\n  }\n\n  retornaListaDimension(dimensionDTO: DimensionModel) {\n    this.mostrarPopupCompetenciaGestion = false;\n    if (!dimensionDTO) {\n      return;\n    }\n\t\tthis.preguntaSelect.preguntaEvaluacionDTO.resultado.dimensionAlterna = dimensionDTO.dimension;\n\t\tthis.preguntaSelect.preguntaEvaluacionDTO.resultado.dimensionNombre = dimensionDTO.descripcion;\n\t\tthis.preguntaSelect.preguntaEvaluacionDTO.resultado.datoTexto = dimensionDTO.tema;\n\t\tthis.preguntaSelect.preguntaEvaluacionDTO.resultado.significadoCalifica = dimensionDTO.comportamiento;\n\t}\n\n  regresarAction() {\n    this.verFrame = false;\n    this.regresar.emit(false);\n  }\n\n  isCliente() {\n    return this.authService.getTokenKey('tipoLogin') == 'C';\n  }\n\n  isLimiteFecha() {\n    if (this.faseEvaluacionDTO.estado == null) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.estado == this.faseGesHojaPipe.APLICADA) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.fechaLimite == null) {\n      return false;\n    }\n\n    var now = new Date();\n    var dias = this.diasPasados(this.faseEvaluacionDTO.fechaLimite, now);\n    return dias < 0;\n  }\n\n  diasPasados(fecha1: Date, fecha2: Date) {\n    let diff = new Date(fecha1).getTime() - new Date(fecha2).getTime();\n    return Math.round(diff / 86400000);\n  }\n\n  validarFaseGestion() {\n    if (this.faseGestionDTO.mensajeInicial) {\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  isBotonSiguiente() {\n    if (this.paginaTotal == 0) {\n      return false;\n    }\n    return this.paginaActual < this.paginaTotal;\n  }\n\n  isBotonAnterior() {\n    return this.paginaActual > 1;\n  }\n\n  isVerBotonResultado() {\n    if (!this.isSoloVer()) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.accionGestion == null) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.accionGestion == 'N') {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.estado != this.faseGesHojaPipe.APLICADA) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.tipoEvaluador == null) {\n      return true;\n    }\n    return (\n      'N' == this.faseEvaluacionDTO.tipoEvaluador ||\n      'J' == this.faseEvaluacionDTO.tipoEvaluador\n    );\n  }\n\n  isAutorizar() {\n    if (this.faseEvaluacionDTO == null) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.estado == null) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.estado != this.faseGesHojaPipe.PORAUTORIZAR) {\n      return false;\n    }\n    if (this.isCliente()) {\n      if (this.cedula != this.faseEvaluacionDTO.cedulaAutorizador) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  isBloquear(): boolean {\n    if (this.faseEvaluacionDTO == null) {\n      return true;\n    }\n    if (this.faseEvaluacionDTO.estado == null) {\n      return true;\n    }\n    if (\n      this.faseEvaluacionDTO.estado == this.faseGesHojaPipe.APLICADA ||\n      this.faseEvaluacionDTO.estado == this.faseGesHojaPipe.RECONCERTADA\n    ) {\n      return true;\n    }\n    if (this.isPrimario()) {\n      if (this.faseEvaluacionDTO.estadoPrimario != null) {\n        if (\n          this.faseEvaluacionDTO.estadoPrimario == this.faseGesHojaPipe.APLICADA\n        ) {\n          return true;\n        }\n      }\n    }\n    if (this.isSecundario()) {\n      if (this.faseEvaluacionDTO.estadoSecundario != null) {\n        if (\n          this.faseEvaluacionDTO.estadoSecundario ==\n          this.faseGesHojaPipe.APLICADA\n        ) {\n          return true;\n        }\n      }\n    }\n    if (!this.paginasEvaluacionActual.actualizar) {\n      return true;\n    }\n    return this.isLimiteFecha();\n  }\n\n  isPrimario() {\n    return this.rol == 'primario';\n  }\n\n  isSecundario() {\n    return this.rol == 'secundario';\n  }\n\n  isTerciario() {\n    return this.rol == 'terciario';\n  }\n\n  isConcertada() {\n    return this.faseEvaluacionDTO.concertada == this.faseGesHojaPipe.SI;\n  }\n\n  isOtroEvaluador() {\n    return !(this.isPrimario() || this.isSecundario() || this.isTerciario());\n  }\n\n  isVerMensajeInicial() {\n    return (\n      this.paginasEvaluacionActual == null ||\n      this.paginasEvaluacionActual.etapaFaseGestionDTO == null\n    );\n  }\n\n  isSoloVer() {\n    return this.isBloquear() || this.isAutorizar();\n  }\n\n  public isSoloMetaVer() {\n    return this.isBloquear();\n  }\n\n  //Metodos de pregunta evaluacion\n  /**\n   * Determina si el tipo de campo para la respuesta de esta pregunta es TEXTO\n   * @return true si el tipo de esta pregunta es texto en caso contrario false\n   */\n  public isTexto(tipo) {\n    return this.parametrosEvaluacionPipe.TEXTO == tipo;\n  }\n\n  /**\n   * Determina si el tipo de campo para la respuesta de esta pregunta es FECHA\n   * @return true si el tipo de esta pregunta es fecha en caso contrario false\n   */\n  public isFecha(tipo) {\n    return this.parametrosEvaluacionPipe.FECHA == tipo;\n  }\n\n  /**\n   * Determina si el tipo de campo para la respuesta de esta pregunta es NUMERICO\n   * @return true si el tipo de esta pregunta es numerico en caso contrario false\n   */\n  public isNumero(tipo) {\n    return this.parametrosEvaluacionPipe.NUMERICO == tipo;\n  }\n\n  /**\n   * Determina si el tipo de campo para la respuesta de esta pregunta es NUMERICO CON DECIMALES\n   * @return true si el tipo de esta pregunta es numerico en caso contrario false\n   */\n  public isNumeroDecimal(tipo) {\n    return this.parametrosEvaluacionPipe.NUMERICO_DECIMALES == tipo;\n  }\n\n  /**\n   * Determina si el tipo de campo para la respuesta de esta pregunta es MARCA (casilla de verificacion)\n   * @return true si el tipo de esta pregunta es marca en caso contrario false\n   */\n  public isMarca(tipo) {\n    return this.parametrosEvaluacionPipe.MARCA == tipo;\n  }\n\n  /**\n   * Determina si el tipo de campo para la respuesta de esta pregunta es una LISTA seleccionable (unica seleccion)\n   * @return true si el tipo de esta pregunta es lista en caso contrario false\n   */\n  public isLista(tipo) {\n    return this.parametrosEvaluacionPipe.LISTA == tipo;\n  }\n\n  /**\n   * Determina si el tipo de respuesta de esta pregunta es CALIFICACION CUALITATIVA\n   * @return true si el tipo de esta pregunta es calificacion cualitativa\n   */\n  public isCalificacionCualitativa(tipo) {\n    if (tipo == this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA) {\n      return true;\n    }\n    if (tipo == this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA) {\n      return true;\n    }\n    if (tipo == this.parametrosEvaluacionPipe.COMPETENCIACALIFICASEGUNUSUARIO) {\n      return true;\n    }\n    if (tipo == this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO) {\n      return true;\n    }\n    return this.parametrosEvaluacionPipe.VALORCOMPETENCIA == tipo;\n  }\n\n  public isCompentenciaUsuario(tipo) {\n    if (tipo == this.parametrosEvaluacionPipe.COMPETENCIASEGUNUSUARIO) {\n      return true;\n    }\n    return false;\n  }\n  /**\n   * Determina si el tipo de respuesta de esta pregunta es CALIFICACION CUALITATIVA\n   * @return true si el tipo de esta pregunta es calificacion cualitativa\n   */\n  public isCompentenciaFiltro(tipo) {\n    if (tipo == this.parametrosEvaluacionPipe.COMPETENCIAUSUARIOFILTRO) {\n      return true;\n    }\n    return false;\n  }\n\n  public isCompentenciaUsuarioCalifica(tipo) {\n    if (tipo == this.parametrosEvaluacionPipe.COMPETENCIACALIFICASEGUNUSUARIO) {\n      return true;\n    }\n    return false;\n  }\n\n  public isTipoCompetencia(tipo) {\n    return (\n      tipo.toUpperCase() ==\n        this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n      tipo.toUpperCase() == this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO\n    );\n  }\n\n  public isCalificacionCualitativaLista(tipo, textoAdicionalLista) {\n    if (tipo == this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA) {\n      return textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.SI;\n    }\n    if (tipo == this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA) {\n      return textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.SI;\n    }\n    if (tipo == this.parametrosEvaluacionPipe.COMPETENCIACALIFICASEGUNUSUARIO) {\n      return textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.SI;\n    }\n    if (tipo == this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO) {\n      return textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.SI;\n    }\n    return false;\n  }\n\n  public isCalificacionCualitativaNoLista(tipo, textoAdicionalLista) {\n    if (tipo == this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA) {\n      return textoAdicionalLista?.toUpperCase() != this.faseGesHojaPipe.SI;\n    }\n    if (\n      tipo == this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO ||\n      tipo == this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n      tipo == this.parametrosEvaluacionPipe.COMPETENCIACALIFICASEGUNUSUARIO ||\n      tipo == this.parametrosEvaluacionPipe.VALORCOMPETENCIA\n    ) {\n      return textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.RADIO;\n    }\n    return false;\n  }\n\n  public isCalificacionCualitativaNoListaManual(tipo, textoAdicionalLista) {\n    if (\n      tipo == this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO ||\n      tipo == this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n      tipo == this.parametrosEvaluacionPipe.COMPETENCIACALIFICASEGUNUSUARIO ||\n      tipo == this.parametrosEvaluacionPipe.VALORCOMPETENCIA\n    ) {\n      return textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.MANUAL;\n    }\n    return false;\n  }\n\n  public isCalificacionCualitativaNoListaHorizontal(tipo, textoAdicionalLista) {\n    if (\n      tipo == this.parametrosEvaluacionPipe.COMPETENCIASEGUNFILTRO ||\n      tipo == this.parametrosEvaluacionPipe.VALORTIPOCOMPETENCIA ||\n      tipo == this.parametrosEvaluacionPipe.COMPETENCIACALIFICASEGUNUSUARIO ||\n      tipo == this.parametrosEvaluacionPipe.VALORCOMPETENCIA\n    ) {\n      return (\n        textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.HORIZONTAL\n      );\n    }\n    return false;\n  }\n\n  public isCalificacionCualitativaExtremo(tipo) {\n    return tipo == this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_EXT;\n  }\n\n  public isCalificacionCualitativaHorizontal(tipo, textoAdicionalLista) {\n    if (tipo == this.parametrosEvaluacionPipe.CALIFICACION_CUALITATIVA_HOR) {\n      return textoAdicionalLista?.toUpperCase() != this.faseGesHojaPipe.SI;\n    }\n    return false;\n  }\n\n  public isCalificacionValor(tipo) {\n    return this.parametrosEvaluacionPipe.CALIFICACION_VALOR == tipo;\n  }\n\n  /**\n   * Determina si el tipo de campo para la respuesta de esta pregunta es una LISTA MULTIPLE (multiple seleccion)\n   * @return true si el tipo de esta pregunta es lista multiple en caso contrario false\n   */\n  public isListaMultiple(tipo) {\n    return this.parametrosEvaluacionPipe.LISTA_MULTIPLE == tipo;\n  }\n\n  public isTitulo(tipo) {\n    return this.parametrosEvaluacionPipe.TITULO == tipo;\n  }\n\n  public isSubtitulo(tipo) {\n    return this.parametrosEvaluacionPipe.SUBTITULO == tipo;\n  }\n\n  public isInstruccion(tipo) {\n    return this.parametrosEvaluacionPipe.INSTRUCCION == tipo;\n  }\n\n  public isInstruccionRegla(tipo) {\n    return this.parametrosEvaluacionPipe.INSTRUCCIONREGLA == tipo;\n  }\n\n  /**\n   * Determina si esta pregunta requiere ingreso de informacion/respuesta por parte del evaluado\n   * @return false en caso de que la pregunta sea tipo TITULO, SUBTITULO, INSTRUCCION o INSTRUCCIONREGLA, en caso contrario true\n   */\n  public isEntradaDato(tipo) {\n    return (\n      this.parametrosEvaluacionPipe.TITULO != tipo &&\n      this.parametrosEvaluacionPipe.SUBTITULO != tipo &&\n      this.parametrosEvaluacionPipe.INSTRUCCION != tipo &&\n      this.parametrosEvaluacionPipe.INSTRUCCIONREGLA != tipo\n    );\n  }\n\n  public isCampoRequerido(requerido) {\n    return (\n      (requerido ? requerido.toUpperCase() : '') == this.faseGesHojaPipe.SI\n    );\n  }\n\n  public isTextoAdicional(tipo, textoAdicionalLista) {\n    if (this.isTexto(tipo)) {\n      return false;\n    }\n    if (this.isCalificacionCualitativa(tipo)) {\n      return false;\n    }\n    return textoAdicionalLista?.toUpperCase() == this.faseGesHojaPipe.SI;\n  }\n\n  public isEvaluacionConcertada() {\n    return this.faseEvaluacionDTO.concertada == 'S';\n  }\n\n  public isIncluirSeguimiento() {\n    if (this.faseEvaluacionDTO == null) {\n      return false;\n    }\n    return this.faseEvaluacionDTO.numeroSeguimiento > 0;\n  }\n\n  public isVerCapacitacion() {\n    if (this.isVerMensajeInicial()) {\n      return false;\n    }\n    return (\n      this.gestionHerramientasPipe.CAPACITACION ==\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo\n    );\n  }\n\n  public isVerMetas() {\n    if (this.isVerMensajeInicial()) {\n      return false;\n    }\n    return (\n      this.gestionHerramientasPipe.META ==\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo\n    );\n  }\n\n  public isVerMetaTabla() {\n    if (this.verUnaMetaDetalle) {\n      return false;\n    }\n    return 'T' == this.paginasEvaluacionActual.etapaFaseGestionDTO.tipoListado;\n  }\n\n  public isVerCompetenciaSeg() {\n    if (this.isVerMensajeInicial()) {\n      return false;\n    }\n    return (\n      this.gestionHerramientasPipe.COMPETENCIA_SEG ==\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo\n    );\n  }\n\n  /**\n   * Determina si se debe visualizar la seccion de factores de evaluacion\n   * @return true en caso de que la página actual de la evaluacion corresponda a una etapa de tipo ENCUESTA, en caso contrario false\n   */\n  public isVerFactores() {\n    if (this.isVerMensajeInicial()) {\n      return false;\n    }\n    return 'E' == this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo;\n  }\n\n  public isVerBotonPlanAccion() {\n    if (!this.isVerPlanAccion()) {\n      return false;\n    }\n    if (this.isPrimario() || this.isSecundario()) {\n      return false;\n    }\n    if (this.isSoloVer()) {\n      if (!this.isBotonSiguiente()) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  public isActorFinal() {\n    if (this.faseEvaluacionDTO.tipoEvaluador == null) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.accionGestion == null) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.accionGestion == 'N') {\n      return false;\n    }\n    return (\n      'J' == this.faseEvaluacionDTO.tipoEvaluador ||\n      'N' == this.faseEvaluacionDTO.tipoEvaluador\n    );\n  }\n  public isVerPlanAccion() {\n    if (this.isVerMensajeInicial()) {\n      return false;\n    }\n    return 'P' == this.paginasEvaluacionActual.etapaFaseGestionDTO.tipo;\n  }\n  public isHayCompentencia() {\n    if (this.listaResultadoCompetencia == null) {\n      return false;\n    }\n    return this.listaResultadoCompetencia.length != 0;\n  }\n\n  public isHayResultado() {\n    if (this.listaResultadoEvaluacion == null) {\n      return false;\n    }\n    return this.listaResultadoEvaluacion.length != 0;\n  }\n\n  public isIncluirMetas() {\n    if (!this.isVerMetas()) {\n      return false;\n    }\n    if (this.isBloquear()) {\n      return false;\n    }\n    var seguimiento =\n      this.paginasEvaluacionActual.etapaFaseGestionDTO.seguimiento;\n    if (seguimiento == null) {\n      return false;\n    }\n    return 'A' == seguimiento || 'I' == seguimiento;\n  }\n\n  public getListaCampos() {\n    if (this.isVerCapacitacion()) {\n      return this.capacitacionWrapper.campos;\n    }\n    if (this.isVerMetas()) {\n      return this.metaWrapper.campos;\n    }\n    return null;\n  }\n\n  public getCamposSeguimiento() {\n    if (this.isVerMetas()) {\n      return this.metaWrapper.camposSeguimiento;\n    }\n    if (this.isVerCompetenciaSeg()) {\n      return this.competenciaSegEvaluacionWrapper.camposSeguimiento;\n    }\n    return null;\n  }\n\n  isCampoMetaWrapper(campo) {\n    var existe = false;\n    this.metaWrapper.campos.forEach((element) => {\n      if (element.campo == campo) {\n        existe = true;\n      }\n    });\n    return existe;\n  }\n\n  isCampoSeguimientoMetaWrapper(campo) {\n    var existe = false;\n    this.metaWrapper.camposSeguimiento.forEach((element) => {\n      if (element.campo == campo) {\n        existe = true;\n      }\n    });\n    return existe;\n  }\n\n  getListaMetas() {\n    if (this.verUnaMetaDetalle) {\n      var listaMeta: MetaEvaluacionModel[] = [];\n      listaMeta.push(this.unaMeta);\n      return listaMeta;\n    }\n    return this.metaWrapper?.listaMeta;\n  }\n\n  isSoyJefe() {\n    if (this.authService.getTokenKey('tipoLogin') == 'U') {\n      return false;\n    }\n    if (\n      this.faseEvaluacionDTO == null ||\n      this.faseEvaluacionDTO.cedulaResponsable == null\n    ) {\n      return false;\n    }\n    if (this.faseEvaluacionDTO.tipoEvaluador == null) {\n      return false;\n    }\n\n    if (this.cedula == null) {\n      return false;\n    }\n\n    return (\n      this.faseEvaluacionDTO.cedulaResponsable == this.cedula &&\n      this.parametrosEvaluacionPipe.JEFE == this.faseEvaluacionDTO.tipoEvaluador\n    );\n  }\n\n  public isFuncional() {\n    return this.authService.getTokenKey('tipoLogin') == 'U';\n  }\n\n  isReporteVer() {\n    return (\n      (this.isSoyJefe() || this.isFuncional()) &&\n      !this.mostrarArchivoHerramienta\n    );\n  }\n\n  irResultadoAccion() {}\n\n  irPlanAccion() {}\n\n  noAutorizarAccion() {}\n\n  autorizarAccion() {}\n\n  guardarMetaEnLista() {}\n\n  crearCapacitacion() {}\n\n  reporteCuestionario() {}\n\n  imprimir(valor) {\n    console.log(valor)\n    return \"aaaa\"\n  }\n}","<div *ngIf=\"verFrame\">\n    \n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!-- <h1>Listado gestión hoja</h1> -->\n        <div></div>\n        <button pButton pRipple (click)=\"regresarAction()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold\"></button>\n    </div>\n\n    <div>\n\n        <!--CABECERA DATOS EMPLEADO-->\n        <div>\n            <div class=\"w-full\">\n                <div>\n                <div class=\"empleado p-fluid grid\">\n                   \n                    <div class=\"col-6 md:col-4 lg:col-6\">\n                    <div class=\"flex\" >\n\n                        <div class=\"avatar-container\" style=\"width: 17%\">\n                            <img class=\"avatar-image\" [src]=\"caminoFoto\">\n                        </div>\n                        <div  style=\"width: 80%;\">\n                            <div>\n                                <div>\n                                    <div>\n                                        <div class=\"p-fluid p-formgrid grid col-12 ml-1\">\n                                            <h1 class=\"w-full mb-3\">{{faseEvaluacionDTO.documento}} : {{faseEvaluacionDTO.nombreCompletoEvaluado}}</h1>\n\n\n                                                <!--UNIDAD-->\n                                                <div class=\"col-6 md:col-4 lg:col-4\" >\n                                                    <p><span class=\"font-medium\">{{('unidadorganizacional') | translate}}: </span><br> <span>{{faseEvaluacionDTO.unidadPK}} : {{faseEvaluacionDTO.nombreUnidad}}</span></p>\n                                                </div>\n\n                                                <!--CARGO-->\n                                                <div class=\"col-6 md:col-4 lg:col-4\" >\n                                                    <p><span class=\"font-medium\">{{('cargo') | translate}}: </span><br> <span>{{faseEvaluacionDTO.cargoPK}} : {{faseEvaluacionDTO.nombreCargo}}</span></p>\n                                                </div>\n\n                                                <!--CLASIFICACION-->\n                                                <div class=\"col-6 md:col-4 lg:col-4\" >\n                                                    <p><span class=\"font-medium\">{{('clasificacion') | translate}}: </span><br> <span>{{faseEvaluacionDTO.clasificacionPK}} : {{faseEvaluacionDTO.nombreClasificacion}}</span></p>\n                                                </div>\n\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    </div>\n\n                        \n                        <div class=\"col-6 md:col-4 lg:col-6 col-6 md:col-4 lg:col-6 border-1 border-color-100 border-round-lg\t\">\n                            <div>                    \n                                <div class=\"flex\" >\n                                    <div class=\"field\">\n                                        <div>\n                                            <div class=\"col-md-12 ml-3\">\n                                                <div>\n                                                    <div class=\"p-fluid p-formgrid grid col-12\">\n            \n                                                        <!--ESTADO-->\n                                                        <div class=\"col-6 md:col-6 lg:col-6\" >\n                                                            <p><span class=\"font-medium\">{{('estado') | translate}}: </span><br> <span>{{faseEvaluacionDTO.nombreEstado}}</span></p>\n                                                        </div>\n            \n                                                        @if(isConcertada()) {\n                                                            <!--ESTADO FUNCIONARIO-->\n                                                            <div class=\"col-6 md:col-6 lg:col-6\" >\n                                                                <p><span class=\"font-medium\">{{('estadofuncionario') | translate}}: </span><br> <span>{{faseEvaluacionDTO.nombreEstadoPrimario}}</span></p>\n                                                            </div>\n                                                        }\n            \n                                                        @if(isConcertada()) {\n                                                            <!--ESTADO RESPONSABLE-->\n                                                            <div class=\"col-6 md:col-6 lg:col-6\" >\n                                                                <p><span class=\"font-medium\">{{('estadoresponsable') | translate}}: </span><br> <span>{{faseEvaluacionDTO.nombreEstadoSecundario}}</span></p>\n                                                            </div>\n                                                        }\n            \n                                                        <!--PERIODO-->\n                                                        <div class=\"col-6 md:col-6 lg:col-6\" >\n                                                            <p><span class=\"font-medium\">{{('periodo') | translate}}: </span><br> <span>{{faseEvaluacionDTO.periodo}}</span></p>\n                                                        </div>\n            \n                                                        <!--FECHA LIMITE-->\n                                                        <div class=\"col-6 md:col-6 lg:col-6\" >\n                                                            <p><span class=\"font-medium\">{{('fechalimite') | translate}}: </span><br> <span>{{faseEvaluacionDTO.fechaLimite | date : ('formatofecha' | translate)}}</span></p>\n                                                        </div>\n            \n                                                        <!--EVALUADOR-->\n                                                        <div class=\"col-6 md:col-6 lg:col-6\" >\n                                                            <p><span class=\"font-medium\">{{('evaluador') | translate}}: </span><br> <span>{{faseEvaluacionDTO.nombreCompletoResponsable}}</span></p>\n                                                        </div>\n            \n                                                        @if(isLimiteFecha()) {\n                                                            <h5>{{'fechalimite' | translate}} {{'evaluacion' | translate}}</h5>\n                                                        }\n                                                    </div>\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n             \n\n             \n                 </div>\n                </div>\n            </div>\n            <!--CUADRO DE DATOS DE LA EVALUACION-->\n   \n        \n    </div>\n\n    <!-- Información de Fase/Etapa de la Evaluacion -->\n    <p-breadcrumb class=\"max-w-full text-xs\" [model]=\"pasos\" ></p-breadcrumb>\n\n    <div class=\"card-notificacion\" [innerHTML]=\"mensajeInicial  |  safeHTML\" *ngIf=\"isVerMensajeInicial()\"></div>\n\n    <!--Factores-->\n\n    <div class=\"card mt-3\" *ngIf=\"isVerFactores() && paginasEvaluacionActual != null && paginasEvaluacionActual.etapaFaseGestionDTO != null\" >\n        <h5 class=\"mt-3 flex align-items-center font-semibold\">\n            <span class=\"color-400 glyphicons glyphicons-floppy-save\"></span>\n            <span >{{paginasEvaluacionActual.etapaFaseGestionDTO.descripcion}}</span>\n        </h5>\n\n        <p class=\"mb-4\"> \n          <!-- <i class=\"glyphicons glyphicons-floppy-save\"></i>  --> {{paginasEvaluacionActual.etapaFaseGestionDTO.instructivo}} \n        </p>\n        <p-table\n            [value]=\"ventana\"\n            class=\"p-3\"\n            responsiveLayout=\"scroll\"\n            [scrollable]=\"true\" \n            scrollDirection=\"horizontal\" \n            styleClass=\"p-datatable-stripe\"\n            >\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{faseEvaluacionDTO.nombreEvaluacion}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"footer\">\n            <tr>\n                <div class=\"flex align-items- background-85 p-3 w-full\">\n                <th style=\"text-align: center; color:black; display:table; margin: 0 auto;\">{{faseEvaluacionDTO.nombreEvaluacion}}</th>\n            </div>\n            </tr>\n        </ng-template>\n\n        \n        <ng-template pTemplate=\"body\" let-preguntaWrapper>\n            <tr>\n                <td class=\"block text-center \">\n\n                    <label class=\"text-center font-semibold text-base\" *ngIf=\"isTitulo(preguntaWrapper.preguntaEvaluacionDTO.tipo)\">\n                        {{preguntaWrapper.preguntaEvaluacionDTO.temaPregunta}}</label>\n                    <label class=\"font-semibold text-base\" *ngIf=\"isSubtitulo(preguntaWrapper.preguntaEvaluacionDTO.tipo)\">{{preguntaWrapper.preguntaEvaluacionDTO.temaPregunta}}</label>\n                    <label class=\"font-semibold text-base\" *ngIf=\"isInstruccion(preguntaWrapper.preguntaEvaluacionDTO.tipo)\">{{preguntaWrapper.preguntaEvaluacionDTO.temaPregunta}}</label>\n                    \n                    <p-table\n                        responsiveLayout=\"scroll\"\n                        [value]=\"preguntaWrapper.preguntaEvaluacionDTO.listaCalificacionDTO\"\n                        [scrollable]=\"true\"\n                        *ngIf=\"isInstruccionRegla(preguntaWrapper.preguntaEvaluacionDTO.tipo)\"\n                        >\n                        <ng-template pTemplate=\"body\" let-datos>\n                            <tr>\n                                <td style=\"text-align: center; font-weight: bold; padding: 0 1.5rem ;\">{{datos.etiqueta}}</td>\n                                <td style=\"text-align: center\">{{datos.descripcion}}</td>\n                            </tr>\n                        </ng-template>\n                    </p-table>\n                    <div *ngIf=\"!(isInstruccionRegla(preguntaWrapper.preguntaEvaluacionDTO.tipo) || isTitulo(preguntaWrapper.preguntaEvaluacionDTO.tipo) ||  isSubtitulo(preguntaWrapper.preguntaEvaluacionDTO.tipo) || isInstruccion(preguntaWrapper.preguntaEvaluacionDTO.tipo))\">\n                        <div class=\"col-md-12\">\n                            <div class=\"p-fluid p-formgrid grid align-items-center mt-4 mb-4\">\n\n                                <div class=\"col-12 md:col-7 lg:col-7 text-left\">\n                                    <div *ngIf=\"!isCompentenciaUsuarioCalifica(preguntaWrapper.preguntaEvaluacionDTO.tipo)\">\n                                        <label>{{preguntaWrapper.preguntaEvaluacionDTO.temaPregunta}}</label>\n                                        <label *ngIf=\"isCampoRequerido(preguntaWrapper.preguntaEvaluacionDTO.requerido)\"> *</label>\n                                    </div>\n                                    <div *ngIf=\"isCompentenciaUsuarioCalifica(preguntaWrapper.preguntaEvaluacionDTO.tipo)\">\n                                        <label>{{preguntaWrapper.preguntaEvaluacionDTO.dimensionDescripcion}}</label>\n                                        <label>{{'descripciondetallada' | translate}} : </label>\n                                        <label> {{preguntaWrapper.preguntaEvaluacionDTO.temaCompetencia}}</label>\n                                        <label>{{'descripcionconducta' | translate}} : </label>\n                                        <label> {{preguntaWrapper.preguntaEvaluacionDTO.temaPregunta}}</label>\n                                        <label *ngIf=\"isCampoRequerido(preguntaWrapper.preguntaEvaluacionDTO.requerido)\">* </label>\n                                    </div>\n                                </div>\n                                <div class=\"flex text-left\" style=\"width: 40%;\">\n                                    <div class=\"w-full\" [class]=\"preguntaWrapper.preguntaEvaluacionDTO.mensaje == 'S' ? 'campoObligatorio':''\">\n                                        <!-- Item tipo TEXTO -->\n                                        <div class=\"flex\" *ngIf=\"isTexto(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <textarea pInputTextarea [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.datoTexto\" rows=\"5\" cols=\"30\"\n                                                [disabled]=\"isSoloVer() || preguntaWrapper.preguntaEvaluacionDTO.requerido == 'V'\"\n                                                class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\" >\n                                            </textarea>\n                                        </div>\n\n                                        <!-- Item tipo FECHA -->\n                                        <div class=\"w-full\" *ngIf=\"isFecha(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p-calendar [showIcon]=\"true\" type=\"text\" [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.datoFecha\"\n                                                [disabled]=\"isSoloVer() || preguntaWrapper.preguntaEvaluacionDTO.requerido == 'V'\" dateFormat=\"dd/mm/yy\" >\n                                            </p-calendar>\n                                        </div>\n\n                                        <!-- Item tipo NUMERO -->\n                                        <div class=\"w-full\" *ngIf=\"isNumero(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p-inputNumber [disabled]=\"isSoloVer() || preguntaWrapper.preguntaEvaluacionDTO.requerido == 'V'\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorPuntaje\"\n                                            >\n                                            </p-inputNumber>\n                                        </div>\n\n                                        <!-- Item tipo NUMERO DECIMAL -->\n                                        <div class=\"w-full\" *ngIf=\"isNumeroDecimal(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p-inputNumber [disabled]=\"isSoloVer() || preguntaWrapper.preguntaEvaluacionDTO.requerido == 'V'\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorPuntaje\" mode=\"decimal\" [minFractionDigits]=\"0\" [maxFractionDigits]=\"5\"  >\n                                            </p-inputNumber>\n                                        </div>\n\n                                        <!-- Item tipo MARCA -->\n                                        <div class=\"w-full\"*ngIf=\"isMarca(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p-checkbox [disabled]=\"isSoloVer() \"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.datoMarca\" [binary]=\"true\"\n                                            ></p-checkbox>\n                                        </div>\n\n                                        <!-- Item tipo LISTA -->\n                                        <div class=\"w-full\" *ngIf=\"isLista(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p-dropdown [options]=\"preguntaWrapper.valorCalificacion\" [autoDisplayFirst]=\"false\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativo\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"isSoloVer()\" >\n                                            </p-dropdown>\n                                        </div>\n\n                                        <!-- Item tipo LISTA COMPETENCIA USUARIO -->\n                                        <div *ngIf=\"isCompentenciaUsuario(preguntaWrapper.preguntaEvaluacionDTO.tipo)\">\n                                            <div class=\"p-inputgroup\" >\n                                                <span class=\"p-float-label\">\n                                                    <input pInputText  [disabled]=\"true\"   [value]=\"(preguntaWrapper.preguntaEvaluacionDTO.resultado.dimensionAlterna || '') + ' - ' + (preguntaWrapper.preguntaEvaluacionDTO.resultado.dimensionNombre || '')\" />\n                                                    <button pButton pRipple (click)=\"verPopupListaDimension(preguntaWrapper)\" class=\"p-button-icon-only clear\" *ngIf=\"!isSoloVer()\" >\n                                                      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n                                                    </button>\n                                                </span>\n                                            </div>\n                                            <div class=\"p-inputgroup mt-2\">\n                                                <p style=\"font-weight: 600\">{{'descripciondetallada' | translate}}: </p>\n                                                <label> {{preguntaWrapper.preguntaEvaluacionDTO.resultado.datoTexto}}</label>\n                                            </div>\n                                            <div class=\"p-inputgroup mt-2\">\n                                                <p style=\"font-weight: 600\">{{'descripcionconducta' | translate}}: </p>\n                                                <label> {{preguntaWrapper.preguntaEvaluacionDTO.resultado.significadoCalifica}}</label>\n                                            </div>\n                                        </div>\n\n                                        <!-- Item tipo LISTA COMPETENCIA Filtro -->\n                                        <div *ngIf=\"isCompentenciaFiltro(preguntaWrapper.preguntaEvaluacionDTO.tipo)\">\n                                            <div class=\"p-inputgroup\" >\n                                                <span class=\"p-float-label\">\n                                                    <input pInputText  [disabled]=\"true\" [value]=\"(preguntaWrapper.preguntaEvaluacionDTO.resultado.dimensionAlterna || '') + ' - ' + (preguntaWrapper.preguntaEvaluacionDTO.resultado.dimensionNombre || '')\" />\n                                                    <button pButton pRipple (click)=\"verPopupListaDimensionFiltro(preguntaWrapper)\" class=\"p-button-icon-only clear\" *ngIf=\"!isSoloVer()\" >\n                                                      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n                                                    </button>\n                                                </span>\n                                            </div>\n                                            <div class=\"p-inputgroup mt-2\">\n                                                <p style=\"font-weight: 600\">{{'descripciondetallada' | translate}}: </p>\n                                                <label> {{preguntaWrapper.preguntaEvaluacionDTO.resultado.datoTexto}}</label>\n                                            </div>\n                                            <div class=\"p-inputgroup mt-2\">\n                                                <p style=\"font-weight: 600\">{{'descripcionconducta' | translate}}: </p>\n                                                <label> {{preguntaWrapper.preguntaEvaluacionDTO.resultado.significadoCalifica}}</label>\n                                            </div>\n                                        </div>\n\n                                        <!-- Item tipo MULTIPLE RESPUESTA -->\n                                        <div class=\"w-full\" *ngIf=\"isListaMultiple(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p-checkbox\n                                                *ngFor=\"let option of preguntaWrapper.valorCalificacion\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valoresCualitativosMultiples\"\n                                                [value]=\"option.value\"\n                                                [label]=\"option.label\"\n                                                [disabled]=\"isSoloVer()\"\n                                            ></p-checkbox>\n                                        </div>\n\n                                        <!-- Item tipo CALIFICACION CUALITATIVA NO LISTA -->\n                                        <div class=\"ml-4 espacio\" *ngIf=\"isCalificacionCualitativaNoLista(preguntaWrapper.preguntaEvaluacionDTO.tipo, preguntaWrapper.preguntaEvaluacionDTO.textoAdicionalLista)\" c>\n                                            <p-radioButton\n                                                *ngFor=\"let valor of preguntaWrapper.valorCalificacion\"\n                                                [value]=\"valor.value\"\n                                                [label]=\"valor.label\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativo\"\n                                                [disabled]=\"isSoloVer()\"\n                                            ></p-radioButton>\n                                        </div>\n\n                                        <!-- Item tipo CALIFICACION CUALITATIVA MANUAL -->\n                                        <div class=\"w-full\" *ngIf=\"isCalificacionCualitativaNoListaManual(preguntaWrapper.preguntaEvaluacionDTO.tipo, preguntaWrapper.preguntaEvaluacionDTO.textoAdicionalLista) \">\n                                            <p-inputNumber [disabled]=\"isSoloVer()\" [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorPuntaje\"\n                                                mode=\"decimal\"></p-inputNumber>\n                                        </div>\n\n                                        <!-- Item tipo CALIFICACION CUALITATIVA HORIZONTAL -->\n                                        <div class=\"flex espacio flex-wrap gap-3 ml-3\" *ngIf=\"isCalificacionCualitativaHorizontal(preguntaWrapper.preguntaEvaluacionDTO.tipo, preguntaWrapper.preguntaEvaluacionDTO.textoAdicionalLista) || isCalificacionCualitativaNoListaHorizontal(preguntaWrapper.preguntaEvaluacionDTO.tipo, preguntaWrapper.preguntaEvaluacionDTO.textoAdicionalLista)\" >\n                                            <p-radioButton \n                                                *ngFor=\"let valor of preguntaWrapper.reglillaComp.respuestas\"\n                                                [value]=\"valor.value\"\n                                                [label]=\"valor.label\"\n                                                [(ngModel)]=\"preguntaWrapper.reglillaComp.valor\"\n                                                [disabled]=\"isSoloVer()\"\n                                            ></p-radioButton>\n                                        </div>\n                                        <!--calificacionCualitativaExtremo-->\n                                        <div class=\"flex espacio flex-wrap gap-3 ml-3\"  *ngIf=\"isCalificacionCualitativaExtremo(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p style=\"font-weight: 600\">{{preguntaWrapper.reglillaExtremoComp.labelIzquierdo}}</p>\n                                            <p-radioButton \n                                                *ngFor=\"let valor of preguntaWrapper.reglillaExtremoComp.valores\"\n                                                [value]=\"valor.value\"\n                                                [label]=\"valor.label\"\n                                                [(ngModel)]=\"preguntaWrapper.reglillaExtremoComp.seleccionado\"\n                                                [disabled]=\"isSoloVer()\"\n                                            ></p-radioButton>\n                                            <p style=\"font-weight: 600\">{{preguntaWrapper.reglillaExtremoComp.labelDerecho}}</p>\n                                        </div>\n\n                                        <!-- Item tipo CALIFICACION CUALITATIVA LISTA (evaluacion NO concertada) -->\n                                        <div *ngIf=\"isCalificacionCualitativaLista(preguntaWrapper.preguntaEvaluacionDTO.tipo, preguntaWrapper.preguntaEvaluacionDTO.textoAdicionalLista) && !isEvaluacionConcertada()\">\n                                            <p-dropdown [options]=\"preguntaWrapper.calificacionEtiqueta\" [autoDisplayFirst]=\"false\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativo\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"isSoloVer()\" >\n                                            </p-dropdown>\n                                        </div>\n\n                                        <!-- Item tipo CALIFICACION CUALITATIVA LISTA (evaluacion concertada) -->\n                                        <div *ngIf=\"isCalificacionCualitativaLista(preguntaWrapper.preguntaEvaluacionDTO.tipo, preguntaWrapper.preguntaEvaluacionDTO.textoAdicionalLista) && isEvaluacionConcertada()\">\n                                            <label>{{'colaborador' | translate}}</label>\n                                            <p-dropdown [options]=\"preguntaWrapper.calificacionEtiqueta\" [autoDisplayFirst]=\"false\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativoPropio\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"isSoloVer() || isTerciario()\"\n                                                *ngIf=\"isTerciario() || isPrimario() || isOtroEvaluador()\" >\n                                            </p-dropdown>\n                                            <p-dropdown [options]=\"\" [autoDisplayFirst]=\"false\" *ngIf=\"isSecundario()\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativo\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"true\" >\n                                            </p-dropdown>\n\n                                            <label>{{'lider' | translate}} {{preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativoOtro}}</label>\n                                            <p-dropdown [options]=\"preguntaWrapper.calificacionEtiqueta\" [autoDisplayFirst]=\"false\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativoOtro\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"isSoloVer() || isTerciario()\"\n                                                *ngIf=\"isTerciario() || isPrimario() || isOtroEvaluador()\" >\n                                            </p-dropdown>\n                                            <p-dropdown [options]=\"\" [autoDisplayFirst]=\"false\" *ngIf=\"isPrimario()\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativo\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"true\" >\n                                            </p-dropdown>\n\n                                            <label>{{'consenso' | translate}}</label>\n                                            <p-dropdown [options]=\"preguntaWrapper.calificacionEtiqueta\" [autoDisplayFirst]=\"false\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativo\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"isSoloVer()\"\n                                                *ngIf=\"isTerciario() || isOtroEvaluador()\" >\n                                            </p-dropdown>\n                                            <p-dropdown [options]=\"\" [autoDisplayFirst]=\"false\" *ngIf=\"isPrimario() || isSecundario()\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorCualitativo\" optionLabel=\"label\" optionValue=\"value\"\n                                                [disabled]=\"true\" >\n                                            </p-dropdown>\n                                        </div>\n\n                                        <div *ngIf=\"isCalificacionValor(preguntaWrapper.preguntaEvaluacionDTO.tipo)\" >\n                                            <p-inputNumber [disabled]=\"isSoloVer()\"\n                                                [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.valorPuntaje\" mode=\"decimal\"  >\n                                            </p-inputNumber>\n                                        </div>\n\n                                    </div>\n                                </div>\n                          \n                                    <div *ngIf=\"preguntaWrapper.preguntaEvaluacionDTO.textoAdicional\">\n                                        <textarea pInputTextarea [(ngModel)]=\"preguntaWrapper.preguntaEvaluacionDTO.resultado.datoTexto\" rows=\"5\" cols=\"30\"\n                                            [disabled]=\"isSoloVer()\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\" >\n                                        </textarea>\n                                    </div>\n                           \n\n                            </div>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n\n        </p-table>\n    </div>\n\n    <!-- Capacitacion -->\n\n    <div *ngIf=\"isVerCapacitacion()\">\n        <div class=\"cardInstrucciones\">\n        <label style=\"font-weight: bold; text-align: center;margin:5px;\">{{paginasEvaluacionActual.etapaFaseGestionDTO.descripcion}}</label>\n        <label style=\"font-weight: 500; font-size: 0.9rem !important; text-align: center;\">{{paginasEvaluacionActual.etapaFaseGestionDTO.instructivo}}</label>\n        </div>\n        <p-table\n            *ngIf=\"capacitacionWrapper\"\n            responsiveLayout=\"scroll\"\n                [value]=\"capacitacionWrapper.listaCapacitacion\"\n            [scrollable]=\"true\"\n            >\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"body\" let-capacitacion>\n                <tr>\n                    <th>\n                        <p-table\n                            responsiveLayout=\"scroll\"\n                            [value]=\"getListaCampos()\"\n                            [scrollable]=\"true\"\n                            >\n                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                            <ng-template pTemplate=\"body\" let-campoCapacitacion>\n                                <tr>\n                                    <th>\n                                        <label>{{campoCapacitacion.descripcion}}</label>\n                                        <label *ngIf=\"campoCapacitacion.requerido == 'S'\">*</label>\n                                    </th>\n                                    <th>\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.area\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'area'\">\n                                        </textarea>\n                                        <input pInputText [(ngModel)]=\"capacitacion.beneficiario\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'beneficiario'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.ubicacionGeograficaNombre\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'ubicacionGeograficaNombre'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.cursoNombre\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'cursoNombre'\" />\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.descripcion\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'descripcion'\">\n                                        </textarea>\n                                        <input pInputText [(ngModel)]=\"capacitacion.dimension\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'dimension'\" />\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.dirigido\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'dirigido'\">\n                                        </textarea>\n                                        <input pInputText [(ngModel)]=\"capacitacion.factor\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'factor'\" />\n                                        <p-calendar [showIcon]=\"true\" [(ngModel)]=\"capacitacion.fechaFinal\" dateFormat=\"dd/mm/yy\"\n                                            [disabled]=\"isSoloVer()\"\n                                            *ngIf=\"campoCapacitacion.campo == 'fechaFinal'\">\n                                        </p-calendar>\n                                        <p-calendar [showIcon]=\"true\" [(ngModel)]=\"capacitacion.fechaInicial\" dateFormat=\"dd/mm/yy\"\n                                            [disabled]=\"isSoloVer()\"\n                                            *ngIf=\"campoCapacitacion.campo == 'fechaInicial'\">\n                                        </p-calendar>\n                                        <p-calendar [showIcon]=\"true\" [(ngModel)]=\"capacitacion.fechaSolicitud\" dateFormat=\"dd/mm/yy\"\n                                            [disabled]=\"isSoloVer()\"\n                                            *ngIf=\"campoCapacitacion.campo == 'fechaSolicitud'\">\n                                        </p-calendar>\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.justificacion\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'justificacion'\">\n                                        </textarea>\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.modalidad\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'modalidad'\">\n                                        </textarea>\n                                        <input pInputText [(ngModel)]=\"capacitacion.descripcionNivelAcademico\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'nivelAcademico'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.origenEventoNombre\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'origenEvento'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.otraEntidad\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'otraEntidad'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.precio\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'precio'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.responsableCedulaNombre\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'cedulaResponde'\" />\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.resultado\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'resultado'\">\n                                        </textarea>\n                                        <input pInputText [(ngModel)]=\"capacitacion.solicitud\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'solicitud'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.sucursalNombre\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'sucursal'\" />\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.tema\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'tema'\">\n                                        </textarea>\n                                        <input pInputText [(ngModel)]=\"capacitacion.tipoEventoNombre\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'tipoEvento'\" />\n                                        <textarea pInputTextarea [(ngModel)]=\"capacitacion.titulo\" rows=\"5\" cols=\"30\"\n                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'titulo'\">\n                                        </textarea>\n                                        <input pInputText [(ngModel)]=\"capacitacion.unidadDuracion\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'unidadDuracion'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.codigoTemaNombre\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'codigoTemaNombre'\" />\n                                        <input pInputText [(ngModel)]=\"capacitacion.nombreEscuelaFormacion\" [size]=\"40\"\n                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoCapacitacion.campo == 'escuelaFormacion'\" />\n                                    </th>\n                                </tr>\n                            </ng-template>\n                        </p-table>\n                    </th>\n                    <th *ngIf=\"!isSoloVer()\">\n                        <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                            icon=\"glyphicons glyphicons-bin\"\n                            (click)=\"eliminarCapacitacion(capacitacion)\">\n                        </button>\n                    </th>\n                </tr>\n            </ng-template>\n        </p-table>\n\n        <div class=\"flex justify-content-end\" *ngIf=\"!isSoloVer()\">\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                icon=\"glyphicons glyphicons-plus\" label=\"{{'link_nueva' | translate}}\"\n                (click)=\"crearCapacitacion()\">\n            </button>\n        </div>\n    </div>\n\n    <!-- Metas -->\n\n    <div *ngIf=\"isVerMetas()\">\n        <div class=\"cardInstrucciones\">\n            <div class=\"flex\">\n                <div class=\"icono\">\n                    <i class=\"pi pi-bell\"></i>\n                </div>\n                <div>\n                    <h5 class=\"mt-3\" style=\"font-weight: bold;\">{{paginasEvaluacionActual.etapaFaseGestionDTO.descripcion}}</h5>\n                    <label>{{paginasEvaluacionActual.etapaFaseGestionDTO.instructivo}}</label>\n                </div>\n            </div>\n        </div>\n        <div class=\"ml-3 espacio\" *ngIf=\"isIncluirSeguimiento()\">\n            <p-radioButton\n                *ngFor=\"let valor of listaCalificaMetaDes\"\n                [value]=\"valor.value\"\n                [label]=\"valor.label\"\n                [disabled]=\"true\"\n            ></p-radioButton>\n        </div>\n        <div *ngIf=\"isVerMetaTabla()\">\n\n        </div>\n        <div *ngIf=\"!isVerMetaTabla()\">\n            <p-table\n                responsiveLayout=\"scroll\"\n                [value]=\"getListaMetas()\"\n            \n                >\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                      <th style=\"width: 40%; border-bottom:solid 1px var(--color-85);\">{{'meta' | translate}}</th>\n                      <th style=\"width: 60%\" *ngIf=\"isIncluirSeguimiento()\">{{faseEvaluacionDTO.numeroSeguimiento}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-meta>\n                    <tr class=\"border-none\">\n                        <td class=\"background-85\" style=\"width:40%; border-bottom:solid 1px var(--color-85);\">\n                            <label *ngIf=\"meta.mensaje != null && !isIncluirSeguimiento()\">{{meta.mensaje}}</label>\n                            <label *ngIf=\"meta.origenMeta == 'E'\" style=\"font-weight: 500; font-size: 0.9rem !important; text-align: center;\">{{meta.objetivoGeneral}}</label>\n                            <label *ngIf=\"meta.estado == 'E'\">{{'borrado' | translate}}</label>\n                            <p-table\n                                responsiveLayout=\"scroll\"\n                                [value]=\"getListaCampos()\"\n                                class=\"back\"\n                                >\n                                <ng-template pTemplate=\"body\" let-campoNovedad>\n                                    <tr class=\"background-85\">\n                                        <td>\n                                            <div *ngIf=\"campoNovedad.campo != 'objetivoGeneral' && campoNovedad.campo != 'objetivoGeneralUnico'\">\n                                                <label>{{campoNovedad.descripcion}}</label>\n                                                <label *ngIf=\"campoNovedad.requerido == 'S'\">*</label>\n                                            </div>\n                                        </td>\n                                        <td>\n                                            <div class=\"w-full\" [class]=\"meta.mapaMensaje != null && meta.mapaMensaje.get(campoNovedad.campo) != null ? 'campoObligatorio':''\">\n                                                <p-dropdown [options]=\"listaCompetencias\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.competenciaDimension\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'competenciaDimension'\" >\n                                                </p-dropdown>\n                                                <p-dropdown [options]=\"listaCompetenciaSegunFiltro\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.competenciaDimension\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'competencia_segun_filtro_periodo'\" >\n                                                </p-dropdown>\n                                                <div class=\"background-85\">\n                                                    <textarea pInputTextarea [(ngModel)]=\"meta.tema\" rows=\"5\" cols=\"30\"\n                                                        class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                        [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                        *ngIf=\"campoNovedad.campo == 'tema'\">\n                                                    </textarea>\n                                                    <textarea pInputTextarea [(ngModel)]=\"meta.texto1\" rows=\"5\" cols=\"30\"\n                                                        class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                        [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                        *ngIf=\"campoNovedad.campo == 'texto1'\">\n                                                    </textarea>\n                                                    <textarea pInputTextarea [(ngModel)]=\"meta.texto2\" rows=\"5\" cols=\"30\"\n                                                        class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                        [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                        *ngIf=\"campoNovedad.campo == 'texto2'\">\n                                                    </textarea>\n                                                    <!--pte funcionpuestra-->\n                                                    <textarea pInputTextarea [(ngModel)]=\"meta.indicador\" rows=\"5\" cols=\"30\"\n                                                        class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                        [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                        *ngIf=\"campoNovedad.campo == 'indicador'\">\n                                                    </textarea>\n                                                </div>\n                                                <p-dropdown [options]=\"selectListPrioridad\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.prioridad\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'prioridad'\" >\n                                                </p-dropdown>\n                                                <textarea pInputTextarea [(ngModel)]=\"meta.accionMeta\" rows=\"5\" cols=\"30\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'accionMeta'\">\n                                                </textarea>\n                                                <textarea pInputTextarea [(ngModel)]=\"meta.medida\" rows=\"5\" cols=\"30\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'medida'\">\n                                                </textarea>\n                                                <p-inputNumber [(ngModel)]=\"meta.peso\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'peso'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.peso2\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'peso2'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.porcentaje\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'porcentaje'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.porcentaje2\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'porcentaje100'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.porcentajeAcuerdo\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'seguimiento_porcentajeAcuerdo'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.valorAcuerdo\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'seguimiento_valorAcuerdo'\">\n                                                </p-inputNumber>\n                                                <textarea pInputTextarea [(ngModel)]=\"meta.esperado\" rows=\"5\" cols=\"30\" maxlength=\"2000\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'esperado'\">\n                                                </textarea>\n                                                <textarea pInputTextarea [(ngModel)]=\"meta.cadena1\" rows=\"5\" cols=\"30\" maxlength=\"1000\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'cadena1'\">\n                                                </textarea>\n                                                <textarea pInputTextarea [(ngModel)]=\"meta.cadena2\" rows=\"5\" cols=\"30\" maxlength=\"1000\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'cadena2'\">\n                                                </textarea>\n                                                <textarea pInputTextarea [(ngModel)]=\"meta.cadena3\" rows=\"5\" cols=\"30\" maxlength=\"1000\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'cadena3'\">\n                                                </textarea>\n                                                <textarea pInputTextarea [(ngModel)]=\"meta.cadena4\" rows=\"5\" cols=\"30\" maxlength=\"1000\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'cadena4'\">\n                                                </textarea>\n                                                <p-dropdown [options]=\"listaObjetivo\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.codigoObjetivo\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'codigoObjetivo'\" >\n                                                </p-dropdown>\n                                                <p-dropdown [options]=\"listaCurso\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.curso\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'curso'\" >\n                                                </p-dropdown>\n                                                <p-dropdown [options]=\"listaTemaCapacitacion\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.temaCapacitacion\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'temaCapacitacion'\" >\n                                                </p-dropdown>\n                                                <p-inputNumber [(ngModel)]=\"meta.valorAlcance1\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'valorAlcance1'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.valorAlcance2\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'valorAlcance2'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.valorAlcance3\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'valorAlcance4'\">\n                                                </p-inputNumber>\n                                                <p-dropdown [options]=\"listaMetaLista1\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.datoLista1\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'listaMeta1'\" >\n                                                </p-dropdown>\n                                                <p-dropdown [options]=\"listaMetaLista2\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.datoLista2\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'listaMeta2'\" >\n                                                </p-dropdown>\n                                                <p-dropdown [options]=\"listaMetaLista3\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.datoLista3\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'listaMeta3'\" >\n                                                </p-dropdown>\n                                                <p-dropdown [options]=\"listaMetaLista4\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.datoLista4\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'listaMeta4'\" >\n                                                </p-dropdown>\n                                                <p-dropdown [options]=\"listaMetaLista5\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"meta.datoLista5\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'listaMeta5'\" >\n                                                </p-dropdown>\n                                                <p-inputNumber [(ngModel)]=\"meta.ordenAdicion\" [maxlength]=\"5\" [disabled]=\"true\"\n                                                    *ngIf=\"campoNovedad.campo == 'ordenAdicion'\">\n                                                </p-inputNumber>\n                                                <p-inputNumber [(ngModel)]=\"meta.orden\" [maxlength]=\"100\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'orden'\">\n                                                </p-inputNumber>\n                                                <p-calendar [showIcon]=\"true\" [(ngModel)]=\"meta.fechaInicio\" dateFormat=\"dd/mm/yy\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'fechaInicio'\">\n                                                </p-calendar>\n                                                <p-calendar [showIcon]=\"true\" [(ngModel)]=\"meta.fechaFinal\" dateFormat=\"dd/mm/yy\"\n                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion && campoNovedad.accion != 'M') || campoNovedad.accionEdicion == 'V'\"\n                                                    *ngIf=\"campoNovedad.campo == 'fechaFinal'\">\n                                                </p-calendar>\n                                                <p-table responsiveLayout=\"scroll\" [value]=\"meta.metaEscala\" [scrollable]=\"true\" *ngIf=\"campoNovedad.campo == 'metaEscala'\" >\n                                                    <ng-template pTemplate=\"header\">\n                                                        <tr style=\"background: none;\">\n                                                            <th style=\"color: black; text-align: center !important;\" >{{campoNovedad.descripcion}}</th>\n                                                        </tr>\n                                                    </ng-template>\n                                                    <ng-template pTemplate=\"body\" let-escala>\n                                                        <tr style=\"text-align: center !important; width: 100%\">\n                                                            <td>\n                                                                <label>{{escala.valor}}</label>\n                                                            </td>\n                                                            <td>\n                                                                <textarea pInputTextarea [(ngModel)]=\"escala.medida\" rows=\"5\" cols=\"30\"\n                                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                                    [disabled]=\"isSoloMetaVer() || (llaveFaseEvaluacion != meta.llaveFaseEvaluacion)\" >\n                                                                </textarea>\n                                                            </td>\n                                                        </tr>\n                                                    </ng-template>\n                                                    <ng-template pTemplate=\"emptymessage\">\n                                                        <tr>\n                                                            <td colspan=\"100\"> \n                                                                <app-template-tabla-vacia></app-template-tabla-vacia>\n                                                            </td>\n                                                        </tr>\n                                                    </ng-template>\n                                                </p-table>\n                                                <div *ngIf=\"meta.mapaMensaje != null && meta.mapaMensaje.get(campoNovedad.campo) != null\">\n                                                    <div aria-live=\"polite\" class=\"ui-message ui-message-info ui-widget ui-corner-all\">\n                                                        <span class=\"ui-message-info-icon\"></span> <span class=\"ui-message-info-detail\" style=\"color: red\">{{meta.mapaMensaje.get(campoNovedad.campo)}}</span>\n                                                    </div>\n                                                </div>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                            </p-table>\n                        </td>\n                        <td style=\"width:60%; border: solid 1px var(--color-100);\" *ngIf=\"isIncluirSeguimiento()\">\n                            <label *ngIf=\"meta.mensaje != null\">{{meta.mensaje}}</label>\n                            <p-table\n                                responsiveLayout=\"scroll\"\n                                [value]=\"meta.listaSeguimiento\"  >\n                              \n                                <ng-template pTemplate=\"body\" let-seguimiento>\n                                    <tr class=\"border-none\">\n                                        <td>\n                                            <p-table\n                                                responsiveLayout=\"scroll\"\n                                                [value]=\"getCamposSeguimiento()\"   \n                                                class=\"background-85 unica\"\n\n                                                \n                                                >\n                                                <ng-template pTemplate=\"body\" let-campoSeguimiento>\n                                                    <div class=\"prueba\">\n                                                    <tr style=\"text-align: center !important; width: 100%;\">\n                                                        <td>\n                                                            <label *ngIf=\"campoSeguimiento.campo == 'numero'\">{{campoSeguimiento.descripcion}}</label>\n                                                            <label *ngIf=\"campoSeguimiento.campo.includes('seguimiento') && (seguimiento.tipoSeguimiento != 'E')\">{{campoSeguimiento.descripcion}}</label>\n                                                            <label *ngIf=\"campoSeguimiento.campo.includes('evaluacion') && (seguimiento.tipoSeguimiento == 'E')\">{{campoSeguimiento.descripcion}}</label>\n                                                            <label *ngIf=\"(campoSeguimiento.requerido == 'S') && campoSeguimiento.campo.includes('seguimiento') && (seguimiento.tipoSeguimiento != 'E')\">*</label>\n                                                            <label *ngIf=\"(campoSeguimiento.requerido == 'S') && campoSeguimiento.campo.includes('evaluacion') && (seguimiento.tipoSeguimiento == 'E')\">*</label>\n                                                        </td>\n                                                        <td class=\"justify-content-center\">\n                                                            <label *ngIf=\"campoSeguimiento.campo == 'numero'\">{{seguimiento.numeroSeguimiento}}</label>\n                                                            <p-inputNumber [(ngModel)]=\"seguimiento.porcentaje\" [maxlength]=\"100\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_porcentaje' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_porcentaje' ))\">\n                                                            </p-inputNumber>\n                                                            <p-inputNumber [(ngModel)]=\"seguimiento.porcentajeAcuerdo\" [maxlength]=\"100\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_porcentajeAcuerdo' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_porcentajeAcuerdo' ))\">\n                                                            </p-inputNumber>\n                                                            <p-inputNumber [(ngModel)]=\"seguimiento.acuerdo\" [maxlength]=\"100\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_valorAcuerdo' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_valorAcuerdo' ))\">\n                                                            </p-inputNumber>\n                                                            <p-inputNumber [(ngModel)]=\"seguimiento.valor1\" [maxlength]=\"100\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_valor1' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_valor1' ))\">\n                                                            </p-inputNumber>\n                                                            <p-inputNumber [(ngModel)]=\"seguimiento.alcance\" [maxlength]=\"100\" mode=\"decimal\" [maxFractionDigits]=\"2\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_alcance' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_alcance' ))\">\n                                                            </p-inputNumber>\n                                                            <textarea pInputTextarea [(ngModel)]=\"seguimiento.observacion\" rows=\"5\" cols=\"30\"\n                                                                class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_observacion' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_observacion' ))\">\n                                                            </textarea>\n                                                            <textarea pInputTextarea [(ngModel)]=\"seguimiento.texto1\" rows=\"5\" cols=\"30\"\n                                                                class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_texto1' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_texto1' ))\">\n                                                            </textarea>\n                                                            <textarea pInputTextarea [(ngModel)]=\"seguimiento.texto2\" rows=\"5\" cols=\"30\"\n                                                                class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_texto2' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_texto2' ))\">\n                                                            </textarea>\n                                                            <input pInputText [(ngModel)]=\"seguimiento.cadena1\" [size]=\"40\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_cadena1' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_cadena1' ))\"\n                                                            />\n                                                            <input pInputText [(ngModel)]=\"seguimiento.cadena2\" [size]=\"40\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_cadena2' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_cadena2' ))\"\n                                                            />\n                                                            <p-calendar [showIcon]=\"true\" [(ngModel)]=\"seguimiento.fecha\" dateFormat=\"dd/mm/yy\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_fecha' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_fecha' ))\">\n                                                            </p-calendar>\n                                                            <p-calendar [showIcon]=\"true\" [(ngModel)]=\"seguimiento.aviso\" dateFormat=\"dd/mm/yy\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_aviso' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_aviso' ))\">\n                                                            </p-calendar>\n                                                            <div *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_calificacion' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_calificacion' ))\">\n                                                                <p-radioButton class=\"ml-3\" *ngFor=\"let valor of listaCalificaMetaDes\" [value]=\"valor.value\" [label]=\"valor.label\"\n                                                                    [(ngModel)]=\"seguimiento.valorCalifica\"\n                                                                    [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                ></p-radioButton>\n                                                            </div>\n                                                            <p-dropdown [options]=\"listaMetaLista1\" [autoDisplayFirst]=\"false\"\n                                                                [(ngModel)]=\"seguimiento.datoLista1\" optionLabel=\"label\" optionValue=\"value\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_lista1' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_lista1' ))\" >\n                                                            </p-dropdown>\n                                                            <p-dropdown [options]=\"listaMetaLista2\" [autoDisplayFirst]=\"false\"\n                                                                [(ngModel)]=\"seguimiento.datoLista2\" optionLabel=\"label\" optionValue=\"value\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_lista2' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_lista2' ))\" >\n                                                            </p-dropdown>\n                                                            <p-dropdown [options]=\"listaMetaLista3\" [autoDisplayFirst]=\"false\"\n                                                                [(ngModel)]=\"seguimiento.datoLista3\" optionLabel=\"label\" optionValue=\"value\"\n                                                                [disabled]=\"isSoloVer() || seguimiento.numeroSeguimiento != faseEvaluacionDTO.numeroSeguimiento || isSecundario()\"\n                                                                *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'evaluacion_lista3' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_lista3' ))\" >\n                                                            </p-dropdown>\n                                                            <!--pte anexo-->\n                                                            <button pButton pRipple (click)=\"verAnexosSeguimiento(seguimiento)\" class=\"p-button-rounded p-button-outlined color-300\"\n                                                            *ngIf=\"((seguimiento.tipoSeguimiento == 'E') && (campoSeguimiento.campo == 'seguimiento_anexos' )) || ((seguimiento.tipoSeguimiento != 'E') && (campoSeguimiento.campo == 'seguimiento_anexos' ))\">\n                                                                <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n                                                            </button>\n                                                        </td>\n                                                    </tr>\n                                                     </div>\n                                                </ng-template>\n                                            </p-table>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                               \n                            </p-table>\n                        </td>\n                        <td *ngIf=\"isIncluirMetas() && !isAutorizar()\">\n                            <p-button class=\"p-button-raised\" *ngIf=\"llaveFaseEvaluacion == meta.llaveFaseEvaluacion\"\n                                icon=\"glyphicons glyphicons-bin\" [rounded]=\"true\"\n                                (click)=\"eliminarMeta(meta)\">\n                            </p-button>\n                        </td>\n                    </tr>\n\n                </ng-template>\n            </p-table>\n            <div class=\"flex justify-content-end\">\n                <button pButton pRipple class=\"m-2 p-button p-button-raised\" *ngIf=\"isIncluirMetas() && !isAutorizar() && !verUnaMetaDetalle\"\n                    icon=\"glyphicons glyphicons-plus\" label=\"{{etiquetaNuevo}}\"\n                    (click)=\"crearMetaObjetivo()\">\n                </button>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" *ngIf=\"isIncluirMetas() && !isAutorizar() && isVerMetaTabla()\"\n                icon=\"glyphicons glyphicons-plus\" label=\"{{'nuevameta' | translate}}\"\n                (click)=\"crearMetaObjetivo()\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button-outlined\" *ngIf=\"isIncluirMetas() && !isAutorizar() && verUnaMetaDetalle\" icon=\"glyphicons glyphicons-floppy-save\"\n                label=\"{{'link_guardar' | translate}}\" (click)=\"guardarMetaEnLista()\">\n            </button>\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" *ngIf=\"verUnaMetaDetalle\"\n                icon=\"glyphicons glyphicons-hand-left\" label=\"{{'link_regresar' | translate}}\"\n                (click)=\"cancelarCrearMetaObjetivo()\" >\n            </button>\n        </div>\n    </div>\n\n    <!-- Plan Acción -->\n    <div *ngIf=\"isVerPlanAccion()\">\n        <h4 class=\"m-0 text-xl mb-4\">\n            {{paginasEvaluacionActual.etapaFaseGestionDTO.instructivo}}\n        </h4>\n        <p-table\n            *ngIf=\"planesAccion\"\n            responsiveLayout=\"scroll\"\n            [value]=\"planesAccion.listaMeta\"\n            [scrollable]=\"true\"\n            >\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"body\" let-plan>\n                <tr>\n                    <td>\n                        <div class=\"grid\">\n                            <label>{{plan.competenciaDescripcion}}</label>\n                            <br/>\n                            <label>{{plan.competenciaTema}}</label>\n                        </div>\n                    </td>\n                    <td>\n                        <p-table\n                            responsiveLayout=\"scroll\"\n                            [value]=\"plan.metaPlanAccion\"\n                            [scrollable]=\"true\"\n                            >\n                            <ng-template pTemplate=\"header\">\n                                <tr>\n                                    <th>{{'planmejoramiento' | translate}}</th>\n                                    <th *ngIf=\"!isSoloVer()\">.</th>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"body\" let-accion>\n                                <tr>\n                                    <td>\n                                        <label>{{accion.mensaje}}</label>\n                                        <p-table\n                                            responsiveLayout=\"scroll\"\n                                            [value]=\"planesAccion.campos\"\n                                            [scrollable]=\"true\"\n                                            >\n\n                                            <ng-template pTemplate=\"body\" let-campoPlan>\n                                                <tr>\n                                                    <td>\n                                                        <label>{{campoPlan.descripcion}}</label>\n                                                        <label *ngIf=\"campoPlan.requerido == 'S'\">*</label>\n                                                    </td>\n                                                    <td>\n                                                        <textarea pInputTextarea [(ngModel)]=\"accion.tema\" rows=\"5\" cols=\"30\"\n                                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoPlan.campo == 'tema'\">\n                                                        </textarea>\n                                                        <textarea pInputTextarea [(ngModel)]=\"accion.indicador\" rows=\"5\" cols=\"30\"\n                                                            class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoPlan.campo == 'indicador'\">\n                                                        </textarea>\n                                                        <p-calendar [showIcon]=\"true\" [(ngModel)]=\"accion.fechaFinal\" dateFormat=\"dd/mm/yy\"\n                                                            [disabled]=\"isSoloVer()\" *ngIf=\"campoPlan.campo == 'fechaCumplimiento'\">\n                                                        </p-calendar>\n                                                        <p-dropdown [options]=\"selectListEstadoPlanAccion\" [autoDisplayFirst]=\"false\"\n                                                            [(ngModel)]=\"accion.estado\" optionLabel=\"label\" optionValue=\"value\"\n                                                            [disabled]=\"isSoloVer()\"\n                                                            *ngIf=\"campoPlan.campo == 'estado'\" >\n                                                        </p-dropdown>\n                                                    </td>\n                                                </tr>\n                                            </ng-template>\n                                        </p-table>\n                                    </td>\n                                    <td *ngIf=\"!isSoloVer()\">\n                                        <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n                                            icon=\"glyphicons glyphicons-bin\" (click)=\"eliminarPlanAccion(accion, plan)\">\n                                        </button>\n                                    </td>\n                                </tr>\n                            </ng-template>\n                            <ng-template pTemplate=\"footer\">\n                                <label>{{plan.nuevaMetaPlanAccion.mensaje}}</label>\n                                <p-table\n                                    responsiveLayout=\"scroll\"\n                                    [value]=\"planesAccion.campos\"\n                                    [scrollable]=\"true\"\n                                    >\n\n                                    <ng-template pTemplate=\"body\" let-campoPlan>\n                                        <tr>\n                                            <td>\n                                                <label>{{campoPlan.descripcion}}</label>\n                                                <label *ngIf=\"campoPlan.requerido == 'S'\">*</label>\n                                            </td>\n                                            <td>\n                                                <textarea pInputTextarea [(ngModel)]=\"plan.nuevaMetaPlanAccion.tema\" rows=\"5\" cols=\"30\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloVer()\" *ngIf=\"campoPlan.campo == 'tema'\">\n                                                </textarea>\n                                                <textarea pInputTextarea [(ngModel)]=\"plan.nuevaMetaPlanAccion.indicador\" rows=\"5\" cols=\"30\"\n                                                    class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"\n                                                    [disabled]=\"isSoloVer()\" *ngIf=\"campoPlan.campo == 'indicador'\">\n                                                </textarea>\n                                                <p-calendar [showIcon]=\"true\" [(ngModel)]=\"plan.nuevaMetaPlanAccion.fechaFinal\" dateFormat=\"dd/mm/yy\"\n                                                    [disabled]=\"isSoloVer()\" *ngIf=\"campoPlan.campo == 'fechaCumplimiento'\">\n                                                </p-calendar>\n                                                <p-dropdown [options]=\"selectListEstadoPlanAccion\" [autoDisplayFirst]=\"false\"\n                                                    [(ngModel)]=\"plan.nuevaMetaPlanAccion.estado\" optionLabel=\"label\" optionValue=\"value\"\n                                                    [disabled]=\"isSoloVer()\"\n                                                    *ngIf=\"campoPlan.campo == 'estado'\" >\n                                                </p-dropdown>\n                                            </td>\n                                        </tr>\n                                    </ng-template>\n                                </p-table>\n                            </ng-template>\n                        </p-table>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n\n    <!-- Ver Seguimiento Competencias-->\n\n    <!-- Botones Atrás / Siguiente -->\n        <div style=\"display: flex; align-items: center;\">\n            <button (click)=\"atras()\"  icon=\"pi pi-chevron-left\" class=\"p-button-rounded mr-2 mt-1 p-button p-component p-button-icon-only unico\"\n                *ngIf=\"isBotonAnterior()\">\n                <span class=\"p-button-icon pi pi-chevron-left\" aria-hidden=\"true\"></span>\n                <span class=\"p-ink\" ></span>\n            </button>\n            <label class=\"mt-4 ml-3\">{{paginaActual}} de {{paginaTotal}}</label>\n            <button (click)=\"siguiente()\" icon=\"glyphicons glyphicons-chevron-right\" class=\"p-button-rounded mr-2 mt-1 p-button p-component p-button-icon-only unico\"\n                *ngIf=\"isBotonSiguiente()\">\n                <span class=\"p-button-icon glyphicons glyphicons-chevron-right\" aria-hidden=\"true\"></span>\n                <span class=\"p-ink\" ></span>\n            </button>\n        </div>\n\n    <!-- Botones de ACCION -->\n    <div class=\"flex justify-content-end\">\n        <!-- GUARDAR TEMPORAL -->\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\" *ngIf=\"!(isSoloVer()) && !isVerMensajeInicial() && !verUnaMetaDetalle\"\n            label=\"{{'guardartemporal' | translate}}\" (click)=\"actualizarAccion()\">\n        </button>\n        <!-- APLICAR -->\n        <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-check\" *ngIf=\"!(isSoloVer() || isBotonSiguiente())  && !verUnaMetaDetalle\"\n            label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicarAccion()\">\n        </button>\n        <!-- AUTORIZAR -->\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\"  icon=\"glyphicons glyphicons-check\" *ngIf=\"!isBotonSiguiente() && isAutorizar()\"\n            label=\"{{etiquetaAutoriza.descripcion}}\" (click)=\"autorizarAccion()\" >\n        </button>\n        <!-- NO AUTORIZAR -->\n        <button pButton pRipple class=\"m-2 p-button-outlined\"  icon=\"glyphicons glyphicons-check\" *ngIf=\"!isBotonSiguiente() && isAutorizar()\"\n            label=\"{{etiquetaAutoriza.descripcion2}}\" (click)=\"noAutorizarAccion()\">\n        </button>\n        <!-- PLAN ACCION -->\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\"  icon=\"glyphicons glyphicons-note2\" *ngIf=\"isVerBotonPlanAccion()\"\n            label=\"{{'link_planaccion' | translate}}\" (click)=\"irPlanAccion()\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button-outlined\"  icon=\"glyphicons glyphicons-print\" *ngIf=\"isVerBotonResultado() && controlFuncionService.getControlFuncionalidad('evalua:verreporte') && controlFuncionService.getControlFuncionalidad('taleva:reseval')\"\n            label=\"{{'resultado' | translate}} {{'evaluacion' | translate}}\" (click)=\"irResultadoAccion()\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\"  icon=\"glyphicons glyphicons-print\" *ngIf=\"faseEvaluacionDTO.estado == 'C' && controlFuncionService.getControlFuncionalidad('evalua:verreporte') && isReporteVer()\"\n            label=\"{{'link_reporte' | translate}}\" (click)=\"reporteCuestionario()\">\n        </button> \n        <button pButton pRipple class=\"m-2 p-button-outlined\"  icon=\"glyphicons glyphicons-print\" *ngIf=\"faseEvaluacionDTO.estado == 'C' &&  mostrarArchivoFase && ( (isSoyJefe() && controlFuncionService.getControlFuncionalidad('evalua:verreportecomjefe')) || (isFuncional() && controlFuncionService.getControlFuncionalidad('evalua:verreportecombinado')) )\"\n            label=\"{{'evaluaciondocumentofase' | translate}}\" (click)=\"combinarArchivoFase()\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\"  icon=\"glyphicons glyphicons-print\" *ngIf=\"faseEvaluacionDTO.estado == 'C' &&  mostrarArchivoHerramienta && ( (isSoyJefe() && controlFuncionService.getControlFuncionalidad('evalua:verreportecomjefe')) || (isFuncional() && controlFuncionService.getControlFuncionalidad('evalua:verreportecombinado')) )\"\n            label=\"{{'evaluaciondocumentoherramienta' | translate}}\" (click)=\"combinarArchivoHerramienta()\">\n        </button>\n    </div>\n\n    @if(!resultadoFinal && listaHistorico.length > 0 ) {\n        <p-accordion>\n            <p-accordionTab [selected]=\"true\" header=\"{{'historico' | translate}}\">\n                <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listaHistorico\" [rows]=\"10\"\n                    [totalRecords]=\"listaHistorico.length\" [paginator]=\"listaHistorico.length > 10\" \n                    [showCurrentPageReport]=\"true\" [scrollable]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                    <ng-template pTemplate=\"header\">\n                        <tr class=\"fondoTablaPincipal\">\n                            <th>{{'periodo' | translate}}</th>\n                            <th>{{'responsableevaluacion' | translate}}</th>\n                            <th [style.width.px]=\"60\" [style.flex]=\"'0 1 auto'\">\n                            </th>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-historico>\n                        <tr>\n                            <td>\n                                {{historico.periodo}}</td>\n                            <td>\n                                {{historico.nombreActor}}</td>    \n                            <td [style.width.px]=\"60\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n                            </td>\n                                \n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"emptymessage\">\n                        <tr>\n                            <td colspan=\"100\"> \n                                <app-template-tabla-vacia></app-template-tabla-vacia>\n                            </td>\n                        </tr>\n                    </ng-template>        \n                </p-table>\n            </p-accordionTab>\n        </p-accordion>\n    }\n</div>\n\n\n<div *ngIf=\"mostrarPopupConsultaDocumentoSoporte\">\n    <app-popup-consulta-documento-soporte (regresar)=\"regresarPopupConsultaDocumentoSoporte()\"\n    [mostrarPopup]=\"mostrarPopupConsultaDocumentoSoporte\" [tipoPadre]=\"tipoPadre\" [llavePadre]=\"llavePadre\"\n    [llaveBase]=\"llaveBase\" [clasificacion]=\"clasificacion\" [tipo]=\"tipo\" [faseGestion]=\"faseGestion\" [aplicaReporte]=\"aplicaReporte\"></app-popup-consulta-documento-soporte>\n</div>\n\n<div *ngIf=\"mostrarPopupAnexoSeguimiento\">\n    <app-popup-anexo-seguimiento  (regresar)=\"regresarPopupAnexoSeguimiento()\"\n    [mostrarPopup]=\"mostrarPopupAnexoSeguimiento\" [seguimientoMeta]=\"seguimientoAnexo\" [habilitar]=\"!consultaAnexoSeguimiento\" [cedula]=\"faseEvaluacionDTO.cedula\"></app-popup-anexo-seguimiento>\n</div>\n\n<app-popup-competencia-gestion [mostrarPopup]=\"mostrarPopupCompetenciaGestion\" *ngIf=\"mostrarPopupCompetenciaGestion\" (regresar)=\"retornaListaDimension($event)\"></app-popup-competencia-gestion>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { GeneralModel, ToastService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-cambio-fecha',\n    templateUrl: './popup-cambio-fecha.component.html',\n    styleUrls: ['./popup-cambio-fecha.component.scss'],\n    standalone: true,\n    imports: [DialogModule, CalendarModule, FormsModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupCambioFechaComponent implements OnInit {\n\n  @Input() public showDialog: boolean;\n  @Input() public lista: any[] = [];\n  @Output() public regresar = new EventEmitter();\n\n  public nuevaFecha: Date;\n  public mostrarDetalle: boolean;\n\n  constructor(public generalService: GeneralService,\n              public notificacionesService: ToastService,\n              public confirmationService: ConfirmationService,\n              ) { }\n\n  ngOnInit(): void {\n  }\n\n  ocultar(){\n    this.mostrarDetalle = false;\n    this.showDialog = false;\n    this.regresar.emit();\n  }\n\n  mostrar(){\n    this.mostrarDetalle = true;\n    this.showDialog = true;\n  }\n\n  async cambiarFecha(){\n    if (this.nuevaFecha == null) {\n      this.notificacionesService.showWarning('Nueva fecha vigencia obligatoria')\n      return;\n    }\n    var actualizar: boolean = false;\n    await this.lista.forEach( async (data) => {\n      data.fechaLimite = new Date(this.nuevaFecha)\n      delete data.nombreEstadoPrimario\n      delete data.nombreEstadoSecundario\n      delete data.periodo\n      delete data.nombreTabla\n      delete data.alias\n      delete data.evaluacionConcertada\n      let act = await this.generalService.update(new GeneralModel('FaseGestionHojaDTO', null, false, data)).toPromise();\n      console.log(act)\n      if ( act > 0 ){\n        actualizar = actualizar && true;\n      } else {\n        actualizar = actualizar && false;\n      }\n    })\n    //if (actualizar){\n      this.notificacionesService.showSuccess('La fecha de vigencia ha sido actualizada')\n    //} else {\n      //this.notificacionesService.showWarning('Una o varias de las evaluaciones no pudieron ser actualizadas')\n    //}\n    this.ocultar();\n  }\n\n}\n","<p-dialog  header=\"{{ 'cambiar' | translate }}\" [(visible)]=\"showDialog\" \n    [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '20vw' }\" (onShow)=\"mostrar()\" \n    (onHide)=\"ocultar()\" [modal]=\"true\" >\n    \n    @if(mostrarDetalle) {\n        <div class=\"Inputgroup m-0 mb-3\">\n            <div class=\"p-fluid grid\">\n                <div class=\"field col-12 md:col-12 lg:col-12\">\n                    <span class=\"p-float-label\">\n                        <p-calendar [(ngModel)]=\"nuevaFecha\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" ></p-calendar>\n                        <label class=\"font-medium w-full\" for=\"nuevaFecha\">{{'nueva' | translate}} {{'fecha' | translate}} {{'vigencia' | translate}}\n                        </label>\n                </span>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\"  icon=\"glyphicons glyphicons-random\"\n                label=\"{{'link_cambiar' | translate}} {{'vigencia' | translate}}\" (click)=\"cambiarFecha()\">\n            </button>\n        </div>\n    }\n\n</p-dialog>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { FaseGestionHojaModel } from '../../../models/FaseGestionHojaModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService } from 'general-library-union';\nimport { EvaluacionesService } from '../../../services/evaluaciones.service';\nimport { EmpresaModel } from '../../../../hojavida/models/EmpresaModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { FaseGestionHojaPipe } from '../../../pipes/fase-gestion-hoja.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { Router } from '@angular/router';\nimport { UtilsService } from 'general-library-union';\nimport { FaseGestionHojaContComponent } from '../fase-gestion-hoja-cont/fase-gestion-hoja-cont.component';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { PopupCambioFechaComponent } from '../popups/popup-cambio-fecha/popup-cambio-fecha.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\n\n@Component({\n    selector: 'app-listado-fase-gestion-hoja',\n    templateUrl: './listado-fase-gestion-hoja.component.html',\n    styleUrls: ['./listado-fase-gestion-hoja.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, ConfirmPopupModule, FormsModule, ReactiveFormsModule, DropdownModule, InputHelperHojaVidaComponent, InputNumberModule, CalendarModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupCambioFechaComponent, FaseGestionHojaContComponent, TranslateModule, FiltroGeneralComponent]\n})\nexport class ListadoFaseGestionHojaComponent implements OnInit {\n\n  public expandirFiltro: boolean;\n\tpublic botonRegresar:boolean ;\n\tpublic todo:boolean  = false;\n\tpublic nuevaFecha: Date;\n\tpublic filtroBean: FaseGestionHojaModel = new FaseGestionHojaModel();\n\tpublic lista: any[] = [];\n\tpublic buscarPaginador: boolean = true;\n\tpublic listaFase: any[] = [];\n  public llaveFase: any;\n  public empresa: EmpresaModel = new EmpresaModel;\n  public paginador: FaseGestionHojaModel[] = []\n  public paginadorSeleccionado: FaseGestionHojaModel[] = []\n  \n  public filters = []\n  public seleccionar: boolean = false;\n  public filtrar: boolean = false;\n  public paginator = {\n    rows: 30,\n    totalRecords: 0\n  }\n  public mostrarPopupCambioFecha: boolean = false;\n  public detalle: boolean = false;\n\n  @ViewChild('evaluado') evaluado: InputHelperHojaVidaComponent;\n  @ViewChild('evaluador') evaluador: InputHelperHojaVidaComponent;\n  @ViewChild('detalleEv') detalleEv: FaseGestionHojaContComponent;\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter<any>();\n\n\n  constructor(private router: Router, public utilsService: UtilsService,\n              public generalService: GeneralService,\n              public translateService: TranslateService,\n              public faseGesHojaPipe: FaseGestionHojaPipe,\n              public evaluacionesService: EvaluacionesService,\n              public confirmationService: ConfirmationService,\n              public notificacionesService: ToastService,\n              public saraAplicacionService: SaraAplicacionService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              public authService: AuthService,\n              private menuService: MenuService,\n              private generalPipe: GeneralPipe,\n              public selectListEvaluacionesService: SelectListEvaluacionesService) { }\n\n  async ngOnInit() {\n    this.menuService.setBreadcrumb([{ label: 'Listado gestión hoja' }]);\n    const objListaEstado = this.faseGesHojaPipe.ESTADOS.reduce((obj, tipo) => {\n      obj[tipo.codigo] = tipo.nombre;\n      return obj;\n    }, {});\n    this.filters = [\n      { \n        field: 'llaveFase', \n        header: this.translateService.instant('herramienta'), \n        values: (key) => 'EVALUACIÓN DE VALORES Y DESEMPEÑO NP',\n        matchMode: 'contains' \n      },\n      { \n        field: 'estado', \n        header: this.translateService.instant('estado'), \n        value: objListaEstado,\n        matchMode: 'equal' \n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('identificacionevaluado'),\n        values: (key) => this.evaluado.label,\n        matchMode: 'equal',\n      },\n      {\n        field: 'documentoResponsable',\n        header: this.translateService.instant('identificacionevaluador'),\n        values: (key) => this.evaluador.label,\n        matchMode: 'equal',\n      },\n      { \n        field: 'anoInicial', \n        header: this.translateService.instant('anno'), \n        matchMode: 'contains' \n      },\n      {\n        field: 'fechaInicioLimite',\n        header: this.translateService.instant('fechainicial'),\n        formatDate: true,\n        matchMode: 'equal',\n      },\n      {\n        field: 'fechaFinalLimite',\n        header: this.translateService.instant('fechafinal'),\n        formatDate: true,\n        matchMode: 'equal',\n      },\n    ]\n    this.empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, {empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))})).toPromise();\n    this.cargarListas()\n    //this.cargarPaginador({llaveFase : 'fa20b9726f9b460a86fdce8d1578d8dc'})\n    if (!this.isCliente()){\n      this.filtroBean.anoInicial = new Date().getFullYear().toString();\n      await this.utilsService.sleep(200);\n      this.filtroGeneral.aplicarFiltros();\n    }\n    this.utilsService.resizeWindowIFrame();\n}\n\n  async cargarListas(){\n    this.listaFase = await this.generalService.queryForList(new GeneralModel('FaseGestionDTO', null, false, {\n      rolUsuario: this.authService.getTokenKey('aliasRol'),\n      empresaFiltro: this.empresa.empresa\n    })).toPromise();\n    this.listaFase.forEach(async data => {\n      data.descripcion = data.descripcionHerramienta + \" (\" + data.descripcion + \")\";\n    })\n    this.listaFase.sort((x, y) => x.descripcion.localeCompare(y.descripcion));\n  }\n\n  async cargarPaginador(event){\n    console.trace(event)\n    this.filtrar = false;\n    let filtro: FaseGestionHojaModel = new FaseGestionHojaModel;\n    if (this.isCliente()) {\n      filtro.cedulaAutorizador = await this.saraAplicacionService.getCedula();\n      this.filtrar = true;\n    } else {\n      filtro.rol = this.authService.getTokenKey('aliasRol');\n    }\n    //FIXME: Restaurar al final\n    if (event.llaveFase?.value != null) {\n      filtro.llaveFase = event.llaveFase?.value\n      this.filtrar = true;\n    }\n    if (event.estado?.value != null) {\n      filtro.estado = event.estado?.value \n    }\n    //FIXME: Restaurar al final\n    if (this.filtroBean.anoInicial != null) {\n      filtro.anoInicial = this.filtroBean.anoInicial;\n      this.filtrar = true; \n    }\n    //filtro.llaveFase  = 'fa20b9726f9b460a86fdce8d1578d8dc';\n    //this.filtrar = true;\n    if (event.documento?.value != null) {\n      filtro.documento = event.documento?.value \n    }\n    if (event.documentoResponsable?.value != null) {\n      filtro.documentoResponsable = event.documentoResponsable?.value \n    }\n    if (event.fechaInicioLimite?.value != null) {\n      filtro.fechaInicioLimite = event.fechaInicioLimite?.value \n    }\n    if (event.fechaFinalLimite?.value != null) {\n      filtro.fechaFinalLimite = event.fechaFinalLimite?.value \n    }\n    if (this.controlFuncionService.getControlFuncionalidad('evalua:filtroEmpresa')){\n      filtro.empresa = this.empresa.empresa\n    } else {\n      filtro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    }\n    filtro.empresaFiltro = this.empresa.empresa \n    filtro.organizacionFiltro = this.empresa.organizacion\n    console.log('filtrar: '+this.filtrar)\n    //console.log(filtro)\n    if (this.filtrar){\n      this.paginador = await this.evaluacionesService.consultarFaseGestionHojaPorNombre(filtro).toPromise();\n      this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('FaseGestionHojaDTO', null, false, filtro)).toPromise();\n      this.utilsService.resizeWindowIFrame();\n    } else {\n      this.paginador = [];\n      this.paginator.totalRecords = 0;\n      this.utilsService.resizeWindowIFrame();\n    }\n  }\n\n  verAction(event){\n    this.detalle = true;\n    this.detalleEv.setTraerFaseEvaluacion(event.llave, 'inicio');\n  }\n\n  enviarEmail(){\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea notificar?',\n      acceptLabel: this.generalPipe.SI_DESC,\n      accept: () => {\n        var listaDestinatario: FaseGestionHojaModel[] = [];\n        this.paginadorSeleccionado.forEach(data => {\n          if (data.estado != this.faseGesHojaPipe.APLICADA){\n            listaDestinatario.push(data)\n          }\n        })\n        console.log(listaDestinatario)\n        if (listaDestinatario.length == 0){\n          this.notificacionesService.showWarning('No presenta marcacion seleccionada')\n          return;\n        }\n        this.evaluacionesService.enviarCorreo(listaDestinatario).subscribe(data => {\n          if (data.length == 0){\n            this.notificacionesService.showSuccess('Proceso de notificación ha finalizado')\n          } else {\n            this.notificacionesService.showWarning('No fue posible enviar la notificación a los siguientes colaboradores: ')\n          }\n        })\n      }\n    })\n\n  }\n\n  public async traerFasePeriodo(llavePeriodo: string,llaveFase: any,gestionPeriodo: string): Promise<void> {\n\t\tthis.filtroBean.periodoEvaluacion = (llavePeriodo);\n\t\tthis.filtroBean.anoInicial = (null);\n    this.llaveFase = llaveFase;\n    this.listaFase = await this.selectListEvaluacionesService.getListaFase(gestionPeriodo,llaveFase,true);\n    await this.utilsService.sleep(10);\n    this.filtroGeneral.aplicarFiltros();\n  }\n\n  regresarPopupCambioFecha(event){\n    this.mostrarPopupCambioFecha = false;\n    this.filtroGeneral.aplicarFiltros();\n  }\n\n  cambioFecha(){\n    this.buscarPaginador = false;\n    this.mostrarPopupCambioFecha = true;\n  }\n\n  regresarDetalle(event){\n    this.menuService.setBreadcrumb([{ label: 'Listado gestión hoja' }]);\n    this.detalle = false;\n  }\n\n  isCliente(){\n    return this.authService.getTokenKey('tipoLogin') == 'C'\n  }\n\n  isNotificar() {\n\t\treturn !this.isCliente() && (this.paginador != null && this.paginador.length != 0);\n\t}\n\n  regresarVista(){\n    this.regresar.emit(null);\n  }\n\n}\n","<div id=\"listado-fase-gestion-hoja\">\n    <div *ngIf=\"!detalle\" [class]=\"botonRegresar ?'flex align-items-center justify-content-between align-items-center mt-3 mb-3': 'flex align-items-center justify-content-between align-items-center mt-3 mb-3' \">\n        <h1>Listado gestión hoja </h1> \n        <button pButton pRipple (click)=\"regresarVista()\" label=\"Regresar\" icon=\"pi pi-chevron-left\" *ngIf=\"botonRegresar\"\n            class=\"p-button-text font-semibold\"></button>\n    </div>\n<p-confirmPopup></p-confirmPopup>\n<!-- <h1 class=\"mt-0 ocultar\">Listado gestión hoja</h1> -->\n<div *ngIf=\"!detalle\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <div class=\"ancho\">\n        <app-filtro-general #filtroGeneral [filtros]=\"filters\" (metodoRegresar)=\"cargarPaginador($event)\" class=\"ancho\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div id=\"#DropdownTextoCorto\" class=\"mr-3 w-full\" style=\"max-width:620px\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown class=\"ancho\" [options]=\"listaFase\" [autoDisplayFirst]=\"false\"  [(ngModel)]=\"llaveFase\"\n                                formControlName=\"llaveFase\" [showClear]=\"true\" optionLabel=\"descripcion\"\n                                optionValue=\"llave\"></p-dropdown>\n                            <label>{{'herramienta' | translate}}</label>\n                        </span>\n                    </div> \n                    <div class=\"flex mt-3\">\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown class=\"w-full\" [options]=\"faseGesHojaPipe.ESTADOS\"\n                                    [autoDisplayFirst]=\"false\" formControlName=\"estado\" [showClear]=\"true\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n                                <label>{{'estado' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"w-full\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-hoja-vida #evaluado formControlName=\"documento\"\n                                    [filtroRolCliente]=\"false\" [header]=\"'identificacionevaluado' | translate\">\n                                </app-input-helper-hoja-vida>\n                                <!-- <label>{{'identificacionevaluado' | translate}}</label> -->\n                            </span>\n                        </div>\n                    </div>\n                    <div class=\"flex mt-3\">\n                        \n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-hoja-vida #evaluador formControlName=\"documentoResponsable\"\n                                    [filtroRolCliente]=\"false\" [header]=\"'identificacionevaluador' | translate\">\n                                </app-input-helper-hoja-vida>\n                                <!-- <label>{{'identificacionevaluador' | translate}}</label> -->\n                            </span>\n                        </div>\n\n                        <div class=\"w-full\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber [(ngModel)]=\"filtroBean.anoInicial\" formControlName=\"anoInicial\"\n                                    autocomplete=\"off\" [maxlength]=\"5\"></p-inputNumber>\n                                <label>{{'anno' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                    <div class=\"flex mt-3\">\n                        \n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-calendar formControlName=\"fechaInicioLimite\" dateFormat=\"dd/mm/yy\"\n                                    [showIcon]=\"true\"></p-calendar>\n                                <label>{{'fechainicial' | translate}}</label>\n                            </span>\n                        </div>\n                        \n                            <div class=\"w-full\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar formControlName=\"fechaFinalLimite\" dateFormat=\"dd/mm/yy\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label>{{'fechafinal' | translate}}</label>\n                                </span>\n                            </div>\n                        \n                    </div>\n                    \n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        </div>\n        <div class=\"flex justify-content-end align-items-center\" *ngIf=\"paginadorSeleccionado\">\n            <div class=\"flex justify-content-end \" >\n\n                <button pButton pRipple *ngIf=\"paginadorSeleccionado.length > 0 && isNotificar()\" label=\"{{'link_notificar' | translate}}\"\n                    (click)=\"enviarEmail()\" icon=\"glyphicons glyphicons-envelope\" class=\"p-button-secondary font-semibold flex-shrink-0 ml-4 mr-2\"></button>\n                <button pButton pRipple class=\"p-button p-button-outlined\" *ngIf=\"paginadorSeleccionado.length > 0 && isNotificar()\"\n                    label=\"{{'link_cambiar' | translate}} {{'vigencia' | translate}}\" (click)=\"cambioFecha()\"><i class=\"glyphicons glyphicons-random\"></i></button>\n            </div>\n        </div>\n    </div>\n\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginador\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 30, 50]\"\n        [showCurrentPageReport]=\"true\" selectionMode=\"single\" [(selection)]=\"paginadorSeleccionado\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width:2%\" *ngIf=\"!isCliente()\">\n                    <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n                </th>\n                <th style=\"width:12%\">{{'evaluado' | translate}}</th>\n                <th style=\"width:20%\">{{'evaluacion' | translate}}</th>\n                <th style=\"width:15%\">{{'estado' | translate}}</th>\n                <th style=\"width:15%\">{{'periodo' | translate}}</th>\n                <th style=\"width:15%\">{{'responsableevaluacion' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data>\n            <tr>\n                <td pFrozenColumn *ngIf=\"!isCliente()\">\n                    <p-tableCheckbox [value]=\"data\"></p-tableCheckbox>\n                </td>\n                <td [pSelectableRow]=\"data\" (click)=\"verAction(data)\">{{data.nombreCompletoEvaluado}}</td>\n                <td [pSelectableRow]=\"data\" (click)=\"verAction(data)\">{{data.nombreEvaluacion}} \n                    {{data.nombreFase}}</td>\n                <td [pSelectableRow]=\"data\" (click)=\"verAction(data)\">{{data.nombreEstado}}</td>\n                <td [pSelectableRow]=\"data\" (click)=\"verAction(data)\">{{data.periodo}}</td>\n                <td [pSelectableRow]=\"data\" (click)=\"verAction(data)\">{{data.nombreActor}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    \n</p-table>\n\n\n    <app-popup-cambio-fecha [showDialog]=\"mostrarPopupCambioFecha\" [lista]=\"paginadorSeleccionado\"\n        (regresar)=\"regresarPopupCambioFecha($event)\"></app-popup-cambio-fecha>\n</div>\n<div>\n    <app-fase-gestion-hoja-cont #detalleEv (regresar)=\"regresarDetalle($event)\"></app-fase-gestion-hoja-cont>\n</div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class CodigoBaseViaticoModel extends UnionModel {\n\n\ttabla: string;\n\tdescripcion: string;\n\tbusqueda: string;\n\tcodigo: number;\n\texterno: string;\n\ttipo: string;\n\tvariable: string;\n\tdescripcionVariable: string;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class ViaticoComplementariaModel extends UnionModel {\n\n\tcontrato: number;\n\tempresa: number;\n\tviatico: string;\n\tnecesidad: string;\n\tutilidad: string;\n\tconveniencia: string;\n\tnombreApellido: string;\n\tdocumento: string;\n\t\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class ViaticoEntidadModel extends UnionModel {\n\n\tllave: string;\n\tviaticoParticipa: string;\n\tentidad: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tciudad: string;\n\tentidadOtra: string;\n\torden: number;\n\tsalida: boolean;\n\tregreso: boolean;\n\tnombreCiudad: string;\n\tnombreEntidad: string;\n\tdestino: string;\n\tdestinoBoolean: boolean;\n\tnombreDepende: string;\n\tnombreCompletoCiudad: string;\n\ttipoCosto: string;\n\ttipoEntidad: string;\n\tentidadNoVigilada: string;\n\tviatico: string;\n\ttieneDatos: boolean;\n\t\n\t\n}","import { UnionModel } from 'general-library-union'\nimport { EmpleadoModel } from '../../compensacion/models/EmpleadoModel';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n\nexport class ViaticoModel extends UnionModel {\n\n\n\tnumero: string;\n\tfechaNumero: Date;\n\tanio: string;\n\ttipoActividad: string;\n\torigen: string;\n\tplanInversion: string;\n\tviaticoOrigen: string;\n\tviaticoPadre: string;\n\tdescripcionViaticoPadre: string;\n\testado: string;\n\tunidadSolicita: string;\n\tempresa: number;\n\tultimo: string;\n\tobjeto: string;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tmotivo: string;\n\tcontrato: number;\n\tsolicita: number;\n\tautoriza: number;\n\tordenador: number;\n\tresponsable: number;\n\tpostlegaliza: string;\n\tnombreActividad: string;\n\tnombreRubro: string;\n\tnombreApellido: string;\n\tcedula: number;\n\tnombreUnidad: string;\n\tnombreZona: string;\n\tnombreCentro: string;\n\tnombreSolicita: string;\n\tnombreOrdenador: string;\n\tnombreResponsable: string;\n\telabora: number;\n\tmotivoNoAutoriza: string;\n\tcomodinContrato: number;\n\tnivel: number;\n\temailAutorizador: string;\n\tnombreAutorizador: string;\n\tobservacion: string;\n\tnumeroPadre: string;\n\tfechaNumeroPadre: Date;\n\tprivate _modificacion: string;\n\tcedulaViatica: number;\n\tcontratoViatica: number;\n\tnombreApellidoViatica: string;\n\tloginAcceso: string;\n\tllaveNombreArchivoAnexo: string;\n\tdestino: string;\n\tcodigoDestino: number;\n\ttipoComision: string;\n\tambito: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tcedulaParticipante: number;\n\tdestino_viaVal: string;\n\ttipoComision_viaVal: string;\n\tnombreRubroV: string;\n\tparticipante: EmpleadoModel;\n\tambito_viaVal: string;\n\tdescripcionPlanInversion: string;\n\tprogramacionParticipante: number;\n\tbusquedaNumero: string;\n\tfechaNumeroOrigen: Date;\n\tnumeroOrigen: string;\n\tfechaDerogacion: Date;\n\tnumeroDerogacion: string;\n\tmotivoDerogacion: string;\n\tnombreElabora: string;\n\tfechaAprobacion: Date;\n\tciudad: string;\n\tjustificacion: string;\n\tjustificacion2: string;\n\tjustificacion3: string;\n\tobservacion2: string;\n\tobservacion3: string;\n\tobservacion4: string;\n\tclaseCapacitacion: string;\n\tcomisionProgramada: string;\n\tnombreCiudad: string;\n\trecibeInvitacion: string;\n\tnaturalezaInvitacion: string;\n\totraInvitacion: string;\n\tquienInvitacion: string;\n\tcubreViaticos: string;\n\tcubrePasajeAereo: string;\n\tcubreTransporte: string;\n\tcubreAlimentacion: string;\n\tcubreHospedaje: string;\n\tcubreCostoInscripcion: string;\n\tcubreOtro: string;\n\tcubreOtroCuales: string;\n\tpersonas: string;\t\n\tetapa: string;\t\n\tnombreEtapa: string;\n\tsolicitanteUnidad: string;\n\telaboraUnidad: string;\n\tmensaje: string;\n\n\tset modificacion(modificacion) {\n\t\tthis._modificacion = modificacion;\n\t}\n\tget modificacion(): string {\n\t\tif(this.viaticoPadre != null && this.viaticoPadre != '' && this.viaticoPadre.trim() != '.'){\n\t\t\tthis._modificacion = Constantes.SI_STRING;\n\t\t}else{\n\t\t\tthis._modificacion = Constantes.NO_STRING;\n\t\t}\n\t\treturn this._modificacion;\n\t}\n\n\tget estadoMoficacion(): string{\n\t\tif(Constantes.CONSTANTE_NO == this.ultimo){\n\t\t\treturn 'Modificado';\n\t\t}\n\t\treturn '';\n\t}\n\n}","import { UnionModel } from 'general-library-union'\nimport { EmpleadoModel } from '../../compensacion/models/EmpleadoModel';\nimport { ViaticoEntidadModel } from './ViaticoEntidadModel';\n\n\nexport class ViaticoParticipaModel extends UnionModel {\n\n\tllave: string;\n\tviatico: string;\n\ttipo: string;\n\tcontrato: number;\n\tempresa: number;\n\tcargo: string;\n\tunidad: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tplanInversion: string;\n\tdias: number;\n\tcomision: number;\n\tcomisionUD: number;\n\tentidad: string;\n\tnombreEntidad: string;\n\tinstitucion: number;\n\tbase: number;\n\testado: string;\n\tentregado: number;\n\tentidadOtra: string;\n\tdocumento: string;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tentregadoUD: number;\n\tfechaDocumento: Date;\n\tcomisionDia: number;\n\torden: number;\n\ttipoCosto: string;\n\ttipoOrigen: string;\n\tdesembolso: Date;\n\tlegalizacion: Date;\n\tcomprobante: string;\n\tnombreInstitucion: string;\n\tnombreRubro: string;\n\tdiasOtro: number;\n\tdiasSin: number;\n\tnombreApellido: string;\n\tparticipante: EmpleadoModel;\n\tmensaje: string;\n\tcomisionSin: number;\n\tentidadOtro: string;\n\tdestino: string;\n\tciudad: string;\n\tnombreCiudad: string;\n\tinconsistente: boolean;\n\tsolicita: number;\n\tnombreSolicita: string;\n\tnumero: string;\n\tfechaNumero: Date;\n\ttipoActividad: string;\n\tplanInversionV: string;\n\testadoV: string;\n\tcomodinContrato: number;\n\tnombreActividad: string;\n\tnombreRubroV: string;\n\tmodificacion: string;\n\tviaticoPadre: string;\n\tdestinos: ViaticoEntidadModel[];\n\tciudadRegreso: string;\n\tnombreCiudadRegreso: string;\n\tdesplazamiento: string;\n\tdiasPagar: number;\n\tdiasPagarSin: number;\n\tvalorLegalizado: number;\n\tnombreDependeCiudad: string;\n\tnombreDependeCiudadRegreso: string;\n\tnombreCompletoSalida: string;\n\tnombreCompletoRegreso: string;\n\tnombreUnidad: string;\n\tnombreCargo: string;\n\tloginAcceso: string;\n\ttipoPerido: number;\n\tlineaCosto: string;\n\ttrmProyeccion: number;\n\tdestino_via: string;\n\tdestino_viaVal: string;\n\ttipoComision_viaVal: string;\n\tambito_viaVal: string;\n\tclasificaCargo: string;\n\tformaPago: string;\n\teliminados: string;\n\n\templeadoDTO: EmpleadoModel;\n\t\n\ttipoComision: string;\n\tambito: string;\t\n\tdescripcion: string;\n\ttramiteDesembolso: string;\n\tcedula: number;\n\tmotivo: string;\n\tdocumentoEmpleado: string;\n\tdescripcionPlanInversion: string;\n\tdescripcionTipoOrigen: string;\n\tbusquedaNumero: string;\n\ttrm: number;\n\tregresion: string;\n\tusuario: string;\n\testimado: number;\n\tdocumentoDos: string;\n\tfechaDocumentoDos: Date;\n\testimadoDos: number;\n\tfechaReintegro: Date;\n\tresolucionReintegro: string;\n\tresolucionLegalizacion: string;\n\treintegro: number;\n\texisteMensaje: string;\n\tobservacion: string;\n\tcadena1: string;\n\tcadena2: string;\n\tnumero1: number;\n\tnumero2: number;\n\tfecha1: Date;\n\tfecha2: Date;\n\tdestinoPropio: string;\n\tambitoPropio: string;\n\ttipoComisionPropio: string;\n\tdescripcionDestino: string;\n\tdescripcionTipoComision: string;\n\tdescripcionAmbito: string;\n\ttotal: number;\n\tnroCelular: string;\n\tinforme: string;\n\thoraSalida: Date;\n\thoraRegreso: Date;\n\t\n\n}","export class HoraWrapper {\n\n    hora: number;\n\tminuto: number;\n\tsegundo: number;\n\n\tconstructor(hora: number, minuto: number) {\n\t\tthis.hora = hora;\n\t\tthis.minuto = minuto;\n\t}\n\n}","import { DatoorganizacionModel } from \"../../talento/models/DatoorganizacionModel\";\nimport { ViaticoPartMedioModel } from \"../models/ViaticoPartMedioModel\";\n\nexport class SolicitudViaticoCostoWrapper {\n\n    costo: ViaticoPartMedioModel;\n\tlistaCampos: DatoorganizacionModel[];\n\n    constructor(costo: ViaticoPartMedioModel, listaCampos: DatoorganizacionModel[]) {\n        this.costo = costo;\n        this.listaCampos = listaCampos;\n    }\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'viaticos',\n    standalone: true\n})\n@Injectable({\n  providedIn: 'root'\n})\nexport class ViaticosPipe implements PipeTransform {\n  //Constantes\n  ETAPAVIATICO: string = \"EV\";\n  FORMAPAGOENTIDAD: string = \"E\";\n  NORELACIONADO: string = \"N\";\n\n  FORMAPAGOENTIDAD_DESC: string = \"Entidad de Pago\";\n  NORELACIONADO_DESC: string = \"No Relacionado\";\n\n  LISTA_FORMATO_PAGO = [\n    { codigo: this.FORMAPAGOENTIDAD, nombre: this.FORMAPAGOENTIDAD_DESC },\n    { codigo: this.NORELACIONADO, nombre: this.NORELACIONADO_DESC }\n  ]\n\n  VIATICOS: string = \"V\";\n  CAPACITACION: string = \"C\";\n  DESPLAZAMIENTO: string = \"D\";\n  RANGO_ORIGEN: string = \"VI\";\n\n  DESTINO: string = \"DESTINO\";\n  TIPO_COMISION: string = \"TIPOCOMISION\";\n  AMBITO: string = \"AMBITO\";\n\n  SOLICITADO: string = Constantes.CONSTANTE_SI;\n  AUTORIZADA: string = \"A\";\n  NOAUTORIZADA: string = Constantes.CONSTANTE_NO;\n  NOPROGRAMADA: string = \"Y\";\n  LEGALIZADA: string = \"L\";\n  NOLEGALIZADA: string = \"I\";\n  DEROGADA: string = \"D\";\n  DESEMBOLSO: string = \"P\";\n  ENPROCLEGALIZACION: string = \"E\";\n  PROCESO: string = \"X\";\n  PORASIGNAR: string = \"R\";\n\n  SOLICITADODESC: string = \"Solicitado\";\n  AUTORIZADADESC: string = \"Autorizada\";\n  NOAUTORIZADADESC: string = \"No Autorizada\";\n  NOPROGRAMADADESC: string = \"Anulado\";\n  LEGALIZADADESC: string = \"Legalizada\";\n  NOLEGALIZADADESC: string = \"No Legalizada\";\n  DESEMBOLSODESC: string = \"Programada para Desembolso\";\n  DEROGADADESC: string = \"Derogada\";\n  ENPROCLEGALIZACIONDESC: string = \"En Proceso Legalizacion\";\n\n  PROCESODESC: string = \"Proceso\";\n  PORASIGNARDESC: string = \"Por asignar Responsable\";\n\n  LISTAESTADO = [\n    { codigo: this.SOLICITADO, nombre: this.SOLICITADODESC },\n    { codigo: this.AUTORIZADA, nombre: this.AUTORIZADADESC },\n    { codigo: this.NOAUTORIZADA, nombre: this.NOAUTORIZADADESC },\n    { codigo: this.NOPROGRAMADA, nombre: this.NOPROGRAMADADESC },\n    { codigo: this.DESEMBOLSO, nombre: this.DESEMBOLSODESC },\n    { codigo: this.DEROGADA, nombre: this.DEROGADADESC },\n    { codigo: this.PROCESO, nombre: this.PROCESODESC },\n    { codigo: this.PORASIGNAR, nombre: this.PORASIGNARDESC },\n  ]\n\n  CREAR: string = \"Creaci\" + Constantes.O_TIDLE_MIN + \"n de una solicitud de vi\" + Constantes.A_TILDE_MIN + \"tico\";\n  MODIFICAR: string = \"Modificar una solicitud de vi\" + Constantes.A_TILDE_MIN + \"tico\";\n  PRORROGA: string = \"Solicita pr\" + Constantes.O_TIDLE_MIN + \"rroga de una solicitud\";\n  DEROGACION: string = \"Solicita derogaci\" + Constantes.O_TIDLE_MIN + \"n de una solicitud\";\n\n  LISTAACCIONES = [\n    { nombre: this.CREAR },\n    { nombre: this.MODIFICAR },\n    { nombre: this.PRORROGA },\n    { nombre: this.DEROGACION },\n  ]\n\n  AEREO: string = \"A\";\n  TERRESTRE: string = \"T\";\n  OTRO: string = \"O\";\n\n  AEREODESC: string = \"Aereo\";\n  TERRESTREDESC: string = \"Terrestre\";\n  OTRODESC: string = \"Otro\";\n\n  LISTATIPOCOSTO = [\n    { codigo: this.AEREO, nombre: this.AEREODESC },\n    { codigo: this.TERRESTRE, nombre: this.TERRESTREDESC },\n    { codigo: this.OTRO, nombre: this.OTRODESC },\n  ]\n\n  AEREOCOS: string = \"AERO\";\n  TERRESTRECOS: string = \"TERR\";\n  PEAJECOS: string = \"PEAJ\";\n  COMBUSTIBLECOS: string = \"COMB\";\n  GARAJECOS: string = \"GARA\";\n  OTROCOS: string = \"OTRO\";\n\n  AEREOCOSDESC: string = \"A�reo\";\n  TERRESTRECOSDESC: string = \"Terrestre\";\n  PEAJECOSDESC: string = \"Peaje\";\n  COMBUSTIBLECOSDESC: string = \"Combustible\";\n  GARAJECOSDESC: string = \"Garaje\";\n  OTROCOSDESC: string = \"Otro\";\n\n  LISTAALTERNO = [\n    { codigo: this.AEREOCOS, nombre: this.AEREOCOSDESC },\n    { codigo: this.TERRESTRECOS, nombre: this.TERRESTRECOSDESC },\n    { codigo: this.PEAJECOS, nombre: this.PEAJECOSDESC },\n    { codigo: this.COMBUSTIBLECOS, nombre: this.COMBUSTIBLECOSDESC },\n    { codigo: this.GARAJECOS, nombre: this.GARAJECOSDESC },\n    { codigo: this.OTROCOS, nombre: this.OTROCOSDESC },\n  ]\n\n  ACTUALIZAR: string = \"M\";\n  NOACTUALIZAR: string = \"X\";\n  PARAAUTORIZADOR: string = \"A\";\n  ESTADOCAMBIO: string = \"CA\";\n  CAMBIODATOSP: string = \"CP\";\n\n  MODIFICACIONSI: string = \"Si\";\n  MODIFICACIONNO: string = \"No\";\n\n  PORDESEMBOLSAR: string = \"P\";\n  PORLEGALIZAR: string = \"E\";\n  PARTICIPANTE_INCONSISTENTE: string = \"I\";\n  PARTICIPANTE_ANULADO: string = \"A\";\n\n  PORDESEMBOLSARDESC: string = \"Por Desembolsar\";\n  PORLEGALIZARDESC: string = \"Por Legalizar\";\n  PARTICIPANTE_ANULADO_DESC: string = \"Anulado\";\n\n  LISTAESATDOPARTICIPA = [\n    { codigo: this.PORDESEMBOLSAR, nombre: this.PORDESEMBOLSARDESC },\n    { codigo: this.PORLEGALIZAR, nombre: this.PORLEGALIZARDESC },\n    { codigo: this.LEGALIZADA, nombre: this.LEGALIZADADESC },\n    { codigo: this.PARTICIPANTE_ANULADO, nombre: this.PARTICIPANTE_ANULADO_DESC },\n  ]\n\n  NACIONAL: string = \"N\";\n  INTERNACIONAL: string = \"I\";\n\n  NACIONALDES: string = \"Nacional\";\n  INTERNACIONALDES: string = \"Internacional\";\n\n  LISTATIPODESTINO = [\n    { codigo: this.NACIONAL, nombre: this.NACIONALDES },\n    { codigo: this.INTERNACIONAL, nombre: this.INTERNACIONALDES }\n  ]\n\n  UNIDAD_SOLICITA: string = \"Unidad Solicita\";\n  ZONA_ECONOMICA: string = \"Zona Economica\";\n  CENTRO_COSTO: string = \"Centro Costo\"; //1\n  OBJETO: string = \"Objeto\";\n  OBSERVACION: string = \"Observacion\";\n  SOLICITADOR: string = \"Solicitado\";\n  ORDENADOR: string = \"Ordenador\";\n  RESPONSABLE: string = \"Responsable\";\n  ETAPA: string = \"Etapa\"; //6\n  NUMERO: string = \"Numero\";\n  FECHA: string = \"Fecha\";\n  DESTINOS: string = \"Destinos\"; //5\n  TIPO_COMISION_CAMPO: string = \"Tipo Comision\";\n  TIPO_AMBITO: string = \"Tipo Ambito\";\n  TIPO_DESTINO: string = \"Tipo Destino\";\n  COMISION_PROGRAMADA: string = \"Comision Programada\"; //4\n  FECHA_APROBACION: string = \"Fecha Aprobacion\";\n  CIUDAD: string = \"Ciudad\"; //2\n  CLASE_CAPACITACION: string = \"Clase Capacitacion\"; //3\n  JUSTIFICACION: string = \"Justificacion\";\n  JUSTIFICACION_2: string = \"Justificacion 2\";\n  JUSTIFICACION_3: string = \"Justificacion 3\";\n  OBSERVACION_2: string = \"Observacion 2\";\n  OBSERVACION_3: string = \"Observacion 3\";\n  OBSERVACION_4: string = \"Observacion 4\";\n  RECIBE_INVITACION: string = \"Recibe invitacion\";\n  NATURALEZA_INVITACION: string = \"Naturaleza de la invitacion\";\n  OTRA_INVITACION: string = \"Otra invitacion\";\n  QUIEN_INVITACION: string = \"Quien ofrece la invitacion\";\n  CUBRE_VIATICOS: string = \"Invitacion cubre Viaticos\";\n  CUBRE_PASAJEAEREO: string = \"Invitacion cubre Pasajes Aereos\";\n  CUBRE_TRANSPORTE: string = \"Invitacion cubre Transporte / Traslados\";\n  CUBRE_ALIMENTACION: string = \"Invitacion cubre Alimentacion\";\n  CUBRE_HOSPEDAJE: string = \"Invitacion cubre Hospedaje\";\n  CUBRE_COSTOINSCRIPCION: string = \"Invitacion cubre Costos de Inscripcion\";\n  CUBRE_OTRO: string = \"Invitacion cubre Otros\";\n  CUBRE_OTRO_CUALES: string = \"Invitacion Otros/Cuales\";\n\n\n  UNIDAD_SOLICITA_VAL: string = \"UnidadSolicita\";\n  ZONA_ECONOMICA_VAL: string = \"ZonaEconomica\";\n  CENTRO_COSTO_VAL: string = \"CentroCosto\";\n  NUMERO_VAL: string = \"Numero\";\n  FECHA_VAL: string = \"FechaNumero\";\n  OBJETO_VAL: string = \"Objeto\";\n  SOLICITADOR_VAL: string = \"Solicita\";\n  ORDENADOR_VAL: string = \"Ordenador\";\n  RESPONSABLE_VAL: string = \"Responsable\";\n  OBSERVACION_VAL: string = \"Observacion\";\n  DESTINOS_VAL: string = \"Destinos\"; \n  TIPO_COMISION_VAL: string = \"TipoComision\";\n  TIPO_AMBITO_VAL: string = \"Ambito\";\n  TIPO_DESTINO_VAL: string = \"Destino\";\n  COMISION_PROGRAMADA_VAL: string = \"ComisionProgramada\";\n  FECHA_APROBACION_VAL: string = \"FechaAprobacion\";\n  CIUDAD_VAL: string = \"Ciudad\";\n  CLASE_CAPACITACION_VAL: string = \"ClaseCapacitacion\";\n  JUSTIFICACION_VAL: string = \"Justificacion\";\n  JUSTIFICACION_2_VAL: string = \"Justificacion2\";\n  JUSTIFICACION_3_VAL: string = \"Justificacion3\";\n  OBSERVACION_2_VAL: string = \"Observacion2\";\n  OBSERVACION_3_VAL: string = \"Observacion3\";\n  OBSERVACION_4_VAL: string = \"Observacion4\";\n  RECIBE_INVITACION_VAL: string = \"RecibeInvitacion\";\n  NATURALEZA_INVITACION_VAL: string = \"NaturalezaInvitacion\";\n  OTRA_INVITACION_VAL: string = \"OtraInvitacion\";\n  QUIEN_INVITACION_VAL: string = \"QuienInvitacion\";\n  CUBRE_VIATICOS_VAL: string = \"CubreViaticos\";\n  CUBRE_PASAJEAEREO_VAL: string = \"CubrePasajeAereo\";\n  CUBRE_TRANSPORTE_VAL: string = \"CubreTransporte\";\n  CUBRE_ALIMENTACION_VAL: string = \"CubreAlimentacion\";\n  CUBRE_HOSPEDAJE_VAL: string = \"CubreHospedaje\";\n  CUBRE_COSTOINSCRIPCION_VAL: string = \"CubreCostoInscripcion\";\n  CUBRE_OTRO_VAL: string = \"CubreOtro\";\n  CUBRE_OTRO_CUALES_VAL: string = \"CubreOtroCuales\";\n\n  LISTA_FORMULARIO_DINAMICO = [\n    { nombre: this.OBJETO_VAL, codigo: this.OBJETO },\n    { nombre: this.OBSERVACION_VAL, codigo: this.OBSERVACION },\n    { nombre: this.CENTRO_COSTO_VAL, codigo: this.CENTRO_COSTO },\n    { nombre: this.UNIDAD_SOLICITA_VAL, codigo: this.UNIDAD_SOLICITA },\n    { nombre: this.ZONA_ECONOMICA_VAL, codigo: this.ZONA_ECONOMICA },\n    { nombre: this.SOLICITADOR_VAL, codigo: this.SOLICITADOR },\n    { nombre: this.ORDENADOR_VAL, codigo: this.ORDENADOR },\n    { nombre: this.NUMERO_VAL, codigo: this.NUMERO },\n    { nombre: this.FECHA_VAL, codigo: this.FECHA },\n    { nombre: this.DESTINOS_VAL, codigo: this.DESTINOS },\n    { nombre: this.TIPO_COMISION_VAL, codigo: this.TIPO_COMISION_CAMPO },\n    { nombre: this.TIPO_DESTINO_VAL, codigo: this.TIPO_DESTINO },\n    { nombre: this.TIPO_AMBITO_VAL, codigo: this.TIPO_AMBITO },\n    { nombre: this.COMISION_PROGRAMADA_VAL, codigo: this.COMISION_PROGRAMADA },\n    { nombre: this.FECHA_APROBACION_VAL, codigo: this.FECHA_APROBACION },\n    { nombre: this.CIUDAD_VAL, codigo: this.CIUDAD },\n    { nombre: this.CLASE_CAPACITACION_VAL, codigo: this.CLASE_CAPACITACION },\n    { nombre: this.JUSTIFICACION_VAL, codigo: this.JUSTIFICACION },\n    { nombre: this.JUSTIFICACION_2_VAL, codigo: this.JUSTIFICACION_2 },\n    { nombre: this.JUSTIFICACION_3_VAL, codigo: this.JUSTIFICACION_3 },\n    { nombre: this.OBSERVACION_2_VAL, codigo: this.OBSERVACION_2 },\n    { nombre: this.OBSERVACION_3_VAL, codigo: this.OBSERVACION_3 },\n    { nombre: this.OBSERVACION_4_VAL, codigo: this.OBSERVACION_4 },\n    { nombre: this.RECIBE_INVITACION_VAL, codigo: this.RECIBE_INVITACION },\n    { nombre: this.NATURALEZA_INVITACION_VAL, codigo: this.NATURALEZA_INVITACION },\n    { nombre: this.OTRA_INVITACION_VAL, codigo: this.OTRA_INVITACION },\n    { nombre: this.QUIEN_INVITACION_VAL, codigo: this.QUIEN_INVITACION },\n    { nombre: this.CUBRE_VIATICOS_VAL, codigo: this.CUBRE_VIATICOS },\n    { nombre: this.CUBRE_PASAJEAEREO_VAL, codigo: this.CUBRE_PASAJEAEREO },\n    { nombre: this.CUBRE_TRANSPORTE_VAL, codigo: this.CUBRE_TRANSPORTE },\n    { nombre: this.CUBRE_ALIMENTACION_VAL, codigo: this.CUBRE_ALIMENTACION },\n    { nombre: this.CUBRE_HOSPEDAJE_VAL, codigo: this.CUBRE_HOSPEDAJE },\n    { nombre: this.CUBRE_COSTOINSCRIPCION_VAL, codigo: this.CUBRE_COSTOINSCRIPCION },\n    { nombre: this.CUBRE_OTRO_VAL, codigo: this.CUBRE_OTRO },\n    { nombre: this.CUBRE_OTRO_CUALES_VAL, codigo: this.CUBRE_OTRO_CUALES },\n    { nombre: this.RESPONSABLE_VAL, codigo: this.RESPONSABLE },\n    { nombre: this.ETAPA, codigo: this.ETAPA },\n  ]\n\n  TAMNIO_CAMPO_FORM_VIATICO = [\n    { codigo: this.OBJETO_VAL, nombre: '2000' },\n    { codigo: this.OBSERVACION_VAL, nombre: 200 },\n    { codigo: this.CENTRO_COSTO_VAL, nombre: 8 },\n    { codigo: this.UNIDAD_SOLICITA_VAL, nombre: 12 },\n    { codigo: this.ZONA_ECONOMICA_VAL, nombre: 8 },\n    { codigo: this.SOLICITADOR_VAL, nombre: 22 },\n    { codigo: this.ORDENADOR_VAL, nombre: 22 },\n    { codigo: this.NUMERO_VAL, nombre: 20 },\n    { codigo: this.FECHA_VAL, nombre: 7 },\n    { codigo: this.DESTINOS_VAL, nombre: 50 },\n    { codigo: this.TIPO_COMISION_VAL, nombre: 32 },\n    { codigo: this.TIPO_DESTINO_VAL, nombre: 32 },\n    { codigo: this.TIPO_AMBITO_VAL, nombre: 32 },\n    { codigo: this.RESPONSABLE_VAL, nombre: 20 },\n    { codigo: this.ETAPA, nombre: 32 },\n  ]\n\n  TAMNIO_CAMPO_FORM_VIATICO_SOLICITUD = [\n    { codigo: this.OBJETO_VAL, nombre: 150 },\n    { codigo: this.OBSERVACION_VAL, nombre: 200 },\n    { codigo: this.CENTRO_COSTO_VAL, nombre: 8 },\n    { codigo: this.UNIDAD_SOLICITA_VAL, nombre: 12 },\n    { codigo: this.ZONA_ECONOMICA_VAL, nombre: 8 },\n    { codigo: this.SOLICITADOR_VAL, nombre: 22 },\n    { codigo: this.ORDENADOR_VAL, nombre: 22 },\n    { codigo: this.RESPONSABLE_VAL, nombre: 500 },\n    { codigo: this.NUMERO_VAL, nombre: 20 },\n    { codigo: this.FECHA_VAL, nombre: 7 },\n    { codigo: this.DESTINOS_VAL, nombre: 50 },\n    { codigo: this.TIPO_COMISION_VAL, nombre: 32 },\n    { codigo: this.TIPO_DESTINO_VAL, nombre: 32 },\n    { codigo: this.TIPO_AMBITO_VAL, nombre: 32 },\n    { codigo: this.COMISION_PROGRAMADA_VAL, nombre: 1 },\n    { codigo: this.FECHA_APROBACION_VAL, nombre: 7 },\n    { codigo: this.CIUDAD_VAL, nombre: 8 },\n    { codigo: this.CLASE_CAPACITACION_VAL, nombre: 500 },\n    { codigo: this.JUSTIFICACION_VAL, nombre: 500 },\n    { codigo: this.JUSTIFICACION_2_VAL, nombre: 500 },\n    { codigo: this.JUSTIFICACION_3_VAL, nombre: 500 },\n    { codigo: this.OBSERVACION_2_VAL, nombre: 500 },\n    { codigo: this.OBSERVACION_3_VAL, nombre: 500 },\n    { codigo: this.OBSERVACION_4_VAL, nombre: 500 },\n    { codigo: this.RECIBE_INVITACION_VAL, nombre: 1 },\n    { codigo: this.NATURALEZA_INVITACION_VAL, nombre: 500 },\n    { codigo: this.OTRA_INVITACION_VAL, nombre: 500 },\n    { codigo: this.QUIEN_INVITACION_VAL, nombre: 500 },\n    { codigo: this.CUBRE_VIATICOS_VAL, nombre: 1 },\n    { codigo: this.CUBRE_PASAJEAEREO_VAL, nombre: 1 },\n    { codigo: this.CUBRE_TRANSPORTE_VAL, nombre: 1 },\n    { codigo: this.CUBRE_ALIMENTACION_VAL, nombre: 1 },\n    { codigo: this.CUBRE_HOSPEDAJE_VAL, nombre: 1 },\n    { codigo: this.CUBRE_COSTOINSCRIPCION_VAL, nombre: 1 },\n    { codigo: this.CUBRE_OTRO_VAL, nombre: 1 },\n    { codigo: this.CUBRE_OTRO_CUALES_VAL, nombre: 500 },\n  ]\n\n  PROPUESTO: string = \"Propuesto\";\n  NO_VIGENTE: string = \"No Vigente\";\n  VIGENTE: string = \"Vigente\";\n\n  PROPUESTO_VAL: string = \"P\";\n  NO_VIGENTE_VAL: string = \"N\";\n  VIGENTE_VAL: string = \"S\";\n\n  LISTA_TIPO_COSTO = [\n    { codigo: this.PROPUESTO_VAL, nombre: this.PROPUESTO },\n    { codigo: this.NO_VIGENTE_VAL, nombre: this.NO_VIGENTE },\n    { codigo: this.VIGENTE_VAL, nombre: this.VIGENTE },\n  ]\n\n  AMBOS: string = \"Ambos\";\n  COSTO: string = \"Costo\";\n  COMPLEMENTARIO: string = \"Complementario\";\n\n  AMBOS_VAL: string = \"A\";\n  COSTO_VAL: string = \"T\";\n  COMPLEMENTARIO_VAL: string = \"C\";\n\n  /*LISTA_TIPO: Clasifica el tipo de costo en complementario, costo o ambos*/\n  LISTA_TIPO = [\n    { codigo: this.AMBOS_VAL, nombre: this.AMBOS },\n    { codigo: this.COSTO_VAL, nombre: this.COSTO },\n    { codigo: this.COMPLEMENTARIO_VAL, nombre: this.COMPLEMENTARIO },\n  ]\n\n  VIATICO_COMPLEMENTARIO: string = \"C\";\n  VIATICO_COMPLEMENTARIO_DESC: string = \"Complementario\";\n  VIATICO_PROGRAMACION: string = \"P\";\n  VIATICO_PROGRAMACION_DESC: string = \"Programacion\";\n\n  MAPA_TIPOS_VIATICOS_PATICIPA = [\n    { codigo: this.VIATICO_COMPLEMENTARIO, nombre: this.VIATICO_COMPLEMENTARIO_DESC },\n    { codigo: this.VIATICO_PROGRAMACION, nombre: this.VIATICO_PROGRAMACION_DESC },\n  ]\n\n  ENTIDAD_VIGILADA: string = \"VI\";\n  ENTIDAD_NO_VIGILADA: string = \"NV\";\n\n  ENTIDAD_VIGILADA_DES: string = \"Entidad Vigilada\";\n  ENTIDAD_NO_VIGILADA_DES: string = \"Entidad No Vigilada\";\n\n  ORIGEN_RETROACTIVO_VIATICO: string = \"V\";\n\n  RETROACTIVO_PROCESO: string = \"P\";\n  RETROACTIVO_LIQUIDADO: string = \"L\";\n  CERRAR_PROCESO_RETROACTIVO: string = \"A\";\n  RETROACTIVO_PROCESO_DESC: string = \"Proceso\";\n  RETROACTIVO_LIQUIDADO_DESC: string = \"Liquidado\";\n  CERRAR_PROCESO_RETROACTIVO_DESC: string = \"Aplicado\";\n\n  MAPA_ESTADOS_RETROACTIVO_VIATICO = [\n    { codigo: this.RETROACTIVO_PROCESO, nombre: this.RETROACTIVO_PROCESO_DESC },\n    { codigo: this.RETROACTIVO_LIQUIDADO, nombre: this.RETROACTIVO_LIQUIDADO_DESC },\n    { codigo: this.CERRAR_PROCESO_RETROACTIVO, nombre: this.CERRAR_PROCESO_RETROACTIVO_DESC },\n  ]\n\n  DETALLE_RETROACTIVO: string = \"DETALLE_RETROACTIVO\";\n  REGRESAR_RETROACTIVO: string = \"REGRESAR_RETROACTIVO\";\n\n  TIPO_VIATICO_RETROACTIVO_PROGRAMACION: string = \"E\";\n  ORIGEN_RETROACTIVO_VIATICO_PROGRAMACION: string = \"R\";\n\n  TABLA_VIATICO: string = \"VIATICO_VIA\";\n  TABLA_VIATICO_PROGRAMACION: string = \"VIATICOPARTICIPA_VIP\";\n  TABLA_VIATICO_COSTOS: string = \"ViaticoPartMedioDTO\";\n  TABLA_VIATICO_DESTINO: string = \"DESTINOVIATICO\";\n  TABLA_VIAT_COSTOS: string = \"VIATICOPARTMEDIO_VPM\";\n\n  TABLA_VIATICO_DESC: string = \"Viatico\";\n  TABLA_VIATICO_PROGRAMACION_DESC: string = \"Programacion Viatico Participa\";\n  TABLA_VIATICO_COSTOS_DESC: string = \"Programacion Costeo Viatico\";\n\n  MAPA_TIPO_CAMPOS_VIATICOS = [\n    { codigo: this.TABLA_VIATICO, nombre: this.TABLA_VIATICO_DESC },\n    { codigo: this.TABLA_VIATICO_PROGRAMACION, nombre: this.TABLA_VIATICO_PROGRAMACION_DESC },\n    { codigo: this.TABLA_VIAT_COSTOS, nombre: this.TABLA_VIATICO_COSTOS_DESC },\n  ]\n\n  TIPO_ACCION_MULTA: string = \"M\";\n  TIPO_DIPONIBLE_REUTILIZACION: string = \"R\";\n  TIPO_NO_DIPONIBLE_REUTILIZACION: string = \"N\";\n\n  REEMBOLSO: string = \"RE\";\n  REUTILIZACION: string = \"RU\";\n  NOTACREDITO: string = \"NC\";\n\n  REEMBOLSO_DESC: string = \"Reembolso\";\n  REUTILIZACION_DESC: string = \"Revisión\";\n  NOTACREDITO_DESC: string = \"Nota Credito\";\n\n  TIPO_CANELACION = [\n    { codigo: this.REEMBOLSO, nombre: this.REEMBOLSO_DESC },\n    { codigo: this.REUTILIZACION, nombre: this.REUTILIZACION_DESC },\n    { codigo: this.NOTACREDITO, nombre: this.NOTACREDITO_DESC },\n  ]\n\n  TIPO_REUTILIZA = [\n    { codigo: this.REUTILIZACION, nombre: this.REUTILIZACION_DESC },\n    { codigo: this.NOTACREDITO, nombre: this.NOTACREDITO_DESC },\n  ]\n\n  ESTADO_DISPONIBLE: string = \"Disponible\";\n  ESTADO_USADO: string = \"Usado\";\n\n  ESTADO_COSTO_VIATICO = [\n    { codigo: this.TIPO_DIPONIBLE_REUTILIZACION, nombre: this.ESTADO_DISPONIBLE },\n    { codigo: this.TIPO_NO_DIPONIBLE_REUTILIZACION, nombre: this.ESTADO_USADO },\n  ]\n\n  ESTADO_COSTO_MODIFICADO = [\n    { codigo: Constantes.CONSTANTE_SI, nombre: Constantes.SI_STRING },\n    { codigo: Constantes.CONSTANTE_NO, nombre: Constantes.NO_STRING },\n  ]\n\n  TEXTO: string = \"T\";\n  CAMPO: string = \"C\";\n  TABLA: string = \"A\";\n\n  TEXTO_DESC: string = \"Texto\";\n  CAMPO_DESC: string = \"Campo\";\n  TABLA_DESC: string = \"Tabla\";\n\n  LISTA_TIPO_CAMPO_FORMULARIO = [\n    { codigo: this.TEXTO, nombre: this.TEXTO_DESC },\n    { codigo: this.CAMPO, nombre: this.CAMPO_DESC },\n    { codigo: this.TABLA, nombre: this.TABLA_DESC },\n  ]\n\n  TABLA_PROGRAMACION: string = \"programacionViatico\";\n  TABLA_COSTO: string = \"costoViatico\";\n  TABLA_ENTIDADVIGILADA: string = \"entidadVigiladaViatico\";\n  TABLA_ENTIDADOTRAS: string = \"entidadNoVigiladaViatico\";\n  TABLA_ANEXO: string = \"anexoViatico\";\n  TABLA_COMPLEMENTARIAVIATICO: string = \"complementariaViatico\";\n\n  TABLA_PROGRAMACION_DESC: string = \"Programacion Viatico\";\n  TABLA_COSTO_DESC: string = \"Costo Viatico\";\n  TABLA_ENTIDADVIGILADA_DESC: string = \"Entidades Vigiladas\";\n  TABLA_ENTIDADOTRAS_DESC: string = \"Otras Entidades\";\n  TABLA_ANEXO_DESC: string = \"Anexos\";\n  TABLA_COMPLEMENTARIAVIATICO_DESC: string = \"Informacion Complementaria Viatico\";\n\n  LISTA_TABLA_FORMULARIO = [\n    { codigo: this.TABLA_PROGRAMACION, nombre: this.TABLA_PROGRAMACION_DESC },\n    { codigo: this.TABLA_COSTO, nombre: this.TABLA_COSTO_DESC },\n    { codigo: this.TABLA_ENTIDADVIGILADA, nombre: this.TABLA_ENTIDADVIGILADA_DESC },\n    { codigo: this.TABLA_ENTIDADOTRAS, nombre: this.TABLA_ENTIDADOTRAS_DESC },\n    { codigo: this.TABLA_ANEXO, nombre: this.TABLA_ANEXO_DESC },\n    { codigo: this.TABLA_COMPLEMENTARIAVIATICO, nombre: this.TABLA_COMPLEMENTARIAVIATICO_DESC },\n  ]\n\n  REGLA_CONSULTA_SOLICITUD_VIATICO: string = \"solicitudviatico\";\n  REGLA_REGRESO_LISTADO_VIATICO: string = \"detallelistadoviatico\";\n\n  VISUALIZAR: string = \"V\";\n  VISUALIZAR_DESC: string = \"Solo visualizar\";\n\n  //lista obligatorio\n  LISTA_OBLIGATORIO_TIPO_COSTO=[\n    {nombre:Constantes.SI_STRING,codigo:Constantes.CONSTANTE_SI},\n    {nombre:Constantes.NO_STRING,codigo:Constantes.CONSTANTE_NO},\n    {nombre:this.VISUALIZAR_DESC,codigo:this.VISUALIZAR},\n  ]\n\n  //lista campo\n\n  DESPLAZAMIENTO_DES: string = \"Desplazamiento\"\n  DESPLAZAMIENTO0: string = \"desplazamiento\"\n  MEDIO_DES: string = \"Medio (Aerolinea)\"\n  MEDIO: string = \"medio\"\n  CLASE_DES: string = \"Clase Tiquete\"\n  CLASE: string = \"claseTiquete\"\n  NUMERO_TIQUETE_DES: string = \"Numero Tiquete\"\n  NUMERO_TIQUETE: string = \"numeroTiquete\"\n  VALOR_DES: string = \"Valor\"\n  VALOR: string = \"valor\"\n  DOCUMENTO_DES: string = \"Documento\"\n  DOCUMENTO: string = \"documento\"\n  FECHA_DOCUMENTO_DES: string = \"Fecha Documento\"\n  FECHA_DOCUMENTO: string = \"fechaDocumento\"\n  APROBADO_DES: string = \"Aprobado\"\n  APROBADO: string = \"aprobado\"\n  FECHA_INICIAL_DES: string = \"Fecha Inicial\"\n  FECHA_INICIAL: string = \"fechaInicial\"\n  FECHA_FINAL_DES: string = \"Fecha Final\"\n  FECHA_FINAL: string = \"fechaFinal\"\n  DESTINO_DES: string = \"Destino\"\n  DESTINO0: string = \"destino\"\n  VALOR_OTRAS_MONEDAS_DES: string = \"Valor Otras Monedas\"\n  VALOR_OTRAS_MONEDAS: string = \"valorOtrasMonedas\"\n  ENTIDAD_DES: string = \"Entidad\"\n  ENTIDAD: string = \"entidad\"\n  VALOR_DESCUENTO_AEROLINEA_DES: string = \"Valor Descuento Aerolinea\"\n  VALOR_DESCUENTO_AEROLINEA: string = \"valorDescuentoAerolinea\"\n  VALOR_DESCUENTO_CONTRATISTA_DES: string = \"Valor Descuento Contratista\"\n  VALOR_DESCUENTO_CONTRATISTA: string = \"valorDescuentoContratista\"\n  TOTAL_FACTURA_DES: string = \"Total Factura\"\n  TOTAL_FACTURA: string = \"totalFactura\"\n  VALOR_SOLICITUD_DES: string = \"Valor Solicitud\"\n  VALOR_SOLICITUD: string = \"valorSolicitud\"\n\n  LISTA_CAMPO = [\n    { codigo: this.DESPLAZAMIENTO0, nombre: this.DESPLAZAMIENTO_DES },\n    { codigo: this.MEDIO, nombre: this.MEDIO_DES },\n    { codigo: this.CLASE, nombre: this.CLASE_DES },\n    { codigo: this.NUMERO_TIQUETE, nombre: this.NUMERO_TIQUETE_DES },\n    { codigo: this.VALOR, nombre: this.VALOR_DES },\n    { codigo: this.DOCUMENTO, nombre: this.DOCUMENTO_DES },\n    { codigo: this.FECHA_DOCUMENTO, nombre: this.FECHA_DOCUMENTO_DES },\n    { codigo: this.APROBADO, nombre: this.APROBADO_DES },\n    { codigo: this.FECHA_INICIAL, nombre: this.FECHA_INICIAL_DES },\n    { codigo: this.FECHA_FINAL, nombre: this.FECHA_FINAL_DES },\n    { codigo: this.DESTINO0, nombre: this.DESTINO_DES },\n    { codigo: this.VALOR_OTRAS_MONEDAS, nombre: this.VALOR_OTRAS_MONEDAS_DES },\n    { codigo: this.ENTIDAD, nombre: this.ENTIDAD_DES },\n    { codigo: this.VALOR_DESCUENTO_AEROLINEA, nombre: this.VALOR_DESCUENTO_AEROLINEA_DES },\n    { codigo: this.VALOR_DESCUENTO_CONTRATISTA, nombre: this.VALOR_DESCUENTO_CONTRATISTA_DES },\n    { codigo: this.TOTAL_FACTURA, nombre: this.TOTAL_FACTURA_DES },\n    { codigo: this.VALOR_SOLICITUD, nombre: this.VALOR_SOLICITUD_DES },\n  ]\n\n  //LISTA CAMPO COSTO\n  OTRA_ENTIDAD: string = \"entidadOtra\"\n  OTRA_ENTIDAD_DES: string = \"Otra Entidad\"\n  CDP: string = \"documento\"\n  CDP_DES: string = \"CDP\"\n  FECHA_CDP: string = \"fechaDocumento\"\n  FECHA_CDP_DES: string = \"Fecha CDP\"\n  DIAS_ENTIDAD: string = \"diasOtro\"\n  DIAS_ENTIDAD_DES: string = \"Dias Entidad\"\n  TRM_PROYECTADA: string = \"trmProyeccion\"\n  TRM_PROYECTADA_DES: string = \"TRM proyectada\"\n  VALOR_ADICIONAL: string = \"estimado\"\n  VALOR_ADICIONAL_DES: string = \"Valor Adicional\"\n  CDP_DOS: string = \"documentoDos\"\n  CDP_DOS_DES: string = \"CPD Dos\"\n  FECHA_CPD_DOS: string = \"fechaDocumentoDos\"\n  FECHA_CPD_DOS_DES: string = \"Fecha CPD Dos\"\n  CADENA1: string = \"cadena1\"\n  CADENA1_DES: string = \"cadena1\"\n  CADENA2: string = \"cadena2\"\n  CADENA2_DES: string = \"cadena2\"\n  NUMERO1: string = \"numero1\"\n  NUMERO1_DES: string = \"numero1\"\n  NUMERO2: string = \"numero2\"\n  NUMERO2_DES: string = \"numero2\"\n  FECHA1: string = \"fecha1\"\n  FECHA1_DES: string = \"fecha1\"\n  FECHA2: string = \"fecha2\"\n  FECHA2_DES: string = \"fecha2\"\n  DESTINO_PROGRAMACION: string = \"destinoPropio\"\n  DESTINO_PROGRAMACION_DES: string = \"Destino Programacion\"\n  AMBITO_PROGRAMACION: string = \"ambitoPropio\"\n  AMBITO_PROGRAMACION_DES: string = \"Ambito Programacion\"\n  TIPO_COMISION_PROGRAMACION: string = \"tipoComisionPropio\"\n  TIPO_COMISION_PROGRAMACION_DES: string = \"Tipo Comision Programacion\"\n  TOTAL: string = \"total\"\n  TOTAL_DES: string = \"Total\"\n  ENTREGA_INFORME: string = \"informe\"\n  ENTREGA_INFORME_DES: string = \"Entrega Informe\"\n  VALOR_ADICIONAL_DOS_DES:string =\"Valor Adicional Dos\"\n  VALOR_ADICIONAL_DOS:string=\"estimadoDos\"\n\n  LISTA_CAMPO_COSTO = [\n    { codigo: this.OTRA_ENTIDAD, nombre: this.OTRA_ENTIDAD_DES },\n    { codigo: this.CDP, nombre: this.CDP_DES },\n    { codigo: this.FECHA_CDP, nombre: this.FECHA_CDP_DES },    \n    { codigo: this.TRM_PROYECTADA, nombre: this.TRM_PROYECTADA_DES },\n    { codigo: this.VALOR_ADICIONAL, nombre: this.VALOR_ADICIONAL_DES },\n    { codigo: this.CDP_DOS, nombre: this.CDP_DOS_DES },\n    { codigo: this.FECHA_CPD_DOS, nombre: this.FECHA_CPD_DOS_DES },\n    { codigo: this.CADENA1, nombre: this.CADENA1_DES },\n    { codigo: this.CADENA2, nombre: this.CADENA2_DES },\n    { codigo: this.NUMERO1, nombre: this.NUMERO1_DES },\n    { codigo: this.NUMERO2, nombre: this.NUMERO2_DES },\n    { codigo: this.FECHA1, nombre: this.FECHA1_DES },\n    { codigo: this.FECHA2, nombre: this.FECHA2_DES },\n    { codigo: this.DESTINO_PROGRAMACION, nombre: this.DESTINO_PROGRAMACION_DES },\n    { codigo: this.AMBITO_PROGRAMACION, nombre: this.AMBITO_PROGRAMACION_DES },\n    { codigo: this.TIPO_COMISION_PROGRAMACION, nombre: this.TIPO_COMISION_PROGRAMACION_DES },\n    { codigo: this.TOTAL, nombre: this.TOTAL_DES },\n    { codigo: this.ENTREGA_INFORME, nombre: this.ENTREGA_INFORME_DES },\n    { codigo: this.DIAS_ENTIDAD, nombre: this.DIAS_ENTIDAD_DES },\n    { codigo: this.VALOR_ADICIONAL_DOS, nombre: this.VALOR_ADICIONAL_DOS_DES}\n  ]\n  \n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaTipoViaticoParticipa') { this.MAPA_TIPOS_VIATICOS_PATICIPA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }        \n    if (args[0] == 'listaEstado') { this.LISTAESTADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }        \n    return result;\n}\n\n}\n","import { UnionModel } from 'general-library-union'\n\n\nexport class ViaticoPartMedioModel extends UnionModel {\n\n\t\n\t\n\tllave: string;\n\ttipoCosto: string;\n\tdesplazamiento: string;\n\tmedio: string;\n\tclaseTiquete: string;\n\tnumeroTiquete: string;\n\tvalor: number;\n\tfactura: string;\n\tplanInversion: string;\n\tdocumento: string;\n\tfechaFactura: Date;\n\tfechaDocumento: Date;\n\ttipoTipoCosto: string;\n\tnombreTipoCosto: string;\n\tnombreAerolinea: string;\n\tnombreRubro: string;\n\tesAereo: boolean;\n\tesTerrestre: boolean;\n\tagencia: string;\n\tvalorOtro: number;\n\tentidadOtro: string;\n\talternoCosto: string;\n\tentregado: number;\n\tlegalizacion: Date;\n\testado: string;\n\torden: number;\n\tvalorLegalizado: number;\n\tvalorPesos: number;\n\tvalorUD: number;\n\tentregadoUD: number;\n\tparticipante: boolean;\n\tdesembolsoParticipa: Date;\n\tnombreApellido: string;\n\tcontrato: number;\n\tcedula: number;\n\tdescripcionPlanInversion: string;\n\tpagadoUD: number;\n\taprobado: number;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tdestino: string;\n\tvalorOtraMoneda: number;\n\tentidad: string;\n\ttipoReutilizacion: string;\n\tfechaReutilizacion: Date;\n\tvalorNotaCredito: number;\n\tvalorMulta: number;\n\tfechaMulta: Date;\n\tnumeroFactura: string;\n\ttipoAccion: string;\n\tllaveViatico: string;\n\tvalorDescuentoAerolinea: string;\n\tvalorDescuentoContratista: string;\n\treembolsoTipoCosto: string;\n\ttipoCancelacion: string;\n\tnotaCredito: number;\n\tvalorUtilizado: number;\n\tfechaResolucion: Date;\n\tnumeroResolucion: string;\n\tllaveUtiliza: string;\n\tcomodinTipoCancelacion: string;\n\texcedente: number;\n\ttotalFactura: number;\n\tnumeroResolucionViatico: string;\n\tfechaResolucionViatico: Date;\n\tviatico: string;\n\tultimoViatico: string;\n\tcostoModificado: string;\n\tempresa: number;\n\tcostoModificadoDiferente: string;\n\tsinTipoReutilizacion: string;\n\tmensaje: string;\n\tvalorSolicitud: number;\n\tdescripcionTipoCosto: string;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class MedioAudioVisualModel extends UnionModel {\n\n\torigen: string;\n\tdescripcion: string;\n\tbusqueda: string;\n\t\n}","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { ZonaEconomicaModel } from '../../../modules/compensacion/models/ZonaEconomicaModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\n\n\n@Component({\n    selector: 'app-input-helper-seleccion-zona-economica',\n    templateUrl: './input-helper-seleccion-zona-economica.component.html',\n    styleUrls: ['./input-helper-seleccion-zona-economica.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperSeleccionZonaEconomicaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        NgIf,\n        FiltroGeneralComponent\n    ],\n})\nexport class InputHelperSeleccionZonaEconomicaComponent implements ControlValueAccessor {\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() mostrarX: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() cargaempresa: number;\n\n  @Input() booleano: boolean;\n\n  @Input() labelIntput: string;\n\n  public empresadinamica;\n\n\n  listaZonaEconomica: any[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: ZonaEconomicaModel;\n\n  paginator = { rows: 10, totalRecords: 0 };\n  filters: { field: string; header: any; matchMode: string; }[];\n\n  constructor(private generalService: GeneralService,private translateService: TranslateService,\n    private authService: AuthService) { \n      this.filters = [\n        {\n          field: 'descripcion',\n          header: this.translateService.instant('descripcion'),\n          matchMode: 'equal',\n        },\n      ];\n    }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.loadData();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    console.log(this.dataSelected);\n    this.value = this.dataSelected.zonaEconomica;\n    this.label = this.dataSelected.zonaEconomica + \" - \" + this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  loadData(event?) {\n    let objeto = {\n      empresa: this.cargaempresa ? this.cargaempresa : this.authService.getTokenKey('numeroEmpresa'),\n      descripcion: event?.descripcion ? '%'+event['descripcion']['value']+'%' : null \n    };\n\n    this.generalService.queryForList(new GeneralModel('ZonaEconomicaDTO', null, false,objeto)).subscribe((data) => {\n      this.listaZonaEconomica = data;\n      this.paginator.totalRecords = this.listaZonaEconomica.length;\n      this.showDialog = true;\n    });\n  }\n\n}\n","<div #field [class]=\"booleano ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [disabled]=\"true\" />\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\" (click)=\"deleteSelection()\" *ngIf=\"mostrarX\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n    <label>{{labelIntput}}</label>\n  </span>\n</div>\n\n<p-dialog header=\"{{'zonaeconomica' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n  (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '40vw'}\">\n\n  <div class=\"mb-2\">\n    <app-filtro-general #filtro [filtros]=\"filters\" (metodoRegresar)=\"loadData($event)\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"flex mt-3\">\n            <div class=\"w-full\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n                  autocomplete=\"off\" />\n                <label for=\"descripcion\">{{'descripcion' | translate}}</label>\n              </span>\n            </div>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n  <p-table dataKey=\"llaveTabla\" [value]=\"listaZonaEconomica\" selectionMode=\"single\" resposiveLayout=\"scroll\"\n    [scrollable]=\"true\" [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n    [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"Total {totalRecords} registros\" styleClass=\"p-datatable-striped input-helper-datatable\"\n    [(selection)]=\"dataSelected\" (onRowSelect)=\"onRowSelect()\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{\"nombre\" | translate}}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-zona>\n      <tr [pSelectableRow]=\"zona\">\n        <td>{{zona.descripcion}}</td>\n      </tr>\n    </ng-template>\n  </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class VEntidadViaticoModel extends UnionModel {\n\n\tcodigo: string;\n\tdescripcion: string;\n\tcomodin: string;\n\n}","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { VEntidadViaticoModel } from '../../../modules/viaticos/models/VEntidadViaticoModel';\n\n@Component({\n  selector: 'app-input-helper-seleccion-entidad-viatico',\n  standalone: true,\n  providers: [\n    {\n        provide: NG_VALUE_ACCESSOR,\n        useExisting: forwardRef(() => InputHelperSeleccionEntidadViaticoComponent),\n        multi: true,\n    },\n  ],\n  imports: [\n      InputTextModule,\n      NgIf,\n      ButtonDirective,\n      Ripple,\n      DialogModule,\n      FormsModule,\n      ReactiveFormsModule,\n      TableModule, TemplateTablaVaciaComponent,\n      PrimeTemplate,\n      TranslateModule,\n      FiltroGeneralComponent,\n  ],\n    templateUrl: './input-helper-seleccion-entidad-viatico.component.html',\n    styleUrl: './input-helper-seleccion-entidad-viatico.component.scss'\n  })\nexport class InputHelperSeleccionEntidadViaticoComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  lista: VEntidadViaticoModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: VEntidadViaticoModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService,\n              private authService: AuthService,\n              private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.codigo\n    this.label = this.dataSelected.descripcion;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      comodin: event.filters.parametroBusqueda?.value ? '%' + event.filters.parametroBusqueda?.value + '%' : null,\n    }\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'VEntidadViaticoDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto\n    };\n    this.lista = await this.generalService.queryForList(objetoFiltro).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objetoFiltro).toPromise();\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new VEntidadViaticoModel();\n      filtro.codigo = llave;\n      let objeto = new GeneralModel('VEntidadViaticoDTO', null, false, filtro);\n      let respuesta: VEntidadViaticoModel = await generalService.queryForObject(objeto).toPromise();\n      return `${respuesta.descripcion.trim()}`\n    } else {\n      return null;\n    }\n  }\n\n\n}","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog header=\"{{'entidadviatico' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"codigo\" [value]=\"lista\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect()\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'codigo' | translate}} </th>\n            <th>{{'entidad' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.codigo}}</td>\n            <td>{{bean.descripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ViaticoParticipaModel } from '../../../modules/viaticos/models/ViaticoParticipaModel';\nimport { ViaticosPipe } from '../../../modules/viaticos/pipes/viaticos.pipe';\n\n@Component({\n  selector: 'app-input-helper-seleccion-programacion-viatico',\n  standalone: true,\n  providers: [\n    {\n        provide: NG_VALUE_ACCESSOR,\n        useExisting: forwardRef(() => InputHelperSeleccionProgramacionViaticoComponent),\n        multi: true,\n    },\n  ],\n  imports: [\n      InputTextModule,\n      NgIf,\n      ButtonDirective,\n      Ripple,\n      DialogModule,\n      FormsModule,\n      ReactiveFormsModule,\n      TableModule, TemplateTablaVaciaComponent,\n      PrimeTemplate,\n      TranslateModule,\n      ViaticosPipe,\n      FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-seleccion-programacion-viatico.component.html',\n  styleUrl: './input-helper-seleccion-programacion-viatico.component.scss'\n})\n\nexport class InputHelperSeleccionProgramacionViaticoComponent implements ControlValueAccessor, OnInit {\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() listaInput: ViaticoParticipaModel[] = [];\n\n  lista: ViaticoParticipaModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: ViaticoParticipaModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService,\n              private authService: AuthService,\n              private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.llave\n    this.label = this.dataSelected.nombreApellido;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    if (this.listaInput) {\n      this.lista = this.listaInput.slice(event.first, event.first + event.rows);\n      this.paginator.totalRecords = this.listaInput.length;\n      return;\n    }\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      //comodin: event.filters.parametroBusqueda?.value ? '%' + event.filters.parametroBusqueda?.value + '%' : null,\n    }\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'ViaticoParticipaDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: objeto\n    };\n    this.lista = await this.generalService.queryForList(objetoFiltro).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objetoFiltro).toPromise();\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new ViaticoParticipaModel();\n      filtro.llave = llave;\n      let objeto = new GeneralModel('ViaticoParticipaDTO', null, false, filtro);\n      let respuesta: ViaticoParticipaModel = await generalService.queryForObject(objeto).toPromise();\n      return `${respuesta.nombreApellido.trim()}`\n    } else {\n      return null;\n    }\n  }\n\n\n}","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog header=\"{{'seleccionprogramacionycomplementario' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"llave\" [value]=\"lista\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect()\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'tipo' | translate}} </th>\n                <th>{{'nombre' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.tipoOrigen | viaticos : 'listaTipoViaticoParticipa'}}</td>\n            <td>{{bean.nombreApellido}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { ViaticoModel } from '../models/ViaticoModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ViaticosService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarValoresListasSolicitud(general: any): Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/viaticos/cargarValoresListasSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarTemporalSolicitudViatico(general: any): Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/viaticos/guardarTemporalSolicitudViatico`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarSolicitudViatico(general: any): Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/viaticos/guardarSolicitudViatico`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarFormularioSolicitud(general: any): Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/viaticos/cargarFormularioSolicitud`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  formatearViatico(viatico: ViaticoModel): ViaticoModel {\n    viatico.fechaNumero = viatico.fechaNumero ? new Date(viatico.fechaNumero) : null;\n    viatico.fechaNumeroPadre = viatico.fechaNumeroPadre ? new Date(viatico.fechaNumeroPadre) : null;\n    viatico.fechaInicial = viatico.fechaInicial ? new Date(viatico.fechaInicial) : null;\n    viatico.fechaFinal = viatico.fechaFinal ? new Date(viatico.fechaFinal) : null;\n    viatico.fechaNumeroOrigen = viatico.fechaNumeroOrigen ? new Date(viatico.fechaNumeroOrigen) : null;\n    viatico.fechaDerogacion = viatico.fechaDerogacion ? new Date(viatico.fechaDerogacion) : null;\n    viatico.fechaAprobacion = viatico.fechaAprobacion ? new Date(viatico.fechaAprobacion) : null;\n    return viatico;\n  }\n\n}","import { UnionModel } from 'general-library-union'\n\n\nexport class FormatoFirmaModel extends UnionModel {\n\n\tformatoFirma: string;\n\tformato: number;\n\tidentifica: number;\n\tdependencia: string;\n\ttipo: string;\n\tcargo: string;\n\tempresa: number;\n\tdescripcion: string;\n\ttipoSoporte: string;\n\tsoporte: string;\n\talterno: number;\n\tplanilla: string;\n\tnombrePlanilla: string;\n\tnombreCompleto: string;\n\tnombreFormato: string;\n\tnombreEmpresa: string;\n\torigenActo: string;\n\ttabla1: string;\n\ttabla2: string;\n\ttabla3: string;\n\tdocumentoEmpleado: string;\n\tunidad: string;\n\tdescripcionUnidad: string;\n\ttipoFirma: string;\n\tfirma: string;\n\taliasRol: string;\n\tlogin: string;\n\tsucursal: string;\n\tnombreSucursal: string;\n\tbusqueda: string;\t\n\n}\n","import { Injectable } from '@angular/core';\nimport { cargarmapasGlobal } from '../../../shared/servicios/cargar-mapas.service';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, UtilsService } from 'general-library-union';\nimport { EmpresaModel } from '../../compensacion/models/EmpresaModel';\nimport { CodigoBaseViaticoModel } from '../models/CodigoBaseViaticoModel';\nimport { ViaticosPipe } from '../pipes/viaticos.pipe';\nimport { VariableModel } from '../../compensacion/models/VariableModel';\nimport { ClasificacionModel } from '../../compensacion/models/ClasificacionModel';\nimport { PlanInversionModel } from '../../saludocupacional/models/PlanInversionModel';\nimport { TipoCostoModel } from '../../capacitacion/models/TipoCostoModel';\nimport { MedioAudioVisualModel } from '../../capacitacion/models/MedioAudioVisualModel';\nimport { ViaticoParticipaModel } from '../models/ViaticoParticipaModel';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { FormatoFirmaModel } from '../../actos/models/FormatoFirmaModel';\nimport { SelectListActos } from '../../actos/services/select-list-actos.service';\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SelectListViaticos {\n\n    constructor(private authService: AuthService, \n                private generalService: GeneralService,\n                private utilsService: UtilsService,\n                private generalPipe: GeneralPipe,\n                private selectListActos: SelectListActos,\n                private viaticosPipe: ViaticosPipe,) {}\n\n    public async getListadoComision() {\n        var lista = [];\n        var listadoComision = [];\n        var codigoBaseViaticoDTO = new CodigoBaseViaticoModel();\n        codigoBaseViaticoDTO.tabla = this.viaticosPipe.TIPO_COMISION;\n        lista = await this.generalService.queryForList(new GeneralModel('CodigoBaseViaticoDTO', null, false, codigoBaseViaticoDTO)).toPromise();\n        for (var uno of lista) {\n            listadoComision.push({value: uno.llaveTabla, label: uno.descripcion});\n        }\n\t\treturn listadoComision;\n\t}\n\t\n\tpublic async getListadoDestino() {\n        var listadoDestino = [];\n        var lista = [];\n        var codigoBaseViaticoDTO = new CodigoBaseViaticoModel();\n        codigoBaseViaticoDTO.tabla = this.viaticosPipe.DESTINO;\n        lista = await this.generalService.queryForList(new GeneralModel('CodigoBaseViaticoDTO', null, false, codigoBaseViaticoDTO)).toPromise();\n        for (var uno of lista) {\n            listadoDestino.push({value: uno.llaveTabla, label: uno.descripcion});\n        }\n        return listadoDestino;\n\t}\n\t\n\tpublic async getListadoVariables() {\n        var listadoVariable = [];\n        var lista = [];\n        var variableDTO = new VariableModel();\n        lista = await this.generalService.queryForList(new GeneralModel('VariableDTO', null, false, variableDTO)).toPromise();\n        for (var uno of lista) {\n            listadoVariable.push({value: uno.variable, label: uno.variable +' -- '+ uno.descripcion});\n        }\n\t\treturn listadoVariable;\n\t}\n\t\n\tpublic async getListadoAmbito() {\n        var listadoAmbito = [];\n        var lista = [];\n        var  codigoBaseViaticoDTO = new CodigoBaseViaticoModel();\n        codigoBaseViaticoDTO.tabla = this.viaticosPipe.AMBITO;\n        lista = await this.generalService.queryForList(new GeneralModel('CodigoBaseViaticoDTO', null, false, codigoBaseViaticoDTO)).toPromise();\n        for (var uno of lista) {\n            listadoAmbito.push({value: uno.llaveTabla, label: uno.descripcion});\n        }\n        return listadoAmbito;\n\t}\n\t\n\tpublic async getListadoCargos() {\n        var listadoClasificacionCargos = [];\n        var lista = [];\n        var clasificacionDTO = new ClasificacionModel();\n        lista = await this.generalService.queryForList(new GeneralModel('ClasificacionDTO', null, false, clasificacionDTO)).toPromise();\n        for (var uno of lista) {\n            listadoClasificacionCargos.push({value: uno.clasificacion, label: uno.descripcion});\n        }\n        return listadoClasificacionCargos;\n\t}\n\t\n\tpublic async getListadoRubro() {\n        var listadoRubro = [];\n        var lista = [];\n        var planInversionDTO = new PlanInversionModel();\n        planInversionDTO.origen = this.viaticosPipe.VIATICOS;\n        planInversionDTO.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        planInversionDTO.usuarioRol = this.authService.getTokenKey('aliasRol');\n        planInversionDTO.usuarioLogin = this.authService.getTokenKey('usuario');\n        lista = await this.generalService.queryForList(new GeneralModel('PlanInversionDTO', null, false, planInversionDTO)).toPromise();\n        var descripcion;\n        for (var uno of lista) {\n            descripcion = uno.descripcion != null ? uno.descripcion : '';\n            listadoRubro.push({value: uno.planInversion, label: descripcion + '(' + uno.nombreTipoDescripcion + ')'});\n        }\n        listadoRubro = this.utilsService.ordenarSelectItemsAlfabeticamente(listadoRubro);\n\t\treturn listadoRubro;\n\t}\n\t\n\tpublic async getListadoTipoCosto(tipoComplementario: boolean) {\n        var listadoTipoCosto = [];\n        var lista = [];\n        var tipoCostoDTO = new TipoCostoModel();\n        tipoCostoDTO.origen = this.viaticosPipe.VIATICOS;\n        if (tipoComplementario) {\n            tipoCostoDTO.origenTipo = this.viaticosPipe.COMPLEMENTARIO_VAL;\n        } else {\n            tipoCostoDTO.origenTipo = this.viaticosPipe.COSTO_VAL;\n        }\n        lista = await this.generalService.queryForList(new GeneralModel('TipoCostoDTO', null, false, tipoCostoDTO)).toPromise();\n        for (var uno of lista) {\n            listadoTipoCosto.push({value: uno.tipoCosto, label: uno.descripcion});\n        }\n        return listadoTipoCosto;\n\t}\n\t\n\tpublic async getListadoAerolinea() {\n        var listadoAerolinea = [];\n        var lista = [];\n        var medioAudioVisualDTO = new MedioAudioVisualModel();\n        medioAudioVisualDTO.origen = this.viaticosPipe.VIATICOS;\n        lista = await this.generalService.queryForList(new GeneralModel('MedioAudioVisualDTO', null, false, medioAudioVisualDTO)).toPromise();\n        for (var uno of lista) {\n            listadoAerolinea.push({value: uno.llaveTabla, label: uno.descripcion});\n        }\n        return listadoAerolinea;\n\t}\n\t\n\tpublic async getListadoCostoDesplazamiento(ciudad: string) {\n        var listadoCostoDesplazamiento = [];\n        var lista = [];\n        var tipoCostoDTO = new TipoCostoModel();\n        tipoCostoDTO.origen = this.viaticosPipe.DESPLAZAMIENTO;\n        tipoCostoDTO.ciudad = ciudad;\n        lista = await this.generalService.queryForList(new GeneralModel('TipoCostoDTO', null, false, tipoCostoDTO)).toPromise();\n        for (var uno of lista) {\n            listadoCostoDesplazamiento.push({value: uno.tipoCosto, label: uno.descripcion});\n        }\n        return listadoCostoDesplazamiento;\n\t}\n\t\n\tpublic async getListadoProgramacion(viatico: string) {\n        var listadoProgramacion = [];\n        var viaticoParticipaDTO = new ViaticoParticipaModel();\n        viaticoParticipaDTO.viatico = viatico;\n        viaticoParticipaDTO.tipoOrigen = this.viaticosPipe.VIATICO_PROGRAMACION;\n        viaticoParticipaDTO.tipo = this.viaticosPipe.VIATICO_PROGRAMACION;\n        var lista = await this.generalService.queryForList(new GeneralModel('ViaticoParticipaDTO', 'ViaticoParticipa.consultarProgramacion', false, viaticoParticipaDTO)).toPromise();\n        for (let uno of lista) {\n            listadoProgramacion.push({value: uno.llave, label: uno.nombreApellido});\n        }\n\t\treturn listadoProgramacion;\n\t}\n\t\n\tpublic async getListaSino(){\n        var listaSino = [];\n        var lista = this.generalPipe.LISTA_SELECIONAR_MAP; \n        for (let uno of lista) {\n            listaSino.push({value: uno.codigo, label: uno.nombre});\n        }\n        return listaSino;\n\t}\n\n\tpublic async getListaSolicita() {\n        var solicita = new FormatoFirmaModel();\n        solicita.tipo = 'F';\n        solicita.tipoSoporte = this.generalPipe.SI;\n        solicita.formato = 0;\n        solicita.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        let listaSolicita = this.selectListActos.getSelectItemsFormatoFirmaCargo(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', null, false, solicita)).toPromise());\n        return listaSolicita;\n\t}\n\n\tpublic async getListaOrdenador() {\n        var solicita = new FormatoFirmaModel();\n        solicita.tipo = 'F';\n        solicita.tipoSoporte = 'O';\n        solicita.formato = 0;\n        solicita.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        let listaOrdenador = this.selectListActos.getSelectItemsFormatoFirmaCargo(await this.generalService.queryForList(new GeneralModel('FormatoFirmaDTO', null, false, solicita)).toPromise());\n        return listaOrdenador;\n\t}\n\n}","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { ArchivoModel } from '../../../../../modules/hojavida/models/ArchivoModel';\nimport { DatoorganizacionModel } from '../../../../../modules/talento/models/DatoorganizacionModel';\nimport { CodigoBaseViaticoModel } from '../../../models/CodigoBaseViaticoModel';\nimport { ViaticoComplementariaModel } from '../../../models/ViaticoComplementariaModel';\nimport { ViaticoEntidadModel } from '../../../models/ViaticoEntidadModel';\nimport { ViaticoModel } from '../../../models/ViaticoModel';\nimport { ViaticoParticipaModel } from '../../../models/ViaticoParticipaModel';\nimport { HoraWrapper } from '../../../wrapper/HoraWrapper';\nimport { SolicitudViaticoCostoWrapper } from '../../../wrapper/SolicitudViaticoCostoWrapper';\nimport { SolicitudViaticoWrapper } from '../../../wrapper/SolicitudViaticoWrapper';\nimport { ViaticosPipe } from '../../../pipes/viaticos.pipe';\nimport { ViaticoPartMedioModel } from '../../../models/ViaticoPartMedioModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { datoOrganizacionService } from '../../../../../modules/talento/services/dato-organizacion.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { EmpleadoModel } from '../../../../../modules/compensacion/models/EmpleadoModel';\nimport { EmpleadoService } from '../../../../../modules/compensacion/services/empleado.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ViaticosService } from '../../../services/viaticos.service';\nimport { ActividadFuenteTareaModel } from '../../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { EjecucionAutorizacionComponent } from '../../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { TipoCostoModel } from '../../../../../modules/capacitacion/models/TipoCostoModel';\nimport { VEntidadViaticoModel } from '../../../models/VEntidadViaticoModel';\nimport { ZonaEconomicaModel } from '../../../../../modules/compensacion/models/ZonaEconomicaModel';\nimport { CentroCostoModel } from '../../../../../modules/compensacion/models/CentroCostoModel';\nimport { HojaVidaModel } from '../../../../../modules/hojavida/models/HojaVidaModel';\nimport { UbicacionGeograficaFiltroTablaModel } from '../../../../../modules/hojavida/models/UbicacionGeograficaFiltroTablaModel';\nimport { MedioAudioVisualModel } from '../../../../../modules/capacitacion/models/MedioAudioVisualModel';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { SelectListViaticos } from '../../../services/select-list-viaticos.service';\nimport { DatePipe, NgFor } from '@angular/common';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputHelperSeleccionZonaEconomicaComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-economica/input-helper-seleccion-zona-economica.component';\nimport { InputHelperUbicacionComponent } from '../../../../../shared/componentes/input-helper-ubicacion/input-helper-ubicacion.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { InputHelperSeleccionEntidadViaticoComponent } from '../../../../../shared/componentes/input-helper-seleccion-entidad-viatico/input-helper-seleccion-entidad-viatico.component';\nimport { InputHelperSeleccionProgramacionViaticoComponent } from '../../../../../shared/componentes/input-helper-seleccion-programacion-viatico/input-helper-seleccion-programacion-viatico.component';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\n\n@Component({\n  selector: 'app-detalle-solicitud-viatico',\n  standalone: true,\n  imports: [\n    FormsModule, \n    CalendarModule, \n    InputTextareaModule, \n    InputTextModule, \n    RadioButtonModule, \n    TooltipModule, \n    DropdownModule, \n    InputNumberModule, \n    TableModule, TemplateTablaVaciaComponent,\n\tNgFor,\n\tInputHelperUnidadComponent,\n\tInputHelperSeleccionZonaCentroComponent,\n\tInputHelperSeleccionZonaEconomicaComponent,\n\tInputHelperUbicacionComponent,\n\tInputHelperSeleccionEntidadViaticoComponent,\n\tInputHelperSeleccionProgramacionViaticoComponent,\n\tInputHelperEmpleadoBotonComponent,\n\tEjecucionEncuestaComponent,\n\tTranslateModule,\n\tProgressBarModule,\n\tViaticosPipe,\n\tDatePipe,\n],\n  templateUrl: './detalle-solicitud-viatico.component.html',\n  styleUrl: './detalle-solicitud-viatico.component.scss'\n})\nexport class DetalleSolicitudViaticoComponent implements OnInit{\n\n  public fechaElaboracion: Date;\n  public viatico: ViaticoModel;\n  public destinoViatico: CodigoBaseViaticoModel;\n  public filtroFormulario: DatoorganizacionModel;\n  public viaticoParticipaIngresar: ViaticoParticipaModel;\n  public viaticoParticipaEliminar: ViaticoParticipaModel;\n  public entidadVigiladaIngresar: ViaticoEntidadModel;\n  public entidadVigiladaEliminar: ViaticoEntidadModel;\n  public entidadNoVigiladaIngresar: ViaticoEntidadModel;\n  public entidadNoVigiladaEliminar: ViaticoEntidadModel;\n  public costoIngresar: SolicitudViaticoCostoWrapper;\n  public costoEliminar: SolicitudViaticoCostoWrapper;\n  public anexoIngresar: ArchivoModel;\n  public anexoEliminar: ArchivoModel;\n  public complementariaIngresar: ViaticoComplementariaModel;\n  public complementariaEliminar: ViaticoComplementariaModel;\n  public horaInicialIngresar: HoraWrapper;\n  public horaFinalIngresar: HoraWrapper;\n  public nuevo: boolean;\n  public encuesta: boolean;\n  public listadoViatico: boolean;\n  public listaCampos: SolicitudViaticoWrapper[];\n  public lista: DatoorganizacionModel[] = [];\n  public listaProgramacion: ViaticoParticipaModel[];\n  public listaProgramacionAEliminar: ViaticoParticipaModel[];\n  public listaCamposProgramacion: DatoorganizacionModel[];\n  public listaEntidadVigilada: ViaticoEntidadModel[];\n  public listaEntidadNoVigilada: ViaticoEntidadModel[];\n  public listaEntidadAEliminar: ViaticoEntidadModel[];\n  public listaCosto: SolicitudViaticoCostoWrapper[];\n  public listaCostoAEliminar: SolicitudViaticoCostoWrapper[];\n  public listaCamposCosto: DatoorganizacionModel[];\n  public listaAnexos: ArchivoModel[];\n  public listaAnexosAEliminar: ArchivoModel[];\n  public listaViaticoComplementaria: ViaticoComplementariaModel[];\n  public listaViaticoComplementariaAEliminar: ViaticoComplementariaModel[];\n\n  public listadoComision: any[] = [];\n  public listadoAmbito: any[] = [];\n  public listaSolicita: any[] = [];\n  public listaOrdenador: any[] = [];\n  public listaTipoCosto: any[] = [];\n  public listaAerolinea: any[] = [];\n  public listaDestino: any[] = [];\n  public listaSiNo: any[] = [\n\t{label: 'Si', value: 'S'},\n\t{label: 'No', value: 'N'}\n  ];\n\n  public mapaEstado: any[];\n  //FIXME: pendiente ajustar humana encuesta\n  //public listadoCostoViaticos: ListadoCostoViaticos;\n\n  public vistaVisualizar: string;\n  public mostrar: boolean;\n  public cedula: number;\n  public empresa: number;\n  public validando: boolean;\n\n  //Lista entidad no vigilada\n  public clickGuardarEntidadNoVigilada: boolean = false;\n  public nuevoEntidadNoVigilada: boolean = false;\n  //Lista entidad vigilada\n  public clickGuardarEntidadVigilada: boolean = false;\n  public nuevoEntidadVigilada: boolean = false;\n  //Lista complementaria\n  public clickGuardarComplementaria: boolean = false;\n  public nuevoComplementaria: boolean = false;\n  //Costos\n  public clickGuardarCostos: boolean = false;\n  public nuevoCostos: boolean = false;\n  //Programacion\n  public clickGuardarProgramacion: boolean = false;\n  public nuevoProgramacion: boolean = false;\n  //Anexo\n  public clickGuardarAnexo: boolean = false;\n  public nuevoAnexo: boolean = false;\n  \n  @ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n  @ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n  @Output() public regresar = new EventEmitter();\n\n  constructor(private viaticosPipe: ViaticosPipe,\n              private generalService: GeneralService,\n              public utilsService: UtilsService,\n              private notificacionesService: ToastService,\n              private datoorganizacionService: datoOrganizacionService,\n              private authService: AuthService,\n              private generalPipe: GeneralPipe,\n              private saraAplicacionService: SaraAplicacionService,\n              private empleadoService: EmpleadoService,\n\t\t\t  private viaticoService: ViaticosService,\n\t\t\t  private selectListViaticos: SelectListViaticos,\n              public sanitizer: DomSanitizer,\n  ) {}\n\n  ngOnInit(): void {\n  }\n\n  private async inicializar(){\n\t\tthis.vistaVisualizar = (null);\n\t\tthis.filtroFormulario = new DatoorganizacionModel();\n\t\tthis.destinoViatico = new CodigoBaseViaticoModel();\n\t\tthis.listaCampos = [];\n\t\tthis.viatico = new ViaticoModel();\n\t\tthis.fechaElaboracion = new Date();\n\t\tthis.mapaEstado = this.viaticosPipe.LISTAESTADO;\n\t\tthis.listaProgramacion = [];\n\t\tthis.listaProgramacionAEliminar = [];\n\t\tthis.listaCamposProgramacion = [];\n\t\tthis.listaEntidadVigilada = [];\n\t\tthis.listaEntidadNoVigilada = [];\n\t\tthis.listaEntidadAEliminar = [];\n\t\tthis.listaCosto = [];\n\t\tthis.listaCostoAEliminar = [];\n\t\tthis.listaCamposCosto = [];\n\t\tthis.listaAnexos = [];\n\t\tthis.listaAnexosAEliminar = [];\n\t\tthis.listaViaticoComplementaria = [];\n\t\tthis.listaViaticoComplementariaAEliminar = [];\n\t\tthis.viaticoParticipaIngresar = new ViaticoParticipaModel();\n\t\tthis.entidadVigiladaIngresar = new ViaticoEntidadModel();\n\t\tthis.entidadNoVigiladaIngresar = new ViaticoEntidadModel();\n\t\tthis.costoIngresar = new SolicitudViaticoCostoWrapper(new ViaticoPartMedioModel(), []);\n\t\tthis.anexoIngresar = new ArchivoModel();\n\t\tthis.complementariaIngresar = new ViaticoComplementariaModel();\n\t\tthis.horaFinalIngresar = new HoraWrapper(0, 0);\n\t\tthis.horaInicialIngresar = new HoraWrapper(0, 0);\n    this.cedula = await this.saraAplicacionService.getCedula();\n    this.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t}\n\n\tpublic async nuevoViatico(llaveDestinoViatico: string){\n\t\tawait this.inicializar();\n\t\tthis.nuevo = true;\n\t\tthis.encuesta = false;\n\t\tthis.destinoViatico = new CodigoBaseViaticoModel();\n\t\tthis.destinoViatico.llaveTabla = llaveDestinoViatico;\n\t\tthis.destinoViatico = await this.generalService.queryForObject(new GeneralModel('CodigoBaseViaticoDTO', null, false, this.destinoViatico)).toPromise();\n\t\tthis.lista = await this.datoorganizacionService.cargarCamposFormulario(this.destinoViatico.llaveTabla, 'TB', this.viaticosPipe.TABLA_VIATICO_DESTINO);\n\t\tawait this.inicializarViatico();\n\t\tthis.cargarFormulario();\n\t\tthis.cargarListas();\n\t\tthis.cargarValoresListados();\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1500);\n\t\tthis.utilsService.resizeWindowIFrame();\n\t}\n\n\tpublic async verSolicitud(viaticoDTO: ViaticoModel) {\n\t\tvar destino = new CodigoBaseViaticoModel();\n\t\tdestino.llaveTabla = viaticoDTO.destino;\n\t\tdestino.descripcion = viaticoDTO.destino_viaVal;\n\t\t\n\t\tthis.destinoViatico = destino;\n\t\tthis.viatico = viaticoDTO;\n\t\tthis.viatico = this.viaticoService.formatearViatico(this.viatico);\n\t\tthis.listadoViatico = true;\n\t\tthis.encuesta = true;\n\t\t//this.setReglaNavegacion(this.viaticosPipe.REGLA_REGRESO_LISTADO_VIATICO);\n\t\tthis.lista = await this.datoorganizacionService.cargarCamposFormulario(this.destinoViatico.llaveTabla, 'TB', this.viaticosPipe.TABLA_VIATICO_DESTINO);\n\t\tthis.cargarFormulario();\n\t\tthis.cargarListas();\n\t\tthis.cargarValoresListas();\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1500);\n\t\tthis.utilsService.resizeWindowIFrame();\n\t}\n\n\n\tprivate async inicializarViatico() {\n\t\tthis.viatico = new ViaticoModel();\n\t\tif ( this.saraAplicacionService.isCliente() && this.cedula !=0) {\n\t\t\tthis.viatico.elabora = this.cedula;\n\t\t\tvar listaEmpleado: EmpleadoModel[] = await this.empleadoService.obtenerContratosPorCedulaActivo(this.empresa, this.cedula);\n\t\t\tif ( listaEmpleado.length>0) {\n\t\t\t\tthis.viatico.unidadSolicita = listaEmpleado[0].unidadOcupa;\n\t\t\t\tthis.viatico.nombreElabora = listaEmpleado[0].nombreCompleto;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.viatico.elabora = (0);\n\t\t}\n\t\tthis.viatico.estado = this.viaticosPipe.SOLICITADO;\n    \tthis.viatico.destino = this.destinoViatico.llaveTabla;\n\t}\n\t\n\t/*@AnotacionMetodoWorkFlow(descripcion = 'Registros Tipo de costo')\n\tpublic registroCosteoAereo(ActividadFuenteTareaDTO actividadFuenteTareaDTO, @AnotacionParametro(codigo = 'tipoCosto', descripcion = 'Alterno Tipo Costo') String tipoCosto) {\n\t\tlistadoCostoViaticos = new ListadoCostoViaticos(getDataSource(),this.generalService,viaticoSvc, this.datoorganizacionService);\n\t\tlistadoCostoViaticos.traerListado(actividadFuenteTareaDTO.getLlaveTablaBase(), actividadFuenteTareaDTO.llaveTabla, tipoCosto);\n\t\tthis.vistaVisualizar = ('costoEspecifico');\n\t}\n\t\n\tpublic guardarListadoCosto() {\n\t\t\tif ( listadoCostoViaticos.guardarCostos() )  {\n\t\t\t\treturn;\n\t\t\t}\n\t        ParametroInicioBPM parametroInicioBPM=new ParametroInicioBPM(WorkflowCons.PROCESOVIATICO,null);\n\t\t\tprocesoSvc.actualizarActividadInterfaz(parametroInicioBPM,listadoCostoViaticos.getLlaveActividad() ,true);\n\t\t\tthis.notificacionesService.showInfo('Proceso termino normalmente');\n\t\t\tthis.regresarListadoCosto();\n\t}\n\t\n\tpublic regresarListadoCosto() {\n\t\tString url = getUrl();\n\t\tif (url.endsWith('actividades.xhtml') || url.endsWith('uiActividades.xhtml')) {\n\t\t\tgetBean(ActividadesBean.class).vistaVisualizar = (null);\n\t\t\treturn;\n\t\t}\n\t}*/\n\t\n\n\tpublic async cargarListas() {\n\t\tvar datoorganizacionDTO = new DatoorganizacionModel();\n\t\tdatoorganizacionDTO.tipo = 'TB';\n\t\tdatoorganizacionDTO.tabla = this.viaticosPipe.TABLA_VIATICO_PROGRAMACION;\n\t\tdatoorganizacionDTO.estilo = this.generalPipe.SI;\n\t\tthis.listaCamposProgramacion = await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoorganizacionDTO)).toPromise();\n\t}\n\t\n\tpublic async cargar(viatico: ViaticoModel) {\n\t\tawait this.inicializar();\n\t\tthis.viatico = viatico;\n\t\tthis.viatico = this.viaticoService.formatearViatico(this.viatico);\n\t\tthis.nuevo = false;\n\t\tthis.encuesta = false;\n\t\tthis.destinoViatico = new CodigoBaseViaticoModel();\n\t\tthis.destinoViatico.llaveTabla = (viatico.destino);\n\t\tthis.destinoViatico = await this.generalService.queryForObject(new GeneralModel('CodigoBaseViaticoDTO', null, false, this.destinoViatico)).toPromise();\n\t\tthis.lista = await this.datoorganizacionService.cargarCamposFormulario(this.destinoViatico.llaveTabla, 'TB', this.viaticosPipe.TABLA_VIATICO_DESTINO);\n\t\tthis.cargarFormulario();\n\t\tthis.cargarListas();\n\t\tthis.cargarValoresListas();\n\t\tthis.mostrar = true;\n\t\tawait this.utilsService.sleep(1500);\n\t\tthis.utilsService.resizeWindowIFrame();;\n\t}\n\t\n\tpublic cargarFormulario() {\n\t\tthis.viaticoService.cargarFormularioSolicitud({viatico: this.viatico, lista: this.lista}).subscribe(data => {\n\t\t\tthis.listaCampos = data;\n\t\t\tthis.utilsService.sleep(1500).then(data => {\n\t\t\t\tthis.utilsService.resizeWindowIFrame();\n\t\t\t})\n\t\t})\n\t}\n\t\n\tpublic cargarValoresListas() {\n\t\tthis.viaticoService.cargarValoresListasSolicitud({llaveViatico: this.viatico.llaveTabla}).subscribe(data => {\n\t\t\tthis.listaEntidadNoVigilada = data.listaEntidadNoVigilada;\n\t\t\tthis.listaEntidadVigilada = data.listaEntidadVigilada;\n\t\t\tthis.listaProgramacion = data.listaProgramacion;\n\t\t\tthis.listaCosto = data.listaCosto;\n\t\t\tthis.listaAnexos = data.listaAnexos;\n\t\t\tthis.listaViaticoComplementaria = data.listaViaticoComplementaria;\n\t\t});\n\t\tthis.cargarValoresListados();\n\t}\n    \n\tcargarValoresListados() {\n\t\tthis.selectListViaticos.getListadoComision().then(data => {\n\t\t\tthis.listadoComision = data;\n\t\t});\n\t\tthis.selectListViaticos.getListadoAmbito().then(data => {\n\t\t\tthis.listadoAmbito = data;\n\t\t});\n\t\tthis.selectListViaticos.getListaSolicita().then(data => {\n\t\t\tthis.listaSolicita = data;\n\t\t});\n\t\tthis.selectListViaticos.getListaOrdenador().then(data => {\n\t\t\tthis.listaOrdenador = data;\n\t\t});\n\t\tthis.selectListViaticos.getListadoTipoCosto(false).then(data => {\n\t\t\tthis.listaTipoCosto = data;\n\t\t});\n\t\tthis.selectListViaticos.getListadoAerolinea().then(data => {\n\t\t\tthis.listaAerolinea = data;\n\t\t});\n\t\tthis.selectListViaticos.getListadoDestino().then(data => {\n\t\t\tthis.listaDestino = data;\n\t\t});\n\t}\n\t\n\tpublic regresarAction() {\n\t\tthis.regresar.emit();\n\t}\n\t\n\tpublic validarParticipante() {\n\t\tvar v: boolean = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.viaticoParticipaIngresar.contrato)\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.viaticoParticipaIngresar.fechaInicial)\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.viaticoParticipaIngresar.fechaFinal)\n\t\tfor (let campo of this.listaCamposProgramacion) {\n\t\t\tif(this.generalPipe.SI == (campo.requerido)) {\n\t\t\t\tvar value = this.viaticoParticipaIngresar[campo.campo];\n\t\t\t\tv = v && this.utilsService.validarCampoObligatorio(value);\n\t\t\t}\n\t\t}\n\t\treturn v;\n\t}\n\t\n\tpublic eliminarParticipante(event, bean) {\n\t\t//this.listaProgramacion.remove(this.viaticoParticipaEliminar);\n\t\t//se agrega participante a eliminar\n\t\tthis.viaticoParticipaEliminar = bean;\n\t\tthis.listaProgramacion = this.eliminarObjetoDeArray(this.listaProgramacion, this.viaticoParticipaEliminar);\n\t\tthis.listaProgramacionAEliminar.push(this.viaticoParticipaEliminar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\tthis.viaticoParticipaEliminar = new ViaticoParticipaModel();\n\t}\n\t\n\tpublic adicionarParticipante() {\n\t\tthis.clickGuardarProgramacion = true;\n\t\tif (!this.validarParticipante()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarProgramacion = false;\n\t\tthis.listaProgramacion.push(this.viaticoParticipaIngresar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tthis.viaticoParticipaIngresar = new ViaticoParticipaModel();\n\t\tthis.horaInicialIngresar = new HoraWrapper(0, 0);\n\t\tthis.horaFinalIngresar = new HoraWrapper(0, 0);\n\t\tthis.nuevoProgramacion = false;\n\t}\n\t\n\tpublic validarCosto() {\n\t\tvar v: boolean = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.costoIngresar.costo.contrato);\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.costoIngresar.costo.tipoCosto);\n\t\t\n\t\tfor (var j = 0; j < this.listaCamposCosto.length; j ++ ) {\n\t\t\tif(this.generalPipe.SI == (this.listaCamposCosto[j].requerido)) {\n\t\t\t\tvar value = this.costoIngresar.costo[this.listaCamposCosto[j].campo];\n\t\t\t\tv = v && this.utilsService.validarCampoObligatorio(value);\n\t\t\t}\n\t\t}\n\t\treturn v;\n\t}\n\t\n\tpublic eliminarCosto(event, bean) {\n\t\t//this.listaCosto.remove(this.costoEliminar);\n\t\t//se agregan costos a eliminar\n\t\tthis.costoEliminar = bean;\n\t\tthis.listaCosto = this.eliminarObjetoDeArray(this.listaCosto, this.costoEliminar);\n\t\tthis.listaCostoAEliminar.push(this.costoEliminar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\tthis.costoEliminar = new SolicitudViaticoCostoWrapper(new ViaticoPartMedioModel(), []);\n\t}\n\t\n\tpublic async adicionarCosto() {\n\t\tthis.clickGuardarCostos = true;\n\t\tif (!this.validarCosto()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\t\n\t\t}\n\t\tthis.clickGuardarCostos = false;\n\t\tthis.costoIngresar.listaCampos = await this.cargarListaTipoCosto(this.costoIngresar.costo.tipoCosto);\n\t\tthis.listaCosto.push(this.costoIngresar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tthis.costoIngresar = new SolicitudViaticoCostoWrapper(new ViaticoPartMedioModel(), []);\n\t\tthis.listaCamposCosto = [];\n\t\tthis.nuevoCostos = false;\n\t}\n\t\n\tpublic validarEntidadNoVigilada() {\n\t\tvar v: boolean = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.entidadNoVigiladaIngresar.entidadNoVigilada);\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.entidadNoVigiladaIngresar.fechaInicial);\n\t\treturn v;\n\t}\n\t\n\tpublic eliminarEntidadNoVigilada(event, bean) {\n\t\tthis.entidadNoVigiladaEliminar = bean;\n\t\tthis.listaEntidadNoVigilada = this.eliminarObjetoDeArray(this.listaEntidadNoVigilada, this.entidadNoVigiladaEliminar);\n\t\t//se agregan entidades a eliminar\n\t\tthis.listaEntidadAEliminar.push(this.entidadNoVigiladaEliminar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\tthis.entidadNoVigiladaEliminar = new ViaticoEntidadModel();\n\t}\n\n\tpublic adicionarEntidadNoVigilada() {\n\t\tthis.clickGuardarEntidadNoVigilada = true;\n\t\tif (!this.validarEntidadNoVigilada()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarEntidadNoVigilada = false;\n\t\tthis.entidadNoVigiladaIngresar.tipoEntidad = this.viaticosPipe.ENTIDAD_NO_VIGILADA;\n\t\tthis.listaEntidadNoVigilada.push(this.entidadNoVigiladaIngresar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tthis.entidadNoVigiladaIngresar = new ViaticoEntidadModel();\n\t\tthis.nuevoEntidadNoVigilada = false;\n\t}\n\t\n\tpublic validarEntidadVigilada() {\n\t\tvar v: boolean = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.entidadVigiladaIngresar.entidad);\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.entidadVigiladaIngresar.fechaInicial);\n\t\treturn v;\n\t}\n\t\n\tpublic eliminarEntidadVigilada(event, bean) {\n\t\t//this.listaEntidadVigilada.remove(this.entidadVigiladaEliminar);\n\t\t//se agregan entidades a eliminar\n\t\tthis.entidadVigiladaEliminar = bean;\n\t\tthis.listaEntidadVigilada = this.eliminarObjetoDeArray(this.listaEntidadVigilada, this.entidadVigiladaEliminar);\n\t\tthis.listaEntidadAEliminar.push(this.entidadVigiladaEliminar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\tthis.entidadVigiladaEliminar = new ViaticoEntidadModel();\n\t}\n\t\n\tpublic adicionarEntidadVigilada() {\n\t\tthis.clickGuardarEntidadVigilada = true;\n\t\tif (!this.validarEntidadVigilada()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarEntidadVigilada = false;\n\t\tthis.entidadVigiladaIngresar.tipoEntidad = this.viaticosPipe.ENTIDAD_VIGILADA;\n\t\tthis.listaEntidadVigilada.push(this.entidadVigiladaIngresar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tthis.entidadVigiladaIngresar = new ViaticoEntidadModel();\n\t\tthis.nuevoEntidadVigilada = false;\n\t}\n\t\n\tpublic validarComplementaria() {\n\t\tvar v: boolean = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.complementariaIngresar.nombreApellido);\n\t\treturn v;\n\t}\n\t\n\tpublic eliminarComplementaria(event, bean) {\n\t\t//this.listaViaticoComplementaria.remove(this.complementariaEliminar);\n\t\t//se agregan entidades a eliminar\n\t\tthis.complementariaEliminar = bean;\n\t\tthis.listaViaticoComplementaria = this.eliminarObjetoDeArray(this.listaViaticoComplementaria, this.complementariaEliminar);\n\t\tthis.listaViaticoComplementariaAEliminar.push(this.complementariaEliminar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\tthis.complementariaEliminar = new ViaticoComplementariaModel();\n\t}\n\t\n\tpublic adicionarComplementaria() {\n\t\tthis.clickGuardarComplementaria = true;\n\t\tif (!this.validarComplementaria()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarComplementaria = false;\n\t\tthis.listaViaticoComplementaria.push(this.complementariaIngresar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tthis.complementariaIngresar = new ViaticoComplementariaModel();\n\t\tthis.nuevoComplementaria = false;\n\n\t}\n\t\n\tpublic validarSolicitud() {\n\t\tconsole.log('validarSolicitud')\n\t\tvar v: boolean = true;\n\t\tfor (var i = 0; i < this.listaCampos.length; i++) {\n\t\t\tvar id = i;\n\t\t\tvar datoOrganizacion = this.listaCampos[i].campo;\n\t\t\tif (this.viaticosPipe.TABLA_VIATICO_DESTINO == datoOrganizacion.tabla) {\n\t\t\t\tif (this.viaticosPipe.CAMPO == datoOrganizacion.estilo && this.generalPipe.SI == datoOrganizacion.requerido) {\n\t\t\t\t\tvar value = this.viatico[datoOrganizacion.campo.charAt(0).toLowerCase() + datoOrganizacion.campo.slice(1)];\n\t\t\t\t\tconsole.log(value)\n\t\t\t\t\tconsole.log(this.listaCampos[i].campo)\n\t\t\t\t\tv = v && this.utilsService.validarCampoObligatorio(value);\n\t\t\t\t} else if (this.viaticosPipe.TABLA == (datoOrganizacion.estilo) && this.generalPipe.SI == (datoOrganizacion.requerido)) {\n\t\t\t\t\tif (this.viaticosPipe.TABLA_PROGRAMACION == (datoOrganizacion.campo)) {\n\t\t\t\t\t\tif (this.listaProgramacion.length == 0) {\n\t\t\t\t\t\t\tv = false;\n\t\t\t\t\t\t\tthis.notificacionesService.showWarning('Debe ingresar al menos un registro');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (this.viaticosPipe.TABLA_ENTIDADVIGILADA == (datoOrganizacion.campo)) {\n\t\t\t\t\t\tif(this.listaEntidadVigilada.length == 0) {\n\t\t\t\t\t\t\tv = false;\n\t\t\t\t\t\t\tthis.notificacionesService.showWarning('Debe ingresar al menos un registro');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (this.viaticosPipe.TABLA_ENTIDADOTRAS == (datoOrganizacion.campo)) {\n\t\t\t\t\t\tif(this.listaEntidadVigilada.length == 0) {\n\t\t\t\t\t\t\tv = false;\n\t\t\t\t\t\t\tthis.notificacionesService.showWarning('Debe ingresar al menos un registro');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (this.viaticosPipe.TABLA_COSTO == (datoOrganizacion.campo)) {\n\t\t\t\t\t\tif(this.listaCosto.length == 0) {\n\t\t\t\t\t\t\tv = false;\n\t\t\t\t\t\t\tthis.notificacionesService.showWarning('Debe ingresar al menos un registro');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (this.viaticosPipe.TABLA_COMPLEMENTARIAVIATICO == (datoOrganizacion.campo)) {\n\t\t\t\t\t\tif(this.listaViaticoComplementaria.length == 0) {\n\t\t\t\t\t\t\tv = false;\n\t\t\t\t\t\t\tthis.notificacionesService.showWarning('Debe ingresar al menos un registro');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn v;\n\t}\n\t\n\t\n\tpublic guardar() {\n\t\tthis.validando = true;\n\t\tthis.utilsService.resizeWindowIFrame();\n\t\tif (!this.validarSolicitud()) {\n\t\t\tthis.notificacionesService.showInfo('No se han diligenciado todos los campos obligatorios (*)');\n\t\t\treturn;\n\t\t}\n\t\tthis.validando = false;\n\t\t\n\t\tthis.viaticoService.guardarSolicitudViatico({\n\t\t\tnuevo: this.nuevo,\n\t\t\tviatico: this.viatico,\n\t\t\tcedula: this.cedula,\n\t\t\tlistaProgramacionAEliminar: this.listaProgramacionAEliminar,\n\t\t\tlistaProgramacion: this.listaProgramacion,\n\t\t\tlistaEntidadVigilada: this.listaEntidadVigilada,\n\t\t\tlistaEntidadNoVigilada: this.listaEntidadNoVigilada,\n\t\t\tlistaEntidadAEliminar: this.listaEntidadAEliminar,\n\t\t\tlistaCosto: this.listaCosto,\n\t\t\tlistaCostoAEliminar: this.listaCostoAEliminar,\n\t\t\tlistaAnexos: this.listaAnexos,\n\t\t\tlistaAnexosAEliminar: this.listaAnexosAEliminar,\n\t\t\tlistaViaticoComplementaria: this.listaViaticoComplementaria,\n\t\t\tlistaViaticoComplementariaAEliminar: this.listaViaticoComplementariaAEliminar,\n\t\t}).subscribe(data => {\n\t\t\tthis.regresarAction();\n\t\t\tthis.notificacionesService.showInfo('Se ha enviado la solicitud de viatico correctamente');\n\t\t})\n\t}\n\t\n\tpublic guardarTemporal() {\n\t\tthis.viaticoService.guardarSolicitudViatico({\n\t\t\tnuevo: this.nuevo,\n\t\t\tviatico: this.viatico,\n\t\t\tcedula: this.cedula,\n\t\t\tlistaProgramacionAEliminar: this.listaProgramacionAEliminar,\n\t\t\tlistaProgramacion: this.listaProgramacion,\n\t\t\tlistaEntidadVigilada: this.listaEntidadVigilada,\n\t\t\tlistaEntidadNoVigilada: this.listaEntidadNoVigilada,\n\t\t\tlistaEntidadAEliminar: this.listaEntidadAEliminar,\n\t\t\tlistaCosto: this.listaCosto,\n\t\t\tlistaCostoAEliminar: this.listaCostoAEliminar,\n\t\t\tlistaAnexos: this.listaAnexos,\n\t\t\tlistaAnexosAEliminar: this.listaAnexosAEliminar,\n\t\t\tlistaViaticoComplementaria: this.listaViaticoComplementaria,\n\t\t\tlistaViaticoComplementariaAEliminar: this.listaViaticoComplementariaAEliminar,\n\t\t}).subscribe(data => {\n\t\t\tthis.regresarAction();\n\t\t\tthis.notificacionesService.showInfo('Se ha guardado temporalmente la solicitud');\n\t\t})\n\t}\n\t\n\t \n\tprivate validarCarga() {\n\t\tvar validar = true;\n\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.anexoIngresar.descripcion);\n\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.anexoIngresar.archivoorigen);\n\t\treturn validar;\n\t}\n\t\n\tpublic adicionarAnexo() {\n\t\tthis.clickGuardarAnexo = true;\n\t\tif (!this.validarCarga()) {\n\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\treturn;\n\t\t}\n\t\tthis.clickGuardarAnexo = false;\n\t\tthis.anexoIngresar.nombreTabla = 'VIATICO_VIA';\n\t\tthis.anexoIngresar.llaveTablaArchivo = this.viatico.llaveTabla;\n//\t\tString ruta = EncriptadorBasico.encriptar(FacesUtils\n//\t\t\t\t.setParametroRutaSession(getPropiedadAplicativo(PropiedadesAplicativoDTO.RUTA_ANEXOSHOJAVIDA)\n//\t\t\t\t\t\t+ this.anexoIngresar.llaveTabla + '.' + this.generalPipe.ARCHIVO_PDF));\n\t\t//this.anexoIngresar.archivoorigenencriptado = ruta;\n\t\tthis.listaAnexos.push(this.anexoIngresar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\tthis.anexoIngresar = new ArchivoModel();\n\t\tthis.nuevoAnexo = false;\n\t}\n\t\n\tpublic eliminarAnexo(event, bean) {\n\t\t//this.listaAnexos.remove(this.anexoEliminar);\n\t\t//se agrega anexo a eliminar en otra lista para luego eliminar en bd\n\t\tthis.anexoEliminar = bean;\n\t\tthis.listaAnexos = this.eliminarObjetoDeArray(this.listaAnexos, this.anexoEliminar);\n\t\tthis.listaAnexosAEliminar.push(this.anexoEliminar);\n\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\tthis.anexoEliminar = new ArchivoModel();\n\t}\n\t\n\tpublic async verEncuesta(llaveActividad: string,  llaveEncuesta: string) {\n\t\tawait this.inicializar();\n\t\tvar actividad = new ActividadFuenteTareaModel();\n\t\tactividad.llaveTabla = (llaveActividad);\n\t\tactividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n\t\tvar viaticoDTO = new ViaticoModel();\n\t\tviaticoDTO.llaveTabla = actividad.llaveTablaBase;\n\t\tviaticoDTO = await this.generalService.queryForObject(new GeneralModel('ViaticoDTO', null, false, viaticoDTO)).toPromise();\n\t\tif ( viaticoDTO == null ) { \n\t\t\tthis.notificacionesService.showError('Objeto no existe');\n\t\t\treturn;\n\t\t}\n\t\tthis.viatico = viaticoDTO;\n\t\tthis.mostrar = true;\n\t\tthis.encuesta = true;\n\t\tawait this.utilsService.sleep(1500);\n\t\t//bean.setReglaNavegacion(getReglaNavegacion());\n\t\tthis.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, this.viatico);\n\t\t\n\t\tthis.destinoViatico = new CodigoBaseViaticoModel();\n\t\tthis.destinoViatico.llaveTabla = (this.viatico.destino);\n\t\tthis.destinoViatico = await this.generalService.queryForObject(new GeneralModel('CodigoBaseViaticoDTO', null, false, this.destinoViatico)).toPromise();\n\t\tthis.lista = await this.datoorganizacionService.cargarCamposFormulario(this.destinoViatico.llaveTabla, 'TB', this.viaticosPipe.TABLA_VIATICO_DESTINO);\n\t\tthis.cargarFormulario();\n\t\tthis.cargarListas();\n\t\tthis.cargarValoresListas();\n\t}\n\t\n\tpublic async cambiarTipoCosto(vce, bean) {\n\t\tif (vce == null) {\n\t\t\tthis.listaCamposCosto = [];\n\t\t\treturn;\n\t\t}\n\t\tvar costo = new TipoCostoModel();\n\t\tcosto.tipoCosto = vce.value;\n\t\tcosto = await this.generalService.queryForObject(new GeneralModel('TipoCostoDTO', null, false, costo)).toPromise();\n\t\tif (costo != null && costo.tipoCosto != null) {\n\t\t\tbean.descripcionTipoCosto = costo.descripcion;\n\t\t\tthis.listaCamposCosto = await this.cargarListaTipoCosto(costo.tipoCosto);\n\t\t\treturn;\n\t\t}else{\n\t\t\tthis.listaCamposCosto = [];\n\t\t}\n\t}\n\n\tprivate async cargarListaTipoCosto(tipoCosto: string) {\n\t\tvar datoorganizacionDTO = new DatoorganizacionModel();\n\t\tdatoorganizacionDTO.tipo = 'TB';\n\t\tdatoorganizacionDTO.tabla = this.viaticosPipe.TABLA_VIATICO_COSTOS;\n\t\tdatoorganizacionDTO.llaveBase = this.utilsService.rightpad(tipoCosto, 32, ' ');\n\t\tdatoorganizacionDTO.estilo = this.generalPipe.SI;\n\t\treturn await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false, datoorganizacionDTO)).toPromise();\n\t}\n\t\n\t/*\n\t * Popups \n\t */\n\tpublic setUnidad(unidadUsu) {\n\t\tif (unidadUsu.unidad != null) {\n\t\t\tthis.viatico.unidadSolicita = unidadUsu.unidad;\n\t\t\tthis.viatico.nombreUnidad = unidadUsu.nombreUnidad;\n\t\t\tthis.cargarFormulario();\n\t\t}\n\t}\n\t\n\tpublic setEntidadVigilada(vEntidadViaticoDTO: VEntidadViaticoModel) {\n\t\tif (vEntidadViaticoDTO != null) {\n\t\t\tthis.entidadVigiladaIngresar.nombreEntidad = vEntidadViaticoDTO.descripcion;\n\t\t\tthis.entidadVigiladaIngresar.entidad = vEntidadViaticoDTO.codigo;\n\t\t}\n\t}\n\t\n\tpublic setZonaEconomicaValor(zonaEconomica: ZonaEconomicaModel) {\n\t\tif (zonaEconomica) {\n\t\t\tthis.viatico.zonaEconomica = zonaEconomica.zonaEconomica;\n\t\t\tthis.viatico.nombreZona = zonaEconomica.descripcion;\n\t\t\tthis.cargarFormulario();\n\t\t\tthis.utilsService.resizeWindowIFrame();\n\t\t}\n\t}\n\t\n\tpublic setZonaCentro(centroCostoDTO: CentroCostoModel) {\n\t\tif (centroCostoDTO != null) {\n\t\t\tthis.viatico.zonaEconomica = centroCostoDTO.zonaEconomica;\n\t\t\tthis.viatico.nombreZona = centroCostoDTO.descripcionZona;\n\t\t\tthis.viatico.centroCosto = centroCostoDTO.centroCosto;\n\t\t\tthis.viatico.nombreCentro = centroCostoDTO.descripcion;\n\t\t\tthis.cargarFormulario();\n\t\t\tthis.utilsService.resizeWindowIFrame();\n\t\t}\n\t}\n\t\n\tpublic async setParticipante(empleado: EmpleadoModel) {\n\t\tconsole.log(empleado)\n\t\tthis.viaticoParticipaIngresar.contrato = empleado.contrato;\n\t\tthis.viaticoParticipaIngresar.nombreApellido = empleado.nombreCompleto;\n\t\tthis.viaticoParticipaIngresar.empresa = empleado.empresa;\n\t\tif (this.utilsService.isBlank(empleado.cargoFuncion) || empleado.cargoFuncion.trim() == '.') {\n\t\t\tthis.viaticoParticipaIngresar.nombreCargo = empleado.cargoNombreTitular;\n\t\t} else {\n\t\t\tthis.viaticoParticipaIngresar.nombreCargo = empleado.cargoNombreEncargo;\n\t\t}\n\t\tvar dto = new HojaVidaModel();\n\t\tdto.identifica = empleado.cedula;\n\t\tdto = await this.generalService.queryForObject(new GeneralModel('HojaVidaDTO', null, false, dto)).toPromise();\n\t\tthis.viaticoParticipaIngresar.nroCelular = dto.nroCelular;\n\t}\n\n\tpublic setCargarArchivo(lista) {\n\t\tif ( lista == null) {\n\t\t\treturn;\n\t\t}\n\t\t//anexoIngresar.setArchivoorigen(lista[1]);\n\t}\n\t\n\tpublic setProgramacion(programacion: ViaticoParticipaModel) {\n\t\tthis.costoIngresar.costo.viatico = programacion.viatico;\n\t\tthis.costoIngresar.costo.contrato = programacion.contrato;\n\t\tthis.costoIngresar.costo.empresa = programacion.empresa;\n\t\tthis.costoIngresar.costo.nombreApellido = programacion.nombreApellido;\n\n\t}\n\t\n\tpublic setComplementaria(programacion: ViaticoParticipaModel) {\n\t\tthis.complementariaIngresar.viatico = programacion.viatico;\n\t\tthis.complementariaIngresar.contrato = programacion.contrato;\n\t\tthis.complementariaIngresar.empresa = programacion.empresa;\n\t\tthis.complementariaIngresar.nombreApellido = programacion.nombreApellido;\n\t}\n\t\n\tpublic setUbicacionGeografica(ubicacionGeograficaFiltroTablaDTO: UbicacionGeograficaFiltroTablaModel) {\n\t\tif (ubicacionGeograficaFiltroTablaDTO != null) {\n\t\t\tthis.viatico.ciudad = ubicacionGeograficaFiltroTablaDTO.llaveCiudad;\n      \t\tthis.viatico.nombreCiudad = ubicacionGeograficaFiltroTablaDTO.ciudad;\n\t\t\tthis.cargarFormulario();\n\t\t\tthis.utilsService.resizeWindowIFrame();\n\t\t}\n\t}\n\t\n\tpublic cambioRespuesta(ev) {\n\t\tthis.cargarFormulario();\n\t\t\n\t}\n\t \n\t//Si está parametrizado el centro de costo y zona economica, solo se ve el popup de centro costo\n\tpublic isHayCentroCosto() {\n\t\tfor (let campo of this.listaCampos) {\n\t\t\tif (this.viaticosPipe.CENTRO_COSTO_VAL == (campo.campo.campo)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\t\n\t/*\n\t * Retorna la descripcio del ambito, destino o tipo comision\n\t */\n\tpublic async getAmbitoDestinoTipoComision(llave: string) {\n\t\tvar descripcion = '';\n\t\tif (this.utilsService.isNotBlank(llave)) {\n\t\t\tvar ambito = new CodigoBaseViaticoModel(); \n\t\t\tambito.llaveTabla = (llave);\n\t\t\tambito = await this.generalService.queryForObject(new GeneralModel('CodigoBaseViaticoDTO', null, false, ambito)).toPromise();\n\t\t\tdescripcion = ambito != null ? ambito.descripcion : '';\n\t\t}\n\t\treturn descripcion;\n\t}\n\t\n\t/*\n\t * Retorna la descripcion del tipo de costo\n\t */\n\tpublic async getTipoCosto(llave: string) {\n\t\tvar descripcion = '';\n\t\tif (this.utilsService.isNotBlank(llave)) {\n\t\t\tvar tipoCosto = new TipoCostoModel(); \n\t\t\ttipoCosto.tipoCosto = llave;\n\t\t\ttipoCosto = await this.generalService.queryForObject(new GeneralModel('TipoCostoDTO', null, false, tipoCosto)).toPromise();\n\t\t\tdescripcion = tipoCosto != null ? tipoCosto.descripcion : '';\n\t\t}\n\t\treturn descripcion;\n\t}\n\t\n\t/**\n\t * Retorna la descripcion de la aerolinea \n\t * @param llave\n\t * @return descripcion aerolinea\n\t */\n\t\n\tpublic async getAerolinea(llave: string) {\n\t\tvar descripcion = '';\n\t\tif (this.utilsService.isNotBlank(llave)) {\n\t\t\tvar aerolinea = new MedioAudioVisualModel();\n\t\t\taerolinea.llaveTabla = (llave);\n\t\t\taerolinea = await this.generalService.queryForObject(new GeneralModel('MedioAudioVisualDTO', null, false, aerolinea)).toPromise();\n\t\t\tdescripcion = aerolinea != null ? aerolinea.descripcion : '';\n\t\t}\n\t\treturn descripcion;\n\t}\n\t\n\t/*\n\t * Valida si un campo de una tabla es tipo fecha\n\t */ \n\t\n\tpublic isFecha(texto: string) {\n\t\treturn texto.includes('fecha');\n\t}\n\n  \tsanitizeHtml(html: string) {\n\t\tif (!html) {\n    \t\treturn '';\n\t\t}\n\t\treturn this.sanitizer.bypassSecurityTrustHtml(html);\n  \t}\n\n\tcrearEntidadNoVigilada() {\n\t\tthis.clickGuardarEntidadNoVigilada = false;\n\t\tthis.nuevoEntidadNoVigilada = true;\n\t\tthis.entidadNoVigiladaIngresar = new ViaticoEntidadModel();\n\t}\n\n\tcancelarNuevoEntidadNoVigilada() {\n\t\tthis.clickGuardarEntidadNoVigilada = false;\n\t\tthis.nuevoEntidadNoVigilada = false;\n\t\tthis.entidadNoVigiladaIngresar = new ViaticoEntidadModel();\n\t}\n\n\tcrearEntidadVigilada() {\n\t\tthis.clickGuardarEntidadVigilada = false;\n\t\tthis.nuevoEntidadVigilada = true;\n\t\tthis.entidadVigiladaIngresar = new ViaticoEntidadModel();\n\t}\n\n\tcancelarNuevoEntidadVigilada() {\n\t\tthis.clickGuardarEntidadVigilada = false;\n\t\tthis.nuevoEntidadVigilada = false;\n\t\tthis.entidadVigiladaIngresar = new ViaticoEntidadModel();\n\t}\n\n\tcrearComplementaria() {\n\t\tthis.clickGuardarComplementaria = false;\n\t\tthis.nuevoComplementaria = true;\n\t\tthis.complementariaIngresar = new ViaticoComplementariaModel();\n\t}\n\n\tcancelarNuevoComplementaria() {\n\t\tthis.clickGuardarComplementaria = false;\n\t\tthis.nuevoComplementaria = false;\n\t\tthis.complementariaIngresar = new ViaticoComplementariaModel();\n\t}\n\n\tcrearCostos() {\n\t\tthis.clickGuardarCostos = false;\n\t\tthis.nuevoCostos = true;\n\t\tthis.costoIngresar = new SolicitudViaticoCostoWrapper(new ViaticoPartMedioModel(), []);\n\t}\n\n\tcancelarNuevoCostos() {\n\t\tthis.clickGuardarCostos = false;\n\t\tthis.nuevoCostos = false;\n\t\tthis.costoIngresar = new SolicitudViaticoCostoWrapper(new ViaticoPartMedioModel(), []);\n\t}\n\n\tcrearProgramacion() {\n\t\tthis.clickGuardarProgramacion = false;\n\t\tthis.nuevoProgramacion = true;\n\t\tthis.viaticoParticipaIngresar = new ViaticoParticipaModel();\n\t}\n\n\tcancelarNuevoProgramacion() {\n\t\tthis.clickGuardarProgramacion = false;\n\t\tthis.nuevoProgramacion = false;\n\t\tthis.viaticoParticipaIngresar = new ViaticoParticipaModel();\n\t}\n\n\tcrearAnexo() {\n\t\tthis.clickGuardarAnexo = false;\n\t\tthis.nuevoAnexo = true;\n\t\tthis.anexoIngresar = new ArchivoModel();\n\t}\n\n\tcancelarNuevoAnexo() {\n\t\tthis.clickGuardarAnexo = false;\n\t\tthis.nuevoAnexo = false;\n\t\tthis.anexoIngresar = new ArchivoModel();\n\t}\n\n\tdescargarAnexo() {\n\t\t\n\t}\n\n\teliminarObjetoDeArray(array: any[], objeto: any): any[] {\n\t\tconst objetoCadena = JSON.stringify(objeto);\n  \t\treturn array.filter(obj => JSON.stringify(obj) !== objetoCadena);\n\t}\n\t\n}\n","<div class=\"flex justify-content-between align-items-center\" >\n    <h1 class=\"mb-2\">{{'detalle' | translate}} {{'solicitudviatico' | translate}}</h1>\n    <button pButton pRipple (click)=\"regresarAction()\" label= \"{{'link_regresar' | translate}}\"  \n        icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n</div>\n@if(mostrar){\n    @if(!vistaVisualizar) {\n        <div [class]=\"'empleado'\" style=\"justify-content: center; align-items: center\">\n            <div class=\"col-md-12 ml-3\">\n                <div class=\"p-fluid p-formgrid grid col-12\" >\n                    <h1 class=\"w-full mb-3\">{{destinoViatico.descripcion}}</h1>\n\n                    <div class=\"col-6 md:col-4 lg:col-4\">\n                        <p><span class=\"font-medium\">{{'elabora' | translate}}: </span><br> <span>{{viatico.elabora}} - {{viatico.nombreElabora}}</span></p>\n                    </div>\n\n                    <div class=\"col-6 md:col-4 lg:col-4\">\n                        <p><span class=\"font-medium\">{{'fechaelabora' | translate}}: </span><br> <span> {{fechaElaboracion | date : ('formatofecha' | translate)}}</span></p>\n                    </div>\n\n                    <div class=\"col-6 md:col-4 lg:col-4\">\n                        <p><span class=\"font-medium\">{{'estado' | translate}}: </span><br> <span>{{viatico.estado | viaticos : 'listaEstado'}}</span></p>\n                    </div>\n\n                </div>\n            </div>\n        </div>\n\n        <p-table [value]=\"listaCampos\">\n            <ng-template pTemplate=\"body\" let-campo>\n                <tr >\n                    <td>\n                        @switch (campo.campo.estilo) {\n                            @case ('C') {\n                                @if (campo.campo.descripcion) {\n                                    <label>{{ campo.campo.descripcion }}</label>\n                                    @if (campo.campo.requerido == 'S') {\n                                        <label>*</label>\n                                    }\n                                }\n                                <br/>\n                                @switch (campo.campo.campo) {\n                                    @case('TipoComision') {\n                                        <p-dropdown appendTo=\"body\" [options]=\"listadoComision\" [autoDisplayFirst]=\"false\" (onChange)=\"cambioRespuesta($event)\"\n                                            [(ngModel)]=\"viatico.tipoComision\" [disabled]=\"encuesta\" [showClear]=\"campo.campo.requerido != 'S'\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.tipoComision) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </p-dropdown>\n                                    }\n                                    @case('Ambito') {\n                                        <p-dropdown appendTo=\"body\" [options]=\"listadoAmbito\" [autoDisplayFirst]=\"false\" (onChange)=\"cambioRespuesta($event)\"\n                                            [(ngModel)]=\"viatico.ambito\" [disabled]=\"encuesta\" [showClear]=\"campo.campo.requerido != 'S'\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.ambito) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </p-dropdown>\n                                    }\n                                    @case('UnidadSolicita') {\n                                        <app-input-helper-unidad [readonly]=\"encuesta\" (onSelected)=\"setUnidad($event)\"\n                                            [label]=\"viatico.nombreUnidad == null ? '' : viatico.nombreUnidad\"\n                                            [booleano]=\"campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.nombreUnidad) && validando) : false\"\n                                            [mostrarX]=\"campo.campo.requerido != 'S'\" >\n                                        </app-input-helper-unidad>\n                                    }\n                                    @case('ZonaEconomica') {\n                                        <app-input-helper-seleccion-zona-economica [readonly]=\"encuesta || isHayCentroCosto()\" (onSelected)=\"setZonaEconomicaValor($event)\"\n                                            [label]=\"viatico.nombreZona == null ? '' : viatico.nombreZona\"\n                                            [booleano]=\"campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.nombreZona) && validando) : false\"\n                                            [mostrarX]=\"campo.campo.requerido != 'S'\" >\n                                        </app-input-helper-seleccion-zona-economica>\n                                    }\n                                    @case('CentroCosto') {\n                                        <app-input-helper-seleccion-zona-centro [readonly]=\"encuesta\" (onSelected)=\"setZonaCentro($event)\" \n                                            [label]=\"viatico.nombreCentro == null ? '' : viatico.nombreCentro\"\n                                            [booleano]=\"campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.nombreCentro) && validando) : false\"\n                                            [mostrarX]=\"campo.campo.requerido != 'S'\" [mostrarZonaLabel]=\"false\">\n                                        </app-input-helper-seleccion-zona-centro>\n                                    }\n                                    @case('Objeto') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.objeto\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"150\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.objeto) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('Solicita') {\n                                        <p-dropdown appendTo=\"body\" [options]=\"listaSolicita\" [autoDisplayFirst]=\"false\" (onChange)=\"cambioRespuesta($event)\"\n                                            [(ngModel)]=\"viatico.solicita\" [disabled]=\"encuesta\" [showClear]=\"campo.campo.requerido != 'S'\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.solicita) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </p-dropdown>\n                                    }\n                                    @case('Ordenador') {\n                                        <p-dropdown appendTo=\"body\" [options]=\"listaOrdenador\" [autoDisplayFirst]=\"false\" (onChange)=\"cambioRespuesta($event)\"\n                                            [(ngModel)]=\"viatico.ordenador\" [disabled]=\"encuesta\" [showClear]=\"campo.campo.requerido != 'S'\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.ordenador) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </p-dropdown>\n                                    }\n                                    @case('Observacion') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.observacion\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"2000\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.observacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('FechaNumero') {\n                                        <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viatico.fechaNumero\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.fechaNumero) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </p-calendar>\n                                    }\n                                    @case('Numero') {\n                                        <input pInputText [(ngModel)]=\"campo.numero\" [disabled]=\"encuesta\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.numero) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                    }\n                                    @case('FechaAprobacion') {\n                                        <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viatico.fechaAprobacion\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.fechaAprobacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </p-calendar>\n                                    }\n                                    @case('Observacion2') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.observacion2\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.observacion2) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('Observacion3') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.observacion3\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.observacion3) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('Observacion4') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.observacion4\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.observacion4) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('Justificacion') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.justificacion\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.justificacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('Justificacion2') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.justificacion2\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.justificacion2) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('Justificacion3') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.justificacion3\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.justificacion3) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('ClaseCapacitacion') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.claseCapacitacion\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.claseCapacitacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('ComisionProgramada') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.comisionProgramada\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.comisionProgramada) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('Ciudad') {\n                                        <app-input-helper-ubicacion [readonly]=\"encuesta\" (onSelected)=\"setUbicacionGeografica($event)\"\n                                            [label]=\"viatico.nombreCiudad == null ? '' : viatico.nombreCiudad\"\n                                            [booleano]=\"campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.nombreCiudad) && validando) : false\"\n                                            [mostrarX]=\"campo.campo.requerido != 'S'\" >\n                                        </app-input-helper-ubicacion>\n                                    }\n                                    @case('NaturalezaInvitacion') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.naturalezaInvitacion\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.naturalezaInvitacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('OtraInvitacion') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.otraInvitacion\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.otraInvitacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('QuienInvitacion') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.quienInvitacion\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.quienInvitacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('CubreOtro') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.cubreOtro\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubreOtro) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('CubreOtroCuales') {\n                                        <textarea pInputTextarea [(ngModel)]=\"viatico.cubreOtroCuales\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"500\"\n                                            class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n                                            [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                            [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubreOtroCuales) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                        </textarea>\n                                    }\n                                    @case('RecibeInvitacion') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.recibeInvitacion\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.recibeInvitacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('CubreViaticos') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.cubreViaticos\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubreViaticos) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('CubrePasajeAereo') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.cubrePasajeAereo\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubrePasajeAereo) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('CubreTransporte') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.cubreTransporte\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubreTransporte) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('CubreAlimentacion') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.cubreAlimentacion\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubreAlimentacion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('CubreHospedaje') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.cubreHospedaje\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubreHospedaje) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                    @case('CubreCostoInscripcion') {\n                                        <div class=\"p-fluid p-formgrid grid\">\n                                            <div *ngFor=\"let valor of listaSiNo\" class=\"mt-4 col-12 md:col-1 field-checkbox\">\n                                                <p-radioButton name=\"valor\" [value]=\"valor.value\" [label]=\"valor.label\" [disabled]=\"encuesta\"\n                                                    [(ngModel)]=\"viatico.cubreCostoInscripcion\"  (onClick)=\"cambioRespuesta($event)\"\n                                                    [pTooltip]=\"campo.campo.rutaArchivo ? campo.campo.rutaArchivo : null\" tooltipPosition=\"top\"\n                                                    [class]=\"(campo.campo.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viatico.cubreCostoInscripcion) && validando) : false) ? 'ng-invalid ng-dirty' : ''\" >      \n                                                </p-radioButton>\n                                            </div>\n                                        </div>\n                                    }\n                                 }\n                            }\n                            @case ('T') {\n                                <div style=\"text-align: center;\" [innerHTML]=\"sanitizeHtml(campo.campo.textoHtml)\"></div>\n                            }\n                            @case ('A') {\n                                @switch (campo.campo.campo) {\n                                    @case('entidadVigiladaViatico') {\n                                        <div class=\"flex justify-content-end align-items-center mb-3\">\n                                            <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" icon=\"glyphicons glyphicons-file-plus\" [disabled]=\"encuesta\"\n                                                class=\"p-button-outlined claro ml-3\" (click)=\"crearEntidadVigilada()\"></button>\n                                        </div>\n                                        <p-table [value]=\"listaEntidadVigilada\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n                                            [rows]=\"5\" [paginator]=\"listaEntidadVigilada.length > 5\" [totalRecords]=\"listaEntidadVigilada.length\" \n                                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                            [scrollable]=\"true\" scrollDirection=\"horizontal\" >\n                                            <ng-template pTemplate=\"header\">\n                                                <tr>\n                                                    <th style=\"width: 30%;\">{{'entidad' | translate}}*</th>\n                                                    <th style=\"width: 30%;\">{{'fechainicial' | translate}}*</th>\n                                                    <th style=\"width: 30%;\">{{'fechafinal' | translate}}</th>\n                                                    <th style=\"width: 10%;\"></th>\n                                                </tr>\n                                                @if(nuevoEntidadVigilada) {\n                                                    <tr class=\"TablaNuevoRegistro\">\n                                                        <td style=\"width: 30%;\">\n                                                            <app-input-helper-seleccion-entidad-viatico \n                                                                [mostrarX]=\"false\" [(ngModel)]=\"entidadVigiladaIngresar.entidad\" [label]=\"entidadVigiladaIngresar.nombreEntidad ? entidadVigiladaIngresar.nombreEntidad : ''\" (onSelected)=\"setEntidadVigilada($event)\"\n                                                                [booleano]=\"!utilsService.validarCampoObligatorio(entidadVigiladaIngresar.entidad) && clickGuardarEntidadVigilada\"\n                                                            ></app-input-helper-seleccion-entidad-viatico>\n                                                        </td>\n                                                        <td style=\"width: 30%;\">\n                                                            <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"entidadVigiladaIngresar.fechaInicial\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                [class]=\"!utilsService.validarCampoObligatorio(entidadVigiladaIngresar.fechaInicial) && clickGuardarEntidadVigilada ? 'ng-invalid ng-dirty' : ''\" >\n                                                            </p-calendar>\n                                                        </td>\n                                                        <td style=\"width: 30%;\">\n                                                            <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"entidadVigiladaIngresar.fechaFinal\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" >\n                                                            </p-calendar>\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    (click)=\"adicionarEntidadVigilada()\"></button>\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoEntidadVigilada()\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                                            </div>\n                                                        </td>\n                                                    </tr>\n                                                }\n                                            </ng-template>\n                                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                            <ng-template pTemplate=\"body\" let-bean let-editar=\"editing\" let-ri=\"rowIndex\">\n                                                <tr [pEditableRow]=\"bean\" style=\"text-align: center\">\n                                                    <td style=\"width: 30%;\">{{bean.nombreEntidad}}</td>\n                                                    <td style=\"width: 30%;\">{{bean.fechaInicial | date : ('formatofecha' | translate)}}</td>\n                                                    <td style=\"width: 30%;\">{{bean.fechaFinal | date : ('formatofecha' | translate)}}</td>\n                                                    <td style=\"width: 10%;\">\n                                                        @if (!encuesta) {\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                                    (click)=\"eliminarEntidadVigilada($event, bean)\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    [disabled]=\"nuevoEntidadVigilada\"></button>\n                                                            </div>\n                                                        }\n                                                    </td>\n                                                </tr>\n                                            </ng-template>\n                                        </p-table>\n                                    }\n                                    @case('entidadNoVigiladaViatico') {\n                                        <div class=\"flex justify-content-end align-items-center mb-3\">\n                                            <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" icon=\"glyphicons glyphicons-file-plus\" [disabled]=\"encuesta\"\n                                                class=\"p-button-outlined claro ml-3\" (click)=\"crearEntidadNoVigilada()\"></button>\n                                        </div>\n                                        <p-table [value]=\"listaEntidadNoVigilada\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n                                            [rows]=\"5\" [paginator]=\"listaEntidadNoVigilada.length > 5\" [totalRecords]=\"listaEntidadNoVigilada.length\" \n                                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                            [scrollable]=\"true\" scrollDirection=\"horizontal\" >\n                                            <ng-template pTemplate=\"header\">\n                                                <tr>\n                                                    <th style=\"width: 30%;\">{{'entidad' | translate}}*</th>\n                                                    <th style=\"width: 30%;\">{{'fechainicial' | translate}}*</th>\n                                                    <th style=\"width: 30%;\">{{'fechafinal' | translate}}</th>\n                                                    <th style=\"width: 10%;\"></th>\n                                                </tr>\n                                                @if(nuevoEntidadNoVigilada) {\n                                                    <tr class=\"TablaNuevoRegistro\">\n                                                        <td style=\"width: 30%;\">\n                                                            <input pInputText type=\"text\" [(ngModel)]=\"entidadNoVigiladaIngresar.entidadNoVigilada\" [maxlength]=\"100\"\n                                                                [class]=\"!utilsService.validarCampoObligatorio(entidadNoVigiladaIngresar.entidadNoVigilada) && clickGuardarEntidadNoVigilada ? 'ng-invalid ng-dirty' : ''\" />\n                                                        </td>\n                                                        <td style=\"width: 30%;\">\n                                                            <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"entidadNoVigiladaIngresar.fechaInicial\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                [class]=\"!utilsService.validarCampoObligatorio(entidadNoVigiladaIngresar.fechaInicial) && clickGuardarEntidadNoVigilada ? 'ng-invalid ng-dirty' : ''\" >\n                                                            </p-calendar>\n                                                        </td>\n                                                        <td style=\"width: 30%;\">\n                                                            <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"entidadNoVigiladaIngresar.fechaFinal\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" >\n                                                            </p-calendar>\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    (click)=\"adicionarEntidadNoVigilada()\"></button>\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoEntidadNoVigilada()\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                                            </div>\n                                                        </td>\n                                                    </tr>\n                                                }\n                                            </ng-template>\n                                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                            <ng-template pTemplate=\"body\" let-bean let-editar=\"editing\" let-ri=\"rowIndex\">\n                                                <tr [pEditableRow]=\"bean\" style=\"text-align: center\">\n                                                    <td style=\"width: 30%;\">{{bean.entidadNoVigilada}}</td>\n                                                    <td style=\"width: 30%;\">{{bean.fechaInicial | date : ('formatofecha' | translate)}}</td>\n                                                    <td style=\"width: 30%;\">{{bean.fechaFinal | date : ('formatofecha' | translate)}}</td>\n                                                    <td style=\"width: 10%;\">\n                                                        @if (!encuesta) {\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                                    (click)=\"eliminarEntidadNoVigilada($event, bean)\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    [disabled]=\"nuevoEntidadNoVigilada\"></button>\n                                                            </div>\n                                                        }\n                                                    </td>\n                                                </tr>\n                                            </ng-template>\n                                        </p-table>\n                                    }\n                                    @case('complementariaViatico') {\n                                        <div class=\"flex justify-content-end align-items-center mb-3\">\n                                            <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" icon=\"glyphicons glyphicons-file-plus\" [disabled]=\"encuesta\"\n                                                class=\"p-button-outlined claro ml-3\" (click)=\"crearComplementaria()\"></button>\n                                        </div>\n                                        <p-table [value]=\"listaViaticoComplementaria\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n                                            [rows]=\"5\" [paginator]=\"listaViaticoComplementaria.length > 5\" [totalRecords]=\"listaViaticoComplementaria.length\" \n                                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                            [scrollable]=\"true\" scrollDirection=\"horizontal\" >\n                                            <ng-template pTemplate=\"header\">\n                                                <tr>\n                                                    <th style=\"width: 30%;\">{{'funcionario' | translate}}*</th>\n                                                    <th style=\"width: 20%;\">{{'necesidad' | translate}}</th>\n                                                    <th style=\"width: 20%;\">{{'utilidad' | translate}}</th>\n                                                    <th style=\"width: 20%;\">{{'conveniencia' | translate}}</th>\n                                                    <th style=\"width: 10%;\"></th>\n                                                </tr>\n                                                @if(nuevoComplementaria) {\n                                                    <tr class=\"TablaNuevoRegistro\">\n                                                        <td style=\"width: 30%;\">\n                                                            <app-input-helper-seleccion-programacion-viatico\n                                                                [mostrarX]=\"false\" [(ngModel)]=\"complementariaIngresar.documento\" [label]=\"complementariaIngresar.nombreApellido ? (complementariaIngresar.documento + ' - ' + complementariaIngresar.nombreApellido) : ''\" (onSelected)=\"setComplementaria($event)\"\n                                                                [booleano]=\"!utilsService.validarCampoObligatorio(complementariaIngresar.documento) && clickGuardarComplementaria\"\n                                                                [listaInput]=\"listaProgramacion\"\n                                                            ></app-input-helper-seleccion-programacion-viatico>\n                                                        </td>\n                                                        <td style=\"width: 20%;\">\n                                                            <textarea pInputTextarea [(ngModel)]=\"complementariaIngresar.necesidad\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"150\"\n                                                                class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-150\" >\n                                                            </textarea>\n                                                        </td>\n                                                        <td style=\"width: 20%;\">\n                                                            <textarea pInputTextarea [(ngModel)]=\"complementariaIngresar.utilidad\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"150\"\n                                                                class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-150\" >\n                                                            </textarea>\n                                                        </td>\n                                                        <td style=\"width: 20%;\">\n                                                            <textarea pInputTextarea [(ngModel)]=\"complementariaIngresar.conveniencia\" rows=\"5\" cols=\"5\" [disabled]=\"encuesta\" [maxlength]=\"150\"\n                                                                class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-150\" >\n                                                            </textarea>\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    (click)=\"adicionarComplementaria()\"></button>\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoComplementaria()\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                                            </div>\n                                                        </td>\n                                                    </tr>\n                                                }\n                                            </ng-template>\n                                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                            <ng-template pTemplate=\"body\" let-bean let-editar=\"editing\" let-ri=\"rowIndex\">\n                                                <tr [pEditableRow]=\"bean\" style=\"text-align: center\">\n                                                    <td style=\"width: 30%;\">{{bean.nombreApellido}}</td>\n                                                    <td style=\"width: 20%;\">{{bean.necesidad}}</td>\n                                                    <td style=\"width: 20%;\">{{bean.utilidad}}</td>\n                                                    <td style=\"width: 20%;\">{{bean.conveniencia}}</td>\n                                                    <td style=\"width: 10%;\">\n                                                        @if (!encuesta) {\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                                    (click)=\"eliminarComplementaria($event, bean)\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    [disabled]=\"nuevoComplementaria\"></button>\n                                                            </div>\n                                                        }\n                                                    </td>\n                                                </tr>\n                                            </ng-template>\n                                        </p-table>\n                                    }\n                                    @case('costoViatico') {\n                                        <div class=\"flex justify-content-end align-items-center mb-3\">\n                                            <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" icon=\"glyphicons glyphicons-file-plus\" [disabled]=\"encuesta\"\n                                                class=\"p-button-outlined claro ml-3\" (click)=\"crearCostos()\"></button>\n                                        </div>\n                                        <p-table [value]=\"listaCosto\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n                                            [rows]=\"5\" [paginator]=\"listaCosto.length > 5\" [totalRecords]=\"listaCosto.length\" \n                                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                            [scrollable]=\"true\" scrollDirection=\"horizontal\" >\n                                            <ng-template pTemplate=\"header\">\n                                                <tr>\n                                                    <th style=\"width: 30%;\">{{'funcionario' | translate}}*</th>\n                                                    <th style=\"width: 20%;\">{{'tipocosto' | translate}}*</th>\n                                                    <th style=\"width: 40%;\">{{'datoscosto' | translate}}</th>\n                                                    <th style=\"width: 10%;\"></th>\n                                                </tr>\n                                                @if(nuevoCostos) {\n                                                    <tr class=\"TablaNuevoRegistro\">\n                                                        <td style=\"width: 30%;\">\n                                                            <app-input-helper-seleccion-programacion-viatico\n                                                                [mostrarX]=\"false\" [(ngModel)]=\"costoIngresar.costo.documento\" [label]=\"costoIngresar.costo.nombreApellido ? (costoIngresar.costo.documento + ' - ' + costoIngresar.costo.nombreApellido) : ''\" (onSelected)=\"setProgramacion($event)\"\n                                                                [booleano]=\"!utilsService.validarCampoObligatorio(costoIngresar.costo.documento) && clickGuardarCostos\"\n                                                                [listaInput]=\"listaProgramacion\"\n                                                            ></app-input-helper-seleccion-programacion-viatico>\n                                                        </td>\n                                                        <td style=\"width: 20%;\">\n                                                            <p-dropdown appendTo=\"body\" [options]=\"listaTipoCosto\" [autoDisplayFirst]=\"false\" (onChange)=\"cambiarTipoCosto($event, costoIngresar.costo)\"\n                                                                [(ngModel)]=\"costoIngresar.costo.tipoCosto\" [disabled]=\"encuesta\" [showClear]=\"false\"\n                                                                [class]=\"!utilsService.validarCampoObligatorio(costoIngresar.costo.tipoCosto) && clickGuardarCostos ? 'ng-invalid ng-dirty' : ''\" >\n                                                            </p-dropdown>\n                                                        </td>\n                                                        <td style=\"width: 40%;\">\n                                                            <p-table [value]=\"listaCamposCosto\">\n                                                                <ng-template pTemplate=\"body\" let-campoCosto>\n                                                                    <tr>\n                                                                        <td style=\"width: 30%;\">\n                                                                            <label class=\"font-semibold\">{{campoCosto.descripcion}} @if(campoCosto.requerido == 'S') {*}</label>\n                                                                        </td>\n\n                                                                        <td style=\"width: 70%;\">\n                                                                            @switch(campoCosto.campo) {\n                                                                                @case('medio') {\n                                                                                    <p-dropdown appendTo=\"body\" [options]=\"listaAerolinea\" [autoDisplayFirst]=\"false\" [disabled]=\"campoCosto.requerido =='V'\"\n                                                                                        [(ngModel)]=\"costoIngresar.costo.medio\" [showClear]=\"campoCosto.requerido != 'S'\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.medio) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                                    </p-dropdown>\n                                                                                }\n                                                                                @case('valorDescuentoAerolinea') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.valorDescuentoAerolinea\" [disabled]=\"campoCosto.requerido == 'V'\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.valorDescuentoAerolinea) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('valorDescuentoContratista') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.valorDescuentoContratista\" [disabled]=\"campoCosto.requerido == 'V'\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.valorDescuentoContratista) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('aprobado') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.aprobado\" [disabled]=\"campoCosto.requerido == 'V'\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.aprobado) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('claseTiquete') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.claseTiquete\" [disabled]=\"campoCosto.requerido == 'V'\" [maxlength]=\"10\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.claseTiquete) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('numeroTiquete') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.numeroTiquete\" [disabled]=\"campoCosto.requerido == 'V'\" [maxlength]=\"30\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.numeroTiquete) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('documento') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.documento\" [disabled]=\"campoCosto.requerido == 'V'\" [maxlength]=\"20\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.documento) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('fechaDocumento') {\n                                                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"costoIngresar.costo.fechaDocumento\" [disabled]=\"campoCosto.requerido == 'V'\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.fechaDocumento) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                                    </p-calendar>\n                                                                                }\n                                                                                @case('fechaInicial') {\n                                                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"costoIngresar.costo.fechaInicial\" [disabled]=\"campoCosto.requerido == 'V'\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.fechaInicial) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                                    </p-calendar>\n                                                                                }\n                                                                                @case('fechaFinal') {\n                                                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"costoIngresar.costo.fechaFinal\" [disabled]=\"campoCosto.requerido == 'V'\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.fechaFinal) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                                    </p-calendar>\n                                                                                }\n                                                                                @case('destino') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.destino\" [disabled]=\"campoCosto.requerido == 'V'\" [maxlength]=\"80\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.destino) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('entidad') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.entidad\" [disabled]=\"campoCosto.requerido == 'V'\" [maxlength]=\"80\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.entidad) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('valorOtraMoneda') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.valorOtraMoneda\" [disabled]=\"campoCosto.requerido == 'V'\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.valorOtraMoneda) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('totalFactura') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.totalFactura\" [disabled]=\"campoCosto.requerido == 'V'\" [maxlength]=\"30\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.totalFactura) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('valorSolicitud') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.valorSolicitud\" [disabled]=\"campoCosto.requerido == 'V'\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.valorSolicitud) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('valor') {\n                                                                                    <input pInputText [(ngModel)]=\"costoIngresar.costo.valor\" [disabled]=\"campoCosto.requerido == 'V'\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.valor) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                                }\n                                                                                @case('desplazamiento') {\n                                                                                    <textarea pInputTextarea [(ngModel)]=\"costoIngresar.costo.desplazamiento\" rows=\"5\" cols=\"5\" [disabled]=\"campoCosto.requerido == 'V'\" [maxlength]=\"150\"\n                                                                                        class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-150\" \n                                                                                        [class]=\"(campoCosto.requerido == 'S' ? (!utilsService.validarCampoObligatorio(costoIngresar.costo.desplazamiento) && clickGuardarCostos) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                                    </textarea>\n                                                                                }\n                                                                            }\n                                                                        </td>\n                                                                    </tr>\n                                                                </ng-template>\n                                                            </p-table>\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    (click)=\"adicionarCosto()\"></button>\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoCostos()\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                                            </div>\n                                                        </td>\n                                                    </tr>\n                                                }\n                                            </ng-template>\n                                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                            <ng-template pTemplate=\"body\" let-bean let-editar=\"editing\" let-ri=\"rowIndex\">\n                                                <tr [pEditableRow]=\"bean\" style=\"text-align: center\">\n                                                    <td style=\"width: 30%;\">{{bean.costo.nombreApellido}}</td>\n                                                    <td style=\"width: 20%;\">{{bean.costo.descripcionTipoCosto}}</td>\n                                                    <td style=\"width: 40%;\">\n                                                        <p-table [value]=\"bean.listaCampos\">\n                                                            <ng-template pTemplate=\"body\" let-campo>\n                                                                <tr>\n                                                                    <td style=\"width: 30%;\">\n                                                                        <label class=\"font-semibold\">{{campo.descripcion}} @if(campo.requerido == 'S') {*}</label>\n                                                                    </td>\n\n                                                                    <td style=\"width: 70%;\">\n                                                                        @if(!\"fecha\".includes(campo.campo) && campo.campo != 'medio') {\n                                                                            <label>{{bean.costo[campo.campo]}}</label>\n                                                                        }\n                                                                        @if(\"fecha\".includes(campo.campo) && campo.campo != 'medio') {\n                                                                            <label>{{bean.costo[campo.campo] | date : ('formatofecha' | translate)}}</label>\n                                                                        }\n                                                                        @if(campo.campo == 'medio') {\n                                                                            <label>{{bean.costo['nombreAerolinea']}}</label>\n                                                                        }\n                                                                    </td>\n                                                                </tr>\n                                                            </ng-template>\n                                                        </p-table>\n                                                    </td>\n                                                    <td style=\"width: 10%;\">\n                                                        @if (!encuesta) {\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                                    (click)=\"eliminarCosto($event, bean)\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    [disabled]=\"nuevoCostos\"></button>\n                                                            </div>\n                                                        }\n                                                    </td>\n                                                </tr>\n                                            </ng-template>\n                                        </p-table>\n                                    }\n                                    @case('programacionViatico') {\n                                        <div class=\"flex justify-content-end align-items-center mb-3\">\n                                            <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" icon=\"glyphicons glyphicons-file-plus\" [disabled]=\"encuesta\"\n                                                class=\"p-button-outlined claro ml-3\" (click)=\"crearProgramacion()\"></button>\n                                        </div>\n                                        <p-table [value]=\"listaProgramacion\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n                                            [rows]=\"5\" [paginator]=\"listaProgramacion.length > 5\" [totalRecords]=\"listaProgramacion.length\" \n                                            [tableStyle]=\"{'min-width': '50rem'}\"\n                                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                            [scrollable]=\"true\" scrollDirection=\"horizontal\" >\n                                            <ng-template pTemplate=\"header\">\n                                                <tr>\n                                                    <th style=\"width: 10%;\">{{'funcionario' | translate}}*</th>\n                                                    <th style=\"width: 10%;\">{{'cargo' | translate}}*</th>\n                                                    <th style=\"width: 10%;\">{{'celular' | translate}}</th>\n                                                    <th style=\"width: 10%;\">{{'fechasalida' | translate}}*</th>\n                                                    <th style=\"width: 10%;\">{{'horasalida' | translate}}</th>\n                                                    <th style=\"width: 10%;\">{{'fecharegreso' | translate}}*</th>\n                                                    <th style=\"width: 10%;\">{{'horaregreso' | translate}}</th>\n                                                    <th *ngFor=\"let columna of listaCamposProgramacion\" style=\"width: 10%;\">{{columna.descripcion}} @if(columna.requerido == 'S') {*} </th>\n                                                    <th style=\"width: 10%;\">{{'mensaje' | translate}}</th>\n                                                    <th style=\"width: 10%;\"></th>\n                                                </tr>\n                                                @if(nuevoProgramacion) {\n                                                    <tr class=\"TablaNuevoRegistro\">\n                                                        <td style=\"width: 10%;\">\n                                                            <app-input-helper-empleado-boton\n                                                                [mostrarX]=\"false\" [(ngModel)]=\"viaticoParticipaIngresar.nombreApellido\" [label]=\"viaticoParticipaIngresar.nombreApellido ? (viaticoParticipaIngresar.nombreApellido) : ''\" (onSelected)=\"setParticipante($event)\"\n                                                                [booleano]=\"!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.nombreApellido) && clickGuardarProgramacion\"\n                                                            ></app-input-helper-empleado-boton>\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <input pInputText [value]=\"viaticoParticipaIngresar.nombreCargo ? viaticoParticipaIngresar.nombreCargo : ''\" [disabled]=\"true\" />\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <input pInputText [value]=\"viaticoParticipaIngresar.nroCelular ? viaticoParticipaIngresar.nroCelular : ''\" [disabled]=\"true\" />\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viaticoParticipaIngresar.fechaInicial\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                [class]=\"!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.fechaInicial) && clickGuardarProgramacion ? 'ng-invalid ng-dirty' : ''\" >\n                                                            </p-calendar>\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <p-calendar appendTo=\"body\"  [(ngModel)]=\"viaticoParticipaIngresar.horaSalida\" [timeOnly]=\"true\" dateFormat=\"{{'formatohora' | translate}}\" [hourFormat]=\"'12'\" />\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viaticoParticipaIngresar.fechaFinal\" [disabled]=\"encuesta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                [class]=\"!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.fechaFinal) && clickGuardarProgramacion ? 'ng-invalid ng-dirty' : ''\" >\n                                                            </p-calendar>\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <p-calendar appendTo=\"body\" [(ngModel)]=\"viaticoParticipaIngresar.horaRegreso\" [timeOnly]=\"true\" dateFormat=\"{{'formatohora' | translate}}\" [hourFormat]=\"'12'\" />\n                                                        </td>\n                                                        <td *ngFor=\"let columna of listaCamposProgramacion\" style=\"width: 10%;\">\n                                                            @switch(columna.campo) {\n                                                                @case('trmProyeccion') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.trmProyeccion\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.trmProyeccion) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('diasOtro') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.diasOtro\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.diasOtro) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('entidadOtra') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.entidadOtra\" [maxlength]=\"100\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.entidadOtra) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('documento') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.documento\" [maxlength]=\"10\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.documento) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('documentoDos') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.documentoDos\" [maxlength]=\"10\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.documentoDos) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('fechaDocumento') {\n                                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viaticoParticipaIngresar.fechaDocumento\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.fechaDocumento) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                    </p-calendar>\n                                                                }\n                                                                @case('fechaDocumentoDos') {\n                                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viaticoParticipaIngresar.fechaDocumentoDos\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.fechaDocumentoDos) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                    </p-calendar>\n                                                                }\n                                                                @case('estimado') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.estimado\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.estimado) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('estimadoDos') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.estimadoDos\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.estimadoDos) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('cadena1') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.cadena1\" [maxlength]=\"20\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.cadena1) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('cadena2') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.cadena2\" [maxlength]=\"20\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.cadena2) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('numero1') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.numero1\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.numero1) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('numero2') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.numero2\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.numero2) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                                @case('fecha1') {\n                                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viaticoParticipaIngresar.fecha1\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.fecha1) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                    </p-calendar>\n                                                                }\n                                                                @case('fecha2') {\n                                                                    <p-calendar appendTo=\"body\" type=\"text\" [(ngModel)]=\"viaticoParticipaIngresar.fecha2\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.fecha2) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                    </p-calendar>\n                                                                }\n                                                                @case('destinoPropio') {\n                                                                    <p-dropdown appendTo=\"body\" [options]=\"listaDestino\" [autoDisplayFirst]=\"false\"  \n                                                                        [(ngModel)]=\"viaticoParticipaIngresar.destinoPropio\" [showClear]=\"columna.requerido != 'S'\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.destinoPropio) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                    </p-dropdown>\n                                                                }\n                                                                @case('ambitoPropio') {\n                                                                    <p-dropdown appendTo=\"body\" [options]=\"listadoAmbito\" [autoDisplayFirst]=\"false\"  \n                                                                        [(ngModel)]=\"viaticoParticipaIngresar.ambitoPropio\" [showClear]=\"columna.requerido != 'S'\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.ambitoPropio) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                    </p-dropdown>\n                                                                }\n                                                                @case('tipoComisionPropio') {\n                                                                    <p-dropdown appendTo=\"body\" [options]=\"listadoComision\" [autoDisplayFirst]=\"false\"  \n                                                                        [(ngModel)]=\"viaticoParticipaIngresar.tipoComisionPropio\" [showClear]=\"columna.requerido != 'S'\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.tipoComisionPropio) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" >\n                                                                    </p-dropdown>\n                                                                }\n                                                                @case('total') {\n                                                                    <input pInputText [(ngModel)]=\"viaticoParticipaIngresar.total\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                                                                        [class]=\"(columna.requerido == 'S' ? (!utilsService.validarCampoObligatorio(viaticoParticipaIngresar.total) && clickGuardarProgramacion) : false) ? 'ng-invalid ng-dirty' : ''\" />\n                                                                }\n                                                            }\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    (click)=\"adicionarParticipante()\"></button>\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoProgramacion()\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                                            </div>\n                                                        </td>\n                                                    </tr>\n                                                }\n                                            </ng-template>\n\n                                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                            <ng-template pTemplate=\"body\" let-bean let-editar=\"editing\" let-ri=\"rowIndex\">\n                                                <tr [pEditableRow]=\"bean\" >\n                                                    <td style=\"width: 10%;\">{{bean.nombreApellido}}</td>\n                                                    <td style=\"width: 10%;\">{{bean.nombreCargo}}</td>\n                                                    <td style=\"width: 10%;\">{{bean.nroCelular}}</td>\n                                                    <td style=\"width: 10%;\">{{bean.fechaInicial | date : ('formatofecha' | translate)}}</td>\n                                                    <td style=\"width: 10%;\">{{bean.horaSalida | date : ('formatohora' | translate)}}</td>\n                                                    <td style=\"width: 10%;\">{{bean.fechaFinal | date : ('formatofecha' | translate)}}</td>\n                                                    <td style=\"width: 10%;\">{{bean.horaRegreso | date : ('formatohora' | translate)}}</td>\n                                                    <td *ngFor=\"let columna of listaCamposProgramacion\" style=\"width: 10%;\">\n                                                        @if (!\"fecha\".includes(columna.campo) && !(columna.campo == 'ambitoPropio' || columna.campo == 'destinoPropio' || columna.campo == 'tipoComisionPropio')) {\n                                                            {{bean[columna.campo]}}\n                                                        }\n                                                        @if (\"fecha\".includes(columna.campo)) {\n                                                            {{bean[columna.campo] | date : ('formatofecha' | translate)}}\n                                                        }\n                                                        @if (columna.campo == 'ambitoPropio') {\n                                                            {{bean.descripcionAmbito}}\n                                                        }\n                                                        @if (columna.campo == 'destinoPropio') {\n                                                            {{bean.descripcionDestino}}\n                                                        }\n                                                        @if (columna.campo == 'tipoComisionPropio'){\n                                                            {{bean.descripcionTipoComision}}\n                                                        }\n                                                    </td>\n                                                    <td style=\"width: 10%;\">\n                                                        {{bean.mensaje}}\n                                                    </td>\n                                                    <td style=\"width: 10%;\">\n                                                        @if (!encuesta) {\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                                    (click)=\"eliminarParticipante($event, bean)\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    [disabled]=\"nuevoProgramacion\"></button>\n                                                            </div>\n                                                        }\n                                                    </td>\n                                                </tr>\n                                            </ng-template>\n                                        </p-table>\n\n                                    }\n                                    @case('anexoViatico') {\n                                        <div class=\"flex justify-content-end align-items-center mb-3\">\n                                            <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" icon=\"glyphicons glyphicons-file-plus\" [disabled]=\"encuesta\"\n                                                class=\"p-button-outlined claro ml-3\" (click)=\"crearAnexo()\"></button>\n                                        </div>\n                                        <p-table [value]=\"listaAnexos\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\"\n                                            [rows]=\"5\" [paginator]=\"listaAnexos.length > 5\" [totalRecords]=\"listaAnexos.length\" \n                                            [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                            [scrollable]=\"true\" scrollDirection=\"horizontal\" >\n                                            <ng-template pTemplate=\"header\">\n                                                <tr>\n                                                    <th style=\"width: 45%;\">{{'archivo' | translate}}*</th>\n                                                    <th style=\"width: 45%;\">{{'descripcion' | translate}}*</th>\n                                                    <th style=\"width: 10%;\"></th>\n                                                </tr>\n                                                @if(nuevoAnexo) {\n                                                    <tr class=\"TablaNuevoRegistro\">\n                                                        <td style=\"width: 45%;\">\n                                                            <!--<app-input-helper-seleccion-entidad-viatico \n                                                                [mostrarX]=\"false\" [(ngModel)]=\"entidadVigiladaIngresar.entidad\" [label]=\"entidadVigiladaIngresar.nombreEntidad ? entidadVigiladaIngresar.nombreEntidad : ''\" (onSelected)=\"setEntidadVigilada($event)\"\n                                                                [booleano]=\"!utilsService.validarCampoObligatorio(entidadVigiladaIngresar.entidad) && clickGuardarEntidadVigilada\"\n                                                            ></app-input-helper-seleccion-entidad-viatico>-->\n                                                        </td>\n                                                        <td style=\"width: 45%;\">\n                                                        </td>\n                                                        <td style=\"width: 10%;\">\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-success ml-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    (click)=\"adicionarAnexo()\"></button>\n                                                                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoAnexo()\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-danger ml-2 mb-2 p-button p-component p-button-icon-only\"></button>\n                                                            </div>\n                                                        </td>\n                                                    </tr>\n                                                }\n                                            </ng-template>\n                                            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                            <ng-template pTemplate=\"body\" let-bean let-editar=\"editing\" let-ri=\"rowIndex\">\n                                                <tr [pEditableRow]=\"bean\" style=\"text-align: center\">\n                                                    <td style=\"width: 45%;\">{{bean.archivoorigen}}</td>\n                                                    <td style=\"width: 45%;\">{{bean.descripcion}}</td>\n                                                    <td style=\"width: 10%;\">\n                                                        @if (!encuesta) {\n                                                            <div class=\"flex justify-content-end\">\n                                                                <button pButton pRipple\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    icon=\"pi pi-download p-2\" (click)=\"descargarAnexo()\" type=\"file\"></button>\n                                                                <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                                                    (click)=\"eliminarAnexo($event, bean)\"\n                                                                    class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                                                    [disabled]=\"nuevoAnexo\"></button>\n                                                            </div>\n                                                        }\n                                                    </td>\n                                                </tr>\n                                            </ng-template>\n                                        </p-table>\n                                    }\n                                }\n                            }\n                        }\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n\n        @if (viatico.mensaje) {\n            <div class=\"p-float-label mt-3\">\n                <textarea pInputTextarea [(ngModel)]=\"viatico.mensaje\" rows=\"5\" cols=\"5\" [disabled]=\"true\"\n                    class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\">\n                </textarea>\n                <label>{{'mensaje' | translate}}</label>\n            </div>\n        }\n        \n        @if (encuesta) {\n            <app-ejecucion-encuesta (regresar)=\"regresarAction()\"></app-ejecucion-encuesta>\n        }\n\n        @if (!encuesta || listadoViatico) {\n            <div class=\"flex justify-content-end mt-2\">\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n                    icon=\"glyphicons {{nuevo ? 'glyphicons-floppy-save' : 'glyphicons-refresh'}}\" \n                    label=\"{{ nuevo ? ('link_guardar' | translate) : ('link_actualizar' | translate)}}\"\n                    (click)=\"guardar()\">\n                </button>\n                <button pButton pRipple class=\"ml-2 p-button-outlined\"\n                    icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'guardartemporal' | translate}}\"\n                    (click)=\"guardarTemporal()\">\n                </button>\n            </div>\n        }\n    }\n    @if (vistaVisualizar == 'costoEspecifico') {\n\n    }\n} @else {\n    <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\" ></p-progressBar>\n}","import { UnionModel } from 'general-library-union'\n\nexport class RequerimientoPersonalModel extends UnionModel {\n\n\n\n\n\tsolicitud: Date;\n\tunidadSol: string;\n\tnombreUnidadSolicita: string;\n\tunidad: string;\n\tnombreUnidad: string;\n\tpuesto: number;\n\tmotivoRequerimiento: string;\n\tnombreMotivoRequerimiento: string;\n\tcontrato: number;\n\testado: string;\n\testadoMasivo: string;\n\tfechaCubrir: Date;\n\tfechaFinal: Date;\n\tconocimiento: string;\n\texperiencia: string;\n\tfuncion: string;\n\tcargo: string;\n\tnombreCargo: string;\n\tubicacionGeografica: string;\n\tcantidad: number;\n\tturno: number;\n\tnombreTurno: string;\n\tnivelCargo: string;\n\tobjetivo: string;\n\torganizacion: number;\n\tempresa: number;\n\tnombreEmpresa: string;\n\tfiltro: string;\n\tposiblesCandidatos: string;\n\tmotivoAdiccion: string;\n\thorario: string;\n\tvinculacionLaboral: number;\n\tvinculacionLaboralNombre: string;\n\tultimoOcupoNombre: string;\n\tultimoOcupo: number;\n\tperfilFuncion: string;\n\tnombreCompleto: string;\n\tpuestoTrabajo: string;\n\tdependePuestoTrabajo: string;\n\tpuestoTemporal: number;\n\tcontratoOcupa: number;\n\thojaVida: number;\n\tsucursal: string;\n\tnombreSucursal: string;\n\tasignacion: number;\n\trequerimientoSolicita: number;\n\treemplazo: number;\n\tautoriza: number;\n\tnombreAutoriza: string;\n\tubicacionFisicaNombre: string;\n\tespecificar: string;\n\ttipoPuesto: string;\n\tnombreTipoPuesto: string;\n\tnombreUbicacionGeografica: string;\n\tnombreUbicacionGeograficaPais: string;\n\tnombreZonaEconomica: string;\n\tnombreCentro: string;\n\tnombreReemplaza: string;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tubicacionFisicaCodigo: string;\n\tlineaCosto: string;\n\tcargoSolicitante: string;\n\tnombreCargoSolicitante: string;\n\tcargoJefe: string;\n\tnombreCargoJefe: string;\n\tcedulaJefe: number;\n\tclasificacionCargo: string;\n\tclasificacion: string;\n\ttipoPeriodo: number;\n\tnombreJefe: string;\n\ttipo: string;\n\tresponsable: number;\n\tnivel: number;\n\tetapaRequerimiento: number;\n\ttipoPuestoAutomatico: string;\n\tseleccion: string;\n\tmotivoNoAutorizar: string;\n\testadoDiferente: string;\n\tfechaInicialEntre: Date;\n\tfechaFinalEntre: Date;\n\tordenarEmpresa: string;\n\tformulario: string;\n\tconsultarActivos: string;\n\tdescripcionCargo: string;\n\tcadenaConsecutivo: string;\n\tnumeroConsecutivo: number;\n\tdescripcionClasePuesto: string;\n\tminimoRemuneracionCargo: number;\n\tmaximoRemuneracionCargo: number;\n\tsucursalGes: string;\n\tunidadPadre: string;\n\tnombreUnidadPadre: string;\n\tusuarioLogin: string;\n\tusuarioRol: string;\n\tfiltroSucursalGes: string;\n\testadoPuestoTrabajo: string;\n\ttipoFiltro: string;\n\tnombreEstado: string;\n\n\t/*-------------------------------------\n\t *Atributos Con Anotaciones\n\t *-------------------------------------\n\t */\n\tnombreLineaCosto: string;\n\tnombreNuevoCargo: string;\n\tsolicita: string;\n\tdocumentoRequerimientoSolicita: string;\n\t//filtro de clasificacion para formularios de requerimiento\n\tclasificacionFiltro: string;\n\tmensaje: string;\n\n\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class FormularioProcesoModel extends UnionModel {\n\n\tformulario: string;\n\tmotivoRequiere: string;\n\tnombreFormulario: string;\n\ttipoRequiere: string;\n\tclasificacion: string;\n\tdescripcionClasificacion: string;\n\torigen: string;\n\tvinculacion: number;\n\tdescripcionVinculacion: string;\n\t\n\n\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport { GeneralModel, ToastService } from 'general-library-union';\nimport { CargoModel } from '../../../modules/talento/models/CargoModel';\nimport { RequerimientoPersonalModel } from '../../../modules/talento/models/RequerimientoPersonalModel';\nimport { SelectListEvaluacionesService } from '../../../modules/talento/services/select-list-evaluaciones.service';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-input-helper-aplicar-cargo',\n    templateUrl: './input-helper-aplicar-cargo.component.html',\n    styleUrls: ['./input-helper-aplicar-cargo.component.scss'],\n    standalone: true,\n    imports: [NgIf, InputTextModule, ButtonDirective, Ripple, DialogModule, DropdownModule, TranslateModule]\n})\nexport class InputHelperAplicarCargoComponent implements OnInit {\n\n  mostrarPopup: boolean;\n  listaCargo: any[] = [];\n  cargo: string = '';\n  requerimientoPersonalDTO: RequerimientoPersonalModel = new RequerimientoPersonalModel();\n  cargoDTO: CargoModel = new CargoModel();\n  @Output() aplicarDestino: EventEmitter<any> = new EventEmitter();\n  @Input() readonly: boolean;\n  @Input() mostrarX: boolean;\n  @Input() llave: string = ''\n  @Input() soloPopup: boolean = false;\n  @ViewChild('inputText') inputText: ElementRef;\n  @Input() value: string | number;\n  @Input() label: string = '';\n  @Input() booleano: boolean;\n  onChange: Function = () => {};\n  @Input() nombreInput: string = '';\n  constructor(private selectListsEvaluaciones: SelectListEvaluacionesService, private translateService: TranslateService, private generalSvc: GeneralService, private notificationBusService: ToastService) { }\n\n  ngOnInit(): void {\n    this.cargarListado();\n    this.requerimientoPersonalDTO.llaveTabla = this.llave;\n  }\n  async cargarListado() {\n    this.listaCargo = await this.selectListsEvaluaciones.listaCargoSinSeleccione();\n  }\n\n  getEtiqueta(param: string) {\n    return this.translateService.instant(param);\n  }\n\n  async aplicar() {\n    try {\n      if (this.cargo != null) {\n        if (this.requerimientoPersonalDTO.llaveTabla != null) {\n          this.requerimientoPersonalDTO = await this.generalSvc.queryForObject(new GeneralModel('RequerimientoPersonalDTO', null, false, this.requerimientoPersonalDTO)).toPromise();\n          this.requerimientoPersonalDTO.cargo = this.cargo;\n          this.generalSvc.update(new GeneralModel('RequerimientoPersonalDTO', null, false, this.requerimientoPersonalDTO)).toPromise();\n          this.cargoDTO = new CargoModel();\n          this.cargoDTO.cargo = this.cargo;\n          this.cargoDTO = await this.generalSvc.queryForObject(new GeneralModel('CargoDTO', null, false, this.cargoDTO)).toPromise();\n        }\n        this.aplicarDestino.emit(this.cargoDTO);\n      } else {\n        this.notificationBusService.showWarning('No hay seleccionado ningun cargo');\n      }\n    } catch (e) {\n      console.log(e);\n    }\n\n  }\n\n  setMostrarPopup(booleano: boolean) {\n    this.mostrarPopup = booleano;\n  }\n  \n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.aplicarDestino.emit({});\n  }\n\n\n}\n","<div *ngIf=\"!soloPopup\" #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\">\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"setMostrarPopup(true)\" class=\"p-button-icon-only clear\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label *ngIf=\"booleano\">{{nombreInput == '' ? ('empleado' | translate) : nombreInput}} *</label>\n        <label *ngIf=\"!booleano\">{{nombreInput == '' ? ('empleado' | translate) : nombreInput}}</label>\n    </span>\n</div>\n<p-dialog id=\"popupAplicarCargo_form\" header=\"{{'aplicar' | translate}} {{'cargo' | translate}}\"\n    [(visible)]=\"mostrarPopup\" [style]=\"{width: '54vw'}\" (onHide)=\"setMostrarPopup(false)\" [modal]=\"true\"\n    [draggable]=\"false\" [resizable]=\"false\">\n\n    <div class=\"card\">\n        <p-dropdown [options]=\"listaCargo\" placeholder=\"{{getEtiqueta('seleccione')}}\" optionLabel=\"label\"\n            optionValue=\"key\"></p-dropdown>\n    </div>\n    <div class=\"flex justify-content-end align-items-center mb-3\">\n        <button pButton class=\"p-button-raised ml-2\" label=\"{{getEtiqueta('link_aplicar')}}\" (click)=\"aplicar()\"><span\n                class=\"glyphicons glyphicons-refresh\" aria-hidden=\"true\"></span>\n        </button>\n        <button pButton class=\"p-button-raised ml-2\" label=\"{{getEtiqueta('link_cancelar')}}\"\n            (click)=\"setMostrarPopup(false)\"><span class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span>\n        </button>\n    </div>\n</p-dialog>","import { InputHelperAplicarCargoComponent } from './../../../../../shared/componentes/input-helper-aplicar-cargo/input-helper-aplicar-cargo.component';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { CargarControlFuncionalidadService, FormulariodinamicoComponent } from 'general-library-union';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { UbicacionFisicaModel } from '../../../../compensacion/models/UbicacionFisicaModel';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperUbicacionComponent } from '../../../../../shared/componentes/input-helper-ubicacion/input-helper-ubicacion.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf } from '@angular/common';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\n\n\n@Component({\n    selector: 'app-panel-etapa-requerimiento-con',\n    templateUrl: './panel-etapa-requerimiento-con.component.html',\n    styleUrls: ['./panel-etapa-requerimiento-con.component.scss'],\n    standalone: true,\n    imports: [NgIf, FormsModule, InputTextModule, InputHelperSeleccionZonaCentroComponent, DropdownModule, CalendarModule, InputHelperUbicacionComponent, InputHelperUnidadComponent, TranslateModule,BreadcrumbModule,FormulariodinamicoComponent,InputHelperAplicarCargoComponent]\n})\nexport class PanelEtapaRequerimientoConComponent implements OnInit {\n\n  listaCargo: any[]\n  @Input()\n  public requerimientoPm : RequerimientoPmPage;\n  @Output()\n  @Output() popupZonaCentroCosto: EventEmitter<any> = new EventEmitter();\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n  constructor(private controlFuncionalidadSvc : CargarControlFuncionalidadService, private selectListEvaluaciones: SelectListEvaluacionesService) { }\n\n  async ngOnInit(): Promise<void> {\n    this.listaCargo = await this.selectListEvaluaciones.listaCargoSinSeleccione();\n  }\n\n  public listaComandos(comando: string){\n   return this.controlFuncionalidadSvc.getControlFuncionalidad(comando);\n  }\n\n  public setCargo(cargoDTO: any ) {\n\t\tif (cargoDTO != null) {\n\t\t\tthis.requerimientoPm.requerimientoPersonalDTO.nombreCargo = cargoDTO.descripcion;\n\t\t\tthis.requerimientoPm.requerimientoPersonalDTO.cargo = cargoDTO.cargo;\n\t\t}\n\t}\n\n  setCargarUbicacion(ubicacionFisica: UbicacionFisicaModel){\n    this.requerimientoPm.requerimientoPersonalDTO.ubicacionFisicaCodigo = ubicacionFisica.ubicacionFisica;\n    this.requerimientoPm.requerimientoPersonalDTO.ubicacionFisicaNombre = ubicacionFisica.descripcion;\n    this.requerimientoPm.requerimientoPersonalDTO.nombreUbicacionGeografica = ubicacionFisica.descripcionUbicacionGeo;\n    this.requerimientoPm.requerimientoPersonalDTO.ubicacionFisicaNombre = ubicacionFisica.ubicacionGeo;\n  }\n\n  setUnidad(unidadOrganizacionalDTO : UnidadOrganizacionalModel){\n    try {\n     if(unidadOrganizacionalDTO != null) {\n      this.requerimientoPm.requerimientoPersonalDTO.nombreUnidadSolicita = unidadOrganizacionalDTO.nombreUnidad;\n      this.requerimientoPm.requerimientoPersonalDTO.unidadSol = unidadOrganizacionalDTO.unidad;\n     }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  regresarCentroCosto(event){\n    this.popupZonaCentroCosto.emit(event);\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n\n\n\n}\n","<div class=\" card\" *ngIf=\"requerimientoPm.isRequerimiento()\">\n        <!-- <div class=\"mt-3\">\n        <h5><i class=\"glyphicons glyphicons-building\"></i>{{'Requerimiento' | translate}}</h5>\n    </div> -->\n    <div class=\"p-fluid p-formgrid grid col-12\" style=\"color: gray;\">\n        <!-- DESCRIPCION CENTRO COSTO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm?.mapaRequerimiento['centrocosto'] != null\">\n            <label class=\"col-12 font-semibold\">{{('descripcioncentro') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm?.mapaRequerimiento['centrocosto'] != null\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.nombreCentro\" [disabled]=\"true\"/>\n        </div>\n        <!-- ZONA ECONOMICA -->\n        <div class=\"col-12 md:col-6 lg:col-6\"  *ngIf=\"requerimientoPm?.mapaRequerimiento['centrocosto'] != null\">\n            <label class=\"col-12 font-semibold\">{{('zona') | translate}} {{'economica' | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\"  *ngIf=\"requerimientoPm?.mapaRequerimiento['centrocosto'] != null\">\n            <app-input-helper-seleccion-zona-centro #centroCosto [labelIntput]=\"'centrocosto'\" [mostrarZonaLabel]=\"true\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.nombreZonaEconomica\" [label]=\"requerimientoPm?.requerimientoPersonalDTO.nombreZonaEconomica ? (requerimientoPm?.requerimientoPersonalDTO.nombreZonaEconomica): ''\"\n                (onSelected)=\"regresarCentroCosto($event)\" [mostrarZonaLabel]=\"true\" [readonly]=\"(!requerimientoPm.deshabilitar) || (!requerimientoPm.requerimientoPersonalDTO.puestoTrabajo)\"></app-input-helper-seleccion-zona-centro>\n        </div>\n        <!-- CARGO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.esNumeroCargo()\">\n            <label class=\"col-12 font-semibold\">{{('cargo') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.esNumeroCargo()\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.cargo\" />\n        </div>\n          <!-- CARGO -->\n          <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isCargoExiste()\">\n            <label class=\"col-12 font-semibold\">{{('cargo') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isCargoExiste()\">\n            <p-dropdown inputId=\"Destino\" [options]=\"requerimientoPm.listaCargo\" [autoDisplayFirst]=\"false\"\n            optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.cargo\" [disabled]=\"requerimientoPm.deshabilitar()\" >\n        </p-dropdown>\n        </div>\n        <!-- SOLICITADO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.requerimientoPersonalDTO?.llaveTabla != null\">\n            <label class=\"col-12 font-semibold\">{{('solicitado') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.requerimientoPersonalDTO?.llaveTabla != null\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.nombreCompleto\" [disabled]=\"true\"/>\n        </div>\n        <!-- CARGO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"this.listaComandos('reqper:mostrarcargo') && requerimientoPm.requerimientoPersonalDTO.tipo == 'CN'  && !requerimientoPm.isNuevo()\">\n            <label class=\"col-12 font-semibold\">{{('cargo') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"this.listaComandos('reqper:mostrarcargo') && requerimientoPm.requerimientoPersonalDTO.tipo == 'CN'  && !requerimientoPm.isNuevo()\">\n            <app-input-helper-aplicar-cargo [value]=\"requerimientoPm?.requerimientoPersonalDTO.descripcionCargo\" (aplicarDestino)=\"setCargo($event)\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.descripcionCargo\"> </app-input-helper-aplicar-cargo>\n        </div>\n        <!-- DESCRIPCION CARGO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm?.isDescCargo()\">\n            <label class=\"col-12 font-semibold\">{{('descripcion') | translate}} {{('cargo') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm?.isDescCargo()\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.nombreNuevoCargo\"  maxlength=\"80\" [disabled]=\"requerimientoPm.deshabilitar()\" disabled=\"{{requerimientoPm.isDeshabilitar()}}\"/>\n        </div>\n        <!-- PERSONA REMPLAZA -->\n        <div class=\"col-12 md:col-6 lg:col-6\"\n            *ngIf=\"!requerimientoPm?.isBaseFichaCargo()\">\n            <label class=\"col-12 font-semibold\">{{('personareemplaza') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"!requerimientoPm?.isBaseFichaCargo()\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.nombreReemplaza\"  maxlength=\"80\" [disabled]=\"true\" />\n        </div>\n\n        <!-- FECHA SOLICITUD -->\n        <div class=\"col-12 md:col-6 lg:col-6\">\n            <label class=\"col-12 font-semibold\">{{('fechasolicitud') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\">\n            <p-calendar [showIcon]=\"true\" inputId=\"fechaEnvio\" dateFormat=\"dd/mm/yy\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.solicitud\" >\n            </p-calendar>\n        </div>\n        <!-- UBICACION FISICA -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['ubica']\">\n            <label class=\"col-12 font-semibold\">{{('ubicacionfisica') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['ubica']\">\n            <app-input-helper-ubicacion [booleano]=\"requerimientoPm?.requerimientoPersonalDTO.ubicacionFisicaNombre != null\" (onSelected)=\"setCargarUbicacion($event)\" [labelInput]=\"('ubicacionfisica') | translate\" (onSelected)=\"setCargarUbicacion($event)\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.ubicacionFisicaNombre\" [label]=\"requerimientoPm?.requerimientoPersonalDTO.ubicacionFisicaNombre ? requerimientoPm?.requerimientoPersonalDTO.ubicacionFisicaNombre : ''\"></app-input-helper-ubicacion>\n        </div>\n        <!-- ULTIMO OCUPO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['ultimoOcupo']\">\n            <label class=\"col-12 font-semibold\">{{('personareemplaza') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['ultimoOcupo']\">\n            <input pInputText autofocus type=\"text\" value=\"{{requerimientoPm.requerimientoPersonalDTO.ultimoOcupo +'-'+ requerimientoPm.requerimientoPersonalDTO.ultimoOcupoNombre}}\"   maxlength=\"80\" [disabled]=\"true\" />\n        </div>\n        <!-- LINEA COSTO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['lineaCosto']\">\n            <label class=\"col-12 font-semibold\">{{('lineacosto') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['lineaCosto']\">\n            <p-dropdown inputId=\"LineaCosto\" [options]=\"requerimientoPm.listaLineaCostoItem\" [autoDisplayFirst]=\"false\"\n            optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.lineaCosto\" [disabled]=\"requerimientoPm.deshabilitar()\" >\n        </p-dropdown>\n        </div>\n        <!-- UNIDAD SOLICITA -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isUnidadSol()\">\n            <label class=\"col-12 font-semibold\">{{('unidadsolicita') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isUnidadSol()\">\n            <app-input-helper-unidad  [readonly]=\"false\"\n                [empresa]=\"requerimientoPm?.requerimientoPersonalDTO.empresa\" [label]=\"requerimientoPm?.requerimientoPersonalDTO.nombreUnidadSolicita\" \n                [booleano]=\"!requerimientoPm?.requerimientoPersonalDTO.nombreUnidadSolicita\" (onSelected)=\"setUnidad($event)\" [mostrarX]=\"false\"\n                [header]=\"('unidad' | translate)\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.nombreUnidadSolicita\"\n                (keydown.enter)=\"handleEnterKey($event)\">\n            </app-input-helper-unidad>\n        </div>\n        <!-- VINCULACION LABORAL -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isVinculacionLaboral()\">\n            <label class=\"col-12 font-semibold\">{{('vinculacionlaboral') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isVinculacionLaboral()\">\n            <p-dropdown inputId=\"LineaCosto\" [options]=\"requerimientoPm.listaVinculacion\" [autoDisplayFirst]=\"false\"\n            optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.vinculacionLaboral\" [disabled]=\"requerimientoPm.deshabilitar()\" >\n        </p-dropdown>\n        </div>\n        <!-- CANTIDAD -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['cantidad']\">\n            <label class=\"col-12 font-semibold\">{{('cantidad') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.mapaRequerimiento['cantidad']\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.lineaCosto\"  maxlength=\"5\" [disabled]=\"true\" />\n        </div>\n        <!-- TIPO PLANTA -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isTipoPlanta()\">\n            <label class=\"col-12 font-semibold\">{{('tipoplanta') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isTipoPlanta()\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.nombreTipoPuesto\"  maxlength=\"5\" [disabled]=\"!requerimientoPm.isEstadoEditable()\" />\n        </div>\n        <!-- CONSECUTIVO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"!requerimientoPm.mapaRequerimiento['cadenaConsecutivo'] && !requerimientoPm.requerimientoPersonalDTO.cadenaConsecutivo\">\n            <label class=\"col-12 font-semibold\">{{('consecutivo') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"!requerimientoPm.mapaRequerimiento['cadenaConsecutivo'] && !requerimientoPm.requerimientoPersonalDTO.cadenaConsecutivo\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.cadenaConsecutivo\"   [disabled]=\"true\" />\n        </div>\n        <!-- CLASE PUESTO -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isClasePuesto()\">\n            <label class=\"col-12 font-semibold\">{{('clasepuesto') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.isClasePuesto()\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.cadenaConsecutivo\"  maxlength=\"5\" [disabled]=\"true\" />\n        </div>\n        <!-- SUCURSAL GESTION -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"!requerimientoPm.mapaRequerimiento['sucursalGes']\">\n            <label class=\"col-12 font-semibold\">{{('sucursal') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"!requerimientoPm.mapaRequerimiento['sucursalGes']\">\n            <p-dropdown inputId=\"LineaCosto\" [options]=\"requerimientoPm.listaSucursalGesItem\" [autoDisplayFirst]=\"false\"\n            optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.sucursalGes\" [disabled]=\"requerimientoPm.deshabilitar() || requerimientoPm?.deshabilitarSucursalges\" >\n        </p-dropdown>\n        </div>\n        <!-- DINAMICO -->\n        <div class=\"col-12 md:col-12 lg:col-12\" *ngIf=\"requerimientoPm.isManejaFormulario() && !requerimientoPm.isPuestoTrabajo() && requerimientoPm?.dinamico.grupos[0]?.campos != null\">\n            <h4 class=\"col-12\">{{(requerimientoPm?.dinamico.grupos[0]?.nombre) | translate}}</h4>\n        </div>\n        <formulario-dinamico #formulario [editable]=\"requerimientoPm?.dinamico.editable\" *ngIf=\"requerimientoPm.isManejaFormulario() && !requerimientoPm.isPuestoTrabajo()\" [objeto]=\"requerimientoPm?.requerimientoPersonalDTO\"  [campos]=\"requerimientoPm?.dinamico.grupos[0]?.campos\" [isMensaje]=\"false\"></formulario-dinamico>\n        <!-- MENSAJE -->\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.requerimientoPersonalDTO.mensaje != null\">\n            <label class=\"col-12 font-semibold\">{{('mensaje') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"requerimientoPm.requerimientoPersonalDTO.mensaje != null\">\n            <input pInputText autofocus type=\"text\" [(ngModel)]=\"requerimientoPm?.requerimientoPersonalDTO.cadenaConsecutivo\" [disabled]=\"true\" />\n        </div>  \n    </div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class PuestoRequerimientoModel extends UnionModel {\n\n\t\n\trequerimiento: string;\n\tpuesto: string;\n\tcandidato: string;\n\tunidad: string;\n\tnombreUnidad: string;\n\tcargo: string;\n\tnombreCargo: string;\n\tenganche: string;\n\tcodigoPuesto: number;\n\n\t\n}","import { Injectable } from \"@angular/core\";\nimport { cargarmapasGlobal } from \"../../../shared/servicios/cargar-mapas.service\";\nimport { GeneralService } from \"../../../shared/servicios/general.service\";\nimport { AuthService, GeneralModel } from \"general-library-union\";\nimport { EmpresaModel } from \"../../compensacion/models/EmpresaModel\";\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SelectListTalento {\n\n    constructor(private cargarMapas: cargarmapasGlobal, private authService: AuthService, private generalSvc: GeneralService) { }\n\n    async getListadoEtapaProceso() {\n        try {\n            return await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoActividadDTO', null, false, { origen: 'S' }));\n        } catch (error) {\n            console.log(error);\n            return null;\n        }\n    }\n\n    public async getListaEmpresa() {\n        let listaEmpresa = [];\n        try {\n           let comodin: EmpresaModel = new EmpresaModel();\n            comodin.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n            comodin.empresa = comodin.organizacion;\n            let lista: EmpresaModel[] = await this.generalSvc.queryForList(new GeneralModel('EmpresaDTO', null, false, comodin)).toPromise();\n            for (const uno of lista) {\n                listaEmpresa.push({ key: uno.empresa, label: uno.nombre });\n            }\n        } catch (e) {\n            console.log(e);\n        }\n        return listaEmpresa;\n    }\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { RequerimientoPersonalModel } from '../../models/RequerimientoPersonalModel';\nimport { PuestoTrabajoModel } from '../../models/PuestoTrabajoModel';\nimport { SelectListEvaluacionesService } from '../../services/select-list-evaluaciones.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { UnidadOrganizacionalModel } from '../../models/UnidadOrganizacionalModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, EncriptadoBasicoService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { EmpleadoModel } from '../../../compensacion/models/EmpleadoModel';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { PuestoTrabajoService } from '../../services/puesto-trabajo.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { SelectListTalento } from '../../services/select-list-talento.service';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputHelperCargoComponent } from '../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { NgIf } from '@angular/common';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-seleccion-puesto-trabajo',\n    templateUrl: './popup-seleccion-puesto-trabajo.component.html',\n    styleUrls: ['./popup-seleccion-puesto-trabajo.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, ReactiveFormsModule, DropdownModule, NgIf, InputHelperUnidadComponent, InputHelperCargoComponent, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule]\n})\nexport class PopupSeleccionPuestoTrabajoComponent implements OnInit {\n  listaPuesto:  PuestoTrabajoModel[] = [];;\n  filtro: PuestoTrabajoModel;\n  puestoSeleccionado: PuestoTrabajoModel;\n  continuar: boolean;\n  listaEmpresa: any;\n  verBotones: boolean;\n  puestoTrabajoDTO: PuestoTrabajoModel;\n  requerimientoPersonalDTO: RequerimientoPersonalModel;\n  mostrarPopup: boolean = false;\n  listaUnidades: any[];\n  formulario: FormGroup;\n  nombreAccion : string;\n  filtrar: boolean;\n  expande: boolean;\n  verAcciones: boolean;\n  verDatos: boolean;\n  linkPopup = [];\n  datos: PuestoTrabajoModel = new PuestoTrabajoModel();\n  rutaFoto: any;\n  verFiltro: boolean;\n  @Output() aplicarDestino: EventEmitter<any> = new EventEmitter();\n  \n\t\n\n  constructor(private selectListEvaluaciones: SelectListEvaluacionesService, private generalSvc : GeneralService, private authService: AuthService,private saraAplicacionServices: SaraAplicacionService,private notificationBusService: ToastService,private selectListTalento: SelectListTalento,\n    private formBuilder: FormBuilder,private utilService: UtilsService,private puestoTrabajoSvc: PuestoTrabajoService, private cargarArchivo: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService, public translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.cargarFormulario();\n  }\n\n   inicializarDatos()  {\n\t\tthis.listaPuesto = [];\n\t\tthis.filtro = new PuestoTrabajoModel();\n\t\tthis.puestoSeleccionado = new PuestoTrabajoModel();\n\t\tthis.continuar = false;\n\t\tthis.listaEmpresa = this.selectListEvaluaciones.listaEmpresa();\n\t\tthis.verBotones = true;\n\t\t// this.saraAplicacionBean = getBean(SaraAplicacionBean.class);\n\t\t// this.rutaFoto  = this.getPropiedadAplicativo(PropiedadesAplicativoDTO.XRUTA_FOTO);\n    }\n\n  public async inicializar(puestoTrabajo: PuestoTrabajoModel, requerimientoPersonal: RequerimientoPersonalModel){\n    try {\n      this.inicializarDatos();\n\t\t\tthis.puestoTrabajoDTO = puestoTrabajo;\n\t\t\tthis.requerimientoPersonalDTO = requerimientoPersonal;\n\t\t\tthis.filtro.empresa = this.puestoTrabajoDTO.empresa;\n\t\t\tthis.verBotones = false;\n\t\t\tthis.continuar = false;\n\t\t\tthis.cargarListas();\n\t\t\t// setDestino(destino);\n      await this.cargarFormulario();\n\t\t\tthis.mostrarPopup= true;\n    } catch (error) {\n      \n    }\n  }\n\n  cargarFormulario() {\n    this.formulario = this.formBuilder.group({\n      llaveTabla: new FormControl((this.puestoTrabajoDTO?.llaveTabla) ? this.puestoTrabajoDTO?.llaveTabla : null),\n      empresa: new FormControl((this.puestoTrabajoDTO?.llaveTabla) ? this.puestoTrabajoDTO?.llaveTabla : null,),\n      unidad: new FormControl((this.puestoTrabajoDTO?.unidad) ? this.puestoTrabajoDTO?.unidad : null,),\n      nombreUnidad: new FormControl((this.puestoTrabajoDTO?.nombreUnidad) ? this.puestoTrabajoDTO?.nombreUnidad : null),\n      cargo: new FormControl((this.puestoTrabajoDTO?.cargo) ? this.puestoTrabajoDTO?.cargo : null),\n      nombreCargo: new FormControl((this.puestoTrabajoDTO?.nombreCargo) ? this.puestoTrabajoDTO?.nombreCargo : null),\n      cedulaUltimoOcupo: new FormControl((this.puestoTrabajoDTO?.cedulaUltimoOcupo) ? this.puestoTrabajoDTO?.cedulaUltimoOcupo : null),\n      nombreCompleto: new FormControl((this.puestoTrabajoDTO?.nombreCompleto) ? this.puestoTrabajoDTO?.nombreCompleto : null),\n      contratoOcupa: new FormControl((this.puestoTrabajoDTO?.contratoOcupa) ? this.puestoTrabajoDTO?.contratoOcupa : null),\n    });\n  }\n\n  async cargarListas(){\n    try {\n\t\t\tthis.listaUnidades = [];\n      this.listaEmpresa = await this.selectListTalento.getListaEmpresa();\n\t\t\tif (this.isPuestoTrabajo()) {\n        if (this.authService.getTokenKey('isAutoServicioPortal') == 'true' && this.authService.getTokenKey('isCliente') == 'true' ) {\n\t\t\t\t\tlet puestoFiltro: PuestoTrabajoModel = new PuestoTrabajoModel();\n\t\t\t\t\tpuestoFiltro.responsableUnidad = (Constantes.CONSTANTE_SI);\n\t\t\t\t\tpuestoFiltro.cedulaOcupa = (await this.saraAplicacionServices.getCedula());\n\t\t\t\t\tpuestoFiltro.usuarioRol = (this.authService.getTokenKey('AliasRol'));\n\t\t\t\t\tpuestoFiltro.tipoFiltro = (\"unidad\");\n\t\t\t\t\tpuestoFiltro.usuario =(this.authService.getTokenKey('login'));\n\t\t\t\t\tpuestoFiltro.filtroSucursalGestion =(Constantes.CONSTANTE_SI);\n\t\t\t\t\tlet  lista: PuestoTrabajoModel[] = await this.generalSvc.queryForList(new GeneralModel('PuestoTrabajoDTO',null,false,puestoFiltro)).toPromise();\n\t\t\t\t\tthis.listaUnidades = [];\n\t\t\t\t\tfor (const dto of lista) {\n\t\t\t\t\t\tthis.listaUnidades.push({key: dto.unidad  ,label: dto.nombreUnidad, });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tlet unidadFiltro: UnidadOrganizacionalModel = new UnidadOrganizacionalModel();\n\t\t\t\t\tunidadFiltro.empresa = ( parseInt(this.authService.getTokenKey('numeroEmpresa')));\n\t\t\t\t\tunidadFiltro.estado = (Constantes.CONSTANTE_SI);\n\t\t\t\t\tunidadFiltro.login = (this.authService.getTokenKey('login'));\n\t\t\t\t\tunidadFiltro.aliasRol = (this.authService.getTokenKey('AliasRol'));\n\t\t\t\t\tunidadFiltro.filtroSucursalGes = (Constantes.CONSTANTE_SI);\n\t\t\t\t\tlet lista : UnidadOrganizacionalModel[] = await this.generalSvc.queryForList(new GeneralModel('UnidadOrganizacionalDTO',null,false,unidadFiltro)).toPromise();\n\t\t\t\t\tthis.listaUnidades = [];\n\t\t\t\t\tfor (const dto of lista) {\n\t\t\t\t\t\tthis.listaUnidades.push({key: dto.unidad  ,label: dto.nombreUnidad, });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n    } catch (e) {\n      console.log(e);\n\t\t}\n  }\n\n  isPuestoTrabajo() {\n    if (this.requerimientoPersonalDTO == null || this.requerimientoPersonalDTO.tipo == null) {\n      return false;\n    } if (this.requerimientoPersonalDTO.tipo == 'PT') {\n      return true;\n    }\n    return false;\n  }\n\n  onSelectCargo(event) {\n    this.formulario.get('cargo').setValue(event.cargo);\n    this.formulario.get('nombreCargo').setValue(event.descripcion);\n  }\n\n  cargarUnidad(event) {\n    this.formulario.get('unidad').setValue(event.unidad);\n    this.formulario.get('nombreUnidad').setValue(event.nombreUnidad);\n  }\n\n  async onSelectEmpleado(evento: EmpleadoModel) {\n    this.formulario.get('nombreCompleto').setValue(evento.nombreCompleto);\n    this.formulario.get('cedulaUltimoOcupo').setValue(evento.cedula);\n    this.formulario.get('contratoOcupa').setValue(evento.contrato);\n  }\n\n\n  async validar() {\n    Object.keys(this.formulario.controls).forEach((key) => {\n      if (this.formulario.get(key).errors) {\n        this.formulario.get(key).clearAsyncValidators();\n      }\n    });\n    this.formulario.get('empresa').addValidators([Validators.required]);\n      this.formulario.get('nombreUnidad').addValidators([Validators.required]);\n      this.formulario.get('nombreCargo').addValidators([Validators.required]);\n    Object.keys(this.formulario.controls).forEach((key) => {\n      this.formulario.get(key).updateValueAndValidity();\n    });\n  }\n\n  setMostrarPopup(boleano){\n    this.mostrarPopup = boleano;\n  }\n\n  handleEnterKey(event: any) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  blobToBase64(blob: Blob) {\n    let retorno: string = '';\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      retorno = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n    return retorno;\n  }\n\n\n  async actionTraerPuestos() {\n    await this.validar();\n    await this.utilService.sleep(100);\n    this.continuar = false;\n    this.listaPuesto = []\n    if (!this.formulario.valid) {\n      Object.keys(this.formulario.controls).forEach((key) => {\n        if (this.formulario.get(key).errors) {\n          this.formulario.get(key).markAsDirty();\n          console.log(key);\n\n        }\n      });\n      this.notificationBusService.showError('Faltan campos obligatorios');\n      return null;\n    }\n    if (this.formulario.get('empresa').value != null && this.formulario.get('empresa').value != 0) {\n      this.filtro.empresa = this.formulario.get('empresa').value;\n    }\n    if (this.formulario.get('unidad').value != null && this.formulario.get('unidad').value != Constantes.ESPACIO_NULO) {\n      this.filtro.unidad = this.formulario.get('unidad').value;\n    }\n    if (this.formulario.get('cargo').value != null && this.formulario.get('cargo').value != Constantes.ESPACIO_NULO) {\n      this.filtro.cargo = this.formulario.get('cargo').value;\n    }\n    if (this.formulario.get('cedulaUltimoOcupo').value != null && this.formulario.get('cedulaUltimoOcupo').value != 0) {\n      this.filtro.contratoOcupa = this.formulario.get('cedulaUltimoOcupo').value;\n    } else {\n      this.filtro.contratoOcupa = null;\n    }\n    this.filtro.tipoEstados = \"TODOS\";\n    this.listaPuesto = await this.puestoTrabajoSvc.consultarListaPuestoTrabajo(this.filtro);\n    if (this.listaPuesto.length == 0) {\n      this.notificationBusService.showWarning('No existen registros');\n    } else {\n      let caminoFoto: string;\n      for (const unPuesto of this.listaPuesto) {\n        caminoFoto = null;\n        if (unPuesto.cedulaOcupa != null) {\n          if (unPuesto.caminoFotoOcupa != null && unPuesto.caminoFotoOcupa != Constantes.ESPACIO_BLANCO) {\n\n            let propiedad = 'ruta_fotos';\n            let aplicacion = this.authService.getTokenKey('aplicacion');\n            try {\n              this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(unPuesto.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n                const reader = new FileReader();\n                reader.onload = () => {\n                  const dataUrl = reader.result as string;\n                  const base64 = dataUrl.split(',')[1];\n                  unPuesto.caminoFotoTemporal = 'data:image/png;base64,' + base64\n                };\n                reader.readAsDataURL(blob)\n              });\n            } catch (error) {\n              unPuesto.caminoFotoTemporal = null;\n            }\n          }\n        }\n\n      }\n      console.log('listaPuesto', JSON.stringify(this.listaPuesto));\n    }\n  }\n\n  public  llevarDatos() {\n\t\tif (!this.formulario.valid) {\n\t\t\treturn null;\n\t\t}\n    this.aplicarDestino.emit(this.puestoSeleccionado);\n\t\tthis.setMostrarPopup(false);\n\t\treturn null;\n\t}\n\n\n  public  seleccionarPuesto(ev) {\n\t\tthis.puestoSeleccionado = ev.data;\n\t\tif (this.puestoSeleccionado != null) {\n\t\t\tthis.continuar = true;\n\t\t}\n\t}\n\n\n}\n\n\n\n","<p-dialog header=\"{{'nuevorequerimientopersonal' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"setMostrarPopup(false)\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    \n        <h4 class=\"text-xl\">{{nombreAccion}}</h4>\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <div class=\"Inputgroup\">\n                <div class=\"p-fluid p-formgrid grid\" [formGroup]=\"formulario\">\n\n                    <!-- EMPRESA -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown id=\"tipoActividad\" [options]=\"listaEmpresa\" formControlName=\"empresa\"\n                                optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                [autoZIndex]=\"false\" ></p-dropdown>\n                            <label htmlFor=\"tipoActividad\">{{'empresa' | translate}}*</label>\n                        </span>\n                    </div>\n\n                    <!-- UNIDAD-->\n                    <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"!isPuestoTrabajo()\">\n                        <span class=\"p-float-label\">\n                                <app-input-helper-unidad formControlName=\"nombreUnidad\" [readonly]=\"false\" [empresa]=\"this.formulario.get('empresa').value\"\n                                    [label]=\"this.formulario.get('nombreUnidad').value == null ? '' : this.formulario.get('nombreUnidad').value\"\n                                    [booleano]=\"this.formulario.get('nombreUnidad').value == null\" (onSelected)=\"cargarUnidad($event)\"\n                                    [header]=\"this.translateService.instant('unidad' | translate) +'*'\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                                </app-input-helper-unidad>\n                        </span>\n                    </div>\n                    <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"!verBotones && isPuestoTrabajo()\">\n                        <span class=\"p-float-label\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"tipoActividad\" [options]=\"listaEmpresa\" formControlName=\"unidad\"\n                                    optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                    [autoZIndex]=\"false\" ></p-dropdown>\n                                <label htmlFor=\"tipoActividad\">{{'unidadorganizacional' | translate}}*</label>\n                            </span>\n                        </span>\n                    </div>\n\n\n                    <!-- CARGO -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                                <app-input-helper-cargo [booleano]=\"this.formulario.get('cargo').value == null\" formControlName=\"nombreCargo\" [nombreInput]=\"''\" (keydown.enter)=\"handleEnterKey($event)\" \n                                [label]=\"this.formulario.get('nombreCargo').value ? this.formulario.get('nombreCargo').value : ''\" [mostrarX]=\"false\"\n                                (onSelected)=\"onSelectCargo($event)\"></app-input-helper-cargo> \n                        </span>\n                    </div>\n\n                    <!-- Persona -->\n                    <!-- <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"!verFiltro\">\n                        <span class=\"p-float-label\">\n                            <app-input-helper-empleado-boton formControlName=\"nombreCompleto\" (keydown.enter)=\"handleEnterKey($event)\"\n                            [label]=\"this.formulario.get('nombreCompleto').value == null ? '' : this.formulario.get('nombreCompleto').value\"\n                            (onSelected)=\"onSelectEmpleado($event)\">\n                        </app-input-helper-empleado-boton>\n                        </span>\n                    </div> -->\n\n                </div>\n                <div [class]=\"listaPuesto.length != 0 ? 'flex justify-content-end align-items-center mb-2' : 'flex justify-content-end align-items-center mb-1'\">\n                    <button pButton class=\"p-button-raised ml-2\"  label=\"{{'link_filtrar'| translate}}\"\n                        (click)=\"actionTraerPuestos()\"><span class=\"glyphicons glyphicons-search\" aria-hidden=\"true\"></span> </button>\n                    <button class=\"p-element p-ripple p-button-secondary ml-2\" *ngIf=\"continuar\" pButton label=\"{{'link_continuar'| translate}}\"\n                        (click)=\"llevarDatos()\"> <span class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span></button>\n                </div>\n            </div>\n        </div>\n        <div *ngIf=\"listaPuesto.length != 0\">\n            <p-table #tablaGeneral id=\"tabla_lista_sucursal\" [value]=\"listaPuesto\" responsiveLayout=\"scroll\"\n            [scrollable]=\"true\" selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n            [lazy]=\"false\" dataKey=\"llave\" (onRowSelect)=\"seleccionarPuesto($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{'nombre' | translate}}</th>\n                    <th>{{'' | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-puesto>\n                <tr [pSelectableRow]=\"puesto\" >\n                    <td>\n                        {{puesto.nombreOcupa + ' - Numero Puesto: ' + puesto.numeroPuesto}}\n                    </td>\n                    <td>\n                        <div class=\"justify-content-between align-items-center ml-5\">\n                            <img [src]=\"puesto?.caminoFotoTemporal\" alt=\"Foto\" class=\"us-foto-perfil avatar-image\" *ngIf=\"puesto?.caminoFotoTemporal\">\n                            <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"us-foto-perfil avatar-image\" *ngIf=\"!puesto?.caminoFotoTemporal\">\n                        </div>\n                        \n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n        </div>\n</p-dialog>\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\nimport { Constantes } from \"../../../shared/constantes/Constantes\";\n\n@Pipe({\n    name: 'requerimientoPipe',\n    standalone: true\n})\n  \n  @Injectable({\n    providedIn: 'root'\n  })\n\n\nexport class RequerimientoPersonalPipe implements PipeTransform {\n\n    ESTADOELABORACION = \"E\";\n\tESTADOSOLICITUD = Constantes.CONSTANTE_SI;\n\tESTADOPROCESO = \"P\";\n\tESTADOCERRARO = \"C\";\n\tESTADOINCONSISTENTE  = \"I\";\n\tESTADOAUTORIZADO  = \"A\";\n\tESTADOANULADO = \"X\";\n\t\n\t\n\t\n\tDESESTADOELABORACION = \"Elaboraci\\u00F3n\";\n\tDESESTADOSOLICITUD = \"Solicitud\";\n\tDESESTADOPROCESO = \"Proceso Selecci\\u00F3n\";\n\tDESESTADOCERRARO = \"Cerrado\";\n\tDESESTADOINCONSISTENTE = \"No Autorizado\";\n\tDESESTADOAUTORIZADO = \"Autorizado\";\n\tDESESTADOANULADO = \"Anulado\";\n\t\n\tBUSCARNUESVOPTDES = \"Buscar un puesto de trabajo\";\n\tBUSCARNUMEROIDENTDES = \"Buscar Numero de Identificaci\\u00F3n\";\n\tINCLUIRDATOSDES = \"Incluir los datos manualmente\";\n\t\n\tCOSTEO = \"Costeo\";\n\tDESCRIPCION_CARGO = \"BASE\";\n\tREQUERIMIENTO \t= \"REQUERIMIENTO\";\n\tFALTA_CAMPOS \t= \"Falta ingresar campos obligatorios.\";\n\tVALIDACION \t\t= \"problemaValidacion\";\n\tDISTRIBUCION_CONTABLE\t\t= \"distribucion\";\n\tUBICACION \t\t= \"ubica\";\n\tLINEA_COSTO \t\t= \"lineaCosto\";\n\tCENTRO_COSTO \t= \"centroCosto\";\n\tCANTIDAD \t\t= \"cantidad\";\n\tUNIDAD_SOL \t\t= \"unidadSol\";\n\tVINCULACION_LABORAL = \"vinculacionLaboral\";\n\tCONSECUTIVO \t\t= \"cadenaConsecutivo\";\n\tTIPO_PLANTA \t\t= \"nombreTipoPuesto\";\n\tCLASE_PUESTO \t= \"descripcionClasePuesto\";\n\tULTIMO_OCUPO                = \"ultimoOcupo\";\n\tSUCURSAL_GESTION            = \"sucursalGes\";\n\n    LISTAESTADOREQUERIMIENTO = [\n\t\t{codigo: this.ESTADOELABORACION, nombre: this.DESESTADOELABORACION},\n\t\t{codigo: this.ESTADOSOLICITUD, nombre: this.DESESTADOSOLICITUD},\n\t\t{codigo: this.ESTADOPROCESO, nombre: this.DESESTADOPROCESO},\n        {codigo: this.ESTADOCERRARO, nombre: this.DESESTADOCERRARO},\n\t\t{codigo: this.ESTADOINCONSISTENTE, nombre: this.DESESTADOINCONSISTENTE},\n\t\t{codigo: this.ESTADOAUTORIZADO, nombre: this.DESESTADOAUTORIZADO},\n        {codigo: this.ESTADOANULADO, nombre: this.DESESTADOANULADO},\n\t]\n\n    LISTAESTADOPOPUP = [\n        {codigo: this.BUSCARNUESVOPTDES, nombre: this.BUSCARNUESVOPTDES},\n\t\t{codigo: this.BUSCARNUMEROIDENTDES, nombre: this.BUSCARNUMEROIDENTDES},\n        {codigo: this.INCLUIRDATOSDES, nombre: this.INCLUIRDATOSDES},\n    ]\n\n\n\tREQUERIMIENTOPM = 'V';\n\n\tPOPUPMOTIVOREQUERIMIENTO = 'P';\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listadoRequerimiento') { this.LISTAESTADOREQUERIMIENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n        return result;\n      }\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { PuestoRequerimientoModel } from '../models/PuestoRequerimientoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PuestoRequerimientoService {\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n      }\n\n      private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          // A client-side or network error occurred. Handle it accordingly.\n          console.error('An error occurred:', error.error);\n        } else {\n          // The backend returned an unsuccessful response code.\n          // The response body may contain clues as to what went wrong.\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n      cantidadPuestoRequerimientoSegunPuesto(puestoRequerimiento :PuestoRequerimientoModel): Observable<number> {\n        return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/puestoRequerimiento/cantidadPuestoRequerimientoSegunPuesto`, puestoRequerimiento).pipe(\n          catchError(this.handleError)\n        );\n      }\n      consultarPuestosRequerimientoSegunPuesto(puestoRequerimiento :PuestoRequerimientoModel): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/puestoRequerimiento/consultarPuestosRequerimientoSegunPuesto`, puestoRequerimiento).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n      cantidadCandidatosEnganche(puestoRequerimiento :PuestoRequerimientoModel): Observable<number> {\n        return this.httpClient.post<number>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/puestoRequerimiento/cantidadCandidatosEnganche`, puestoRequerimiento).pipe(\n          catchError(this.handleError)\n        );\n      }\n    \n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { PuestoRequerimientoModel } from '../../../models/PuestoRequerimientoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { RequerimientoPersonalPipe } from '../../../pipes/requerimiento-personal.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { PuestoRequerimientoService } from '../../../services/puesto-Requerimiento.service';\nimport { PopupSeleccionPuestoTrabajoComponent } from '../../../popups/popup-seleccion-puesto-trabajo/popup-seleccion-puesto-trabajo.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-listado-puesto-requerimiento',\n    templateUrl: './listado-puesto-requerimiento.component.html',\n    styleUrls: ['./listado-puesto-requerimiento.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupSeleccionPuestoTrabajoComponent, TranslateModule, FiltroGeneralComponent]\n})\nexport class ListadoPuestoRequerimientoComponent implements OnInit {\n  @ViewChild('popupSeleccionPuestoTrabajo') popupSeleccionPuestoTrabajo: PopupSeleccionPuestoTrabajoComponent;\n  @Input() requerimientoPMBean: RequerimientoPmPage;\n  requerimientoPersonalDTO: RequerimientoPersonalModel = new RequerimientoPersonalModel();\n  puestoRequerimientoDTO: PuestoRequerimientoModel = new PuestoRequerimientoModel();\n  listaPuesto: PuestoRequerimientoModel[] = []\n  constructor(private generalSvc: GeneralService, private authService: AuthService, private requerimientoPersonalPipe: RequerimientoPersonalPipe, private notificationBusService: ToastService,\n    private puestoRequerimientoService : PuestoRequerimientoService) { }\n\n\n  ngOnInit(): void {\n  }\n\n\n  async inicializar(requerimientoPersonalDTO: RequerimientoPersonalModel) {\n    try {\n      this.requerimientoPersonalDTO = requerimientoPersonalDTO;\n      await this.traerListado();\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  async traerListado() {\n    this.listaPuesto = [];\n    if (this.requerimientoPersonalDTO == null) {\n      return;\n    }\n    let filtroBean: PuestoRequerimientoModel = new PuestoRequerimientoModel();\n    filtroBean.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n    this.listaPuesto = await this.generalSvc.queryForList(new GeneralModel('PuestoRequerimientoDTO', null, false, filtroBean)).toPromise();\n\n    if (this.requerimientoPersonalDTO.puestoTrabajo != null) {\n      let existe: boolean = false;\n      for (const unPuesto of this.listaPuesto) {\n        if (this.requerimientoPersonalDTO.puestoTrabajo == unPuesto.puesto) {\n          if (unPuesto.candidato == null) {\n            unPuesto.candidato = 'original';\n          }\n          existe = true;\n          break;\n        }\n      }\n\n      if (!existe) {\n        let puestoTrabajoDTO: PuestoTrabajoModel = new PuestoTrabajoModel();\n        puestoTrabajoDTO.llave = this.requerimientoPersonalDTO.puestoTrabajo;\n        puestoTrabajoDTO = await this.generalSvc.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, puestoTrabajoDTO)).toPromise();\n        if (puestoTrabajoDTO == null) {\n          return;\n        }\n        let dto: PuestoRequerimientoModel = new PuestoRequerimientoModel();\n        dto.puesto = (puestoTrabajoDTO.llave);\n        dto.unidad = (puestoTrabajoDTO.unidad);\n        dto.nombreUnidad = (puestoTrabajoDTO.nombreUnidad);\n        dto.cargo = (puestoTrabajoDTO.cargo);\n        dto.nombreCargo = (puestoTrabajoDTO.nombreCargo);\n        dto.codigoPuesto = (puestoTrabajoDTO.numeroPuesto);\n        dto.candidato = (\"original\");\n        this.listaPuesto.push(dto);\n      }\n\n    }\n  }\n\n  \n\n\n  isVerBotonNuevo() {\n    if (this.requerimientoPersonalDTO == null) {\n      return false;\n    }\n    let cantidad: number = this.requerimientoPersonalDTO.cantidad;\n    if (cantidad == null || cantidad == 0) {\n      cantidad = 1;\n    }\n    if (cantidad == 1) {\n      if (this.requerimientoPersonalDTO.puestoTrabajo != null) {\n        return false;\n      }\n    }\n    if (cantidad == this.listaPuesto.length) {\n      return false;\n    }\n    return true;\n  }\n\n  isEstadoEditable() {\n    if (this.authService.getTokenKey('isCliente')) {\n      return this.requerimientoPersonalPipe.ESTADOSOLICITUD?.toLowerCase() == this.requerimientoPersonalDTO.estado?.toLowerCase() || this.requerimientoPersonalPipe.ESTADOINCONSISTENTE?.toLowerCase() == this.requerimientoPersonalDTO.estado?.toLowerCase();\n    }\n    if (this.requerimientoPersonalPipe.ESTADOCERRARO?.toLowerCase() == this.requerimientoPersonalDTO.estado?.toLowerCase() || this.requerimientoPersonalPipe.ESTADOANULADO?.toLowerCase() == this.requerimientoPersonalDTO.estado?.toLowerCase()) {\n      return false;\n    }\n    return true\n  }\n\n\n\n\n  public async setPuestoSeleccionado(puestoTrabajo: PuestoTrabajoModel){\n\t\ttry {\n\t\t\tif (this.requerimientoPersonalDTO == null){\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet filtro: PuestoRequerimientoModel = new PuestoRequerimientoModel();\n\t\t\tfiltro.requerimiento = (this.requerimientoPersonalDTO.llaveTabla);\n\t\t\tif (this.requerimientoPersonalDTO.cantidad == 1){\n\t\t\t\tthis.requerimientoPersonalDTO.puestoTrabajo = puestoTrabajo.llave;\n\t\t\t\tawait this.generalSvc.update(new GeneralModel('RequerimientoPersonalDTO',null,false,this.requerimientoPersonalDTO)).toPromise();\n\t\t\t\tthis.traerListado();\n        this.notificationBusService.showInfo(Constantes.MENSAJE_GUARDAR)\n\t\t\t\treturn;\n\t\t\t} \n\t\t\tif (await this.generalSvc.cantidadRegistros(new GeneralModel('PuestoRequerimientoDTO',null,false,filtro)).toPromise()+1 >this.requerimientoPersonalDTO.cantidad) {\n\t\t\t\tthis.notificationBusService.showWarning(\"Numero de puestos excedido\")\n        return;\n\t\t\t}\n\t\t\t\n\t\t\tlet busqueda: PuestoRequerimientoModel = new PuestoRequerimientoModel();\n\t\t\tbusqueda.puesto = puestoTrabajo.llave ;\n\t\t\tlet cantidad: number = await this.puestoRequerimientoService.cantidadPuestoRequerimientoSegunPuesto(busqueda).toPromise();\n\t\t\tif (cantidad != 0){\n        this.notificationBusService.showWarning('Ya existe este puesto de trabajo en un requerimiento, imposible guardar')\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.puestoRequerimientoDTO = new PuestoRequerimientoModel();\n\t\t\tthis.puestoRequerimientoDTO.puesto = puestoTrabajo.llave;\n\t\t\tthis.puestoRequerimientoDTO.candidato = (null);\n\t\t\tthis.puestoRequerimientoDTO.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n\t\t\tthis.puestoRequerimientoDTO =await  this.generalSvc.crearRegistro(new GeneralModel('PuestoRequerimientoDTO',null,false, this.puestoRequerimientoDTO)).toPromise();\n\t\t\tthis.traerListado();\n      this.notificationBusService.showInfo(Constantes.MENSAJE_GUARDAR);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n    }\n\t}\n\n\n  public nuevo(){\n    try {\n      if(this.requerimientoPersonalDTO != null){\n        let dto : PuestoTrabajoModel = new PuestoTrabajoModel();\n        dto.empresa = this.requerimientoPersonalDTO.empresa\n        dto.unidad = this.requerimientoPersonalDTO.unidad\n        dto.nombreUnidad = this.requerimientoPersonalDTO.nombreUnidad;\n        dto.cargo = this.requerimientoPersonalDTO.cargo;\n        dto.nombreCargo = this.requerimientoPersonalDTO.nombreCargo;\n        this.popupSeleccionPuestoTrabajo.inicializar(dto,this.requerimientoPersonalDTO);\n      }\n    } catch (error) {\n      console.trace(error)\n    }\n  }\n\n\n}\n","<div class=\" card mt-3\">\n    <div class=\"mt-3 mb-3\">\n        <h5><i class=\"glyphicons glyphicons-building\"></i>{{'datos' | translate}} {{'basicos' |\n            translate}}</h5>\n    </div>\n    <div class=\"p-fluid p-formgrid grid col-12\" style=\"color: gray;\">\n        <!-- EMPRESA -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('empresa') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO.nombreEmpresa }}</label>\n        </div>\n        <!-- UNIDAD ORGANIZACIONAL PADRE -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('unidadorganizacional') | translate}} {{'padre' |\n                translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO.unidadPadre}} -\n                {{requerimientoPMBean?.requerimientoPersonalDTO.nombreUnidadPadre}}</label>\n        </div>\n        <!-- UNIDAD ORGANIZACIONAL -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('unidadorganizacional') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO.unidad}} -\n                {{requerimientoPMBean?.requerimientoPersonalDTO.nombreUnidad}}</label>\n        </div>\n        <!-- ESTADO -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('estado') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO.nombreEstado}}</label>\n        </div>\n        <!-- MOTIVO VACANTE -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('motivo') | translate}} {{('vacante') |\n                translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO.nombreMotivoRequerimiento}}</label>\n        </div>\n        <!-- NUMERO PUESTO -->\n        <div class=\"col-12 md:col-3 lg:col-3\" *ngIf=\"requerimientoPMBean?.requerimientoPersonalDTO?.puesto != null\">\n            <label class=\"col-12 font-semibold\">{{('numeropuesto') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\" *ngIf=\"requerimientoPMBean?.requerimientoPersonalDTO?.puesto != null\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.puesto}}</label>\n        </div>\n        <!-- ESTADO PUESTO -->\n        <div class=\"col-12 md:col-3 lg:col-3\"\n            *ngIf=\"requerimientoPMBean?.requerimientoPersonalDTO?.estadoPuestoTrabajo  != null\">\n            <label class=\"col-12 font-semibold\">{{('estado') | translate}} {{('puesto') |\n                translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\"\n            *ngIf=\"requerimientoPMBean?.requerimientoPersonalDTO?.estadoPuestoTrabajo  != null\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreMotivoRequerimiento}}</label>\n        </div>\n\n    </div>\n</div>\n\n\n<div class=\"flex justify-content-end align-items-center mb-3 mt-3\">\n    <!-- <button pButton class=\"p-button-raised ml-2\" label=\"cambiar\" (click)=\"cambiarAccion()\"><span\nclass=\"glyphicons glyphicons-refresh\" aria-hidden=\"true\"></span>\n</button> -->\n    <button class=\" p-button-outlined ml-2\"\n        *ngIf=\"isVerBotonNuevo() && isEstadoEditable()\"\n        pButton label=\"{{'link_guardar'| translate}}\" (click)=\"nuevo()\"> <span\n            class=\"glyphicons glyphicons-bin\" aria-hidden=\"true\"></span></button>\n        </div>\n\n<p-table #tablaGeneral id=\"tabla_lista_puesto\" [value]=\"listaPuesto\" responsiveLayout=\"scroll\"\n    [paginator]=\"listaPuesto.length > 10\" [scrollable]=\"true\" selectionMode=\"single\"\n    scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n    [totalRecords]=\"listaPuesto.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\n    dataKey=\"llaveTabla\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th class=\"w-6rem\">{{'unidad' | translate}}</th>\n            <th class=\"w-6rem\">{{'cargo' | translate}}</th>\n            <th class=\"w-6rem\">{{'puesto' | translate}}</th>\n            <th></th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-puesto let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr>\n            <td class=\"w-6rem\">\n                {{puesto.unidad}} - {{puesto.nombreUnidad}}\n            </td>\n            <td class=\"w-6rem\">\n                {{puesto.cargo}} - {{puesto.nombreCargo}}\n            </td>\n            <td class=\"w-6rem\">\n                {{puesto.codigoPuesto}}\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n<app-popup-seleccion-puesto-trabajo #popupSeleccionPuestoTrabajo (aplicarDestino)=\"setPuestoSeleccionado($event)\"></app-popup-seleccion-puesto-trabajo>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { PerfilTablasModel } from '../models/PerfilTablasModel';\nimport { RequerimientoPersonalModel } from '../models/RequerimientoPersonalModel';\nimport { PuestoTrabajoModel } from '../models/PuestoTrabajoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RequerimientoPersonalService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  obtenerRequerimiento(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/obtenerRequerimiento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerFiltroRequerimiento(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/obtenerFiltroRequerimiento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerPuestos(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/traerPuestos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  cargarRequerimiento(general: any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/cargarRequerimiento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  actualizarPuestoSeleccionado(seleccionados, requerimientoPersonalDTO): Observable<any> {\n    let formData = new FormData;\n    formData.append('seleccionados',JSON.stringify(seleccionados));\n    formData.append('requerimientoPersonalDTO',JSON.stringify(requerimientoPersonalDTO));\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/actualizarPuestoSeleccionado`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarPuestoNoSeleccionado(noSeleccionados: PerfilTablasModel[], requerimientoPersonalDTO: RequerimientoPersonalModel): Observable<any> {\n    let formData = new FormData;\n    formData.append('noSeleccionados',JSON.stringify(noSeleccionados));\n    formData.append('requerimientoPersonalDTO',JSON.stringify(requerimientoPersonalDTO));\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/actualizarPuestoNoSeleccionado`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  actualizarPerfil(lista: PerfilTablasModel[], requerimientoPersonalDTO: string, tipo: string): Observable<any> {\n    let formData = new FormData;\n    formData.append('lista',JSON.stringify(lista));\n    formData.append('tipo',tipo);\n    formData.append('requerimientoPersonalDTO',requerimientoPersonalDTO);\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/actualizarPerfil`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  dibujarTabla(numeroSeccionActual:number, seccionActual: any): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('seccionActual',JSON.stringify(seccionActual));\n    formData.append('numeroSeccionActual',numeroSeccionActual.toString());\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/dibujarTabla`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  inicializarPopup(seccionPM:any, objeto: any, nuevo: boolean): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('seccionPM',JSON.stringify(seccionPM));\n    formData.append('objeto',JSON.stringify(objeto));\n    formData.append('nuevo',nuevo.toString());\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/inicializarPopup`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardar(objeto:object, nuevo: boolean): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('objeto',JSON.stringify(objeto));\n    formData.append('nuevo',nuevo.toString());\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/guardar`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  eliminar(objeto:object, requerimientoPersonalDTO: RequerimientoPersonalModel): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('objeto',JSON.stringify(objeto));\n    formData.append('requerimientoPersonalDTO',JSON.stringify(requerimientoPersonalDTO));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/eliminar`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarPuestoRequerimiento(puestoTrabajo :PuestoTrabajoModel,llave:string): Observable<any[]> {\n    let formData = new FormData;\n    formData.append('puestoTrabajo',JSON.stringify(puestoTrabajo));\n    formData.append('llave',llave);\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/requerimientoPersonal/actualizarPuestoRequerimiento`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormulariodinamicoComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { RequerimientoPersonalService } from '../../services/requerimiento-personal.service';\nimport { RequerimientoPmPage } from '../../pages/planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { FuncionPuestraModel } from '../../models/FuncionPuestraModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ConfirmationService } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-popup-requerimiento-personal',\n    templateUrl: './popup-requerimiento-personal.component.html',\n    styleUrls: ['./popup-requerimiento-personal.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, ButtonDirective, Ripple, NgIf, TranslateModule, FormulariodinamicoComponent]\n})\nexport class PopupRequerimientoPersonalComponent implements OnInit {\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n  mostrarBotones: boolean;\n  tablaCaracteristicas\n  listadatotablaHijos\n  objeto\n  funcionActividad\n  nombreFormulario: string;\n  nuevo: boolean;\n  @Input()\n  public requerimientoPm : RequerimientoPmPage;\n  @Output() vistaRegresar: EventEmitter<any> = new EventEmitter();\n  constructor(private requerimientoPersonalSvc: RequerimientoPersonalService, private notificationBusService: ToastService, private generalPipe: GeneralPipe, private generalSvc: GeneralService, private confirmationService: ConfirmationService) { }\n\n  ngOnInit(): void {\n  }\n\n  public async ver(seccionPM,objeto,nuevo){\n    try {\n      this.mostrarBotones = true;\n      let data = await this.requerimientoPersonalSvc.inicializarPopup(seccionPM,objeto,nuevo).toPromise();\n      this.objeto = data['objeto'];\n      this.tablaCaracteristicas = data['tablaCaracteristicas'];\n      this.nombreFormulario = data['formulario']?.grupos[0]?.nombre\n      this.nombreFormulario=  this.nombreFormulario.toLowerCase();\n      this.formulario.campos = data['formulario']?.grupos[0]?.campos\n      this.formulario.editable = data['formulario']?.editable;\n      this.listadatotablaHijos = data['listadatotablaHijos'];\n      this.nuevo = nuevo;\n      this.funcionActividad = data['funcionActividad'];\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n  async guardar(){\n    try {\n      if(this.formulario.validar()){\n        await this.requerimientoPm.guardar(this.formulario.getObjecto(),this.nuevo);\n        await this.guardarActividades();\n        await this.requerimientoPm.dibujarTabla();\n        this.regresar();\n      }else{\n        this.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      }\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  async guardarActividades(){\n    try {\n      if(this.objeto instanceof FuncionPuestraModel){\n        let funcion : FuncionPuestraModel = this.objeto;\n        if(funcion.actividades == null){\n          return;\n        }\n        for (const actividad of funcion.actividades) {\n          if(actividad.llaveTabla == null){\n            actividad.funcionPuesto = funcion.funcionpuestra;\n            await this.generalSvc.crearRegistro(new GeneralModel('FuncionPuestraDTO',null,false,actividad)).toPromise();\n          }\n        }\n      }\n    } catch (error) {\n      console.trace(error)\n    }\n  }\n\n  eliminar(event){\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      accept: () => {\n        this.setEliminar()\n      },\n      reject: () => { },\n    });\n  }\n  setEliminar(){\n    this.requerimientoPm.eliminar(this.formulario.getObjecto());\n    this.regresar();\n  }\n\n  regresar(){\n    this.vistaRegresar.emit(false);\n  }\n\n\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-end align-items-center mt-2 mb-2\">\n    <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n        (click)=\"regresar()\" label=\"{{'link_regresar' | translate}} a listado {{ nombreFormulario}}\">\n    </button>\n</div>\n<div class=\" card\">\n    <div class=\"mt-3\">\n        <h5><i class=\"glyphicons glyphicons-building\"></i>{{ nombreFormulario | translate}}</h5>\n    </div>\n    <formulario-dinamico #formulario [objeto]=\"this.objeto\"></formulario-dinamico>\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n        <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"mostrarBotones && (!nuevo)\" icon=\"glyphicons glyphicons-bin\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"mostrarBotones\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n        </button>\n    </div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class MotivoRequerimientoModel extends UnionModel{\n\t\n\tmotivo: string;\n\tdescripcion: string;\n\tespecificar: string;\n\tinstructivo: string;\n\tprocesoseleccion: string;\n\ttipo: string;\n\tvariosTipos: string;\n\tclasificacion: string;\n\tempresa: number;\n\tmodoCompensacion: string;\n\tvinculacionModo: number;\n\tvinculacionRelacionada: number;\n\t\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\n\nimport { MotivoRequerimientoModel } from '../models/MotivoRequerimientoModel';\n\n@Injectable({\n    providedIn: 'root'\n  })\n  export class motivoRequerimientoService {\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n      }\n\n    private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          // A client-side or network error occurred. Handle it accordingly.\n          console.error('An error occurred:', error.error);\n        } else {\n          // The backend returned an unsuccessful response code.\n          // The response body may contain clues as to what went wrong.\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n      consultarMotivosRequerimientoSegunTipo(motivo: MotivoRequerimientoModel, tipo: string): Observable<any[]> {\n        let formData = new FormData();\n        formData.append(\"motivo\", JSON.stringify(motivo));\n        formData.append(\"tipo\", tipo);\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/motivoRequerimiento/consultarMotivosRequerimientoSegunTipo`, formData).pipe(\n          catchError(this.handleError)\n        );\n      }\n      traerListaPuesto(general?){\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/motivoRequerimiento/traerListaPuesto`, general).pipe(\n            catchError(this.handleError)\n          );\n      }\n\n  }","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { MotivoRequerimientoModel } from '../../models/MotivoRequerimientoModel';\nimport { motivoRequerimientoService } from '../../services/motivoRequerimiento.service';\nimport { ToastService, UtilsService } from 'general-library-union';\nimport { RequerimientoPersonalPipe } from '../../pipes/requerimiento-personal.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-motivo-requerimiento',\n    templateUrl: './popup-motivo-requerimiento.component.html',\n    styleUrls: ['./popup-motivo-requerimiento.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule]\n})\nexport class PopupMotivoRequerimientoComponent implements OnInit {\n\n  tipo: any;\n  destino: string;\n  filtro: MotivoRequerimientoModel = new MotivoRequerimientoModel()\n  listaMotivoRequerimiento: MotivoRequerimientoModel[] = [];\n  mostrarPopup: boolean;\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n  @Output() aplicarDestino: EventEmitter<any> = new EventEmitter();\n\n  \n  \n\n  constructor(private motivoRequerimientoSvc: motivoRequerimientoService, private notificationBusService: ToastService, private utilsService: UtilsService, private requerimientoPersonalPipe: RequerimientoPersonalPipe) { }\n\n  ngOnInit(): void {\n  }\n\n  public ocultar() {\n    this.regresar.emit(true);\n  }\n\n  public async buscar(destino,tipo: any,clasificacion :string,empresa: number){\n    this.destino = destino,\n    this.tipo = tipo;\n    try {\n      this.filtro = new MotivoRequerimientoModel();\n      this.filtro.clasificacion = clasificacion;\n      this.filtro.empresa = empresa;\n      this.traerLista();\n      this.mostrarPopup = true;\n    } catch (error) {\n      console.log(error);\n      \n    }\n\n  }\n\n  async traerLista(){\n    this.listaMotivoRequerimiento = await  this.motivoRequerimientoSvc.consultarMotivosRequerimientoSegunTipo(this.filtro,this.tipo).toPromise();\n    if(this.listaMotivoRequerimiento.length == 0){\n      this.mostrarPopup = false;\n      this.notificationBusService.showInfo('No se encontro ningun motivo de requerimiento asociado');\n      return\n    }\n  }\n\n  setMostrarPopup(booleano: boolean) {\n    this.mostrarPopup = booleano;\n    this.regresar.emit(booleano);\n  }\n\n  async seleccionar(evento) {\n    try {\n      if(this.destino = this.requerimientoPersonalPipe.POPUPMOTIVOREQUERIMIENTO){\n        await this.aplicarDestinoOcultar(evento.data);\n      }else{\n        await this.cambiarMotivo(evento.data)\n      }\n      \n    } catch (error) {\n      console.log(error)\n    }\n  }\n\n  async cambiarMotivo(evento){\n    this.aplicarDestino.emit(evento);\n    this.mostrarPopup = false;\n  }\n\n  async aplicarDestinoOcultar(evento) {\n    this.aplicarDestino.emit(evento);\n    await this.utilsService.sleep(10);\n    this.mostrarPopup = false;\n    this.regresar.emit(false);\n  }\n\n\n \n\n}\n","<p-dialog header=\"{{'motivorequerimiento' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '54vw'}\"\n    (onHide)=\"setMostrarPopup(false)\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <p-table #tablaGeneral id=\"tabla_lista_sucursal\" [value]=\"listaMotivoRequerimiento\" responsiveLayout=\"scroll\"\n        [scrollable]=\"true\" selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n        [lazy]=\"false\" dataKey=\"key\" (onRowSelect)=\"seleccionar($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'descripcion' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-campo>\n            <tr [pSelectableRow]=\"campo\">\n                <td>\n                    {{campo.descripcion}}\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, Input, OnInit } from '@angular/core';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DatePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\n\n@Component({\n    selector: 'app-proceso-seleccion-tal',\n    templateUrl: './proceso-seleccion.component.html',\n    styleUrls: ['./proceso-seleccion.component.scss'],\n    standalone: true,\n    imports: [TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DatePipe, TranslateModule]\n})\nexport class ProcesoSeleccionTalComponent implements OnInit {\n  @Input()\n  public requerimientoPMBean : RequerimientoPmPage;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"mt-4\">\n<div class=\" card\">\n    <div class=\"mt-3\">\n        <h5><i class=\"glyphicons glyphicons-building\"></i>{{'datos' | translate}} {{'basicos' |\n            translate}}</h5>\n    </div>\n    <div class=\"p-fluid p-formgrid grid col-12\" style=\"color: gray;\">\n        <!-- EMPRESA -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('empresa') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreEmpresa }}</label>\n        </div>\n        <!-- UNIDAD ORGANIZACIONAL -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('unidadorganizacional') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreUnidad}}</label>\n        </div>\n        <!-- CARGO -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('cargo') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreCargo}}</label>\n        </div>\n        <!-- ESTADO -->\n        <div class=\"col-12 md:col-3 lg:col-3\" >\n            <label class=\"col-12 font-semibold\">{{('estado') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreEstado}}</label>\n        </div>\n        <!-- MOTIVO VACANTE -->\n        <div class=\"col-12 md:col-3 lg:col-3\" >\n            <label class=\"col-12 font-semibold\">{{('motivovacante') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreMotivoRequerimiento}}</label>\n        </div>\n\n    </div>\n</div>\n\n\n\n<p-table #tablaGeneral id=\"tabla_lista_sucursal\" [value]=\"requerimientoPMBean?.listaProcesoSeleccionDTO\" responsiveLayout=\"scroll\"\n    [paginator]=\"requerimientoPMBean?.listaProcesoSeleccionDTO.length > 10\" [scrollable]=\"true\" selectionMode=\"single\"\n    scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n    [totalRecords]=\"requerimientoPMBean.listaProcesoSeleccionDTO.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\n     dataKey=\"llaveTabla\" >\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th class=\"w-6rem\">{{'numero' | translate}}</th>\n            <th class=\"w-6rem\">{{'responsable' | translate}}</th>\n            <th class=\"w-6rem\">{{'estado' | translate}}</th>\n            <th class=\"w-6rem\">{{'fecha' | translate}} {{'inicio' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-candidatos let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr>\n            <td class=\"w-6rem\">\n                {{candidatos.numero}}\n            </td>\n            <td class=\"w-6rem\">\n                {{candidatos.nombreCompleto}}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPMBean.mapaEstadoProcesoSele[candidatos.estado]}}\n            </td>\n            <td class=\"w-6rem\">\n                {{candidatos.estado | date:'dd/mm/yyyy'}}\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { RequerimientoPersonalPipe } from '../../../pipes/requerimiento-personal.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\n\n@Component({\n    selector: 'app-candidatos',\n    templateUrl: './candidatos.component.html',\n    styleUrls: ['./candidatos.component.scss'],\n    standalone: true,\n    imports: [TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, RequerimientoPersonalPipe]\n})\nexport class CandidatosComponent implements OnInit {\n\n  @Input()\n  public requerimientoPMBean : RequerimientoPmPage;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"mt-4\"> \n<div class=\" card\">\n    <div class=\"mt-3\">\n        <h5><i class=\"glyphicons glyphicons-building\"></i>{{'datos' | translate}} {{'basicos' |\n            translate}}</h5>\n    </div>\n    <div class=\"p-fluid p-formgrid grid col-12\" style=\"color: gray;\">\n        <!-- EMPRESA -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('empresa') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreEmpresa }}</label>\n        </div>\n        <!-- UNIDAD ORGANIZACIONAL -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('unidadorganizacional') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreUnidad}}</label>\n        </div>\n        <!-- CARGO -->\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label class=\"col-12 font-semibold\">{{('cargo') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreCargo}}</label>\n        </div>\n        <!-- ESTADO -->\n        <div class=\"col-12 md:col-3 lg:col-3\" >\n            <label class=\"col-12 font-semibold\">{{('estado') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreEstado}}</label>\n        </div>\n        <!-- MOTIVO VACANTE -->\n        <div class=\"col-12 md:col-3 lg:col-3\" >\n            <label class=\"col-12 font-semibold\">{{('motivovacante') | translate}}</label>\n        </div>\n        <div class=\"col-12 md:col-3 lg:col-3\">\n            <label>{{requerimientoPMBean?.requerimientoPersonalDTO?.nombreMotivoRequerimiento}}</label>\n        </div>\n\n    </div>\n</div>\n\n\n\n<p-table #tablaGeneral id=\"tabla_lista_sucursal\" [value]=\"requerimientoPMBean?.listaCandidatoDTO\" responsiveLayout=\"scroll\"\n    [paginator]=\"requerimientoPMBean?.listaCandidatoDTO.length > 10\" [scrollable]=\"true\" selectionMode=\"single\"\n    scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n    [totalRecords]=\"requerimientoPMBean.listaCandidatoDTO.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\"\n     dataKey=\"llaveTabla\" >\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th class=\"w-6rem\">{{'empresa' | translate}}</th>\n            <th class=\"w-6rem\">{{'documento' | translate}}</th>\n            <th class=\"w-6rem\">{{'nombres' | translate}}</th>\n            <th class=\"w-6rem\">{{'estado' | translate}} {{'proceso' | translate}} {{'seleccion' | translate}}</th>\n            <th class=\"w-6rem\">{{'estado' | translate}}</th>\n            <th class=\"w-6rem\">{{'cantidad' | translate}}</th>\n            <th class=\"w-6rem\">{{'descripcion' | translate}} {{'estado' | translate}} {{'seguimiento' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-candidatos let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr>\n            <td class=\"w-6rem\">\n                {{candidatos.numeroProcesoSeleccion}}\n            </td>\n            <td class=\"w-6rem\">\n                {{candidatos.documentoCandidato}}\n            </td>\n            <td class=\"w-6rem\">\n                {{candidatos.nombres}}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPMBean.mapaEstadoProcesoSele[candidatos.estadoProcesoSeleccion]}}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPMBean.mapaEstadoCandidato[candidatos.estado]}}\n            </td>\n            <td class=\"w-6rem\">\n                {{candidatos.estado | requerimientoPipe:'listadoRequerimiento'}}\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n</div>","import { Component, Input, Output, EventEmitter, ElementRef, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CargarArchivosService } from '../../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../../shared/servicios/encriptado-basico.service';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { ToastService, GeneralModel, AuthService } from 'general-library-union';\nimport { ArchivoModel } from '../../../../../hojavida/models/ArchivoModel';\nimport { HojaVidaService } from '../../../../../hojavida/services/hojavida.service';\nimport { ConfirmationService } from 'primeng/api';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-pop-up-adjunto-respuesta',\n    templateUrl: './pop-up-adjunto-respuesta.component.html',\n    styleUrls: ['./pop-up-adjunto-respuesta.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => PopUpAdjuntoRespuestaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        FileUploadModule,\n        NgIf,\n        ButtonDirective,\n        Ripple,\n    ],\n})\nexport class PopUpAdjuntoRespuestaComponent implements ControlValueAccessor {\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() ocultarBoton: boolean = false;\n\n  @Input() header: string = '';\n\n  @Input() liquidacion;\n\n  @Output() arhivo: EventEmitter<any> = new EventEmitter();\n\n  @Output() adjunto: EventEmitter<any> = new EventEmitter();\n\n\n  dataSelected: ArchivoModel;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  public archivoSeleccionado: File;  \n\n  public anexoModel: ArchivoModel = new ArchivoModel();\n\n  public unicoArchivo: ArchivoModel;\n\n  public nombreArchivo: string;\n\n\n  constructor(\n    private notificacionesService: ToastService,\n    private cargarArchivo: CargarArchivosService,\n    private encriptadoBasico: EncriptadoBasicoService,\n    private hojaVidaService: HojaVidaService,\n    private confirmationService: ConfirmationService,\n    private generalService: GeneralService,\n    private authService: AuthService) { }\n\n  \n\n  ocultar() {\n    this.showDialog = false;\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  openDataTable() {\n    this.showDialog = true;\n    this.unicoArchivo = this.value;\n\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.nombreArchivo = file.name;\n  }\n\n  cargarAnexo(data: any, fubauto) {\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.label = this.archivoSeleccionado.name;    \n    this.arhivo.emit(this.archivoSeleccionado);\n    this.notificacionesService.showSuccess('Se cargó el documento exitosamente');\n    fubauto.clear();\n    \n  }  \n\n  crearEstructuraAnexo(tabla: string): string {\n    const fecha = new Date();\n    let anio = fecha.getFullYear();\n    let mes = fecha.getMonth() + 1;\n    let ruta = \"\";\n    ruta = '/' + tabla + '/' + anio + '/' + mes + '/';\n    return ruta;\n  }\n\n  descargarAnexo() {\n    this.traerUnicoAdjunto();\n    let documento: ArchivoModel = this.value;\n    if (documento.carpeta == null) {\n      documento.carpeta = this.crearEstructuraAnexo('liquidacionper_lip')\n    }\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    //Ruta archivo    \n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.carpeta + documento.llaveTabla + '.pdf'), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.archivoorigen;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n  eliminarAnexo(event) {\n    this.traerUnicoAdjunto();\n    let documento = this.value;\n    if (documento.carpeta == null) {\n      documento.carpeta = this.crearEstructuraAnexo('liquidacionper_lip')\n    }\n    documento.fechaAdicionado = new Date();\n    documento.fechaModificado = new Date();\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea eliminar?',\n      header: 'Confirmar',\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        let propiedad = 'ruta_anexosHojaVida'\n        let aplicacion = this.authService.getTokenKey('aplicacion');\n        this.hojaVidaService.eliminarAnexo(documento).subscribe({\n          next: (data) => {\n            if (data == 1) {\n              this.notificacionesService.showSuccess('Se eliminó el registro exitosamente');\n              this.value = new ArchivoModel();\n              this.label = null;\n              this.adjunto.emit(this.value);\n              //Ruta archivo\n              let rutaSeg = data;\n              this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(documento.carpeta + documento.llaveTabla + '.pdf'), propiedad, aplicacion).subscribe(blob => { });\n              this.arhivo.emit(null);\n            } else {\n              this.notificacionesService.showError('Error en el método de eliminar recurso');\n              //this.isLoading = false;\n            }\n          },\n          error: (err) => {\n            var data = JSON.stringify(err.error.mensajeEtiqueta);\n          },\n        });\n      },\n    });\n  }\n\n  async traerUnicoAdjunto() {\n    try {\n      let filtroAdjunto = new ArchivoModel();\n      filtroAdjunto.llaveTablaArchivo = this.liquidacion.numero.toString();\n      filtroAdjunto.empresa = this.liquidacion.empresa;\n      filtroAdjunto.contrato = this.liquidacion.identifica;\n      filtroAdjunto.nombreTabla = 'LIQUIDACIONPER_LIP';\n      this.value = await this.generalService.queryForObject(new GeneralModel('ArchivoDTO', null, false, filtroAdjunto)).toPromise();  \n      \n          \n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n \n\n}","<div class=\"p-inputgroup\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" disabled />        \n        <p-fileUpload #fubauto  mode=\"basic\" [customUpload]=\"true\"\n            [accept]=\"'.pdf'\" (onSelect)=\"cargarAnexo($event, fubauto)\" chooseIcon=\"pi pi-paperclip\"></p-fileUpload>\n        <button class=\"p-button-icon-only clear unico border-noround\" pButton pRipple [disabled]=\"readonly\"\n            *ngIf=\"value?.archivoorigen != null\">\n            <span class=\"glyphicons glyphicons-remove\" (click)=\"eliminarAnexo($event)\"></span>\n        </button>\n        <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\"\n            (click)=\"descargarAnexo()\" type=\"file\" *ngIf=\"value?.archivoorigen != null\"></button>\n        <label>{{header}}</label>\n    </span>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { PopUpAdjuntoRespuestaComponent } from '../../../../compensacion/pages/empleados/popups/pop-up-adjunto-respuesta/pop-up-adjunto-respuesta.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { AuthService } from 'general-library-union';\n\n@Component({\n    selector: 'app-requerimiento-anexo',\n    templateUrl: './requerimiento-anexo.component.html',\n    styleUrls: ['./requerimiento-anexo.component.scss'],\n    standalone: true,\n    imports: [ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, FormsModule, InputTextModule, PopUpAdjuntoRespuestaComponent, TranslateModule]\n})\nexport class RequerimientoAnexoComponent implements OnInit {\n\n  @Input() public requerimientoPMBean : RequerimientoPmPage;\n  vistaVisualizar: string;\n  nuevoAnexo: boolean;\n  constructor(public translateService: TranslateService,private cargarArchivo: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService, private authService: AuthService) { }\n\n  ngOnInit(): void {\n    console.log('boleanomalo',!this.requerimientoPMBean.isDeshabilitar() && !this.requerimientoPMBean.encuesta)\n  }\n\n  verNuevo(){\n    this.vistaVisualizar = 'nuevo';\n  }\n  cancelarNuevo(){\n    this.vistaVisualizar = null;\n  }\n  verNuevoAnexo() {\n    this.nuevoAnexo = true;\n  }\n\n  async crearAnexo(){\n    await this.requerimientoPMBean.crearAnexo();\n  }\n\n \n\n  async eliminarAnexo(costeo){\n    await this.requerimientoPMBean.eliminarAnexo(costeo);\n  }\n\n  returnArchivo(lista){\n    try {\n      if(lista == null){\n        return;\n      }\n      this.requerimientoPMBean.anexoIngresar.archivoorigen = (lista[1].name);    \n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  descargarAnexo(documento) {\n\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    console.log(documento)\n    //Ruta archivo\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llaveTabla + '.pdf'), propiedad, aplicacion).subscribe(blob => {\n      console.log(blob)\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.archivoorigen;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n}\n","<h4>{{'anexo'| translate}}</h4>\n\n<div class=\"flex justify-content-end align-items-center mb-3\">\n    <button pButton pRipple icon=\"pi pi-plus\" class=\"p-element p-ripple p-button-secondary\"\n        label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevo()\">\n    </button>\n</div>\n\n<p-table #tablaGeneral id=\"tablalistadoSeguimiento\" [value]=\"requerimientoPMBean?.listaAnexo\" [scrollable]=\"true\"\n    scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n    [paginator]=\"requerimientoPMBean?.listaAnexo.length > 10\" scrollDirection=\"horizontal\"\n    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"requerimientoPMBean?.listaAnexo.length\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\" dataKey=\"llaveTabla\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th style=\"max-width: 45%;\">{{'descripcion' | translate}}</th>\n            <th style=\"max-width: 45%;\"> {{'archivo' | translate}}</th>\n            <th style=\"max-width: 10%;\" *ngIf=\"!requerimientoPMBean.isDeshabilitar() && !requerimientoPMBean.encuesta\">\n            </th>\n        </tr>\n        <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevo'\">\n            <td style=\"max-width: 45%;\">\n                <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"documento\" type=\"text\"\n                    [(ngModel)]=\"requerimientoPMBean.anexoIngresar.descripcion\" required maxlength=\"200\"\n                    class=\"w-full\" />\n            </td>\n            <td style=\"max-width: 45%;\">\n                <app-pop-up-adjunto-respuesta\n                    [label]=\"requerimientoPMBean.anexoIngresar.archivoorigen ? requerimientoPMBean.anexoIngresar.archivoorigen :  ''\"\n                    [value]=\"requerimientoPMBean.anexoIngresar.archivoorigen\"\n                    [header]=\"this.translateService.instant('adjunto')\"\n                    (arhivo)=\"returnArchivo($event)\"></app-pop-up-adjunto-respuesta>\n            </td>\n            <td style=\"max-width: 10%;\" *ngIf=\"!requerimientoPMBean.isDeshabilitar() && !requerimientoPMBean.encuesta\">\n                <div class=\"flex justify-content-end\">\n                    <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"crearAnexo()\"\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>\n                    <button pButton pRipple type=\"button\" (click)=\"cancelarNuevo()\" icon=\"pi pi-times\"\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>\n                </div>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-anexo let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr [pEditableRow]=\"anexo\">\n            <td style=\"max-width: 45%;\">\n                {{anexo.descripcion}}\n            </td>\n            <td style=\"max-width: 45%;\">\n                {{anexo.archivoorigen}}\n            </td>\n            <td style=\"max-width: 10%;\">\n                <div class=\"flex justify-content-end\">\n                    <!-- DESCARGAR -->\n                    <button pButton pRipple\n                        class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                        icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(anexo)\" type=\"file\"></button>\n                    <!-- ELIMINAR -->\n                    <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                        *ngIf=\"!requerimientoPMBean.isDeshabilitar() && !requerimientoPMBean.encuesta\"\n                        (click)=\"eliminarAnexo(anexo)\"\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>\n                </div>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { UtilsService } from 'general-library-union';\nimport { BienestarPipe } from '../../../../bienestar/pipes/bienestar.pipe';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\n\n@Component({\n    selector: 'app-requerimiento-etapa-candidato',\n    templateUrl: './requerimiento-etapa-candidato.component.html',\n    styleUrls: ['./requerimiento-etapa-candidato.component.scss'],\n    standalone: true,\n    imports: [ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, DropdownModule, FormsModule, InputHelperHojaVidaComponent, InputTextModule, TranslateModule]\n})\nexport class RequerimientoEtapaCandidatoComponent implements OnInit {\n  @Input()\n  public requerimientoPMBean : RequerimientoPmPage;\n  vistaVisualizar: string;\n  constructor(public translateService : TranslateService, public utilsService: UtilsService, public bienestarPipe :BienestarPipe ) { }\n\n  ngOnInit(): void {\n  }\n\n  verNuevo(){\n    this.vistaVisualizar = 'nuevo';\n  }\n  cancelarNuevo(){\n    this.vistaVisualizar = null;\n  }\n\n  setHojaVida(hojaVidaDTO){\n    this.requerimientoPMBean.nuevoCandidato.identificacion == (hojaVidaDTO.Identifica);\n\t\tthis.requerimientoPMBean.nuevoCandidato.nombre ==(hojaVidaDTO.nombres);\n\t\tthis.requerimientoPMBean.nuevoCandidato.primerApellido ==(hojaVidaDTO.primerapellid);\n\t\tthis.requerimientoPMBean.nuevoCandidato.segundoApellido ==(hojaVidaDTO.segundoapelli);\n\t\tthis.requerimientoPMBean.nuevoCandidato.documento ==(hojaVidaDTO.documento);\n\t\tthis.requerimientoPMBean.nuevoCandidato.correo ==(hojaVidaDTO.email);\n\t\tthis.requerimientoPMBean.nuevoCandidato.telefono == (hojaVidaDTO.telefono);\n  }\n\n\n  transform(value: any, ...args: any): any {\n\t\tlet result = value;\n\t\tif (args[0] == 'listatipoexrt') { this.bienestarPipe.listaExternoInterno.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\t\treturn result;\n  }\n\n}\n","<h4>{{'candidatos'| translate}}</h4>\n\n\n<div class=\"flex justify-content-end align-items-center mb-3\">\n    <button pButton pRipple icon=\"pi pi-plus\" class=\"p-element p-ripple p-button-secondary\"\n        label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevo()\">\n    </button>\n</div>\n\n<p-table #tablaGeneral id=\"tablalistadoSeguimiento\" [value]=\"requerimientoPMBean?.listaCandidato\" [scrollable]=\"true\"\n    scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n    [paginator]=\"requerimientoPMBean?.listaCandidato.length > 10\" scrollDirection=\"horizontal\"\n    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"requerimientoPMBean?.listaCandidato.length\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\" dataKey=\"llaveTabla\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th class=\"w-6rem\"\n                *ngIf=\"((requerimientoPMBean?.isOrigenCandidato()) && (!requerimientoPMBean?.isDeshabilitar()))\">\n                {{'origen' | translate }}</th>\n            <th class=\"w-6rem\"\n                *ngIf=\"requerimientoPMBean?.isIdentificacion() ||  requerimientoPMBean?.bloquearCampoCandidato\">\n                {{'identificacion' | translate}}</th>\n            <th class=\"w-6rem\"> {{'nombres' | translate}}</th>\n            <th class=\"w-6rem\">{{'datos' | translate}}</th>\n            <th class=\"w-6rem\" *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && !requerimientoPMBean?.encuesta\"> </th>\n        </tr>\n        <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevo'\">\n            <td *ngIf=\"((requerimientoPMBean?.isOrigenCandidato()) && (!requerimientoPMBean?.isDeshabilitar()))\">\n                <p-dropdown inputId=\"LineaCosto\" [options]=\"requerimientoPMBean?.listaOrigenCandidato\"\n                    [autoDisplayFirst]=\"false\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean?.nuevoCandidato.lineaCosto) && (requerimientoPMBean?.clickGuardar && requerimientoPMBean?.isLinea())\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean?.nuevoCandidato.lineaCosto) && (requerimientoPMBean?.clickGuardar && requerimientoPMBean?.isLinea())\"\n                    optionLabel=\"nombre\" optionValue=\"codigo\" [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.tipo\">\n                </p-dropdown>\n            </td>\n            <td *ngIf=\"requerimientoPMBean?.isIdentificacion() ||  requerimientoPMBean?.bloquearCampoCandidato\">\n                <app-input-helper-hoja-vida [filtroRolCliente]=\"false\" [readonly]=\"false\"\n                    [header]=\"this.translateService.instant('autorizador')+' *'\"\n                    [label]=\"requerimientoPMBean?.nuevoCandidato.identificacion.toString()\" required\n                    [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.centrocosto\" (onSelected)=\"setHojaVida($event)\">\n                </app-input-helper-hoja-vida>\n            </td>\n            <td>\n                <div class=\"p-fluid p-formgrid grid col-12\">\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isDocumento())\">\n                        {{'documento'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isDocumento())\">\n                        <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"documento\" type=\"text\"\n                            [disabled]=\"requerimientoPMBean?.isDeshabilitar() ? requerimientoPMBean?.isDeshabilitar() : requerimientoPMBean?.bloquearCampoCandidato\"\n                            [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.documento\" required maxlength=\"8\"\n                            class=\"w-full\" />\n                    </div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"(!requerimientoPMBean?.isDeshabilitar()) && (requerimientoPMBean?.isNombre())\">\n                        {{'nombres'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isNombre())\">\n                        <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"nombre\" type=\"text\"\n                            [disabled]=\"requerimientoPMBean?.bloquearCampoCandidato\"\n                            [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.nombre\" required maxlength=\"8\"\n                            class=\"w-full\" />\n                    </div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isPrimerApelli())\">\n                        {{'primerapellido'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isPrimerApelli())\">\n                        <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"primerApellido\" type=\"text\"\n                            [disabled]=\"requerimientoPMBean?.bloquearCampoCandidato\"\n                            [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.primerApellido\" required maxlength=\"8\"\n                            class=\"w-full\" />\n                    </div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isSegundoApelli())\">\n                        {{'segundoapellido'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isSegundoApelli())\">\n                        <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"segundoApellido\" type=\"text\"\n                            [disabled]=\"requerimientoPMBean?.isDeshabilitar()\"\n                            [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.segundoApellido\" required maxlength=\"8\"\n                            class=\"w-full\" />\n                    </div>\n                </div>\n            </td>\n            <td>\n                <div class=\"grid\">\n                    <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"(requerimientoPMBean?.isCorreo())\">{{'correo'|\n                        translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isCorreo())\">\n                        <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"segundoApellido\" type=\"text\"\n                            [disabled]=\"requerimientoPMBean?.isDeshabilitar() ? requerimientoPMBean?.isDeshabilitar() : requerimientoPMBean?.bloquearCampoCandidato\"\n                            [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.correo\" required maxlength=\"8\"\n                            class=\"w-full\" />\n                    </div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isTelefono())\">\n                        {{'telefono'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isTelefono())\"><input\n                            #idNuevoDescripcion=\"ngModel\" pInputText id=\"segundoApellido\" type=\"text\"\n                            [disabled]=\"requerimientoPMBean?.isDeshabilitar() ? requerimientoPMBean?.isDeshabilitar() : requerimientoPMBean?.bloquearCampoCandidato\"\n                            [(ngModel)]=\"requerimientoPMBean?.nuevoCandidato.telefono\" required maxlength=\"8\"\n                            class=\"w-full\" /></div>\n                </div>\n            </td>\n            <td class=\"flex justify-content-end\"\n                *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && !requerimientoPMBean?.encuesta\">\n                <div>\n                    <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                        (click)=\"requerimientoPMBean?.crearCandidato()\"\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>\n                    <button pButton pRipple type=\"button\" (click)=\"cancelarNuevo()\" icon=\"pi pi-times\"\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>\n                </div>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-candidato let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr [pEditableRow]=\"candidato\">\n            <td class=\"w-6rem\"\n                *ngIf=\"((requerimientoPMBean?.isOrigenCandidato()) && (!requerimientoPMBean?.isDeshabilitar()))\">\n                {{transform(candidato.tipo,'listatipoexrt')}}\n            </td>\n            <td class=\"w-6rem\"\n                *ngIf=\"requerimientoPMBean?.isIdentificacion() ||  requerimientoPMBean?.bloquearCampoCandidato\">\n                {{candidato.identificacion}}\n            </td>\n            <td class=\"w-6rem\">\n                <div class=\"p-fluid p-formgrid grid col-12\">\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isDocumento())\">\n                        {{'documento'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isDocumento())\">\n                        {{candidato.documento}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"(!requerimientoPMBean?.isDeshabilitar()) && (requerimientoPMBean?.isNombre())\">\n                        {{'nombre'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"(!requerimientoPMBean?.isDeshabilitar()) && (requerimientoPMBean?.isNombre())\">\n                        {{candidato.nombre}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isPrimerApelli())\">\n                        {{'primerApellido'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isPrimerApelli())\">\n                        {{candidato.primerApellido}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isSegundoApelli())\">\n                        {{'segundoApellido'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isSegundoApelli())\">\n                        {{candidato.segundoApellido}}</div>\n                </div>\n\n            </td>\n            <td class=\"w-6rem\">\n                <div class=\"p-fluid p-formgrid grid col-12\">\n                    <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"(requerimientoPMBean?.isCorreo())\">{{'correo'|\n                        translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\" *ngIf=\"(requerimientoPMBean?.isCorreo())\">{{candidato.correo}}\n                    </div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isTelefono())\">\n                        {{'telefono'| translate}}</div>\n                    <div class=\"col-12 md:col-6 lg:col-6\"\n                        *ngIf=\"!requerimientoPMBean?.isDeshabilitar() && (requerimientoPMBean?.isTelefono())\">\n                        {{candidato.telefono}}</div>\n                </div>\n            </td>\n            <td class=\"w-6rem\" *ngIf=\"requerimientoPMBean?.isPorcentaje()\">\n                {{candidato.requerida}}\n            </td>\n            <td class=\"w-6rem flex justify-content-end\" *ngIf=\"!requerimientoPMBean?.isDeshabilitar()\">\n\n                <div>\n                    <!-- ELIMINAR -->\n                    <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                        (click)=\"requerimientoPMBean?.eliminarCandidato(candidato)\"\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>\n                </div>\n\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>","import { Component, Input, OnInit } from '@angular/core';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { SelectListCompensa } from '../../../../compensacion/services/select-list-compensa.service';\nimport { UtilsService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\n\n@Component({\n    selector: 'app-requerimiento-costeo',\n    templateUrl: './requerimiento-costeo.component.html',\n    styleUrls: ['./requerimiento-costeo.component.scss'],\n    standalone: true,\n    imports: [ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, FormsModule, InputTextModule, InputHelperSeleccionZonaCentroComponent, DropdownModule, TranslateModule]\n})\nexport class RequerimientoCosteoComponent implements OnInit {\n  @Input()\n  public requerimientoPMBean : RequerimientoPmPage;\n  public listaLineaCosto: any[] = [];\n  vistaVisualizar: string = null;\n  constructor(private SelectListCompensa: SelectListCompensa, public utilsService : UtilsService) { }\n\n  ngOnInit(): void {\n    this.cargarListas();\n  }\n\n  async cargarListas(){\n    this.listaLineaCosto = await this.SelectListCompensa.getListaLineaCosto();\n  }\n\n  onSelectCentroCosto(event) {\n    this.requerimientoPMBean.nuevoCosteo.centrocosto = event.centroCosto;\n    this.requerimientoPMBean.nuevoCosteo.zonaeconomica = event.zonaEconomica;\n  }\n\n  handleEnterKey(event: any) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  verNuevo(){\n    this.vistaVisualizar = 'nuevo';\n  }\n  cancelarNuevo(){\n    this.vistaVisualizar = null;\n  }\n\n\n}\n","<h4>{{'costeo'| translate}}</h4>\n\n<div class=\"flex justify-content-end align-items-center mb-3\">\n    <button pButton pRipple icon=\"pi pi-plus\" class=\"p-element p-ripple p-button-secondary\"\n        label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevo()\">\n    </button>\n</div>\n\n<p-table #tablaGeneral id=\"tablalistadoSeguimiento\" [value]=\"requerimientoPMBean?.listaCosteo\" [scrollable]=\"true\"\n    scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n    [paginator]=\"requerimientoPMBean?.listaCosteo.length > 10\" scrollDirection=\"horizontal\"\n    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"requerimientoPMBean?.listaCosteo.length\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"false\" dataKey=\"llaveTabla\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isZona()\">{{'zonaeconomica' | translate}}</th>\n            <th class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isCentro() && requerimientoPMBean.isZonaCentro()\">\n                {{'centrocosto' | translate}}</th>\n            <th class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isCentro() && !requerimientoPMBean.isZonaCentro()\">\n                {{'centrocosto' | translate}}</th>\n            <th class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isLinea()\">{{'linea' | translate}}</th>\n            <th class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isPorcentaje()\">{{'porcentaje' | translate}}</th>\n            <th class=\"w-6rem\" *ngIf=\"!requerimientoPMBean.isDeshabilitar()\"> </th>\n        </tr>\n        <tr class=\" TablaNuevoRegistro\" *ngIf=\"vistaVisualizar === 'nuevo'\">\n            <td *ngIf=\"requerimientoPMBean.isZona()\">\n                <input #idNuevoCodigo=\"ngModel\" pInputText id=\"zonaeconomica\" type=\"text\" \n                    [disabled]=\"requerimientoPMBean.isDeshabilitar()\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.zonaeconomica) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isZona())\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.zonaeconomica) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isZona())\"\n                    [(ngModel)]=\"requerimientoPMBean.nuevoCosteo.zonaeconomica\" required maxlength=\"8\" class=\"w-full\"\n                    *ngIf=\"requerimientoPMBean.isZonaCentro()\" />\n            </td>\n            <td *ngIf=\"requerimientoPMBean.isCentro() && requerimientoPMBean.isZonaCentro()\">\n                <app-input-helper-seleccion-zona-centro [readonly]=\"false\" [showDialog]=\"false\"\n                    [label]=\"requerimientoPMBean.nuevoCosteo.centrocosto  == null ? '' : requerimientoPMBean.nuevoCosteo.centrocosto\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.centrocosto) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isCentro())\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.centrocosto) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isCentro())\"\n                    [labelIntput]=\"'Zona Económica'\" (onSelected)=\"onSelectCentroCosto($event)\"\n                    [(ngModel)]=\"requerimientoPMBean.nuevoCosteo.centrocosto\" (keydown.enter)=\"handleEnterKey($event)\"\n                    [mostrarZonaLabel]=\"true\">\n                </app-input-helper-seleccion-zona-centro>\n            </td>\n            <td *ngIf=\"requerimientoPMBean.isCentro() && !requerimientoPMBean.isZonaCentro()\">\n                <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"lineaCosto\" type=\"text\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.centrocosto) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isCentro())\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.centrocosto) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isCentro())\"\n                    [disabled]=\"requerimientoPMBean.isDeshabilitar()\"\n                    [(ngModel)]=\"requerimientoPMBean.nuevoCosteo.centrocosto\" required maxlength=\"8\" class=\"w-full\" />\n            </td>\n            <td *ngIf=\"requerimientoPMBean.isLinea()\">\n                <p-dropdown inputId=\"LineaCosto\" [options]=\"listaLineaCosto\" [autoDisplayFirst]=\"false\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.lineaCosto) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isLinea())\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.lineaCosto) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isLinea())\"\n                    [disabled]=\"requerimientoPMBean.isDeshabilitar()\" optionLabel=\"label\" optionValue=\"value\"\n                    [(ngModel)]=\"requerimientoPMBean.nuevoCosteo.lineaCosto\"\n                    [disabled]=\"requerimientoPMBean.deshabilitar()\">\n                </p-dropdown>\n            </td>\n            <td *ngIf=\"requerimientoPMBean.isPorcentaje()\">\n                <input #idNuevoDescripcion=\"ngModel\" pInputText id=\"lineaCosto\" type=\"text\"\n                    [disabled]=\"requerimientoPMBean.isDeshabilitar()\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.requerida) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isPorcentaje())\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPMBean.nuevoCosteo.requerida) && (requerimientoPMBean.clickGuardar && requerimientoPMBean.isPorcentaje())\"\n                    [(ngModel)]=\"requerimientoPMBean.nuevoCosteo.requerida\" required maxlength=\"15\" class=\"w-full\" />\n            </td>\n            <td class=\"flex justify-content-end\" *ngIf=\"!requerimientoPMBean.isDeshabilitar()\">\n                <div>\n                    <button pButton pRipple type=\"button\" icon=\"pi pi-check\" (click)=\"requerimientoPMBean.crearCosteo()\"\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>\n                    <button pButton pRipple type=\"button\" (click)=\"cancelarNuevo()\" icon=\"pi pi-times\"\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>\n                </div>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-costeo let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr [pEditableRow]=\"costeo\">\n            <td class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isZona()\">\n                {{costeo.zonaeconomica}}\n            </td>\n            <td class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isCentro() && requerimientoPMBean.isZonaCentro()\">\n                {{costeo.centrocosto}}\n            </td>\n            <td class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isCentro() && !requerimientoPMBean.isZonaCentro()\">\n                {{costeo.centrocosto}}\n            </td>\n            <td class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isLinea()\">\n                {{this.listaLineaCosto[costeo.lineaCosto]}}\n            </td>\n            <td class=\"w-6rem\" *ngIf=\"requerimientoPMBean.isPorcentaje()\">\n                {{costeo.requerida}}\n            </td>\n            <td class=\"w-6rem flex justify-content-end\" *ngIf=\"!requerimientoPMBean.isDeshabilitar()\">\n\n                <div>\n                    <!-- CHECK GUARDAR -->\n                    <!-- <button pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\" *ngIf=\"editing\"\n                        (click)=\"actualizar(costeo)\"\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> -->\n                    <!-- CANCELAR -->\n                    <!-- <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\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> -->\n                    <!-- EDITAR -->\n                    <!-- <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                        icon=\"glyphicons glyphicons-pencil\"\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> -->\n                    <!-- ELIMINAR -->\n                    <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                        (click)=\"requerimientoPMBean.eliminarCosteo(costeo)\"\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>\n                </div>\n\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { GeneralPipe } from './general.pipe';\nimport { Constantes } from '../constantes/Constantes';\n\n@Pipe({\n    name: 'puestoTrabajoPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class PuestoTrabajoPipe implements PipeTransform {\n\n    OCUPADO_Y_NO_DISPONIBLE = \"O\";\n    OCUPADO_Y_DISPONIBLE = \"C\";\n    VACANTE_Y_DISPONIBLE = \"D\";\n    VACACANTE_Y_NO_DISPONIBLE = \"V\";\n\n    SOLICITUD = Constantes.CONSTANTE_SI;\n    SOLICITUDDESC = \"Solicitud\";\n    ELIMINADO = \"E\";\n    BLOQUEADO = \"B\";\n    OCUPADO_DISPONIBLE_AUSENTISMO = \"A\";\n\n    DESC_OCUPADO_Y_NO_DISPONIBLE = \"Ocupado y no disponible\";\n    DESC_OCUPADO_Y_DISPONIBLE = \"Ocupado y disponible\";\n    DESC_VACANTE_Y_DISPONIBLE = \"Vacante y Disponible\";\n    DESC_VACACANTE_Y_NO_DISPONIBLE = \"Vacante y no disponible\";\n    DESC_BLOQUEADO = \"Bloqueado\";\n    DESC_ELIMINADO = \"Eliminado\";\n    DESC_OCUPADO_DISPONIBLE_AUSENTISMO = \"Ocupado y disponible x Ausentismo\";\n\n    RESERVADO = Constantes.CONSTANTE_SI;\n    NO_RESERVADO = Constantes.CONSTANTE_NO;\n    DESC_RESERVADO = \"Reservado\";\n    DESC_NO_RESERVADO = \"No Reservado\";\n\n    TRAER_TODOS_TABLA = \"TODOS\";\n\n    LISTAESTADOPUESTOTRABAJO =\n        [\n            { codigo: this.BLOQUEADO, nombre: this.DESC_BLOQUEADO },\n            { codigo: this.ELIMINADO, nombre: this.DESC_ELIMINADO },\n            { codigo: this.OCUPADO_Y_DISPONIBLE, nombre: this.DESC_OCUPADO_Y_DISPONIBLE },\n            { codigo: this.OCUPADO_DISPONIBLE_AUSENTISMO, nombre: this.DESC_OCUPADO_DISPONIBLE_AUSENTISMO },\n            { codigo: this.OCUPADO_Y_NO_DISPONIBLE, nombre: this.DESC_OCUPADO_Y_NO_DISPONIBLE },\n            { codigo: this.VACANTE_Y_DISPONIBLE, nombre: this.DESC_VACANTE_Y_DISPONIBLE },\n            { codigo: this.VACACANTE_Y_NO_DISPONIBLE, nombre: this.DESC_VACACANTE_Y_NO_DISPONIBLE },\n        ]\n\n    LISTARESERVAPUESTOTRABAJO =\n        [\n            {codigo: this.RESERVADO,nombre: this.DESC_RESERVADO},\n            {codigo: this.NO_RESERVADO,nombre: this.DESC_NO_RESERVADO},\n        ]\n\n    //Tipo de PuestoTrabajoDTO\n    COMPARTE = \"E\";\n    INTERNO = \"I\";\n\n    //Tipos de PuestoComparteDTO\n    UNIDAD_COMPARTE = \"U\";\n    PUESTO_COMPARTE = \"P\";\n\n    //Tipos de temporales\n    ENCARGO = \"EN\";\n    PROVISIONAL = \"PR\";\n    ASIGNACIONFUNCION = \"AF\";\n    TRASLADOENFUNCION = \"TF\";\n    HABILITARPARAEMPALME = \"HE\";\n    EMPALME = \"EM\";\n\n    ENCARGO_DESC = \"Responsable-Encargado\";\n    PROVISIONAL_DESC = \"Responsable Provisional\";\n    ASIGNACIONFUNCION_DESC = \"Asignacion Funciones\";\n    TRASLADOENFUNCION_DESC = \"Responsable en Funciones\";\n    HABILITARPARAEMPALME_DESC = \"Habilitar para Empalme\";\n    EMPALME_DESC = \"Empalme\";\n\n    LISTATIPOTEMPORAL =    \n    [\n        {codigo: this.ENCARGO, nombre: this.ENCARGO_DESC},\n        {codigo: this.PROVISIONAL, nombre: this.PROVISIONAL_DESC},\n        {codigo: this.ASIGNACIONFUNCION, nombre: this.ASIGNACIONFUNCION_DESC},\n        {codigo: this.TRASLADOENFUNCION, nombre: this.TRASLADOENFUNCION_DESC},\n        {codigo: this.HABILITARPARAEMPALME, nombre: this.HABILITARPARAEMPALME_DESC},\n        {codigo: this.EMPALME, nombre: this.EMPALME_DESC},\n    ]\n\n    CONSULTA_POSICION_PUESTO = \"CONSULTA_POSICION_PUESTO\";\n\n\n    transform(value: unknown, ...args: unknown[]): unknown {\n        let result = value;\n        return result;\n    }\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, Output, EventEmitter } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ParametrosGeneralModel } from '../../compensacion/models/ParametrosGeneralModel';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class SeccionCampoService {\n\n  @Output() disparador = new EventEmitter();\n  \n\n    listProcedure(objetoFiltro: GeneralModel) {\n        throw new Error('Method not implemented.');\n      }\n    \n      constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n      }\n    \n      private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          // A client-side or network error occurred. Handle it accordingly.\n          console.error('An error occurred:', error.error);\n        } else {\n          // The backend returned an unsuccessful response code.\n          // The response body may contain clues as to what went wrong.\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n    recorrerLista(objeto: ParametrosGeneralModel): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/seccion/recorrerLista`, objeto).pipe(\n            catchError(this.handleError)\n          );\n    }\n\n    cargaListaPresentacion(objeto: ParametrosGeneralModel): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/seccion/cargaListaPresentacion`, objeto).pipe(\n            catchError(this.handleError)\n          );\n    }\n\n    obtenerSeccionSolicitudPorFormularioVinculacion(objeto: any): Observable<any[]> {\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/seccion/obtenerSeccionSolicitudPorFormularioVinculacion`, objeto).pipe(\n          catchError(this.handleError)\n        );\n  }\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ListadoHojaVidaService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  getListaSucursalGestion(parametroGeneral?: any): Observable<any[]>{\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/listados/hojavida/listaSucursalGestion`, parametroGeneral).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { AuthService, ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { PerfilTablasModel } from '../../talento/models/PerfilTablasModel';\nimport { RequerimientoPersonalModel } from '../../talento/models/RequerimientoPersonalModel';\nimport { PuestoTrabajoModel } from '../../talento/models/PuestoTrabajoModel';\nimport { DatoorganizacionModel } from '../../talento/models/DatoorganizacionModel';\nimport { MotivoRequerimientoModel } from '../../talento/models/MotivoRequerimientoModel';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { PerfilFuncionModel } from '../../talento/models/PerfilFuncionModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RequerimientoPersonalPmService {\n\n  \n  \n\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private authService: AuthService,private saraAplicacionServices: SaraAplicacionService, private generalService: GeneralService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  cargarRequerimiento(parametros: string): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/cargarRequerimiento`, parametros).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  setAnexo(parametros: PerfilTablasModel): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/setAnexo`, parametros).pipe(\n      catchError(this.handleError)\n    );\n  }\n  inicializarPanel(llaveFormulario: string, requerimientoPersonalDTO: RequerimientoPersonalModel, puestoTrabajoDTO: PuestoTrabajoModel): Observable<any[]> {\n    let formData = new FormData();\n    formData.append('llaveFormulario', llaveFormulario);\n    formData.append('requerimientoPersonalDTO', JSON.stringify(requerimientoPersonalDTO));\n    formData.append('puestoTrabajoDTO', JSON.stringify(puestoTrabajoDTO));\n    formData.append('cliente',this.authService.getTokenKey('isCliente'));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/inicializarPanel`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  inicializarSeccion(parametros: DatoorganizacionModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/inicializarSeccion`, parametros).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarRequerimiento2(requerimientoPersonal: RequerimientoPersonalModel,cedula): Observable<any> {\n    let formData = new FormData();\n    formData.append('cedula',cedula)\n    formData.append('requerimientoPersonal',JSON.stringify(requerimientoPersonal))\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/cargarRequerimiento2`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  inicializarPuestoExistente(puestoEncabezado: PuestoTrabajoModel, motivo: MotivoRequerimientoModel): Observable<any> {\n    let formData = new FormData()\n    formData.append('puestoEncabezado', JSON.stringify(puestoEncabezado));\n    formData.append('motivo', JSON.stringify(motivo))\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/inicializarPuestoExistente`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarRequerimiento(llaveFormulario: string, requerimientoPersonalDTO: RequerimientoPersonalModel,dinamico: any, cedula: number,listaCosteo: any[],listaCandidato: any[]): Observable<any[]> {\n    let formData = new FormData();\n    formData.append('llaveFormulario', llaveFormulario);\n    formData.append('requerimientoPersonalDTO', JSON.stringify(requerimientoPersonalDTO));\n    formData.append('dinamico',JSON.stringify(dinamico));\n    formData.append('cedula',cedula.toString());\n    formData.append('listaCosteo',JSON.stringify(listaCosteo));\n    formData.append('listaCandidato',JSON.stringify(listaCandidato));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/actualizarRequerimiento`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actualizarBase(perfilFuncion: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/actualizarBase`, perfilFuncion).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  setListaPuesto(llavePuestotrabajo: string,llaveRequerimiento: string, requerimientoPersonalDTO: RequerimientoPersonalModel,): Observable<any[]> {\n    let formData = new FormData();\n    formData.append('llavePuestotrabajo', llavePuestotrabajo);\n    formData.append('requerimientoPersonalDTO', JSON.stringify(requerimientoPersonalDTO));\n    formData.append('llaveRequerimiento',llaveRequerimiento);\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/setListaPuesto`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  ultimaEtapaRequerimiento(requerimientoPersonalDTO: RequerimientoPersonalModel): Observable<any> {\n    let formData = new FormData();\n    formData.append('requerimientoPersonalDTO', JSON.stringify(requerimientoPersonalDTO));\n    formData.append('ultimaEtapaRequerimiento',this.authService.getTokenKey('numeroEmpresa'));\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/ultimaEtapaRequerimiento`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  iniciarProceso(requerimientoPersonalDTO: RequerimientoPersonalModel): Observable<any> {\n    let formData = new FormData();\n    formData.append('requerimientoPersonalDTO', JSON.stringify(requerimientoPersonalDTO));\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/iniciarProceso`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  siguiente(requerimientoPersonalDTO: RequerimientoPersonalModel, seccionesArr : object[] ,seccionActual: any,puestoTrabajo : PuestoTrabajoModel,numeroSeccionActual: number,perfilFuncion: PerfilFuncionModel,\n    dinamico: any,nuevo: boolean,cedula: number): Observable<any[]> {\n    let formData = new FormData();\n    formData.append('requerimientoPersonalDTO', JSON.stringify(requerimientoPersonalDTO));\n    formData.append('secciones', JSON.stringify(seccionesArr));\n    formData.append('seccionActual', JSON.stringify(seccionActual));\n    formData.append('puestoTrabajo', JSON.stringify(puestoTrabajo));\n    formData.append('numeroSeccionActual', numeroSeccionActual.toString());\n    formData.append('cedula', cedula?.toString());\n    formData.append('perfilFuncion', JSON.stringify(perfilFuncion));\n    formData.append('dinamico',JSON.stringify(dinamico));\n    formData.append('nuevo',JSON.stringify(nuevo));\n    formData.append('llaveOrganizacion',this.authService.getTokenKey('numeroEmpresa').toString());\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/siguiente`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarTablaAnexo(listaAnexo: any[],llaveRequerimiento: string): Observable<any> {\n    let formData = new FormData();\n    formData.append('listaAnexo', JSON.stringify(listaAnexo));\n    formData.append('llaveRequerimiento',llaveRequerimiento );\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/ultimaEtapaRequerimiento`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  visualizarSeccion(numeroSeccionActual: number, seccionesArr: object[],dinamico: any,puestoTrabajo: PuestoTrabajoModel,nuevo: boolean,posicion: string): Observable<any[]> {\n    let formData = new FormData();\n    formData.append('numeroSeccionActual',numeroSeccionActual.toString() );\n    formData.append('seccionesArr', JSON.stringify(seccionesArr) );\n    formData.append('dinamico', JSON.stringify(dinamico) );\n    formData.append('puestoTrabajo', JSON.stringify(puestoTrabajo) );\n    formData.append('nuevo', JSON.stringify(nuevo));\n    formData.append('posicion', posicion);\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/visualizarSeccion`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  public async eliminarCosteo(dato,listaCosteo: PerfilTablasModel[]) {\n\t\tif(dato.llave != null) {\n\t\t\tawait this.generalService.delete(new GeneralModel('PerfilTablasDTO',null,false,dato)).toPromise();\n\t\t}\n    const index = listaCosteo.indexOf(dato);\n    if (index > -1) {\n      listaCosteo.splice(index, 1);\n    }\n    return listaCosteo\n\t}\n\n  public async eliminarCandidato(dato,listaCandidato: PerfilTablasModel[]) {\n\t\tif(dato.llave != null) {\n\t\t\tawait this.generalService.delete(new GeneralModel('PerfilTablasDTO',null,false,dato)).toPromise();\n\t\t}\n    const index = listaCandidato.indexOf(dato);\n    if (index > -1) {\n      listaCandidato.splice(index, 1);\n    }\n    return listaCandidato\n\t}\n\n  public async eliminarAnexo(dato, listaAnexo) {\n    if (dato.llave != null) {\n      await this.generalService.delete(new GeneralModel('ArchivoDTO', null, false, dato)).toPromise();\n    }\n    const index = listaAnexo.indexOf(dato);\n    if (index > -1) {\n      listaAnexo.splice(index, 1);\n    }\n    return listaAnexo\n  }\n\n  anterior(requerimientoPersonalDTO: RequerimientoPersonalModel, seccionesArr : object[] ,seccionActual: any,puestoTrabajo : PuestoTrabajoModel,numeroSeccionActual: number,perfilFuncion: PerfilFuncionModel,\n    dinamico: any,nuevo: boolean,cedula: number): Observable<any[]> {\n    let formData = new FormData();\n    formData.append('requerimientoPersonalDTO', JSON.stringify(requerimientoPersonalDTO));\n    formData.append('secciones', JSON.stringify(seccionesArr));\n    formData.append('seccionActual', JSON.stringify(seccionActual));\n    formData.append('puestoTrabajo', JSON.stringify(puestoTrabajo));\n    formData.append('numeroSeccionActual', numeroSeccionActual.toString());\n    formData.append('cedula', cedula?.toString());\n    formData.append('perfilFuncion', JSON.stringify(perfilFuncion));\n    formData.append('dinamico',JSON.stringify(dinamico));\n    formData.append('nuevo',JSON.stringify(nuevo));\n    formData.append('llaveOrganizacion',this.authService.getTokenKey('numeroEmpresa').toString());\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/anterior`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  eliminarRequerimiento(boleano: boolean): Observable<any> {\n    let formData = new FormData();\n    formData.append('boleano', JSON.stringify(boleano));\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/eliminarRequerimiento`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cambiarMotivoRequerimiento(motivo: MotivoRequerimientoModel): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/cambiarMotivoRequerimiento`, motivo).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarRequerimientoPortal(tipoRequerimiento: string,unidad: string,empresa: number,cargo: string,tipoPuesto: string,motivo: string): Observable<RequerimientoPersonalModel> {\n    let formData = new FormData();\n    formData.append('tipoRequerimiento',tipoRequerimiento);\n    formData.append('unidad',unidad);\n    formData.append('empresa',empresa.toString());\n    formData.append('cargo',cargo);\n    formData.append('tipoPuesto',tipoPuesto);\n    formData.append('motivo',motivo);\n    return this.httpClient.post<RequerimientoPersonalModel>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/negocio/RequerimientoPersonalPM/cargarRequerimientoPortal`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n  \n  \n\n\n\n\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../constantes/Constantes';\n\n@Pipe({\n    name: 'origenDatos',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class OrigenDatosPipe implements PipeTransform {\n\n   EJECUTADO = \"E\";\n\t SOLICITADO = Constantes.CONSTANTE_SI;\n\t CANCELADO = \"C\";\n\t PROGRAMADO = \"P\";\n\t NOAUTORIZADO = Constantes.CONSTANTE_NO;\n\n\t SOLICITADODESC = \"SOLICITADO\";\n\t DESNOAUTORIZADO = \"NO AUTORIZADO\";\n\t PROGRAMADODESC = \"AUTORIZADO\";\n\t CANCELADODESC = \"NO ACEPTADO\";\n\t EJECUTADODESC = \"EJECUTADO\";\n\n\n\tLISTAESTADOCAPACITACION =\n  [\n\t\t{ codigo: this.EJECUTADO,  nombre: this.EJECUTADODESC},\n\t\t{ codigo: this.SOLICITADO,  nombre: this.SOLICITADODESC},\n\t\t{ codigo: this.CANCELADO,  nombre: this.CANCELADODESC},\n\t\t{ codigo: this.PROGRAMADO,  nombre: this.PROGRAMADODESC},\n\t\t{ codigo: this.NOAUTORIZADO,  nombre: this.DESNOAUTORIZADO},\n\t]\n\n\t FUNCIONAL = \"U\";\n\t CLIENTE = \"E\";\n   CLIENTEDESC = \"CLIENTE\";\n   FUNCIONALDESC = \"FUNCIONAL\";\n\n  LISTATIPOUSUARIO =\t\n  [\n\t\t{ codigo: this.FUNCIONAL, nombre: this.FUNCIONALDESC},\n\t\t{ codigo: this.CLIENTE, nombre: this.CLIENTEDESC},\n\t]\n\n\t CAPACITACION = \"C\";\n\t BIENESTAR = \"B\";\n\t SALUDOCUPACIONAL = Constantes.CONSTANTE_SI;\n\n\t DESCCAPACITACION = \"CAPACITACION\";\n\t DESCBIENESTAR = \"BIENESTAR\";\n\t DESCSALUDOCUPACIONAL = \"SALUD OCUPACIONAL\";\n\n\t SALONINTERNO = \"I\";\n\t SALONEXTERNO = \"E\";\n\t NOAPLICA = Constantes.CONSTANTE_NO;\n\n\t DESCSALONINTERNO = \"SALON INTERNO\";\n\t DESCSALONEXTERNO = \"SALON EXTERNO\";\n\t DESCNOAPLICA = \"NO APLICA\";\n\n\t ACTIVO = Constantes.CONSTANTE_SI;\n\t INACTIVO = Constantes.CONSTANTE_NO;\n\n\t DESCACTIVO = \"ACTIVO\";\n\t DESCINACTIVO = \"INACTIVO\";\n\n\tORIGENDATOS =\n\t[\n\t\t{ codigo: this.CAPACITACION, nombre: this.DESCCAPACITACION},\n\t\t{ codigo: this.BIENESTAR, nombre: this.DESCBIENESTAR},\n\t\t{ codigo: this.SALUDOCUPACIONAL, nombre: this.DESCSALUDOCUPACIONAL},\n\t]\n\n\tTIPO=\n  [\n\t\t{ codigo: this.SALONINTERNO, nombre: this.DESCSALONINTERNO},\n\t\t{ codigo: this.SALONEXTERNO, nombre: this.DESCSALONEXTERNO},\n\t\t{ codigo: this.NOAPLICA, nombre: this.DESCNOAPLICA},\n\t]\n\n\tESTADO=\n  [\n\t\t{ codigo: this.ACTIVO, nombre: this.DESCACTIVO},\n    { codigo: this.INACTIVO, nombre: this.DESCINACTIVO},\n\t]\n\n\t\n\t SEMESTRE = \"SEMESTRAL\";\n\t TRIMESTRE= \"TRIMESTRAL\";\n\t MENSUAL= \"MENSUAL\";\n\t ANUAL= \"ANUAL\";\n\t DIARIA= \"DIARIA\";\n\t SEMANAL= \"SEMANAL\";\n\t\n\t\n\tLISTA_UNIDADES_DURACION_NECESIDAD_CAPACITACION =\n\t[\n\t\t{ codigo: this.ANUAL, nombre: this.ANUAL},\n\t\t{ codigo: this.SEMESTRE, nombre: this.SEMESTRE},\n\t\t{ codigo: this.TRIMESTRE, nombre: this.TRIMESTRE},\n\t\t{ codigo: this.MENSUAL, nombre: this.MENSUAL},\n\t\t{ codigo: this.SEMANAL, nombre: this.SEMANAL},\n\t\t{ codigo: this.DIARIA, nombre: this.DIARIA},\n  ]\n \n\n\n\t IMPRESION_TIPO_DC = \"EC\";\n\t IMPRESION_TIPO_CC = \"CC\";\n\t IMPRESION_TIPO_DC_DES = \"Evento Capacitacion\";\n\t IMPRESION_TIPO_CC_DES = \"Curso Capacitacion\";\n\t\n\t LISTA_TABLA_TIPO =\n  [\n\t  { codigo: this.IMPRESION_TIPO_DC, nombre: this.IMPRESION_TIPO_DC_DES},\n\t  { codigo: this.IMPRESION_TIPO_CC, nombre: this.IMPRESION_TIPO_CC_DES},\n\n]\n\t DTOMEDIO_MEDIO_AUDIO = \"medioAudioVisualNombre\";\n\t DTOMEDIO_NECESIDAD = \"necesidadNombre\";\n\t\n\t\n\t DTOASISTENTE_CEDULA = \"cedula\";\n\n\t DTOASISTENTE_NOMBRE = \"nombre\";\n\n\t DTOASISTENTE_ESTADO = \"estado\";\n\n\t DTOASISTENTE_AUSENCIA = \"ausencia\";\n\n\t DTOASISTENTE_PUNTAJE = \"puntaje\";\n\n\t DTOASISTENTE_COSTO_INCURRE = \"costoIncurre\";\n\n\t DTOASISTENTE_EMPRESA = \"empresa\";\n\n\t DTOASISTENTE_CARGO = \"cargo\";\n\n\t DTOASISTENTE_UNIDAD = \"unidad\";\n\n\t DTOASISTENTE_DESCRIPCION = \"descripcion\";\n\n\t DTOASISTENTE_COSTO = \"costo\";\n\n\t DTOASISTENTE_INCRIPCION = \"inscripcion\";\n\n\t DTOASISTENTE_CONTRATO = \"contrato\";\n\n\t DTOASISTENTE_AUTORIZA = \"autoriza\";\n\n\t DTOASISTENTE_SOLICITA = \"solicita\";\n\n\t DTOASISTENTE_NIVEL = \"nivel\";\n\n\t DTOASISTENTE_MOTIVO_NO_AUTORIZA = \"motivoNoAutoriza\";\n\n\t DTOASISTENTE_NOMBRE_EMPRESA = \"nombreEmpresa\";\n\n\t DTOASISTENTE_NOMBRES = \"nombres\";\n\n\t DTOASISTENTE_PRIMER_APELLIDO = \"primerApellido\";\n\n\t DTOASISTENTE_SEGUNDO_APELLIDO = \"segundoApellido\";\n\n\t DTOASISTENTE_NOMBRE_ASISTENTE = \"nombreAsistente\";\n\n\t DTOASISTENTE_NOMBRE_AUTORIZA = \"nombreAutoriza\";\n\n\t DTOASISTENTE_NOMBRE_CURSO = \"nombreCurso\";\n\n\t DTOASISTENTE_NOMBRE_UNIDAD = \"nombreUnidad\";\n\n\t DTOASISTENTE_FECHA_INICIAL = \"fechaInicial\";\n\n\t DTOASISTENTE_FECHA_FINAL = \"fechaFinal\";\n\n\t DTOASISTENTE_NOMBRE_AUTORIZADOR = \"nombreAutorizador\";\n\n\t\n\t\n\t DTODIA_FECHA_DIA = \"fechaDia\";\n\n\t DTODIA_TEMA = \"tema\";\n\n\t DTODIA_TEMA_NOMBRE = \"temaNombre\";\n\n\t DTODIA_INSTRUCTOR_ENT = \"instructorEnt\";\n\n\t DTODIA_INSTRUCTOR_NOMBRE = \"instructorNombre\";\n\n\t DTODIA_HORARIO = \"horario\";\n\n\t DTODIA_HORAS = \"horas\";\n\n\t DTODIA_CANTIDAD = \"cantidad\";\n\n\t DTODIA_NOMBRE_ACTIVIDAD = \"nombreActividad\";\n\n\t DTODIA_FECHA_FINAL = \"fechafinal\";\n\n\t DTODIA_FECHA_INICIAL = \"fechainicial\";\n\n\t DTODIA_HORA_TEXTO = \"horaTexto\";\n\n\t DTODIA_NOMBRE_SEMANA = \"nombreSemana\";\n\n\t DTODIA_FECHA_HASTA = \"fechaHasta\";\n\n\t DTODIA_OBASERVACION = \"observacion\";\n\t\n\t\n\t\n\t\n\t DTOCOSTO_PAGO=\"pago\";\n\n\t DTOCOSTO_TIPOCOSTO=\"tipoCosto\";\n\n\t DTOCOSTO_TIPOCOSTO_NOMBRE=\"tipoCostoNombre\";\n\n\t DTOCOSTO_TIPO=\"tipo\";\n\n\t DTOCOSTO_PLAN_INVERSION=\"planInversion\";\n\n\t DTOCOSTO_PLAN_INVERSION_NOMBRE=\"planInversionNombre\";\n\n\t DTOCOSTO_VALOR=\"valor\";\n\n\n\t DTOTEMA_ORIGEN = \"origen\";\n\t DTOTEMA_DESCRIPCION = \"descripcion\";\n\t\n\t FACTORTITULO=\"T\";\n\t FACTORSUBTITULO=Constantes.CONSTANTE_SI;\n\t FACTORTEXTO=\"E\";\n\t FACTORPUNTAJE=\"P\";\n\t\n\t FACTORTITULODES=\"Titulo\";\n\t FACTORSUBTITULODES=\"Subtitulo\";\n\t FACTORTEXTODES=\"Texto\";\n\t FACTORPUNTAJEDES=\"Puntaje\";\n\n\t\n\t\n\t\n\tFACTORES_EVALUACION=\n\t[\n\t\t{ codigo: this.FACTORTEXTO, nombre: this.FACTORTEXTODES},\n\t\t{ codigo: this.FACTORPUNTAJE, nombre: this.FACTORPUNTAJEDES},\n\t\t\n  ]\n\t\n\t VIGENTE=Constantes.CONSTANTE_SI;\n\t NOVIGENTE=Constantes.CONSTANTE_NO;\n\n\t VIGENTEDES=\"Vigente\";\n\t NOVIGENTEDES=\"No Vigente\";\n\n\t\n\tEVALUACIONEVENTO_ESTADO=\n\t[\n\t\t{ codigo: this.VIGENTE, nombre: this.VIGENTEDES},\n\t\t{ codigo: this.NOVIGENTE, nombre: this.NOVIGENTEDES},\n  ]\n\t\n\t PROCESO_SELECCION=\"PS\";\n\t DESCRIPCION_CARGO=\"DC\";\n\t REQUERIMIENTO_PERSONAL=\"RP\";\n\t PROCESO_SELECCION_DESC=\"PROCESO SELECCION\";\n\t DESCRIPCION_CARGO_DESC=\"DESCRIPCION CARGO\";\n\t REQUERIMIENTO_PERSONAL_DESC=\"REQUERIMIENTO PERSONAL\";\n\n\t PROCESO_SELECCION_DESCMIN=\"Proceso Selecci\\u00F3n\";\n\t DESCRIPCION_CARGO_DESCMIN=\"Descripci\\u00F3n Cargo\";\n\t REQUERIMIENTO_PERSONAL_DESCMIN=\"Requerimiento Personal\";\n\n\t\n\tTIPO_FORMATO_IMPRESION=\n\t[\n\t\t{ codigo: this.PROCESO_SELECCION, nombre: this.PROCESO_SELECCION_DESC},\n\t\t{ codigo: this.DESCRIPCION_CARGO, nombre: this.DESCRIPCION_CARGO_DESC},\n\t\t{ codigo: this.REQUERIMIENTO_PERSONAL, nombre: this.REQUERIMIENTO_PERSONAL_DESC},\n  ]\n\t UNIDAD_CARGO=\"UC\";\n\t UNIDAD_CARGO_DESC=\"UNIDAD CARGO\";\n\t\n\tORIGEN_MARCADOR_DESCRIPCION=\n\t[\n\t\t{ codigo: this.UNIDAD_CARGO, nombre: this.UNIDAD_CARGO_DESC},\n\t\t{ codigo: this.DESCRIPCION_CARGO, nombre: this.DESCRIPCION_CARGO_DESC},\n  ]\n\t\n  NECESIDAD_CAPACITACION = \"N\";\n  ASISTENTE_CAPACITACION_DESC = \"ASISTENTE EVENTO\";\n  ASISTENTE_CAPACITACION = \"A\";\n  NECESIDAD_CAPACITACION_DESC = \"NECESIDAD CAPACITACION\";\n\n\tTIPOS_AUTORIZACIONES_CAPACITACION=\n\t[\n\t\t{ codigo: this.NECESIDAD_CAPACITACION, nombre: this.NECESIDAD_CAPACITACION_DESC},\n\t\t{ codigo: this.ASISTENTE_CAPACITACION, nombre: this.ASISTENTE_CAPACITACION_DESC},\n  ]\n\t\n\t\n\t PLANILLA=\"PL\";\n\t DEFECTO=\"DE\";\n\t DESC_PLANILLA=\"Planilla\";\n\t DESC_DEFECTO=\"Defecto\";\n\t\n  MAPA_TIPO_TABLA_REQUERIMIENTO=\n\t[\n\t\t{ codigo: this.DEFECTO,  nombre: this.DESC_DEFECTO},\n\t\t{ codigo: this.PLANILLA,  nombre: this.DESC_PLANILLA},\n\t\t\n  ]\n\t\n\n\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n\t\tif (args[0] == 'listaevaluacionestado') { this.EVALUACIONEVENTO_ESTADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listatipo') { this.TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\tif (args[0] == 'listadetipo') { this.MAPA_TIPO_TABLA_REQUERIMIENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\tif (args[0] == 'listaTipoFactor') { this.FACTORES_EVALUACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n\n    return result;\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FormularioProcesoService {\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService,private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  traerVinculacionMotivo(motivoRequerimiento: string, empresa: any): Observable<any[]>{\n    let general = new FormData();\n      general.append(\"motivoRequerimiento\",motivoRequerimiento);\n      general.append(\"empresa\",empresa);\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/formularioproceso/traerVinculacionMotivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { EjecucionEncuestaComponent } from './../../../../sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent } from './../../../../sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { PuestoTrabajoPipe } from '../../../../../shared/pipes/puestoTrabajo.pipe';\nimport { BienestarPipe } from '../../../../bienestar/pipes/bienestar.pipe';\nimport { ArchivoModel } from '../../../../hojavida/models/ArchivoModel';\nimport { CandidatoModel } from '../../../models/CandidatoModel';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { PerfilTablasModel } from '../../../models/PerfilTablasModel';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\n\nimport { SeccionCampoService } from '../../../../hojavida/services/seccionCampo.service';\nimport { ListadoHojaVidaService } from '../../../../../shared/servicios/listado-hoja-vida.service';\n\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralModel, UtilsService, CargarControlFuncionalidadService, ToastService, AuthService, FormulariodinamicoComponent } from 'general-library-union';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { RequerimientoPersonalPipe } from '../../../pipes/requerimiento-personal.pipe';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { RequerimientoPersonalPmService } from '../../../../compensacion/services/requerimiento-personal-pm.service';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\n\nimport { MotivoRequerimientoModel } from '../../../models/MotivoRequerimientoModel';\nimport { ConvocatoriaPipe } from '../../../pipes/convocatoria-pipe.pipe';\nimport { FormularioProcesoModel } from '../../../models/FormularioProcesoModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { RequerimientoPersonalService } from '../../../services/requerimiento-personal.service';\nimport { OrigenDatosPipe } from '../../../../../shared/pipes/origen-datos.pipe';\nimport { VinculacionLaboralModel } from '../../../../compensacion/models/VinculacionLaboralModel';\nimport { FormularioProcesoService } from '../../../services/formulario-proceso.service';\nimport { PanelEtapaRequerimientoConComponent } from '../../requerimiento-personal/panel-etapa-requerimiento-con/panel-etapa-requerimiento-con.component';\nimport { ListadoPuestoRequerimientoComponent } from '../../requerimiento-personal/listado-puesto-requerimiento/listado-puesto-requerimiento.component';\nimport { PopupRequerimientoPersonalComponent } from '../../../popups/popup-requerimiento-personal/popup-requerimiento-personal.component';\nimport { FuncionPuestraModel } from '../../../models/FuncionPuestraModel';\nimport { PopupMotivoRequerimientoComponent } from '../../../popups/popup-motivo-requerimiento/popup-motivo-requerimiento.component';\nimport { CandidatoService } from '../../../services/candidato.service';\nimport { PerfilFuncionService } from '../../../services/perfil-funcion.service';\nimport { DatosBasicosEmpresaCons } from '../../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { DescripcionCargoComponent } from '../../descripcion-cargo/descripcion-cargo/descripcion-cargo.component';\nimport { ProcesoSeleccionTalComponent } from '../../requerimiento-personal/proceso-seleccion/proceso-seleccion.component';\nimport { CandidatosComponent } from '../../requerimiento-personal/candidatos/candidatos.component';\nimport { RequerimientoAnexoComponent } from '../../requerimiento-personal/requerimiento-anexo/requerimiento-anexo.component';\nimport { RequerimientoEtapaCandidatoComponent } from '../../requerimiento-personal/requerimiento-etapa-candidato/requerimiento-etapa-candidato.component';\nimport { RequerimientoCosteoComponent } from '../../requerimiento-personal/requerimiento-costeo/requerimiento-costeo.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\nimport { MenubarModule } from 'primeng/menubar';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, NgFor, DecimalPipe, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Router } from '@angular/router';\nimport { ActividadFuenteTareaModel } from '../../../models/ActividadFuenteTareaModel';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\n\n\n@Component({\n    selector: 'app-requerimiento-pm',\n    templateUrl: './requerimiento-pm.page.html',\n    styleUrls: ['./requerimiento-pm.page.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, NgIf, ButtonDirective, Ripple, ProgressBarModule, MenubarModule, BreadcrumbModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgFor, PopupRequerimientoPersonalComponent, PanelEtapaRequerimientoConComponent, RequerimientoCosteoComponent, RequerimientoEtapaCandidatoComponent, RequerimientoAnexoComponent, CandidatosComponent, ProcesoSeleccionTalComponent, ListadoPuestoRequerimientoComponent, DescripcionCargoComponent, PopupMotivoRequerimientoComponent, DecimalPipe, DatePipe, TranslateModule,\n      FormulariodinamicoComponent,EjecucionAutorizacionComponent,EjecucionEncuestaComponent\n    ]\n})\nexport class RequerimientoPmPage implements OnInit {\n\n  @ViewChild('formulario') formulario: FormulariodinamicoComponent;\n  @ViewChild('panelEtapa') panelEtapa: PanelEtapaRequerimientoConComponent;\n  @ViewChild('listadoPuestoReq') listadoPuestoReq: ListadoPuestoRequerimientoComponent;\n  @ViewChild('popupReqPersonal') popupReqPersonal: PopupRequerimientoPersonalComponent;\n  @ViewChild('motivoReq') popupmotivoReq: PopupMotivoRequerimientoComponent;\n  @ViewChild('descripcionCargoBean') descripcionCargoBean : DescripcionCargoComponent\n  \n\n\n  \n  \n  listaSiNo: any[] = [];\n  puestoTrabajo: PuestoTrabajoModel = new PuestoTrabajoModel();\n  listaUnidades: any[] = [];\n  listaVinculacion: any[] = [];\n  mapaEstadoProcesoSele;\n  mapaEstadoCandidato;\n  listaOrigenCandidato: any[] = [];\n  etapas: DatoorganizacionModel[] = [];\n\n  public listaCandidatoDTO: CandidatoModel[] = [];\n  listaLineaCostoItem: any[] = [];\n  listaProcesoSeleccionDTO: ProcesoSeleccionModel[] = [];\n  listadatotablaHijos: DatoorganizacionModel[] = [];\n  listaSucursalGesItem: any[] = []\n  listaCargo: any[] = [];\n  origenCandidatoValor: string;\n  candidatos: boolean;\n  puestoRequerimiento: boolean;\n  bloquearCampoCandidato: boolean;\n  procesoSelec: boolean;\n  estadoPuestoTrabajo: any;\n  \n\n  nuevoCosteo: PerfilTablasModel = new PerfilTablasModel();\n  nuevoCandidato: PerfilTablasModel = new PerfilTablasModel();\n  anexoIngresar: ArchivoModel = new ArchivoModel();\n  public manejaMenuRequerimiento: MenuItem[]\n  public manejaMenu: MenuItem[];\n  public perfilFuncion: PerfilFuncionModel = new PerfilFuncionModel();\n  public vistaVisualizar\n  public procesoAutorizacion: boolean;\n  @Output() setVistaVisualizar: EventEmitter<any> = new EventEmitter();\n  public numeroSeccionActual: number = 0;\n  cedula: number;\n  clickGuardar: boolean;\n\n\n  numeroSeleccionActual\n  deshabilitarSucursalges: boolean = false;\n\n  public verPopupRequerimiento: boolean = false;\n\n  pasos: MenuItem[] = [];\n  anexo: ArchivoModel[] = [];\n  llaveFormulario: string;\n  seccionesArr: object[] = []\n  filasCampoPerfil: any[] = [];\n  filas: any[] = [];\n  public requerimientoPmPage: RequerimientoPmPage;\n  requerimientoPersonalDTO: RequerimientoPersonalModel = new RequerimientoPersonalModel();\n  secciones: any[]=[];\n  dinamico: any;\n  seccionActual: any;\n  elaboracion: boolean;\n  cargoExiste: boolean;\n  nuevo: boolean;\n  listaCosteo: any[];\n  listaAnexo: any[];\n  listaCandidato: any[] = [];\n  listaPuesto: any = [];\n  mapaRequerimiento: Map<string, DatoorganizacionModel> | undefined;\n  numeroCargo: boolean;\n  public encuesta: boolean= false;\n  listaColumnas: DatoorganizacionModel[] = [];\n  public unicoArchivo;\n  mensaje: string;\n  loading: boolean = true;\n  controlListaRequerimiento: boolean = false;\n  tipoRequerimientoPortal: string\n  descartarPuestoTrabajo: boolean;\n  tituloTarea: string;\n\n  //BPM\n  @ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n\t@ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  constructor(private selectListEvaluaciones: SelectListEvaluacionesService, private generalPipe: GeneralPipe, private bienestarPipe: BienestarPipe, private puestoTrabajoPipe: PuestoTrabajoPipe, public seccionCampoService: SeccionCampoService,\n    private listadoHojaService: ListadoHojaVidaService, private generalService: GeneralService, private utilService: UtilsService, private requerimientoPersonalPMSvc: RequerimientoPersonalPmService,\n    private RequerimientoPPipe: RequerimientoPersonalPipe, private controlFuncionService: CargarControlFuncionalidadService, private translateService: TranslateService, private datoOrganizacionPipe: DatoOrganizacionPipe, private convocatoriaPipe: ConvocatoriaPipe,\n    private notificationBusService: ToastService, private saraAplicacionServices: SaraAplicacionService, private requerimientoPersonalPipe: RequerimientoPersonalPipe, private authService: AuthService,private confirmationService : ConfirmationService,private datosBasicosEmpresaCons: DatosBasicosEmpresaCons,\n    private requerimientoPersonalService : RequerimientoPersonalService, private origenDatosPipe: OrigenDatosPipe,private formularioProcesoService: FormularioProcesoService, private candidatoSvc : CandidatoService, private perfilFuncionService : PerfilFuncionService,\n    private router: Router, private workFlowPipe: WorkflowPipe) { }\n\n  async ngOnInit(): Promise<void> {\n    this.cedula = await this.saraAplicacionServices.getCedula();\n    this.listaSiNo = this.generalPipe.LISTA_SINO;\n    this.listaUnidades = [];\n    this.listaVinculacion = [];\n    this.mapaEstadoProcesoSele = this.generalPipe.ESTADO_PROCESO;\n    this.mapaEstadoCandidato = this.generalPipe.ETAPAPROCESO\n    this.listaOrigenCandidato = this.bienestarPipe.listaExternoInterno;\n    this.etapas = [];\n    this.inicializarListar();\n    await this.utilService.resizeWindowIFrame();\n  }\n\n  public async nuevoCargo(tipoRequerimiento: string, unidad: string,empresa: number,cargo: string,tipoPuesto: string,motivo: string, \n    tipoRequerimientoPortal: string,clasificacion: string,destino: string, titulo: string): Promise<void> {\n      try {\n        this.tituloTarea = titulo;\n        this.ngOnInit();\n        this.tipoRequerimientoPortal = tipoRequerimientoPortal;\n        let dto: RequerimientoPersonalModel = await this.requerimientoPersonalPMSvc.cargarRequerimientoPortal(tipoRequerimiento, unidad, empresa, cargo, tipoPuesto, motivo).toPromise();\n        this.gestionRequerimiento(dto);\n        this.descartarPuestoTrabajo = (true);\n        await this.mostrarRequerimientoPersonal( await this.obtenerFormulario(motivo, tipoRequerimiento, clasificacion));\n        await this.cargarEtapas();\n        await this.inicializarCantidad();  \n        this.loading = false;    \n        await this.utilService.resizeWindowIFrame();\n      } catch (error) {\n        console.log(error);\n        \n      }\n      await this.utilService.resizeWindowIFrame();\n}\n\npublic async cargarCrear(destino,puestoTrabajo: PuestoTrabajoModel,motivoRequerimiento:  MotivoRequerimientoModel,nuevo:boolean) {\n  //this.requerimientoPersonalPMSvc.inicializar(this.saraAplicacionServices.getCedula(), getDataSource(),puestoTrabajo,nuevo);\t\n  try {\n    await this.ngOnInit();\n    await this.inicializacionPuestoExiste(puestoTrabajo, motivoRequerimiento);\n    await this.cargarEtapas();\n    //valoresInicial();\n    await this.valoresInicialCandidato();\n    this.loading = false;\n  } catch (e) {\n    console.log('e',e);\n    \n  }\n  await this.utilService.resizeWindowIFrame();\n  \n  \n}\n\nprivate valoresInicialCandidato() {\n  this.origenCandidatoValor=\"\";\n  this.bloquearCampoCandidato=false;\n}\n\n\n\n\n  public async verRequerimiento(llaveRequerimiento: string) {\n    try {\n      this.loading = true;\n      this.ngOnInit();\n      let data = await this.requerimientoPersonalPMSvc.cargarRequerimiento(llaveRequerimiento).toPromise();\n      this.requerimientoPersonalDTO = data['requerimientoPersonalDTO'];\n      this.perfilFuncion = data['perfilFuncion'];\n      this.llaveFormulario = data['llaveFormulario'];\n      let comodinTabla: PerfilTablasModel = new PerfilTablasModel();\n      comodinTabla.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n      \n      await this.setListaCosteo(comodinTabla);\n      await this.setListaCandidato(comodinTabla);\n      this.anexo = await this.requerimientoPersonalPMSvc.setAnexo(comodinTabla).toPromise();\n      this.listaAnexo = await this.anexo;\n      await this.mostrarRequerimientoPersonal(this.llaveFormulario);\n      await this.utilService.sleep(20);\n      this.inicializarListar();\n      this.cargarEtapas();\n      this.loading = false;\n\n      this.seccionCampoService.disparador.emit({ data: this });\n      await this.utilService.sleep(100);\n      await this.utilService.resizeWindowIFrame();\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  public async mostrarRequerimientoPersonal(llaveFormulario: string) {\n    let panel = await this.requerimientoPersonalPMSvc.inicializarPanel(llaveFormulario, this.requerimientoPersonalDTO, this.puestoTrabajo).toPromise();\n    this.secciones = panel['secciones'];\n    this.requerimientoPersonalDTO = panel['requerimientoPersonalDTO'];\n    this.requerimientoPersonalDTO.solicitud = new Date(this.requerimientoPersonalDTO.solicitud);\n    this.seccionesArr = panel['seccionesArr'];\n    this.dinamico = panel['dinamico'];\n    this.llaveFormulario = llaveFormulario;\n    this.seccionActual = panel['seccionActual'];\n    this.mapaRequerimiento = panel['mapaRequerimiento'];\n    this.nuevoCosteo = new PerfilTablasModel();\n    this.nuevoCandidato = new PerfilTablasModel();\n    this.anexoIngresar = new ArchivoModel();\n    this.anexoIngresar.existe = true;\n    //poner la especificacion//\n    if (this.requerimientoPersonalDTO != null) {\n      if (this.requerimientoPersonalDTO.especificar == null) {\n        this.requerimientoPersonalDTO.especificar == Constantes.CONSTANTE_NO;\n      }\n    }\n    this.cargarListasRequerimiento()\n  }\n\n\n async cargarEtapas() {\n    try {\n      this.verPopupRequerimiento = false;\n      if (this.isElaboracion()) {\n        this.pasos = [];\n      }\n      let dato = new DatoorganizacionModel();\n      let i: number = 0;\n      const secciones: { [key: string]: any } = await this.secciones;\n      for (const [clave, valor] of Object.entries(secciones)) {\n        let menu: MenuItem | undefined;\n        dato = new DatoorganizacionModel();\n        dato.orden = i;\n        dato.descripcion = valor.etapa?.descripcion;\n        dato.llaveTabla = valor.etapa?.seccion;\n        this.etapas.push(dato);\n        // Si es elaboracion, adiciona item a menu BreadcrimbMenuModel\n        if (this.isElaboracion()) {\n          let titulo = this.capitalizarTexto(valor?.etapa?.descripcion);\n          if (\"S\" == valor?.etapa?.requerido) {\n            titulo = titulo + \" *\";\n          }\n          let estilo = valor.etapa.descripcion == await this.seccionActual.etapa.descripcion ? 'resaltado' : ''\n          menu = { label: this.capitalizarTexto(valor.etapa.descripcion), styleClass: estilo };\n          this.pasos.push(menu);\n          // .adicionarActividad(new ActividadModel(false, titulo, dato));\n        }\n        ++i;\n      }\n      if (!this.isNuevo() && this.isTieneCantidad() && this.isMostrarAsignarPuesto() && this.isElaboracion()) {\n        let asignarpuestotrabajo = this.translateService.instant('asignarpuestotrabajo');\n        if (this.secciones[asignarpuestotrabajo] == null) {\n          dato = new DatoorganizacionModel();\n          dato.orden = i++;\n          dato.descripcion = asignarpuestotrabajo;\n          dato.llaveTabla = asignarpuestotrabajo;\n\n          let datoOrganizacionDTO: DatoorganizacionModel = new DatoorganizacionModel();\n          datoOrganizacionDTO.seccion = asignarpuestotrabajo;\n          datoOrganizacionDTO.tabla = 'REQUERIMIENTO';\n          datoOrganizacionDTO.descripcion = asignarpuestotrabajo;\n          let seccionAnexo = await this.requerimientoPersonalPMSvc.inicializarSeccion(datoOrganizacionDTO).toPromise();\n          this.secciones?.push(seccionAnexo) ;\n        }\n      }\n      if (this.isElaboracion()) {\n        // this.pasos?.habilitarActividad = 0\n      }\n      this.cargarMenuLateral();\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n\n  /**\n     * Creacion de un nuevo requerimiento desde listado de requerimiento\n     */\n  public async nuevoRequerimiento(requerimientoPersonalDTO: RequerimientoPersonalModel) {\n    this.loading = true;\n    this.ngOnInit();\n    let cedula: number = await this.saraAplicacionServices.getCedula();\n    this.requerimientoPersonalDTO = await this.requerimientoPersonalPMSvc.cargarRequerimiento2(requerimientoPersonalDTO, cedula).toPromise();\n    await this.gestionRequerimiento(this.requerimientoPersonalDTO);\n    let llaveFormulario: string = await this.obtenerFormulario(requerimientoPersonalDTO.motivoRequerimiento, requerimientoPersonalDTO.tipo, requerimientoPersonalDTO.clasificacionFiltro);\n    await this.mostrarRequerimientoPersonal(llaveFormulario);\n    await this.utilService.sleep(20);\n    this.etapas = [];\n    await this.cargarEtapas();\n    this.inicializarCantidad();\n    this.loading = false;\n  }\n\n  async inicializarCantidad() {\n    if (this.mapaRequerimiento['cantidad'] != null) {\n      this.requerimientoPersonalDTO.cantidad = 0;\n    } else {\n      this.requerimientoPersonalDTO.cantidad = 1;\n    }\n  }\n\n  async gestionRequerimiento(requerimientoPersonal: RequerimientoPersonalModel) {\n    try {\n      if (requerimientoPersonal.llaveTabla != null) {\n        let comodinTabla: PerfilTablasModel = new PerfilTablasModel();\n        comodinTabla.requerimiento = requerimientoPersonal.llaveTabla;\n        this.cargarRequerimiento(requerimientoPersonal.llaveTabla)\n       await this.setListCosteo(comodinTabla);\n       await this.setListaCandidato(comodinTabla);\n       await this.setAnexo(comodinTabla);\n      } else {\n        let cedula: number = await this.saraAplicacionServices.getCedula();\n        this.requerimientoPersonalDTO = await this.requerimientoPersonalPMSvc.cargarRequerimiento2(requerimientoPersonal, cedula).toPromise();\n        this.listaAnexo = [];\n        this.listaCosteo = [];\n        this.listaCandidato = [];\n        this.listaPuesto = [];\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  async obtenerFormulario(motivoRequiere: string, tipoRequiere: any, clasificacion: string): Promise<string> {\n    try {\n\n    } catch (e) {\n      console.log(e);\n    }\n    let procesoDTO: FormularioProcesoModel = new FormularioProcesoModel();\n    procesoDTO.motivoRequiere = motivoRequiere;\n    procesoDTO.tipoRequiere = tipoRequiere;\n    procesoDTO.clasificacion = clasificacion;\n    procesoDTO.origen = 'FO';\n    let lista: FormularioProcesoModel[] = await this.generalService.queryForList(new GeneralModel('FormularioProcesoDTO', null, false, procesoDTO)).toPromise();\n    if (lista.length == 0) {\n      this.notificationBusService.showWarning('No se ha encontrado un formulario acorde al requerimiento');\n      return null;\n    }\n    return lista[0].formulario;\n  }\n\n  public async gestionRequerimientoPuesto(puesto: PuestoTrabajoModel, motivo: MotivoRequerimientoModel) {\n    this.loading = true;\n    this.ngOnInit();\n    this.inicializarListar();\n    this.procesoRequerimientoPuesto(puesto, motivo);\n    this.loading = false;\n  }\n\n  async procesoRequerimientoPuesto(puesto: PuestoTrabajoModel, motivo: MotivoRequerimientoModel) {\n    try {\n      let llave: string = puesto?.llaveRequerimiento;\n      this.listaCosteo = [];\n      this.listaCandidato = [];\n      this.listaAnexo = [];\n      if (llave != null) {\n        this.cargarRequerimiento(llave);\n        if (this.requerimientoPersonalDTO == null) {\n          this.notificationBusService.showInfo('No encontro requerimiento de personal');\n          return;\n        }\n        let comodin: PerfilTablasModel = new PerfilTablasModel();\n        comodin.requerimiento = llave;\n       await this.setListCosteo(comodin);\n       await this.setAnexo(comodin);\n       await this.setListaCandidato(comodin);\n      } else {\n        await this.inicializacionPuestoExiste(puesto, motivo);\n        await this.utilService.sleep(200);\n      }\n      await this.cargarEtapas();\n      // valoresInicial\n    } catch (e) {\n      console.log(e);\n      console.trace(e)\n    }\n  }\n\n  async inicializacionPuestoExiste(puesto: PuestoTrabajoModel, motivo: MotivoRequerimientoModel) {\n    try {\n      this.requerimientoPersonalDTO = await this.requerimientoPersonalPMSvc.inicializarPuestoExistente(puesto, motivo).toPromise();\n      let perfil: PerfilFuncionModel = new PerfilFuncionModel();\n      perfil.llaveTabla = puesto.perfilFuncion;\n      perfil = await this.generalService.queryForObject(new GeneralModel('PerfilFuncionDTO', null, false, perfil)).toPromise();\n      this.perfilFuncion = perfil;\n      let cargo: CargoModel = await this.obtenerCargo(puesto.cargo, puesto.empresa);\n      await this.mostrarRequerimientoPersonal(await this.obtenerFormulario(motivo.motivo, 'PT', cargo.clasificacion));\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  async obtenerCargo(cargo: string, empresa: number) {\n    try {\n      let dto: CargoModel = new CargoModel();\n      dto.empresa = empresa;\n      dto.cargo = cargo;\n      return await this.generalService.queryForObject(new GeneralModel('CargoDTO', null, false, dto)).toPromise();\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  public async inicializarListar() {\n    this.listaCandidatoDTO = [];\n    this.listaProcesoSeleccionDTO = [];\n    this.listadatotablaHijos = [];\n    this.origenCandidatoValor = ''\n    this.candidatos = false;\n    this.puestoRequerimiento = false;\n    this.bloquearCampoCandidato = false;\n    this.procesoSelec = false;\n    this.estadoPuestoTrabajo = this.puestoTrabajoPipe.LISTAESTADOPUESTOTRABAJO;\n  }\n\n  async cargarListasRequerimiento() {\n    this.estadoPuestoTrabajo = this.convertidorPipesSelects((this.puestoTrabajoPipe.LISTAESTADOPUESTOTRABAJO));\n    if (this.mapaRequerimiento['lineaCosto'] != null) {\n      this.listaLineaCostoItem = await this.selectListEvaluaciones.consultarLineaCosto(this.requerimientoPersonalDTO.empresa);\n    }\n    if (this.getMapaRequerimiento()['sucuarsalGes'] != null) {\n      this.deshabilitarSucursalges = false;\n      if (window.location.href.endsWith('listadoRequerimientoPersonal')) {\n        this.listaSucursalGesItem = await this.listadoHojaService.getListaSucursalGestion().toPromise();\n      } else if (window.location.href.endsWith('plantaPersonal') || window.location.href.endsWith('uirequerimientopuesto')) {\n        if (this.requerimientoPersonalDTO.unidad != null) {\n          this.listaSucursalGesItem = await this.listadoHojaService.getListaSucursalGestion().toPromise();\n          this.deshabilitarSucursalges = true;\n        }\n      }\n    }\n    if (this.requerimientoPersonalDTO.unidad != null && this.requerimientoPersonalDTO.sucursalGes == null) {\n      let unidad: UnidadOrganizacionalModel = await this.generalService.queryForObject(new GeneralModel('UnidadOrganizacionalDTO', null, false, {unidad: this.requerimientoPersonalDTO.unidad,empresa: this.requerimientoPersonalDTO.empresa})).toPromise();\n      this.requerimientoPersonalDTO.sucursalGes = unidad.sucursalGes;\n    }\n    if (this.isCargoExiste()) {\n      this.listaCargo = [];\n      try {\n        let comodin = new CargoModel();\n        let lista: CargoModel[] = await this.generalService.queryForList(new GeneralModel('CargoDTO', null, false, { empresa: this.requerimientoPersonalDTO.empresa })).toPromise();\n        lista.forEach(element => {\n          let llave: string = this.utilService.rightpad(element.cargo, 8, '');\n          this.listaCargo.push({ key: llave, label: llave + '- ' + element.descripcion });\n        });\n      } catch (error) {\n        console.log(error);\n      }\n    }\n    if (this.isVinculacionLaboral()) {\n      this.listaVinculacion = await this.llenarVinculacion(this.requerimientoPersonalDTO.motivoRequerimiento, this.requerimientoPersonalDTO.empresa);\n    }\n  }\n\n  public async llenarVinculacion(motivo: string, empresa: number) {\n    let listaVinculacion: any[] = [];\n    let listaVinculacionLaboral: VinculacionLaboralModel[] = await this.formularioProcesoService.traerVinculacionMotivo(motivo, empresa).toPromise();\n    listaVinculacion.push({ key: null, label: '-- Seleccione --' });\n    listaVinculacionLaboral.forEach(element => {\n      listaVinculacion.push({ key: element.vinculacion, label: element.descripcion })\n    });\n    return listaVinculacion;\n  }\n\n\n  async cargarMenuLateral() {\n    try {\n      await this.utilService.sleep(1000);\n      this.manejaMenu = [];\n      this.manejaMenuRequerimiento = [];\n      let puedeEliminar: boolean = this.isPuedeEliminar();\n      let nuevo: boolean = this.isNuevo()\n      let mostrarMotivo: boolean = this.isMostrarMotivo();\n      let mostrarAsignarPuesto = !this.isNuevo() && this.isTieneCantidad() && this.isMostrarAsignarPuesto();\n\n\n      if (!this.isElaboracion()) {\n        let imagen: string = '';\n        if (this.etapas.length > 0) {\n          for (const item of this.etapas) {\n            let tabla = item.llaveTabla;\n            if (this.datoOrganizacionPipe.BASE == (tabla)) {\n              imagen = ImagenesCons.folder_plus;\n            } else if (this.datoOrganizacionPipe.RELACION == (tabla)) {\n              imagen = ImagenesCons.businessman;\n            } else if (this.datoOrganizacionPipe.GRUPO == (tabla)) {\n              imagen = ImagenesCons.group;\n            } else if (this.datoOrganizacionPipe.INDUCCION == (tabla)) {\n              imagen = ImagenesCons.industrial_zone;\n            } else if (this.datoOrganizacionPipe.ENTRENAMIENTO == (tabla)) {\n              imagen = ImagenesCons.industrial_zone;\n            } else if (this.datoOrganizacionPipe.FUNCION == (tabla)) {\n              imagen = ImagenesCons.print;\n            } else if (this.datoOrganizacionPipe.COMPETENCIA == (tabla)) {\n              imagen = ImagenesCons.user_key;\n            } else if (this.datoOrganizacionPipe.PERFIL == (tabla)) {\n              imagen = ImagenesCons.user;\n            } else if (this.datoOrganizacionPipe.REQUERIMIENTO == (tabla)) {\n              imagen = ImagenesCons.clock;\n            } else if (this.datoOrganizacionPipe.TABLA1 == (tabla)) {\n              imagen = ImagenesCons.align_right;\n            } else if (this.datoOrganizacionPipe.TABLA2 == (tabla)) {\n              imagen = ImagenesCons.list_numbered;\n            } else if (this.datoOrganizacionPipe.TABLA3 == (tabla)) {\n              imagen = ImagenesCons.paste;\n            } else if (this.datoOrganizacionPipe.TABLA4 == (tabla)) {\n              imagen = ImagenesCons.calculator;\n            } else if (this.datoOrganizacionPipe.TABLA5 == (tabla)) {\n              imagen = ImagenesCons.shirt;\n            } else if (this.datoOrganizacionPipe.EPP == (tabla)) {\n              imagen = ImagenesCons.settings;\n            } else if (this.datoOrganizacionPipe.DOTACIONEQUIPO == (tabla)) {\n              imagen = ImagenesCons.shirt;\n            } else if (this.datoOrganizacionPipe.PUESTO_TRABAJO_TABLA == (tabla)) {\n              imagen = ImagenesCons.industrial_zone;\n            } else if (this.datoOrganizacionPipe.COSTEO_TABLA == (tabla)) {\n              imagen = ImagenesCons.money;\n            } else if (this.datoOrganizacionPipe.CARGO == (tabla)) {\n              imagen = ImagenesCons.notes_2;\n            } else if (this.datoOrganizacionPipe.PROCESO_SELECCION == (tabla)) {\n              imagen = ImagenesCons.certificate;\n            } else if (this.datoOrganizacionPipe.NECESIDAD_CAPACITACION == (tabla)) {\n              imagen = ImagenesCons.envelope;\n            } else if (this.datoOrganizacionPipe.BASE == (tabla)) {\n              imagen = ImagenesCons.show_big_thumbnails;\n            } else if (this.datoOrganizacionPipe.FORMACION == (tabla)) {\n              imagen = ImagenesCons.power;\n            } else if (this.datoOrganizacionPipe.CARA_TABLA == (tabla)) {\n              imagen = ImagenesCons.left_indent;\n            } else if (this.datoOrganizacionPipe.DESANEXO == (tabla)) {\n              imagen = ImagenesCons.folder_open;\n            } else {\n              imagen = ImagenesCons.user;\n            }\n            this.manejaMenuRequerimiento.push({\n              label: this.capitalizarTexto(item.descripcion),\n              icon: imagen,\n              command: async (event) => {\n                await this.seleccionarEtapa(item);\n              },\n            })\n          }\n\n          this.manejaMenu.push({\n            label: this.translateService.instant('requerimiento'),\n            items: this.manejaMenuRequerimiento\n          })\n        }\n      }\n\n      this.manejaMenu.push(\n        {\n          label: this.translateService.instant('requerimiento') + Constantes.ESPACIO_BLANCO + this.translateService.instant('personal'),\n          items: [{\n            label: this.translateService.instant('modificar') + Constantes.ESPACIO_BLANCO + this.translateService.instant('motivo'),\n            visible: mostrarMotivo,\n            icon: ImagenesCons.random,\n            command: (event) => {\n              this.modificarMotivo() \n            },\n          },\n          {\n            label: this.translateService.instant('asignarpuestotrabajo'),\n            visible: mostrarAsignarPuesto,\n            icon: ImagenesCons.user_add,\n            command: (event) => {\n              this.asignarPuestoTrabajo() \n            },\n          },\n          {\n            label: this.translateService.instant('anular'),\n            visible: puedeEliminar,\n            icon: ImagenesCons.delete,\n            command: (event) => {\n              this.anularRequerimientoPersonal()\n            },\n          },\n          {\n            label: this.translateService.instant('link_eliminar'),\n            visible: puedeEliminar,\n            icon: ImagenesCons.delete,\n            command: (event) => {\n              this.eliminarRequerimientoPersonal() \n            },\n          },\n          {\n            label: this.translateService.instant('descripcioncargo'),\n            visible: (this.requerimientoPersonalDTO != null && this.requerimientoPersonalDTO.puestoTrabajo != null),\n            icon: ImagenesCons.underground,\n            command: (event) => {\n              this.cargarDescripcionCargo()\n            },\n          }\n          ],\n        }\n      );\n      if (!nuevo) {\n        if (!this.isAutoServicioPortal()) {\n          this.manejaMenu.push({\n            label: this.translateService.instant('imprimir'),\n            items: [{\n              label: this.translateService.instant('requerimiento'),\n              icon: ImagenesCons.check,\n              command: (event) => {\n                // this.imprimir() \n              },\n            },\n            {\n              label: this.translateService.instant('perfil') + Constantes.ESPACIO_BLANCO + this.translateService.instant('de') + Constantes.ESPACIO_BLANCO + this.translateService.instant('cargo'),\n              icon: ImagenesCons.group,\n              command: (event) => {\n                // this.imprimirCargo() \n              },\n            },\n            {\n              label: this.translateService.instant('requerimiento'),\n              icon: ImagenesCons.check,\n              command: (event) => {\n                // this.imprimir() \n              },\n            },\n            ]\n          });\n          if (this.isMostrarProcesoSeleccion() || this.isMostrarCandidatos()) {\n            this.manejaMenu.push({\n              label: this.translateService.instant('proceso') + Constantes.ESPACIO_BLANCO + this.translateService.instant('seleccion'),\n              items: [{\n                label: this.translateService.instant('procesoSeleccion'),\n                icon: ImagenesCons.user_flag,\n                visible: (this.isMostrarProcesoSeleccion() || this.isAutoServicioPortal()),\n                command: (event) => {\n                  this.seleccionarProceso() \n                },\n              },\n              {\n                label: this.translateService.instant('candidatos'),\n                icon: ImagenesCons.user_flag,\n                visible: (this.isMostrarCandidatos()),\n                command: (event) => {\n                  this.seleccionarCandidato() \n                },\n              }\n              ]\n            })\n          } else {\n            this.manejaMenu.push({\n              label: this.translateService.instant('proceso') + Constantes.ESPACIO_BLANCO + this.translateService.instant('seleccion'),\n              items: [{\n                label: this.translateService.instant('proceso'),\n                icon: ImagenesCons.print,\n                command: (event) => {\n                  // this.seleccionarProceso() \n                },\n              },\n              {\n                label: this.translateService.instant('candidatos'),\n                icon: ImagenesCons.group,\n                command: (event) => {\n                  // this.seleccionarCandidato() \n                },\n              }\n              ]\n            })\n          }\n\n        }\n\n\n      }\n\n     \n      this.requerimientoPmPage = this;\n    } catch (error) {\n      console.log(error);\n\n    }\n  }\n\n  public async seleccionarEtapa(item: DatoorganizacionModel){\n    try {\n      this.puestoRequerimiento = false;\n      this.candidatos = false;\n      this.procesoSelec = false;\n      this.verPopupRequerimiento = false;\n      let dato : DatoorganizacionModel = item;\n      if (dato.orden < this.numeroSeccionActual){\n        let data = await this.requerimientoPersonalPMSvc.visualizarSeccion(this.numeroSeccionActual,this.seccionesArr,this.dinamico,this.puestoTrabajo,this.nuevo,dato.orden.toString()).toPromise();\n        this.numeroSeccionActual = data['numeroSeccionActual'];\n        this.seccionActual = data['seccionActual'];\n        this.dinamico = data['dinamico'];\n        this.dibujarTabla();\n        return null;\n      }\n      if(dato.orden <= this.numeroSeccionActual){\n        return null;\n      }\n      let resultado: string = await this.manejoEtapas();\n      if(this.requerimientoPersonalPipe.VALIDACION === resultado){\n        return null;\n      }\n      let data = await this.requerimientoPersonalPMSvc.visualizarSeccion(this.numeroSeccionActual,this.seccionesArr,this.dinamico,this.puestoTrabajo,this.nuevo,dato.orden.toString()).toPromise();\n      this.numeroSeccionActual = data['numeroSeccionActual'];\n      this.seccionActual = data['seccionActual'];\n      this.dinamico = data['dinamico'];\n      this.dibujarTabla();\n      if(this.isPuestoTrabajo() && this.mapaRequerimiento[this.datoOrganizacionPipe.PUESTO_TRABAJO_TABLA] != null){\n\n      }\n      if(this.isPerfil()){\n        // cargarPer\n      }\n\n\n\n      \n    } catch (error) {\n      console.trace(error)\n    }\n  }\n\n\n  // public  cargarPerfil() {\n\t// \ttry {\n\t// \t\tlistaperfilcargo = talentoPM.cargarListaPerfil(getDataSource(), requerimientoPersonalPM.getPerfilFuncion().getPerfilfuncion());\n\t// \t\tString llavePerfilFuncion = requerimientoPersonalSvc.consultarLlavePerfilFuncion(getDataSource(), requerimientoPersonalPM.getRequerimientoPersonalDTO().getEmpresa(),\n\t// \t\t\t\trequerimientoPersonalPM.getRequerimientoPersonalDTO().getUnidad(), requerimientoPersonalPM.getRequerimientoPersonalDTO().getCargo(), requerimientoPersonalPM\n\t// \t\t\t\t\t\t.getRequerimientoPersonalDTO().getPuestoTrabajo());\n\t// \t\tif (StringUtils.isBlank(llavePerfilFuncion)) {\n\t// \t\t\tlistadoPerfilCargo = new ArrayList<PerfilCargoDTO>();\n\t// \t\t} else {\n\t// \t\t\tlistadoPerfilCargo = talentoPM.cargarListaPerfil(getDataSource(), llavePerfilFuncion);\n\t// \t\t}\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// \treturn null;\n\t// }\n\n  public async continuarRequerimiento() {\n    try {\n      if (Constantes.CONSTANTE_SI == this.seccionActual.etapa.requerido) {\n        let validar = false;\n        if (this.isRequerimiento()) {\n          validar = true;\n        } else if (this.isAnexo()) {\n          validar = (validar && (this.listaAnexo == null || this.listaAnexo.length == 0));\n        } else if (this.isEtapaCosteo()) {\n          validar = (validar && (this.listaCosteo == null || this.listaCosteo.length == 0))\n        } else if (this.isEtapaCandidato()) {\n          validar = (validar && (this.listaCandidato == null || this.listaCandidato.length == 0))\n        } else {\n          validar = (validar && (this.seccionActual.objetos != null && this.seccionActual.objetos.length == 0))\n        }\n        if (!validar) {\n          this.notificationBusService.showWarning('Debe incluir al menos un registro');\n          return null;\n        }\n      }\n      let valor: string = await this.manejoEtapas();\n      if(valor == this.requerimientoPersonalPipe.VALIDACION){\n        return null;\n      }\n\n      if(this.isRequerimiento() && this.mapaRequerimiento['PUESTO_TRABAJO'] != null){\n        this.listaPuesto = await this.requerimientoPersonalPMSvc.setListaPuesto(this.requerimientoPersonalDTO.puestoTrabajo,this.requerimientoPersonalDTO.llaveTabla,this.requerimientoPersonalDTO).toPromise();\n      }\n\n      if(this.isEtapaCosteo() && this.listaCosteo != null){\n        if(!this.validar()){\n          return null;\n        }\n        this.guardarTablaCosteo();\n      }if(this.isEtapaCandidato() && this.listaCandidato != null){\n        this.guardarTablaCandidato();\n      }\n\n      if(this.isPuestoTrabajo() && this.listaCandidato != null){\n        this.guardarTablaCandidato();\n      }\n      if(this.isPuestoTrabajo() && this.requerimientoPersonalDTO.cantidad != this.seleccionadoPuestoTrabajo()){\n        this.notificationBusService.showInfo(\"no ha seleccionado la misma cantidad digitada la cual es \" +this.requerimientoPersonalDTO.cantidad);\n        return null;\n      }else if(this.isPuestoTrabajo && this.requerimientoPersonalDTO.cantidad ==  this.seleccionadoPuestoTrabajo()){\n        this.guardarPuesto();\n      }\n      if(this.secciones.length == this.numeroSeccionActual + 1){\n        this.accionUltimaEtapa();\n      }else{\n        let data = await this.requerimientoPersonalPMSvc.siguiente(this.requerimientoPersonalDTO,this.seccionesArr,this.seccionActual,this.puestoTrabajo,this.numeroSeccionActual,this.perfilFuncion,this.dinamico,this.nuevo,await this.saraAplicacionServices.getCedula()).toPromise()\n        this.dinamico = data['dinamico'];\n        this.numeroSeccionActual = data['numeroSeccionActual'];\n        this.requerimientoPersonalDTO = data['requerimientoPersonalDTO'];\n        this.seccionActual = data['seccionActual'];\n        await this.cargarEtapas();\n      if(this.isPuestoRequerimiento()){\n          await this.asignarPuestoTrabajo();\n        }\n        this.dibujarTabla();\n      }\n      if(this.isPerfil()){\n        \n      }\n\n\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n\n  async regresar(){\n    try {\n      this.setVerPopupRequerimiento(false);\n      if(this.numeroSeccionActual != 0){\n        if(this.isPuestoTrabajo()){\n          this.guardarPuesto();\n        }\n        if(this.isPuestoRequerimiento()){\n          this.puestoRequerimiento = false;\n          this.candidatos = false;\n          this.procesoSelec = false;\n        }\n        let data = await this.requerimientoPersonalPMSvc.anterior(this.requerimientoPersonalDTO,this.seccionesArr,this.seccionActual,this.puestoTrabajo,this.numeroSeccionActual,this.perfilFuncion,this.dinamico,this.nuevo,await this.saraAplicacionServices.getCedula()).toPromise();\n        this.dinamico = data['dinamico'];\n        this.numeroSeccionActual = data['numeroSeccionActual'];\n        this.requerimientoPersonalDTO = data['requerimientoPersonalDTO'];\n        this.seccionActual = data['seccionActual'];\n        this.dibujarTabla();\n        if(this.isElaboracion()){\n          this.cargarEtapas();\n        }\n        return null;\n      }\n      if(!this.controlListaRequerimiento && this.requerimientoPersonalPipe.ESTADOELABORACION == this.requerimientoPersonalDTO.estado){\n        let mensaje : string;\n        if(this.requerimientoPersonalDTO.llaveTabla == null){\n          mensaje = 'Desea abandonar el proceso de requerimiento?';\n        }else{\n          mensaje = 'Desea borrar el requerimiento?';\n        }\n        this.confirmationService.confirm({\n          target: event.target,\n          message: mensaje,\n          acceptLabel: 'Si',\n          accept: () => {\n            this.setBorrarRequerimiento(true);\n          },\n          reject: () => {\n            this.setBorrarRequerimiento(false)\n           },\n        });\n        \n      }else{\n        \n      }\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  async setBorrarRequerimiento(boleano){\n    try {\n      if(boleano){\n        let data = await this.requerimientoPersonalPMSvc.eliminarRequerimiento(true).toPromise();\n        this.requerimientoPersonalDTO = data['requerimientoPersonalDTO'];\n      }else{\n        if(this.requerimientoPersonalDTO.llaveTabla != null){\n          this.notificationBusService.showInfo('El requerimiento quedar\\u00e1 en estado ' + this.requerimientoPersonalPipe.DESESTADOELABORACION);\n        }\n      }if(boleano ||  this.requerimientoPersonalDTO.llaveTabla != null){\n       await this.regresarVista();\n      }\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  \n\n async  dibujarTabla(){\n    let data = await this.requerimientoPersonalService.dibujarTabla(this.numeroSeccionActual,this.seccionActual).toPromise();\n    this.filas = data['filas'];\n    this.filasCampoPerfil = data['filasCampoPerfil'];\n    this.listaColumnas = data['listaColumnas'];\n    this.listadatotablaHijos = data['listadatotablaHijos'];\n  }\n\n \n  \n async asignarPuestoTrabajo(){\n  this.puestoRequerimiento = true;\n  this.candidatos = false;\n  this.procesoSelec = false;\n  await this.utilService.sleep(100);\n  await this.listadoPuestoReq.inicializar(this.requerimientoPersonalDTO);\n\n  return null\n }\n\n  private async accionUltimaEtapa() {\n    try {\n      if (this.requerimientoPersonalDTO.estado == this.requerimientoPersonalPipe.ESTADOELABORACION) {\n        this.requerimientoPersonalDTO = await this.requerimientoPersonalPMSvc.ultimaEtapaRequerimiento(this.requerimientoPersonalDTO).toPromise();\n      }\n      await this.requerimientoPersonalPMSvc.iniciarProceso(this.requerimientoPersonalDTO).toPromise();\n      // aplicarDestino();\n      this.notificationBusService.showInfo(\"Ha finalizado el proceso.\");    \n    } catch (error) {\n      \n    }\n  }\n\n  async manejoEtapas(){\n    if((this.isRequerimiento() || this.isBase()) && this.isElaboracion()){\n      if(this.isRequerimiento()){\n        this.formulario = this.panelEtapa.formulario;\n        if((!this.panelEtapa.formulario?.validar()) ){\n          return  this.requerimientoPersonalPipe.VALIDACION\n        } \n\n      }else{\n        if((!this.formulario?.validar()) ){\n          return  this.requerimientoPersonalPipe.VALIDACION\n        } \n      }\n       \n    }\n    if((this.isRequerimiento() || this.isBase()) && !this.encuesta && this.isElaboracion()){\n      let mensaje : string = await this.actualizar();\n      if(mensaje == null || mensaje == this.requerimientoPersonalPipe.FALTA_CAMPOS){\n        return this.requerimientoPersonalPipe.VALIDACION\n      }\n    }else if(this.isBase()){\n      let perfil : PerfilFuncionModel = this.perfilFuncion;\n      await this.generalService.update(new GeneralModel('PerfilFuncionDTO',null,false,perfil)).toPromise();\n    }\n    return null;\n  }\n\n\n  public seleccionadoPuestoTrabajo() {\n\t\tlet cantidadSeleccionado : number = 0;\n\t\tfor (const wrapper of this.listaPuesto) {\n\t\t\tif (wrapper.check) {\n\t\t\t\tcantidadSeleccionado++;\n\t\t\t}\n\t\t}\n\t\treturn cantidadSeleccionado;\n  }\n\n\n  async guardarDisparar(){\n    this.confirmationService.confirm({\n      target: event.target,\n      message: \"Al realizar esta acci\"+Constantes.O_TIDLE_MIN+\"n, se ejecutar\"+Constantes.A_TILDE_MIN+\" nuevamente la cadena de autorizaci\"+Constantes.O_TIDLE_MIN+\"n , Desea Continuar?\",\n      acceptLabel: 'Si',\n      accept: () => {\n        this.setConfirmaDispara();\n      },\n      reject: () => { },\n    });\n  }\n\n  async setConfirmaDispara(){\n    try {\n      let procesoSeleccionDTO : ProcesoSeleccionModel = new ProcesoSeleccionModel();\n      procesoSeleccionDTO.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n      let procesoSeleccion : number = await this.generalService.cantidadRegistros(new GeneralModel('ProcesoSeleccionDTO',null,false,procesoSeleccionDTO)).toPromise();\n      if(procesoSeleccion <= 0){\n        this.actualizar()\n        await this.requerimientoPersonalPMSvc.iniciarProceso(this.requerimientoPersonalDTO).toPromise();\n      }\n      else{\n        this.notificationBusService.showInfo('Este requerimiento ya se encuentra asociado a un proceso de selección, no es posible realizar cambios');\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  async actualizar(): Promise<string> {\n    try {\n      if (!this.validar()) {\n        return this.requerimientoPersonalPipe.FALTA_CAMPOS;\n      }\n      if (this.isRequerimiento()) {\n        let data: any = await this.requerimientoPersonalPMSvc.actualizarRequerimiento(this.llaveFormulario, this.requerimientoPersonalDTO, this.dinamico, await this.saraAplicacionServices.getCedula(), this.listaCosteo, this.listaCandidato).toPromise();\n        let mensaje: string = data['mensaje'];\n        this.requerimientoPersonalDTO = data['requerimientoPersonalDTO'];\n        this.perfilFuncion = data['perfilFuncion'];\n        this.cargarMenuLateral();\n        this.notificationBusService.showInfo(mensaje);\n        return mensaje;\n      }else if(this.isBase()){\n        let mensaje: string = 'Se actualizo el registro correctamente';\n        this.cargarMenuLateral();\n        this.notificationBusService.showInfo(mensaje);\n        return mensaje;\n      }\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n    \n\n  async validar(){\n    try {\n      let validador : boolean = true;\n      if(this.listaCosteo != null && this.listaCosteo.length > 0 && this.isPorcentaje() && !this.validarTablaCosteo()){\n        validador = false;\n        this.notificationBusService.showInfo('Los valores de los porcentajes deben sumar 100 ');\n      }\n      if(this.mapaRequerimiento['lineaCosto'] != null){\n        validador = validador && this.utilService.validarCampoObligatorio(this.requerimientoPersonalDTO.lineaCosto);\n      }\n      if(this.isNumeroCargo()){\n        validador = validador && this.utilService.validarCampoObligatorio(this.requerimientoPersonalDTO.cargo);\n      }if(this.isDescCargo()){\n        validador = validador && this.utilService.validarCampoObligatorio(this.requerimientoPersonalDTO.nombreNuevoCargo)\n      }if(this.isCargoExiste()){\n        validador = validador && this.utilService.validarCampoObligatorio(this.requerimientoPersonalDTO.cargo);\n      }if(this.isRequerimiento()&& this.mapaRequerimiento['cantidad'] != null){\n        validador = validador && this.utilService.validarCampoObligatorio(this.requerimientoPersonalDTO.cantidad);\n      }if(this.isUnidadSol()){\n        validador = validador && this.utilService.validarCampoObligatorio(this.requerimientoPersonalDTO.unidadSol);\n      }if(this.isVinculacionLaboral()){\n        validador = validador && this.utilService.validarCampoObligatorio(this.requerimientoPersonalDTO.vinculacionLaboral);\n      }\n      return validador\n    } catch (e) {\n      return false\n    }\n  }\n\n  eliminarRequerimientoPersonal(){\n    try {\n      this.confirmationService.confirm({\n        target: event.target,\n        message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n        accept: async () => {\n          this.setEliminaReq();\n        },\n        reject: () => { },\n      });\n    } catch (e) {\n      console.trace(e)\n    }\n  }\n\n  async setEliminaReq(){\n    try {\n      await this.requerimientoPersonalPMSvc.eliminarRequerimiento(true).toPromise();\n      this.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n      this.regresarVista();  \n    } catch (error) {\n      console.trace(error)\n    }\n  }\n\n  public async guardar(objeto, nuevo){\n    let data = await this.requerimientoPersonalService.guardar(objeto,nuevo).toPromise();\n    this.seccionActual = data['seccion'];\n    if(objeto instanceof FuncionPuestraModel){\n      await this.dibujarTabla();\n    }\n    this.notificationBusService.showInfo('El registro ha sido almacenado correctamente')\n  }\n\n  anularRequerimientoPersonal(){\n    try {\n      this.confirmationService.confirm({\n        target: event.target,\n        message: '¿Desea anular el requerimiento?',\n        accept: async () => {\n          this.setEliminaReq();\n        },\n        reject: () => { },\n      });\n    } catch (e) {\n      console.trace(e)\n    }\n  }\n\n  async setAnularReq(){\n    try {\n      await this.requerimientoPersonalPMSvc.eliminarRequerimiento(false).toPromise();\n      this.notificationBusService.showInfo('Se anulo el registro correctamente')\n      this.regresarVista();  \n    } catch (error) {\n      console.trace(error)\n    }\n  }\n\n  modificarMotivo(){\n    try {\n      this.popupmotivoReq.buscar(this.requerimientoPersonalPipe.REQUERIMIENTOPM,this.requerimientoPersonalDTO.tipo,this.requerimientoPersonalDTO.clasificacion,this.requerimientoPersonalDTO.empresa);\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  async setMotivoRequerimiento(motivo){\n    try {\n      let data = await this.requerimientoPersonalPMSvc.cambiarMotivoRequerimiento(motivo).toPromise();\n      this.requerimientoPersonalDTO = data['requerimientoPersonalDTO'];\n      this.perfilFuncion = data['perfilFuncion'];\n      this.llaveFormulario = data['llaveFormulario'];\n      let comodinTabla : PerfilTablasModel = new PerfilTablasModel();\n      comodinTabla.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n      await this.setListCosteo(comodinTabla);\n      await this.setListaCandidato(comodinTabla);\n      await this.setAnexo(comodinTabla);\n      await this.mostrarRequerimientoPersonal(this.llaveFormulario);\n      await this.utilService.sleep(20);\n      await this.cargarEtapas();\n    } catch (error) {\n      console.log(error);\n      \n    }\n  }\n\n  public async eliminar(objeto){\n    let data = await this.requerimientoPersonalService.eliminar(objeto,this.requerimientoPersonalDTO).toPromise()\n    this.seccionActual = data['seccion'];\n    this.dibujarTabla()\n    this.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR)\n  }\n\n\n  isEtapaCandidato() {\n    return 'CANDIDATO'.toLowerCase() == this.descripcionEtapaActual().toLowerCase();\n  }\n\n  convertidorPipesSelects(pipe) {\n    let map: any[] = []\n    pipe.forEach(element => {\n      map.push({ key: element.codigo, label: element.nombre })\n    });\n    return map;\n  }\n\n  // compararPorNombre(a: FormulaItem, b: FormulaItem): number {\n  //   return a.nombre.localeCompare(b.nombre);\n  // }\n\n\n  capitalizarTexto(texto: string): string {\n    texto = texto.toLowerCase();\n    return texto.charAt(0).toUpperCase() + texto.slice(1);\n  }\n\n\n\n  // LOGICA DE REQUERIMIENTO PM\n\n  descripcionEtapaActual(): string | null {\n    if (this.seccionActual != null) {\n      return this.seccionActual.etapa.seccion;\n    }\n    return null;\n  }\n\n\n  async cargarRequerimiento(llaveTabla: string) {\n    let data = await this.requerimientoPersonalPMSvc.cargarRequerimiento(llaveTabla).toPromise();\n    this.requerimientoPersonalDTO = data['requerimientoPersonalDTO'];\n    this.perfilFuncion = data['perfilFuncion'];\n    this.llaveFormulario = data['llaveFormulario'];\n\n  }\n\n\n  async setListCosteo(comodin: PerfilTablasModel) {\n    comodin.tipotabla = this.convocatoriaPipe.COSTEO;\n    this.listaCosteo = await this.generalService.queryForList(new GeneralModel('PerfilTablasDTO', null, false, comodin)).toPromise();\n  }\n  async setAnexo(comodin: PerfilTablasModel) {\n    this.listaAnexo = await this.requerimientoPersonalPMSvc.setAnexo(comodin).toPromise();\n  }\n\n  private guardarPuesto()  {\n\t\tif ('PUESTO TRABAJO' == this.descripcionEtapaActual()  && this.listaPuesto != null && this.mapaRequerimiento['PUESTO_TRABAJO'] != null) {\n\t\t\tthis.guardarTablaPuesto();\n\t\t}\n\t}\n\n  private async guardarTablaPuesto(){\n    let seleccionados : PerfilTablasModel[] = []\n    let noSeleccionados : PerfilTablasModel[] = []\n    for (const wrapper of this.listaPuesto) {\n      if(wrapper.check){\n        seleccionados.push(wrapper);\n      }else{\n        noSeleccionados.push(wrapper);\n      }\n    }\n    await this.requerimientoPersonalService.actualizarPuestoSeleccionado(seleccionados, this.requerimientoPersonalDTO).toPromise();\n\t\tawait this.requerimientoPersonalService.actualizarPuestoNoSeleccionado(noSeleccionados, this.requerimientoPersonalDTO).toPromise();\n  }\n\n\tprivate guardarTablaCosteo() {\n\t\tthis.requerimientoPersonalService.actualizarPerfil(this.listaCosteo, this.requerimientoPersonalDTO.llaveTabla, this.convocatoriaPipe.COSTEO);\n\t}\n\n\tprivate guardarTablaCandidato()  {\n\t\tthis.requerimientoPersonalService.actualizarPerfil(this.listaCandidato, this.requerimientoPersonalDTO.llaveTabla, this.convocatoriaPipe.CANDIDATO);\n\t}\n\n  public async setListaCosteo(comodin: PerfilTablasModel) {\n    comodin.tipotabla = this.convocatoriaPipe.COSTEO;\n    this.listaCosteo = await this.generalService.queryForList(new GeneralModel('PerfilTablasDTO', null, false, comodin)).toPromise();\n  }\n\n  public async setListaCandidato(comodin: PerfilTablasModel) {\n    comodin.tipotabla = this.convocatoriaPipe.CANDIDATO;\n    this.listaCandidato = await this.generalService.queryForList(new GeneralModel('PerfilTablasDTO', null, false, comodin)).toPromise();\n  }\n\n\n  validarTablaCosteo(){\n    let sumaPorcentaje : number = 0;\n    for (const unaTabla of this.listaCosteo) {\n      sumaPorcentaje += unaTabla.requerida;\n    }\n    return sumaPorcentaje == 100\n  }\n\n  crearCosteo(){\n    try {\n      if(this.validarCosteo()){\n        this.listaCosteo.push(this.nuevoCosteo);\n        if(!this.isContinuarReq()){\n          this.guardarTablaCosteo();\n        }\n        this.nuevoCosteo = new PerfilTablasModel();\n        this.clickGuardar = false;\n      }\n    } catch (error) {\n      \n    }\n  }\n\n  private validarCosteo() {\n\t\tlet validador: boolean = true;\n    this.clickGuardar = true;\n\t\tif (this.isZona()) {\n\t\t\tvalidador = validador && this.utilService.validarCampoObligatorio(this.nuevoCosteo.zonaeconomica);\n\t\t}\n\t\tif (this.isCentro()) {\n\t\t\tvalidador = validador && this.utilService.validarCampoObligatorio(this.nuevoCosteo.centrocosto);\n\n\t\t}\n\t\tif (this.isLinea()) {\n\t\t\tvalidador = validador && this.utilService.validarCampoObligatorio(this.nuevoCosteo.lineaCosto);\n\t\t}\n\t\tif (this.isPorcentaje()) {\n\t\t\tvalidador = validador && this.utilService.validarCampoObligatorio(this.nuevoCosteo.requerida);\n\t\t}\n\t\treturn validador;\n\t}\n\n  async eliminarCosteo(event) {\n    try {\n      this.confirmationService.confirm({\n        target: event.target,\n        message: \"Al realizar esta acci\" + Constantes.O_TIDLE_MIN + \"n, se ejecutar\" + Constantes.A_TILDE_MIN + \" nuevamente la cadena de autorizaci\" + Constantes.O_TIDLE_MIN + \"n , Desea Continuar?\",\n        acceptLabel: 'Si',\n        accept: async () => {\n          let perfilEliminar: PerfilTablasModel = event\n          this.listaCosteo = await this.requerimientoPersonalPMSvc.eliminarCosteo(perfilEliminar, this.listaCosteo);\n        },\n        reject: () => { },\n      });\n    } catch (e) {\n      console.trace(e)\n    }\n  }\n\n  public crearCandidato() {\n    try {\n      if (this.validarCandidato()) {\n        this.listaCandidato.push(this.nuevoCandidato);\n        if (!this.isContinuarReq()) {\n          this.guardarTablaCandidato();\n        }\n        this.nuevoCandidato = new PerfilTablasModel();\n      }\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  public eliminarCandidato(event){\n    try {\n      this.confirmationService.confirm({\n        target: event.target,\n        message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n        acceptLabel: 'Si',\n        accept: async () => {\n          let perfilEliminar: PerfilTablasModel = event.data\n          this.listaCosteo = await this.requerimientoPersonalPMSvc.eliminarCandidato(perfilEliminar, this.listaCosteo);\n        },\n        reject: () => { },\n      });\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  \n\n  validarCandidato() {\n    let validador: boolean = true;\n    this.clickGuardar = true;\n    if (this.isNombre() && this.isRequeridoCampo(this.datoOrganizacionPipe.NOMBRE.toLowerCase())) {\n      validador = validador && this.utilService.validarCampoObligatorio(this.nuevoCandidato.nombre);\n    } if (this.isPrimerApelli() && this.isRequeridoCampo(this.datoOrganizacionPipe.PRIMERAPELLID.toLowerCase())) {\n      validador = validador && this.utilService.validarCampoObligatorio(this.nuevoCandidato.primerApellido);\n    } if (this.isSegundoApelli() && this.isRequeridoCampo(this.datoOrganizacionPipe.SEGUNDOAPELLID.toLowerCase())) {\n      validador = validador && this.utilService.validarCampoObligatorio(this.nuevoCandidato.segundoApellido);\n    } if (this.isIdentificacion() && this.isRequeridoCampo(this.datoOrganizacionPipe.IDENTIFICACION.toLowerCase())) {\n      validador = validador && this.utilService.validarCampoObligatorio(this.nuevoCandidato.identificacion);\n    } if (this.isDocumento() && this.isRequeridoCampo(this.datoOrganizacionPipe.DOCUMENTO.toLowerCase())) {\n      validador = validador && this.utilService.validarCampoObligatorio(this.nuevoCandidato.documento);\n    }\n\n    if (this.isCorreo()) {\n      if (this.nuevoCandidato.correo != null) {\n        if (!this.utilService.validarEmail(this.nuevoCandidato.correo)) {\n          this.mensaje = 'Correo no valido';\n        }\n      } else if (this.isRequeridoCampo(this.datoOrganizacionPipe.CORREO)) {\n        validador = validador && this.utilService.validarCampoObligatorio(this.nuevoCandidato.correo);\n      }\n    }\n\n    if (this.isTelefono() && this.isRequeridoCampo(this.datoOrganizacionPipe.TELEFONO)) {\n      validador = validador && this.utilService.validarCampoObligatorio(this.nuevoCandidato.telefono)\n    }\n    return validador;\n  }\n\n\n  returnAdjunto(valor) {\n    this.anexoIngresar.archivoorigen = valor;\n  }\n\n  public async crearAnexo(){\n    try {\n      if(this.validarAnexo()){\n        this.listaAnexo.push(this.anexoIngresar);\n        await this.requerimientoPersonalPMSvc.guardarTablaAnexo(this.listaAnexo,this.requerimientoPersonalDTO.llaveTabla).toPromise();\n        this.anexoIngresar = new ArchivoModel();\n        this.anexoIngresar.existe = false;\n        let comodin : PerfilTablasModel = new PerfilTablasModel();\n        comodin.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n        await this.setAnexo(comodin);\n      }\n    } catch (error) {\n      console.log(error);\n      \n    }\n  }\n\n  public eliminarAnexo(event){\n    try {\n      this.confirmationService.confirm({\n        target: event.target,\n        message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n        acceptLabel: 'Si',\n        accept: async () => {\n          let anexoEliminar: PerfilTablasModel = event.data\n          this.listaCosteo = await this.requerimientoPersonalPMSvc.eliminarAnexo(anexoEliminar, this.listaCosteo);\n          await this.requerimientoPersonalPMSvc.guardarTablaAnexo(this.listaAnexo,this.requerimientoPersonalDTO.llaveTabla).toPromise();\n        },\n        reject: () => { },\n      });\n    } catch (error) {\n      console.trace(error);\n    }\n  }\n\n  \n\n  validarAnexo(){\n    let validar : boolean =  true;\n    validar =  validar && this.utilService.validarCampoObligatorio(this.anexoIngresar.descripcion);\n    validar =  validar && this.utilService.validarCampoObligatorio(this.anexoIngresar.archivoorigen);\n    return validar;\n  }\n\n  async nuevoDato(){\n    let seccion = this.seccionActual;\n    this.verPopupRequerimiento = true;\n    await this.utilService.sleep(10);\n    await this.popupReqPersonal.ver(this.seccionActual,this.seccionActual.claseBusqueda,true);\n  }\n\n  async verDato(evento){\n    if(!this.encuesta){\n      this.verPopupRequerimiento = true;\n      await this.utilService.sleep(10);\n      await this.popupReqPersonal.ver(this.seccionActual,evento.data,false);\n    }\n  }\n\n\n  public  async cargarDescripcionCargo(): Promise<void> {\n\t\ttry {\n\t\t\tlet configuracion: string;\n      let data = await this.perfilFuncionService.buscarPerfilDatoEmpresa(this.requerimientoPersonalDTO.empresa).toPromise();\n\t\t\tconfiguracion = data['repuesta'];\n\t\t\tif (configuracion == null || (this.datosBasicosEmpresaCons.UNIDADCARGO != (configuracion) && this.datosBasicosEmpresaCons.PUESTOTRABAJO != (configuracion)\n\t\t\t\t\t&& this.datosBasicosEmpresaCons.CLASIFICACION != (configuracion) && this.datosBasicosEmpresaCons.PUESTOTRABAJOMULTIPLE != (configuracion))) {\n\t\t\t\tthis.notificationBusService.showInfo(\"La configuracion del perfil para la empresa, no esta definida\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// PuestoTrabajoDTO\n      let puesto = new PuestoTrabajoModel();\n\t\t\tpuesto.llave =(this.requerimientoPersonalDTO.puestoTrabajo);\n\t\t\tpuesto = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO',null,false,puesto)).toPromise();\n\t\t\tif ( puesto == null) {\n\t\t\t\t\n\t\t\t}\n\t\t\tthis.vistaVisualizar = ('descripcionCargo');\n      await this.utilService.sleep(10);\n\t\t\tthis.descripcionCargoBean.cargarPerfil(puesto.empresa,\tpuesto.unidad, puesto.cargo,\tpuesto.llave, \"#{requerimientoPMBean.regresaDescripcion}\",\tnull, true);\n\t\t\tthis.descripcionCargoBean.setProcesoAutorizacion(true);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\n\n  isAnexo() {\n    return 'ANEXO'.toLowerCase() == this.descripcionEtapaActual().toLowerCase();\n  }\n\n  regresarVista() {\n    console.log('hola');\n    \n    this.setVistaVisualizar.emit(null)\n  }\n\n  public deshabilitar() {\n    let estadoReq = this.requerimientoPersonalDTO.estado;\n    if ('E' == estadoReq || 'S' == estadoReq) {\n      return false\n    } if (!this.authService.getTokenKey('isCliente')) {\n      return 'A' != estadoReq;\n    }\n    return true;\n  }\n\n  isRequerimiento() {\n    return 'REQUERIMIENTO' == this.descripcionEtapaActual();\n  }\n\n  isDescCargo() {\n    if (this.requerimientoPersonalDTO.tipo == 'CN') {\n      if (this.requerimientoPersonalDTO.estado == Constantes.CONSTANTE_SI || this.requerimientoPersonalDTO.estado == 'E') {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  public isDeshabilitar() {\n    let boleano\n    let estadoReq = this.requerimientoPersonalDTO.estado.toLowerCase();\n    if (estadoReq == 'E'.toLowerCase() || estadoReq == Constantes.CONSTANTE_SI.toLowerCase()) {\n      return false;\n    }\n    if (this.isFuncional()) {\n      boleano = estadoReq != 'A'.toLowerCase();\n      return boleano;\n    }\n    return true;\n  }\n\n  isFuncional(){\n    if(this.authService.getTokenKey('isCliente') != 'true'){\n      return true;\n    }\n    return false;\n  }\n\n\n  public isElaboracion() {\n    this.elaboracion = (this.requerimientoPersonalPipe.ESTADOELABORACION == this.requerimientoPersonalDTO.estado)\n    return this.elaboracion;\n  }\n\n  public isCargoExiste() {\n    this.cargoExiste = ('CE' == this.requerimientoPersonalDTO.tipo)\n    return 'CE' == this.requerimientoPersonalDTO.tipo;\n  }\n  public isNuevo() {\n    this.nuevo = this.requerimientoPersonalDTO != null && this.requerimientoPersonalDTO.llaveTabla == null\n    return this.nuevo;\n  }\n  public getMapaRequerimiento() {\n    return this.mapaRequerimiento\n  }\n  public isTieneCantidad() {\n    return this.requerimientoPersonalDTO != null && this.requerimientoPersonalDTO.cantidad != null;\n  }\n  public isPuedeEliminar() {\n    return (this.controlFuncionService.getControlFuncionalidad('reqper:modifica') && this.sePuedeEliminar());\n  }\n  public sePuedeEliminar() {\n    let ret: boolean = this.numeroSeccionActual == 0;\n    if (this.requerimientoPersonalDTO.llaveTabla != null) {\n      if (this.requerimientoPersonalDTO.estado == this.requerimientoPersonalPipe.ESTADOSOLICITUD || this.requerimientoPersonalDTO.estado == this.requerimientoPersonalPipe.ESTADOPROCESO) {\n        if (this.cedula == this.requerimientoPersonalDTO.requerimientoSolicita || this.authService.getTokenKey('informacionActiva') == this.origenDatosPipe.FUNCIONAL) {\n          ret = true;\n        }\n      }\n    }\n    return ret;\n  }\n  public isMostrarMotivo() {\n    let modificar = this.controlFuncionService.getControlFuncionalidad('reqper:modifica') != null;\n    modificar = modificar && !this.isNuevo();\n    modificar = modificar && this.mostrarMotivo();\n    return  modificar;\n  }\n\n  public mostrarMotivo() {\n    let motivo: boolean = this.numeroSeccionActual == 0;\n    motivo = motivo && (this.requerimientoPersonalPipe.ESTADOSOLICITUD.toLowerCase() == this.requerimientoPersonalDTO.estado.toLowerCase() || this.requerimientoPersonalPipe.ESTADOELABORACION.toLowerCase() == this.requerimientoPersonalDTO.estado.toLowerCase())\n    return motivo\n  }\n\n  public isMostrarAsignarPuesto() {\n    return this.controlFuncionService.getControlFuncionalidad('reqper:asignarpuesto');\n  }\n  public isAutoServicioPortal() {\n    //retorno temporal\n    return false;\n  }\n  public isMostrarProcesoSeleccion() {\n    return this.controlFuncionService.getControlFuncionalidad('reqper:procesoseleccion');\n  }\n  public isMostrarCandidatos() {\n    return this.controlFuncionService.getControlFuncionalidad('reqper:candidatos');\n  }\n\n  public esNumeroCargo() {\n    if ('CN' == (this.requerimientoPersonalDTO.tipo)) {\n      if ('S' != (this.requerimientoPersonalDTO.estado) && 'E' != (this.requerimientoPersonalDTO.estado)) {\n        this.numeroCargo = true;\n        return this.numeroCargo\n      }\n    }\n    this.numeroCargo = false;\n    return this.numeroCargo\n  }\n  isTipoPlanta() {\n    return this.mapaRequerimiento['nombreTipoPuesto'] != null;\n  }\n  isClasePuesto() {\n    return this.mapaRequerimiento['descripcionClasePuesto'] != null;\n  }\n\n  isUnidadSol() {\n    return this.mapaRequerimiento['unidadSol'] != null;\n  }\n  isVinculacionLaboral() {\n    return this.mapaRequerimiento[this.RequerimientoPPipe.VINCULACION_LABORAL] != null;\n  }\n  isBase() {\n    return 'BASE'.toLowerCase() == this.descripcionEtapaActual().toLowerCase();\n  }\n  public isManejaFormulario() {\n    return this.isRequerimiento() || this.isBase() || this.isPuestoRequerimiento();\n  }\n\n  isMostrarCampoPerfil(){\n    return this.seccionActual != null && this.seccionActual.etapa.mostrarCampoPerfil == Constantes.CONSTANTE_SI\n  }\n\n  isPuestoRequerimiento() {\n    return this.puestoRequerimiento || this.translateService.instant('asignarpuestotrabajo')?.toLowerCase() == this.descripcionEtapaActual()?.toLowerCase();\n  }\n  \n  isContinuarReq() {\n    if (this.isElaboracion()) {\n      return this.controlFuncionService.getControlFuncionalidad('reqper:crear');\n    }\n    return false;\n  }\n  isEtapaCosteo() {\n    return 'COSTEO'.toLowerCase() == this.descripcionEtapaActual().toLowerCase();\n  }\n\n  isMostrarBotonGuardar() {\n    let perm: boolean = this.listaComandos('reqper:crear') != null;\n    perm = perm && (!this.isElaboracion() && (this.isBase() || this.isRequerimiento()));\n    return perm;\n  }\n  isEstadoEditable() {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return this.requerimientoPersonalDTO.estado.toLowerCase() == this.requerimientoPersonalPipe.ESTADOSOLICITUD.toLowerCase() || this.requerimientoPersonalDTO.estado.toLowerCase() == this.requerimientoPersonalPipe.ESTADOINCONSISTENTE.toLowerCase() || this.requerimientoPersonalDTO.estado.toLowerCase() == this.requerimientoPersonalPipe.ESTADOELABORACION.toLowerCase();\n    } else {\n     return (this.requerimientoPersonalDTO.estado.toLowerCase() != this.requerimientoPersonalPipe.ESTADOPROCESO.toLowerCase() || this.requerimientoPersonalDTO.estado.toLowerCase() == this.requerimientoPersonalPipe.ESTADOCERRARO.toLowerCase() || this.requerimientoPersonalDTO.estado.toLowerCase() == this.requerimientoPersonalPipe.ESTADOANULADO.toLowerCase())\n    }\n  }\n  isPorcentaje(){\n    return this.mapaRequerimiento['porcentaje'] != null;\n  }\n  isNumeroCargo(){\n    if('CN' == this.requerimientoPersonalDTO.tipo){\n      if(Constantes.CONSTANTE_SI != this.requerimientoPersonalDTO.estado && this.requerimientoPersonalDTO.estado != 'E'){\n        return true;\n      }\n    }\n    return false;\n  }\n  public isCentro() {\n\t\treturn (this.mapaRequerimiento[this.datoOrganizacionPipe.CENTRO.toLowerCase()] != null);\n\t}\n  public  isZona() {\n\t\treturn (this.mapaRequerimiento[this.datoOrganizacionPipe.ZONA.toLowerCase()] != null);\n\t}\n  public  isZonaCentro() {\n\t\treturn ((this.mapaRequerimiento[this.datoOrganizacionPipe.CENTRO.toLowerCase()] != null) && (this.mapaRequerimiento[this.datoOrganizacionPipe.ZONA.toLowerCase()]) != null);\n\t}\n  public isLinea() {\n\t\treturn (this.mapaRequerimiento[this.datoOrganizacionPipe.LINEA.toLowerCase()] != null);\n\t}\n  public  isOrigenCandidato() {\n    return (this.mapaRequerimiento[this.datoOrganizacionPipe.ORIGENCAND.toLowerCase()] != null);\n\t}\n  public isIdentificacion() {\n    return (this.mapaRequerimiento[this.datoOrganizacionPipe.IDENTIFICACION.toLowerCase()] != null);\n\t}\n  isDocumento(){\n    return this.mapaRequerimiento['documento'] != null;\n  }\n  isNombre(){\n    return this.mapaRequerimiento[this.datoOrganizacionPipe.NOMBRE.toLowerCase()] != null;\n  }\n  isPrimerApelli(){\n    return this.mapaRequerimiento[this.datoOrganizacionPipe.PRIMERAPELLID.toLowerCase()] != null;\n  }\n  isSegundoApelli(){\n    return this.mapaRequerimiento[this.datoOrganizacionPipe.SEGUNDOAPELLID.toLowerCase()] != null;\n  }\n  isCorreo(){\n    return this.mapaRequerimiento[this.datoOrganizacionPipe.CORREO.toLowerCase()] != null;\n  }\n  isRequeridoCampo(nombreCampo){\n    let campo: DatoorganizacionModel = this.mapaRequerimiento[nombreCampo];\n    return campo != null && campo.requerido == Constantes.CONSTANTE_SI;\n  }\n  isTelefono(){\n    return this.mapaRequerimiento[this.datoOrganizacionPipe.TELEFONO.toLowerCase()] != null;\n  }\n  isPerfil(){\n    return this.datoOrganizacionPipe.PERFIL.toLowerCase() ==this.descripcionEtapaActual().toLowerCase();\n  }\n  isPuestroTrabajo(){\n    return this.requerimientoPersonalDTO.tipo == 'PT';\n  }\n  isPuestoTrabajo() {\n    return 'PUESTO TRABAJO'.toLowerCase() == this.descripcionEtapaActual().toLowerCase()\n  }\n  setVerPopupRequerimiento(boleano){\n    this.verPopupRequerimiento = boleano;\n  }\n \n\n  \n\n  //para darnos el nombre de la etapa actual\n  getNombreEtapa(){\n    if(this.seccionActual == null){\n      return null;\n    }else{\n      return this.capitalizarTexto(this.seccionActual.etapa.descripcion);\n    }\n  }\n\n\n  async seleccionarCandidato(){\n    try {\n      this.puestoRequerimiento = false;\n      this.candidatos = true;\n      this.procesoSelec = false;\n       this.listaCandidatoDTO = [];\n       let candidato : CandidatoModel = new CandidatoModel();\n       candidato.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n       this.listaCandidatoDTO = await this.candidatoSvc.consultarCandidatoProcesoSelec(candidato).toPromise();\n    } catch (error) {\n      console.trace(error)\n    }\n  }\n  async seleccionarProceso(){\n    try {\n      this.puestoRequerimiento = false;\n      this.candidatos = false;\n      this.procesoSelec = true;\n      this.listaProcesoSeleccionDTO = []\n      let procesoSeleccionDTO : ProcesoSeleccionModel = new ProcesoSeleccionModel();\n      procesoSeleccionDTO.requerimiento = this.requerimientoPersonalDTO.llaveTabla;\n      this.listaProcesoSeleccionDTO = await this.generalService.queryForList(new GeneralModel('ProcesoSeleccionDTO',null,false,procesoSeleccionDTO)).toPromise();\n    } catch (error) {\n      console.log(error);\n      \n    }\n  }\n\n  public async setPuestoSeleccionado(puestoTrabajo: PuestoTrabajoModel){\n\t\ttry {\n\t\t\tthis.requerimientoPersonalService.actualizarPuestoRequerimiento(puestoTrabajo, this.requerimientoPersonalDTO.llaveTabla);\n\t\t\tthis.notificationBusService.showInfo('Se actualizo el puesto correctamente');\n      let dto: RequerimientoPersonalModel = new RequerimientoPersonalModel();\n\t\t\tdto.llaveTabla = this.requerimientoPersonalDTO.llaveTabla;\n\t\t\tdto = await this.generalService.queryForObject(new GeneralModel('RequerimientoPersonalDTO',null,false,dto)).toPromise();\n\t\t\tthis.requerimientoPersonalDTO = dto;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n      \n\t\t}\n\t}\n\n  regresarRequerimiento(event){\n    this.vistaVisualizar = event;\n  }\n\n  public listaComandos(comando: string) {\n    return this.controlFuncionService.getControlFuncionalidad(comando);\n  }\n\n  public isBaseFichaCargo(): boolean {\n\t\tif (this.requerimientoPersonalDTO.tipo == null) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( 'PT' == (this.requerimientoPersonalDTO.tipo.toUpperCase())) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !('CE' == (this.requerimientoPersonalDTO.tipo.toUpperCase()));\n\t}\n\n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n\n\t\tvar actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    \n\t\tvar req = new RequerimientoPersonalModel();\n\t\treq.llaveTabla = actividad.llaveTablaBase;\n\t\treq = await this.generalService.queryForObject(new GeneralModel('RequerimientoPersonalDTO', null, false, req)).toPromise();;\n\n\t\tif ( req == null) {\n\t\t\tthis.notificationBusService.showError(\"Objeto no existe\");\n      return;\n\t\t}\n\t\t\n\t\tthis.encuesta = true;\n\t\tthis.procesoAutorizacion = false;\n    await this.utilService.sleep(300);\n\t\tawait this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, req);\n\n\t\tawait this.verRequerimiento(req.llaveTabla);\n\t}\n\n\tpublic async verAutorizacion(llaveActividad: string){\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    \n\t\tvar req = new RequerimientoPersonalModel();\n\t\treq.llaveTabla = actividad.llaveTablaBase;\n\t\treq = await this.generalService.queryForObject(new GeneralModel('RequerimientoPersonalDTO', null, false, req)).toPromise();;\n\n\t\tif ( req == null) {\n\t\t\tthis.notificationBusService.showError(\"Objeto no existe\");\n      return;\n\t\t}\n      \n    this.encuesta = false;\n\t\tthis.procesoAutorizacion = true;\n    await this.utilService.sleep(300);\n    this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOREQUERIMIENTO, req);\n        \n\t\tawait this.verRequerimiento(req.llaveTabla);\n  }\n\n}\n","\n<div id=\"requerimientoPersonal\">\n<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"vistaVisualizar == null\">\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n    <h1>{{tituloTarea ? (tituloTarea | translate) : ('requerimiento' | translate) +' '+('personal' | translate) +' '+'PM'}}</h1>\n    <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n        *ngIf=\"!isContinuarReq()\" (click)=\"regresarVista()\" label=\"{{'link_regresar' | translate}}\">\n    </button>\n\n    <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n        *ngIf=\"isContinuarReq() && !encuesta\" (click)=\"regresar()\" label=\"{{'link_regresar' | translate}}\">\n    </button>\n</div>\n<div *ngIf=\"loading\">\n    <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n</div>\n<div *ngIf=\"!loading\">\n    <div *ngIf=\"vistaVisualizar == null\">\n        <!--<div *ngIf=\"!encuesta && !procesoAutorizacion\">-->\n        <div>\n            <div id=\"requerimientoPersonalPM_form\">\n                <div *ngIf=\"!elaboracion && !encuesta && !procesoAutorizacion\">\n                    <p-menubar [model]=\"this.manejaMenu\" *ngIf=\"manejaMenu\" class=\"menu-accion-sara\"></p-menubar>\n                    <p-progressBar mode=\"indeterminate\" *ngIf=\"!manejaMenu\" [style]=\"{ height: '6px' }\"></p-progressBar>\n                </div>\n                <div *ngIf=\"elaboracion\">\n                    <!-- PONER CLASE breadEstructura -->\n                    <p-breadcrumb class=\"breadEstructurasara max-w-full\" [model]=\"this.pasos\"\n                        *ngIf=\"pasos\"></p-breadcrumb>\n                    <p-progressBar mode=\"indeterminate\" *ngIf=\"!pasos\" [style]=\"{ height: '6px' }\"></p-progressBar>\n                </div>\n                <div *ngIf=\"(!(isPuestoRequerimiento() && !isElaboracion())) && !candidatos && !procesoSelec\"\n                    class=\"mb-3 mt-3\">\n                    <div class=\" card\">\n                        <div class=\"mt-3\">\n                            <h5><i class=\"glyphicons glyphicons-building\"></i>{{'datos' | translate}} {{'basicos' |\n                                translate}}</h5>\n                        </div>\n                        <div class=\"p-fluid p-formgrid grid col-12\" style=\"color: gray;\">\n                            <!-- EMPRESA -->\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label class=\"col-12 font-semibold\">{{('empresa') | translate}}</label>\n                            </div>\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label>{{requerimientoPersonalDTO.nombreEmpresa }}</label>\n                            </div>\n                            <!-- UNIDAD ORGANIZACIONAL PADRE -->\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label class=\"col-12 font-semibold\">{{('unidadorganizacional') | translate}} {{'padre' |\n                                    translate}}</label>\n                            </div>\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label>{{requerimientoPersonalDTO.unidadPadre}} -\n                                    {{requerimientoPersonalDTO.nombreUnidadPadre}}</label>\n                            </div>\n                            <!-- UNIDAD ORGANIZACIONAL -->\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label class=\"col-12 font-semibold\">{{('unidadorganizacional') | translate}}</label>\n                            </div>\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label>{{requerimientoPersonalDTO.unidad}} -\n                                    {{requerimientoPersonalDTO.nombreUnidad}}</label>\n                            </div>\n                            <!-- ESTADO -->\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label class=\"col-12 font-semibold\">{{('estado') | translate}}</label>\n                            </div>\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label>{{requerimientoPersonalDTO.nombreEstado}}</label>\n                            </div>\n                            <!-- MOTIVO VACANTE -->\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label class=\"col-12 font-semibold\">{{('motivo') | translate}} {{('vacante') |\n                                    translate}}</label>\n                            </div>\n                            <div class=\"col-12 md:col-3 lg:col-3\">\n                                <label>{{requerimientoPersonalDTO.nombreMotivoRequerimiento}}</label>\n                            </div>\n                            <!-- NUMERO PUESTO -->\n                            <div class=\"col-12 md:col-3 lg:col-3\" *ngIf=\"requerimientoPersonalDTO?.puesto != null\">\n                                <label class=\"col-12 font-semibold\">{{('numeropuesto') | translate}}</label>\n                            </div>\n                            <div class=\"col-12 md:col-3 lg:col-3\" *ngIf=\"requerimientoPersonalDTO?.puesto != null\">\n                                <label>{{requerimientoPersonalDTO?.puesto}}</label>\n                            </div>\n                            <!-- ESTADO PUESTO -->\n                            <div class=\"col-12 md:col-3 lg:col-3\"\n                                *ngIf=\"requerimientoPersonalDTO?.estadoPuestoTrabajo  != null\">\n                                <label class=\"col-12 font-semibold\">{{('estado') | translate}} {{('puesto') |\n                                    translate}}</label>\n                            </div>\n                            <div class=\"col-12 md:col-3 lg:col-3\"\n                                *ngIf=\"requerimientoPersonalDTO?.estadoPuestoTrabajo  != null\">\n                                <label>{{requerimientoPersonalDTO?.nombreMotivoRequerimiento}}</label>\n                            </div>\n\n                        </div>\n                    </div>\n                    <div\n                        *ngIf=\"(!isPuestoTrabajo()) && (!isEtapaCosteo()) && (!isPerfil()) && (!isEtapaCandidato())  && (!isAnexo())\">\n                        <h4>{{getNombreEtapa()}}</h4>\n                        <div *ngIf=\"!verPopupRequerimiento\">\n                            <div *ngIf=\"isMostrarCampoPerfil() && !isBase() && !isRequerimiento() && isManejaFormulario()\">\n                                <div class=\"flex justify-content-end align-items-center mb-3\"\n                                    *ngIf=\"isEstadoEditable() && !encuesta\">\n                                    <button pButton pRipple icon=\"pi pi-plus\"\n                                        class=\"p-element p-ripple p-button-secondary\"\n                                        label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoDato()\">\n                                    </button>\n                                </div>\n                                <p-table #tablaGeneral id=\"tablaCamposPerfil\" [value]=\"filasCampoPerfil\"\n                                    [scrollable]=\"true\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\n                                    responsiveLayout=\"scroll\" [paginator]=\"filasCampoPerfil.length > 10\"\n                                    scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n                                    [totalRecords]=\"filasCampoPerfil.length\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                                    selectionMode=\"single\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n                                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                    [lazy]=\"false\" dataKey=\"fila\">\n                                    <ng-template pTemplate=\"header\">\n                                        <tr>\n                                            <th class=\"w-6rem\" *ngFor=\"let columna of listaColumnas\">\n                                                {{columna.descripcion}}</th>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"body\" let-fila let-editing=\"editing\" let-ri=\"rowIndex\">\n                                        <tr [pSelectableRow]=\"fila\">\n                                            <td *ngFor=\"let columna of listaColumnas\">\n                                                <span *ngIf=\"columna.tipo == 'N'\">{{(fila[columna.campo] |\n                                                    number)}}</span>\n                                                <span *ngIf=\"columna.tipo == 'F'\">{{fila[columna.campo] |\n                                                    date:'dd/MM/yy'}}</span>\n                                                <span\n                                                    *ngIf=\"columna.tipo == 'T' || columna.valor == null\">{{fila[columna.campo]}}</span>\n                                            </td>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                </p-table>\n                            </div>\n                            <div *ngIf=\"!isManejaFormulario()\">\n                                <div class=\"flex justify-content-end align-items-center mb-3\"\n                                    *ngIf=\"isEstadoEditable() && !encuesta\">\n                                    <button pButton pRipple icon=\"pi pi-plus\"\n                                        class=\"p-element p-ripple p-button-secondary\"\n                                        label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoDato()\">\n                                    </button>\n                                </div>\n                                <p-table id=\"tablaCamposPerfil\" [value]=\"filas\" [scrollable]=\"true\"\n                                    scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n                                    [paginator]=\"filas.length > 10\" scrollDirection=\"horizontal\"\n                                    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"filas.length\"\n                                    [rowsPerPageOptions]=\"[10, 20, 50]\" selectionMode=\"single\"\n                                    [showCurrentPageReport]=\"true\" editMode=\"row\" (onRowSelect)=\"verDato($event)\"\n                                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                    [lazy]=\"false\" dataKey=\"fila\">\n                                    <ng-template pTemplate=\"header\">\n                                        <tr>\n                                            <th class=\"w-6rem\" *ngFor=\"let columna of listaColumnas\">\n                                                {{columna.descripcion}}</th>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"body\" let-fila let-editing=\"editing\" let-ri=\"rowIndex\">\n                                        <tr [pSelectableRow]=\"fila\">\n                                            <td *ngFor=\"let columna of listaColumnas\">\n                                                <span *ngIf=\"columna.tipo == 'N'\">{{(fila[columna.campo] |\n                                                    number)}}</span>\n                                                <span *ngIf=\"columna.tipo == 'F'\">{{fila[columna.campo] |\n                                                    date:'dd/MM/yy'}}</span>\n                                                <span\n                                                    *ngIf=\"columna.tipo == 'T' || columna.valor == null\">{{fila[columna.campo]}}</span>\n                                            </td>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                </p-table>\n                            </div>\n                        </div>\n                    </div>\n\n\n                    <div *ngIf=\"verPopupRequerimiento\">\n                        <app-popup-requerimiento-personal #popupReqPersonal [requerimientoPm]=\"this\"\n                            (vistaRegresar)=\"setVerPopupRequerimiento($event)\"></app-popup-requerimiento-personal>\n                    </div>\n\n                    <div *ngIf=\"isRequerimiento()\">\n                        <app-panel-etapa-requerimiento-con #panelEtapa [requerimientoPm]=\"this\"\n                            ></app-panel-etapa-requerimiento-con>\n                    </div>\n                    <div *ngIf=\"isEtapaCosteo()\">\n                        <app-requerimiento-costeo #requeCosteo [requerimientoPMBean]=\"this\"></app-requerimiento-costeo>\n                    </div>\n                    <div *ngIf=\"isEtapaCandidato()\">\n                        <app-requerimiento-etapa-candidato [requerimientoPMBean]=\"this\">\n                        </app-requerimiento-etapa-candidato>\n                    </div>\n                    <div *ngIf=\"isAnexo()\">\n                        <app-requerimiento-anexo [requerimientoPMBean]=\"this\"></app-requerimiento-anexo>\n                    </div>\n                    <div *ngIf=\"isBase()\">\n                        <div class=\" card\">\n                            <div class=\"mt-3\">\n                                <h5><i class=\"glyphicons glyphicons-building\"></i>{{ dinamico.grupos[0]?.nombre |\n                                    translate}}</h5>\n                            </div>\n                            <formulario-dinamico #formulario [editable]=\"dinamico.editable\"\n                                [objeto]=\"requerimientoPersonalDTO\" [campos]=\"dinamico.grupos[0]?.campos\"\n                                [isMensaje]=\"false\"></formulario-dinamico>\n                        </div>\n                    </div>\n                    <div *ngIf=\"isPuestoTrabajo()\">\n                        <app-requerimiento-anexo></app-requerimiento-anexo>\n                    </div>\n                    <div *ngIf=\"isPerfil()\">\n                        <app-requerimiento-anexo></app-requerimiento-anexo>\n                    </div>\n                    <div *ngIf=\"isPuestoRequerimiento() && isElaboracion()\">\n                        <app-requerimiento-anexo></app-requerimiento-anexo>\n                    </div>\n                    <div class=\"flex justify-content-end align-items-center mb-3 mt-3\" *ngIf=\"!encuesta && !procesoAutorizacion\">\n                        <button class=\" p-button-raised ml-2\" \n                            *ngIf=\"isMostrarBotonGuardar() && listaComandos('reqper:guardar') && isEstadoEditable()\"\n                            pButton label=\"{{'link_guardar'| translate}}\" (click)=\"guardarDisparar()\"> <span\n                                class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span></button>\n                                <button class=\" p-button-raised ml-2\"\n                            *ngIf=\"isMostrarBotonGuardar() && listaComandos('reqper:guardardirecto') && isEstadoEditable()\"\n                            pButton label=\"{{'guardardirecto'| translate}}\" (click)=\"actualizar()\"> <span\n                                class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span></button>\n                        <button class=\" p-button-raised ml-2\" *ngIf=\"isContinuarReq()\" pButton\n                            label=\"{{'link_continuar'| translate}}\" (click)=\"continuarRequerimiento()\"> <span\n                                class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span></button>\n                    </div>\n                </div>\n                <!-- CANDIDATOS -->\n                <div *ngIf=\"candidatos\" class=\"mt-2\">\n                    <app-candidatos [requerimientoPMBean]=\"this\"></app-candidatos>\n                </div>\n                <!-- PROCESOSELECCION -->\n                <div *ngIf=\"procesoSelec\" class=\"mt-2\">\n                    <app-proceso-seleccion-tal [requerimientoPMBean]=\"this\"></app-proceso-seleccion-tal>\n                </div>\n                <!-- PUESTO REQUERIMIENTO -->\n                <div *ngIf=\"puestoRequerimiento && !isElaboracion()\" class=\"mt-2\">\n                    <app-listado-puesto-requerimiento #listadoPuestoReq [requerimientoPMBean]=\"this\">\n                    </app-listado-puesto-requerimiento>\n                </div>\n\n\n            </div>\n        </div>\n    </div>\n</div>\n</div>\n<div *ngIf=\"vistaVisualizar == 'visualizadorPDF'\">\n</div>\n\n<div *ngIf=\"vistaVisualizar == 'descripcionCargo'\">\n    <app-descripcion-cargo #descripcionCargoBean (setVista)=\"regresarRequerimiento($event)\"></app-descripcion-cargo>\n</div>\n\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"regresarVista()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarVista()\"></app-ejecucion-encuesta>\n\n<app-popup-motivo-requerimiento #motivoReq (aplicarDestino)=\"setMotivoRequerimiento($event)\">\n</app-popup-motivo-requerimiento>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class CapacitacionEvaluacionModel extends UnionModel {\n\n\tfechaSolicitud: Date;\n\ttipoCapacitacion: string;\n\ttipoNombre: string;\n\testado: string;\n\testadoNombre: string;\n\tsucursal: string;\n\tcedula: number;\n\templeadoNombre: string;\n\tllaveFaseEvaluacion: string;\n\tcargo: string;\n\tcargoNombre: string;\n\tunidad: string;\n\tunidadNombre: string;\n\torigen: string;\n\torigenNombre: string;\n\ttema: string;\n\ttipoEventoNombre: string;\n\torigenEventoNombre: string;\n\tadicionadoTexto: string;\n\tadicionadoFecha: Date;\n\torganizacion: number;\n\tempresa: number;\n\tempresaNombre: string;\n\tdimension: string;\n\tfactor: number;\n\tprioridad: number;\n\tcontrato: number;\n\tcurso: string;\n\tcursoNombre: string;\n\tpaisUbicacion: string;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tubicacionGeografica: string;\n\tubicacionGeograficaNombre: string;\n\tdirigido: string;\n\tprecio: number;\n\tintensidad: number;\n\totraEntidad: string;\n\tpropuesta: Date;\n\tnumeroAutorizacion: string;\n\torigenEvento: string;\n\ttipoEvento: string;\n\tdescripcion: string;\n\tjustificacion: string;\n\tautorizado: boolean;\n\tnoAutorizado: boolean;\n\tautoriza: number;\n\tautorizaDiferente: number;\n\tnivel: number;\n\tnombreSolicitaNecesidad: string;\n\tmotivoNoAutorizar: string;\n\tnombreAutoriza: string;\n\tsolicitud: string;\n\tbeneficiario: number;\n\tbeneficiarioNombre: string;\n\ttitulo: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tunidadDuracion: string;\n\tmodalidad: string;\n\tnivelAcademico: string;\n\tdescripcionNivelAcademico: string;\n\tlugar: string;\n\tresultado: string;\n\tarea: string;\n\tprocesoGestion: string;\n\tcedulaResponde: number;\n\tmensaje: string;\n\tdepende: string;\n\tpadreHijo: string;\n\tcarrera: string;\n\tinstitucional: string;\n\tbaseProceso: string;\n\tentidad: string;\n\tresponsable: string;\n\tresponsableCedulaNombre: string;\n\tformulario: string;\n\tdescripcionFormulario: string;\n\tsucursalNombre: string;\n\tcodigoTema: string;\t\n\tcodigoTemaNombre: string;\n\treferencia1: string;\n\treferencia2: string;\n\tterminosCondiciones: string; \n\tescuelaFormacion: string;\n\tnombreEscuelaFormacion: string;\n\tnoRetirado: string;\n\tsolicita: number;\n\tfuenteNecesidad: string;\n\tperiodoGestion: string;\n\tcategoria: string;\n\tfuenteNecesidadDescripcion: string;\n\trol: string;\n\tlogin: string;\n\tfechasolicitud:Date;\n\t\n}","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { EmpresaModel } from '../../../modules/compensacion/models/EmpresaModel';\nimport { HojaVidaModel } from '../../../modules/hojavida/models/HojaVidaModel';\nimport { EmpleadoModel } from '../../../../app/modules/compensacion/models/EmpleadoModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgClass, NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-input-helper-empleados',\n    templateUrl: './input-helper-empleados.component.html',\n    styleUrls: ['./input-helper-empleados.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperEmpleadosComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        NgClass,\n        NgIf,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class InputHelperEmpleadosComponent implements ControlValueAccessor, OnInit{\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n  @Input() header: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() ocultarBtnLimpiar: boolean = false;\n\n  @Input() consulta: string = '';\n\n  @Input() cantidadConsulta: string = '';\n\n  @Input() filtroRolCliente: boolean = false;\n\n  @Input() columna: boolean = false;\n\n  @Input() booleano: boolean;\n\n  dataSelected: any;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  listadoEmpleado: any;\n\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  modoParametro: string = '';\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(private generalService: GeneralService, private authService: AuthService,private translateService: TranslateService,) { }\n\n  ngOnInit(): void {\n\n\n    this.showDialog = false;\n\n    this.filters = [\n      {\n        field: 'identifica',\n        header: this.translateService.instant('identificacion') + ' / ' + this.translateService.instant('nombrepersona'),\n        matchMode: 'contains',\n      },\n\n    ];\n\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    this.dataSelected = null;\n    this.showDialog = true;\n  }\n\n  cleanData(){\n    this.label = '';\n    this.dataSelected = new EmpleadoModel();\n    this.dataSelected.documento = null;\n    this.dataSelected.nombreCompleto = null;\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.documento;\n    this.label = this.dataSelected.nombreCompleto;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n    this.booleano = false;\n  }\n\n  async cargarLista(event) {\n\n    if(this.filtroRolCliente){\n      return;\n    }\n\n    let empresa: EmpresaModel = new EmpresaModel();\n    empresa.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    let objeto2 = new GeneralModel('EmpresaDTO', null, false, empresa);\n    empresa = await this.generalService.queryForObject(objeto2).toPromise();\n    this.modoParametro = empresa.modoHojavida;\n\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      columna: this.columna,\n      comodinBuscarNombre: event.filters.identifica?.value ? '%' + event.filters.identifica?.value + '%' : null,\n      modoParametro:this.modoParametro,\n      usuarioLogin: this.authService.getTokenKey('usuario'),\n      usuarioRol: this.authService.getTokenKey('aliasRol')\n    };\n\n    let general = new GeneralModel('HojaVidaDTO',this.consulta ? this.consulta : 'HojaVida.obtenerHojaVida', false, objeto);\n\n    this.generalService.queryForList(general).subscribe((data) => {\n      this.listadoEmpleado = data;\n\n      let general = new GeneralModel('HojaVidaDTO', this.cantidadConsulta ? this.cantidadConsulta : 'HojaVida.cantidadObtenerHojaVida', false, objeto);\n      this.generalService.cantidadRegistros(general).subscribe((data) => {\n        this.paginator.totalRecords = data;\n      });\n    });\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {\n\n    if (llave != null) {\n      let filtro = new EmpleadoModel();\n      filtro.cedula = parseInt(llave);\n      let objeto = new GeneralModel('HojaVidaDTO', null, false, filtro);\n      let respuesta: EmpleadoModel = await generalService.queryForObject(objeto).toPromise();\n      let retorno:EmpleadoModel = new EmpleadoModel();\n      retorno.nombres = respuesta.nombres;\n      retorno.primerApellido = respuesta.primerApellido;\n      retorno.segundoApellido = respuesta.segundoApellido;\n      return retorno.getNombreCompleto();\n    }\n\n    return null;\n  }\n  \n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \" >\n\n  <span class=\"p-float-label\">\n    <input pInputText #inputText readonly=\"true\" [value]=\"label\" disabled [required]=\"booleano\"\n     />\n    <!--GENERALIZA TODOS LOS LABEL QUE USEN ESTE div-->\n    <label>{{header}}</label>\n  </span>\n  <!-- Abrir Popup -->\n  <button  pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\"\n    [ngClass]=\"{ 'clear': !ocultarBtnLimpiar }\">\n    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n  </button>\n  <!-- Limpiar campo -->\n  <button pButton pRipple *ngIf=\"ocultarBtnLimpiar\" (click)=\"cleanData()\"\n    class=\"p-button-icon-only unico\" icon=\" pi pi-times\" [ngClass]=\"{ 'clear': ocultarBtnLimpiar}\">\n    <!-- <span class=\"glyphicons glyphicons-remove\"></span> -->\n  </button>\n\n</div>\n\n<p-dialog header=\"Filtro hoja de vida\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\" [draggable]=\"true\"\n  [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\" [style]=\"{ width: '50vw' }\">\n\n  <div>\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" id=\"id_identifica\" formControlName=\"identifica\"\n                  autocomplete=\"off\" />\n                <label for=\"id_documento\">{{'identificacion' | translate}} / {{'nombre' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listadoEmpleado\" selectionMode=\"single\"\n      [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n      [totalRecords]=\"paginator.totalRecords\"  [showCurrentPageReport]=\"true\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped input-helper-datatable\" [(selection)]=\"dataSelected\" (onRowSelect)=\"onRowSelect()\"\n      [lazy]=\"true\" (onLazyLoad)=\"cargarLista($event)\">\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th>{{ \"identificacion\" | translate }}</th>\n          <th>{{ \"nombrepersona\" | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-hoja>\n        <tr [pSelectableRow]=\"hoja\">\n          <td>{{hoja.documento}}</td>\n          <td>{{hoja.nombreCompleto}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n  </div>\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ParametrosPipe } from '../../../../shared/pipes/parametros.pipe';\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ConfirmationService } from 'primeng/api';\nimport { ActoAdministrativoModel } from '../../../actos/models/ActoAdministrativoModel';\nimport { HojaVidaPipe } from '../../../../shared/pipes/hojavida.pipe';\nimport { TipoDocumentoModel } from '../../../hojavida/models/TipoDocumentoModel';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { NovedadModel } from '../../../compensacion/models/NovedadModel';\nimport { SolicitudModel } from '../../../compensacion/models/SolicitudModel';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { ArchivoModel } from '../../../hojavida/models/ArchivoModel';\nimport { CapacitacionEvaluacionModel } from '../../../talento/models/CapacitacionEvaluacionModel';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-anexo',\n    templateUrl: './popup-anexo.component.html',\n    styleUrls: ['./popup-anexo.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, ReactiveFormsModule, InputTextModule, FileUploadModule, InputTextareaModule, NgIf, ButtonDirective, Ripple, ConfirmPopupModule, TranslateModule]\n})\nexport class PopupAnexoComponent implements OnInit {\n\n  @Input() public actoAdministrativo: ActoAdministrativoModel;\n  @Input() public novedad: NovedadModel;\n  @Input() public solicitud: SolicitudModel;\n  @Input() capacitacionSeleccionado: CapacitacionEvaluacionModel;\n  @Input() public tipoDocSeleccionado: string;\n  @Input() public nuevoanexo: boolean;\n  @Input() public mostrarPopup: boolean;\n  @Input() public detalleAnexo: ArchivoModel;\n  @Output() public regresar = new EventEmitter();\n  public archivoSeleccionado: File;\n  public extensionesPermitidas: string[];\n  public anexos : ArchivoModel;\n  public listaanexos: ArchivoModel [] = [];\n  public tipoDocumento : TipoDocumentoModel;\n  clickGuardar: boolean = false;\n  public paqueteServidor : string;\n  formAnexo : FormGroup;\n\n  listaDocumento : any;\n  listaCumplido : any;\n\n  constructor(private parametrosPipe : ParametrosPipe, private cargarSelectItem: cargarmapasGlobal, private formBuilder: FormBuilder,\n    private generalService: GeneralService, private translateService: TranslateService, private hojaVidaPipe : HojaVidaPipe,\n    private listaConstantesPipe : ListaConstantesPipe, private notificacionesService: ToastService, private cargarArchivoService: CargarArchivosService,\n    public utilsService: UtilsService, private encriptadoBasicoService: EncriptadoBasicoService, private confirmationService: ConfirmationService,\n    private authService: AuthService,) { }\n\n  ngOnInit(): void {\n     \n    this.anexos = new ArchivoModel();\n    this.tipoDocumento = new TipoDocumentoModel();\n    this.cargarFormulario();\n    this.cargar();\n  }\n\n  async cargar(){\n    debugger\n    this.extensionesPermitidas = ['pdf', 'PDF'];\n    this.paqueteServidor = Constantes.ESPACIO_NULO;\n    console.log('nuevoanexo',this.nuevoanexo);\n    \n    if(this.nuevoanexo){\n       \n      this.anexos.tipoActo='HO';\n      this.anexos.identifica= this.capacitacionSeleccionado.cedula;\n      this.anexos.llaveTabla = this.anexos.llaveTabla;\n    }else{\n      this.formAnexo.patchValue(this.detalleAnexo);\n    }\n  }\n///zpbasjfvyrayfeqzgmaissdgciobkici\n\n  cargarFormulario() {\n     \n    this.formAnexo = this.formBuilder.group({\n      llaveTabla: new FormControl(this.anexos.llaveTabla),\n      identifica:new FormControl(this.anexos.identifica),\n      descripcion: new FormControl(this.anexos.descripcion),\n      llaveTablaArchivo:new FormControl(this.anexos.llaveTablaArchivo),\n      ruta: new FormControl(this.anexos.ruta),\n      archivoorigen:new FormControl(this.anexos.archivoorigen),\n    });\n  }\n\n  regresarVista(){\n    this.mostrarPopup = false;\n    this.regresar.emit(this.anexos);\n  }\n\n \n  cargarArchivo(data: any, fubauto) {\n     debugger\n    this.paqueteServidor = Constantes.ESPACIO_NULO;\n\t\tthis.archivoSeleccionado = data.files[0];\n\t\tthis.readFile(this.archivoSeleccionado);\n\t\tthis.notificacionesService.showSuccess('Se cargó el documento con éxito');\n    this.paqueteServidor = this.archivoSeleccionado.name;\n    this.formAnexo.get('archivoorigen').setValue(this.archivoSeleccionado.name);\n\t\tfubauto.clear();\n  }\n\n\tprivate readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n\t}\n\n  guardarArchivo(llave: string){\n     debugger\n\t\tlet extensionArchivo:string = this.archivoSeleccionado.name.split('?')[0].split(Constantes.PUNTO).pop();\n\t\tif(!this.extensionesPermitidas.includes(extensionArchivo)){\n\t\t\tthis.notificacionesService.showWarning('Solo se pueden anexar archivos pdf');\n\t\t\treturn\n\t\t}\n\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\tlet codigoAplicacion =  this.authService.getTokenKey('aplicacion');\n\t\tthis.archivoSeleccionado =  new File([this.archivoSeleccionado], llave + Constantes.PUNTO + extensionArchivo);\n\t  this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe({\n\t\t  next: (event) => {\n\t\t\tif (event.type === HttpEventType.Response) {\n\t\t\t\tlet response: any = event.body;\n        this.formAnexo.get('archivoorigen').setValue(this.archivoSeleccionado.name);\n\t\t\t\tthis.regresarVista();\n\t\t\t}\n\t\t  },\n\t\t});\n\t}\n\n  guardarRegistro() {\n    if (this.formAnexo.valid) {\n        if(this.nuevoanexo){\n             \n            // Asignar la cédula al formulario antes de enviarlo al servidor\n            this.formAnexo.get('identifica').setValue(this.capacitacionSeleccionado.cedula);\n            this.formAnexo.get('llaveTablaArchivo').setValue(this.capacitacionSeleccionado.llaveTabla);\n\n            this.formAnexo.get('llaveTabla').setValue(this.utilsService.generarLlave());\n            let objFiltro: GeneralModel = new GeneralModel('ArchivoDTO', null, false, this.formAnexo.value);\n            this.generalService.crearRegistro(objFiltro).subscribe((data) => {\n                 \n                if(data != null) {\n                    if(this.paqueteServidor != Constantes.ESPACIO_NULO){\n                        this.guardarArchivo(this.formAnexo.get('llaveTabla').value);\n                    }\n                    this.notificacionesService.showSuccess(Constantes.MENSAJE_GUARDAR);\n                    this.regresarVista();\n                } else {\n                    this.notificacionesService.showError('Error en el método de actualizar recurso');\n                }\n            });\n        }\n    } else {\n        this.notificacionesService.showError('Faltan campos obligatorios');\n        Object.keys(this.formAnexo.controls).forEach((key) => {\n            if (this.formAnexo.get(key).errors) {\n                this.formAnexo.get(key).markAsDirty();\n            }\n        });\n    }\n}\n\n\n  actualizarRegistro() {\n     \n    if (this.formAnexo.valid) {\n      if(!this.nuevoanexo){\n        let result : number;\n        let objetoFiltro: GeneralModel = new GeneralModel('ArchivoDTO', null, false, this.formAnexo.value);\n        this.generalService.update(objetoFiltro).subscribe(data => {\n          result = data;\n          if (result == 1) {\n            this.notificacionesService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n            this.regresarVista();\n          } else {\n            this.notificacionesService.showError('Error en actualizar el registro');\n            throw new Error('Error en el método de actualizar');\n          }\n        });\n      }\n\t\t}else {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      Object.keys(this.formAnexo.controls).forEach((key) => {\n        if (this.formAnexo.get(key).errors) {\n          this.formAnexo.get(key).markAsDirty();\n        }\n      });\n    }\n  }\n\n  showEliminarRequisitoConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRequisito();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n\n\n  confirmaEliminacion(event: Event) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      header: 'Confirmar',\n      accept: () => {          \n          this.eliminar();\n      },     \n      reject: () => { },\n    }\n    )\n  }\n\n\n  eliminar(){\n    let filtro: GeneralModel = new GeneralModel('ArchivoDTO', null, false, this.formAnexo.value);\n    this.generalService.delete(filtro).subscribe({\n      next: (data) => {\n        if (data != null) {\n          this.notificacionesService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n          this.regresarVista();\n        } else {\n          this.notificacionesService.showError(\n            'Error en el método de crear recurso'\n          );\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesService.showError(err.error.mensaje);\n      },\n    });\n\n\n    \n  }\n\n  eliminarRequisito(){\n    let objeto: GeneralModel = new GeneralModel('ArchivoDTO', null, false, this.formAnexo.value);\n    this.generalService.delete(objeto).subscribe(data => {\n      let result : number = data;\n      if (result == 1) {\n        this.notificacionesService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n        this.regresarVista();\n      } else {\n        this.notificacionesService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.notificacionesService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n}\n","<p-dialog header=\"{{'Anexo Documento' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '48vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <form [formGroup]=\"formAnexo\" #formulario=\"ngForm\">\n      <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n        <div class=\"Inputgroup\">\n          <div class=\"p-fluid p-formgrid grid\">\n\n\n            <!-- ADJUNTAR ARCHIVO-->\n            <div class=\"col-12 md:col-6\" id=\"btn-cargar-popup\">\n              <div [class]=\"(!utilsService.validarCampoObligatorio(archivoSeleccionado) && clickGuardar)  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n                <span class=\"p-float-label\">\n                    <input pInputText [disabled]=\"true\" formControlName=\"archivoorigen\">\n                    <label>{{'archivo' | translate}}*</label>\n                    <p-fileUpload  #fubauto  mode=\"basic\" [customUpload]=\"true\"  chooseIcon=\"pi pi-paperclip\"\n                    [class.invalid-upload]=\"!utilsService.validarCampoObligatorio(archivoSeleccionado) && clickGuardar \"\n                    accept=\"application/pdf\"  (onSelect)=\"cargarArchivo($event, fubauto)\" [disabled]=\"!nuevoanexo\"></p-fileUpload>\n                </span>\n              </div>\n            </div>\n\n       \n            <!-- Descripcion -->\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n              <span class=\"p-float-label\">\n                <textarea pInputTextarea id=\"descripcion\" rows=\"3\" formControlName=\"descripcion\" maxlength=\"30\" cols=\"30\"\n                  class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max min-h-100\"  ></textarea>\n                <label for=\"descripcion\">{{'descripcion' | translate}}</label>\n              </span>\n            </div>\n\n          </div>\n        </div>\n      </div>\n      <div class=\"col-12 p-0 flex justify-content-end\">\n        <button pButton pRipple class=\"mr-3 mb-1 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n            label=\"{{'link_actualizar' | translate}}\" *ngIf=\"!nuevoanexo\" (click)=\"actualizarRegistro()\">\n        </button>\n        <button pButton pRipple class=\"mr-2 mb-1 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n            label=\"{{'link_eliminar' | translate}}\" *ngIf=\"!nuevoanexo\" (click)=\"showEliminarRequisitoConfirmDialog()\">\n        </button>\n        <button pButton pRipple class=\"mr-2 mb-1 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            label=\"{{'link_guardar' | translate}}\" *ngIf=\"nuevoanexo\" (click)=\"guardarRegistro()\"></button>\n      </div>\n    </form>\n</p-dialog>\n<p-confirmPopup></p-confirmPopup>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ArchivoModel } from '../../hojavida/models/ArchivoModel';\n\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class AnexoNecesidadService {\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n       }\n    \n      private handleError(error: HttpErrorResponse) {\n    \n        if (!error.error.traza) {\n          error.error.traza = error.error.mensaje;\n        }\n    \n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          console.error('An error occurred:', error.error);\n        } else {\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n      traerarchivos(objeto): Observable<ArchivoModel[]> {\n        let form = new FormData();\n        form.append(\"objeto\", JSON.stringify(objeto));\n        return this.httpClient.post<ArchivoModel[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/anexonecesidad/traerarchivos`, form).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'compensacionPipe',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CompensacionPipe implements PipeTransform {\n\n  /* TAREA ZONA ECONOMICA, LISTA VIGENCIA */\n\n\n\n  DESARROLLO = 'D';\n  TERMINADO = 'T';\n  CANCELADO = 'C';\n\n  DESARROLLODES = 'EN DESARROLLO';\n  TERMINADODES = 'TERMINADO';\n  CANCELADODES = 'CANCELADO';\n\n  LISTAESTADOPROYECTO = [\n    { codigo: this.DESARROLLO, nombre: this.DESARROLLODES },\n    { codigo: this.TERMINADO, nombre: this.TERMINADODES },\n    { codigo: this.CANCELADO, nombre: this.CANCELADODES }\n  ]\n\n  /* TAREA REPORTE PLANILLA */\n  REPORTE_PLANILLA = \"PLANILLA\";\n  REPORTE_PERIODO_EMPLEADO = \"PERIODOEMP\";\n  REPORTE_RESUMEN_CONCEPTO = \"RESUMENCON\";\n  REPORTE_MALLAS = \"MALLAS\";\n  REPORTE_CONCEPTOS = \"CONCEPTOS\";\n\n  DES_REPORTE_PLANILLA = \"Reporte Planilla\";\n  DES_REPORTE_PERIODO_EMPLEADO = \"Periodo Empleado\";\n  DES_REPORTE_RESUMEN_CONCEPTO = \"Resumen Concepto\";\n  DES_REPORTE_MALLAS = \"Mallas\";\n  DES_REPORTE_CONCEPTOS = \"Conceptos\";\n\n  TIPOS_TEPORTES = [\n    { codigo: this.REPORTE_PLANILLA, nombre: this.DES_REPORTE_PLANILLA },\n    { codigo: this.REPORTE_PERIODO_EMPLEADO, nombre: this.DES_REPORTE_PERIODO_EMPLEADO },\n    { codigo: this.REPORTE_RESUMEN_CONCEPTO, nombre: this.DES_REPORTE_RESUMEN_CONCEPTO },\n    { codigo: this.REPORTE_MALLAS, nombre: this.DES_REPORTE_MALLAS },\n    { codigo: this.REPORTE_CONCEPTOS, nombre: this.DES_REPORTE_CONCEPTOS },\n  ]\n\n  NOMINA_TEXTO = \"T\";\n  NOMINA_FIJO = \"F\";\n  NOMINA_COLUMNA = \"C\";\n  NOMINA_SUBCAMPO = \"S\";\n  NOMINA_IMAGEN = \"M\";\n  NOMINA_TITULO_FIJO = \"X\";\n\n  NOMINA_TEXTO_DES = \"Texto\";\n  NOMINA_FIJO_DES = \"Marcador Fijo\";\n  NOMINA_COLUMNA_DES = \"Columna\";\n  NOMINA_SUBCAMPO_DES = \"Subcampo\";\n  NOMINA_IMAGEN_DES = \"Imagen\";\n  NOMINA_TITULO_DES = \"Titulo\";\n\n  LISTA_NOMINA_TIPO = [\n    { codigo: this.NOMINA_TEXTO, nombre: this.NOMINA_TEXTO_DES },\n    { codigo: this.NOMINA_COLUMNA, nombre: this.NOMINA_COLUMNA_DES },\n    { codigo: this.NOMINA_IMAGEN, nombre: this.NOMINA_IMAGEN_DES },\n    { codigo: this.NOMINA_SUBCAMPO, nombre: this.NOMINA_SUBCAMPO_DES },\n    { codigo: this.NOMINA_FIJO, nombre: this.NOMINA_FIJO_DES },\n    { codigo: this.NOMINA_TITULO_FIJO, nombre: this.NOMINA_TITULO_DES },\n  ]\n\n\n  SEGURIDADSALUDTRABAJO = \"SO\";\n  NORELACIONADO = \"NR\";\n\n  DESSEGURIDADSALUDTRABAJO = \"Seguridad y Salud en el Trabajo\"\n  DESNORELACIONADO = \"No relacionado\"\n\n\n  LISTA_DESTINO = [\n    { codigo: this.SEGURIDADSALUDTRABAJO, nombre: this.DESSEGURIDADSALUDTRABAJO },\n    { codigo: this.NORELACIONADO, nombre: this.DESNORELACIONADO },\n\n  ]\n\n  ACTIVO = \"A\";\n\n\n  NOMINA_ACTIVO_DES = \"Activo\";\n  NOMINA_CANCELADO_DES = \"Cancelado\";\n\n\n  LISTA_ESTADO = [\n    { codigo: this.ACTIVO, nombre: this.NOMINA_ACTIVO_DES },\n    { codigo: this.CANCELADO, nombre: this.NOMINA_CANCELADO_DES },\n\n  ]\n\n  AMBAS = 'B';\n  PUNTAJE = 'P';\n  ASISTENCIAL = 'S';\n\n  DES_AMBAS = 'AMBAS';\n  DES_PUNTAJE = 'PUNTAJE';\n  DES_ASISTENCIAL = 'ASISTENCIAL';\n\n  LISTA_TIPO_EVALUACION = [\n    { codigo: this.AMBAS, nombre: this.DES_AMBAS },\n    { codigo: this.PUNTAJE, nombre: this.DES_PUNTAJE },\n    { codigo: this.ASISTENCIAL, nombre: this.DES_ASISTENCIAL }\n  ]\n\n  TODAS = 'T';\n  INDIVIDUAL = 'I';\n  GRUPO_PERSONAS = 'P';\n  GRUPO_PLANTA = 'G';\n\n  TODAS_DESC = 'EJECUTADO';\n  INDIVIDUAL_DESC = 'INDIVIDUAL';\n  GRUPO_PERSONAS_DESC = 'GRUPO PERSONAS';\n  GRUPO_PLANTA_DESC = 'GRUPO PLANTA';\n\n  LISTA_OPERADOR_NECESIDAD = [\n    { codigo: this.TODAS, nombre: this.TODAS_DESC },\n    { codigo: this.INDIVIDUAL, nombre: this.INDIVIDUAL_DESC },\n    { codigo: this.GRUPO_PERSONAS, nombre: this.GRUPO_PERSONAS_DESC },\n    { codigo: this.GRUPO_PLANTA, nombre: this.GRUPO_PLANTA_DESC }\n  ]\n\n  EJECUTADO = 'E';\n  SOLICITADO = 'S';\n  PROGRAMADO = 'P';\n  NOAUTORIZADO = 'N'\n\n  EJECUTADODESC = 'EJECUTADO';\n  CANCELADODESC = 'NO ACEPTADO';\n  SOLICITADODESC = 'SOLICITADO';\n  PROGRAMADODESC = 'AUTORIZADO';\n  DESNOAUTORIZADO = 'NO AUTORIZADO';\n\n  LISTA_ESTADOS = [\n    { codigo: this.EJECUTADO, nombre: this.TODAS_DESC },\n    { codigo: this.CANCELADO, nombre: this.CANCELADODESC },\n    { codigo: this.SOLICITADO, nombre: this.SOLICITADODESC },\n    { codigo: this.PROGRAMADO, nombre: this.PROGRAMADODESC },\n    { codigo: this.NOAUTORIZADO, nombre: this.DESNOAUTORIZADO }\n  ]\n\n  ESTADOPROCESO = 'P';\n  ESTADOEJECUTADO = 'E';\n  ESTADOCERRADO = 'C';\n  ESTADOANULADO = 'A';\n  ESTADOCERRADOANULADO = 'D';\n  ESTADOBLOQUEADO = 'B';\n\n  ESTADOPROCESO_DESC = 'Proceso';\n  ESTADOEJECUTADO_DESC = 'Ejecutado';\n  ESTADOCERRADO_DESC = 'Cerrado';\n  ESTADOANULADO_DESC = 'Anulado';\n  ESTADOCERRADOANULADO_DESC = 'Cerrado Anulado';\n  ESTADOBLOQUEADO_DESC = 'Bloqueado';\n\n  LISTA_ESTADOACTIVIDAD = [\n    { codigo: this.ESTADOPROCESO, nombre: this.ESTADOPROCESO_DESC },\n    { codigo: this.ESTADOEJECUTADO, nombre: this.ESTADOEJECUTADO_DESC },\n    { codigo: this.ESTADOCERRADO, nombre: this.ESTADOCERRADO_DESC },\n    { codigo: this.ESTADOANULADO, nombre: this.ESTADOANULADO_DESC },\n    { codigo: this.ESTADOCERRADOANULADO, nombre: this.ESTADOCERRADOANULADO_DESC },\n    { codigo: this.ESTADOBLOQUEADO, nombre: this.ESTADOBLOQUEADO_DESC }\n  ]\n\n  SUSTITUTOTIPO_PUBLICA = 'C';\n  SUSTITUTOTIPO_PRIVADA = 'P';\n  SUSTITUTOTIPO_CATEDRA = 'D'\n  SUSTITUTOTIPO_PUBLICA_DESC = 'Publica'\n  SUSTITUTOTIPO_PRIVADA_DESC = 'Privada'\n  SUSTITUTOTIPO_CATEDRA_DESC = 'Catedra'\n\n  LISTA_TIPO_SUSTITUTO_REFLABORAL = [\n    { codigo: this.SUSTITUTOTIPO_PUBLICA, nombre: this.SUSTITUTOTIPO_PUBLICA_DESC },\n    { codigo: this.SUSTITUTOTIPO_PRIVADA, nombre: this.SUSTITUTOTIPO_PRIVADA_DESC },\n    { codigo: this.SUSTITUTOTIPO_CATEDRA, nombre: this.SUSTITUTOTIPO_CATEDRA_DESC },\n    { codigo: Constantes.CONSTANTE_NO, nombre: this.DESNORELACIONADO }\n  ]\n\n  LISTA_UNIDADTIEMPO_SUSTITUTO_REFLABORAL = [\n    { codigo: 1, nombre: 'Horas/Semana' },\n    { codigo: 2, nombre: 'Horas/Mes' },\n    { codigo: 3, nombre: 'Dias/Semana' },\n    { codigo: 4, nombre: 'Dias/Mes' },\n    { codigo: 0, nombre: 'No Aplica' },\n  ]\n\n  ESTADO_VIGENTE = \"A\";\n  ESTADO_NO_VIGENTE =\"N\"\n  ESTADO_TRASLADADO = \"T\"\n\n  ESTADO_VIGENTE_DES = \"Asignado\";\n  ESTADO_NO_VIGENTE_DES = \"Solicitado\";\n  ESTADO_TRASLADADO_DES = \"Trasladado\";\n\n  LISTA_ESTADO_ElEMENTOS = [\n    { codigo: this.ESTADO_VIGENTE, nombre: this.ESTADO_VIGENTE_DES },\n    { codigo: this.ESTADO_NO_VIGENTE, nombre: this.ESTADO_NO_VIGENTE_DES },\n    { codigo: this.ESTADO_TRASLADADO, nombre: this.ESTADO_TRASLADADO_DES },\n  ]\n  \n\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n\n    if (args[0] == 'listaEstadoProyecto') { this.LISTAESTADOPROYECTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaReportesPlanilla') { this.TIPOS_TEPORTES.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaNominaTipo') { this.LISTA_NOMINA_TIPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaEstado') { this.LISTA_ESTADO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoEvaluacion') { this.LISTA_TIPO_EVALUACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaOperacionNecesidad') { this.LISTA_OPERADOR_NECESIDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaEstados') { this.LISTA_ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaEstadoActividad') { this.LISTA_ESTADOACTIVIDAD.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaTipoSustitutoRefLaboral') { this.LISTA_TIPO_SUSTITUTO_REFLABORAL.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralModel, UtilsService, AuthService, FiltroGeneralComponent } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { CapacitacionEvaluacionModel } from '../../../../talento/models/CapacitacionEvaluacionModel';\nimport { CompensacionPipe } from '../../../../compensacion/pipes/compensacion.pipe';\nimport { ArchivoModel } from '../../../../hojavida/models/ArchivoModel';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { AnexoNecesidadService } from '../../../../capacitacion/services/anexo-necesidad.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { PopupAnexoComponent } from '../../../popups/popup-anexo/popup-anexo.component';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ArchivoAnexoHojaVidaService } from '../../../../hojavida/services/archivo-anexo-hoja-vida.service';\n@Component({\n    selector: 'app-anexo-necesidad',\n    templateUrl: './anexo-necesidad.component.html',\n    styleUrls: ['./anexo-necesidad.component.scss'],\n    standalone: true,\n    imports: [FormsModule, ReactiveFormsModule, InputTextModule, ButtonDirective, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, Ripple, NgIf, PopupAnexoComponent, TranslateModule, FiltroGeneralComponent]\n})\nexport class AnexoNecesidadComponent implements OnInit {\n\n  public listaComandos: Map<string, boolean>;\n  @Input() capacitacionSeleccionado: CapacitacionEvaluacionModel;\n  public verNovedadesHistoricas: boolean;\n\tpublic verDetalle: boolean;\n\tpublic verDetalleMasivo: boolean;\n\tpublic descripcionDetalle: string;\n  public listadoArchivo :ArchivoModel [] = [];\n  public detalleAnexo : ArchivoModel;\n\tpublic parametroFiltro: string;\n\tpublic parametroHijos: string;\n  public opcionSeleccionada: string;\n  public llaveTabla: string;\n  nuevoanexo: boolean;\n  verPopupanexo : boolean;\n  isNew: boolean;\n  filters = [];\n  public paginatorNovedades = {\n    rows: 10,\n    totalRecords: 0\n  }\n   public paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n  \n  constructor(private generalService: GeneralService,\n              private utilsService: UtilsService,\n              private authService: AuthService,\n              private translateService: TranslateService,\n              private anexoNecesidad :AnexoNecesidadService,\n              private compensacionpipe: CompensacionPipe,\n              private encriptadoBasico: EncriptadoBasicoService,\n              private cargarArchivo: CargarArchivosService,\n              private activeRoute: ActivatedRoute,\n              private archivoAnexoHojaVidaService: ArchivoAnexoHojaVidaService,\n              ) { }\n\n  ngOnInit(): void {\n    this.detalleAnexo = new ArchivoModel();\n    this.cargarAnexos(event);\n    this. crearFiltro();\n  }\n  crearFiltro() {\n    this.filters = [\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'equals',\n      },      \n    ];\n  }\n\n  async cargarAnexos(event) {\n    try {\n     \n      let archivo = new ArchivoModel();\n      archivo.paginacionRegistroFinal= 0;\n      archivo.paginacionRegistroInicial= 0;\n      /* this.activeRoute.snapshot.paramMap.get('llaveTabla'); */\n      archivo.llaveTablaArchivo = this.capacitacionSeleccionado.llaveTabla; \n      this.listadoArchivo = await this.anexoNecesidad.traerarchivos(archivo).toPromise()\n      this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('ArchivoDTO', null, false, archivo)).toPromise();\n    } catch (error) {\n\n    }\n\n\n  }\n  \n\n \n\n  verAction(valor) {\n    this.verPopupanexo = true;\n    this.detalleAnexo = valor.data;\n    this.isNew = false;\n    this.nuevoanexo = false;\n  }\n\n  mostrarNuevoDocumento(){\n    debugger\n    this.verPopupanexo = true;\n    this.nuevoanexo = true;\n   }\n\n   descargarAnexo(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    //Ruta archivo\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.rutaFisica), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.archivoorigen;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n  regresaPopupRequisitoContratacion(){\n    this.verPopupanexo = false;\n    this.cargarAnexos(null);\n  }\n\n /*  eliminarAnexo(event, documento) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea eliminar?',\n      acceptLabel: this.generalPipe.SI_DESC,\n      header: 'Confirmar',\n      accept: async () => {\n\n        let propiedad = 'ruta_anexosHojaVida'\n        let aplicacion = this.authService.getTokenKey('aplicacion');\n\n        let data = await this.archivoAnexoHojaVidaService.eliminarAnexo(documento).toPromise();\n        if (data == 1) {\n          this.notifica.showSuccess('Se eliminó el registro exitosamente');\n\n          //Ruta archivo\n\n          let rutaSeg = data;\n          await this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(documento.rutaFisica), propiedad, aplicacion).toPromise();\n\n          await this.cargarListaAnexos()\n\n        } else {\n          this.notificacionesService.showError('Error en el método de eliminar recurso');\n          //this.isLoading = false;\n        }\n      },\n    });\n\n  } */\n}\n","<div class=\"Inputgroup-borde mt-0\">\n    <div class=\"p-fluid grid\" >\n       \n        <div class=\"field col-12 md:col-12 lg:col-12\" >\n            <div class=\"flex justify-content-between align-items-center mb-3\">\n\n                <!-- Filtro-->\n                <app-filtro-general #filtroItem [filtros]=\"filters\" [datatable]=\"tablaAnexo\">\n                    <ng-template let-form>\n                        <ng-container [formGroup]=\"form\">\n                            <div>\n                                <div class=\"mr-5 w-full\">\n                                    <span class=\"p-float-label\">\n                                        <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\"\n                                            autocomplete=\"off\" />\n                                        <label for=\"id_tipo\">{{'descripcion' | translate}}</label>\n                                    </span>\n                                </div>\n                            </div>\n                        </ng-container>\n                    </ng-template>\n                </app-filtro-general>\n\n                <button pButton label=\"{{'link_nuevo'| translate}}\"\n                  class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\" type=\"button\"\n                  (click)=\"mostrarNuevoDocumento()\"><span class=\"glyphicons glyphicons-plus\"></span></button>\n            </div>\n            <p-table #tablaAnexo responsiveLayout=\"scroll\" [value]=\"listadoArchivo\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" \n                [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"  [paginator]=\"paginator.totalRecords > paginator.rows\"\n                 (onLazyLoad)=\"cargarAnexos($event)\" (onRowSelect)=\"verAction($event)\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th style=\"min-width: 40%;\" >{{'descripcion' | translate}}</th>\n                        <th style=\"min-width: 50%;\" >{{'nombre' | translate}}</th>\n                        <th style=\"min-width: 10%;\" >{{'ver' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-bean>\n                    <tr [pSelectableRow]=\"bean\">\n                        \n                        <td style=\"min-width: 40%;\">{{bean.descripcion}}</td>\n                        <td style=\"min-width: 50%;\">{{bean.archivoorigen}}</td>\n                        <td style=\"width: 10%;\">\n                            <button pButton pRipple class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(bean)\" type=\"file\"></button>\n                            <!-- <button pButton pRipple\n                                class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                icon=\"pi pi-trash\" (click)=\"eliminarAnexo($event, documento)\" ></button> -->\n                          </td>\n                        \n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n    </div>\n</div>\n<div *ngIf=\"verPopupanexo\">\n    <app-popup-anexo [mostrarPopup]=\"true\"  [nuevoanexo]=\"nuevoanexo\" [capacitacionSeleccionado]=\"capacitacionSeleccionado\"\n    (regresar)=\"regresaPopupRequisitoContratacion()\" [detalleAnexo]=\"detalleAnexo\"></app-popup-anexo>\n  \n  </div>","import { EventEmitter, Input, Output } from '@angular/core';\nimport { Component, ElementRef, forwardRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService } from 'general-library-union';\nimport { Router } from '@angular/router';\nimport { UtilsService } from 'general-library-union';\nimport { FormularioModel } from '../../../../app/modules/hojavida/models/FormularioModel';\nimport { CompensacionPipe } from '../../../../app/modules/compensacion/pipes/compensacion.pipe';\nimport { TipoEventoModel } from '../../../../app/modules/capacitacion/models/TipoEventoModel';\nimport { CompensacionPipe as CompensacionPipe_1 } from '../../../modules/compensacion/pipes/compensacion.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-input-helper-necesidad',\n    templateUrl: './input-helper-necesidad.component.html',\n    styleUrls: ['./input-helper-necesidad.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperNecesidadComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        DialogModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        CompensacionPipe_1,\n    ],\n})\nexport class InputHelperNecesidadComponent implements ControlValueAccessor {\n  @ViewChild('inputText') inputText: ElementRef;\n  \n  @Input() public mostrar: boolean;\n  @Output() public regresar = new EventEmitter();\n \n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  public listaTipoEvento:TipoEventoModel[] = [];\n  public re = [];\n  public listaTipoE = [];\n  public selectedPanel: string;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  listaTipo: any[];\n\n  @Input() showDialog: boolean = false;\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  paginator={rows:10, totalRecords:0};\n  listaOperacionNecesidad: { codigo: string; nombre: string; }[];\n\n  constructor(private generalService: GeneralService, \n     public utilsService: UtilsService) {}\n     \n  ngOnInit(): void {\n    this.showDialog = true;\n    this.loadData();\n    \n  }\n  dataSelected: FormularioModel;\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.loadData();\n  }\n  ocultar() {\n    this.showDialog = false;\n    this.regresar.emit();\n  }\n\n  onRowSelect(event) {\n    this.showDialog = false;\n    this.onSelected.emit(event.data);\n  }\n\n  async loadData(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      const objetoFiltro = {\n        nombreDTO: 'FormularioDTO',\n        nombreConsulta: null,\n        seguridad: false,\n        objeto: {},\n      };\n      this.generalService.queryForList(objetoFiltro).subscribe(\n        (data) => {\n          this.listaTipo = data.filter((item) => item.tipo != null);\n          this.paginator.totalRecords = this.listaTipo.length;\n          resolve(); // Notifica cuando los datos están listos\n        },\n        (error) => {\n          reject(error); // Manejo de errores si ocurre un problema\n        }\n      );\n    });\n  }\n  \n}\n","<p-dialog header=\"{{'Nueva Necesidad' | translate}}\"  [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\" (onHide)=\"ocultar()\" (onShow)=\"openDataTable()\">\n  <p-table dataKey=\"llaveTabla\" [value]=\"listaTipo\" selectionMode=\"single\"  responsiveLayout=\"scroll\" [scrollable]=\"true\"\n    [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n    [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"Total {totalRecords} registros\" styleClass=\"p-datatable-striped input-helper-datatable\"\n    (onRowSelect)=\"onRowSelect($event)\" [(selection)]=\"dataSelected\" >\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{ \"nombre\" | translate }}</th>\n        <th>{{ \"tipo\" | translate }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-fomulario>\n      <tr [pSelectableRow]=\"fomulario\">\n        <td>{{ fomulario.nombre }}</td>\n        <td>{{ fomulario.tipo | compensacionPipe:'listaOperacionNecesidad' }}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>","import { Component, OnInit, Input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralModel, UtilsService, FiltroGeneralComponent } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ActividadFuenteTareaModel } from '../../../../talento/models/ActividadFuenteTareaModel';\nimport { CapacitacionEvaluacionModel } from '../../../../talento/models/CapacitacionEvaluacionModel';\nimport { CompensacionPipe } from '../../../../compensacion/pipes/compensacion.pipe';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { InputHelperNecesidadComponent } from '../../../../../shared/componentes/input-helper-necesidad/input-helper-necesidad.component';\n\n@Component({\n  selector: 'app-listado-actividades',\n  templateUrl: './listado-actividades.component.html',\n  styleUrls: ['./listado-actividades.component.scss'],\n  standalone: true,\n  imports: [TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, CompensacionPipe,\n    FormsModule, NgIf, InputHelperNecesidadComponent, DatePipe, FiltroGeneralComponent\n  ]\n})\nexport class ListadoActividadesComponent implements OnInit {\n\n  @Input() capacitacionSeleccionado: CapacitacionEvaluacionModel;\n  \n  public listaComandos: Map<string, boolean>;\n  public verNovedadesHistoricas: boolean;\n  public verDetalle: boolean;\n  public verDetalleMasivo: boolean;\n  public descripcionDetalle: string;\n  public listadoActividades: ActividadFuenteTareaModel[] = [];\n\n  public parametroFiltro: string;\n  public parametroHijos: string;\n  public opcionSeleccionada: string;\n  public llaveTabla: string = '';\n  public llaveTablaBase: string = '';\n  public paginatorNovedades = {\n    rows: 10,\n    totalRecords: 0\n  }\n  public paginatorNovedadesHistorico = {\n    rows: 10,\n    totalRecords: 0\n  }\n  listaEstado: { codigo: string; nombre: string; }[];\n\n  constructor(private generalService: GeneralService,\n    private compensacionpipe: CompensacionPipe,\n  ) { }\n\n  ngOnInit(): void {\n    this.listaEstado = this.compensacionpipe.LISTA_ESTADOACTIVIDAD;\n    this.cargarNovedades();\n  }\n\n  cargarNovedades() {\n\n    var objeto = {\n\n      llaveTablaBase: this.capacitacionSeleccionado.llaveTabla,\n    }\n    this.generalService.queryForList(new GeneralModel('ActividadFuenteTareaDTO', null, false, objeto)).subscribe(data => {\n      this.listadoActividades = data;\n      this.generalService.cantidadRegistros(new GeneralModel('ActividadFuenteTareaDTO', null, false, objeto)).subscribe(data => {\n        this.paginatorNovedades.totalRecords = data;\n      })\n    })\n  }\n}\n","<div class=\"Inputgroup-borde mt-0\">\n    <div class=\"p-fluid grid\" >\n       \n        <div class=\"field col-12 md:col-12 lg:col-12\" >\n            <div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n                <h2>Actividades</h2>\n\n            </div>\n            <p-table #tablaNovedades responsiveLayout=\"scroll\" [value]=\"listadoActividades\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n                [lazy]=\"true\" (onLazyLoad)=\"cargarNovedades()\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                <ng-template pTemplate=\"header\">\n                    <tr class=\"fondoTablaPincipal\">\n                        <th>{{'descripcion' | translate}}</th>\n                        <th>{{'Datos Adiconales' | translate}}</th>\n                        <th>{{'Orden' | translate}}</th>\n                        <th>{{'Estado' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-bean>\n                    <tr [pSelectableRow]=\"bean\">\n                        \n                        <td>{{bean.descripcionTarea}}</td>\n                        <td class=\"block\">\n                            <div class=\"mb-2\"><label class=\"font-bold\">Responsable: </label>{{bean.nombreResponsable}}</div>\n                            <div class=\"mb-2\"><label class=\"font-bold\">Tarea: </label>{{bean.descripcionTarea}}</div>\n                          </td>\n                        <td>{{bean.orden}}</td>\n                        <td>{{bean.estado | compensacionPipe:'listaEstadoActividad' }}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n       <!--  <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"verDetalle\">\n            <app-mantenimiento-detalle-novedad #detalleNovedad (regresar)=\"regresarMantenimiento()\"></app-mantenimiento-detalle-novedad>\n        </div> -->\n    </div>\n</div>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { CapacitacionEvaluacionModel } from '../../talento/models/CapacitacionEvaluacionModel';\nimport { FormularioModel } from '../../hojavida/models/FormularioModel';\nimport { MapperCapacitacionNecesidadRequest } from '../models/MapperCapacitacionNecesidadRequest';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NecesidadCapacitacionFormularioService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  cargarListaCampos(isCliente: boolean, llaveOrganizacion: number, informacionActiva: string, capacitacionEvaluacionDTO: CapacitacionEvaluacionModel, formulario: FormularioModel): Observable<any[]> {\n    let form = new FormData();\n    form.append('isCliente', JSON.stringify(isCliente));\n    form.append('llaveOrganizacion', JSON.stringify(llaveOrganizacion));\n    form.append('informacionActiva', informacionActiva);\n    form.append('capacitacionEvaluacionDTO', JSON.stringify(capacitacionEvaluacionDTO));\n    form.append('formulario', JSON.stringify(formulario));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/cargarListaCampos`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cargarFormulario(capacitacion: CapacitacionEvaluacionModel, organizacion: number): Observable<any[]> {\n    let form = new FormData();\n    form.append('capacitacion', JSON.stringify(capacitacion));\n    form.append('organizacion', organizacion.toString());\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/cargarFormulario`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  aplicarInscripcion(listaInscritoDTO: CapacitacionEvaluacionModel[], listaNoInscritoDTO: CapacitacionEvaluacionModel[], capacitacionEvaluacionModel: CapacitacionEvaluacionModel) {\n    const payload = {\n        listaInscritoDTO: listaInscritoDTO,\n        listaNoInscritoDTO: listaNoInscritoDTO,\n        capacitacionEvaluacionDTO : capacitacionEvaluacionModel\n    };\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/aplicarInscripcion`, payload).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  autorizarNecesidadCapacitacion(capacitacionEvaluacionModel: CapacitacionEvaluacionModel): Observable<any> {\n    let form = new FormData();\n    form.append('capacitacionEvaluacionModel', JSON.stringify(capacitacionEvaluacionModel));\n    \n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/autorizarNecesidadCapacitacion`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  noAutorizarNecesidadCapacitacion(capacitacionEvaluacionModel: CapacitacionEvaluacionModel): Observable<any> {\n    let form = new FormData();\n    form.append('capacitacionEvaluacionModel', JSON.stringify(capacitacionEvaluacionModel));\n    \n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/noAutorizarNecesidadCapacitacion`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  ejecutarNecesidadCapacitacion(capacitacionEvaluacionModel: CapacitacionEvaluacionModel): Observable<any> {\n    let form = new FormData();\n    form.append('capacitacionEvaluacionModel', JSON.stringify(capacitacionEvaluacionModel));\n    \n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/ejecutarNecesidadCapacitacion`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  noEjecutarNecesidadCapacitacion(capacitacionEvaluacionModel: CapacitacionEvaluacionModel): Observable<any> {\n    let form = new FormData();\n    form.append('capacitacionEvaluacionModel', JSON.stringify(capacitacionEvaluacionModel));\n    \n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/noEjecutarNecesidadCapacitacion`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  /**\n   * Saves the capacitacion necesidad by sending a POST request to the server.\n   * \n   * @param mapperCapacitacionNecesidadRequest - The mapperCapacitacionNecesidadRequest object to be saved.\n   * @returns An Observable that emits the response from the server.\n   */\n  guardarNecesidaCapacitacion(mapperCapacitacionNecesidadRequest:MapperCapacitacionNecesidadRequest, nuevo:boolean): Observable<any>{\n    let form = new FormData();\n    form.append('mapperCapacitacionNecesidadRequest', JSON.stringify(mapperCapacitacionNecesidadRequest));\n    form.append('nuevo', (nuevo) ? 'true' : 'false');\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/cargarFormularioControlador/guardarNecesidaCapacitacion`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}","import { Component, OnInit, Input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FiltroGeneralComponent } from 'general-library-union';\nimport { ToastService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ActividadFuenteTareaModel } from '../../../../talento/models/ActividadFuenteTareaModel';\nimport { CapacitacionEvaluacionModel } from '../../../../talento/models/CapacitacionEvaluacionModel';\nimport { CompensacionPipe } from '../../../../compensacion/pipes/compensacion.pipe';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, DatePipe, CommonModule, } from '@angular/common';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { InputHelperNecesidadComponent } from '../../../../../shared/componentes/input-helper-necesidad/input-helper-necesidad.component';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { BienestarPipe } from '../../../../bienestar/pipes/bienestar.pipe';\nimport { RegistroAutorizacionModel } from '../../../../talento/models/RegistroAutorizacionModel';\nimport { ButtonDirective } from 'primeng/button';\nimport { NecesidadCapacitacionFormularioService } from '../../../../capacitacion/services/necesidadCapacitacionFormulario.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n@Component({\n  selector: 'app-inscritos-necesidad',\n  templateUrl: './inscritos-necesidad.component.html',\n  styleUrls: ['./inscritos-necesidad.component.scss'],\n  standalone: true,\n  imports: [TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, CompensacionPipe,\n    FormsModule, NgIf, InputHelperNecesidadComponent, DatePipe, FiltroGeneralComponent, GeneralPipe,\n    CommonModule, ButtonDirective, FormsModule,ConfirmPopupModule\n  ]\n})\nexport class InscritosNecesidadComponent implements OnInit {\n\n  @Input() capacitacionSeleccionado: CapacitacionEvaluacionModel;\n\n  public listaComandos: Map<string, boolean>;\n  public empleado: EmpleadoModel;\n  public empleados: EmpleadoModel[];\n  public listaNoInscritoDTO: CapacitacionEvaluacionModel[] = [];\n  public listaInscritoDTO: CapacitacionEvaluacionModel[] = [];\n  public listaEmpleadosHabilitados: EmpleadoModel[] = [];\n  public listaEmpleadoNoInscrito: EmpleadoModel[] = [];\n  public listaNoInscrito: CapacitacionEvaluacionModel[] = [];\n  public verNovedadesHistoricas: boolean;\n  public verDetalle: boolean;\n  public verDetalleMasivo: boolean;\n  public descripcionDetalle: string;\n  public listadoActividades: ActividadFuenteTareaModel[] = [];\n  public listaIncritos: EmpleadoModel[] = [];\n  public opcionSeleccionada: string;\n  public BienestarPipe = new BienestarPipe()\n  public isNew: boolean;\n  public result: number;\n  public noInscrito: CapacitacionEvaluacionModel;\n  public capacitacionEvaluacionDTO: CapacitacionEvaluacionModel[];\n  public contador: number;\n  public registroAutorizacion: RegistroAutorizacionModel;\n  public ListaregistroAutorizacion: RegistroAutorizacionModel[] = [];\n  listaEnvioEmail: any[];\n  capacitacionSeleccionadoNoIncrito: any;\n  capacitacionSeleccionadoInscrito: any;\n  public paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n  \n  constructor(private generalService: GeneralService,\n    private confirmationService: ConfirmationService,\n    private generalPipe: GeneralPipe,\n    private necesidadCapacitacionFormularioService: NecesidadCapacitacionFormularioService,\n    private notificacionesBusService: ToastService,\n  ) { }\n\n  ngOnInit(): void {\n\n    this.listaEmpleadosHabilitados = [];\n    this.listaInscritoDTO = [];\n    this.listaNoInscrito = [];\n    this.listaNoInscritoDTO = [];\n    this.cargarInscritos();\n  }\n\n\n  async cargarInscritos() {\n\n    this.listaInscritoDTO = await this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'CapacitacionEvaluacionDTO',\n      seguridad: false,\n      objeto: {\n        depende: this.capacitacionSeleccionado.llaveTabla,\n        padreHijo: this.generalPipe.HIJO\n      },\n    }).toPromise();\n\n    this.listaEmpleadosHabilitados = await this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'EmpleadoDTO',\n      seguridad: false,\n      objeto: {\n        cargo: this.capacitacionSeleccionado.cargo,\n        empresa: this.capacitacionSeleccionado.empresa,\n        unidad: this.capacitacionSeleccionado.unidad,\n        soloActivos: this.generalPipe.SI\n      },\n    }).toPromise();\n\n    this.cargarNoInscritos(this.listaInscritoDTO, this.listaEmpleadosHabilitados);\n  }\n\n  cargarNoInscritos(listaEmpleadosInscritos: CapacitacionEvaluacionModel[], listaEmpleadosHabilitados: EmpleadoModel[]) {\n\n    this.listaEmpleadoNoInscrito = [];\n    this.listaNoInscrito = [];\n    let nuevoCapacitacionSeleccionado = new CapacitacionEvaluacionModel();\n\n    if (listaEmpleadosInscritos.length > 0) {\n\n      //Inicializa el contador fuera del primer bucle\n\n      for (let empleado of listaEmpleadosHabilitados) {\n\n        this.contador = 0;\n\n        for (let capacitacionSeleccionado of listaEmpleadosInscritos) {\n          if (empleado.cedula == capacitacionSeleccionado.cedula || capacitacionSeleccionado.cedula == empleado.cedula) {\n            this.contador++;\n          }\n        }\n\n        if (!(this.contador > 0)) {\n          this.listaEmpleadoNoInscrito.push(empleado);\n        }\n      }\n      for (let empleadoNoInscrito of this.listaEmpleadoNoInscrito) {\n        nuevoCapacitacionSeleccionado.cedula = empleadoNoInscrito.cedula;\n        nuevoCapacitacionSeleccionado.contrato = empleadoNoInscrito.contrato;\n        nuevoCapacitacionSeleccionado.empleadoNombre = this.getNombreCompleto(empleadoNoInscrito);\n        nuevoCapacitacionSeleccionado.unidad = empleadoNoInscrito.unidad;\n        nuevoCapacitacionSeleccionado.unidadNombre = empleadoNoInscrito.unidadNombreTitular;\n        nuevoCapacitacionSeleccionado.cargo = empleadoNoInscrito.cargo;\n        nuevoCapacitacionSeleccionado.cargoNombre = empleadoNoInscrito.cargoDescripcion;\n        nuevoCapacitacionSeleccionado.empresa = empleadoNoInscrito.empresa;\n        nuevoCapacitacionSeleccionado.empresaNombre = empleadoNoInscrito.nombreEmpresa;\n        this.listaNoInscrito.push({ ...nuevoCapacitacionSeleccionado });\n      }\n    } else {\n      for (let empleadoDTO of listaEmpleadosHabilitados) {\n        nuevoCapacitacionSeleccionado.cedula = empleadoDTO.cedula;\n        nuevoCapacitacionSeleccionado.contrato = empleadoDTO.contrato;\n        nuevoCapacitacionSeleccionado.empleadoNombre = empleadoDTO.nombreCompleto;\n        nuevoCapacitacionSeleccionado.unidad = empleadoDTO.unidad;\n        nuevoCapacitacionSeleccionado.unidadNombre = empleadoDTO.unidadNombreTitular;\n        nuevoCapacitacionSeleccionado.cargo = empleadoDTO.cargo;\n        nuevoCapacitacionSeleccionado.cargoNombre = empleadoDTO.cargoDescripcion;\n        nuevoCapacitacionSeleccionado.empresa = empleadoDTO.empresa;\n        nuevoCapacitacionSeleccionado.empresaNombre = empleadoDTO.nombreEmpresa;\n        this.listaNoInscrito.push(nuevoCapacitacionSeleccionado);\n      }\n    }\n    this.listaNoInscritoDTO = this.listaNoInscrito;\n  }\n\n  getNombreCompleto(empleado: EmpleadoModel) {\n    if (empleado.segundoApellido != null || empleado.segundoApellido != undefined) {\n      if (empleado.primerApellido != null || empleado.primerApellido != undefined) {\n        if (empleado.nombres != null || empleado.nombres != undefined) {\n          empleado.nombreCompleto = empleado.primerApellido + ' ' + empleado.segundoApellido + ' ' + empleado.nombres;\n        } else {\n          empleado.nombreCompleto = empleado.primerApellido + ' ' + empleado.segundoApellido + ' ';\n        }\n      } else {\n        empleado.nombreCompleto = ' ' + empleado.segundoApellido + ' ' + empleado.nombres;\n      }\n    } else {\n      if (empleado.primerApellido != null || empleado.primerApellido != undefined) {\n        if (empleado.nombres != null || empleado.nombres != undefined) {\n          empleado.nombreCompleto = empleado.primerApellido + ' ' + empleado.nombres;\n        } else {\n          empleado.nombreCompleto = empleado.primerApellido + ' ';\n        }\n      } else {\n        empleado.nombreCompleto = ' ';\n      }\n    }\n    return empleado.nombreCompleto\n  }\n  seleccionaRegistro(event: any) {\n    //seleccionaRegistro\n    let capacitacionEva: CapacitacionEvaluacionModel = event.data;\n    this.listaNoInscritoDTO = this.listaNoInscritoDTO.filter(data => data.cedula !== capacitacionEva.cedula);\n    this.listaInscritoDTO.push(event.data);\n  }\n\n  confirmarasociartodo(event: Event) {\n     \n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_CONFIRMAR,\n      header: 'Confirmar',\n      acceptLabel: 'Si',\n      key: 'asociar',\n\n      accept: () => {\n         \n        debugger\n        this.asociarTodo();\n      }\n    })\n  }\n\n  confirmardesasociartodo(event: Event) {\n     \n    this.confirmationService.confirm({\n\n      target: event.target,\n      message: Constantes.MENSAJE_CONFIRMAR,\n      header: 'Confirmar',\n      acceptLabel: 'Si',\n      key: 'desasociar',\n\n      accept: () => {\n         \n        debugger\n        this.desasociarTodo();\n         \n      }\n    })\n  }\n\n  asociarTodo() {\n    debugger\n     \n    this.listaInscritoDTO.push(...this.listaNoInscritoDTO);\n    this.listaNoInscritoDTO = [];\n  }\n\n  desasociarTodo() {\n    debugger\n     \n      this.listaNoInscritoDTO.push(...this.listaInscritoDTO);\n      this.listaInscritoDTO=[];\n    \n  }\n  \n  \n\n  quitarRegistro(event: any) {\n\n    let capacitacionEva: CapacitacionEvaluacionModel = event.data;\n    this.listaInscritoDTO = this.listaInscritoDTO.filter(data => data.cedula !== capacitacionEva.cedula);\n    this.listaNoInscritoDTO.push(event.data);\n  }\n\n  async aplicarInscripcion() {\n    await this.necesidadCapacitacionFormularioService.aplicarInscripcion(this.listaInscritoDTO, this.listaNoInscritoDTO, this.capacitacionSeleccionado).toPromise();\n    this.notificacionesBusService.showInfo(\"Empleados desasociados correctamente\");\n    this.cargarInscritos();\n  }\n}","\n<p-confirmPopup key=\"asociar\" [showTransitionOptions]=\"'10ms'\" [hideTransitionOptions]=\"'10ms'\"></p-confirmPopup>\n<p-confirmPopup key=\"desasociar\" [showTransitionOptions]=\"'10ms'\" [hideTransitionOptions]=\"'10ms'\"></p-confirmPopup>\n<p-confirmPopup  [showTransitionOptions]=\"'10ms'\" [hideTransitionOptions]=\"'10ms'\"></p-confirmPopup>\n<div class=\"Inputgroup-borde mt-0\">\n    <div class=\"p-fluid grid\" >\n        \n        <div class=\"field col-12 md:col-12 lg:col-12\" >\n            <div class=\"flex justify-content-between align-items-center mb-3\">\n                <h2>Inscritos</h2>\n\n                <button  pButton pRipple class=\"p-button-secondary\"\n                icon=\"glyphicons glyphicons-check\" (click)=\"aplicarInscripcion()\"\n                label=\"{{'link_aplicar' | translate}}\" >\n            </button>\n            </div>\n            <div class=\"flex\">\n                <div style=\"display: table; width: 70%\">        \n                    <p-table  class=\"mt-4 w-6\" [value]=\"listaNoInscritoDTO\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"true\" [scrollable]=\"true\" selectionMode=\"single\" scrollHeight=\"400px\"\n                        [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                        [totalRecords]=\"paginator.totalRecords\"\n                        [paginator]=\"paginator.totalRecords > paginator.rows\"\n                        currentPageReportTemplate=\"Total {totalRecords} registros\" [(selection)]=\"capacitacionSeleccionadoNoIncrito\"\n                        dataKey=\"unidad\" (onRowSelect)=\"seleccionaRegistro($event)\">\n                        <ng-template pTemplate=\"caption\"> <span class=\"color-600 font-semibold -ml-2 text-base\">{{'Empleados' | translate}} {{'no' | translate}} {{'Inscritos' | translate}}</span></ng-template>\n                        <ng-template pTemplate=\"header\">\n                            <tr>\n                                <th>{{'nombre'| translate}} {{'empleado'| translate}}</th>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-noInscritos>\n                            <tr [pSelectableRow]=\"noInscritos\">\n                                <td>{{noInscritos.empleadoNombre}}</td>\n                            </tr>\n                        </ng-template>\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                        \n                    </p-table>\n                  \n                </div>\n                <div class=\"p-picklist-buttons p-picklist-transfer-buttons\">\n                    <button pButton pRipple type=\"button\" icon=\"p-button-icon pi pi-angle-double-right\" (click)=\"confirmarasociartodo($event)\"\n                        class=\"p-element p-ripple p-button-rounded p-button mr-2 mb-2 ml-2 p-button p-component p-button-icon-only p-button-raised\">\n                    </button>\n        \n                    <button pButton pRipple type=\"button\" icon=\"p-button-icon pi pi-angle-double-left\" (click)=\"confirmardesasociartodo($event)\"\n                        class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 ml-2 p-button p-component p-button-icon-only\">\n                    </button>\n                </div>\n                <!-- BOton DESasociar todo -->\n        \n                <div style=\"display: table; width: 70%\">\n                    <p-table #tablaGeneral class=\"mt-4 w-6\" [value]=\"listaInscritoDTO\" responsiveLayout=\"scroll\" [rows]=\"10\"\n                        [paginator]=\"true\" [scrollable]=\"true\" selectionMode=\"single\" scrollHeight=\"400px\"\n                        [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                        currentPageReportTemplate=\"Total {totalRecords} registros\" [(selection)]=\"capacitacionSeleccionadoInscrito\"\n                        dataKey=\"descripcionTipo\" (onRowSelect)=\"quitarRegistro($event)\">\n                        <ng-template pTemplate=\"caption\"> <span class=\"color-600 font-semibold -ml-2 text-base\">{{'Empleados' | translate}} {{'Inscritos' | translate}}</span></ng-template>\n        \n                        <ng-template pTemplate=\"header\">\n                            <tr>\n                                <th>{{'identifica'| translate}}</th>\n                                <th>{{'descripcion'| translate}}</th>\n                                <th>{{'observacion'| translate}}</th>\n                                <th>{{'estado'| translate}}</th>\n                            </tr>\n                            <th>\n                        </ng-template>\n                        <ng-template pTemplate=\"body\" let-inscritos>\n                            <tr [pSelectableRow]=\"inscritos\">\n        \n                                <td>{{inscritos.cedula}}</td>\n                                <td>{{inscritos.empleadoNombre}}</td>\n                                <td>   \n                                    <input class=\"p-inputtext\" pInputText autofocus type=\"text\" id=\"descripcion\" required\n                                    [(ngModel)]=\"inscritos.descripcion\" >\n                                </td>\n                                <td>{{inscritos.estado | compensacionPipe:'listaEstados'}}</td>\n                            </tr>\n        \n                        </ng-template>\n                        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                    </p-table>\n                </div>\n               \n            </div>\n        </div> \n    </div>\n</div>\n","import { UnionModel } from 'general-library-union'\n\n\nexport class FormularioModel extends UnionModel{\n\n\t nombre: string;\n\t modulo: string;\n\t llaveSeccionDatoBasico: string;\n\t seleccion: string;\n\t tabla: string;\n\t tipo: string;\n\t modoParametro: string;\n\t textoAcepta: string;\n\t planilla: string;\n}\n","import { CapacitacionEvaluacionModel } from \"../../talento/models/CapacitacionEvaluacionModel\";\n\nexport class MapperCapacitacionNecesidadRequest {\n    formularioDinamico: CapacitacionEvaluacionModel;\n    formularioCapacitacion: CapacitacionEvaluacionModel;\n}\n","import { Component, EventEmitter, Input, OnInit, Output,ViewChild } from '@angular/core';\nimport { ActivatedRoute,} from '@angular/router';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, MenuItem } from 'primeng/api';\nimport {  CommonModule, NgIf } from '@angular/common';\nimport { CargoModel } from '../../../../talento/models/CargoModel';\nimport { UnidadOrganizacionalModel } from '../../../../talento/models/UnidadOrganizacionalModel';\nimport { CapacitacionEvaluacionModel } from '../../../../talento/models/CapacitacionEvaluacionModel';\nimport { TipoEventoModel } from '../../../../capacitacion/models/TipoEventoModel';\nimport { CompensacionPipe } from '../../../../compensacion/pipes/compensacion.pipe';\nimport { Ripple } from 'primeng/ripple';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperEmpleadosComponent } from '../../../../../shared/componentes/input-helper-empleados/input-helper-empleados.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { AnexoNecesidadComponent } from '../anexo-necesidad/anexo-necesidad.component';\nimport { ListadoActividadesComponent } from '../listado-actividades/listado-actividades.component';\nimport { MenubarModule } from 'primeng/menubar';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DescripcionCargoComponent } from '../../../../talento/pages/descripcion-cargo/descripcion-cargo/descripcion-cargo.component';\nimport { PerfilFuncionService } from '../../../../talento/services/perfil-funcion.service';\nimport { DatosBasicosEmpresaCons } from '../../../../../shared/pipes/datosBasicosEmpresaCons.pipe';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { PuestoTrabajoService } from '../../../../talento/services/puesto-trabajo.service';\nimport { InscritosNecesidadComponent } from '../inscritos/inscritos-necesidad.component';\nimport { NecesidadCapacitacionFormularioService } from '../../../../capacitacion/services/necesidadCapacitacionFormulario.service';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { FormularioModel } from '../../../../hojavida/models/FormularioModel';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { EmpresaModel } from '../../../../compensacion/models/EmpresaModel';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { InputHelperTemasComponent } from '../../../../../shared/componentes/input-helper-temas/input-helper-temas.component';\nimport { MapperCapacitacionNecesidadRequest } from '../../../models/MapperCapacitacionNecesidadRequest';\nimport { DatePipe } from '@angular/common';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { firstValueFrom } from 'rxjs';\nimport { HojaVidaService } from '../../../../hojavida/services/hojavida.service';\nimport { OrigenDatosPipe } from '../../../../../shared/pipes/origen-datos.pipe';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { EjecucionAutorizacionComponent } from '../../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { ActividadFuenteTareaModel } from '../../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\n\n@Component({\n    templateUrl: './detalle-necesidad-capacitacion.component.html',\n    styleUrls: ['./detalle-necesidad-capacitacion.component.scss'],\n    selector: 'app-detalle-necesidad-capacitacion',\n    standalone: true,\n    imports: [\n      ConfirmPopupModule, \n      ButtonDirective, \n      MenubarModule, \n      NgIf, \n      ListadoActividadesComponent, \n      AnexoNecesidadComponent, \n      FormsModule, \n      ReactiveFormsModule, \n      InputTextModule, \n      InputHelperEmpleadosComponent, \n      InputHelperUnidadComponent, \n      InputHelperHojaVidaComponent, \n      InputHelperTemasComponent,\n      Ripple, \n      TranslateModule,\n      DescripcionCargoComponent,\n      InscritosNecesidadComponent,\n      CheckboxModule,\n      DropdownModule,\n      FormulariodinamicoComponent,\n      EjecucionAutorizacionComponent,\n      EjecucionEncuestaComponent,\n      CommonModule],\n      providers: [\n        DatePipe  // Añade DatePipe aquí\n      ],\n})\nexport class DetalleNecesidadCapacitacionComponent implements OnInit {\n\n  @ViewChild('descripcionCargoBean') descripcionCargoBean : DescripcionCargoComponent;\n  @ViewChild('formularioDinamico') formularioDinamico : FormulariodinamicoComponent;\n  @Output() public regresar = new EventEmitter();\n  \n  public filtroProveedor: string;\n  public actividades:boolean;\n  public descripcionCargo:boolean;\n  public nominaHis:boolean;\n  public pensionados: boolean;\n  public items: MenuItem[];\n  public contrato;\n  public selectedPanel: string;\n  public formularioCapacitacion: FormGroup;\n  public capacitacionSeleccionado: CapacitacionEvaluacionModel = new CapacitacionEvaluacionModel();\n  public capacitacionEvaluacionSeleccionada: CapacitacionEvaluacionModel;\n  puestoTrabajo: PuestoTrabajoModel = new PuestoTrabajoModel();\n  public urlFoto: string = '';\n  public llaveTabla: string;\n  public opcionSeleccionada: string = '';\n  public listaTipoEvento:TipoEventoModel[] = [];\n  public re = [];\n  public listaTipoE = [];\n  public isNew: boolean;\n  public listadoEmpresas:UnidadOrganizacionalModel [] = [];\n  public listadoEmpresa=[];\n  public listadoCargo:CargoModel[] =[];\n  public listaCargo=[];\n  public nombreTipo:string;\n  vistaVisualizar: string;\n  public isCliente:string;\n  public informacionActiva: string;\n  public llaveOrganizacion: number;\n  public listaPuestoTrabajo: PuestoTrabajoModel[] = [];\n  public listaCamposFormularioDinamico:[] = [];\n  public result: Number;\n  public formularioDTO : FormularioModel = new FormularioModel();\n  visualizar: string;\n  campos: CampoFormularioModel[] = [];\n  listaCampos: CampoFormularioModel[] = [];\n  listaUnidad: UnidadOrganizacionalModel[] = [];\n  loading: boolean;\n  listaEstado: { codigo: string; nombre: string; }[];\n  verSolicitador: boolean;\n  origen: string;\n  documentoCliente: any;\n  isFormularioDinamico: boolean = false;\n  @Input() muestracampos: boolean;\n\n  //BPM\n  public encuesta: boolean;\n  public procesoAutorizacion: boolean;\n\t@ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n\t@ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  constructor(private activeRoute: ActivatedRoute,\n              private generalService: GeneralService,\n              private authService: AuthService,\n              private notificacionesService: ToastService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              private compensacionpipe: CompensacionPipe,\n              public utilsService: UtilsService,\n              private formBuilder: FormBuilder,\n              private menuService: MenuService,\n              public translateService: TranslateService,\n              private perfilFuncionService : PerfilFuncionService,\n              private datosBasicosEmpresaCons: DatosBasicosEmpresaCons,\n              private puestoTrabajoService: PuestoTrabajoService,\n              private utilService: UtilsService,\n              private necesidadCapacitacionFormularioService: NecesidadCapacitacionFormularioService,\n              private popupsDinamicosPipe: PopupsDinamicosPipe,\n              private datoOrganizacionPipe: DatoOrganizacionPipe,\n              private saraAplicacionService: SaraAplicacionService,\n              private empleadoSvc: EmpleadoService,\n              private confirmationService: ConfirmationService,\n              private generalPipe : GeneralPipe,\n              private datePipe: DatePipe,\n              private cargarMapas: cargarmapasGlobal,\n              private hojaVidaServices: HojaVidaService,\n              private origenDatosPipe: OrigenDatosPipe,\n              private workFlowPipe: WorkflowPipe,\n            ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.muestracampos ? this.muestracampos : true;\n    this.listaEstado = this.compensacionpipe.LISTA_ESTADOS;\n    this.documentoCliente = '';\n    this.capacitacionSeleccionado = new CapacitacionEvaluacionModel();\n    this.capacitacionEvaluacionSeleccionada = new CapacitacionEvaluacionModel();\n    this.listaUnidad = [];\n    this.listaCargo = [];\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('Listado Necesidad Capacitación') }, { label: this.translateService.instant('Necesidad Capacitación') }]);\n    this.ListaEmpresas();\n    this.ListaCargos();\n    this.llaveTabla = this.activeRoute.snapshot.paramMap.get('llaveTabla');\n    if (this.llaveTabla) {\n      this.isNew = false;\n      await this.cargar()\n      await this.cargarFormularioDinamico();\n      await this.cargarFormulario();      \n    } else {\n      await this.cargarFormulario();   \n      if (!this.llaveTabla) {\n        this.isNew = true;\n        this.inicializar();\n      }else{\n        this.capacitacionEvaluacionSeleccionada.llaveTabla = this.llaveTabla;\n        this.cargar();\n      }\n    }\n    this.cargarMenu();\n  }\n\n  public async cargar(): Promise<void> {\n\t\ttry {\n\t\t\t// CapacitacionEvaluacionDTO \n      let capacitacionEv = new CapacitacionEvaluacionModel();\n\t\t\tcapacitacionEv.llaveTabla = this.formularioCapacitacion.get('llaveTabla').value;\n\t\t\tthis.capacitacionSeleccionado =  await this.generalService.queryForObject(new GeneralModel('CapacitacionEvaluacionDTO',null,false,capacitacionEv)).toPromise();\n\t\t\t\n\t\t\tif(this.capacitacionSeleccionado.llaveTabla!=null){\n\t\t\t\tthis.isNew = false;\n\t\t\t\tthis.mostrarSolicitador(this.isNew);\n\t\t\t}else{\n\t\t\t\tthis.isNew = true;\n\t\t\t\tthis.mostrarSolicitador(this.isNew);\n\t\t\t}\n\t\t\tif(this.capacitacionSeleccionado.formulario == null || this.utilService.isBlank(this.capacitacionSeleccionado.formulario)){\n\t\t\t\tthis.notificacionesService.showInfo(\"Formulario no relacionado\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.formularioDTO.llaveTabla = (this.capacitacionSeleccionado.formulario);\n\t\t\tthis.formularioDTO = await this.generalService.queryForObject(new GeneralModel('FormularioDTO',null,false,this.formularioDTO)).toPromise();\t\t\t\t\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n  async mostrarSolicitador( nuevo: boolean) {\n\n\t\t//Rol Funcional\n\t\tif(!this.isClientePortal()) {\n\t\t\tif(nuevo) {\n\t\t\t\tthis.verSolicitador = true;\n\t\t\t} else {\n\t\t\t\tthis.verSolicitador = false;\n\t\t\t}\n\t\t}\n    \n\t\tif(await this.isClientePortal()) {\n\n\t\t\tthis.verSolicitador = false;\n\t\t\t\n\t\t\tthis.documentoCliente = await this.saraAplicacionService.getCedula();\n\t\t\t\n\t\t\tlet hojaVidaLogin = new HojaVidaModel();\n\t\t\thojaVidaLogin.identifica = this.documentoCliente;\n\t\t\t\n      let objHoja = new GeneralModel('HojaVidaDTO', null, false, hojaVidaLogin);\n\t\t\thojaVidaLogin = await firstValueFrom(this.generalService.queryForObject(objHoja));\n\t\t\t\n\t\t\tthis.capacitacionSeleccionado.nombreSolicitaNecesidad = this.hojaVidaServices.getNombreCompleto(hojaVidaLogin);\n\t\t}\n\t}\n\n  async cargarFormularioDinamico(){\n    \n    await this.necesidadCapacitacionFormularioService.cargarListaCampos(\n      this.clientePortal(), (await this.saraAplicacionService.getEmpresa()).organizacion, this.authService.getTokenKey('informacionActiva'),this.capacitacionSeleccionado, this.formularioDTO\n    ).subscribe((data) =>{\n      console.log('--',data);\n    });\n    this.capacitacionSeleccionado.adicionadoFecha = new Date(this.capacitacionSeleccionado.adicionadoFecha);\n    this.capacitacionSeleccionado.fechaModificado = new Date(this.capacitacionSeleccionado.fechaModificado);\n    let data = await this.necesidadCapacitacionFormularioService.cargarFormulario(this.capacitacionSeleccionado, parseInt(this.authService.getTokenKey('numeroEmpresa'))).toPromise()\n\n    this.campos = data['formulario']['grupos'][0]['campos'];\n    this.listaCampos = data['listaCampos'];\n    \n    await this.setValorCampos();\n    \n    //Permite inicializar el formulario\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(600);\n\n    this.isFormularioDinamico = true;\n\n    // this.formularioDinamico.modificar(this.capacitacionSeleccionado,true);\n    \n  }\n\n  async setValorCampos() {\n\n    this.campos?.forEach(element => {\n      if (typeof element.valor === \"string\") {\n        element.valor = element.valor\n      }\n      if (element.tipo === 'F') {\n        element.valor = element.valor ? new Date(element.valor) : null;\n      } else if (element.tipo === 'H') {\n        if (element.valor) {\n          let listaValortemp = [];\n          let valorRecorrer = element.valor.split(';');\n          valorRecorrer.forEach(element2 => {\n            listaValortemp.push({ label: element2, value: element2 });\n          });\n          element.valor = listaValortemp\n        }\n      } else if (element.tipo === 'P') {\n\n        let etiquetaPopup = null;\n        let isVisible = false;\n        this.popupsDinamicosPipe.LISTA_POPUPS.forEach(async pop => {\n          if (element.popup == pop.id) {\n            const elementosEncontrados = this.campos.filter(item => item.popup == element.popup);\n            //Se realiza la busqueda del elemento popup, cuando existe el mismo input-helper en el formulario con diferente campo, para que se puedan visualizar.\n            if (elementosEncontrados.length > 1) {\n              element.popup = element.popup + '_' + element.descripcion;\n            }\n\n            element.popupComponent = pop.popup;\n            element['cargarValorPopup'] = (event) => { element.valor = event };\n\n            const componente = new element.popupComponent();\n\n            //Este condición permite capturar la descripción del input-helper, según el componente inicializado.\n            if (element.valor && 'getDescripcionLlave' in componente) {\n              etiquetaPopup = await componente.getDescripcionLlave(this.generalService, null, element.valor, element);\n            }\n\n            element.propiedadesPopupComponent = {\n              readonly: isVisible,\n              showDialog: false,\n              label: element.valor ? etiquetaPopup : '',\n              labelInput: '',\n              onChange: (event) => element.cargarValorPopup(event)\n            }\n            element.listaPopups = [];\n            element.listaPopups.push(element.popup);\n          }\n        });\n      }\n    });\n  }\n\n  inicializar() {\n    this.selectedPanel = 'defecto'\n   /*  this.formularioCapacitacion.patchValue(this.consultarCapacitacion);  */\n  }\n\n  private async cambiarTipo(tipo: string) : Promise<void> {\n\t\tthis.capacitacionSeleccionado.tipoCapacitacion = (tipo);\n\t\tthis.capacitacionSeleccionado.empresa = (null);\n\t\tthis.capacitacionSeleccionado.empresaNombre = (null);\n\t\tthis.capacitacionSeleccionado.cargo = (null);\n\t\tthis.capacitacionSeleccionado.cargoNombre = (null);\n\t\tthis.capacitacionSeleccionado.unidad = (null);\n\t\tthis.capacitacionSeleccionado.unidadNombre = (null);\n\t\tif (!this.isIndividual()) {\n\t\t\tthis.capacitacionSeleccionado.empleadoNombre = (null);\n\t\t\tthis.capacitacionSeleccionado.cedula = (null);\n\t\t\tif (await this.isClientePortal()) {\n\t\t\t\tthis.listaUnidad = await this.puestoTrabajoService.traerListaPuestoLider(await this.saraAplicacionService.getCedula()).toPromise();\n\t\t\t\tif ( this.listaUnidad.length == 0) {\n\t\t\t\t\tthis.notificacionesService.showInfo(\"No es posible crear una necesidad grupal, solamente responsables de la unidad\");\n\t\t\t\t\t//this.regresarNecesidades();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.capacitacionSeleccionado.empresa = (this.listaUnidad[0].empresa);\n\t\t\t\tthis.capacitacionSeleccionado.unidad = (this.listaUnidad[0].unidad);\n\t\t\t\tthis.capacitacionSeleccionado.unidadNombre = (this.listaUnidad[0].nombreUnidad);\n\t\t\t\tawait this.setUnidad(this.listaUnidad[0]);\n\t\t\t\tlet listaEmpresa = [];\n\t\t\t\tfor (let unaUnidad of this.listaUnidad) {\n\t\t\t\t\tlistaEmpresa.push({codigo: unaUnidad.empresa, nombre: unaUnidad.nombreEmpresa});\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t} else {\n\t\t\tif (await this.isClientePortal()) {\n\t\t\t\t// HojaVidaDTO \n        let hojaVidaDTO = new HojaVidaModel();\n\t\t\t\thojaVidaDTO.empresa =  parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\thojaVidaDTO.identifica =  await (this.saraAplicacionService.getCedula());\n\t\t\t\tawait this.setPersona(hojaVidaDTO);\n\t\t\t}\n\t\t}\n\t\t// cargarMapa();\n\t}\n\n\n  public async setUnidad(unidad: UnidadOrganizacionalModel): Promise<void> {\n\t\ttry {\n\t\t\tthis.capacitacionSeleccionado.unidad = (unidad.unidad);\n\t\t\tthis.capacitacionSeleccionado.unidadNombre = (unidad.nombreUnidad);\n\t\t\tthis.listaCargo = [];\n\t\t\t// CargoDTO \n      let dto = new CargoModel();\n\t\t\tdto.empresa = (this.capacitacionSeleccionado.empresa);\n\t\t\tdto.unidad = (unidad.unidad);\n      this.listaCargo = await this.cargarMapas.cargarSelectItemString('cargo', 'descripcion', new GeneralModel('CargoDTO', 'Cargo.consultaCargoRelacionadosConUnidad', false, dto));\n\t\t} catch (e) {\n\t\t  console.log(e);\n    }\n\t}\n\n  public async setPersona(hojaVidaDTO: HojaVidaModel): Promise<void> {\n    \n\t\ttry {\n\t\t\t// EmpleadoDTO \n      let empleadoDTO: EmpleadoModel = await this.empleadoSvc.obtenerPorCedulaActivo({empresa: hojaVidaDTO.empresa, cedula: hojaVidaDTO.identifica}).toPromise();\n\t\t\tif (empleadoDTO != null) {\n\t\t\t\tthis.capacitacionSeleccionado.cedula = (empleadoDTO.cedula);\n\t\t\t\tthis.capacitacionSeleccionado.contrato = (empleadoDTO.contrato);\n\t\t\t\tthis.capacitacionSeleccionado.empleadoNombre = (empleadoDTO.nombreCompleto);\n\t\t\t\tif(empleadoDTO.cargoFuncion != null && empleadoDTO.cargoFuncion.trim() !=(\".\"))\n\t\t\t\t{\n\t\t\t\t\tthis.capacitacionSeleccionado.unidad = (empleadoDTO.unidadFuncion);\n\t\t\t\t\tthis.capacitacionSeleccionado.unidadNombre = (empleadoDTO.unidadNombreEncargo);\n\t\t\t\t\tthis.capacitacionSeleccionado.cargo = (empleadoDTO.cargoFuncion);\n\t\t\t\t\tthis.capacitacionSeleccionado.cargoNombre =(empleadoDTO.cargoNombreEncargo);\n\t\t\t\t\t\n\t\t\t\t}else\n\t\t\t\t{\n\t\t\t\t\tthis.capacitacionSeleccionado.unidad = (empleadoDTO.unidad);\n\t\t\t\t\tthis.capacitacionSeleccionado.unidadNombre = (empleadoDTO.unidadNombreTitular);\n\t\t\t\t\tthis.capacitacionSeleccionado.cargo = (empleadoDTO.cargo);\n\t\t\t\t\tthis.capacitacionSeleccionado.cargoNombre = (empleadoDTO.cargoDescripcion);\n\t\t\t\t}\n\t\n\t\t\t\t\n\t\t\t\tthis.capacitacionSeleccionado.empresa = (empleadoDTO.empresa);\n\t\t\t\tif (this.capacitacionSeleccionado.empresa != null) {\n\t\t\t\t\t// EmpresaDTO \n          let empresaDTO = new EmpresaModel();\n\t\t\t\t\tempresaDTO.empresa = this.capacitacionSeleccionado.empresa;\n\t\t\t\t\tempresaDTO = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO',null,false,empresaDTO)).toPromise();\n\t\t\t\t\tthis.capacitacionSeleccionado.empresaNombre = (empresaDTO.nombre);\n          this.formularioCapacitacion.patchValue(this.capacitacionSeleccionado);\n          this.formularioCapacitacion.get('empresa').setValue(empleadoDTO.empresa);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.capacitacionSeleccionado.cedula = (hojaVidaDTO.identifica);\n\t\t\t\tthis.capacitacionSeleccionado.empresa = (hojaVidaDTO.empresa != null ? hojaVidaDTO.empresa : parseInt(this.authService.getTokenKey('numeroEmpresa')));\n\t\t\t\tthis.capacitacionSeleccionado.empresaNombre = (hojaVidaDTO.nombreempresa);\n\n\t\t\t\tthis.capacitacionSeleccionado.unidad = (hojaVidaDTO.unidad);\n\t\t\t\tthis.capacitacionSeleccionado.unidadNombre = (hojaVidaDTO.nombreUnidad);\n\t\t\t\tthis.capacitacionSeleccionado.empleadoNombre = (hojaVidaDTO.nombreCompleto);\n\t\t\t\tthis.capacitacionSeleccionado.cargo = (hojaVidaDTO.cargo);\n\t\t\t\tthis.capacitacionSeleccionado.cargoNombre = (hojaVidaDTO.nombreCargo);\n\n        this.formularioCapacitacion.patchValue(this.capacitacionSeleccionado);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n  async cargarFormulario() {\n    this.loading = true;\n    this.formularioCapacitacion = this.formBuilder.group({\n      llaveTabla: new FormControl(this.llaveTabla ? this.llaveTabla : this.utilsService.generarLlave()),\n      fechaSolicitud: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.fechaSolicitud : null),\n      estado: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.estado : null),\n      estadoNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.estadoNombre : null),\n      formulario: new FormControl(this.capacitacionSeleccionado.formulario),\n      descripcionFormulario: new FormControl(this.capacitacionSeleccionado.descripcionFormulario ),\n      cedula:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.cedula : null),\n      empleadoNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.empleadoNombre : null),\n      empresa: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.empresa : null),\n      empresaNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.empresaNombre : null),\n      unidadNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.unidadNombre : null),\n      cargo: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.unidadNombre : null),\n      cargoNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.cargo : null),\n      nombreSolicitaNecesidad: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.nombreSolicitaNecesidad : null),\n      referencia1: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.referencia1 : null),\n      curso:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.curso : null),\n      cursoNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.cursoNombre : null),\n      justificacion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.justificacion : null),\n      modalidad: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.modalidad : null),\n      unidad: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.unidad : null),\n      ubicacionGeografica: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.ubicacionGeografica : null), \n      ubicacionGeograficaNombre:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.ubicacionGeograficaNombre : null),\n      ///new\n      adicionadoTexto: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.adicionadoTexto : null),\n      modificado: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.modificado : null),\n      adicionadoFecha:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.adicionadoFecha : null),\n      organizacion:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.organizacion : null),\n      prioridad:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.prioridad : null),\n      contrato:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.contrato : null),\n      paisUbicacion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.paisUbicacion : null),\n      zonaEconomica: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.zonaEconomica : null),\n      centroCosto:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.centroCosto : null),\n      tipoNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.tipoNombre : null),\n      tipoCapacitacion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.tipoCapacitacion : null),\n      sucursal: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.sucursal : null),\n      llaveFaseEvaluacion:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.llaveFaseEvaluacion : null),\n      referencia2: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.referencia2 : null),\n      codigoTema: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.codigoTema : null),\n      codigoTemaNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.codigoTemaNombre : null),\n      cedulaResponde: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.cedulaResponde : null),\n      area: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.area : null),\n      procesoGestion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.procesoGestion : null),\n      resultado: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.resultado : null),\n      tema: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.tema : null),\n      escuelaFormacion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.escuelaFormacion : null),\n      nombreEscuelaFormacion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.nombreEscuelaFormacion : null),\n      fuenteNecesidad: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.fuenteNecesidad : null),\n      periodoGestion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.periodoGestion : null),\n      categoria: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.categoria : null),\n      dirigido: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.dirigido : null),\n      otraEntidad: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.otraEntidad : null),\n      nivelAcademico: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.nivelAcademico : null),\n      descripcionNivelAcademico:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.descripcionNivelAcademico : null),\n      lugar:new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.lugar : null),\n      dimension: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.dimension : null),\n      factor: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.factor : null),\n      intensidad: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.intensidad : null),\n      unidadDuracion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.unidadDuracion : null),\n      precio: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.precio : null),\n      propuesta: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.propuesta : null),\n      numeroAutorizacion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.numeroAutorizacion : null),\n      origen: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.origen : null),\n      origenNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.origenNombre : null),\n      origenEvento: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.origenEvento : null),\n      origenEventoNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.origenEventoNombre : null),\n      tipoEvento:  new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.tipoEvento : null),\n      tipoEventoNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.tipoEventoNombre : null),\n      autorizado: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.autorizado : null),\n      noAutorizado: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.noAutorizado : null),\n      autoriza: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.autoriza : null),\n      autorizaDiferente: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.autorizaDiferente : null),\n      nivel: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.nivel : null),\n      motivoNoAutorizar: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.motivoNoAutorizar : null),\n      nombreAutoriza: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.nombreAutoriza : null),\n      beneficiario: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.beneficiario : null),\n      beneficiarioNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.beneficiarioNombre : null),\n      titulo:  new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.titulo : null),\n      fechaInicial: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.fechaInicial : null),\n      fechaFinal: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.fechaFinal : null),\n      mensaje: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.mensaje : null),\n      depende: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.depende : null),\n      padreHijo: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.padreHijo : null),\n      carrera: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.carrera : null),\n      institucional: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.institucional : null),\n      baseProceso: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.baseProceso : null),\n      entidad: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.entidad : null),\n      responsable: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.responsable : null),\n      responsableCedulaNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.responsableCedulaNombre : null),\n      sucursalNombre: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.sucursalNombre : null),\n      noRetirado: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.noRetirado : null),\n      solicita: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.solicita : null),\n      fuenteNecesidadDescripcion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.fuenteNecesidadDescripcion : null),\n      rol: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.rol : null),\n      login: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.login : null),\n      descripcion: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.descripcion : null),\n      solicitud: new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.solicitud : null),\n      terminosCondiciones:  new FormControl(this.capacitacionSeleccionado ? this.capacitacionSeleccionado.terminosCondiciones : null),\n      fechaAdicionado: new FormControl(this.capacitacionSeleccionado ? (this.capacitacionSeleccionado.fechaAdicionado ? new Date(this.capacitacionSeleccionado.fechaAdicionado) : null) : null),\n      fechaModificado: new FormControl(this.capacitacionSeleccionado ? (this.capacitacionSeleccionado.fechaModificado ? new Date(this.capacitacionSeleccionado.fechaModificado) : null) : null),\n    });\n    this.loading = true;  \n  }\n\n  async nuevoDatoProgramacion(origen: string, formularioDTO: any, nuevo) {\n\n    this.origen = origen;    \n    if(nuevo == true){\n\n      this.capacitacionSeleccionado.estado = ('S');\n      this.capacitacionSeleccionado.fechaSolicitud = (new Date());\n      this.capacitacionSeleccionado.formulario = (formularioDTO.llaveTabla);\n      this.capacitacionSeleccionado.descripcionFormulario = (formularioDTO.nombre);\n\n      this.mostrarSolicitador(nuevo);\n\n      this.formularioDTO = formularioDTO;\n      await this.cargarFormularioDinamico();\n      await this.cambiarTipo(formularioDTO.tipo);\n      //await this.cargarFormulario();\n      await this.cargarMenu();\n\n      if(this.isClientePortal()){\n        this.capacitacionSeleccionado.cedulaResponde = await this.saraAplicacionService.getCedula();\n        this.formularioCapacitacion.patchValue(this.capacitacionSeleccionado);\n      }\n\n      this.isNew = true;\n    }\n    else{      \n\n      this.capacitacionSeleccionado = formularioDTO;\n      await this.cargarFormulario();\n      this.formularioCapacitacion.patchValue(formularioDTO);\n      await this.cargar();\n      await this.cargarFormularioDinamico();\n      await this.cargarMenu();\n      this.isNew = false;\n      //await this.consultarCapacitacion();\n    }\n    \n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  ListaTipoEvento() {\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'TipoEventoDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data: Array<any>) => { // Ensure 'data' is of type Array<any>\n      this.listaTipoEvento = data;\n      this.listaTipoEvento.forEach((item: any) => { // Ensure 'item' is of type any\n        mapaRetorna.set(item.llave, item.descripcion); // Ensure you're working with primitive types\n      });\n      this.listaTipoE = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    });\n  }\n\n\n  private cargarMenu() {\n    this.items = [\n   \n      {\n        label: this.translateService.instant('Necesidad Capacitación'),\n        icon: 'glyphicons glyphicons-sunbath',\n        command: (event) => {\n          this.opcionSeleccionada = event.item.label;\n          this.verDatosBasicos()\n        },\n        visible: true\n       \n      },\n      {\n        label: this.translateService.instant('Actividades'),\n        icon: 'glyphicons glyphicons-user',\n        command: (event) => {\n          this.opcionSeleccionada = event.item.label;\n          this.verActividades();\n        },\n        visible: this.isNew == false && !this.isClientePortal(),\n      },\n      {\n        label: this.translateService.instant('Descripción del Cargo'),\n        icon: 'glyphicons glyphicons-note',\n        command: (event) => {\n          this.opcionSeleccionada = event.item.label;\n          \n          this.verDescripciondelCargo();\n        },\n        visible:  (this.capacitacionSeleccionado.tipoCapacitacion == 'I' && this.isNew == false)\n        \n      },   \n      {\n        label: this.translateService.instant('Anexos'),\n        icon: 'glyphicons glyphicons-folder-open',\n        command: (event) => {\n          this.opcionSeleccionada = event.item.label;\n          this.verAnexos();\n        },\n        visible: this.isNew == false\n      }, \n      {\n        label: this.translateService.instant('inscritos'),\n        icon: 'glyphicons glyphicons-parents',\n        command: (event) => {\n          this.opcionSeleccionada = event.item.label;\n          this.verInscritos();\n        },\n        visible: (this.capacitacionSeleccionado.tipoCapacitacion == 'P' && this.isNew == false)\n      }, \n    ]    \n  }\n\n  async verDatosBasicos(){\n    \n    this.selectedPanel = 'defecto';\n  }\n\n  verActividades(){\n    this.selectedPanel = 'actividades'\n    this.formularioCapacitacion.get('llaveTabla').value\n    this.actividades = true;\n  }\n\n  async verDescripciondelCargo(): Promise<void>{\n    this.selectedPanel = 'descripcionCargo'\n    await this.utilsService.sleep(20);\n    this.formularioCapacitacion.get('cedula').value\n    await this.cargarDescripcionCargo();\n    this.descripcionCargo = true;\n  }\n\n  verAnexos(){\n    this.selectedPanel = 'anexo';\n    this.formularioCapacitacion.get('llaveTabla').value\n    this.nominaHis = true;\n  }\n\n  verInscritos(){\n    this.selectedPanel = 'inscritos';\n    this.formularioCapacitacion.get('llaveTabla').value\n    this.nominaHis = true;\n  }\n  \n  regresarNecesidades(){\n    this.regresar.emit();\n  }\n\n  public verificarControl(control){\n    return this.controlFuncionService.getControlFuncionalidad(control);\n  }\n\n  ListaEmpresas() {\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'UnidadOrganizacionalDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data: Array<any>) => { // Ensure 'data' is of type Array<any>\n      this.listadoEmpresas = data;\n      this.listadoEmpresas.forEach((item: any) => { // Ensure 'item' is of type any\n        mapaRetorna.set(item.empresa, item.nombreEmpresa); // Ensure you're working with primitive types\n      });\n      this.listadoEmpresa = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    });\n  }\n\n  ListaCargos() {\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'CargoDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data: Array<any>) => { // Ensure 'data' is of type Array<any>\n      this.listadoCargo = data;\n      this.listadoCargo.forEach((item: any) => { // Ensure 'item' is of type any\n        mapaRetorna.set(item.cargo, item.descripcion); // Ensure you're working with primitive types\n      });\n      this.listaCargo = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    });\n  }\n\n  public async cargarDescripcionCargo() {\n\t\ttry {\n      let configuracion: string;\n\t\t\tlet data =await this.perfilFuncionService.buscarPerfilDatoEmpresa(this.capacitacionSeleccionado.empresa).toPromise();\n       configuracion = data['repuesta']; \n\t\t\tif (configuracion == null || (this.datosBasicosEmpresaCons.UNIDADCARGO != (configuracion) && this.datosBasicosEmpresaCons.PUESTOTRABAJO != (configuracion)\n        && this.datosBasicosEmpresaCons.CLASIFICACION != (configuracion) && this.datosBasicosEmpresaCons.PUESTOTRABAJOMULTIPLE != (configuracion))) {\n      this.notificacionesService.showInfo(\"La configuracion del perfil para la empresa, no esta definida\");\n      return;\n    }\n\t\t\tif ( this.capacitacionSeleccionado.contrato== null || this.capacitacionSeleccionado.contrato == 0) {\n\t\t\t\tthis.notificacionesService.showInfo(\"La persona no tiene puestos de trabajo\");\n\t\t\t\treturn;\n\t\t\t}\n      let puesto = new PuestoTrabajoModel();\n\t\t\tthis.listaPuestoTrabajo = await this.puestoTrabajoService.traerListaPuestoContrato({contrato: this.capacitacionSeleccionado.contrato, empresa: parseInt(this.authService.getTokenKey('numeroEmpresa'))}).toPromise();\n\t\t\tif (this.listaPuestoTrabajo.length == 0) {\n\t\t\t\tthis.notificacionesService.showInfo(\"La persona no tiene puestos de trabajo\");\n\t\t\t\treturn;\n\n\t\t\t} else {\n\t\t\t\tpuesto = this.listaPuestoTrabajo[0];\n\t\t\t}\n\t\t\tif (puesto == null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.vistaVisualizar = ('descripcionCargo');\n      await this.utilService.sleep(100);\n\t\t\tthis.descripcionCargoBean.cargarPerfil(puesto.empresa,\tpuesto.unidad, puesto.cargo,\tpuesto.llave, \"#{requerimientoPMBean.regresaDescripcion}\",\t'defecto', true);\n\t\t\tthis.descripcionCargoBean.setProcesoAutorizacion(true);\n    } catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n  regresarNecesidad(event){\n    this.selectedPanel = event;\n  }\n\n\n  actualizarRegistro() {\n    if (this.formularioCapacitacion.valid && this.formularioDinamico.validar()) {\n      const datosFormularioDinamico = this.formularioDinamico.getObjecto();\n      const formularioGuardarCapacitacion = this.formularioCapacitacion.value;\n      let guardarCapacitacion = new MapperCapacitacionNecesidadRequest();\n      guardarCapacitacion.formularioCapacitacion = formularioGuardarCapacitacion;\n      guardarCapacitacion.formularioDinamico = datosFormularioDinamico;\n      this.necesidadCapacitacionFormularioService.guardarNecesidaCapacitacion(guardarCapacitacion,false).subscribe(data => {\n        this.result = data;\n        if (this.result != null) {\n          this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n          this.regresarNecesidades();\n        } else {\n          this.notificacionesService.showError('Error en el método de agregar');\n          this.regresarNecesidades();\n        }\n      }, err => {\n        this.notificacionesService.showError('Error al ingresar en el servicio');\n      });\n    } else {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n    }\n  }\n\n  onCargoChange(event) {\n    // Actualiza el valor del formulario explícitamente si es necesario\n    const cargoValue = event.value;\n    this.formularioCapacitacion.get('cargo').setValue(cargoValue);\n  }\n  \n  async guardarNecesidad() {\n\n    if (this.formularioCapacitacion.valid) {\n      \n      var validarFormulario: boolean = this.formularioDinamico ? this.formularioDinamico.validar() : true;\n\n      if (!validarFormulario) {\n        this.notificacionesService.showError('Faltan campos obligatorios');\n        return null;\n      }\n\n      if (this.clientePortal()){\n\n        let cedula = await (this.saraAplicacionService.getCedula());\n        this.formularioCapacitacion.get('cedulaResponde').setValue(cedula);\n        this.formularioCapacitacion.get('solicita').setValue(cedula);\n      }\n\n      this.formularioCapacitacion.get('estado').setValue(this.origenDatosPipe.SOLICITADO);\n      this.formularioCapacitacion.get('padreHijo').setValue(this.generalPipe.PADRE);\n      this.formularioCapacitacion.get('adicionadoTexto').setValue(this.authService.getTokenKey('usuario'));\n      this.formularioCapacitacion.get('adicionadoFecha').setValue(new Date());\n      this.formularioCapacitacion.get('modificado').setValue(this.authService.getTokenKey('usuario'));\n      this.formularioCapacitacion.get('fechaModificado').setValue(new Date());\n      this.formularioCapacitacion.get('origen').setValue(this.generalPipe.PUNTO);\n      this.formularioCapacitacion.get('organizacion').setValue((await this.saraAplicacionService.getEmpresa()).organizacion);\n      \n      const datosFormularioDinamico = this.formularioDinamico.getObjecto();\n      const formularioGuardarCapacitacion = this.formularioCapacitacion.value;\n      let guardarCapacitacion = new MapperCapacitacionNecesidadRequest();\n      guardarCapacitacion.formularioCapacitacion = formularioGuardarCapacitacion;\n      guardarCapacitacion.formularioDinamico = datosFormularioDinamico;\n      this.necesidadCapacitacionFormularioService.guardarNecesidaCapacitacion(guardarCapacitacion,true).subscribe(data => {\n        this.result = data;\n        if (this.result != null) {\n          this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n          this.regresarNecesidades();\n        } else {\n          this.notificacionesService.showError('Error en el método de agregar');\n          this.regresarNecesidades();\n        }\n      }, err => {\n        this.notificacionesService.showError('Error al ingresar en el servicio');\n      });\n    } else {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n    }\n  }\n  \n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  eliminarRegistro() {\n    let objetoElimina: GeneralModel = new GeneralModel('CapacitacionEvaluacionDTO', null, false, this.formularioCapacitacion.value);\n    let result: number;\n    this.generalService.delete(objetoElimina).subscribe({\n      next: (data) => {\n        result = data;\n        if (result == 1) {\n          this.notificacionesService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n          this.regresarNecesidades();\n        } else {\n          this.notificacionesService.showError('Error en el método de eliminar recurso');\n        }\n      },\n      error: (err) => {\n        this.notificacionesService.showError('No es posible eliminar el registro, verifique que el registro no esta asociado en otros procesos');\n      },\n    });\n  };\n\n  //BOOLEANOS\n  public isIndividual(): boolean {   \n\t\treturn this.capacitacionSeleccionado.tipoCapacitacion != null\n\t\t\t\t&& this.datoOrganizacionPipe.INDIVIDUAL == (this.capacitacionSeleccionado.tipoCapacitacion);\n\t}\n  async autorizarRegistro(){\n    await this.necesidadCapacitacionFormularioService.autorizarNecesidadCapacitacion(this.capacitacionSeleccionado).toPromise();\n    this.notificacionesService.showInfo('Se  Autorizó exitosamente el registro');\n    this.regresarNecesidades();\n  }\n\n  async noautorizarRegistro(){\n    await this.necesidadCapacitacionFormularioService.noAutorizarNecesidadCapacitacion(this.capacitacionSeleccionado).toPromise();\n    this.notificacionesService.showInfo('Se rechazo el registro');\n    this.regresarNecesidades();\n  }\n\n\n  async ejecutarRegistro(){\n    await this.necesidadCapacitacionFormularioService.ejecutarNecesidadCapacitacion(this.capacitacionSeleccionado).toPromise();\n    this.notificacionesService.showInfo('Se  Ejecuto exitosamente el registro');\n    this.regresarNecesidades();\n  }\n\n  async noEjecutarRegistro(){\n    await this.necesidadCapacitacionFormularioService.noEjecutarNecesidadCapacitacion(this.capacitacionSeleccionado).toPromise();\n    this.notificacionesService.showInfo('El registro ha sido cancelado');\n    this.regresarNecesidades();\n  }\n\n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    var capacitacion = new CapacitacionEvaluacionModel();\n    capacitacion.llaveTabla = actividad.llaveTablaBase;\n    capacitacion = await this.generalService.queryForObject(new GeneralModel('CapacitacionEvaluacionDTO', null, false, capacitacion)).toPromise();\n    this.encuesta = true;\n    this.procesoAutorizacion = false;\n    await this.utilService.sleep(300);\n    await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, capacitacion);\n    await this.nuevoDatoProgramacion('C', capacitacion, false);\n    //this.modificar(this.origen, null, capacitacion);\n\t}\n\n\t\n\tpublic async verAutorizacion(llaveActividad: string) {\n    var actividad = new ActividadFuenteTareaModel();\n    actividad.llaveTabla = llaveActividad;\n    actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n    var capacitacion = new CapacitacionEvaluacionModel();\n    capacitacion.llaveTabla = actividad.llaveTablaBase;\n    capacitacion = await this.generalService.queryForObject(new GeneralModel('CapacitacionEvaluacionDTO', null, false, capacitacion)).toPromise();\n    this.encuesta = false;\n    this.procesoAutorizacion = true;\n\t\tawait this.utilService.sleep(300);\n    await this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOCAPACITACION, capacitacion);\n    await this.nuevoDatoProgramacion('C', capacitacion, false);\n\t}\n\n  async isClientePortal(): Promise<boolean> {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  clientePortal(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  isFuncional(): boolean {\n    return !this.clientePortal();\n  }\n\n  isAutorizar(): boolean {\n    return this.formularioCapacitacion.get('estado').value != null && this.origenDatosPipe.SOLICITADO == this.formularioCapacitacion.get('estado').value;\n  }\n\n  isModificar(): boolean {\n    return this.isAutorizar() && (!this.isFuncional() ? (this.formularioCapacitacion.get('cedulaResponde').value == this.documentoCliente ): true);\n  }\n}\n","<p-confirmPopup></p-confirmPopup>\n@if( selectedPanel  != 'descripcionCargo' && muestracampos){\n<div  class=\"flex align-items-center justify-content-between align-items-center mb-2\">\n    <h1>{{'necesidad' | translate}} {{'capacitacion' | translate}}</h1>\n    <button pButton label=\"{{'link_regresar' | translate}}\" (click)=\"regresarNecesidades()\" icon=\"pi pi-chevron-left\"\n      class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\">\n    </button>\n</div>\n}\n\n\n<div class=\"Inputgroup-borde mt-0\" >\n\n    <!-- Menu Superior -->\n    @if( selectedPanel  != 'descripcionCargo' && muestracampos){\n        <p-menubar [model]=\"items\" class=\"menu-accion-sara\"><label>Menú</label></p-menubar>\n    }\n    <div class=\"p-fluid grid mt-3\" >\n\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <div *ngIf=\"selectedPanel  == 'descripcionCargo'\">\n                <app-descripcion-cargo  #descripcionCargoBean (setVista)=\"regresarNecesidad($event)\" ></app-descripcion-cargo>\n            </div>\n            <div *ngIf=\"selectedPanel  == 'inscritos'\">\n                <app-inscritos-necesidad [capacitacionSeleccionado]=\"capacitacionSeleccionado\"></app-inscritos-necesidad>\n            </div>\n            <div *ngIf=\"selectedPanel  == 'actividades'\">\n                <app-listado-actividades [capacitacionSeleccionado]=\"capacitacionSeleccionado\"></app-listado-actividades>\n            </div>\n\n            <div *ngIf=\"selectedPanel  == 'anexo'\">\n                <app-anexo-necesidad  [capacitacionSeleccionado]=\"capacitacionSeleccionado\"></app-anexo-necesidad>\n            </div>      \n                  \n            <div *ngIf=\"selectedPanel  == 'defecto'\">\n                <div class=\"Inputgroup-borde mt-0 \">\n                    <div class=\"col-12 md:col-12 lg:col-12\">\n                        <div class=\" card\">\n                            <div class=\"contenedor\" *ngIf=\"loading\">\n                                <form [formGroup]=\"formularioCapacitacion\">\n                                    <div class=\"mt-3 p-fluid p-formgrid grid\">\n                                        <!-- TIPO -->\n                                        <div class=\"field col-12 lg:col-4\">\n                                            <span class=\"p-float-label\">\n                                                <input pInputText autofocus type=\"text\" [readonly]=\"!isNew\" id=\"tipo\" formControlName=\"descripcionFormulario\" [readonly]=\"true\" />\n                                                <label for=\"tipo\">{{ 'tipo' | translate }}*</label>\n                                            </span>\n                                        </div>  \n                                \n                                        <!-- NOMBRE -->\n                                        <div class=\"field col-12 lg:col-4\" *ngIf=\"this.formularioCapacitacion.get('tipoCapacitacion').value =='I' \">\n                                            <app-input-helper-empleados\n                                                [header]=\"translateService.instant('Nombre *')\" [readonly]=\"!isNew || clientePortal()\"\n                                                [label]=\"!isNew || clientePortal() ? this.formularioCapacitacion.get('empresaNombre').value : ''\"\n                                                (onSelected)=\"setPersona($event)\"\n                                                formControlName=\"empleadoNombre\">\n                                            </app-input-helper-empleados>\n                                        </div>\n                                        \n                                        <!-- EMPRESA -->\n                                        <div class=\"field col-12 lg:col-4\" *ngIf=\"this.formularioCapacitacion.get('tipoCapacitacion').value =='I'\">\n                                            <span class=\"p-float-label\">\n                                                <p-dropdown inputId=\"empresa\" [options]=\"listadoEmpresa\" [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n                                                    inputId=\"tipo\" appendTo=\"body\" optionValue=\"key\" formControlName=\"empresa\" [readonly]=\"true\" >\n                                                </p-dropdown>\n                                                <label for=\"empresa\">{{ 'empresa' | translate }}*</label>\n                                            </span>\n                                        </div>  \n\n                                        <!-- EMPRESA -->\n                                        <div class=\"field col-12 lg:col-4\" *ngIf=\"this.formularioCapacitacion.get('tipoCapacitacion').value !=='I' \">\n                                            <span class=\"p-float-label\">\n                                                <p-dropdown inputId=\"empresa\" [options]=\"listadoEmpresa\" [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n                                                    inputId=\"tipo\" appendTo=\"body\" optionValue=\"key\" formControlName=\"empresa\" >\n                                                </p-dropdown>\n                                                <label for=\"empresa\">{{ 'empresa' | translate }}*</label>\n                                            </span>\n                                        </div> \n\n                                          <!-- UNIDAD  Grupal-->\n                                        <div class=\"field col-12 lg:col-4\" *ngIf=\"this.formularioCapacitacion.get('tipoCapacitacion').value !=='I' \">\n                                            <span class=\"p-float-label\">\n                                                <app-input-helper-unidad formControlName=\"unidad\" [readonly]=\"!this.formularioCapacitacion.get('empresa').value\" \n                                                    [empresa]=\"formularioCapacitacion.get('empresa').value\" [header]=\"translateService.instant('Unidad Organizacional')\"\n                                                    [label]=\"!isNew || clientePortal() ? this.formularioCapacitacion.get('unidadNombre').value : ''\" optionLabel=\"nombre\">\n                                                </app-input-helper-unidad>\n                                            </span>\n                                        </div>\n                                        <!-- UNIDAD  listaCargo-->\n                                        <div class=\"field col-12 lg:col-4\" *ngIf=\"this.formularioCapacitacion.get('tipoCapacitacion').value =='I' \">\n                                            <span class=\"p-float-label\">\n                                                <input pInputText autofocus type=\"text\" [readonly]=\"true\" id=\"tipo\" formControlName=\"unidadNombre\"/>\n                                                <label for=\"tipo\">{{ 'Unidad' | translate }}*</label>\n                                            </span>\n                                        </div>  \n                                \n                                        <!-- CARGO -->\n                                        <div class=\"field col-12 lg:col-4\">\n                                            <span class=\"p-float-label\">\n                                                <p-dropdown inputId=\"unidadNombre\" [options]=\"listaCargo\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" (onChange)=\"onCargoChange($event)\"\n                                                    inputId=\"tipo\" appendTo=\"body\" optionValue=\"key\" formControlName=\"cargo\" required=\"true\" [readonly]=\"isIndividual()\" >\n                                                </p-dropdown>\n                                                <label for=\"cargo\">{{ 'cargo' | translate }}</label>\n                                            </span>\n                                        </div>\n                                \n                                        <!-- SOLICITANTE -->\n                                        <div class=\"field col-12 lg:col-4\">\n                                            <app-input-helper-hoja-vida formControlName=\"solicita\" \n                                                [header]=\"translateService.instant('Solicitado Por')\" [readonly]=\"verSolicitador\" \n                                                [label]=\"(isNew && verSolicitador) ? '' : (capacitacionSeleccionado.nombreSolicitaNecesidad || '')\" optionLabel=\"nombre\"> \n                                            </app-input-helper-hoja-vida>\n                                        </div>  \n\n                                        <!-- ESTADO -->                            \n                                         @if(!isNew){                      \n                                        <div class=\"field col-12 md:col-6 lg:col-4\">\n                                            <span class=\"p-float-label\">\n                                                <p-dropdown inputId=\"estado\"  [readonly]=\"true\"  [options]=\"listaEstado\" [autoDisplayFirst]=\"false\" \n                                                    formControlName=\"estado\" optionLabel=\"nombre\" optionValue=\"codigo\">\n                                                </p-dropdown>\n                                                <label for=\"estado\">{{'estado' | translate}}</label>\n                                            </span> \n                                        </div>    \n                                        }                                   \n                                    </div>\n                                    <formulario-dinamico #formularioDinamico *ngIf=\"isFormularioDinamico\" [editable]=\"!encuesta && !procesoAutorizacion\" [objeto]=\"capacitacionSeleccionado\" [campos]=\"campos\" ></formulario-dinamico>\n                                \n                                </form>\n                                 <!--botones-->\n                            <div class=\"flex justify-content-end mt-3 mb-3\" *ngIf=\"!encuesta && !procesoAutorizacion\">\n                                \n                                @if(controlFuncionService.getControlFuncionalidad('neccap:guardar') && isModificar()){\n                                <button *ngIf=\"isNew ==false \" pButton pRipple class=\"ml-2 p-button-raised \"\n                                    icon=\"glyphicons glyphicons-refresh\"\n                                    label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarRegistro()\">\n                                </button>\n\n                                <button *ngIf=\"isNew !=false\" pButton pRipple class=\"ml-2 p-button-raised\"\n                                    icon=\"glyphicons glyphicons-floppy-save\"\n                                    label=\"{{'link_guardar' | translate}}\" (click)=\"guardarNecesidad()\">\n                                </button>\n\n                                <button *ngIf=\"isNew ==false \" pButton pRipple class=\"ml-2 p-button-outlined\"\n                                    icon=\"glyphicons glyphicons-bin\" \n                                    label=\"{{'link_eliminar' | translate}}\" (click)=\"showEliminarConfirmDialog()\">\n                                </button>\n                                }\n                                <!-- AUTORIZAR / NO AUTORIZAR -->\n                                <button *ngIf=\"isNew ==false && formularioCapacitacion.get('estado').value === 'S' \" pButton pRipple class=\"ml-2 p-button-raised \"\n                                    icon=\"glyphicons glyphicons-refresh\" \n                                    label=\"{{'link_autorizar' | translate}}\" (click)=\"autorizarRegistro()\">\n                                </button>\n\n                                <button *ngIf=\"isNew ==false && formularioCapacitacion.get('estado').value === 'S' \" pButton pRipple class=\"ml-2 p-button-outlined\"\n                                    icon=\"glyphicons glyphicons-bin\" \n                                    label=\"{{'link_noautorizar' | translate}}\" (click)=\"noautorizarRegistro()\">\n                                </button>\n                                <!-- EJECUTAR / NO EJECUTAR -->\n                                <button *ngIf=\"isNew ==false && formularioCapacitacion.get('estado').value === 'P' \" pButton pRipple class=\"ml-2 p-button-raised \"\n                                    icon=\"glyphicons glyphicons-refresh\"\n                                    label=\"{{'link_ejecutar' | translate}}\" (click)=\"ejecutarRegistro()\">\n                                </button>\n\n                                <button *ngIf=\"isNew ==false && formularioCapacitacion.get('estado').value === 'P' \" pButton pRipple class=\"ml-2 p-button-outlined\"\n                                    icon=\"glyphicons glyphicons-bin\" \n                                    label=\"{{'No Ejecitar' | translate}}\" (click)=\"noEjecutarRegistro()\">\n                                </button>\n                            </div>\n                            </div>\n                        </div>\n                    </div>\n                    \n                    <!--pte causante-->\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n\n\n<app-ejecucion-autorizacion *ngIf=\"procesoAutorizacion\" (regresar)=\"regresarNecesidades()\"></app-ejecucion-autorizacion>\n\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarNecesidades()\"></app-ejecucion-encuesta>","import { UnionModel } from 'general-library-union'\n\nexport class ActoAdministrativoModel extends UnionModel{\n\n\tllaveActo: string;\n\ttipoActo: string;\n\tunidad: string;\n\tnombreUnidad: string;\n\ttipoUnidad: string;\n\ttipoDocumento: string;\n\tnumeroRemite: string;\n\tfechaRemite: Date;\n\tnumeroContrato: string;\n\tfechaContrato: Date;\n\tfinaldate: Date;\n\tnumero: string;\n\tfechaDocumento: Date;\n\tvalor: number;\n\tinstitucion: number;\n\tterminoComision: string;\n\tsoporteComision: string;\n\tobservacion: string;\n\thayContrato: string;\n\tempresa: number;\n\tnombreEmpresa: string;\n\tturno: number;\n\tcargo: string;\n\tnombreCargo: string;\n\tvinculacion: number;\n\tnombreVinculacion: string;\n\tsueldo: number;\n\tzonaEconomica: string;\n\tnombreZonaEconomica: string;\n\tcentroCosto: string;\n\tnombreCentroCosto: string;\n\tlineaCosto: string;\n\tnombreLinea: string;\n\ttipoPeriodo: number;\n\tubicacionFis: string;\n\tnombreUbicacionFis: string;\n\ttotal: number;\n\tclasificacion: string;\n\tpuestoTrabajo: string;\n\tnombrePuestoTrabajo: string;\n\tterminaContrato: Date;\n\testado: string;\n\tidentifica: number;\n\tsolicitado: number;\n\tnombreCompleto: string;\n\torigen: string;\n\tprocesoSelec: string;\n\tmensaje: string;\n\tdocumento: string;\n\tcedulaDirecta: number;\n\tnombresDirecto: string;\n\tprimerApellidoDirecto: string;\n\tsegundoApellidoDirecto: string;\n\temailDirecto: string;\n\trequerimiento: string;\n\torigenEvento: string;\n\tcedulaJefe: number;\n\tmotivoAnulacion: string;\n\tfechaAnulacion: Date;\n\trequerimientoSolicita:  number;\n\tdocumentoRequerimientoSolicita: string;\n\tnombreRequerimientoSolicita: string;\n\ttipoContratacion: string;\n\tnombreJefe: string;\n\temailHojaVida: string;\n\tloginHojaVida: string;\n\taliasRol: string;\n\tarchivoAnulacion: string;\n\tlogin: string;\n\t\n\t\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class OrigenEventoModel extends UnionModel {\n\n\tdescripcion: String;\n\torigen: String; \n\tindicaHoja: String;\n\tindicaDatos: String;\n\tcodigo: String;\n\tindicaPuesto: String;\n\t\n}","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n  production: false,\n  urlapisara: \"http://186.86.125.178:9940\",\n  //urlapisara: \"http://localhost:7881\",\n  crypto_secret_key: 'qwerty.123.zrtr*ty#qryt',\n  codigoAplicacion: '1',\n  nombreAplicacion: \"SARA\"\n};\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel} from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { RequerimientoPersonalModel } from '../../../../modules/talento/models/RequerimientoPersonalModel';\nimport { EmpresaModel } from '../../../../modules/compensacion/models/EmpresaModel';\nimport { ProcesoSeleccionModel } from '../../../../modules/talento/models/ProcesoSeleccionModel';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-popup-proceso-seleccion',\n    templateUrl: './popup-proceso-seleccion.component.html',\n    styleUrls: ['./popup-proceso-seleccion.component.scss'],\n    standalone: true,\n    imports: [InputTextModule, ButtonDirective, Ripple, NgIf, DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule, CalendarModule, DatePipe, TranslateModule, FiltroGeneralComponent]\n})\nexport class PopupProcesoSeleccionComponent implements OnInit {\n\n  @Input() value: string | number;\n  @Input() label: string = '';\n  @Input() showDialog: boolean;\n  @Output() public regresar = new EventEmitter;\n  @Input() mostrarX: boolean;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  onChange: Function = () => { };\n  public listaProceso: ProcesoSeleccionModel[] = [];\n  public empresa: EmpresaModel;\n  dataSelected: RequerimientoPersonalModel;\n  paginator = {rows: 10, totalRecords:0};\n  filters =[];\n\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService) {}\n\n\n  ngOnInit(): void {\n    this.crearFiltro();\n    this.cargarProcesoSeleccion(null);\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'consecutivo',\n        header: this.translateService.instant('consecutivo'),\n        matchMode: 'contains'\n      }\n    ];\n  }\n\n\n  async cargarProcesoSeleccion(objetoFiltro : any){\n    this.empresa = new EmpresaModel();\n    let objEmpresa = new GeneralModel('EmpresaDTO', null, false, {empresa : parseInt(this.authService.getTokenKey('numeroEmpresa'))});\n    this.generalService.queryForObject(objEmpresa).subscribe(async (data) => {\n      this.empresa = data;\n\n      if(objetoFiltro == null){\n        objetoFiltro = {\n          empresa : this.empresa.empresa,\n          aliasRol : this.authService.getTokenKey('aliasRol'),\n          login : this.authService.getTokenKey('usuario'),\n          organizacion : this.empresa.organizacion,\n          tipoFiltro : 'unidad'\n        };\n      }\n      this.listaProceso = (await this.generalService.queryForList(new GeneralModel('ProcesoSeleccionDTO', null, false, objetoFiltro)).toPromise()).sort((a, b) => b.numero - a.numero);\n    });\n  }\n\n  cargarListaFiltro(event){\n    let objetoFiltro = {\n      empresa : this.empresa.empresa,\n      organizacion : this.empresa.organizacion,\n      fechainicio : event.fechaInicial?.value,\n      fechaFinal : event.fechaFinal?.value,\n      numero : event.consecutivo?.value,\n      login : this.authService.getTokenKey('usuario'),\n      aliasRol : this.authService.getTokenKey('aliasRol'),\n      tipoFiltro : 'unidad'\n    };\n    this.cargarProcesoSeleccion(objetoFiltro);\n  }\n\n  openDataTable() {\n    this.showDialog = true;\n  }\n\n  onRowSelect() {\n    this.onSelected.emit(this.dataSelected);\n    this.showDialog = false;\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n}\n","<div #field class=\"p-inputgroup\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" />\n    <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple (click)=\"openDataTable()\" class=\"p-button-icon-only clear unico\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\"\n      pButton pRipple  (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n    <label>{{('requerimiento') | translate}}</label>\n  </span>\n</div>\n\n<p-dialog header=\"{{'proceso' | translate}} {{'seleccion' | translate}}\" [(visible)]=\"showDialog\" [style]=\"{width: '48vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltro($event)\">\n        <ng-template let-form>\n            <ng-container [formGroup]=\"form\">\n              <div class=\"field\">\n                <span class=\"p-float-label\">\n                    <p-calendar id=\"fechaInicial\" formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\"\n                      [showIcon]=\"true\"></p-calendar>\n                    <label for=\"fechaInicial\">{{ \"fechainicial\" | translate }}</label>\n                </span>\n              </div>\n              <div class=\"field\">\n                <span class=\"p-float-label\">\n                    <p-calendar id=\"fechaFinal\" formControlName=\"fechaFinal\" dateFormat=\"dd/mm/yy\"\n                      [showIcon]=\"true\"></p-calendar>\n                    <label for=\"fechaFinal\">{{ \"fechafinal\" | translate }}</label>\n                </span>\n              </div>\n              <div class=\"field\">\n                <span class=\"p-float-label\">\n                  <input autofocus pInputText type=\"text\" formControlName=\"consecutivo\" autocomplete=\"off\" maxlength=\"25\" />\n                  <label>{{'consecutivo' | translate}}</label>\n                </span>\n              </div>\n            </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"listaProceso\" selectionMode=\"single\" [rows]=\"10\"\n      [paginator]=\"listaProceso.length > 10\" [totalRecords]=\"listaProceso.length\" [tableStyle]=\"{'min-width':'48rem'}\"\n      [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped\" [(selection)]=\"dataSelected\" (onRowSelect)=\"onRowSelect()\">\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th style=\"width: 23%;\">{{ 'consecutivo' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'cantidad' | translate }}</th>\n          <th style=\"width: 20%;\">{{ 'nombre' | translate }} {{ 'unidad' | translate }}</th>\n          <th style=\"width: 30%;\">{{ 'nombre' | translate }} {{ 'cargo' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'fecha' | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-proceso>\n        <tr [pSelectableRow]=\"proceso\">\n          <td style=\"width: 23%;\">{{proceso.numero}}</td>\n          <td style=\"width: 15%;\">{{proceso.cantidad}}</td>\n          <td style=\"width: 20%;\">{{proceso.nombreunidad}}</td>\n          <td style=\"width: 30%;\">{{proceso.nombrecargo}}</td>\n          <td style=\"width: 15%;\">{{proceso.fechainicio | date:('formatofecha'|translate)}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel} from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { RequerimientoPersonalModel } from '../../../../modules/talento/models/RequerimientoPersonalModel';\nimport { EmpresaModel } from '../../../../modules/compensacion/models/EmpresaModel';\nimport { RequerimientoPersonalService } from '../../../../modules/talento/services/requerimiento-personal.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-popup-requerimiento',\n    templateUrl: './popup-requerimiento.component.html',\n    styleUrls: ['./popup-requerimiento.component.scss'],\n    standalone: true,\n    imports: [InputTextModule, ButtonDirective, Ripple, NgIf, DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule, TranslateModule\n      ,FiltroGeneralComponent\n    ]\n})\nexport class PopupRequerimientoComponent implements OnInit {\n\n  @Input() value: string | number;\n  @Input() label: string = '';\n  @Input() showDialog: boolean;\n  @Output() public regresar = new EventEmitter;\n  @Input() mostrarX: boolean;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  onChange: Function = () => { };\n  public listaRequerimiento: RequerimientoPersonalModel[] = [];\n  public empresa: EmpresaModel;\n  dataSelected: RequerimientoPersonalModel;\n  paginator = {rows: 10, totalRecords:0};\n  filters =[];\n\n\n  constructor(private generalService: GeneralService,private authService: AuthService, private translateService: TranslateService,\n    private requerimientoPersonalService : RequerimientoPersonalService) {}\n\n\n  ngOnInit(): void {\n    this.crearFiltro();\n    this.cargarLista(Constantes.ESPACIO_NULO);\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'filtroDescripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains'\n      }\n    ];\n  }\n\n\n  async cargarLista(filtro : string){\n    this.empresa = new EmpresaModel();\n    let objEmpresa = new GeneralModel('EmpresaDTO', null, false, {empresa : parseInt(this.authService.getTokenKey('numeroEmpresa'))});\n    this.generalService.queryForObject(objEmpresa).subscribe((data) => {\n      this.empresa = data;\n\n      let objFiltro = {\n        empresa : this.authService.getTokenKey('numeroEmpresa'),\n        organizacion : this.empresa.organizacion,\n        seleccion : filtro != Constantes.ESPACIO_NULO ?  Constantes.PORCENTAJE + filtro + Constantes.PORCENTAJE : null\n      };\n\n      if(Constantes.ESPACIO_NULO != filtro && filtro != null){\n        this.requerimientoPersonalService.obtenerFiltroRequerimiento({requerimiento : objFiltro}).subscribe(data => {\n          if(data?.resultado != null){\n            this.listaRequerimiento = data?.resultado;\n          }\n        });\n      }else{\n        this.requerimientoPersonalService.obtenerRequerimiento({requerimiento : objFiltro}).subscribe(data => {\n          if(data?.resultado != null){\n            this.listaRequerimiento = data?.resultado;\n          }\n        });\n      }\n    });\n  }\n\n  cargarListaFiltro(event){\n    this.cargarLista(event.filtroDescripcion?.value);\n  }\n\n  openDataTable() {\n    this.showDialog = true;\n  }\n\n  onRowSelect() {\n    this.onSelected.emit(this.dataSelected);\n    this.showDialog = false;\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n}\n","<div #field class=\"p-inputgroup\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [readonly]=\"true\" [value]=\"label\"  disabled/>\n    <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple (click)=\"openDataTable()\" class=\"p-button-icon-only clear unico\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\"\n      pButton pRipple  (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n    <label>{{('requerimiento') | translate}}</label>\n  </span>\n</div>\n\n<p-dialog header=\"{{'lista' | translate}} {{'requerimiento' | translate}}\" [(visible)]=\"showDialog\" [style]=\"{width: '48vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <p-table #tablaGeneral [value]=\"listaRequerimiento\" selectionMode=\"single\" [rows]=\"10\" [scrollable]=\"true\"\n      [paginator]=\"listaRequerimiento.length > 10\" [totalRecords]=\"listaRequerimiento.length\"\n      [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped\" [(selection)]=\"dataSelected\" (onRowSelect)=\"onRowSelect()\">\n\n      <ng-template pTemplate=\"caption\">\n        <div class=\"p-fluid grid flex justify-content-between align-items-center\">\n          <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltro($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                  <div class=\"field\">\n                    <span class=\"p-float-label\">\n                      <input autofocus pInputText type=\"text\" formControlName=\"filtroDescripcion\" autocomplete=\"off\" maxlength=\"25\" />\n                      <label>{{'descripcion' | translate}}</label>\n                    </span>\n                  </div>\n                </ng-container>\n            </ng-template>\n          </app-filtro-general>\n        </div>\n      </ng-template>\n      <ng-template pTemplate=\"header\">\n        <tr style=\"width: 100%;\">\n          <th style=\"width: 30%;\">{{ 'empresa' | translate }}</th>\n          <th style=\"width: 50%;\">{{ 'lista' | translate }} {{ 'requerimiento' | translate }}</th>\n          <th style=\"width: 20%;\">{{ 'consecutivo' | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-requerimiento>\n        <tr [pSelectableRow]=\"requerimiento\" style=\"width: 100%;\">\n          <td style=\"width: 30%;\">{{requerimiento.nombreEmpresa}}</td>\n          <td style=\"width: 50%;\">\n            <div>\n              {{requerimiento.nombreUnidad}}\n            </div>\n            <div>\n              {{requerimiento.nombreCargo}}\n            </div>\n          </td>\n          <td style=\"width: 20%;\">{{requerimiento.cadenaConsecutivo}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel } from 'general-library-union';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PuestoTrabajoModel } from '../../models/PuestoTrabajoModel';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n    selector: 'app-popup-contratacion-puesto-trabajo',\n    templateUrl: './popup-contratacion-puesto-trabajo.component.html',\n    styleUrls: ['./popup-contratacion-puesto-trabajo.component.scss'],\n    standalone: true,\n    imports: [InputTextModule, ButtonDirective, Ripple, NgIf, DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule, TranslateModule,\n      FiltroGeneralComponent\n    ]\n})\nexport class PopupContratacionPuestoTrabajoComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @Input() value: string | number;\n  @Input() label: string = '';\n  @Input() header: string;\n  @Input() readonly: boolean;\n  @Input() showDialog: boolean;\n  @Input() unidad: string;\n  @Input() mostrarX: boolean;\n  @Output() public regresar = new EventEmitter;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  onChange: Function = () => { };\n  public listaPuestoTrabajo : PuestoTrabajoModel [] = [];\n  public cantRegistros : number;\n  filters = [];\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService) {}\n\n  ngOnInit(): void {\n    this.cantRegistros = 0;\n    this.crearFiltro();\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'filtroNombre',\n        header: this.translateService.instant('nombre'),\n        matchMode: 'contains'\n      },\n      {\n        field: 'filtroNom',\n        header: this.translateService.instant('nombre'),\n        matchMode: 'contains'\n      },\n      {\n        field: 'filtroNumero',\n        header: this.translateService.instant('numero'),\n        matchMode: 'contains'\n      }\n    ];\n  }\n\n  async cargarLista(event){\n    let filtro = {\n      empresa: this.authService.getTokenKey('numeroEmpresa'),\n      unidad: this.unidad,\n    };\n    this.listaPuestoTrabajo = await this.generalService.queryForList(new GeneralModel('PuestoTrabajoDTO', null, false, filtro)).toPromise();\n    this.cantRegistros = this.listaPuestoTrabajo.length;\n\n    this.listaPuestoTrabajo = this.listaPuestoTrabajo.map(puesto => ({\n      ...puesto,\n      nombreCargoConcatenado: `${puesto.nombreEmpresa} ${puesto.nombreCargo} ${puesto.nombreUnidad}`\n    }));\n    this.cantRegistros = this.listaPuestoTrabajo.length;\n  }\n\n  openDataTable() {\n    this.showDialog = true;\n  }\n\n  seleccionPuestoTrabajo(event) {\n    if(event?.data){\n      this.onSelected.emit(event.data);\n    }\n    this.showDialog = false;\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  onTableFilter(event){\n    if(event?.filteredValue){\n      this.cantRegistros = event.filteredValue.length;\n    }\n  }\n\n}\n","<div #field class=\"p-inputgroup\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText disabled [value]=\"label\" />\n    <button style=\"border-radius: 0 5px 5px 0;\" pButton pRipple (click)=\"openDataTable()\" [disabled]=\"readonly\"\n      class=\"p-button-icon-only clear unico\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n    <label>{{header}}</label>\n  </span>\n</div>\n\n<p-dialog header=\"{{'puestos' | translate}} {{'de' | translate}} {{'trabajo' | translate}}\" [(visible)]=\"showDialog\"\n  [style]=\"{width: '48vw'}\" (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\"\n  appendTo=\"body\" (onShow)=\"cargarLista($event)\">\n\n  <p-table #tablaGeneral [value]=\"listaPuestoTrabajo\" selectionMode=\"single\" [rows]=\"5\" [scrollable]=\"true\"\n    [paginator]=\"cantRegistros > 5\" [totalRecords]=\"cantRegistros\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\"\n    (onRowSelect)=\"seleccionPuestoTrabajo($event)\" [globalFilterFields]=\"['nombre', 'nombreCargoConcatenado', 'numero']\"\n    (onFilter)=\"onTableFilter($event)\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 40%;\">{{ 'nombre' | translate }}</th>\n        <th style=\"width: 40%;\">{{ 'nombre' | translate }}</th>\n        <th style=\"width: 20%;\">{{ 'numero' | translate }}</th>\n      </tr>\n      <tr class=\"bg-white\" style=\"width: 100%;\">\n        <th class=\"bg-white border-noround border-bottom-1 color-100\" style=\"width: 40%\">\n          <div class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"nombreOcupa\" matchMode=\"contains\" [showOperator]=\"false\" [showClearButton]=\"false\"\n              [showMenu]=\"false\"></p-columnFilter>\n          </div>\n        </th>\n        <th class=\"bg-white border-noround  border-bottom-1 color-100\" style=\"width: 40%\">\n          <div class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"nombreCargoConcatenado\" matchMode=\"contains\" [showOperator]=\"false\"\n              [showMenu]=\"false\" [showClearButton]=\"false\"></p-columnFilter>\n          </div>\n        </th>\n        <th class=\"bg-white border-noround border-bottom-1 color-100\" style=\"width: 20%\">\n          <div class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"numeroPuesto\" matchMode=\"contains\" [showOperator]=\"false\" [showMenu]=\"false\"\n              [showClearButton]=\"false\"></p-columnFilter>\n          </div>\n        </th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-puesto>\n      <tr [pSelectableRow]=\"puesto\" style=\"width: 100%;\">\n        <td style=\"width: 40%;\">{{puesto.nombreOcupa}}</td>\n        <td style=\"width: 40%;\">{{puesto.nombreEmpresa}}<br>{{puesto.nombreCargo}}<br>{{puesto.nombreUnidad}}</td>\n        <td style=\"width: 20%;\">{{puesto.numeroPuesto}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { MenuService, UtilsService } from 'general-library-union';\nimport { MenuItem } from 'primeng/api';\nimport { MenubarModule } from 'primeng/menubar';\n\n@Component({\n    selector: 'app-contratacion-menu',\n    templateUrl: './contratacion-menu.page.html',\n    styleUrls: ['./contratacion-menu.page.scss'],\n    standalone: true,\n    imports: [MenubarModule]\n})\nexport class ContratacionMenuPage implements OnInit {\n\n  @Output() seleccion: EventEmitter<any> = new EventEmitter();\n  @Input() public llaveTabla : string;\n  menu: MenuItem[];\n\n  constructor(private router: Router, public utilsService: UtilsService, private translateService: TranslateService, private activeRoute : ActivatedRoute) { }\n\n  ngOnInit(): void {\n    this.cargarMenu();\n  }\n\n  async cargarMenu() {\n    this.menu = [\n      { label: this.translateService.instant('contratacion'), icon: ImagenesCons.list_alt,\n        command: (event) => { this.seleccionMenu('contratacion')} },\n      { separator: true },\n      { label: this.translateService.instant('documento'), icon: ImagenesCons.more_items, visible : this.llaveTabla != null ? true : false,\n        command: (event) => { this.seleccionMenu('documento')} },\n      { separator: true },\n      { label: this.translateService.instant('actividad'), icon: ImagenesCons.notes_2, visible : this.llaveTabla != null ? true : false,\n        command: (event) => { this.seleccionMenu('actividad')} },\n      { separator: true },\n    ]\n  }\n\n  seleccionMenu(dato : string){\n    if(dato != null){\n      this.seleccion.emit(dato);\n    }\n  }\n\n}\n","<div id=\"contratacion_menu\">\n  <div>\n    <p-menubar class=\"menu-accion-sara\" [model]=\"menu\"></p-menubar>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ParametrosPipe } from '../../../../shared/pipes/parametros.pipe';\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ConfirmationService } from 'primeng/api';\nimport { ActoAdministrativoModel } from '../../../../modules/actos/models/ActoAdministrativoModel';\nimport { HojaVidaPipe } from '../../../../shared/pipes/hojavida.pipe';\nimport { TipoDocumentoModel } from '../../../../modules/hojavida/models/TipoDocumentoModel';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { NovedadModel } from '../../../../modules/compensacion/models/NovedadModel';\nimport { SolicitudModel } from '../../../../modules/compensacion/models/SolicitudModel';\nimport { environment } from '../../../../../environments/environment';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { RequisitoHojaModel } from '../../../../modules/talento/models/RequisitoHojaModel';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { ArchivoModel } from '../../../../modules/hojavida/models/ArchivoModel';\nimport { PopUpAdjuntoRespuestaComponent } from '../../../../modules/compensacion/pages/empleados/popups/pop-up-adjunto-respuesta/pop-up-adjunto-respuesta.component';\n\n@Component({\n    selector: 'app-popup-requisito-contratacion',\n    templateUrl: './popup-requisito-contratacion.component.html',\n    styleUrls: ['./popup-requisito-contratacion.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, ReactiveFormsModule, DropdownModule, NgIf, InputTextModule, FileUploadModule, CalendarModule, InputTextareaModule, ButtonDirective, Ripple, ConfirmPopupModule, TranslateModule\n      ,PopUpAdjuntoRespuestaComponent\n    ]\n})\nexport class PopupRequisitoContratacionComponent implements OnInit {\n\n  @Input() public actoAdministrativo: ActoAdministrativoModel;\n  @Input() public novedad: NovedadModel;\n  @Input() public solicitud: SolicitudModel;\n  @Input() public tipoDocSeleccionado: string;\n  @Input() public nuevoRequisitoContratacion: boolean;\n  @Input() public mostrarPopup: boolean;\n  @Input() public label: boolean;\n  @Output() public regresar = new EventEmitter();\n  public archivoSeleccionado: File;\n  public extensionesPermitidas: string[];\n  public requisitoHoja : RequisitoHojaModel;\n  public tipoDocumento : TipoDocumentoModel;\n  public paqueteServidor : string;\n  public nombreArchivo: string;\n  public unicoArchivo;\n  formRequisitoContratacion : FormGroup;\n  clickGuardar: boolean = false;\n  listaDocumento : any;\n  listaCumplido : any;\n\n  constructor(private parametrosPipe : ParametrosPipe, private cargarSelectItem: cargarmapasGlobal, private formBuilder: FormBuilder,\n    private generalService: GeneralService, private translateService: TranslateService, private hojaVidaPipe : HojaVidaPipe,\n    private listaConstantesPipe : ListaConstantesPipe, private notificacionesService: ToastService, private cargarArchivoService: CargarArchivosService,\n    public utilsService: UtilsService, private encriptadoBasicoService: EncriptadoBasicoService, private confirmationService: ConfirmationService) { }\n\n  ngOnInit(): void {\n    this.requisitoHoja = new RequisitoHojaModel();\n    this.tipoDocumento = new TipoDocumentoModel();\n    this.unicoArchivo = new ArchivoModel();\n    this.cargarFormulario();\n    this.cargar();\n  }\n\n  async cargar(){\n    this.extensionesPermitidas = ['pdf', 'PDF'];\n    this.paqueteServidor = Constantes.ESPACIO_NULO;\n    await this.cargarListas();\n    if(!this.nuevoRequisitoContratacion){\n      await this.definirObjeto();\n    }\n  }\n\n  async definirObjeto(){\n    if(this.actoAdministrativo != null){\n      let objeto = new GeneralModel('RequisitoHojaDTO', null, false, {actoAdministrativo : this.actoAdministrativo.llaveTabla, tipoDocumento : this.tipoDocSeleccionado});\n      this.requisitoHoja = await this.generalService.queryForObject(objeto).toPromise();\n      this.cambioTipoDocumento({value : this.requisitoHoja.tipoDocumento});\n      this.formRequisitoContratacion.patchValue(this.requisitoHoja);\n      const fechaVigencia = this.requisitoHoja.vigencia != null ? new Date(this.requisitoHoja.vigencia) : null;\n      this.formRequisitoContratacion.get('vigencia').setValue(fechaVigencia != null ? new Date(fechaVigencia.toString()) : null);\n      const fechaCumplido = this.requisitoHoja.cumplido != null ? new Date(this.requisitoHoja.cumplido) : null;\n      this.formRequisitoContratacion.get('cumplido').setValue(fechaCumplido != null ? new Date(fechaCumplido.toString()) : null);\n    }\n  }\n\n  cargarFormulario() {\n    this.formRequisitoContratacion = this.formBuilder.group({\n      llave: new FormControl(this.requisitoHoja.llave),\n      actoAdministrativo: new FormControl(this.requisitoHoja.actoAdministrativo),\n      tipoDocumento: new FormControl(this.requisitoHoja.tipoDocumento),\n      estado: new FormControl(this.requisitoHoja.estado),\n      contrato: new FormControl(this.requisitoHoja.contrato),\n      cumplido: new FormControl(this.requisitoHoja.cumplido),\n      archivo: new FormControl(this.requisitoHoja.archivo),\n      vigencia: new FormControl(this.requisitoHoja.vigencia),\n      observacion: new FormControl(this.requisitoHoja.observacion),\n      nombreDocumento: new FormControl(this.requisitoHoja.nombreDocumento),\n      tipo: new FormControl(this.requisitoHoja.tipo),\n    });\n  }\n\n  regresarVista(){\n    this.mostrarPopup = false;\n    this.regresar.emit(this.requisitoHoja);\n  }\n\n  async cargarListas(){\n    this.listaDocumento = await this.cargarSelectItem.cargarSelectItemString('documento', 'descripcion', new GeneralModel('TipoDocumentoDTO', null, false, {origen : this.hojaVidaPipe.TIO_CONTRATACION}));\n    this.listaCumplido = this.listaConstantesPipe.CUMPLIDO_REQ_SIMPLE;\n  }\n\n  async cambioTipoDocumento(event){\n    if(event != null){\n      this.paqueteServidor = Constantes.ESPACIO_NULO;\n      let objeto = new GeneralModel('TipoDocumentoDTO', null, false, {documento : event.value});\n      this.tipoDocumento = await this.generalService.queryForObject(objeto).toPromise();\n    }\n  }\n\n  cargarArchivo(data: any, fubauto) {\n    this.paqueteServidor = Constantes.ESPACIO_NULO;\n\t\tthis.archivoSeleccionado = data.files[0];\n\t\tthis.readFile(this.archivoSeleccionado);\n\t\tthis.notificacionesService.showSuccess('Se cargó el documento con éxito');\n    this.paqueteServidor = this.archivoSeleccionado.name;\n    this.formRequisitoContratacion.get('archivo').setValue(this.archivoSeleccionado.name);\n\t\tfubauto.clear();\n  }\n\n\tprivate readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n\t}\n\n  returnArchivo(valor) {\n    this.archivoSeleccionado = valor;\n    if (valor) {\n      this.nombreArchivo = valor.name;\n    }\n  }\n\n  returnAdjunto(valor) {\n    this.unicoArchivo = valor;\n  }\n\n  guardarArchivo(llave: string){\n\t\tlet extensionArchivo:string = this.archivoSeleccionado.name.split('?')[0].split(Constantes.PUNTO).pop();\n\t\tif(!this.extensionesPermitidas.includes(extensionArchivo)){\n\t\t\tthis.notificacionesService.showWarning('Solo se pueden anexar archivos pdf');\n\t\t\treturn\n\t\t}\n\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\tlet codigoAplicacion =  environment.codigoAplicacion;\n\t\tthis.archivoSeleccionado =  new File([this.archivoSeleccionado], llave + Constantes.PUNTO + extensionArchivo);\n\t  this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe({\n\t\t  next: (event) => {\n\t\t\tif (event.type === HttpEventType.Response) {\n\t\t\t\tlet response: any = event.body;\n        this.formRequisitoContratacion.get('archivo').setValue(this.archivoSeleccionado.name);\n\t\t\t\tthis.regresarVista();\n\t\t\t}\n\t\t  },\n\t\t});\n\t}\n\n  guardarRegistro() {\n\t\tif (this.formRequisitoContratacion.valid) {\n      if(this.nuevoRequisitoContratacion){\n        this.formRequisitoContratacion.get('actoAdministrativo').setValue(this.actoAdministrativo.llaveTabla);\n        this.formRequisitoContratacion.get('llave').setValue(this.utilsService.generarLlave());\n        this.formRequisitoContratacion.get('contrato').setValue(0);\n        if(this.parametrosPipe.DOCUMENTO_ANEXO == this.tipoDocumento.tipoDocumento){\n          if(this.paqueteServidor != Constantes.ESPACIO_NULO){\n            this.formRequisitoContratacion.get('estado').setValue(this.listaConstantesPipe.CUMPLIDO);\n            this.formRequisitoContratacion.get('cumplido').setValue(new Date());\n          }else{\n            this.formRequisitoContratacion.get('estado').setValue(this.listaConstantesPipe.NOCUMPLIDO);\n          }\n        }\n        let objFiltro: GeneralModel = new GeneralModel('RequisitoHojaDTO', null, false, this.formRequisitoContratacion.value);\n        this.generalService.crearRegistro(objFiltro).subscribe((data) => {\n        if(data != null) {\n          if(this.parametrosPipe.DOCUMENTO_ANEXO == this.tipoDocumento.tipoDocumento){\n            if(this.paqueteServidor != Constantes.ESPACIO_NULO){\n              this.guardarArchivo(this.formRequisitoContratacion.get('llave').value);\n            }\n          }\n          this.notificacionesService.showSuccess(Constantes.MENSAJE_CREAR);\n          this.regresarVista();\n        } else {\n          this.notificacionesService.showError('Error en el método de actualizar recurso');\n        }\n      });\n      }\n\t\t}else {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      Object.keys(this.formRequisitoContratacion.controls).forEach((key) => {\n        if (this.formRequisitoContratacion.get(key).errors) {\n          this.formRequisitoContratacion.get(key).markAsDirty();\n        }\n      });\n    }\n\t}\n\n  async actualizarRegistro() {\n    if (this.formRequisitoContratacion.valid) {\n      if(!this.nuevoRequisitoContratacion){\n        if(this.paqueteServidor != Constantes.ESPACIO_NULO && this.parametrosPipe.DOCUMENTO_ANEXO == this.tipoDocumento.tipoDocumento){\n          this.formRequisitoContratacion.get('estado').setValue(this.listaConstantesPipe.CUMPLIDO);\n          this.formRequisitoContratacion.get('cumplido').setValue(new Date());\n        }\n        let objetoFiltro: GeneralModel = new GeneralModel('RequisitoHojaDTO', null, false, this.formRequisitoContratacion.value);\n        let result : number;\n        let data = await this.generalService.update(objetoFiltro).toPromise();\n        result = data;\n        if (result == 1) {\n          if (this.paqueteServidor != Constantes.ESPACIO_NULO && this.parametrosPipe.DOCUMENTO_ANEXO == this.tipoDocumento.tipoDocumento) {\n            this.guardarArchivo(this.formRequisitoContratacion.get('llave').value);\n          }\n          this.notificacionesService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n          this.regresarVista();\n        } else {\n          this.notificacionesService.showError('Error en actualizar el registro');\n          throw new Error('Error en el método de actualizar');\n        }\n      }\n\t\t}else {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      Object.keys(this.formRequisitoContratacion.controls).forEach((key) => {\n        if (this.formRequisitoContratacion.get(key).errors) {\n          this.formRequisitoContratacion.get(key).markAsDirty();\n        }\n      });\n    }\n  }\n\n  showEliminarRequisitoConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRequisito();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  eliminarRequisito(){\n    let objeto: GeneralModel = new GeneralModel('RequisitoHojaDTO', null, false, this.formRequisitoContratacion.value);\n    this.generalService.delete(objeto).subscribe(data => {\n      let result : number = data;\n      if (result == 1) {\n        this.notificacionesService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n        this.regresarVista();\n      } else {\n        this.notificacionesService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.notificacionesService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n}\n","<p-dialog header=\"{{'requisitos' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '48vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <form [formGroup]=\"formRequisitoContratacion\" #formulario=\"ngForm\">\n      <div class=\"field col-12 md:col-12 lg:col-12\">\n          <div class=\"p-fluid p-formgrid grid\">\n\n            <!-- DOCUMENTO-->\n            <div class=\"field col-12 md:col-8 lg:col-8\" >\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"tipoDocumento\" [options]=\"listaDocumento\" optionValue=\"key\" optionLabel=\"label\" formControlName=\"tipoDocumento\"\n                  [autoDisplayFirst]=\"false\" [readonly]=\"!nuevoRequisitoContratacion\" appendTo=\"body\"\n                  (onChange)=\"cambioTipoDocumento($event)\"  required></p-dropdown>\n                <label htmlFor=\"tipoDocumento\">{{'documento' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- ESTADO -->\n            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\" 'C' == tipoDocumento.tipoDocumento\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"estado\" [options]=\"listaCumplido\" optionValue=\"codigo\" optionLabel=\"nombre\" formControlName=\"estado\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\"  required></p-dropdown>\n                <label htmlFor=\"estado\">{{'estado' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- ADJUNTAR ARCHIVO -->\n            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"tipoDocumento.tipoDocumento == 'I'\">\n              <div class=\"p-inputgroup\">\n                <span class=\"p-float-label\">\n                    <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" formControlName=\"archivo\" [disabled]=\"true\"\n                      [class]=\"!utilsService.validarCampoObligatorio(archivoSeleccionado) && clickGuardar ? 'ng-invalid ng-dirty' : ''\" />\n                    <p-fileUpload #fubauto  mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n                        [accept]=\"'.pdf'\" (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n                    <label>{{'adjunto' | translate}}</label>\n                </span>\n              </div>\n            </div>\n\n\n            <!-- CUMPLIDO -->\n            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"'C' == tipoDocumento.tipoDocumento \">\n              <span class=\"p-float-label\">\n                  <p-calendar formControlName=\"cumplido\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"  [showIcon]=\"true\" ></p-calendar>\n                  <label htmlFor=\"cumplido\">{{'cumplido' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- VIGENCIA -->\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n              <span class=\"p-float-label\">\n                  <p-calendar formControlName=\"vigencia\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"  [showIcon]=\"true\"></p-calendar>\n                  <label htmlFor=\"vigencia\">{{'vigencia' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- OBSERVACIÓN -->\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n              <span class=\"p-float-label\">\n                <textarea pInputTextarea id=\"observacion\" rows=\"3\" formControlName=\"observacion\" maxlength=\"30\" cols=\"30\"\n                  class=\"p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250 w-full\"></textarea>\n                <label for=\"observacion\">{{'observacion' | translate}}</label>\n              </span>\n            </div>\n\n          </div>\n\n        <div class=\"flex justify-content-end\">\n          <button pButton pRipple class=\"mr-3 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n              label=\"{{'link_actualizar' | translate}}\" *ngIf=\"!nuevoRequisitoContratacion\" (click)=\"actualizarRegistro()\">\n          </button>\n          <button pButton pRipple class=\"p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n              label=\"{{'link_eliminar' | translate}}\" *ngIf=\"!nuevoRequisitoContratacion\" (click)=\"showEliminarRequisitoConfirmDialog()\">\n          </button>\n          <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n              label=\"{{'link_guardar' | translate}}\" *ngIf=\"nuevoRequisitoContratacion\" (click)=\"guardarRegistro()\"></button>\n        </div>\n      </div>\n    </form>\n</p-dialog>\n<p-confirmPopup></p-confirmPopup>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\n\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ContratacionBpmService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  cargarListaMomento(general : any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/contratacionbpm/cargarListaMomento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ParametrosPipe } from '../../../../../shared/pipes/parametros.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ActoAdministrativoModel } from '../../../../../modules/actos/models/ActoAdministrativoModel';\nimport { EmpresaModel } from '../../../../../modules/compensacion/models/EmpresaModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { RequisitoHojaModel } from '../../../models/RequisitoHojaModel';\nimport { ContratacionBpmService } from '../../../services/contratacion-bpm.service';\nimport { environment } from '../../../../../../environments/environment';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PopupRequisitoContratacionComponent } from '../../../popups/popup-requisito-contratacion/popup-requisito-contratacion.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { AccordionModule } from 'primeng/accordion';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ContratacionMenuPage } from '../contratacion-menu/contratacion-menu.page';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ActividadFuenteTareaService } from '../../../../../modules/sarageneral/services/actividadFuenteTarea.service';\n\n@Component({\n  selector: 'app-editar-contratacion-documento',\n  templateUrl: './editar-documento.page.html',\n  styleUrls: ['./editar-documento.page.scss'],\n  standalone: true,\n  imports: [ButtonDirective, Ripple, ContratacionMenuPage, FormsModule, ReactiveFormsModule, InputTextModule, DropdownModule, AccordionModule, PrimeTemplate, NgIf, TableModule, TemplateTablaVaciaComponent, PopupRequisitoContratacionComponent, ConfirmPopupModule, DatePipe, TranslateModule, ListaConstantesPipe]\n})\nexport class EditarDocumentoPage implements OnInit {\n\n  @Input() public hojaVidaExiste: boolean;\n  @Input() public empresa: boolean;\n  @Input() public llaveTabla: string;\n  @Input() public bpmDocumento: boolean;\n  @Input() public navDesdeActividad: boolean;\n  @Input() public llaveActividad: string;\n  @Input() public definitivo: string;\n  @Output() irActividad: EventEmitter<any> = new EventEmitter();\n  public listaDocumento: RequisitoHojaModel[] = [];\n  public actoAdministrativo: ActoAdministrativoModel;\n  public estadoDescripcion: string;\n  tipoDocSeleccionado: string;\n  nuevoRequisitoContratacion: boolean;\n  verPopupRequisitoContratacion: boolean;\n  epp: boolean;\n  dotacion: boolean;\n  codigoMomento: string;\n  listaEmpresa: any;\n  listaRoles: any;\n\n  constructor(private activeRoute: ActivatedRoute, private formBuilder: FormBuilder, private generalService: GeneralService,\n    private parametrosPipe: ParametrosPipe, private cargarMapas: cargarmapasGlobal, private authService: AuthService,\n    private contratacionBpm: ContratacionBpmService, private cargarArchivo: CargarArchivosService, public utilsService: UtilsService,\n    private encriptadoBasico: EncriptadoBasicoService, private toastService: ToastService, public controlFuncionalidad: CargarControlFuncionalidadService,\n    private actividadFuenteTareaService: ActividadFuenteTareaService) { }\n\n  ngOnInit(): void {\n    this.actoAdministrativo = new ActoAdministrativoModel();\n    this.tipoDocSeleccionado = Constantes.ESPACIO_NULO;\n    this.bpmDocumento = false;\n    this.verPopupRequisitoContratacion = false;\n    this.cargar();\n  }\n\n  cargar() {\n    if (this.llaveTabla) {\n      this.cargarListas();\n      this.cargarInfo();\n      this.cargarCumplido();\n    }\n  }\n\n  async cargarInfo() {\n    this.estadoDescripcion = Constantes.ESPACIO_NULO;\n    let objeto = new GeneralModel('ActoAdministrativoDTO', null, false, { llaveTabla: this.llaveTabla });\n    const actoAdm = await this.generalService.queryForObject(objeto).toPromise();\n    if (actoAdm != null) {\n      this.actoAdministrativo = actoAdm;\n      if (this.actoAdministrativo.nombreCargo != null && this.actoAdministrativo.nombreUnidad != null) {\n        this.actoAdministrativo.nombrePuestoTrabajo = this.actoAdministrativo.nombreCargo + Constantes.ESPACIO_BLANCO + Constantes.DOS_PUNTOS + Constantes.ESPACIO_BLANCO + this.actoAdministrativo.nombreUnidad;\n      }\n      this.actoAdministrativo.nombreCargo = this.actoAdministrativo.cargo + Constantes.DOS_PUNTOS + this.actoAdministrativo.nombreCargo;\n\n    }\n    this.parametrosPipe.LISTAESTADOACTO.forEach(element => {\n      if (this.actoAdministrativo.estado != null) {\n        if (element.codigo == this.actoAdministrativo.estado) {\n          this.actoAdministrativo.estado = element.codigo;\n          this.estadoDescripcion = element.nombre;\n        }\n      }\n    });\n  }\n\n  async cargarListas() {\n    let empresa: EmpresaModel = new EmpresaModel();\n    empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: this.authService.getTokenKey('numeroEmpresa') })).toPromise();\n    this.listaEmpresa = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, { organizacion: empresa.organizacion }));\n    this.listaRoles = await this.cargarMapas.cargarSelectItemString('clasificacion', 'descripcion', new GeneralModel('ClasificacionDTO', null, false, { organizacion: empresa.organizacion, tipo: 'R' }));\n  }\n\n  mostrarNuevoDocumento() {\n    this.verPopupRequisitoContratacion = true;\n    this.nuevoRequisitoContratacion = true;\n  }\n\n  async cargarCumplido() {\n    if (this.bpmDocumento) {\n      let objeto = {\n        llaveTabla: this.llaveTabla,\n        codigoMomento: this.codigoMomento\n      };\n      this.contratacionBpm.cargarListaMomento(objeto).subscribe(data => {\n        this.listaDocumento = data?.resultado;\n      });\n    } else {\n      let filtro: RequisitoHojaModel = new RequisitoHojaModel();\n      filtro.actoAdministrativo = this.llaveTabla;\n      if (this.epp) {\n        filtro.origenElemento = 'O';\n        this.bpmDocumento = true;\n      } else if (this.dotacion) {\n        filtro.origenElemento = 'T';\n        this.bpmDocumento = true;\n      }\n      let objeto = new GeneralModel('RequisitoHojaDTO', 'RequisitoHoja.consultarDocumetoContratacionSinAnular', false, filtro);\n      this.listaDocumento = await this.generalService.queryForList(objeto).toPromise();\n    }\n    if (this.listaDocumento == null || this.listaDocumento.length == 0) {\n      return;\n    }\n  }\n\n  descargarAnexo(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = environment.codigoAplicacion;\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.llave + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = documento.archivo;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  seleccionRegistro(event) {\n    this.tipoDocSeleccionado = event.data.tipoDocumento;\n    this.nuevoRequisitoContratacion = false;\n    this.verPopupRequisitoContratacion = true;\n  }\n\n  regresaPopupRequisitoContratacion() {\n    this.verPopupRequisitoContratacion = false;\n    this.cargarCumplido();\n  }\n\n  async aplicar() {\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'RequisitoHojaDTO', null, this.listaDocumento, { definitivo: this.definitivo, llaveActividad: this.llaveActividad}, null);\n    let data = await this.actividadFuenteTareaService.aplicarDocumentoContratacion(objParametros).toPromise();\n    if(data){\n      this.toastService.showInfo('Procesado Exitosamente');\n      this.irActividad.emit();\n    }\n  }\n\n}\n","<div id=\"id_contratacion\">\n\n    <div class=\"card mt-2\">\n      <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}} {{'contratacion' | translate}}</h5>\n      <div class=\"Inputgroup\">\n            <div class=\"p-fluid p-formgrid grid\">\n              <!-- IDENTIFICACIÓN -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"hojaVidaExiste\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"documento\" [(ngModel)]=\"actoAdministrativo.documento\" [readonly]=\"true\">\n                  <label for=\"documento\">{{'identificacion' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- IDENTIFICACIÓN -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"documento\" [(ngModel)]=\"actoAdministrativo.cedulaDirecta\" [readonly]=\"true\">\n                  <label for=\"documento\">{{'identificacion' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- ESTADO -->\n              <div class=\"field col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"estadoDescripcion\" [(ngModel)]=\"estadoDescripcion\" [readonly]=\"true\">\n                  <label for=\"estadoDescripcion\">{{'estado' | translate}}</label>\n                </span>\n              </div>\n\n              <!-- NOMBRE COMPLETO -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"hojaVidaExiste\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreCompleto\" [(ngModel)]=\"actoAdministrativo.nombreCompleto\" [readonly]=\"true\">\n                  <label for=\"nombreCompleto\">{{'nombre' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- NOMBRE -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreCompleto\" [(ngModel)]=\"actoAdministrativo.nombresDirecto\" [readonly]=\"true\">\n                  <label for=\"nombreCompleto\">{{'nombre' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- PRIMER APELLIDO -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"primerApellido\" [(ngModel)]=\"actoAdministrativo.primerApellidoDirecto\" [readonly]=\"true\" maxlength=\"20\">\n                  <label for=\"primerApellido\">{{'primer' | translate}} {{'apellido' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- SEGUNDO APELLIDO -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"segundoApellido\" [(ngModel)]=\"actoAdministrativo.segundoApellidoDirecto\" [readonly]=\"true\" maxlength=\"20\">\n                  <label for=\"segundoApellido\">{{'segundo' | translate}} {{'apellido' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- EMAIL -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"email\" [(ngModel)]=\"actoAdministrativo.emailDirecto\" [readonly]=\"true\" maxlength=\"50\">\n                  <label for=\"email\">{{'email' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- EMPRESA -->\n              <div class=\"field col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                  <p-dropdown [autoDisplayFirst]=\"false\" id=\"empresa\" [(ngModel)]=\"actoAdministrativo.empresa\" optionLabel=\"label\" optionValue=\"key\" [options]=\"listaEmpresa\"\n                    [readonly]=\"true\" required>\n                  </p-dropdown>\n                  <label htmlFor=\"empresa\">{{'empresa' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- UBICACIÓN FISICA-->\n              <div class=\"field col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreUbicacionFis\" [(ngModel)]=\"actoAdministrativo.nombreUbicacionFis\" [readonly]=\"true\" required>\n                  <label for=\"nombreUbicacionFis\">{{'ubicacionfisica' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- UNIDAD-->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"empresa\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreUnidad\" [(ngModel)]=\"actoAdministrativo.nombreUnidad\" [readonly]=\"true\" required>\n                  <label for=\"nombreUnidad\">{{'unidad' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- PUESTO TRABAJO -->\n              <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"empresa\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombrePuestoTrabajo\" [(ngModel)]=\"actoAdministrativo.nombrePuestoTrabajo\" [readonly]=\"true\" required>\n                  <label for=\"nombrePuestoTrabajo\">{{'puestotrabajo' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- CARGO -->\n              <div class=\"field col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                  <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreCargo\" [(ngModel)]=\"actoAdministrativo.nombreCargo\" [readonly]=\"true\" required>\n                  <label for=\"nombreCargo\">{{'cargo' | translate}} *</label>\n                </span>\n              </div>\n\n              <!-- CLASIFICACIÓN -->\n              <div class=\"field col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                  <p-dropdown [autoDisplayFirst]=\"false\" id=\"clasificacion\" [(ngModel)]=\"actoAdministrativo.clasificacion\" optionLabel=\"label\" optionValue=\"key\"\n                    [options]=\"listaRoles\" [readonly]=\"true\" required>\n                  </p-dropdown>\n                  <label htmlFor=\"clasificacion\">{{'clasificacion' | translate}} *</label>\n                </span>\n              </div>\n\n            </div>\n        </div>\n      </div>\n\n      <!-- DOCUMENTO -->\n      <p-accordion>\n        <p-accordionTab [selected]=\"true\">\n          <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>{{'documento' | translate}}\n          </ng-template>\n          <ng-template pTemplate=\"content\">\n            <div class=\"flex justify-content-end\" *ngIf=\"controlFuncionalidad.getControlFuncionalidad('contra:nuevo') && bpmDocumento || navDesdeActividad\">\n              <button pButton pRipple class=\"mb-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-check\"\n                label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicar()\">\n              </button>\n            </div>\n            <div class=\"flex justify-content-end\" *ngIf=\"'S' == actoAdministrativo.estado && controlFuncionalidad.getControlFuncionalidad('contra:nuevo') \n              && !bpmDocumento && !navDesdeActividad\">\n              <!-- Botón de nuevo-->\n              <button pButton label=\"{{'link_nuevo'| translate}}\"\n                  class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\" type=\"button\"\n                  (click)=\"mostrarNuevoDocumento()\"><span class=\"glyphicons glyphicons-plus\"></span></button>\n            </div>\n            <p-table #tablaGeneral id=\"tabla_lista_documento\" [value]=\"listaDocumento\" responsiveLayout=\"scroll\"\n              [paginator]=\"listaDocumento.length > 10\" selectionMode=\"single\" scrollDirection=\"horizontal\"\n              styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaDocumento.length\"\n              [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n              currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n              (onRowSelect)=\"seleccionRegistro($event)\">\n              <ng-template pTemplate=\"header\">\n                <tr>\n                  <th style=\"width: 30%\">{{'requisito' | translate}}</th>\n                  <th style=\"width: 15%\">{{'estado' | translate}}</th>\n                  <th style=\"width: 15%\">{{'cumplido' | translate}}</th>\n                  <th style=\"width: 15%\">{{'vigencia' | translate}}</th>\n                  <th style=\"width: 15%\">{{'observacion' | translate}}</th>\n                  <th style=\"width: 10%\"></th>\n                </tr>\n                <th></th>\n              </ng-template>\n\n              <ng-template pTemplate=\"body\" let-documento>\n                <tr [pSelectableRow]=\"documento\">\n                  <td *ngIf=\"documento.nombreDocumento != null\" style=\"width: 30%;\">{{documento.nombreDocumento}}</td>\n                  <td *ngIf=\"documento.nombreFormato != null\" style=\"width: 30%;\">{{documento.nombreFormato}}</td>\n                  <td *ngIf=\"documento.nombreElemento != null\" style=\"width: 30%;\">{{documento.nombreElemento}}</td>\n                  <td style=\"width: 15%;\">{{documento.estado | listaConstantesPipe:'listaCumplidoReq'}}</td>\n                  <td style=\"width: 15%;\">{{documento.cumplido | date:('formatofecha' | translate)}}</td>\n                  <td style=\"width: 15%;\">{{documento.vigencia | date:('formatofecha' | translate)}}</td>\n                  <td style=\"width: 15%;\">{{documento.observacion}}</td>\n                  <td *ngIf=\" 'I' == documento.tipo && 'C' == documento.estado\" class=\"flex justify-content-end\">{{documento.ruta}}\n                    <button pButton pRipple class=\"p-element p-ripple p-button-rounded p-button-secondary mb-2 p-button p-component p-button-icon-only\"\n                        icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(documento)\" type=\"file\"></button>\n                  </td>\n                  <td *ngIf=\" 'I' != documento.tipo || 'C' != documento.estado\" style=\"width: 10%;\"></td>\n                </tr>\n              </ng-template>\n              <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n          </ng-template>\n        </p-accordionTab>\n      </p-accordion>\n</div>\n<div *ngIf=\"verPopupRequisitoContratacion\">\n  <app-popup-requisito-contratacion [mostrarPopup]=\"true\" [actoAdministrativo]=\"actoAdministrativo\" [nuevoRequisitoContratacion]=\"nuevoRequisitoContratacion\"\n     (regresar)=\"regresaPopupRequisitoContratacion()\" [tipoDocSeleccionado]=\"tipoDocSeleccionado\"></app-popup-requisito-contratacion>\n</div>\n<p-confirmPopup></p-confirmPopup>\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'contratacionPipe',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ContratacionPipe implements PipeTransform {\n\n  ORIGENCONTRATACION = 'I';\n\n  INGRESA_HOJA = 'S';\n\tHOJA_EXISTE = 'N';\n\n  INGRESA_HOJA_DES = 'Ingresa Hoja Manual';\n\tHOJA_EXISTE_DES = 'Hoja Vida Existe';\n\n  INDICA_HOJA = [\n\t\t{codigo: this.INGRESA_HOJA, nombre: this.INGRESA_HOJA_DES},\n\t\t{codigo: this.HOJA_EXISTE, nombre: this.HOJA_EXISTE_DES},\n\t]\n\n  DATOS_REQUERIMIENTO = 'R';\n\tDATOS_SELECCION = 'S';\n\tNO_APLICA = 'N';\n\n\tDATOS_REQUERIMIENTO_DES = 'Datos de un Requerimiento';\n\tDATOS_SELECCION_DES = 'Datos de una Seleccion';\n\tNO_APLICA_DES = 'No aplica';\n\n  INDICA_DATO = [\n\t\t{codigo: this.DATOS_REQUERIMIENTO, nombre: this.DATOS_REQUERIMIENTO_DES},\n\t\t{codigo: this.DATOS_SELECCION, nombre: this.DATOS_SELECCION_DES},\n    {codigo: this.NO_APLICA, nombre: this.NO_APLICA_DES},\n\t]\n\n  ESTADOPROCESO = 'P';\n\tESTADOEJECUTADO = 'E';\n\tESTADOCERRADO = 'C';\n\tESTADOANULADO = 'A';\n\tESTADOCERRADOANULADO = 'D';\n\tESTADOBLOQUEADO = 'B';\n  ESTADOCERRADOSISTEMA = 'Y';\n\n  ESTADOPROCESO_DESC = 'Proceso';\n\tESTADOEJECUTADO_DESC = 'Ejecutado';\n\tESTADOCERRADO_DESC = 'Cerrado';\n\tESTADOANULADO_DESC = 'Anulado';\n\tESTADOCERRADOANULADO_DESC = 'Cerrado Anulado';\n\tESTADOBLOQUEADO_DESC = 'Bloqueado';\n  ESTADOCERRADOSISTEMA_DESC = 'Cerrado Anulado Sistema';\n\n  ESTADOS = [\n\t\t{codigo: this.ESTADOPROCESO, nombre: this.ESTADOPROCESO_DESC},\n\t\t{codigo: this.ESTADOEJECUTADO, nombre: this.ESTADOEJECUTADO_DESC},\n    {codigo: this.ESTADOCERRADO, nombre: this.ESTADOCERRADO_DESC},\n    {codigo: this.ESTADOANULADO, nombre: this.ESTADOANULADO_DESC},\n    {codigo: this.ESTADOCERRADOANULADO, nombre: this.ESTADOCERRADOANULADO_DESC},\n    {codigo: this.ESTADOBLOQUEADO, nombre: this.ESTADOBLOQUEADO_DESC},\n    {codigo: this.ESTADOCERRADOSISTEMA, nombre: this.ESTADOCERRADOSISTEMA_DESC},\n\t]\n\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaEstado') { this.ESTADOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ActoAdministrativoModel } from '../../../../../modules/actos/models/ActoAdministrativoModel';\nimport { EmpresaModel } from '../../../../../modules/compensacion/models/EmpresaModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { AuthService, FuenteGeneralModel, FuenteServicioModel, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ParametrosPipe } from '../../../../../shared/pipes/parametros.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ActividadFuenteTareaModel } from '../../../models/ActividadFuenteTareaModel';\nimport { ContratacionPipe } from '../../../pipes/contratacion.pipe';\nimport { OrigenEventoModel } from '../../../../../modules/capacitacion/models/OrigenEventoModel';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\nimport { ContratacionBpmService } from '../../../services/contratacion-bpm.service';\nimport { RequisitoHojaModel } from '../../../models/RequisitoHojaModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { AccordionModule } from 'primeng/accordion';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ContratacionMenuPage } from '../contratacion-menu/contratacion-menu.page';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { NgIf } from '@angular/common';\n\n@Component({\n  selector: 'app-editar-contratacion-actividad',\n  templateUrl: './editar-actividad.page.html',\n  styleUrls: ['./editar-actividad.page.scss'],\n  standalone: true,\n  imports: [ButtonDirective, Ripple, ContratacionMenuPage, FormsModule,\n    ReactiveFormsModule, InputTextModule, DropdownModule, AccordionModule,\n    PrimeTemplate, TableModule, TemplateTablaVaciaComponent, CheckboxModule, TranslateModule, ContratacionPipe,\n    EjecucionEncuestaComponent, NgIf]\n})\nexport class EditarActividadPage implements OnInit {\n\n  @ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n  @Input() public llaveTabla: string;\n  @Output() irDocumento: EventEmitter<any> = new EventEmitter();\n  public listaActividades: ActividadFuenteTareaModel[] = [];\n  public listaDocumento: RequisitoHojaModel[] = [];\n  public actoAdministrativo: ActoAdministrativoModel;\n  public actividadSeleccionada: ActividadFuenteTareaModel;\n  public definitivo: string;\n  formDetalleActividad: FormGroup;\n  check: boolean;\n  codigoMomento: string;\n  llaveActividad: string;\n  hojaVidaExiste: boolean;\n  realizarActividad: boolean;\n  bpmDocumento: boolean;\n  encuesta: boolean;\n  dotacion: boolean;\n  verCabecera: boolean;\n  epp: boolean;\n  verActividad : boolean;\n  verAnulacion : boolean;\n  verFlexible : boolean;\n  verDocumento: boolean;\n  verContratacion: boolean;\n  listaEmpresa: any;\n  listaRoles: any;\n  listaEstado: any;\n\n  listaLineaCostoEmpresa: any;\n\n\n  constructor(private activeRoute: ActivatedRoute, private router: Router, private generalService: GeneralService, public utilsService: UtilsService,\n    private cargarMapas: cargarmapasGlobal, private authService: AuthService, private formBuilder: FormBuilder, private parametrosPipe: ParametrosPipe,\n    private contratacionPipe: ContratacionPipe, private workFlowPipe: WorkflowPipe, private toastService: ToastService, private contratacionBpm: ContratacionBpmService) { }\n\n\n  ngOnInit(): void {\n    this.actoAdministrativo = new ActoAdministrativoModel();\n    this.check = true;\n    this.cargarFormularios();\n    this.cargar();\n  }\n\n  cargarFormularios() {\n    this.formDetalleActividad = this.formBuilder.group({\n      llaveTabla: new FormControl(this.actoAdministrativo.llaveTabla),\n      documento: new FormControl(this.actoAdministrativo.documento),\n      estado: new FormControl(this.actoAdministrativo.estado),\n      estadoDescripcion: new FormControl(this.actoAdministrativo.estado),\n      nombreCompleto: new FormControl(this.actoAdministrativo.nombreCompleto),\n      empresa: new FormControl(this.actoAdministrativo.empresa),\n      ubicacionFis: new FormControl(this.actoAdministrativo.ubicacionFis),\n      nombreUbicacionFis: new FormControl(this.actoAdministrativo.nombreUbicacionFis),\n      unidad: new FormControl(this.actoAdministrativo.unidad),\n      nombreUnidad: new FormControl(this.actoAdministrativo.nombreUnidad),\n      puestoTrabajo: new FormControl(this.actoAdministrativo.puestoTrabajo),\n      nombrePuestoTrabajo: new FormControl(this.actoAdministrativo.nombrePuestoTrabajo),\n      cargo: new FormControl(this.actoAdministrativo.cargo),\n      nombreCargo: new FormControl(this.actoAdministrativo.nombreCargo),\n      clasificacion: new FormControl(this.actoAdministrativo.clasificacion),\n    });\n  }\n\n  cargar() {\n    if (this.llaveTabla) {\n      this.cargarListas();\n      this.cargarInfo();\n    }\n  }\n\n  async cargarInfo() {\n    let objeto = new GeneralModel('ActoAdministrativoDTO', null, false, { llaveTabla: this.llaveTabla });\n    const actoAdm = await this.generalService.queryForObject(objeto).toPromise();\n    if (actoAdm != null) {\n      this.actoAdministrativo = actoAdm;\n      this.formDetalleActividad.patchValue(this.actoAdministrativo);\n      this.formDetalleActividad.get('nombreCargo').setValue(this.actoAdministrativo.cargo + Constantes.DOS_PUNTOS + this.actoAdministrativo.nombreCargo);\n      this.formDetalleActividad.get('nombrePuestoTrabajo').setValue(this.actoAdministrativo.nombreCargo + Constantes.ESPACIO_BLANCO + Constantes.DOS_PUNTOS + Constantes.ESPACIO_BLANCO + this.actoAdministrativo.nombreUnidad);\n    }\n    this.parametrosPipe.LISTAESTADOACTO.forEach(element => {\n      if (this.actoAdministrativo.estado != null) {\n        if (element.codigo == this.actoAdministrativo.estado) {\n          this.formDetalleActividad.get('estado').setValue(element.codigo);\n          this.formDetalleActividad.get('estadoDescripcion').setValue(element.nombre);\n        }\n      }\n    });\n    this.cargarActividades();\n  }\n\n  async cargarListas() {\n    let empresa: EmpresaModel = new EmpresaModel();\n    empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: this.authService.getTokenKey('numeroEmpresa') })).toPromise();\n    this.listaEmpresa = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, { organizacion: empresa.organizacion }));\n    this.listaRoles = await this.cargarMapas.cargarSelectItemString('clasificacion', 'descripcion', new GeneralModel('ClasificacionDTO', null, false, { organizacion: empresa.organizacion, tipo: 'R' }));\n    this.listaEstado = this.contratacionPipe.ESTADOS;\n  }\n\n\n  async cargarActividades() {\n    let objetoFiltro = {\n      estado: this.check == true ? 'P' : null,\n      origen: 'C',\n      llaveTablaBase: this.llaveTabla\n    }\n    let objeto = new GeneralModel('ActividadFuenteTareaDTO', null, false, objetoFiltro);\n    this.listaActividades = await this.generalService.queryForList(objeto).toPromise();\n  }\n\n  async seleccionRegistroActividad(event) {\n    if (event?.data) {\n      this.actividadSeleccionada = new ActividadFuenteTareaModel();\n      this.actividadSeleccionada = event.data;\n      this.actividadSeleccionada = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, { llaveTabla: this.actividadSeleccionada.llaveTabla })).toPromise();\n      await this.validarHojaVidaExiste(this.actoAdministrativo);\n\n      let fuenteServicio: FuenteServicioModel = new FuenteServicioModel();\n      if (this.actividadSeleccionada != null && this.actividadSeleccionada.fuenteServicio != null) {\n        fuenteServicio = await this.generalService.queryForObject(new GeneralModel('FuenteServicioDTO', null, false, { llaveTabla: this.actividadSeleccionada.fuenteServicio })).toPromise();\n        if (this.workFlowPipe.ESTADOCERRADO == this.actividadSeleccionada.estado && !(this.workFlowPipe.TIPOEVENTOHUMANOENCUESTA.toUpperCase() == fuenteServicio.tipo.toUpperCase())) {\n          this.toastService.showError('La actividad ya fué cerrada');\n          return;\n        }\n        let fuenteGeneral: FuenteGeneralModel = new FuenteGeneralModel();\n        fuenteGeneral = await this.generalService.queryForObject(new GeneralModel('FuenteGeneralDTO', null, false, { llaveTabla: fuenteServicio.fuente })).toPromise();\n        if (this.workFlowPipe.TIPOEVENTOINTERACCION.toUpperCase() == fuenteServicio.tipo.toUpperCase()) {\n          if(fuenteServicio.servicio != null){\n            this.ejecutarMetodoDinamico(String(fuenteServicio.servicio));\n          }\n        } else if (this.workFlowPipe.TIPOEVENTOHUMANOENCUESTA.toUpperCase() == fuenteServicio.tipo.toUpperCase()) {\n          this.verEncuesta(this.actividadSeleccionada, fuenteServicio.encuesta.toString());\n        }\n      } else {\n        this.toastService.showError('La actividad no tiene datos disponibles');\n      }\n    }\n  }\n\n\n  ejecutarMetodoDinamico(nombreMetodo: string) {\n    if (typeof this[nombreMetodo] === 'function') {\n      this[nombreMetodo]();\n    }\n  }\n\n  async metodoDocumento() {\n    let acto: ActoAdministrativoModel = new ActoAdministrativoModel();\n    acto.llaveTabla = this.actividadSeleccionada.llaveTablaBase;\n    const actoAdm = await this.generalService.queryForObject(new GeneralModel('ActoAdministrativoDTO', null, false, acto)).toPromise();\n    if (actoAdm == null) {\n      this.toastService.showError('No existe el registro de contratacion asociado a la actividad');\n      return;\n    }\n    if ('C' == actoAdm.estado) {\n      this.toastService.showError('El registro no se encuentra en proceso');\n      return;\n    }\n    this.actoAdministrativo = actoAdm;\n    this.validarHojaVidaExiste(this.actoAdministrativo);\n    this.llaveActividad = this.actividadSeleccionada.llaveTabla;\n    let actividadFuenteTarea: ActividadFuenteTareaModel = new ActividadFuenteTareaModel();\n    actividadFuenteTarea.llaveTabla = this.llaveActividad;\n    actividadFuenteTarea = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividadFuenteTarea)).toPromise();\n    this.encuesta = false;\n    this.bpmDocumento = false;\n    this.epp = false;\n    this.dotacion = false;\n    this.ocultarOpciones();\n    this.verDocumento = true;\n    if(this.actoAdministrativo != null){\n      this.validarEmpresa(this.actoAdministrativo.empresa);\n      this.cargarCumplido();\n    }\n    this.verCabecera = true;\n    if(this.verDocumento || this.bpmDocumento){\n      this.irDocumento.emit({bpmDocumento : this.bpmDocumento, llaveActividad : this.llaveActividad, definitivo : this.definitivo});\n    }\n  }\n\n\n  async registrarFlexible() {\n    let acto: ActoAdministrativoModel = new ActoAdministrativoModel();\n    acto.llaveTabla = this.actividadSeleccionada.llaveTablaBase;\n    const actoAdm = await this.generalService.queryForObject(new GeneralModel('ActoAdministrativoDTO', null, false, acto)).toPromise();\n    if (actoAdm == null) {\n      this.toastService.showError('No existe el registro de contratacion asociado a la actividad');\n      return;\n    }\n    this.actoAdministrativo = actoAdm;\n    this.validarHojaVidaExiste(this.actoAdministrativo);\n    this.llaveActividad = this.actividadSeleccionada.llaveTabla;\n    let actividadFuenteTarea: ActividadFuenteTareaModel = new ActividadFuenteTareaModel();\n    actividadFuenteTarea.llaveTabla = this.llaveActividad;\n    actividadFuenteTarea = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividadFuenteTarea)).toPromise();\n    this.encuesta = false;\n    this.bpmDocumento = true;\n    this.epp = false;\n    this.dotacion = false;\n    this.ocultarOpciones();\n    this.verFlexible = true;\n    if(this.actoAdministrativo != null){\n      this.validarEmpresa(this.actoAdministrativo.empresa);\n    }\n    this.verCabecera = true;\n  }\n\n  async controlarElementos() {\n    let acto: ActoAdministrativoModel = new ActoAdministrativoModel();\n    acto.llaveTabla = this.actividadSeleccionada.llaveTablaBase;\n    const actoAdm = await this.generalService.queryForObject(new GeneralModel('ActoAdministrativoDTO', null, false, acto)).toPromise();\n    if (actoAdm == null) {\n      this.toastService.showError('No existe el registro de contratacion asociado a la actividad');\n      return;\n    }\n    this.actoAdministrativo = actoAdm;\n    this.validarHojaVidaExiste(this.actoAdministrativo);\n    this.llaveActividad = this.actividadSeleccionada.llaveTabla;\n    let actividadFuenteTarea: ActividadFuenteTareaModel = new ActividadFuenteTareaModel();\n    actividadFuenteTarea.llaveTabla = this.llaveActividad;\n    actividadFuenteTarea = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividadFuenteTarea)).toPromise();\n    this.encuesta = false;\n    this.bpmDocumento = false;\n    this.epp = false;\n    this.ocultarOpciones();\n    this.verDocumento = true;\n    if(this.actoAdministrativo != null){\n      this.epp = true;\n      this.cargarCumplido();\n    }\n    if(this.verDocumento || this.bpmDocumento){\n      this.irDocumento.emit({bpmDocumento : this.bpmDocumento, llaveActividad : this.llaveActividad, definitivo : this.definitivo});\n    }\n  }\n\n  async controlarDotacion() {\n    let acto: ActoAdministrativoModel = new ActoAdministrativoModel();\n    acto.llaveTabla = this.actividadSeleccionada.llaveTablaBase;\n    const actoAdm = await this.generalService.queryForObject(new GeneralModel('ActoAdministrativoDTO', null, false, acto)).toPromise();\n    if (actoAdm == null) {\n      this.toastService.showError('No existe el registro de contratacion asociado a la actividad');\n      return;\n    }\n    this.actoAdministrativo = actoAdm;\n    this.validarHojaVidaExiste(this.actoAdministrativo);\n    this.llaveActividad = this.actividadSeleccionada.llaveTabla;\n    let actividadFuenteTarea: ActividadFuenteTareaModel = new ActividadFuenteTareaModel();\n    actividadFuenteTarea.llaveTabla = this.llaveActividad;\n    actividadFuenteTarea = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividadFuenteTarea)).toPromise();\n    this.encuesta = false;\n    this.bpmDocumento = false;\n    this.epp = false;\n    this.ocultarOpciones();\n    this.verDocumento = true;\n    if(this.actoAdministrativo != null){\n      this.dotacion = true;\n      this.cargarCumplido();\n    }\n    if(this.verDocumento || this.bpmDocumento){\n      this.irDocumento.emit({bpmDocumento : this.bpmDocumento, llaveActividad : this.llaveActividad, definitivo : this.definitivo});\n    }\n  }\n\n\n  ocultarOpciones() {\n    this.verContratacion = false;\n    this.verDocumento = false;\n    this.verActividad = false;\n    this.verAnulacion = false;\n    this.verFlexible = false;\n  }\n\n\n  async verEncuesta(actividad: ActividadFuenteTareaModel, llaveEncuesta: string) {\n    if (actividad != null) {\n      this.actividadSeleccionada = new ActividadFuenteTareaModel();\n      this.actividadSeleccionada = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, { llaveTabla: actividad.llaveTabla })).toPromise();\n      this.bpmDocumento = false;\n      this.encuesta = true;\n      this.dotacion = false;\n      this.epp = false;\n      this.verContratacion = true;\n      this.actoAdministrativo = new ActoAdministrativoModel();\n      this.actoAdministrativo = await this.generalService.queryForObject(new GeneralModel('ActoAdministrativoDTO', null, false, { llaveTabla: this.actividadSeleccionada.llaveTablaBase })).toPromise();\n      await this.validarEmpresa(this.actoAdministrativo.empresa);\n      await this.validarHojaVidaExiste(this.actoAdministrativo);\n      await this.utilsService.sleep(300);\n      await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, this.actoAdministrativo, true);\n    }\n  }\n\n  async validarEmpresa(empresa: number) {\n    this.listaLineaCostoEmpresa = [];\n    this.listaLineaCostoEmpresa = await this.cargarMapas.cargarSelectItemString('lineaCosto', 'descripcion', new GeneralModel('LineaCostoDTO', null, false, { empresa: empresa }));\n  }\n\n  async cargarCumplido() {\n    if (this.bpmDocumento) {\n      let objeto = {\n        llaveTabla: this.llaveTabla,\n        codigoMomento: this.codigoMomento\n      };\n      this.contratacionBpm.cargarListaMomento(objeto).subscribe(data => {\n        this.listaDocumento = data?.resultado;\n      });\n    } else {\n      let filtro: RequisitoHojaModel = new RequisitoHojaModel();\n      filtro.actoAdministrativo = this.llaveTabla;\n      if (this.epp) {\n        filtro.origenElemento = 'O';\n        this.bpmDocumento = true;\n      } else if (this.dotacion) {\n        filtro.origenElemento = 'T';\n        this.bpmDocumento = true;\n      }\n      let objeto = new GeneralModel('RequisitoHojaDTO', 'RequisitoHoja.consultarDocumetoContratacionSinAnular', false, filtro);\n      this.listaDocumento = await this.generalService.queryForList(objeto).toPromise();\n    }\n    if (this.listaDocumento == null || this.listaDocumento.length == 0) {\n      return;\n    }\n  }\n\n\n  async validarHojaVidaExiste(actoAdmin: ActoAdministrativoModel) {\n    if (actoAdmin.origenEvento != null) {\n      let origenEvento: OrigenEventoModel = new OrigenEventoModel();\n      origenEvento = await this.generalService.queryForObject(new GeneralModel('OrigenEventoDTO', null, false, { llaveTabla: actoAdmin.origenEvento })).toPromise();\n      this.hojaVidaExiste = this.contratacionPipe.HOJA_EXISTE == origenEvento.indicaHoja ? true : false;\n    }\n  }\n\n  cambiarEstadoCheck(event) {\n    this.check = event.checked ? true : false;\n    this.cargarActividades();\n  }\n\n  regresarListadoActividad() {\n    this.encuesta = false;\n    this.cargarActividades();\n  }\n\n}\n","<div id=\"id_contratacion\">\n\n  <div class=\"card mt-2\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}} {{'Actividad' | translate}}</h5>\n    <div class=\"Inputgroup\">\n        <form [formGroup]=\"formDetalleActividad\" #formulario=\"ngForm\">\n          <div class=\"p-fluid p-formgrid grid\">\n            <!-- IDENTIFICACIÓN -->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"documento\" formControlName=\"documento\" [readonly]=\"true\">\n                <label for=\"documento\">{{'identificacion' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- ESTADO -->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"estadoDescripcion\" formControlName=\"estadoDescripcion\" [readonly]=\"true\">\n                <label for=\"estadoDescripcion\">{{'estado' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- NOMBRE COMPLETO -->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreCompleto\" formControlName=\"nombreCompleto\" [readonly]=\"true\" required>\n                <label for=\"nombreCompleto\">{{'nombre' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- EMPRESA -->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <p-dropdown [autoDisplayFirst]=\"false\" id=\"empresa\" formControlName=\"empresa\" optionLabel=\"label\" optionValue=\"key\" [options]=\"listaEmpresa\"\n                  [readonly]=\"true\" required>\n                </p-dropdown>\n                <label htmlFor=\"empresa\">{{'empresa' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- UBICACIÓN FISICA-->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreUbicacionFis\" formControlName=\"nombreUbicacionFis\" [readonly]=\"true\" required>\n                <label for=\"nombreUbicacionFis\">{{'ubicacionfisica' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- UNIDAD-->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreUnidad\" formControlName=\"nombreUnidad\" [readonly]=\"true\" required>\n                <label for=\"nombreUnidad\">{{'unidad' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- PUESTO TRABAJO -->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombrePuestoTrabajo\" formControlName=\"nombrePuestoTrabajo\" [readonly]=\"true\" required>\n                <label for=\"nombrePuestoTrabajo\">{{'puestotrabajo' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- CARGO -->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreCargo\" formControlName=\"nombreCargo\" [readonly]=\"true\" required>\n                <label for=\"nombreCargo\">{{'cargo' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- CLASIFICACIÓN -->\n            <div class=\"field col-12 md:col-3 lg:col-3\">\n              <span class=\"p-float-label\">\n                <p-dropdown [autoDisplayFirst]=\"false\" id=\"clasificacion\" formControlName=\"clasificacion\" optionLabel=\"label\" optionValue=\"key\"\n                  [options]=\"listaRoles\" [readonly]=\"true\" required>\n                </p-dropdown>\n                <label htmlFor=\"clasificacion\">{{'clasificacion' | translate}} *</label>\n              </span>\n            </div>\n\n          </div>\n        </form>\n      </div>\n    </div>\n\n    <!-- ACTIVIDAD -->\n    <p-accordion *ngIf=\"!encuesta\">\n      <p-accordionTab [selected]=\"true\">\n        <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>{{'actividad' | translate}}\n        </ng-template>\n        <ng-template pTemplate=\"content\">\n          <p-table #tablaGeneral id=\"tabla_lista_actividad\" [value]=\"listaActividades\" responsiveLayout=\"scroll\"\n            [paginator]=\"listaActividades.length > 10\" selectionMode=\"single\" scrollDirection=\"horizontal\"\n            styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaActividades.length\"\n            [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'45rem'}\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n            (onRowSelect)=\"seleccionRegistroActividad($event)\">\n            <ng-template pTemplate=\"header\">\n              <tr style=\"width: 100%;\">\n                <th style=\"width: 15%;\">\n                  <p-checkbox [(ngModel)]=\"check\" (onChange)=\"cambiarEstadoCheck($event)\" [binary]=\"true\">\n                  </p-checkbox>\n                </th>\n                <th style=\"width: 25%\">{{'descripcion' | translate}}</th>\n                <th style=\"width: 30%\">{{'datosadicionales' | translate}}</th>\n                <th style=\"width: 15%\">{{'orden' | translate}}</th>\n                <th style=\"width: 15%\">{{'estado' | translate}}</th>\n              </tr>\n              <th></th>\n            </ng-template>\n\n            <ng-template pTemplate=\"body\" let-actividad>\n              <tr [pSelectableRow]=\"actividad\" style=\"width: 100%;\">\n                <td style=\"width: 15%;\"></td>\n                <td style=\"width: 25%;\">{{actividad.descripcion}}</td>\n                <td style=\"width: 30%;\">\n                  <div class=\"p-2\">\n                    <label class=\"font-medium\">{{'responsable' | translate}} :</label>\n                    {{actividad.nombreResponsable}}\n                  </div>\n                  <div class=\"p-2\">\n                    <label class=\"font-medium\">{{'tarea' | translate}} :</label>\n                    {{actividad.descripcionTarea}}\n                  </div>\n                </td>\n                <td style=\"width: 15%;\">{{actividad.orden}}</td>\n                <td style=\"width: 15%;\">{{actividad.estado | contratacionPipe:'listaEstado'}}</td>\n              </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>          </p-table>\n        </ng-template>\n      </p-accordionTab>\n    </p-accordion>\n\n    <app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarListadoActividad()\"></app-ejecucion-encuesta>\n\n</div>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\n\n\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ActoAdministrativoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  eliminarContratacion(general : any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/actoadministrativo/eliminarContratacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  crearActoAdministrativo(general : any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/actoadministrativo/crearActoAdministrativo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  anularProcesoContratacion(general : any): Observable<any> {\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/actoadministrativo/anularProcesoContratacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ActoAdministrativoModel } from '../../../../../modules/actos/models/ActoAdministrativoModel';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { ParametrosPipe } from '../../../../../shared/pipes/parametros.pipe';\nimport { EmpresaModel } from '../../../../../modules/compensacion/models/EmpresaModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { VinculacionLaboralModel } from '../../../../../modules/compensacion/models/VinculacionLaboralModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ConfirmationService } from 'primeng/api';\nimport { ActoAdministrativoService } from '../../../services/acto-administrativo.service';\nimport { OrigenEventoModel } from '../../../../../modules/capacitacion/models/OrigenEventoModel';\nimport { ContratacionPipe } from '../../../pipes/contratacion.pipe';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { environment } from '../../../../../../environments/environment';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PopupProcesoSeleccionComponent } from '../../../popups/popup-proceso-seleccion/popup-proceso-seleccion.component';\nimport { PopupRequerimientoComponent } from '../../../popups/popup-requerimiento/popup-requerimiento.component';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputHelperSeleccionCargoComponent } from '../../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component';\nimport { PopupContratacionPuestoTrabajoComponent } from '../../../popups/popup-contratacion-puesto-trabajo/popup-contratacion-puesto-trabajo.component';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperSeleccionUbicacionFisicaComponent } from '../../../../../shared/componentes/input-helper-seleccion-ubicacion-fisica/input-helper-seleccion-ubicacion-fisica.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { ContratacionMenuPage } from '../contratacion-menu/contratacion-menu.page';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { EditarDocumentoPage } from '../editar-documento/editar-documento.page';\nimport { EditarActividadPage } from '../editar-actividad/editar-actividad.page';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { ActividadFuenteTareaModel } from '../../../models/ActividadFuenteTareaModel';\nimport { HojaVidaPipe } from '../../../../../shared/pipes/hojavida.pipe';\n\n@Component({\n  selector: 'app-editar-contratacion',\n  templateUrl: './editar-contratacion.page.html',\n  styleUrls: ['./editar-contratacion.page.scss'],\n  standalone: true,\n  imports: [ButtonDirective, Ripple, ContratacionMenuPage, FormsModule, ReactiveFormsModule, InputHelperHojaVidaComponent, NgIf, InputTextModule, DropdownModule\n    , InputHelperSeleccionUbicacionFisicaComponent, InputHelperUnidadComponent, PopupContratacionPuestoTrabajoComponent\n    , InputHelperSeleccionCargoComponent, InputHelperSeleccionZonaCentroComponent, CalendarModule, InputTextareaModule, FileUploadModule\n    , PopupRequerimientoComponent, PopupProcesoSeleccionComponent, ConfirmPopupModule, TranslateModule, EditarDocumentoPage, EditarActividadPage\n    , EjecucionEncuestaComponent]\n})\nexport class EditarContratacionPage implements OnInit {\n\n  @ViewChild('formContratacion', { static: false }) formContratacion!: NgForm;\n  @ViewChild('formAnular', { static: false }) formAnular!: NgForm;\n  @Input() public llaveTabla: string;\n  @Input() public llaveOrigen: string;\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n  public actoAdministrativo: ActoAdministrativoModel;\n  public origenSeleccionado: OrigenEventoModel;\n  public vistaMenuVisualizar: string;\n  public requerimientoSeleccionado: RequerimientoPersonalModel;\n  public procesoSeleccionado: ProcesoSeleccionModel;\n  public archivoSeleccionado: File;\n  public vistaVisualizar: string;\n  public nombreArchivo: string;\n  public cedulaDirecta: string;\n  public archivo: string;\n  public extensionesPermitidas: string[];\n  public estadoDescripcion: string;\n  public definitivo: string;\n  public llaveActividad: string;\n  public clickGuardar : boolean;\n  public bpmDocumento : boolean;\n  public verDocumento : boolean;\n  public navDesdeActividad : boolean;\n  origenEvento: OrigenEventoModel;\n  bloqueo: string;\n  label: string;\n  isNew: boolean;\n  empresa: boolean;\n\n  verPopupRequerimiento: boolean;\n  verPopupProcesoSeleccion: boolean;\n\n  headerIdentificacion: string;\n  headerUnidad: string;\n  headerPuestoTrabajo: string;\n  headerCargo: string;\n  headerZonaEconomica: string;\n  headerUbicacionFisica: string;\n  headerJefeInmediato: string;\n  hojaVidaExiste: boolean;\n  verFechaTermina: boolean;\n\n  motivoAnulacion: string;\n\n  listaEmpresa: any;\n  lineaCosto: any;\n  listaRoles: any;\n  listaVinculacion: any;\n  listaTurno: any;\n  listaTipoPeriodo: any;\n  listaTipoContratacion: any;\n  listaSiNo: any;\n\n  //BPM\n  public encuesta: boolean = false;\n  @ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n\n  constructor(private generalService: GeneralService, private formBuilder: FormBuilder,\n    private parametrosPipe: ParametrosPipe, private cargarMapas: cargarmapasGlobal, private translateService: TranslateService, private authService: AuthService,\n    private generalPipe: GeneralPipe, private toastService: ToastService, private confirmationService: ConfirmationService, public utilsService: UtilsService,\n    private actoAdministrativoService: ActoAdministrativoService, private contratacionPipe: ContratacionPipe, private notificacionesService: ToastService,\n    private cargarArchivoService: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService, private menuService: MenuService, private hojaVidaPipe : HojaVidaPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService) { }\n\n  ngOnInit(): void {\n    this.menuService.setBreadcrumb([{\n      label: this.translateService.instant('listado') + Constantes.ESPACIO_BLANCO + this.translateService.instant('contratacion'),\n      command: (event) => this.regresarVistaPrincipal()\n    },\n    { label: this.translateService.instant('mantenimiento') + Constantes.ESPACIO_BLANCO + this.translateService.instant('contratacion') }\n    ]);\n    this.cargarHeaders();\n    this.cargar();\n  }\n\n  cargarHeaders() {\n    this.headerIdentificacion = this.translateService.instant('identificacion') + ' *';\n    this.headerUbicacionFisica = this.translateService.instant('ubicacionfisica');\n    this.headerUnidad = this.translateService.instant('unidad') + ' *';\n    this.headerPuestoTrabajo = this.translateService.instant('puestotrabajo');\n    this.headerCargo = this.translateService.instant('cargo') + ' *';\n    this.headerZonaEconomica = this.translateService.instant('zonaeconomica') + ' *';\n    this.headerJefeInmediato = this.translateService.instant('jefeinmediato');\n  }\n\n  async cargar() {\n    this.actoAdministrativo = new ActoAdministrativoModel();\n    this.origenSeleccionado = new OrigenEventoModel();\n    this.requerimientoSeleccionado = new RequerimientoPersonalModel();\n    this.procesoSeleccionado = new ProcesoSeleccionModel();\n    this.empresa = false;\n    this.navDesdeActividad = false;\n    this.verPopupRequerimiento = false;\n    this.verPopupProcesoSeleccion = false;\n    this.nombreArchivo = null;\n    this.vistaVisualizar = 'contratacion';\n    this.cedulaDirecta = '';\n    this.label = null;\n    this.extensionesPermitidas = ['pdf', 'PDF'];\n    this.verFechaTermina = false;\n    await this.cargarListas();\n    if (this.llaveTabla) {\n      this.vistaMenuVisualizar = 'opciones';\n      await this.cargarInfo();\n      this.isNew = false;\n    } else if (this.llaveOrigen) {\n      this.vistaMenuVisualizar = '';\n      await this.cargarOrigen();\n      this.isNew = true;\n      this.actoAdministrativo.estado = this.parametrosPipe.SOLICITADO;\n      this.estadoDescripcion = this.parametrosPipe.SOLICITADO_DES;\n    }\n  }\n\n\n  async cargarOrigen() {\n    let objeto = new GeneralModel('OrigenEventoDTO', null, false, { llaveTabla: this.llaveOrigen });\n    this.origenSeleccionado = await this.generalService.queryForObject(objeto).toPromise();\n    if (this.origenSeleccionado != null && this.contratacionPipe.DATOS_REQUERIMIENTO == this.origenSeleccionado.indicaDatos) {\n      this.verPopupRequerimiento = true;\n    } else if (this.origenSeleccionado != null && this.contratacionPipe.DATOS_SELECCION == this.origenSeleccionado.indicaDatos) {\n      this.verPopupProcesoSeleccion = true;\n    }\n    this.hojaVidaExiste = this.contratacionPipe.HOJA_EXISTE == this.origenSeleccionado.indicaHoja ? true : false;\n    this.validarEmpresa(null)\n  }\n\n\n  async cargarInfo() {\n    let objeto = new GeneralModel('ActoAdministrativoDTO', null, false, { llaveTabla: this.llaveTabla });\n    const actoAdm = await this.generalService.queryForObject(objeto).toPromise();\n    if (actoAdm != null) {\n      this.hojaVidaExiste = true;\n      this.actoAdministrativo = actoAdm;\n      this.cedulaDirecta = this.actoAdministrativo.documento != null ? this.actoAdministrativo.documento : String(this.actoAdministrativo.cedulaDirecta);\n      await this.validarHojaVidaExiste();\n      const fechaContrato = new Date(this.actoAdministrativo.fechaContrato);\n      this.actoAdministrativo.fechaContrato = new Date(fechaContrato.toString());\n      if (this.actoAdministrativo.terminaContrato != null) {\n        const fechaTerminaContrato = new Date(this.actoAdministrativo.terminaContrato);\n        this.actoAdministrativo.terminaContrato = new Date(fechaTerminaContrato.toString());\n      }\n      if (this.actoAdministrativo.fechaAnulacion != null) {\n        const fechaAnulacion = new Date(this.actoAdministrativo.fechaAnulacion);\n        this.actoAdministrativo.fechaAnulacion = new Date(fechaAnulacion.toString());\n      }\n      if (this.actoAdministrativo.nombrePuestoTrabajo == null) {\n        if (this.actoAdministrativo.puestoTrabajo == null) {\n          this.actoAdministrativo.nombrePuestoTrabajo = null;\n        } else {\n          this.actoAdministrativo.nombrePuestoTrabajo = this.actoAdministrativo.nombreCargo + \" : \" + this.actoAdministrativo.nombreUnidad;\n        }\n      }\n    }\n    this.parametrosPipe.LISTAESTADOACTO.forEach(element => {\n      if (this.actoAdministrativo.estado != null) {\n        if (element.codigo == this.actoAdministrativo.estado) {\n          this.actoAdministrativo.estado = element.codigo;\n          this.estadoDescripcion = element.nombre;\n        }\n      }\n    });\n    await this.cambioVinculacion(this.actoAdministrativo.vinculacion);\n    this.bloqueo = 'bloqueo';\n  }\n\n  regresarVistaPrincipal() {\n    this.regresar.emit();\n  }\n\n  onSelectIdentificacion(event) {\n    this.actoAdministrativo.documento = event.documento;\n    this.actoAdministrativo.identifica = event.identifica;\n    this.actoAdministrativo.nombreCompleto = event.nombreCompleto;\n  }\n\n  onSelectUbicacionFisica(event) {\n    this.actoAdministrativo.ubicacionFis = event.ubicacionFisica;\n    this.actoAdministrativo.nombreUbicacionFis = event.descripcion;\n  }\n\n\n  async cargarListas() {\n    let empresa: EmpresaModel = new EmpresaModel();\n    empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: this.authService.getTokenKey('numeroEmpresa') })).toPromise();\n    this.listaEmpresa = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, { organizacion: empresa.organizacion }));\n    this.listaRoles = await this.cargarMapas.cargarSelectItemString('clasificacion', 'descripcion', new GeneralModel('ClasificacionDTO', null, false, { organizacion: empresa.organizacion, tipo: 'R' }));\n    this.listaVinculacion = await this.cargarMapas.cargarSelectItemString('vinculacion', 'descripcion', new GeneralModel('VinculacionLaboralDTO', null, false, { modo: empresa.modoCompensacion }));\n    this.listaTurno = await this.cargarMapas.cargarSelectItemString('turno', 'descripcion', new GeneralModel('TurnoDTO', null, false, { modo: empresa.modoCompensacion }));\n    this.listaTipoPeriodo = await this.cargarMapas.cargarSelectItemString('tipo', 'descripcion', new GeneralModel('TipoPeriodoDTO', null, false,\n      { empresa: empresa.empresa, aliasRol: this.authService.getTokenKey('aliasRol'), usuarioLogin: this.authService.getTokenKey('usuario') }));\n    await this.validarEmpresa(empresa.empresa);\n    this.listaTipoContratacion = this.parametrosPipe.MAPATIPOCONTRATACION;\n    this.listaSiNo = this.generalPipe.LISTA_SINO;\n  }\n\n  cargarEmpresa(event) {\n    if (event != null) {\n      this.validarEmpresa(event.value);\n    }\n  }\n\n  async validarEmpresa(empresaCod: number) {\n    this.empresa = false;\n    if (empresaCod != null) {\n      this.empresa = true;\n      this.lineaCosto = await this.cargarMapas.cargarSelectItemString('lineaCosto', 'descripcion', new GeneralModel('LineaCostoDTO', null, false, { empresa: empresaCod }));\n    }\n  }\n\n  onSelectUnidad(event) {\n    this.actoAdministrativo.unidad = event.unidad;\n    this.actoAdministrativo.nombreUnidad = event.nombreUnidad;\n  }\n\n  onSelectPuestoTrabajo(event) {\n    if (event?.unidad) {\n      this.actoAdministrativo.puestoTrabajo = event.llave;\n      this.actoAdministrativo.nombrePuestoTrabajo = event.nombreEmpresa + (event.nombreOcupa != null ? \"\" : \":\" + event.nombreOcupa) + \" : \" + event.nombreCargo + \" : \" + event.nombreUnidad;\n    } else {\n      this.actoAdministrativo.nombrePuestoTrabajo = null\n    }\n  }\n\n  onSelectCargo(event) {\n    this.actoAdministrativo.cargo = event.cargo;\n    this.actoAdministrativo.nombreCargo = event.descripcion;\n  }\n\n  onSelectZonaCentro(event) {\n    this.actoAdministrativo.zonaEconomica = event.zonaEconomica;\n    this.actoAdministrativo.nombreZonaEconomica = event.descripcionZona;\n    this.actoAdministrativo.centroCosto = event.centroCosto;\n    this.actoAdministrativo.nombreCentroCosto = event.descripcion;\n  }\n\n  onSelectJefeInmediato(event) {\n    this.actoAdministrativo.cedulaJefe = event.identifica;\n    this.actoAdministrativo.nombreJefe = event.nombreCompleto;\n  }\n\n  async cambioVinculacion(event) {\n    if (event != null) {\n      let vinculaciones: VinculacionLaboralModel[] = [];\n      let objeto = new GeneralModel('VinculacionLaboralDTO', null, false, { vinculacion: event.value });\n      vinculaciones = await this.generalService.queryForList(objeto).toPromise();\n      if (0 < vinculaciones.length && 'S' == vinculaciones[0].prorroga) {\n        this.verFechaTermina = true;\n      } else {\n        this.verFechaTermina = false;\n      }\n    } else {\n      this.verFechaTermina = false;\n    }\n  }\n\n  actualizarRegistro() {\n    if (this.formContratacion.valid) {\n      let result: number;\n      let objetoFiltro: GeneralModel = new GeneralModel('ActoAdministrativoDTO', null, false, this.actoAdministrativo);\n      this.generalService.update(objetoFiltro).subscribe(data => {\n        result = data;\n        if (result == 1) {\n          this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n        } else {\n          this.toastService.showError('Error en actualizar el registro');\n          throw new Error('Error en el método de actualizar');\n        }\n      });\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formContratacion.controls).forEach((key) => {\n        if (this.formContratacion.controls[key].invalid) {\n          this.formContratacion.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  showEliminarContratacionConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: Constantes.SI_STRING,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  eliminarRegistro() {\n    this.actoAdministrativoService.eliminarContratacion({ actoAdministrativo: this.formContratacion.value }).subscribe(data => {\n      if (data) {\n        this.regresarVistaPrincipal();\n        this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      }\n    });\n  }\n\n  async guardarRegistro() {\n    this.clickGuardar = true;\n    if (this.formContratacion.valid) {\n      this.actoAdministrativo.origen = this.hojaVidaPipe.TIO_CONTRATACION;\n      this.actoAdministrativo.origenEvento = this.origenSeleccionado.llaveTabla;\n      let data = await this.actoAdministrativoService.crearActoAdministrativo({ actoAdministrativo: this.actoAdministrativo }).toPromise();\n      if (data) {\n        this.clickGuardar = false;\n        this.vistaMenuVisualizar = '';\n        this.llaveTabla = data.llaveTabla;\n        this.isNew = false;\n        this.toastService.showSuccess(Constantes.MENSAJE_CREAR);\n        this.vistaMenuVisualizar = 'opciones';\n      }\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formContratacion.controls).forEach((key) => {\n        if (this.formContratacion.controls[key].invalid) {\n          this.formContratacion.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  seleccionRequerimiento(event) {\n    this.requerimientoSeleccionado = event;\n    if (this.requerimientoSeleccionado != null) {\n      this.cargarActoRequerimiento();\n    }\n  }\n\n  regresaPopupRequerimiento() {\n    this.verPopupRequerimiento = false;\n  }\n\n  async seleccionProceso(event) {\n    this.requerimientoSeleccionado = new RequerimientoPersonalModel();\n    this.procesoSeleccionado = event;\n    this.actoAdministrativo.procesoSelec = this.procesoSeleccionado.llaveTabla\n    if (this.procesoSeleccionado.requerimiento != null) {\n      let objeto = new GeneralModel('RequerimientoPersonalDTO', null, false, { llaveTabla: this.procesoSeleccionado.requerimiento });\n      this.requerimientoSeleccionado = await this.generalService.queryForObject(objeto).toPromise();\n    }\n    if (this.requerimientoSeleccionado != null) {\n      this.cargarActoRequerimiento();\n    } else {\n      this.actoAdministrativo.empresa = this.procesoSeleccionado.empresa;\n      this.actoAdministrativo.unidad = this.procesoSeleccionado.unidad;\n      this.actoAdministrativo.nombreUnidad = this.procesoSeleccionado.nombreunidad;\n      this.actoAdministrativo.cargo = this.procesoSeleccionado.cargo;\n      this.actoAdministrativo.nombreCargo = this.procesoSeleccionado.nombrecargo;\n      this.validarEmpresa(this.actoAdministrativo.empresa);\n    }\n  }\n\n  regresaPopupProcesoSeleccion() {\n    this.verPopupProcesoSeleccion = false;\n  }\n\n\n  cargarActoRequerimiento() {\n    this.actoAdministrativo.empresa = this.requerimientoSeleccionado.empresa;\n    this.actoAdministrativo.ubicacionFis = this.requerimientoSeleccionado.ubicacionFisicaCodigo;\n    this.actoAdministrativo.nombreUbicacionFis = this.requerimientoSeleccionado.ubicacionFisicaNombre;\n    this.actoAdministrativo.unidad = this.requerimientoSeleccionado.unidad;\n    this.actoAdministrativo.nombreUnidad = this.requerimientoSeleccionado.nombreUnidad;\n    this.actoAdministrativo.puestoTrabajo = this.requerimientoSeleccionado.puestoTrabajo;\n    this.actoAdministrativo.requerimiento = this.requerimientoSeleccionado.llaveTabla;\n    this.actoAdministrativo.cargo = this.requerimientoSeleccionado.cargo;\n    this.actoAdministrativo.nombreCargo = this.requerimientoSeleccionado.nombreCargo;\n    this.actoAdministrativo.zonaEconomica = this.requerimientoSeleccionado.zonaEconomica;\n    this.actoAdministrativo.nombreZonaEconomica = this.requerimientoSeleccionado.nombreZonaEconomica;\n    this.actoAdministrativo.centroCosto = this.requerimientoSeleccionado.centroCosto;\n    this.actoAdministrativo.nombreCentroCosto = this.requerimientoSeleccionado.nombreCentro;\n    this.actoAdministrativo.lineaCosto = this.requerimientoSeleccionado.lineaCosto;\n    this.actoAdministrativo.vinculacion = this.requerimientoSeleccionado.vinculacionLaboral;\n    this.actoAdministrativo.turno = this.requerimientoSeleccionado.turno;\n    this.actoAdministrativo.sueldo = this.requerimientoSeleccionado.asignacion;\n    this.actoAdministrativo.total = this.requerimientoSeleccionado.asignacion;\n    this.actoAdministrativo.fechaContrato = this.requerimientoSeleccionado.fechaInicialEntre;\n    this.actoAdministrativo.clasificacion = this.requerimientoSeleccionado.clasificacion;\n    this.actoAdministrativo.tipoPeriodo = this.requerimientoSeleccionado.tipoPeriodo;\n    this.actoAdministrativo.cedulaJefe = this.requerimientoSeleccionado.cedulaJefe;\n    this.actoAdministrativo.nombreJefe = this.requerimientoSeleccionado.nombreJefe;\n    this.actoAdministrativo.terminaContrato = this.requerimientoSeleccionado.fechaFinalEntre;\n    this.validarEmpresa(this.actoAdministrativo.empresa);\n  }\n\n  async validarHojaVidaExiste() {\n    if (this.actoAdministrativo != null && this.actoAdministrativo.origenEvento) {\n      this.origenEvento = new OrigenEventoModel();\n      let objeto = new GeneralModel('OrigenEventoDTO', null, false, { llaveTabla: this.actoAdministrativo.origenEvento });\n      this.origenEvento = await this.generalService.queryForObject(objeto).toPromise();\n      this.hojaVidaExiste = this.contratacionPipe.HOJA_EXISTE == this.origenEvento.indicaHoja ? true : false;\n    }\n  }\n\n  showAnularContratacionConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ANULAR_CONFIRMAR,\n      acceptLabel: Constantes.SI_STRING,\n      accept: () => {\n        this.anularRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async anularRegistro() {\n    if (this.formAnular.valid) {\n      if (Constantes.CONSTANTE_SI == this.archivo) {\n        await this.guardarArchivo(this.actoAdministrativo.llaveTabla);\n      }\n      let data = await this.actoAdministrativoService.anularProcesoContratacion({ actoAdministrativo: this.actoAdministrativo }).toPromise();\n      if (data) {\n        if (Constantes.CONSTANTE_SI == this.archivo) {\n          this.guardarArchivo(this.actoAdministrativo.llaveTabla);\n        }\n        this.toastService.showSuccess(Constantes.MENSAJE_ANULAR);\n        this.actoAdministrativo.estado = this.parametrosPipe.ANULADO;\n        await this.cargarInfo();\n      }\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formAnular.controls).forEach((key) => {\n        if (this.formAnular.controls[key].invalid) {\n          this.formAnular.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.nombreArchivo = file.name;\n  }\n\n  cargarArchivo(data: any, fubauto) {\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.label = this.archivoSeleccionado.name;\n    this.notificacionesService.showSuccess('Se cargó el documento exitosamente');\n    fubauto.clear();\n  }\n\n  guardarArchivo(llave: string) {\n    let extensionArchivo: string = this.archivoSeleccionado.name.split('?')[0].split('.').pop();\n    if (!this.extensionesPermitidas.includes(extensionArchivo)) {\n      this.notificacionesService.showWarning(this.translateService.instant('extensionnovalida'));\n      return\n    }\n    let propiedad = 'ruta_anexosHojaVida'\n    let codigoAplicacion = environment.codigoAplicacion;\n\n    this.archivoSeleccionado = new File([this.archivoSeleccionado], llave + '.' + extensionArchivo);\n    this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe({\n      next: (event) => {\n        if (event.type === HttpEventType.Response) {\n          let response: any = event.body;\n        }\n      },\n    });\n  }\n\n  descargarArchivo() {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = environment.codigoAplicacion;\n    this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(this.actoAdministrativo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = this.actoAdministrativo.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n    if (llaveActividad != null) {\n      var actividad = new ActividadFuenteTareaModel();\n      actividad.llaveTabla = llaveActividad;\n      actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n      this.encuesta = true;\n      this.llaveTabla = actividad.llaveTablaBase\n      this.actoAdministrativo = new ActoAdministrativoModel();\n      this.actoAdministrativo.llaveTabla = actividad.llaveTablaBase;\n      this.actoAdministrativo = await this.generalService.queryForObject(new GeneralModel('ActoAdministrativoDTO', null, false, this.actoAdministrativo)).toPromise();\n      await this.cargar();\n      await this.validarEmpresa(this.actoAdministrativo.empresa);\n      await this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, this.actoAdministrativo);\n      this.validarHojaVidaExiste();\n    }\n  }\n\n  obtenerOpcMenu(event) {\n    if (event != null) {\n      this.vistaVisualizar = event;\n      this.navDesdeActividad = false;\n    }\n  }\n\n  irDocumento(event){\n    if(event){\n      this.bpmDocumento = event.bpmDocumento;\n      this.llaveActividad = event.llaveActividad;\n      this.definitivo = event.definitivo;\n      this.navDesdeActividad = true;\n      this.vistaVisualizar = 'documento';\n    }\n  }\n\n  irActividad(){\n    this.vistaVisualizar = 'actividad';\n  }\n\n}\n","<div id=\"id_contratacion\">\n\n  <div class=\"flex align-items-center justify-content-between mb-3\">\n    <h1 class=\"mb-0\">{{'listado' | translate}} {{'contratacion' | translate}}</h1>\n    <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVistaPrincipal()\"\n      icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-0\"></button>\n  </div>\n\n  @if('' == vistaMenuVisualizar && !encuesta) {\n  <app-contratacion-menu (seleccion)=\"obtenerOpcMenu($event)\" [llaveTabla]=\"llaveTabla\"></app-contratacion-menu>\n  }\n\n  @if('opciones' == vistaMenuVisualizar && !encuesta) {\n  <app-contratacion-menu (seleccion)=\"obtenerOpcMenu($event)\" [llaveTabla]=\"llaveTabla\"></app-contratacion-menu>\n  }\n\n  @if('contratacion' == vistaVisualizar){\n  <div class=\"card mt-2\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'contratacion' | translate}}</h5>\n    <div class=\"col-md-12\">\n      <form #formContratacion=\"ngForm\">\n        <div class=\"p-fluid p-formgrid grid\">\n\n          <!-- IDENTIFICACIÓN -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"hojaVidaExiste\">\n            <span class=\"p-float-label\">\n              <app-input-helper-hoja-vida [header]=\"headerIdentificacion\" name=\"documento\"\n                [(ngModel)]=\"actoAdministrativo.documento\" [readonly]=\"encuesta\"\n                [booleano]=\"actoAdministrativo.documento == null && clickGuardar ? true : false\"\n                [label]=\"actoAdministrativo.documento != null ? actoAdministrativo.documento : cedulaDirecta\"\n                (onSelected)=\"onSelectIdentificacion($event)\" required>\n              </app-input-helper-hoja-vida>\n            </span>\n          </div>\n\n          <!-- IDENTIFICACIÓN -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"cedulaDirecta\"\n                name=\"cedulaDirecta\" [(ngModel)]=\"actoAdministrativo.cedulaDirecta\" maxlength=\"14\"\n                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 14);\" required>\n              <label for=\"cedulaDirecta\">{{'identificacion' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- NOMBRE COMPLETO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"hojaVidaExiste\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreCompleto\"\n                name=\"nombreCompleto\" [(ngModel)]=\"actoAdministrativo.nombreCompleto\" [disabled]=\"true\" maxlength=\"50\"\n                required>\n              <label for=\"nombreCompleto\">{{'nombre' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- NOMBRE DIRECTO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombresDirecto\"\n                name=\"nombresDirecto\" [(ngModel)]=\"actoAdministrativo.nombresDirecto\" maxlength=\"30\" required>\n              <label for=\"nombresDirecto\">{{'nombre' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- PRIMER APELLIDO DIRECTO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"primerApellidoDirecto\"\n                name=\"primerApellidoDirecto\" [(ngModel)]=\"actoAdministrativo.primerApellidoDirecto\" required\n                maxlength=\"20\">\n              <label for=\"primerApellidoDirecto\">{{'primer' | translate}} {{'apellido' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- SEGUNDO APELLIDO DIRECTO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"segundoApellidoDirecto\"\n                name=\"segundoApellidoDirecto\" [(ngModel)]=\"actoAdministrativo.segundoApellidoDirecto\" maxlength=\"20\">\n              <label for=\"segundoApellidoDirecto\">{{'segundo' | translate}} {{'apellido' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- ESTADO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"estadoDescripcion\"\n                name=\"estadoDescripcion\" [(ngModel)]=\"estadoDescripcion\" [disabled]=\"true\">\n              <label for=\"estadoDescripcion\">{{'estado' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- EMAIL -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!hojaVidaExiste\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"emailDirecto\"\n                name=\"emailDirecto\" [(ngModel)]=\"actoAdministrativo.emailDirecto\" [disabled]=\"true\" maxlength=\"50\">\n              <label for=\"emailDirecto\">{{'email' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- EMPRESA -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"empresa\" name=\"empresa\" [disabled]=\"encuesta\"\n                [(ngModel)]=\"actoAdministrativo.empresa\" optionLabel=\"label\" optionValue=\"key\" [options]=\"listaEmpresa\"\n                (onChange)=\"cargarEmpresa($event)\" required>\n              </p-dropdown>\n              <label htmlFor=\"empresa\">{{'empresa' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- UBICACIÓN FISICA-->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <app-input-helper-seleccion-ubicacion-fisica [readonly]=\"encuesta\" [showDialog]=\"false\"\n              name=\"nombreUbicacionFis\" [(ngModel)]=\"actoAdministrativo.nombreUbicacionFis\" [mostrarX]=\"false\"\n              [booleano]=\"actoAdministrativo.nombreUbicacionFis == null && clickGuardar ? true : false\"\n              [header]=\"headerUbicacionFisica\"\n              [label]=\"actoAdministrativo.nombreUbicacionFis != null ? actoAdministrativo.nombreUbicacionFis : ''\"\n              (onSelected)=\"onSelectUbicacionFisica($event)\" required>\n            </app-input-helper-seleccion-ubicacion-fisica>\n          </div>\n\n          <!-- UNIDAD-->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"empresa\">\n            <app-input-helper-unidad [readonly]=\"encuesta\" [showDialog]=\"false\" [mostrarX]=\"false\"\n              [header]=\"headerUnidad\" name=\"nombreUnidad\" [(ngModel)]=\"actoAdministrativo.nombreUnidad\"\n              [booleano]=\"actoAdministrativo.nombreUnidad == null && clickGuardar ? true : false\"\n              [label]=\"actoAdministrativo.nombreUnidad != null ? actoAdministrativo.nombreUnidad : ''\"\n              (onSelected)=\"onSelectUnidad($event)\" required>\n            </app-input-helper-unidad>\n          </div>\n\n          <!-- PUESTO TRABAJO -->\n          <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"empresa\">\n            <app-popup-contratacion-puesto-trabajo [showDialog]=\"false\" [header]=\"headerPuestoTrabajo\"\n              [readonly]=\"encuesta\"\n              [mostrarX]=\"actoAdministrativo.nombrePuestoTrabajo != null && !encuesta ? true : false\"\n              name=\"nombrePuestoTrabajo\" [(ngModel)]=\"actoAdministrativo.nombrePuestoTrabajo\"\n              [unidad]=\"actoAdministrativo.unidad != null ? actoAdministrativo.unidad : ''\"\n              [label]=\"actoAdministrativo.nombrePuestoTrabajo != null ? actoAdministrativo.nombrePuestoTrabajo : ''\"\n              (onSelected)=\"onSelectPuestoTrabajo($event)\">\n            </app-popup-contratacion-puesto-trabajo>\n          </div>\n\n          <!-- CARGO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"empresa\">\n            <app-input-helper-seleccion-cargo [readonly]=\"encuesta\" [showDialog]=\"false\" name=\"cargo\"\n              [(ngModel)]=\"actoAdministrativo.cargo\" [header]=\"headerCargo\"\n              [booleano]=\"actoAdministrativo.cargo == null && clickGuardar ? true : false\"\n              [label]=\"actoAdministrativo.cargo != null ? actoAdministrativo.cargo + ' : ' + actoAdministrativo.nombreCargo : ''\"\n              (onSelected)=\"onSelectCargo($event)\" required>\n            </app-input-helper-seleccion-cargo>\n          </div>\n\n          <!-- CLASIFICACIÓN -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"clasificacion\" optionLabel=\"label\" optionValue=\"key\"\n                [disabled]=\"encuesta\" [options]=\"listaRoles\" name=\"clasificacion\"\n                [(ngModel)]=\"actoAdministrativo.clasificacion\" required>\n              </p-dropdown>\n              <label htmlFor=\"clasificacion\">{{'clasificacion' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- ZONA ECONOMICA -->\n          <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"empresa\">\n            <app-input-helper-seleccion-zona-centro [readonly]=\"encuesta\" [showDialog]=\"false\" name=\"zonaEconomica\"\n              [(ngModel)]=\"actoAdministrativo.zonaEconomica\" [labelIntput]=\"headerZonaEconomica\"\n              [booleano]=\"(actoAdministrativo.zonaEconomica == null && clickGuardar) ? true : false\"\n              [label]=\"actoAdministrativo.nombreZonaEconomica!= null ? actoAdministrativo.nombreZonaEconomica : ''\"\n              (onSelected)=\"onSelectZonaCentro($event)\" [mostrarZonaLabel]=\"true\" required>\n            </app-input-helper-seleccion-zona-centro>\n          </div>\n\n          <!-- CENTRO COSTO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"empresa\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"nombreCentroCosto\"\n                name=\"nombreCentroCosto\" [(ngModel)]=\"actoAdministrativo.nombreCentroCosto\" [disabled]=\"true\" required>\n              <label for=\"nombreCentroCosto\">{{'centrocosto' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- LINEA -->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"empresa\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"lineaCosto\" optionLabel=\"label\" name=\"lineaCosto\"\n                [disabled]=\"encuesta\" [(ngModel)]=\"actoAdministrativo.lineaCosto\" optionValue=\"key\"\n                [options]=\"lineaCosto\" required>\n              </p-dropdown>\n              <label htmlFor=\"lineaCosto\">{{'linea' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- JEFE INMEDIATO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <app-input-helper-hoja-vida [header]=\"headerJefeInmediato\" name=\"cedulaJefe\"\n                [(ngModel)]=\"actoAdministrativo.cedulaJefe\" [readonly]=\"encuesta\"\n                [ocultarBtnLimpiar]=\"actoAdministrativo.cedulaJefe != null && !encuesta ? true : false\"\n                [label]=\"actoAdministrativo.cedulaJefe != null ? actoAdministrativo.cedulaJefe + ' - ' + actoAdministrativo.nombreJefe : ''\"\n                (onSelected)=\"onSelectJefeInmediato($event)\">\n              </app-input-helper-hoja-vida>\n            </span>\n          </div>\n\n          <!-- VINCULACIÓN -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"vinculacion\" optionLabel=\"label\" optionValue=\"key\"\n                [disabled]=\"encuesta\" [options]=\"listaVinculacion\" name=\"vinculacion\"\n                [(ngModel)]=\"actoAdministrativo.vinculacion\" (onChange)=\"cambioVinculacion($event)\" required>\n              </p-dropdown>\n              <label htmlFor=\"vinculacion\">{{'vinculacion' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- TURNO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"turno\" optionLabel=\"label\" name=\"turno\" [disabled]=\"encuesta\"\n                [(ngModel)]=\"actoAdministrativo.turno\" optionValue=\"key\" [options]=\"listaTurno\" required>\n              </p-dropdown>\n              <label htmlFor=\"turno\">{{'turno' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- TIPO PERIODO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"tipoPeriodo\" name=\"tipoPeriodo\" [disabled]=\"encuesta\"\n                [(ngModel)]=\"actoAdministrativo.tipoPeriodo\" optionLabel=\"label\" optionValue=\"key\"\n                [options]=\"listaTipoPeriodo\" required>\n              </p-dropdown>\n              <label htmlFor=\"tipoPeriodo\">{{'tipoperiodo' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- SUELDO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"sueldo\" maxlength=\"19\"\n                name=\"sueldo\" [(ngModel)]=\"actoAdministrativo.sueldo\" [disabled]=\"encuesta\"\n                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 19);\" required>\n              <label for=\"sueldo\">{{'sueldo' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- SUELDO TOTAL -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"total\" maxlength=\"19\"\n                name=\"total\" [(ngModel)]=\"actoAdministrativo.total\" [disabled]=\"encuesta\"\n                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 19);\" required>\n              <label for=\"total\">{{'sueldototal' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- FECHA INGRESO-->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-calendar [showIcon]=\"true\" name=\"fechaContrato\" [(ngModel)]=\"actoAdministrativo.fechaContrato\"\n                inputId=\"icon\" dateFormat=\"dd/mm/yy\" [disabled]=\"encuesta\" required></p-calendar>\n              <label htmlFor=\"fechaContrato\">{{'fechaingreso' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- FECHA TERMINA-->\n          <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"verFechaTermina\">\n            <span class=\"p-float-label\">\n              <p-calendar [showIcon]=\"true\" id=\"terminaContrato\" name=\"terminaContrato\" [disabled]=\"encuesta\"\n                [(ngModel)]=\"actoAdministrativo.terminaContrato\" dateFormat=\"dd/mm/yy\" appendTo=\"body\"></p-calendar>\n              <label htmlFor=\"terminaContrato\">{{'fechatermina' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- PROCESO SELECCIÓN -->\n          <div class=\"field col-12 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" class=\"form-control input-md\" id=\"procesoSelec\" maxlength=\"32\"\n                name=\"procesoSelec\" [(ngModel)]=\"actoAdministrativo.procesoSelec\" [disabled]=\"encuesta\">\n              <label for=\"procesoSelec\">{{'proceso' | translate}} {{'seleccion' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- TIPO CONTRATACIÓN -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"tipoContratacion\" name=\"tipoContratacion\" [disabled]=\"encuesta\"\n                [(ngModel)]=\"actoAdministrativo.tipoContratacion\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                [options]=\"listaTipoContratacion\" required>\n              </p-dropdown>\n              <label htmlFor=\"tipoContratacion\">{{'tipodecontratacion' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- MENSAJE -->\n          <div class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n              <textarea id=\"mensaje\" rows=\"3\" pInputTextarea name=\"mensaje\" [(ngModel)]=\"actoAdministrativo.mensaje\"\n                maxlength=\"1000\" [disabled]=\"encuesta\"\n                class=\"p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250 w-full\"></textarea>\n              <label for=\"mensaje\">{{'mensaje' | translate}}</label>\n            </span>\n          </div>\n\n        </div>\n      </form>\n    </div>\n\n    <div class=\"flex justify-content-end\" *ngIf=\"'S' == actoAdministrativo.estado && !encuesta\">\n      <button pButton pRipple class=\"mb-2 p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n        label=\"{{'link_guardar' | translate}}\" *ngIf=\"isNew\" (click)=\"guardarRegistro()\"></button>\n\n      <button pButton pRipple class=\"mr-2 mb-2 p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n        label=\"{{'link_actualizar' | translate}}\" *ngIf=\"!isNew\" (click)=\"actualizarRegistro()\"></button>\n\n      <button pButton pRipple class=\"mb-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n        label=\"{{'link_eliminar' | translate}}\" *ngIf=\"!isNew\"\n        (click)=\"showEliminarContratacionConfirmDialog()\"></button>\n    </div>\n  </div>\n\n\n  <div class=\"card mt-2\" *ngIf=\"!isNew && !encuesta\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'link_anular' | translate}}</h5>\n    <div class=\"col-md-12\">\n      <form #formAnular=\"ngForm\">\n        <div class=\"p-fluid p-formgrid grid\">\n\n          <!-- FECHA ANULACIÓN-->\n          <div\n            [class]=\"'S' == actoAdministrativo.estado && 'S' == archivo ? 'field col-12 md:col-4 lg:col-4' : 'field col-12 md:col-6 lg:col-6'\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"fechaAnulacion\" name=\"fechaAnulacion\" [(ngModel)]=\"actoAdministrativo.fechaAnulacion\"\n                dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" [disabled]=\"(bloqueo == 'bloqueo') || encuesta\"></p-calendar>\n              <label htmlFor=\"fechaAnulacion\">{{'fecha' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- ARCHIVO -->\n          <div\n            [class]=\"'S' == actoAdministrativo.estado && 'S' == archivo ? 'field col-12 md:col-4 lg:col-4' : 'field col-12 md:col-6 lg:col-6'\"\n            *ngIf=\"'S' == actoAdministrativo.estado\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" id=\"archivo\" name=\"archivo\" [(ngModel)]=\"archivo\"\n                optionLabel=\"nombre\" optionValue=\"codigo\" [options]=\"listaSiNo\" [disabled]=\"encuesta\" required>\n              </p-dropdown>\n              <label htmlFor=\"archivo\">{{'archivo' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- ADJUNTAR ARCHIVO -->\n          <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"'S' == actoAdministrativo.estado && 'S' == archivo\">\n            <div class=\"p-inputgroup\">\n              <span class=\"p-float-label\">\n                <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" />\n                <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\" [accept]=\"'.pdf'\"\n                  (onSelect)=\"cargarArchivo($event, fubauto)\" [disabled]=\"encuesta\"></p-fileUpload>\n                <label>{{'adjunto' | translate}}</label>\n              </span>\n            </div>\n          </div>\n\n          <!-- DESCARGA ARCHIVO -->\n          <div class=\"field col-12 md:col-6 lg:col-6\"\n            *ngIf=\"('A' == actoAdministrativo.estado || 'C' == actoAdministrativo.estado) && !isNew\">\n            <div class=\"p-inputgroup\">\n              <span class=\"p-float-label\">\n                <input pInputText #inputText [value]=\"label\" [disabled]=\"true\" />\n                <button pButton pRipple class=\"p-button-icon-only unico border-noround-left\" icon=\"pi pi-download\"\n                  (click)=\"descargarArchivo()\" type=\"file\"></button>\n                <label>{{'archivo' | translate}}</label>\n              </span>\n            </div>\n          </div>\n\n          <!-- MOTIVO -->\n          <div class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n              <textarea id=\"motivoAnulacion\" rows=\"3\" pInputTextarea name=\"motivoAnulacion\" [disabled]=\"encuesta\"\n                [(ngModel)]=\"actoAdministrativo.motivoAnulacion\" maxlength=\"32\" required\n                class=\"p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250 w-full\"></textarea>\n              <label for=\"motivoAnulacion\">{{'motivo' | translate}} *</label>\n            </span>\n          </div>\n\n        </div>\n      </form>\n    </div>\n\n    <div class=\"flex justify-content-end\" *ngIf=\"'S' == actoAdministrativo.estado && !encuesta\n      && controlFuncionalidad.getControlFuncionalidad('contra:anularproceso')\">\n      <button pButton pRipple class=\"mb-2 p-button-raised\" icon=\"glyphicons glyphicons-remove-circle\"\n        label=\"{{'anularproceso' | translate}}\" (click)=\"showAnularContratacionConfirmDialog()\"></button>\n    </div>\n\n  </div>\n  }\n\n  @if('documento' == vistaVisualizar){\n  <app-editar-contratacion-documento [llaveTabla]=\"llaveTabla\" [hojaVidaExiste]=\"hojaVidaExiste\"\n    [empresa]=\"empresa\" [bpmDocumento]=\"bpmDocumento\" [navDesdeActividad]=\"navDesdeActividad\"\n    [llaveActividad]=\"llaveActividad\" [definitivo]=\"definitivo\" (irActividad)=\"irActividad()\"></app-editar-contratacion-documento>\n  }\n\n  @if('actividad' == vistaVisualizar){\n  <app-editar-contratacion-actividad [llaveTabla]=\"llaveTabla\" (irDocumento)=\"irDocumento($event)\"></app-editar-contratacion-actividad>\n  }\n\n</div>\n<div *ngIf=\"verPopupRequerimiento\">\n  <app-popup-requerimiento [showDialog]=\"verPopupRequerimiento\" (onSelected)=\"seleccionRequerimiento($event)\"\n    (regresar)=\"regresaPopupRequerimiento()\"></app-popup-requerimiento>\n</div>\n<div *ngIf=\"verPopupProcesoSeleccion\">\n  <app-popup-proceso-seleccion [showDialog]=\"verPopupProcesoSeleccion\" (onSelected)=\"seleccionProceso($event)\"\n    (regresar)=\"regresaPopupProcesoSeleccion()\"></app-popup-proceso-seleccion>\n</div>\n<app-ejecucion-encuesta *ngIf=\"encuesta\" (regresar)=\"regresarVistaPrincipal()\"></app-ejecucion-encuesta>\n<p-confirmPopup></p-confirmPopup>\n","import { UnionModel } from 'general-library-union'\n\nexport class SolicitudPuntoModel extends UnionModel{\n\n\tidentificacion: number;\n\tcontrato: number;\n\talterno: string;\n\tsolicitud: Date;\n\tfechaDesde: Date;\n\tfechaHasta: Date;\n\tfechaActa: Date;\n\tfechaVigencia: Date;\n\tvigenciaFiscal: Date;\n\testado: string;\n\tetapaSolicitud: string;\n\tobservacion: string;\n\torigen: string;\n\ttipo: string;\n\tpadre: string;\n\tunidad: string;\n\tunidadDocum: string;\n\tunidadNombre: string;\n\tunidadNombrePadre: string;\n\tnombreUnidadDocum: string;\n\tcargo: string;\n\tcargoDescripcion: string;\n\tgenerada: string;\n\tfactorPuntaje: string;\n\tradicado: string;\n\thojaIntelecto: string;\n\thojaIntelectoTmp: string;\n\tnombreHojaIntelecto: string;\n\tresumen: string;\n\tresumenhtml: string;\n\tnumeroActa: string;\n\tllaveActa: string;\n\testadoActa: string;\n\tpuntosSolicita: number;\n\tpuntosAsignados: number;\n\tpuntosValidos: number;\n\tpuntosActual: number;\n\tpuntoPendiente: number;\n\tpuntoAdicional: number;\n\tpuntoAcumula: number;\n\tempresa: number;\n\testadoProceso: number;\n\tcomodinBuscarNombre: string;\n\tnombreCompleto: string;\n\tnombreEtapa: string;\n\tnombreEstado: string;\n\tnombreTipo: string;\n\tnombres: string;\n\tprimerapellid: string;\n\tsegundoapelli: string;\n\tdescripcionGrupo: string;\n\tdescripcionFactor: string;\n\tdescripcionLinea: string;\n\tsucursal: string;\n\tnombreSucursal: string;\n\tnombreEstado2: string;\n\tasunto: string;\n\tdescripcionAsunto: string;\n\tdescripcionSeccion: string;\n\tseccion: string;\n\tdescripcionCategoria: string;\t\n\tloginUsuario: string;\n\ttipoAsunto: string;\n\tnumero: number;\n\tfechasolicitudini: Date;\n\tbasereclamacion: string;\n\testadoLaboral: string;\n\tfechaRetiro: Date; \n\tcomodin: string;\n\tmensaje: string;\n\testadoPagare: string;\n\tnumeroPagare: string;\n\tfirmaPagare: Date;\n\tfechaRevision: Date;\n\tfechaCorreccion: Date;\n\tlimitePagare: Date;\n\tbaseRevision: string;\n\tdocumento: string;\n\tdescripcionResumen: string;\n\ttipoHojaVida: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tvinculacion: number;\n\tllaveActaFacultad: string;\n\tnombreVinculacion: string;\n\tnumeroActaFacultad: string;\n\tgrupo: string;\n\tfactor: string;\n\tlinea: string;\n\tcaso: string;\n\tunicoActa: string;\n\n\tpromedio: number;\n\tturno: number;\n\tdescripcionTurno: string;\n\tsqlServer: string;\n\tusuarioRol: string;\n\taccion: string;\n\tmensajeInconsistencia: string;\n\tcomodinActa: string;\n\tcategoria: string;\n\ttipoVariable: string;\n\tfacultad: string;\n\tetapaPares: string;\n\tfactorCruce: number;\n\t// campos cpun\n\trutaImagen: string;\n\ttextoArbol: string;\n\ttipoOrigen: string;\n\ttipoActo: string;\n\tfechaExpedicion: Date;\n\tfechaIngreso: Date;\n\tnumeroEspecial: string;\n\tdocumentoEspecial: string;\n\ttipoActoAdmon: string;\n\tactaTraslado: string;\n\tnumeroActaTraslado: string;\n\tconHojaIntelecto: string;\n\t\n\t//Filtro tipo Periodo\n\tusuarioLogin: string;\n\ttipoPeriodo: number;\n\tasuntoDescripcion: string;\n\t\n\t\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class ActasModel extends UnionModel{\n\n\tacta: string;\n\tresolucion: string;\n\testado: string;\n\ttipo: string;\n\tdepExpide: string;\n\tcargo: string;\n\ttipoVariable: string;\n\tfechaActa: Date;\n\tvigenciaFiscal: Date;\n\taplicado: Date;\n\tcerrado: Date;\n\tidentifica: number;\n\tnombreCompleto: string;\n\tdocumento: string;\n\tempresa: number;\n\tnombreTipoVariable: string;\n\tparametroBusqueda: string;\n\tnombreCargo: string;\n\tmensaje: string;\n\tusuario: string;\n\tllaveTablaPuntaje: string;\n\tdescripcionTablaPuntaje: string;\n\tcodigoTablaPuntaje: string;\n\ttipoTablaPuntaje: string;\n\tnumeroVinculacion: number;\n\tcalculaCruce: string;\n\tfacultad: string;\n\tnombreFacultad: string;\n\tusuarioRol: string;\n\tfechaReunion: Date;\n\tlugar: string;\n\tusuarioLogin: string;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class FactorPuntajeModel extends UnionModel {\n\n\tgrupo:string;\n\tfactor:string;\n\tlinea:string;\n\tnombreGrupo:string;\n\tnombreFactor:string;\n\tdescripcion:string;\n\tdataWindow:string;\n\tptoAdicionalDescripcion:string;\n\tptoAdicional:number;\n\tpresupuesto:number;\n\tmaximo:number;\n\tmaximoLin:number;\n\tconActa:string;\n\tsinActaAhv:string;\n\tsinActaCod:string;\n\ttopeAnual:number;\n\tunico:string;\n\tformula:number;\n\ttipo:number;\n\tvariable:string;\n\tvariableAdi:string;\n\ttipoVariable:string;\n\tseccion:string;\n\tpagare:string;\n\tpares:string;\n\tnivelCruce:number;\n\tnombreLinea:string;\n\tvinculacion:number;\n\tradicado:string;\n\tasunto:string;\n\tfiltroTodos:string;\n\tlogin:string;\n\trolUsuario:string;\n\ttipoCambioEmpleado:string;\n\tnombreTipoCambioEmpleado:string;\n\tformatoPuntaje:number;\n\tcongela:string;\n\t\n\t//campos para cpun\n\tusuario:string;\n\trol:string;\n\ttipoOrigen:string;\n\tcomodinBusqueda:string;\n\ttipoVariableFactor:string;\n\tlistaHijos: FactorPuntajeModel [];\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class InstrProductoModel extends UnionModel{\n\n\tinstrproducto: string;\n\tsolicitudpunto: string;\n\trespuesta: string;\n\tnobase: string;\n\tsnombre: string;\n\temail: string;\n\tacta: string;\n\tnumeroActa: string;\n\tnumeroActaFacultad: string;\n\tresumen: string;\n\tinstructorent: number;\n\tidentifica: number;\n\tpuntosasigna: number;\n\tasignacion: Date;\n\tfechaRespuesta: Date;\n\trecibomat: Date;\n\tpago: Date;\n\tfechaCalificacion: Date;\n\tfechaInvitacion: Date;\n\tinformeFinal: Date;\n\tidentificaDocente: number;\n\tnombreDocente: string;\n\tdescripcionFactor: string;\n\tdescripcionLinea: string;\n\tfechaActa: Date;\n\tdocumento: string;\n\tcomentarioAceptado: string;\n\tcomentarioNoAceptado: string;\n\tnombreCompleto: string;\n\tnombreCompletoExterno: string;\n\temailExterno: string;\n\tdocumentoExterno: string;\n\testadoSolicitud: string;\n\tgrupo: string;\n\tfactor: string;\n\tlinea: string;\n\n\tget documentoPar(): string{\n\t\tif ( this.identifica != null && this.identifica !=0) {\n\t\t\treturn this.documento;\n\t\t}\n\t\treturn this.documentoExterno;\n\t}\n\n\tget nombrePar(): string {\n\t\tif ( this.identifica != null && this.identifica !=0) {\n\t\t\treturn this.nombreCompleto;\n\t\t}\n\t\treturn this.nombreCompletoExterno;\n\t}\n}","import { UnionModel } from 'general-library-union'\n\nexport class InstructorEntidadModel extends UnionModel {\n\n\n    intructorEntidad: number;\n\torigen: string;\n\tindentifica: number;\n\ttipo: string;\n\testado: string;\n\trazonSocial: string;\n\tcontrato: string;\n\tdireccion: string;\n\tbarrio: string;\n\ttelefono: string;\n\tadicionadoCine: string;\n\tadicionadoDine: Date;\n\tmodificadoCine: string;\n\tmodificadoDine: Date;\n\tsucreferencia: string;\n\treferencia: string;\n\ttipoReferencia: string;\n\tentidadPago: string;\n\tfechaIngreso: Date;\n\tfechaRetiro: Date;\n\tobservacion: string;\n\tmotivo: string;\n\tnombreCompleto: string;\n\tnombreCompletoExterno: string;\n\tdocumento: string;\n\tdocumentoExterno: string;\n\texterno: string;\n\tcorreo: string;\n\tcorreoHojaVida: string;\n\tfiltroIdentifica: number;\n\t//campos para busqueda\n\tcomodinDocumento: string;\n\tcomodinNombre: string;\n\n\tget nombrePar() : string{\n\t\tif (this.nombreCompleto != null){\n\t\t\treturn this.nombreCompleto;\n\t\t}\n\t\treturn this.nombreCompletoExterno;\n\t}\n\t\n\tget documentoPar(){\n\t\tif (this.documento != null){\n\t\t\treturn this.documento;\n\t\t}\n\t\treturn this.documentoExterno;\n\t}\n\t\n\tget filtroNombre(){\n\t\tif (this.comodinNombre != null){\n\t\t\treturn '%' + this.comodinNombre + '%'; \n\t\t}\n\t\treturn null;\n\t}\n\n\t\n}","import { Component,EventEmitter,Injector,Input,OnInit,Output,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InstructorEntidadModel } from '../../../modules/hojavida/models/InstructorEntidadModel';\nimport { InstructorEntidadPipe } from '../../../modules/bienestar/pipes/instructor-entidad.pipe';\nimport { map } from 'rxjs';\n@Component({\n  selector: 'app-input-helper-seleccion-pares-academicos',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperSeleccionParesAcademicosComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-seleccion-pares-academicos.component.html',\n  styleUrl: './input-helper-seleccion-pares-academicos.component.scss'\n})\nexport class InputHelperSeleccionParesAcademicosComponent   implements ControlValueAccessor, OnInit {\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  listaInstructor: InstructorEntidadModel[];\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: InstructorEntidadModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  @Input() campoReferencia : any;\n  \n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n    private instructorEntidadPipe: InstructorEntidadPipe,\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.nombreCompleto;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      comodinDocumento: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n      comodinNombre: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n      origen: this.instructorEntidadPipe.TIPO_PUNTAJE,\n\n    };\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'InstructorEntidadDTO',\n      nombreConsulta: 'InstructorEntidad.consultarPar',\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaInstructor = await this.generalService\n      .queryForList(objetoFiltro).pipe(map(data => data.map(item => Object.assign(new InstructorEntidadModel(), item))))\n      .toPromise();\n    \n    const objetoFiltroCount: GeneralModel = {\n      nombreDTO: 'InstructorEntidadDTO',\n      nombreConsulta: 'InstructorEntidad.cantidadPar',\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltroCount)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new InstructorEntidadModel();\n      filtro.intructorEntidad = parseInt(llave);\n      let objeto = new GeneralModel('InstructorEntidadDTO', null, false, filtro);\n      let respuesta: InstructorEntidadModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n      return `${respuesta.nombreCompleto.trim()}`;\n    } else {\n      return null;\n    }\n  }\n}","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog  header=\"{{'pares' | translate}} {{'academico' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"llaveTabla\" [value]=\"listaInstructor\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n            <th>{{'identificacion' | translate}} </th>\n            <th>{{'nombre' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n            <td>{{bean.documentoPar}}</td>\n            <td>{{bean.nombrePar}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { UnidadCargoModel } from '../../talento/models/UnidadCargoModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { SolicitudPuntoModel } from '../models/SolicitudPuntoModel';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SolicitudPuntoService {\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService, private generalService: GeneralService) {\n        this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n\n        if (!error.error.traza) {\n            error.error.traza = error.error.mensaje;\n        }\n\n        if (error.status === 500) {\n            //Llamado a interceptor\n            this.errorInterceptor.showError(JSON.stringify(error.error));\n            console.error('An error occurred:', error.error);\n        } else {\n            console.error(\n                `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    listarArbolPorSolicitud(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/listarArbolPorSolicitud`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    aplicarPuntos(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/aplicarPuntos`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    consultarSolicitudPuntajeDocente(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/consultarSolicitudPuntajeDocente`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    consultarSolicitudPuntajeDocenteCPUN(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/consultarSolicitudPuntajeDocenteCPUN`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    consultarSolicitudPuntajeDocentePaginador(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/consultarSolicitudPuntajeDocentePaginador`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    async obtenerValoresAdicionalesSolicitud(unidad: string, empresa: number) {\n        if (unidad == null || empresa == null) {\n            return null;\n        }\n        var unidadCargoDTO = new UnidadCargoModel();\n        unidadCargoDTO.unidad = unidad;\n        unidadCargoDTO.empresa = empresa;\n        unidadCargoDTO = await this.generalService.queryForObject(new GeneralModel('UnidadCargoDTO', 'UnidadCargo.obtenerDepartamento', false, unidadCargoDTO)).toPromise();\n        return unidadCargoDTO;\n    }\n\n    consultarListaSolicitudPuntajeDocente(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/consultarListaSolicitudPuntajeDocente`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    actualizarEstadoSolicitud(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/actualizarEstadoSolicitud`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    lanzarProcesoBPM(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/lanzarProcesoBPM`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    llevarAlComite(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/llevarAlComite`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    asignarPuntosProductos(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/asignarPuntosProductos`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    confirmarAutorizarDirecto(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/confirmarAutorizarDirecto`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    actualizarProducto(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/actualizarProducto`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    imprimirDetalleProducto(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/imprimirDetalleProducto`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    cargarFormularioProducto(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/cargarFormularioProducto`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    aplicarPar(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/aplicarPar`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    eliminarPar(objeto): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/eliminarPar`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    obtenerProducto(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/obtenerProducto`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    formatearFechasSolicitudPunto(solicitud: SolicitudPuntoModel): SolicitudPuntoModel {\n        solicitud.solicitud = solicitud.solicitud ? new Date(solicitud.solicitud ) : null;\n        solicitud.fechaDesde = solicitud.fechaDesde ? new Date(solicitud.fechaDesde ) : null;\n        solicitud.fechaHasta = solicitud.fechaHasta ? new Date(solicitud.fechaHasta ) : null;\n        solicitud.fechaActa = solicitud.fechaActa ? new Date(solicitud.fechaActa ) : null;\n        solicitud.fechaVigencia = solicitud.fechaVigencia ? new Date(solicitud.fechaVigencia ) : null;\n        solicitud.vigenciaFiscal = solicitud.vigenciaFiscal ? new Date(solicitud.vigenciaFiscal ) : null;\n        solicitud.fechasolicitudini = solicitud.fechasolicitudini ? new Date(solicitud.fechasolicitudini ) : null;\n        solicitud.fechaRetiro = solicitud.fechaRetiro ? new Date(solicitud.fechaRetiro ) : null; \n        solicitud.firmaPagare = solicitud.firmaPagare ? new Date(solicitud.firmaPagare ) : null;\n        solicitud.fechaRevision = solicitud.fechaRevision ? new Date(solicitud.fechaRevision ) : null;\n        solicitud.fechaCorreccion = solicitud.fechaCorreccion ? new Date(solicitud.fechaCorreccion ) : null;\n        solicitud.limitePagare = solicitud.limitePagare ? new Date(solicitud.limitePagare ) : null;\n        solicitud.fechaInicial = solicitud.fechaInicial ? new Date(solicitud.fechaInicial ) : null;\n        solicitud.fechaFinal = solicitud.fechaFinal ? new Date(solicitud.fechaFinal ) : null;\n        solicitud.fechaExpedicion = solicitud.fechaExpedicion ? new Date(solicitud.fechaExpedicion ) : null;\n        solicitud.fechaIngreso = solicitud.fechaIngreso ? new Date(solicitud.fechaIngreso ) : null;\n        return solicitud;\n    }\n\n    aplicarProceso(objeto): Observable<any[]> {\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/solicitudPunto/aplicarProceso`, objeto).pipe(\n            catchError(this.handleError)\n        );\n    }\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService} from 'general-library-union';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ActasModel } from '../../hojavida/models/ActasModel';\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class ActasComiteService {\n  \n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService, private generalService: GeneralService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async cantidadActasPorVinculacion(tipoTablaPuntaje: string, numeroVinculacion: number): Promise<number> {\n    var actasDTO = new ActasModel();\n    actasDTO.tipoTablaPuntaje = tipoTablaPuntaje;\n    actasDTO.numeroVinculacion = numeroVinculacion;\n    return await this.generalService.cantidadRegistros(new GeneralModel('ActasDTO', 'Actas.cantidadActasPorVinculacion', false, actasDTO)).toPromise();\n  }\n\n  enviarCorreo(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actasComite/enviarCorreo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  enviarMailInvitacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/actos/actasComite/enviarMailInvitacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  formatearFechasActas(acta: ActasModel): ActasModel {\n    acta.fechaActa = acta.fechaActa ? new Date(acta.fechaActa ) : null;\n    acta.vigenciaFiscal = acta.vigenciaFiscal ? new Date(acta.vigenciaFiscal ) : null;\n    acta.aplicado = acta.aplicado ? new Date(acta.aplicado ) : null;\n    acta.cerrado = acta.cerrado ? new Date(acta.cerrado ) : null;\n    acta.fechaReunion = acta.fechaReunion ? new Date(acta.fechaReunion ) : null;\n    return acta;\n  }\n\n}","import { Component, OnInit } from '@angular/core';\nimport { InstrProductoModel } from '../../../models/InstrProductoModel';\nimport { HojaVidaModel } from '../../../models/HojaVidaModel';\nimport { SolicitudPuntoModel } from '../../../models/SolicitudPuntoModel';\nimport { SeccionModel } from '../../../models/SeccionModel';\nimport { HojaVidaPipe } from '../../../../../shared/pipes/hojavida.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { InstructorEntidadModel } from '../../../models/InstructorEntidadModel';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ArchivoModel } from '../../../models/ArchivoModel';\nimport { SolicitudPuntoService } from '../../../services/solicitud-punto.service';\nimport { ConfirmationService } from 'primeng/api';\nimport { ActasComiteService } from '../../../../../modules/actos/services/actas-comite.service';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputHelperSeleccionParesAcademicosComponent } from '../../../../../shared/componentes/input-helper-seleccion-pares-academicos/input-helper-seleccion-pares-academicos.component';\n\n@Component({\n  selector: 'app-pares-academicos-solicitud',\n  standalone: true,\n  imports: [\n    NgIf,\n    TableModule, TemplateTablaVaciaComponent,\n    TranslateModule,\n    HojaVidaPipe,\n    DatePipe,\n    FormsModule,\n    InputTextModule,\n    DropdownModule,\n    ButtonModule,\n    RippleModule,\n    CalendarModule,\n    InputHelperSeleccionParesAcademicosComponent,\n    ],\n  templateUrl: './pares-academicos.component.html',\n  styleUrl: './pares-academicos.component.scss'\n})\nexport class ParesAcademicosComponent implements OnInit{\n\n  public listadoParesAcadem: InstrProductoModel[] = [];\n\tpublic pares: HojaVidaModel[] = [];\n\tpublic nuevopar: boolean;\n  public mostrarPar : boolean;\n  public calificacion: boolean;\n  public mostrarFinalizarEvaluacionPares: boolean;\n  public verAplicar: boolean;\n\n\tpublic parametrosProducto: InstrProductoModel;\n  public filtro: InstrProductoModel;\n\tpublic listaParesItem: any[] = []\n  public listaAceptacion: any[] = []\n\tpublic solicitud:  SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic seccion: SeccionModel;\n\t//public Map<String, String> maparespuesta = this.hojaVidaPipe.LISTAACEPTACIONSOLICITUD;\n\tpublic listado: InstrProductoModel[] = [];\n\t\n\tpublic portal: boolean;\n\n\tpublic clickGuardar: boolean = false;\n\n  constructor(private hojaVidaPipe: HojaVidaPipe,\n              private saraAplicacionService: SaraAplicacionService,\n              private solicitudPuntoPipe: SolicitudPuntajeDocentePipe,\n              private solicitudPuntoService: SolicitudPuntoService,\n              private generalService: GeneralService,\n              private generalPipe: GeneralPipe,\n              public utilsService: UtilsService,\n              private notificacionesService: ToastService,\n              private confirmationService: ConfirmationService,\n              private actaComiteService: ActasComiteService,\n              private authService: AuthService,\n  ) {}\n\n  async ngOnInit() {\n    this.listaAceptacion = this.hojaVidaPipe.LISTAACEPTACIONSOLICITUD;\n    this.mostrarPar = false;\n    this.portal = this.saraAplicacionService.isAutoServicioPortal();\n  }\n\n  public async traer(solicitud: SolicitudPuntoModel, seccion:  SeccionModel) {\n\t\tthis.mostrarPar = false;\n\t\tthis.solicitud = solicitud;\n\t\tthis.seccion = seccion;\n\t\tthis.listadoParesAcadem = [];\n\t\tthis.parametrosProducto = new InstrProductoModel();\n\t\tif (this.solicitud.llaveTabla == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.parametrosProducto.solicitudpunto = this.solicitud.llaveTabla;\n\t\tthis.filtro = new InstrProductoModel();\n\t\tthis.filtro.solicitudpunto = (this.solicitud.llaveTabla);\n    console.log(this.parametrosProducto)\n\t\tthis.listadoParesAcadem = await this.solicitudPuntoService.obtenerProducto(this.parametrosProducto).toPromise();\n\t\tthis.verificarVerNuevoPar();\n\t\tthis.verificarBotonFinalizarEvaluacion();\n    await this.cargarPaginador();\n\t}\n\n  public async cargarPaginador() {\n    this.filtro = new InstrProductoModel();\n\t\tthis.filtro.solicitudpunto = (this.solicitud.llaveTabla);\n    this.listado = await this.solicitudPuntoService.obtenerProducto(this.filtro).toPromise();\n  }\n\t\n\tpublic verificarVerNuevoPar(){\n\t\tthis.nuevopar = false;\n\t\tif (this.solicitud.estado == (this.solicitudPuntoPipe.CONTACTOSDEPARES)) {\n\t\t\tthis.nuevopar = true;\n\t\t}\n\t}\n\n\t\n\tpublic verificarBotonFinalizarEvaluacion(){\n\t\tthis.mostrarFinalizarEvaluacionPares=false;\n\t\tif ( this.nuevopar == false) {\n\t\t\treturn;\n\t\t}\n\t\tif(this.listadoParesAcadem.length==0){\n\t\t\treturn;\n\t\t}\n\t\tfor (var par of this.listadoParesAcadem) {\n\t\t\tif(par.respuesta != (this.hojaVidaPipe.ENTREGA_EVALUACION) && par.respuesta != (this.hojaVidaPipe.NOACEPTACION) ){\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif(this.solicitud.estado != (this.solicitudPuntoPipe.CONTACTOSDEPARES)){\n\t\t\treturn;\n\t\t}\n\t\tthis.mostrarFinalizarEvaluacionPares=true;\n\t}\n\n\tpublic nuevoPar() {\n    this.verAplicar = true;\n    this.mostrarPar = true;\n    this.parametrosProducto = new InstrProductoModel();\n    this.parametrosProducto.respuesta = (this.hojaVidaPipe.ASIGNACION);\n\t}\n\t\n\tpublic notificarSolicitante() {\n\t\tlet filtro = this.hojaVidaPipe.LISTAACEPTACIONSOLICITUD.find(data => this.parametrosProducto.respuesta === data.codigo);\n    let estado = null;\n    if (filtro) {\n      estado = filtro.nombre\n    } \n    if (!estado) {\n      return;\n    }\n\t\tthis.actaComiteService.enviarCorreo({\n\t\t\tunaSolicitud: this.solicitud, estadoProcesoPares: estado, usuario: this.authService.getTokenKey('usuario'), llaveRol: this.authService.getTokenKey('llaveRol'), llaveEmpresa: this.authService.getTokenKey('llaveEmpresa')\n\t\t}).subscribe(data => {\n      this.notificacionesService.showInfo('Notificación enviada')\n\t\t});\n\t}\n\n\tpublic setParesPopup(instructorEntidadDTO: InstructorEntidadModel) {\n    this.parametrosProducto.instructorent = instructorEntidadDTO.intructorEntidad;\n    this.parametrosProducto.snombre = instructorEntidadDTO.nombrePar;\n    this.parametrosProducto.nombreCompleto = instructorEntidadDTO.nombrePar;\n\t}\n\n\tpublic cargarPar(event) {\n\t\t\tif ( this.saraAplicacionService.isCliente()) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tthis.parametrosProducto = event.data;\n\t\t\tthis.verAplicar = this.nuevopar;\n\t\t\tif ( this.saraAplicacionService.isCliente()) {\n\t\t\t\tthis.verAplicar = false;\n\t\t\t}\n      this.parametrosProducto = this.formatearFechasProducto(this.parametrosProducto);\n\t\t\tthis.mostrarPar = true;\n\t}\n\t\n\tpublic cambiarEstado(){\n\t\tthis.verAplicar = true;\n\t\t\n\t\tif (this.hojaVidaPipe.ASIGNACION == this.parametrosProducto.respuesta){\n\t\t\tthis.parametrosProducto.respuesta = ( this.hojaVidaPipe.INVITACION);\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tif (this.hojaVidaPipe.INVITACION == (this.parametrosProducto.respuesta)){\n\t\t\tthis.parametrosProducto.respuesta = ( this.hojaVidaPipe.ACEPTADO);\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.hojaVidaPipe.ACEPTADO == (this.parametrosProducto.respuesta)){\n\t\t\tthis.parametrosProducto.respuesta = ( this.hojaVidaPipe.ENVIO_MATERIAL);\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.hojaVidaPipe.ENVIO_MATERIAL == (this.parametrosProducto.respuesta)){\n\t\t\tthis.parametrosProducto.respuesta = ( this.hojaVidaPipe.ENTREGA_EVALUACION);\n\t\t\treturn null;\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic validar() {\n    var validador = true;\n    if(this.parametrosProducto==null){\n      validador=false;\n      return validador;\n    }\n    \n    if (this.parametrosProducto.instructorent == null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.parametrosProducto.instructorent);\n      return false;\n    }\n    //else{\n      //validador = validador && this.utilsService.validarCampoObligatorio(this.parametrosProducto.instructorent.stripTrailingZeros(), \"form_detalleSolicitudPuntajeDocente:instructorentPares\", true, 100, 0);\n    //}\n\n    if (this.parametrosProducto.respuesta == (this.hojaVidaPipe.NOACEPTACION)) {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.parametrosProducto.fechaRespuesta);\n    }\n    if (this.parametrosProducto.respuesta == (this.hojaVidaPipe.ENTREGA_EVALUACION)) {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.parametrosProducto.informeFinal);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.parametrosProducto.puntosasigna);\n    }\n    return validador;\n\t}\n\n\tpublic aplicarPar() {\n    this.clickGuardar = true;\n    if (!this.validar()) {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      return;\n    }\n    this.clickGuardar = false;\n    this.solicitudPuntoService.aplicarPar({parametrosProducto: this.parametrosProducto, llaveSolicitud: this.solicitud.llaveTabla, empresa: this.solicitud.empresa}).subscribe(data => {\n      this.listadoParesAcadem = data?.listadoParesAcadem;\n      this.solicitud = data?.solicitud;\n      this.parametrosProducto = data?.parametrosProducto;\n    });\n    this.verificarBotonFinalizarEvaluacion();\n    this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n    this.verificarVerNuevoPar();\n    this.mostrarPar = false;\n\t}\n\n\tpublic cambiarEstadoEvaluado(){\n    this.solicitud.estado = this.solicitudPuntoPipe.POREVALUAR;\n    this.verificarBotonFinalizarEvaluacion();\n    this.generalService.update(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitud)).subscribe(data => {\n      this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n    });\n}\n\tpublic eliminarPar() {\n\t\t\tif (this.parametrosProducto.instrproducto != null) {\n        this.confirmationService.confirm({\n          target: event.target,\n          message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n          header: 'Confirmar',\n          acceptLabel: this.generalPipe.SI_DESC,\n          accept: () => {\n            this.solicitudPuntoService.eliminarPar({parametrosProducto: this.parametrosProducto, solicitud: this.solicitud}).subscribe(data => {\n              this.listadoParesAcadem = data.listadoParesAcadem;\n\t\t          this.solicitud = data.solicitud;\n              this.mostrarPar = false;\n              this.verificarBotonFinalizarEvaluacion();\n              this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n            });\n          }\n        });\n      }\n\t}\n\n  \n\n\tpublic cancelarPar() {\n\t\tthis.mostrarPar = false;\n\t}\n\n\tpublic salir() {\n\t}\n\t\n\tpublic enviarInvitacion() {\n    this.setEnviarCorreoInvitacion([]);\n\t\t\t//getBean(PopupSeleccionAnexoSolicitudPuntoBean.class).buscar(\"#{paresAcademico.enviarCorreoInvitacion}\", this.solicitud.llaveTabla, this.seccion);\n\t}\n\t\n\tpublic setEnviarCorreoInvitacion(lista: ArchivoModel[]) {\n    var estado = this.hojaVidaPipe.LISTAACEPTACIONSOLICITUD.filter(data => this.parametrosProducto.respuesta == data.codigo)[0].codigo; \n    this.actaComiteService.enviarMailInvitacion({\n      solicitudCaso: this.solicitud, estadoProcesoPares: estado, instructorEntidad: this.parametrosProducto.instructorent, lista: lista, usuario: this.authService.getTokenKey('usuario'), llaveRol: this.authService.getTokenKey('llaveRol'), llaveEmpresa: this.authService.getTokenKey('llaveEmpresa')\n    }).subscribe(data => {\n      this.notificacionesService.showInfo(\"Se ha enviado la invitación\");\n    });\n\t}\n  \n\tpublic isFuncionalsoy() {\n\t\treturn !this.saraAplicacionService.isCliente();\n\t}\n\n\tpublic isInvitacion() {\n\t\treturn this.parametrosProducto.respuesta != null && this.hojaVidaPipe.ASIGNACION != (this.parametrosProducto.respuesta);\n\t}\n\n\tpublic isNoAceptacion() {\n\t\treturn this.parametrosProducto.respuesta != null && this.hojaVidaPipe.NOACEPTACION == (this.parametrosProducto.respuesta);\n\t}\n\n\tpublic isAceptacion() {\n\t\treturn this.parametrosProducto.respuesta != null && (this.hojaVidaPipe.ACEPTADO == (this.parametrosProducto.respuesta) || this.isEnvioMaterial() || this.isEntregaEvaluacion());\n\t}\n\n\tpublic isEnvioMaterial() {\n\t\treturn this.parametrosProducto.respuesta != null && (this.hojaVidaPipe.ENVIO_MATERIAL == (this.parametrosProducto.respuesta) || this.isEntregaEvaluacion());\n\t}\n\n\n\tpublic isEntregaEvaluacion() {\n\t\treturn this.parametrosProducto.respuesta != null && this.hojaVidaPipe.ENTREGA_EVALUACION == (this.parametrosProducto.respuesta);\n\t}\n\n\t\n\tpublic isEditarPar(){\n\t\treturn !(this.portal || this.saraAplicacionService.isCliente()) \n\t\t\t\t&& this.solicitud != null \n\t\t\t\t&& this.solicitudPuntoPipe.CONTACTOSDEPARES == (this.solicitud.estado);\n\t}\n\n  private formatearFechasProducto(parametrosProducto: InstrProductoModel): InstrProductoModel {\n    parametrosProducto.asignacion = parametrosProducto.asignacion ? new Date(parametrosProducto.asignacion ) : null;\n    parametrosProducto.fechaRespuesta = parametrosProducto.fechaRespuesta ? new Date(parametrosProducto.fechaRespuesta ) : null;\n    parametrosProducto.recibomat = parametrosProducto.recibomat ? new Date(parametrosProducto.recibomat ) : null;\n    parametrosProducto.pago = parametrosProducto.pago ? new Date(parametrosProducto.pago ) : null;\n    parametrosProducto.fechaCalificacion = parametrosProducto.fechaCalificacion ? new Date(parametrosProducto.fechaCalificacion ) : null;\n    parametrosProducto.fechaInvitacion = parametrosProducto.fechaInvitacion ? new Date(parametrosProducto.fechaInvitacion ) : null;\n    parametrosProducto.informeFinal = parametrosProducto.informeFinal ? new Date(parametrosProducto.informeFinal ) : null;\n    parametrosProducto.fechaActa = parametrosProducto.fechaActa ? new Date(parametrosProducto.fechaActa ) : null;\n    return parametrosProducto;\n  }\n\n}\n","@if (!mostrarPar) {\n<div class=\"flex justify-content-between align-items-center mt-2 mb-3\">\n    <h1>{{'paresacademicos' | translate}}</h1>\n    <div class=\"flex justify-content-end align-items-center\">\n        @if (nuevopar && isFuncionalsoy()) {\n        <button pButton pRipple class=\"p-button-secondary font-semibold flex-shrink-0 ml-4\" icon=\"pi pi-plus\"\n            label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoPar()\"></button>\n        }\n        @if (mostrarFinalizarEvaluacionPares && isFuncionalsoy()) {\n        <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'finalizarevaluacionpares' | translate}}\"\n            (click)=\"cambiarEstadoEvaluado()\"><i class=\"glyphicons glyphicons-restart\"></i></button>\n        }\n    </div>\n</div>\n<p-table #tablaGeneral [value]=\"listado\" responsiveLayout=\"scroll\" [scrollable]=\"true\" styleClass=\"p-datatable-striped\"\n    [rows]=\"10\" [totalRecords]=\"listado.length\" [paginator]=\"listado.length > 10\" (onLazyLoad)=\"cargarPaginador()\"\n    [lazy]=\"true\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" selectionMode=\"single\"\n    (onRowSelect)=\"cargarPar($event)\" scrollDirection=\"horizontal\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th *ngIf=\"isFuncionalsoy()\">{{'identificacion' | translate}}</th>\n            <th>{{'nombre' | translate}}</th>\n            <th>{{'fecha' | translate}} {{'asignacion' | translate}}</th>\n            <th>{{'estado' | translate}}</th>\n            <th *ngIf=\"isFuncionalsoy()\">{{'calificacion' | translate}}</th>\n        </tr>\n        <th>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-bean>\n        <tr [pSelectableRow]=\"bean\">\n            <td *ngIf=\"isFuncionalsoy()\">{{bean.documentoPar}}</td>\n            <td>\n                <label *ngIf=\"isFuncionalsoy()\">{{bean.nombrePar}}</label>\n                <label *ngIf=\"!isFuncionalsoy()\">{{'paresacademicos' | translate}}</label>\n                <label *ngIf=\"!isFuncionalsoy()\">1</label>\n            </td>\n            <td>{{bean.asignacion | date : ('formatofecha' | translate)}}</td>\n            <td>{{bean.respuesta | hojaVidaPipe : 'listaAceptacionSolicitud'}}</td>\n            <td *ngIf=\"isFuncionalsoy()\">\n                <label *ngIf=\"bean.respuesta == 'E'\">{{bean.puntosasigna}}</label>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"footer\" *ngIf=\"isFuncionalsoy()\">\n        <tr>\n            <td *ngIf=\"isFuncionalsoy()\"></td>\n            <td></td>\n            <td></td>\n            <td></td>\n            <td *ngIf=\"isFuncionalsoy()\">\n                <label class=\"total font-medium\">{{'promedio' | translate}}: {{solicitud.promedio}}</label>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n} @else {\n<div class=\"card mt-3\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n    <div class=\"col-md-12\">\n        <div class=\"Detallereporte mt-2\">\n            <div class=\"p-fluid p-formgrid grid\">\n                @if (isFuncionalsoy()) {\n                <div class=\"field col-12 md:col-6\">\n                    <span class=\"p-float-label\">\n                        <app-input-helper-seleccion-pares-academicos [mostrarX]=\"false\"\n                            [booleano]=\"utilsService.validarCampoObligatorio(parametrosProducto.instructorent) && clickGuardar\"\n                            [label]=\"parametrosProducto.nombreCompleto ? parametrosProducto.nombreCompleto : ''\"\n                            (onSelected)=\"setParesPopup($event)\"></app-input-helper-seleccion-pares-academicos>\n                    </span>\n                </div>\n                }\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown [options]=\"listaAceptacion\" [showClear]=\"false\" [autoDisplayFirst]=\"false\"\n                            [(ngModel)]=\"parametrosProducto.respuesta\" optionLabel=\"nombre\"\n                            optionValue=\"codigo\"></p-dropdown>\n                        <label>{{'etapa' | translate}}*</label>\n                    </span>\n                </div>\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                            [(ngModel)]=\"parametrosProducto.asignacion\"></p-calendar>\n                        <label>{{'asignacion' | translate}}</label>\n                    </span>\n                </div>\n                @if (isInvitacion()) {\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                            [(ngModel)]=\"parametrosProducto.fechaInvitacion\"></p-calendar>\n                        <label>{{'invitacion' | translate}}</label>\n                    </span>\n                </div>\n                }\n                @if (isAceptacion() || isNoAceptacion()) {\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                            [(ngModel)]=\"parametrosProducto.fechaRespuesta\"></p-calendar>\n                        <label>{{'fecharespuesta' | translate}}</label>\n                    </span>\n                </div>\n                }\n                @if (isNoAceptacion()) {\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" [(ngModel)]=\"parametrosProducto.comentarioNoAceptado\" size=\"90\">\n                        <label>{{'motivo' | translate}} *</label>\n                    </span>\n                </div>\n                }\n                @if (isEnvioMaterial()) {\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                            [(ngModel)]=\"parametrosProducto.recibomat\"></p-calendar>\n                        <label>{{'enviomaterial' | translate}}</label>\n                    </span>\n                </div>\n                }\n                @if (isEntregaEvaluacion()) {\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <p-calendar dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                            [(ngModel)]=\"parametrosProducto.informeFinal\"></p-calendar>\n                        <label>{{'fechaentregaevaluacion' | translate}}</label>\n                    </span>\n                </div>\n                }\n                @if (isEntregaEvaluacion()) {\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" [(ngModel)]=\"parametrosProducto.puntosasigna\" maxlength=\"5\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                            [class]=\"utilsService.validarCampoObligatorio(parametrosProducto.puntosasigna) && clickGuardar ? 'ng-dirty ng-invalid' : ''\">\n                        <label>{{'calificacion' | translate}}*</label>\n                    </span>\n                </div>\n                }\n                @if (isEntregaEvaluacion()) {\n                <div class=\"field col-12 md:col-3\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" [(ngModel)]=\"parametrosProducto.comentarioAceptado\" size=\"90\">\n                        <label>{{'comentario' | translate}}</label>\n                    </span>\n                </div>\n                }\n            </div>\n            <!--BOTONES-->\n            <div class=\"flex justify-content-end mb-3\">\n                @if(verAplicar && parametrosProducto.respuesta != 'N') {\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"cambiarEstado()\"\n                    icon=\"glyphicons glyphicons-chevron-right\" label=\"{{'siguiente' | translate}}\">\n                </button>\n                }\n                @if(verAplicar) {\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"aplicarPar()\"\n                    icon=\"glyphicons {{parametrosProducto.instrproducto ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\"\n                    label=\"{{parametrosProducto.instrproducto ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\">\n                </button>\n                }\n                @if(verAplicar && parametrosProducto.instrproducto) {\n                <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n                    label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarPar()\">\n                </button>\n                }\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"cancelarPar()\" icon=\"pi pi-ban\"\n                    label=\"{{'link_cancelar' | translate}}\">\n                </button>\n            </div>\n            <div class=\"flex justify-content-end mb-3\">\n                @if(isFuncionalsoy()) {\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"notificarSolicitante()\"\n                    icon=\"pi pi-envelope\" label=\"{{'notificarsolicitante' | translate}}\">\n                </button>\n                }\n                @if(isFuncionalsoy() && parametrosProducto.respuesta == 'I') {\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"enviarInvitacion()\"\n                    icon=\"pi pi-envelope\" label=\"{{'enviarinvitacion' | translate}}\">\n                </button>\n                }\n            </div>\n        </div>\n    </div>\n</div>\n}","import {Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'actasComite',\n    standalone: true\n})\n@Injectable({\n  providedIn: 'root'\n})\nexport class ActasComitePipe implements PipeTransform {\n\n  ESTADO_ELABORADO:string = \"1\";\n\tESTADO_CERRADO:string = \"2\";\n\tESTADO_APLICADO:string = \"3\";\n\n\tESTADO_ELABORADO_DESC:string = \"Elaborada\";\n\tESTADO_CERRADO_DESC:string = \"Cerrada\";\n\tESTADO_APLICADO_DESC:string = \"Aplicada\";\n\n  MAPA_ESTADOS_ACTA=[\n    {nombre:this.ESTADO_ELABORADO_DESC,codigo:this.ESTADO_ELABORADO},\n    {nombre:this.ESTADO_CERRADO_DESC,codigo:this.ESTADO_CERRADO},\n    {nombre:this.ESTADO_APLICADO_DESC,codigo:this.ESTADO_APLICADO},\n  ]\n\n  DETALLE_ACTA:string = \"DETALLE_ACTA\";\n\tREGRESAR_ACTA:string = \"REGRESAR_ACTA\";\n\t\n\tOPCION_REGISTRO:string = \"REGISTRO\";\n\tOPCION_SOLICITUDES:string = \"SOLICITUDES\";\n\tOPCION_ASISTENTES:string = \"ASISTENTES\";\n\tOPCION_SOLICITUDESCRUCE:string = \"SOLICITUDESCRUCE\";\n\t\n\tTIPO_ACTA_ENCARGADO:string = \"E\";\n\tTIPO_ACTA_TITULAR:string = \"T\";\n\t\n\tTIPO_ACTA_ENCARGADO_DESC:string = \"Encargado\";\n\tTIPO_ACTA_TITULAR_DESC:string = \"Titular\";\n\n  MAPA_TIPOS_ACTA=[\n    {nombre:this.TIPO_ACTA_ENCARGADO_DESC,codigo:this.TIPO_ACTA_ENCARGADO},\n    {nombre:this.TIPO_ACTA_TITULAR_DESC,codigo:this.TIPO_ACTA_TITULAR},\n  ]\n\n\tTIPOACTA_ACTA_SALARIAL:string = \"S\";\n\tTIPOACTA_ACTA_NOSALARIAL:string = \"N\";\n\tTIPOACTA_ACTA_NOAPLICA:string = \".\";\n\t\n\tTIPOACTA_ACTA_SALARIAL_DESC:string = \"Salarial\";\n\tTIPOACTA_ACTA_NOSALARIAL_DESC:string = \"No salarial\";\n\tTIPOACTA_ACTA_NOAPLICA_DESC:string = \"No aplica\";\n\n  MAPA_TIPOSACTA_ACTA=[\n    {nombre:this.TIPOACTA_ACTA_SALARIAL_DESC,codigo:this.TIPOACTA_ACTA_SALARIAL},\n    {nombre:this.TIPOACTA_ACTA_NOSALARIAL_DESC,codigo:this.TIPOACTA_ACTA_NOSALARIAL},\n    {nombre:this.TIPOACTA_ACTA_NOAPLICA_DESC,codigo:this.TIPOACTA_ACTA_NOAPLICA}\n  ]\n\n\n  transform(value: unknown, ...args: unknown[]): unknown {\n    let result = value;\n    if (args[0] == 'listaTiposActa') { this.MAPA_TIPOSACTA_ACTA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    if (args[0] == 'listaEstadosActa') { this.MAPA_ESTADOS_ACTA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n    return result;\n  }\n\n}\n","import { DatePipe, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FiltroGeneralComponent, GeneralService, UtilsService, AuthService, GeneralModel, CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { map } from 'rxjs';\nimport { ActasComitePipe } from '../../../modules/actos/pipes/actas-comite.pipe';\nimport { ActasModel } from '../../../modules/hojavida/models/ActasModel';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\n\n@Component({\n  selector: 'app-input-helper-buscar-acta',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperBuscarActaComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n    DatePipe,\n    ActasComitePipe,\n    DropdownModule,\n    CalendarModule,\n  ],\n  templateUrl: './input-helper-buscar-acta.component.html',\n  styleUrl: './input-helper-buscar-acta.component.scss'\n})\nexport class InputHelperBuscarActaComponent implements ControlValueAccessor, OnInit {\n  @Input() valuee: any;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() tipoTablaPuntaje: string;\n  @Input() tipoActa: string;\n  @Input() vinculacion: number;\n\n  listaActas: ActasModel[];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  dataSelected: ActasModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  @Input() campoReferencia: any;\n\n  @ViewChild(FiltroGeneralComponent) filtro: FiltroGeneralComponent;\n  public FilterValue2: any;\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n    public actasComitePipe: ActasComitePipe,\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'acta',\n        header: this.translateService.instant('acta'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  writeValue(value: any): void {\n    this.valuee = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  aplicarFiltro(event) {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n    this.filtro.aplicarFiltros();\n    this.loadData()\n  }\n\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.valuee = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.acta;\n    this.onChange(this.valuee);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData() {\n    let objeto = {\n      numeroVinculacion: this.vinculacion ? this.vinculacion : null,\n      tipoTablaPuntaje: this.tipoTablaPuntaje ? this.tipoTablaPuntaje : null,\n      tipoVariable: (this.tipoActa && this.tipoActa != '.') ? this.tipoActa : null,\n      empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      estado: this.actasComitePipe.ESTADO_CERRADO,\n      usuarioRol: this.authService.getTokenKey('aliasRol')\n    };\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'ActasDTO',\n      nombreConsulta: (this.tipoTablaPuntaje != null && this.vinculacion != null) ? 'Actas.consultarActasPorVinculacion' : null,\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaActas = await this.generalService\n      .queryForList(objetoFiltro).pipe(map(data => data.map(item => Object.assign(new ActasModel(), item))))\n      .toPromise();\n    const objetoFiltroCount: GeneralModel = {\n      nombreDTO: 'ActasDTO',\n      nombreConsulta: (this.tipoTablaPuntaje != null && this.vinculacion != null) ? 'Actas.cantidadActasPorVinculacionPaginador' : null,\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaActas.forEach(data =>{\n      data.fechaActa = data.fechaActa ? new Date(data.fechaActa) : null\n    })\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltroCount)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.valuee = null;\n    this.label = null;\n    this.onChange(this.valuee);\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new ActasModel();\n      filtro.llaveTabla = llave;\n      let objeto = new GeneralModel('ActasDTO', null, false, filtro);\n      let respuesta: ActasModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n      return `${respuesta.acta.trim()}`;\n    } else {\n      return null;\n    }\n  }\n\n  validarFechaManual(event: any) {\n    const inputValue = event.target.value;\n    if (inputValue && (typeof inputValue === 'string' || inputValue instanceof Date)) {\n      if (this.isValidDate(inputValue)) {\n        const formattedDate = this.formatDate(inputValue);\n        event.target.value = formattedDate;\n      } else {\n        event.target.value = '';\n\n      }\n    }\n  }\n\n  formatDate(date: any): string {\n    let dateObj: Date;\n    if (date instanceof Date) {\n      dateObj = date;\n    } else {\n      dateObj = new Date(date.split('/').reverse().join('-'));\n    }\n    const day = ('0' + dateObj.getDate()).slice(-2);\n    const month = ('0' + (dateObj.getMonth() + 1)).slice(-2);\n    const year = dateObj.getFullYear();\n    return `${day}/${month}/${year}`;\n  }\n\n  isValidDate(date: any): boolean {\n    if (date instanceof Date) {\n      return !isNaN(date.getTime());\n    }\n    const regex = /^\\d{2}\\/\\d{2}\\/\\d{4}$/;\n    return regex.test(date) && !isNaN(new Date(date.split('/').reverse().join('-')).getTime());\n  }\n\n}","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n    <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' : ''}}</label>\n    <label *ngIf=\"!booleano\">{{labelInput}}</label>\n  </span>\n  <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n  </button>\n  <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n    (click)=\"deleteSelection()\">\n    <span class=\"glyphicons glyphicons-remove\"></span>\n  </button>\n</div>\n\n<p-dialog header=\"{{'buscar' | translate}} {{'acta' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\"\n  appendTo=\"body\" (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n  [style]=\"{ width: '50vw'}\">\n  <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n    <!-- Filtro-->\n    <app-filtro-general [filtros]=\"filters\" [hidden]=\"true\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n              <label>{{'filtro' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n  <p-table #tablaGeneral class=\"mt-4\" dataKey=\"llaveTabla\" [value]=\"listaActas\" selectionMode=\"single\"\n    [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n    [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{'numero' | translate}} </th>\n        <th>{{'fecha' | translate}} </th>\n        <th>{{'expide' | translate}} </th>\n        <th>{{'tipo' | translate}} </th>\n        <th>{{'tipoacta' | translate}} </th>\n        <th>{{'estado' | translate}} </th>\n      </tr>\n      <tr class=\"bg-white\">\n        <th class=\"bg-white border-noround border-bottom-1 color-100\">\n          <div style=\"width: 100%;\" class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"acta\" matchMode=\"contains\" [showOperator]=\"false\" [showClearButton]=\"false\"\n              [showMenu]=\"false\" style=\"width: 100%;\"></p-columnFilter>\n          </div>\n        </th>\n        <th class=\"bg-white border-noround border-bottom-1 color-100\">\n          <div style=\"width: 100%;\" class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter style=\"width:100%;\" field=\"fechaActa\" matchMode=\"dateIs\" type=\"date\" [showOperator]=\"false\"\n              [showMenu]=\"false\" [showClearButton]=\"false\" dateFormat=\"dd/mm/yy\"\n              (onFilter)=\"aplicarFiltro($event)\">\n              <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n                <p-calendar appendTo=\"body\" [(ngModel)]=\"valuee\" (ngModelChange)=\"filter($event)\" dateFormat=\"dd/mm/yy\"\n                  (onBlur)=\"validarFechaManual($event)\">\n                </p-calendar>\n              </ng-template>\n            </p-columnFilter>\n          </div>\n        </th>\n        <th class=\"bg-white border-noround border-bottom-1 color-100\">\n          <div style=\"width: 100%;\" class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"depExpide\" matchMode=\"contains\" [showOperator]=\"false\" [showClearButton]=\"false\"\n              [showMenu]=\"false\" style=\"width: 100%;\"></p-columnFilter>\n          </div>\n        </th>\n        <th class=\"bg-white border-noround border-bottom-1 color-100\">\n          <div style=\"width: 100%;\" class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"descripcionTablaPuntaje\" matchMode=\"contains\" [showOperator]=\"false\"\n              [showClearButton]=\"false\" [showMenu]=\"false\" style=\"width: 100%;\">\n            </p-columnFilter>\n          </div>\n        </th>\n        <th class=\"bg-white border-noround border-bottom-1 color-100\">\n          <div style=\"width: 100%;\" class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"tipoVariable\" matchMode=\"equals\" [showOperator]=\"false\" [showClearButton]=\"false\"\n              [showMenu]=\"false\" style=\"width: 100%;\">\n              <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n                <p-dropdown [(ngModel)]=\"valuee\" [options]=\"actasComitePipe.MAPA_TIPOSACTA_ACTA\"\n                  (onChange)=\"filter($event.value)\" optionLabel=\"nombre\" optionValue=\"codigo\" appendTo=\"body\"\n                  [showClear]=\"true\">\n                </p-dropdown>\n              </ng-template>\n            </p-columnFilter>\n          </div>\n        </th>\n        <th class=\"bg-white border-noround border-bottom-1 color-100\">\n          <div style=\"width: 100%;\" class=\"flex\">\n            <span class=\"pl-0 text-base color-400\"></span>\n            <p-columnFilter field=\"estado\" matchMode=\"equals\" [showOperator]=\"false\" [showClearButton]=\"false\"\n              [showMenu]=\"false\" style=\"width: 100%;\">\n              <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\n                <p-dropdown [(ngModel)]=\"valuee\" [options]=\"actasComitePipe.MAPA_ESTADOS_ACTA\"\n                  (onChange)=\"filter($event.value)\" optionLabel=\"nombre\" optionValue=\"codigo\" appendTo=\"body\"\n                  [showClear]=\"true\">\n                </p-dropdown>\n              </ng-template>\n            </p-columnFilter>\n          </div>\n        </th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-bean>\n      <tr [pSelectableRow]=\"bean\">\n        <td>{{bean.acta}}</td>\n        <td>{{bean.fechaActa | date : ('formatofecha' | translate)}}</td>\n        <td>{{bean.depExpide}}</td>\n        <td>{{bean.descripcionTablaPuntaje}}</td>\n        <td>{{bean.tipoVariable | actasComite : 'listaTiposActa'}}</td>\n        <td>{{bean.estado | actasComite : 'listaEstadosActa'}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>","import { Component,EventEmitter,Injector,Input,OnInit,Output,ViewChild,forwardRef,} from '@angular/core';\nimport { ControlValueAccessor,NG_VALUE_ACCESSOR,FormsModule,ReactiveFormsModule,} from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../servicios/general.service';\nimport {AuthService,FiltroGeneralComponent,GeneralModel, UtilsService,} from 'general-library-union';\nimport { CampoFormularioModel } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FactorPuntajeModel } from '../../../modules/actos/models/FactorPuntajeModel';\nimport { map } from 'rxjs';\n\n@Component({\n  selector: 'app-input-helper-factores-puntaje-docente',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => InputHelperFactoresPuntajeDocenteComponent),\n      multi: true,\n    },\n  ],\n  imports: [\n    InputTextModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n  ],\n  templateUrl: './input-helper-factores-puntaje-docente.component.html',\n  styleUrl: './input-helper-factores-puntaje-docente.component.scss'\n})\nexport class InputHelperFactoresPuntajeDocenteComponent implements ControlValueAccessor, OnInit {\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  @Input() mostrarX: boolean;\n\n  @Input() labelInput: string;\n\n  @Input() traerTodos: boolean;\n  @Input() llaveSeccion: string;\n  @Input() vinculacion: number;\n\n  listaFactor: FactorPuntajeModel[];\n\n  onChange: Function = () => {};\n\n  onTouched: Function = () => {};\n\n  dataSelected: FactorPuntajeModel;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  @Input() campoReferencia : any;\n  \n  @ViewChild(FiltroGeneralComponent) filtro : FiltroGeneralComponent;\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private utilsService: UtilsService,\n    private authService: AuthService,\n  ) {\n  }\n\n  ngOnInit(): void {\n    this.showDialog = false;\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n    this.filtro.aplicarFiltros();\n  }\n\n  onRowSelect(event) {\n    this.dataSelected = event.data;\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = this.dataSelected.nombreFactor;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  async loadData(event) {\n    if (!this.vinculacion) {\n      return;\n    }\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      filtroTodos: event.filters.parametroBusqueda?.value\n        ? '%' + event.filters.parametroBusqueda?.value + '%'\n        : null,\n        vinculacion: this.vinculacion,\n        seccion: !this.traerTodos ? this.llaveSeccion : null,\n    };\n    console.log('objeto')\n    console.log(objeto)\n    const objetoFiltro: GeneralModel = {\n      nombreDTO: 'FactorPuntajeDTO',\n      nombreConsulta: this.traerTodos ? 'FactorPuntaje.consultarFactorPorVinculacionSinSeccion' : 'FactorPuntaje.consultarFactorPorVinculacion',\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.listaFactor = await this.generalService\n      .queryForList(objetoFiltro).pipe(map(data => data.map(item => Object.assign(new FactorPuntajeModel(), item))))\n      .toPromise();\n    \n    const objetoFiltroCount: GeneralModel = {\n      nombreDTO: 'FactorPuntajeDTO',\n      nombreConsulta: this.traerTodos ? 'FactorPuntaje.cantidadFactorPorVinculacionSinSeccion' : 'FactorPuntaje.cantidadFactorPorVinculacion',\n      seguridad: false,\n      objeto: objeto,\n    };\n    this.paginator.totalRecords = await this.generalService\n      .cantidadRegistros(objetoFiltroCount)\n      .toPromise();\n  }\n\n  deleteSelection() {\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.onSelected.emit({});\n  }\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: CampoFormularioModel): Promise<string> {\n    if (llave != null) {\n      let filtro = new FactorPuntajeModel();\n      filtro.llaveTabla = llave;\n      let objeto = new GeneralModel('FactorPuntajeDTO', null, false, filtro);\n      let respuesta: FactorPuntajeModel = await generalService\n        .queryForObject(objeto)\n        .toPromise();\n      return `${respuesta.nombreFactor.trim()}`;\n    } else {\n      return null;\n    }\n  }\n\n}\n","<div #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n      <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"/>\n      <label *ngIf=\"booleano\">{{labelInput ? labelInput + ' *' :  ''}}</label>\n      <label *ngIf=\"!booleano\">{{labelInput}}</label>\n    </span>\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <button *ngIf=\"mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </div>\n  \n  <p-dialog  header=\"{{'asignacionfactor' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    (onShow)=\"openDataTable()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '50vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n        <ng-template let-form>\n          <ng-container [formGroup]=\"form\">\n            <div class=\"field\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" formControlName=\"parametroBusqueda\" autocomplete=\"off\" />\n                <label>{{'filtro' | translate}}</label>\n              </span>\n            </div>\n          </ng-container>\n        </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral class=\"mt-4\" dataKey=\"llaveTabla\" [value]=\"listaFactor\" selectionMode=\"single\"\n        [scrollable]=\"true\" [paginator]=\"paginator.totalRecords > 10\" [rows]=\"paginator.rows\" responsiveLayout=\"scroll\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\" (onRowSelect)=\"onRowSelect($event)\" (onRowUnselect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'nombrelinea' | translate}} </th>\n                <th>{{'nombrefactor' | translate}} </th>\n                <th>{{'nombregrupo' | translate}} </th>\n                <th>{{'pares' | translate}} </th>\n                <th>{{'tipoacta' | translate}} </th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n                <td>{{bean.nombreLinea}}</td>\n                <td>{{bean.nombreFactor}}</td>\n                <td>{{bean.nombreGrupo}}</td>\n                <td>{{bean.pares}}</td>\n                <td>{{bean.tipoVariable}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, EventEmitter, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputHelperBuscarActaComponent } from '../../../../../../shared/componentes/input-helper-buscar-acta/input-helper-buscar-acta.component';\nimport { InputHelperFactoresPuntajeDocenteComponent } from '../../../../../../shared/componentes/input-helper-factores-puntaje-docente/input-helper-factores-puntaje-docente.component';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { SaraAplicacionService } from '../../../../../../shared/servicios/sara-aplicacion.service';\nimport { GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ButtonModule } from 'primeng/button';\nimport { CardModule } from 'primeng/card';\nimport { DialogModule } from 'primeng/dialog';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RippleModule } from 'primeng/ripple';\nimport { FactorPuntajeModel } from '../../../../../../modules/actos/models/FactorPuntajeModel';\nimport { EmpleadoModel } from '../../../../../../modules/compensacion/models/EmpleadoModel';\nimport { SelectListCompensa } from '../../../../../../modules/compensacion/services/select-list-compensa.service';\nimport { ActasModel } from '../../../../../../modules/hojavida/models/ActasModel';\nimport { CodigoBaseHovModel } from '../../../../../../modules/hojavida/models/CodigoBaseHovModel';\nimport { SolicitudPuntoModel } from '../../../../../../modules/hojavida/models/SolicitudPuntoModel';\n\n@Component({\n  selector: 'app-popup-asignacion-factor-puntaje-docente',\n  standalone: true,\n  imports: [\n    DialogModule,\n    TranslateModule,\n    InputTextModule,\n    ButtonModule,\n    RippleModule,\n    CardModule,\n    FormsModule,\n    DropdownModule,\n    InputHelperFactoresPuntajeDocenteComponent,\n    InputHelperBuscarActaComponent,\n  ],\n  templateUrl: './popup-asignacion-factor-puntaje-docente.component.html',\n  styleUrl: './popup-asignacion-factor-puntaje-docente.component.scss'\n})\nexport class PopupAsignacionFactorPuntajeDocenteComponent {\n\n  public solicitud: SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic listaContrato: EmpleadoModel[];\n\tpublic llaveSeccion: string;\n\tpublic tipoSolicitudEmpresa: string;\n\tpublic esEmpleado: boolean;\n\tpublic listVinculacion: any[] = [];\n\tpublic listaAcciones: any[] = [];\n\tpublic cambiarVinculacion: boolean;\n\tpublic pedirFactores: boolean;\n\tpublic pedirActa: boolean;\n\tpublic masivo: boolean;\n\tpublic listaSucesos: any[] = [];\n\tpublic suceso: string;\n\tpublic productos: SolicitudPuntoModel[] = [];\n\n  public mostrarPopup: boolean = false;\n  public clickGuardar: boolean = false;\n  public tipoActaSalarial: string;\n  @Output() public regresar = new EventEmitter();\n\n  constructor(public solicitudPuntajeDocentePipe: SolicitudPuntajeDocentePipe,\n              private selectListCompensa: SelectListCompensa,\n              private generalService: GeneralService,\n              private generalPipe: GeneralPipe,\n              public utilsService: UtilsService,\n              private saraAplicacionService: SaraAplicacionService,\n              private notificacionesService: ToastService,\n  ) {}\n\n  public async inicializar(solicitud: SolicitudPuntoModel, llaveSeccion: string){\n\t\tthis.pedirActa=false;\n\t\tthis.masivo=false;\n    this.cambiarVinculacion=false;\n    this.llaveSeccion = llaveSeccion;\n    this.solicitud = solicitud;\n    this.pedirFactores = true;\n//\t\t\tif ( HojaVidaCons.RECLAMACION == (solicitud.tipo)) {\n//\t\t\t\tpedirFactores = false;\n//\t\t\t}\n    let dbe = await this.saraAplicacionService.getDatosBasicosEmpresa();\n    this.tipoSolicitudEmpresa = dbe.tipoSolicitud;\n\t\t\n    await this.proponerFactor();\n    \n    await this.cargarTipoAsunto(solicitud.tipo);\n    \n    this.mostrarPopup = true;\n    this.listVinculacion = await this.selectListCompensa.getListadoVinculacionLaboral();\n\t}\n\t\n\tprivate async proponerFactor()  {\n\t\tvar enviarPares=false;\n\t\tif ( !this.pedirFactores ) {\n\t\t\tthis.pedirFactores = true;\n\t\t\tif ( this.solicitud.factorPuntaje != null) {\n\t\t\t\tvar buscarFactores = new FactorPuntajeModel();\n\t\t\t\tbuscarFactores.llaveTabla = this.solicitud.factorPuntaje;\n\t\t\t\tbuscarFactores = await this.generalService.queryForObject(new GeneralModel('FactorPuntajeDTO', null, false, buscarFactores)).toPromise();;\n\t\t\t\tif ( buscarFactores != null) {\n\t\t\t\t\tif ( this.generalPipe.SI == (buscarFactores.pares)) {\n\t\t\t\t\t\tenviarPares=true;\n\t\t\t\t\t}\n\t\t\t\t\tthis.pedirFactores = false;\n          await this.verPopupActas();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif ( this.pedirFactores ) {\n\t\t\tvar buscarFactores = new FactorPuntajeModel();\n\t\t\tbuscarFactores.seccion = this.llaveSeccion;\n\t\t\tbuscarFactores.vinculacion = this.solicitud.vinculacion;\n      console.log(buscarFactores)\n\t\t\tvar lista: FactorPuntajeModel[] = await this.generalService.queryForList(new GeneralModel('FactorPuntajeDTO', 'FactorPuntaje.consultarFactorPorVinculacion', false, buscarFactores)).toPromise();\n\t\t\tif ( lista.length==1) {\n\t\t\t  this.setAsignarFactor(lista[0]);\n\t\t\t}\n\t\t\tfor (let unFactor of lista) {\n\t\t\t\tif ( this.generalPipe.SI == (unFactor.pares)) {\n\t\t\t\t\tenviarPares=true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis.listaSucesos = [];\n\t\tif(this.solicitudPuntajeDocentePipe.MULTIPLE_REGISTRO == (this.tipoSolicitudEmpresa)){\n\t\t\tthis.listaSucesos.push({value:this.generalPipe.NO, label: \"Proceso de evaluación\"});\n\t\t\tthis.suceso= this.generalPipe.NO;\n\t\t}\n\t\telse {\n\t\t\tthis.listaSucesos.push({value: this.generalPipe.SI, label: \"Enviar al comite\"});\n\t\t\tthis.suceso= this.generalPipe.SI; \n\t\t\tif ( enviarPares ) {\n\t\t\t\tthis.listaSucesos.push({value: this.generalPipe.NO, label: \"Enviar a Proceso de Pares\"});\n\t\t\t\tthis.suceso= this.generalPipe.NO; \n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\tprivate async cargarTipoAsunto(tipoSolicitudPuntaje: string){\n    this.listaAcciones = [];\n    this.listaAcciones.push({value: 'aaaa', label: 'xxxx'})\n    var dto = new CodigoBaseHovModel();\n    dto.accion =tipoSolicitudPuntaje;\n    var listadoAcciones: CodigoBaseHovModel[] = await this.generalService.queryForList(new GeneralModel('CodigoBaseHovDTO', null, false, dto)).toPromise();\n      if ( listadoAcciones.length == 1) {\n        this.solicitud.asunto = listadoAcciones[0].codigo;\n      }\n      for (let i = 0 ; i < listadoAcciones.length; i++) {\n        let codigoBaseHovDTO = listadoAcciones[i];\n        this.listaAcciones.push({value: codigoBaseHovDTO.codigo, label: codigoBaseHovDTO.descripcion});\n      }\n      this.listaAcciones.shift();\n      console.log(this.listaAcciones)\n\t}\n\t\n\tpublic async inicializarMasivo(productos: SolicitudPuntoModel[], llaveSeccion: string){\n    this.cambiarVinculacion=false;\n    this.llaveSeccion = llaveSeccion;\n    this.solicitud =  productos[0];\n    await this.cargarTipoAsunto(this.solicitud.tipo);\n    this.pedirFactores = true;\n    let dbe = await this.saraAplicacionService.getDatosBasicosEmpresa();\n    this.tipoSolicitudEmpresa = dbe.tipoSolicitud;\n    this.productos = productos;\n    this.mostrarPopup = true;\n    this.listVinculacion = await this.selectListCompensa.getListadoVinculacionLaboral();\n    this.pedirActa=false;\n    this.masivo=true;\n\t}\n\n\tpublic  verPopupFactores(){\n\t\t\t//getBean(PopupFactoresPuntajeDocenteBean.class).inicializar(\"popupAsignacionFactorPuntajeDocenteBean.asignarFactor\", this.llaveSeccion,this.solicitud.vinculacion);\n\t}\n\t\n\tpublic async setAsignarFactor(factor: FactorPuntajeModel){\n    if (this.masivo){\n      for (let prod of this.productos) {\n        prod.descripcionFactor = factor.nombreFactor;\n        prod.descripcionLinea = factor.nombreLinea;\n        prod.descripcionGrupo = factor.nombreGrupo;\n        prod.factorPuntaje = factor.llaveTabla;\n      }\n    }\n    else{\n      this.solicitud.descripcionFactor = factor.nombreFactor;\n      this.solicitud.descripcionLinea = factor.nombreLinea;\n      this.solicitud.descripcionGrupo = factor.nombreGrupo;\n      this.solicitud.factorPuntaje = factor.llaveTabla;\n      await this.verPopupActas();\n    }\n\t}\n\t\n\tpublic validarFactor() {\n\t\tvar v = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.solicitud.factorPuntaje);\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.solicitud.asunto);\n\t\tif(this.solicitud.contrato==null){\n\t\t\tthis.notificacionesService.showWarning(\"No ha seleccionado un contrato.\");\n\t\t}\n\t\treturn v;\n\t}\n\t\n\tpublic validarActa(){\n\t\tvar v = true;\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.solicitud.numeroActa);\n\t\treturn v;\n\t}\n\t\n\tpublic async verPopupActas() {\n    let factorDTO: FactorPuntajeModel = await this.generalService.queryForObject(new GeneralModel('FactorPuntajeDTO', 'FactorPuntaje.consultarFactorPuntajeVista', false, {llaveTabla: this.solicitud.factorPuntaje})).toPromise();\n\t\tthis.tipoActaSalarial = factorDTO ? factorDTO.tipoVariable : null;\n\t\t\t//getBean(PopupBuscarActaBean.class).inicializar(\"popupAsignacionFactorPuntajeDocenteBean.asignarActa\", this.solicitudPuntajeDocentePipe.TIPOACTAUNIVERSIDAD,this.solicitud.vinculacion, tipoActaSalarial);\n\t}\n\n\tpublic  setAsignarActa(acta: ActasModel){\n\t\tthis.solicitud.numeroActa = acta.acta;\n    this.solicitud.llaveActa = acta.llaveTabla;\n\t}\n\n\tpublic async aplicarFactor(){\n\t\t\tif (this.pedirActa) {\n\t\t\t\tawait this.aplicarActa();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t/*\n\t\t\t * si productos es diferente de null quiere decir que el proceso de asignacion de factor\n\t\t\t * es masivo, es decir que hay mas de un producto. Si es nula,quiere decir que solo se\n\t\t\t * asignara factor de un producto.\n\t\t\t * */\n      this.clickGuardar = true;\n\t\t\tif (!this.validarFactor()){\n\t\t\t\treturn;\n\t\t\t}\n      this.clickGuardar = false;\n\t\t\tif (this.masivo){\n\t\t\t\tthis.aplicaFactorMasivo();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.generalPipe.SI == (this.suceso)) {\n\t\t\t\tthis.solicitud.numeroActa = null;\n\t\t\t\tthis.pedirActa=true;\n\t\t\t\tthis.pedirFactores=false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar buscarFactores = new FactorPuntajeModel();\n\t\t\tbuscarFactores.llaveTabla = this.solicitud.factorPuntaje;\n      buscarFactores.seccion = this.llaveSeccion;\n\t\t\tbuscarFactores = await this.generalService.queryForObject(new GeneralModel('FactorPuntajeDTO', \"FactorPuntaje.consultarFactorPuntajeVista\",false, buscarFactores)).toPromise();\n\t\t\tthis.solicitud.estado = (this.solicitudPuntajeDocentePipe.POREVALUAR);\n\t\t\tif(buscarFactores!=null && this.generalPipe.SI == (buscarFactores.pares)){\n\t\t\t\tthis.solicitud.estado = (this.solicitudPuntajeDocentePipe.CONTACTOSDEPARES);\n\t\t\t}\n\t\t\tawait this.generalService.update(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitud)).toPromise();\n\t\t\tthis.notificacionesService.showInfo(\"Se ha asignado el factor al producto\");\n\t\t\tthis.regresar.emit(this.solicitud);\n\t}\n\t\n\tprivate async aplicaFactorMasivo()  {\n\t\t \n\t}\n\t\n\tprivate async aplicarActa()  {\n    this.clickGuardar = true;\n\t\tif ( !this.validarActa() ) {\n\t\t\treturn;\n\t\t}\n    this.clickGuardar = false;\n\t\tthis.solicitud.estado = this.solicitudPuntajeDocentePipe.PRECOMITE;\n\t\tawait this.generalService.update(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitud)).toPromise();\n\t\tthis.regresar.emit(this.solicitud);\n\t\tthis.notificacionesService.showInfo(\"Se ha asignado el factor/acta al producto\");\n\t}\n\t\n\tpublic isVerContratos(){\n\t\treturn (this.solicitud.contrato  == null || this.solicitud.contrato == 0) && this.listaContrato != null && this.listaContrato.length>1;\n\t}\n\t\n\tpublic isVerFactores(){\n\t\treturn !this.isVerContratos();\n\t}\n\n  ocultar() {\n    this.mostrarPopup = false;\n  }\n\n}\n","<p-dialog header=\"{{'asignacionfactor' | translate}}\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" \n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <p-card>\n        <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n            <div class=\"Inputgroup m-0\">\n                <div class=\"p-fluid grid\">\n                    <div class=\"field col-6 md:col-6 lg:col-6\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown appendTo=\"body\" [options]=\"listVinculacion\" [showClear]=\"false\" [autoDisplayFirst]=\"false\" [disabled]=\"true\" \n                                [(ngModel)]=\"solicitud.vinculacion\" ></p-dropdown>\n                            <label>{{'vinculacion' | translate}}</label>\n                        </span>\n                    </div>\n\n                    <div class=\"field col-6 md:col-6 lg:col-6\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown appendTo=\"body\" [options]=\"listaSucesos\" [showClear]=\"false\" [autoDisplayFirst]=\"false\" [disabled]=\"listaSucesos.length == 1\"\n                                [(ngModel)]=\"suceso\" ></p-dropdown>\n                            <label>{{'accion' | translate}}*</label>\n                        </span>\n                    </div>\n                    \n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus [(ngModel)]=\"solicitud.descripcionLinea\" type=\"text\" [disabled]=\"true\" />\n                            <label>{{'linea' | translate}}*</label>\n                        </span>\n                    </div>\n\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <app-input-helper-factores-puntaje-docente [mostrarX]=\"false\" [labelInput]=\"'factor' | translate\"\n                            [booleano]=\"utilsService.validarCampoObligatorio(solicitud.descripcionFactor) && clickGuardar\"\n                            [label]=\"solicitud.descripcionFactor ? solicitud.descripcionFactor : ''\" [readonly]=\"!pedirFactores\"\n                            [llaveSeccion]=\"llaveSeccion\" [vinculacion]=\"solicitud.vinculacion\" [traerTodos]=\"false\"\n                            (onSelected)=\"setAsignarFactor($event)\"></app-input-helper-factores-puntaje-docente>\n                    </div>\n\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus [(ngModel)]=\"solicitud.descripcionGrupo\" type=\"text\" [disabled]=\"true\"  />\n                            <label>{{'grupo' | translate}}*</label>\n                        </span>\n                    </div>\n\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown appendTo=\"body\" [options]=\"listaAcciones\" [showClear]=\"false\" [autoDisplayFirst]=\"false\" [disabled]=\"pedirActa\"\n                                [(ngModel)]=\"solicitud.asunto\" ></p-dropdown>\n                            <label>{{'tipoasunto' | translate}}*</label>\n                        </span>\n                    </div>\n\n                    @if(pedirActa) {\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                          <app-input-helper-buscar-acta [mostrarX]=\"false\" [labelInput]=\"'acta' | translate\"\n                            [booleano]=\"utilsService.validarCampoObligatorio(solicitud.numeroActa) && clickGuardar\"\n                            [label]=\"solicitud.numeroActa ? solicitud.numeroActa : ''\" \n                            [vinculacion]=\"solicitud.vinculacion\" [tipoTablaPuntaje]=\"solicitudPuntajeDocentePipe.TIPOACTAUNIVERSIDAD\" \n                            [tipoActa]=\"tipoActaSalarial\"\n                            (onSelected)=\"setAsignarActa($event)\"></app-input-helper-buscar-acta>\n                        </div>\n                    }\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\" >\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"aplicarFactor()\" label=\"{{'aplicar' | translate}}\">\n            </button>\n        </div>\n    </p-card>\n\n</p-dialog>","import { Component, EventEmitter, Output, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { HojaVidaPipe } from '../../../../../../shared/pipes/hojavida.pipe';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ButtonModule } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CardModule } from 'primeng/card';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { RippleModule } from 'primeng/ripple';\nimport { SolicitudPuntoModel } from '../../../../../../modules/hojavida/models/SolicitudPuntoModel';\n\n@Component({\n  selector: 'app-popup-motivo-solicitud-punto',\n  standalone: true,\n  imports: [\n    DialogModule,\n    CardModule,\n    InputTextareaModule,\n    CalendarModule,\n    ButtonModule,\n    RippleModule,\n    TranslateModule,\n    FormsModule,\n  ],\n  templateUrl: './popup-motivo-solicitud-punto.component.html',\n  styleUrl: './popup-motivo-solicitud-punto.component.scss'\n})\nexport class PopupMotivoSolicitudPuntoComponent {\n\n  public titulo: string;\n  public solicitudPuntoDTO: SolicitudPuntoModel;\n\n  public mostrarPopup: boolean = false;\n  public clickGuardar: boolean = false;\n\n  @Output() public regresar = new EventEmitter();\n  constructor(private hojaVidaPipe: HojaVidaPipe,\n              private solicitudPuntoPipe: SolicitudPuntajeDocentePipe,\n              public utilsService: UtilsService,\n              private notificacionesService: ToastService,\n              private generalPipe: GeneralPipe,\n              private generalService: GeneralService,\n  ) {}\n\n  public init(solicitudPuntoDTO: SolicitudPuntoModel) {\n\t\tthis.solicitudPuntoDTO = solicitudPuntoDTO;\n\t\tthis.establecerTitulo();\n\t\tthis.mostrarPopup = true;\n\t}\n\n\n\tprivate establecerTitulo() {\n\t\tif(this.isEnRevision()){\n\t\t\tthis.titulo = \"Cambio Estado a Revisi\"+Constantes.O_TIDLE_MIN+\"n Correcci\"+Constantes.O_TIDLE_MIN+\"n\";\n\t\t\tthis.solicitudPuntoDTO.fechaCorreccion = new Date();\n\t\t}else if(this.isEnRevisionCorreccion()){\n\t\t\tthis.titulo = \"Cambio Estado a Revisi\"+Constantes.O_TIDLE_MIN+\"n\";\n\t\t\tthis.solicitudPuntoDTO.fechaRevision = new Date();\n\t\t}\n\t}\n\n\tprivate  validar(){\n\t\tvar validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.solicitudPuntoDTO.baseRevision);\n\t\tif(this.isEnRevisionCorreccion()){\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.solicitudPuntoDTO.fechaRevision);\n\t\t}\n\t\tif(this.isEnRevision()){\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.solicitudPuntoDTO.fechaCorreccion);\n\t\t}\n\t\treturn validador;\n\t}\n\n\n\n\tpublic guardar(){\n    this.clickGuardar = true;\n    if(!this.validar()){\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      return;\n    }\n    this.clickGuardar = false;\n    if(this.isEnRevision()){\n      this.solicitudPuntoDTO.estado = this.solicitudPuntoPipe.ENREVISIONCORRECCION;\n    }else if(this.isEnRevisionCorreccion()){\n      this.solicitudPuntoDTO.estado = this.solicitudPuntoPipe.ENREVISION;\n    }\n    this.generalService.update(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitudPuntoDTO)).subscribe(data => {\n      this.regresar.emit(this.solicitudPuntoDTO);\n      this.ocultar();\n    });\n\t}\n\n  public ocultar() {\n    this.mostrarPopup = false;\n  }\n\n  public isEnRevision(): boolean{\n\t\tif(this.solicitudPuntoDTO == null || this.solicitudPuntoDTO.estado == null){\n\t\t\treturn false;\n\t\t}\n\t\treturn this.solicitudPuntoPipe.ENREVISION == (this.solicitudPuntoDTO.estado) || this.solicitudPuntoPipe.CONTACTOSDEPARES == (this.solicitudPuntoDTO.estado) ;\n\t}\n\n\tpublic isEnRevisionCorreccion(): boolean{\n\t\tif(this.solicitudPuntoDTO == null || this.solicitudPuntoDTO.estado == null){\n\t\t\treturn false;\n\t\t}\n\t\treturn this.solicitudPuntoPipe.ENREVISIONCORRECCION == (this.solicitudPuntoDTO.estado);\n\t}\n\n}\n","<p-dialog header=\"{{titulo}}\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" \n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <p-card>\n        <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n            <div class=\"Inputgroup m-0\">\n                <div class=\"p-fluid grid\">\n                    @if(isEnRevision()) {\n                        <div class=\"field col-12 md:col-12 lg:col-12\">\n                            <span class=\"p-float-label\">\n                                <textarea pInputTextarea class=\"w-full min-h-150 max-h-200\" [(ngModel)]=\"solicitudPuntoDTO.baseRevision\"\n                                    [class]=\"utilsService.validarCampoObligatorio(solicitudPuntoDTO.baseRevision) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"></textarea>\n                                <label>{{'motivo' | translate}}*</label>\n                            </span>\n                        </div>\n                    }\n\n                    @if(isEnRevisionCorreccion()) {\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"solicitudPuntoDTO.fechaRevision\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\"\n                                    [class]=\"utilsService.validarCampoObligatorio(solicitudPuntoDTO.fechaRevision) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"></p-calendar>\n                                <label>{{'fecha' | translate}} {{'revision' | translate}}*</label>\n                            </span>\n                        </div>\n                    }\n\n                    @if(isEnRevision()) {\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"solicitudPuntoDTO.fechaCorreccion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\"\n                                    [class]=\"utilsService.validarCampoObligatorio(solicitudPuntoDTO.fechaCorreccion) && clickGuardar ? 'ng-invalid ng-dirty' : ''\"></p-calendar>\n                                <label>{{'fechacorrecion' | translate}}*</label>\n                            </span>\n                        </div>\n                    }\n\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\" >\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"guardar()\" label=\"{{'link_aplicar' | translate}}\">\n            </button>\n        </div>\n    </p-card>\n</p-dialog>","import { Component, EventEmitter, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputHelperBuscarActaComponent } from '../../../../../../shared/componentes/input-helper-buscar-acta/input-helper-buscar-acta.component';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { UtilsService, ToastService, GeneralModel } from 'general-library-union';\nimport { ButtonModule } from 'primeng/button';\nimport { CardModule } from 'primeng/card';\nimport { DialogModule } from 'primeng/dialog';\nimport { RippleModule } from 'primeng/ripple';\nimport { ActasModel } from '../../../../../../modules/hojavida/models/ActasModel';\nimport { SolicitudPuntoModel } from '../../../../../../modules/hojavida/models/SolicitudPuntoModel';\n\n@Component({\n  selector: 'app-popup-solicitar-acta',\n  standalone: true,\n  imports: [\n    DialogModule,\n    CardModule,\n    ButtonModule,\n    RippleModule,\n    TranslateModule,\n    FormsModule,\n    InputHelperBuscarActaComponent\n  ],\n  templateUrl: './popup-solicitar-acta.component.html',\n  styleUrl: './popup-solicitar-acta.component.scss'\n})\nexport class PopupSolicitarActaComponent {\n\n  public solicitud: SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic tipoActa: string;\n\tpublic productos: SolicitudPuntoModel[] = [];\n\n  public tipoActaSalarial: string;\n  public vinculacion: number;\n  public mostrarPopup: boolean = false; \n  @Output() public regresar = new EventEmitter();\n\n  constructor(private solicitudPuntoPipe: SolicitudPuntajeDocentePipe,\n    public utilsService: UtilsService,\n    private notificacionesService: ToastService,\n    private generalPipe: GeneralPipe,\n    private generalService: GeneralService){}\n\n  public inicializar(solicitud: SolicitudPuntoModel, tipoActa: string){\n\t\t\tthis.solicitud = solicitud;\n\t\t\tthis.tipoActa = tipoActa;\n\t\t\tthis.mostrarPopup = true;\n      this.verPopupActas();\n\t}\n\t\n\tpublic inicializarMasivo (productos: SolicitudPuntoModel[], tipoActa: string){\n    this.productos = productos;\n    this.tipoActa=tipoActa;\n    this.solicitud = new SolicitudPuntoModel();\n    this.mostrarPopup = true;\n    this.verPopupActas();\n\t}\n\n\t\n\tpublic verPopupActas(){\n    if (this.productos != null && this.productos?.length > 0){\n      this.vinculacion = this.productos[0].vinculacion;\n      this.generalService.queryForObject(new GeneralModel('FactorPuntajeDTO', 'FactorPuntaje.consultarFactorPuntajeVista', false, {llaveTabla: this.productos[0].factorPuntaje })).subscribe(data => {\n        this.tipoActaSalarial = data ? data.tipoVariable : null;\n      });\n      //String tipoActaSalarial = solicitudPuntoSvc.consultarTipoActaFactor(getDataSource(), productos[0].getFactorPuntaje());\n      //getBean(PopupBuscarActaBean.class).inicializar(\"popupSolicitarActaBean.asignarActa\", tipoActa,productos[0].getVinculacion(), tipoActaSalarial);\n    }else{\n      this.vinculacion = this.solicitud.vinculacion;\n      this.generalService.queryForObject(new GeneralModel('FactorPuntajeDTO', 'FactorPuntaje.consultarFactorPuntajeVista', false, {llaveTabla: this.solicitud.factorPuntaje })).subscribe(data => {\n        this.tipoActaSalarial = data ? data.tipoVariable : null;\n      });\n      //String tipoActaSalarial = solicitudPuntoSvc.consultarTipoActaFactor(getDataSource(), solicitud.getFactorPuntaje());\n      //getBean(PopupBuscarActaBean.class).inicializar(\"popupSolicitarActaBean.asignarActa\", tipoActa,solicitud.getVinculacion(), tipoActaSalarial);\n    }\n\t}\n\t\n\t\n\tpublic setAsignarActa(acta: ActasModel){\n    if (this.productos != null){\n      this.solicitud = this.productos[0];\n      for (var solicitudDTO of this.productos) {\n        if(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAFACULTAD)){\n          solicitudDTO.numeroActaFacultad = acta.acta;\n          solicitudDTO.llaveActaFacultad = acta.llaveTabla;\n        }\n        if(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD)){\n          solicitudDTO.numeroActa = acta.acta;\n          solicitudDTO.llaveActa = acta.llaveTabla;\n        }\n      }\n    }else{\n      if(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAFACULTAD)){\n        this.solicitud.numeroActaFacultad = acta.acta;\n        this.solicitud.llaveActaFacultad = acta.llaveTabla;\n      }\n      if(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD)){\n        this.solicitud.numeroActa = acta.acta;\n        this.solicitud.llaveActa = acta.llaveTabla;\n      }\n    }\n\t}\n\t\n\tpublic validarActa(){\n\t\tif (this.productos == null){\n\t\t\tif(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAFACULTAD)){\n\t\t\t\tif(this.solicitud.llaveActaFacultad!=null && this.solicitud.llaveActaFacultad.trim() != (this.generalPipe.PUNTO)){\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD)){\n\t\t\t\tif(this.solicitud.llaveActa!=null){\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\tthis.notificacionesService.showWarning(\"Seleccione un Acta\");\n\t\t\t\treturn false;\n\t\t}else {\n\t\t\tvar valido: boolean = true;\n\t\t\tfor (var sol of this.productos) {\n\t\t\t\tif(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAFACULTAD)){\n\t\t\t\t\tif(sol.llaveActaFacultad!=null && this.utilsService.rightpad(this.generalPipe.PUNTO, 32, ' ') != sol.llaveActaFacultad){\n\t\t\t\t\t\tvalido = valido && true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD)){\n\t\t\t\t\tif(sol.llaveActa!=null && this.utilsService.rightpad(this.generalPipe.PUNTO, 32, ' ') != sol.llaveActa){\n\t\t\t\t\t\tvalido = valido && true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.notificacionesService.showWarning(\"Seleccione un Acta\");\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn valido;\n\t\t}\n\t\t\n\t}\n\tpublic aplicarActa(){\n\t\t\tif(this.validarActa()){\n\t\t\t\t\n\t\t\t\tif (this.productos != null){\n\t\t\t\t\tfor (var solPuntoDTO of this.productos) {\n\t\t\t\t\t\tif(this.tipoActa == this.solicitudPuntoPipe.TIPOACTAFACULTAD){\n\t\t\t\t\t\t\tsolPuntoDTO.estado = this.solicitudPuntoPipe.PRECOMITEDEFACULTAD;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(this.tipoActa == this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD){\n\t\t\t\t\t\t\tsolPuntoDTO.estado = this.solicitudPuntoPipe.PRECOMITE;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.generalService.update(new GeneralModel('SolicitudPuntoDTO', null, false, solPuntoDTO)).subscribe(data => {});\n\t\t\t\t\t}\n\t\t\t\t}else{\n\t\t\t\t\tif(this.tipoActa == this.solicitudPuntoPipe.TIPOACTAFACULTAD){\n\t\t\t\t\t\tthis.solicitud.estado = this.solicitudPuntoPipe.PRECOMITEDEFACULTAD;\n\t\t\t\t\t}\n\t\t\t\t\tif(this.tipoActa == this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD){\n\t\t\t\t\t\tthis.solicitud.estado = this.solicitudPuntoPipe.PRECOMITE;\n\t\t\t\t\t}\n          this.generalService.update(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitud)).subscribe(data => {});\n\t\t\t\t}\n\t\t\t\tthis.regresar.emit(this.solicitud);\n\t\t\t\tthis.notificacionesService.showInfo(\"Se asocio el acta exitosamente\");\n\t\t\t}\n    }\n\n    ocultar() {\n      this.mostrarPopup = false;\n    }\n\n    public isVerActaFacultad(){\n      if(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAFACULTAD)){\n        return true;\n      }\n      return false;\n    }\n    public isVerActaUniversidad(){\n      if(this.tipoActa == (this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD)){\n        return true;\n      }\n      return false;\n    }\n\n}\n","<p-dialog header=\"{{'solicitar' | translate}} {{'acta' | translate}}\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" \n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <p-card>\n        <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n            <div class=\"Inputgroup m-0\">\n                <div class=\"p-fluid grid\">\n                    @if(isVerActaFacultad()) {\n                        <div class=\"field col-6 md:col-6 lg:col-6\">\n                            <app-input-helper-buscar-acta [mostrarX]=\"false\" [labelInput]=\"('acta' | translate)+ ' ' +('facultad' | translate)\"\n                                [label]=\"solicitud.numeroActaFacultad ? solicitud.numeroActaFacultad : ''\" \n                                [vinculacion]=\"vinculacion\" [tipoTablaPuntaje]=\"tipoActa\" \n                                [tipoActa]=\"tipoActaSalarial\"\n                                (onSelected)=\"setAsignarActa($event)\"></app-input-helper-buscar-acta>\n                        </div>\n                    }\n                    @if(isVerActaUniversidad()) {\n                        <div class=\"field col-6 md:col-6 lg:col-6\">\n                            <app-input-helper-buscar-acta [mostrarX]=\"false\" [labelInput]=\"('acta' | translate)+ ' ' +('universidad' | translate)\"\n                                [label]=\"solicitud.numeroActa ? solicitud.numeroActa : ''\" \n                                [vinculacion]=\"vinculacion\" [tipoTablaPuntaje]=\"tipoActa\" \n                                [tipoActa]=\"tipoActaSalarial\"\n                                (onSelected)=\"setAsignarActa($event)\"></app-input-helper-buscar-acta>\n                        </div>\n                    }\n                </div>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\" >\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"aplicarActa()\" label=\"{{'solicitar' | translate}} {{'acta' | translate}}\">\n            </button>\n        </div>\n    </p-card>\n\n</p-dialog>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { CargarControlFuncionalidadService, StorageService, ToastService, UtilsService } from 'general-library-union';\nimport { ActasModel } from '../../../../modules/hojavida/models/ActasModel';\nimport { SolicitudPuntoModel } from '../../../../modules/hojavida/models/SolicitudPuntoModel';\nimport { SolicitudPuntoService } from '../../../../modules/hojavida/services/solicitud-punto.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PopupSeguimientoComponent } from '../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { ButtonDirective } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { NgIf } from '@angular/common';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-popup-aplicar-solicitud-acta',\n    templateUrl: './popup-aplicar-solicitud-acta.component.html',\n    styleUrls: ['./popup-aplicar-solicitud-acta.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, FormsModule, InputTextModule, CalendarModule, NgIf, CheckboxModule, ButtonDirective, PopupSeguimientoComponent, TranslateModule]\n})\nexport class PopupAplicarSolicitudActaComponent implements OnInit {\n\n  @Output() solicitudReturn = new EventEmitter;\n\n  solicitud: SolicitudPuntoModel = new SolicitudPuntoModel();\n  acta: ActasModel = new ActasModel();\n  seguimiento: boolean;\n  showDialog: boolean = false;\n  clickGuardar: boolean = false;\n  mostrarPopupSeguimiento: boolean = false;\n  llaveSeguimiento: string = null;\n  isLoadingData: boolean = false;\n\n  constructor(\n    public utilsService: UtilsService,\n    private toastService: ToastService,\n    private solicitudPuntoService: SolicitudPuntoService,\n    private storageService: StorageService,\n    public controlFuncionalidad: CargarControlFuncionalidadService\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  async inicializar(isSolicitud: SolicitudPuntoModel, isActa: ActasModel) {\n    this.acta = isActa;\n    this.seguimiento = false;\n    this.solicitud = Object.assign({}, isSolicitud);    \n    if (this.solicitud.vigenciaFiscal == null) {\n      this.solicitud.vigenciaFiscal = this.acta.vigenciaFiscal;\n    }\n    this.showDialog = true;    \n  }\n\n  async aplicar() {\n    this.clickGuardar = false;\n    if (!this.validar()) {\n      this.toastService.showError('Faltan campos obligatorios.');\n      this.clickGuardar = true;\n      return;\n    }\n    this.llaveSeguimiento = null;\n    if (this.seguimiento) {\n      this.llaveSeguimiento = this.utilsService.generarLlave();\n    }\n    this.isLoadingData = true;\n    let respuesta: any = await this.solicitudPuntoService.aplicarPuntos({\n      solicitud: this.solicitud,\n      usuario: this.storageService.getDecodedJWT().usuario,\n      llaveSeguimiento: this.llaveSeguimiento\n    }).toPromise();\n    this.solicitud = respuesta;\n    if (this.llaveSeguimiento != null) {\n      this.mostrarPopupSeguimiento = true;\n      this.isLoadingData = false;\n      return;\n    }\n    if (this.utilsService.isNotBlank(this.solicitud.mensaje)) {\n      this.toastService.showWarning(this.solicitud.mensaje);\n      this.isLoadingData = false;\n      return;\n    }\n    this.isLoadingData = false;\n    this.toastService.showSuccess('Se aplicarón los cambios');\n    this.solicitudReturn.emit(this.solicitud);\n    this.ocultarPopup();\n  }\n\n  validar(): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.solicitud.vigenciaFiscal);\n    return validador;\n  }\n\n  regresarPopUp() {\n    this.mostrarPopupSeguimiento = false;\n    this.seguimiento = false;\n  }\n\n  mostrarPopup() {\n    this.showDialog = true;\n  }\n\n  ocultarPopup() {\n    this.showDialog = false;\n  }\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{'solicitud' | translate}}\" [(visible)]=\"showDialog\" (onShow)=\"mostrarPopup()\"\n    (onHide)=\"ocultarPopup()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\"\n    [style]=\"{ width: '60vw'}\">\n    <div class=\"contenedor\">\n        <div class=\"p-fluid grid\">\n            <!-- MAXIMO -->\n            <div class=\"field col-12 md:col-3 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input type=\"text\" pInputText id=\"id_maximo\" [(ngModel)]=\"solicitud.puntosSolicita\" maxlength=\"5\"\n                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\" [disabled]=\"true\">\n                    <label htmlFor=\"id_maximo\">{{'maximo' | translate}}</label>\n                </span>\n            </div>\n            <!-- OTORGADO -->\n            <div class=\"field col-12 md:col-3 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input type=\"text\" pInputText id=\"id_otorgado\" [(ngModel)]=\"solicitud.puntosAsignados\" maxlength=\"5\"\n                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\">\n                    <label htmlFor=\"id_otorgado\">{{'otorgado' | translate}}</label>\n                </span>\n            </div>\n            <!-- ACUMULADOS -->\n            <div class=\"field col-12 md:col-3 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input type=\"text\" pInputText id=\"id_acumulados\" [(ngModel)]=\"solicitud.puntoAcumula\" maxlength=\"5\"\n                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\" [disabled]=\"true\">\n                    <label htmlFor=\"id_acumulados\">{{'acumulados' | translate}}</label>\n                </span>\n            </div>\n            <!-- DISTINCION -->\n            <div class=\"field col-12 md:col-3 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input type=\"text\" pInputText id=\"id_distincion\" [(ngModel)]=\"solicitud.puntoAdicional\"\n                        maxlength=\"5\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\"\n                        [disabled]=\"true\">\n                    <label htmlFor=\"id_distincion\">{{'distincion' | translate}}</label>\n                </span>\n            </div>\n            <!-- ASIGNADOS -->\n            <div class=\"field col-12 md:col-3 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input type=\"text\" pInputText id=\"id_asignados\" [(ngModel)]=\"solicitud.puntosValidos\" maxlength=\"5\"\n                        oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\" [disabled]=\"true\">\n                    <label htmlFor=\"id_asignados\">{{'asignados' | translate}}</label>\n                </span>\n            </div>\n            <!-- PENDIENTES -->\n            <div class=\"field col-12 md:col-3 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input type=\"text\" pInputText id=\"id_pendientes\" [(ngModel)]=\"solicitud.puntoPendiente\"\n                        maxlength=\"5\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 15);\">\n                    <label htmlFor=\"id_pendientes\">{{'pendientes' | translate}}</label>\n                </span>\n            </div>\n            <!-- VIGENCIA FISCAL -->\n            <div class=\"field col-12 md:col-3 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"solicitud.vigenciaFiscal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                        appendTo=\"body\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(solicitud.vigenciaFiscal) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(solicitud.vigenciaFiscal) && clickGuardar\">\n                    </p-calendar>\n                    <label htmlFor=\"id_vigenciafiscal\">{{'vigenciafiscal' | translate}} *</label>\n                </span>\n            </div>\n            <!-- OBSERVACION -->\n            <div class=\"field col-12 md:col-3 lg:col-8\">\n                <span class=\"p-float-label\">\n                    <textarea pInputText type=\"text\" [(ngModel)]=\"solicitud.observacion\"\n                        style=\"height: 42px !important;  min-height: 42px;\" class=\"w-full min-h-60 max-h-60\"></textarea>\n                    <label htmlFor=\"id_observacion\">{{'observacion' | translate}} *</label>\n                </span>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end mb-3 align-items-center\">\n            <!-- SEGUIMIENTO -->\n            <div class=\"flex align-items-center gap-1 mr-3\" *ngIf=\"controlFuncionalidad.getControlFuncionalidad('comseg:seguimiento')\">\n                <p-checkbox [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n                <label class=\"ml-2\"> {{'seguimiento' | translate}}</label>\n            </div>\n            <!-- Botón aplicar-->\n            <button pButton label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicar()\"\n                icon=\"glyphicons glyphicons-check\"\n                class=\"p-ripple p-element p-button p-component p-button-raised\" [loading]=\"isLoadingData\"></button>\n        </div>\n    </div>\n    <app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\"\n        (regresar)=\"regresarPopUp()\"></app-popup-seguimiento>\n</p-dialog>","import { Component, EventEmitter, OnInit, ViewChild } from '@angular/core';\nimport { SolicitudPuntoModel } from '../../../models/SolicitudPuntoModel';\nimport { ActasModel } from '../../../models/ActasModel';\nimport { SeccionModel } from '../../../models/SeccionModel';\nimport { ActasComitePipe } from '../../../../../modules/actos/pipes/actas-comite.pipe';\nimport { AuthService, CampoFormularioModel, CargarControlFuncionalidadService, FormulariodinamicoComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { HojaVidaPipe } from '../../../../../shared/pipes/hojavida.pipe';\nimport { HojaIntelectoDTO } from '../../../models/HojaIntelectoModel';\nimport { ArchivoModel } from '../../../models/ArchivoModel';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { SolicitudPuntoService } from '../../../services/solicitud-punto.service';\nimport { Router } from '@angular/router';\nimport { HojaCaracteristicaModel } from '../../../models/HojaCaracteristicaModel';\nimport { CampoFormularioPipe } from '../../../../../shared/pipes/campoFormulario.pipe';\nimport { ConfirmationService, MenuItem } from 'primeng/api';\nimport { ActasComiteService } from '../../../../../modules/actos/services/actas-comite.service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FactorPuntajeModel } from '../../../../../modules/actos/models/FactorPuntajeModel';\nimport { MenubarModule } from 'primeng/menubar';\nimport { PopupsDinamicosPipe } from '../../../../../shared/pipes/popups-dinamicos.pipe';\nimport { CardModule } from 'primeng/card';\nimport { FormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { CoautorComponent } from '../../coautor/coautor.component';\nimport { InputHelperCargarArchivoHojaVidaComponent } from '../../../../../shared/componentes/input-helper-cargar-archivo-hoja-vida/input-helper-cargar-archivo-hoja-vida.component';\nimport { HojaVidaService } from '../../../services/hojavida.service';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ArchivoAnexoHojaVidaService } from '../../../services/archivo-anexo-hoja-vida.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { ParesAcademicosComponent } from '../pares-academicos/pares-academicos.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { PopupAsignacionFactorPuntajeDocenteComponent } from '../popups/popup-asignacion-factor-puntaje-docente/popup-asignacion-factor-puntaje-docente.component';\nimport { PopupMotivoSolicitudPuntoComponent } from '../popups/popup-motivo-solicitud-punto/popup-motivo-solicitud-punto.component';\nimport { PopupSolicitarActaComponent } from '../popups/popup-solicitar-acta/popup-solicitar-acta.component';\nimport { PopupAplicarSolicitudActaComponent } from '../../../../../modules/actos/popups/popup-aplicar-solicitud-acta/popup-aplicar-solicitud-acta.component';\n\n@Component({\n  selector: 'app-detalle-producto-puntaje-docente',\n  standalone: true,\n  imports: [\n\tFormulariodinamicoComponent,\n\tMenubarModule,\n\tCardModule,\n\tTranslateModule,\n\tFormsModule,\n\tInputTextModule,\n\tSolicitudPuntajeDocentePipe,\n\tInputTextareaModule,\n\tFloatLabelModule,\n\tCalendarModule,\n\tConfirmPopupModule,\n\tCoautorComponent,\n\tInputHelperCargarArchivoHojaVidaComponent,\n\tTableModule, TemplateTablaVaciaComponent,\n\tParesAcademicosComponent,\n\tCalendarModule,\n\tDropdownModule,\n\tFieldsetModule,\n\tPopupAsignacionFactorPuntajeDocenteComponent,\n\tPopupMotivoSolicitudPuntoComponent,\n\tPopupSolicitarActaComponent,\n\tPopupAplicarSolicitudActaComponent,\n],\n  templateUrl: './detalle-producto-puntaje-docente.component.html',\n  styleUrl: './detalle-producto-puntaje-docente.component.scss'\n})\nexport class DetalleProductoPuntajeDocenteComponent implements OnInit {\n\n\tpublic solicitudCaso: SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic solicitudProducto: SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic selectedPanel: string;\n\tpublic llaveactividad: string;\n\tpublic verSolicitarActaFacultad: boolean;\n\tpublic verSolicitarActaComite: boolean;\n\tpublic verActualizar: boolean;\n\tpublic verBotonCambioDatos: boolean;\n\tpublic verBotonCorreccion: boolean;\n\tpublic verBotonRevision: boolean;\n\tpublic hojaIntelecto: HojaIntelectoDTO;\n\tpublic actaComite: ActasModel = new ActasModel();\n  \tpublic actaFacultad: ActasModel = new ActasModel();\n\tpublic filtroSolicitud: SolicitudPuntoModel;\n\tpublic multiple: boolean;\n  \tpublic nuevoSolicitud: boolean = false;\n  \tpublic nuevoProducto: boolean;\n\tpublic archivo: string = '';\n\tpublic seccionDTO: SeccionModel;\n\tpublic archivoPdf: boolean;\n\tpublic listaEstadosActas: any[] = [];\n\tpublic listaEstados: any[] = [];\n\n  @ViewChild(FormulariodinamicoComponent) formulario: FormulariodinamicoComponent;\n  public listaCampos: CampoFormularioModel[] = [];\n  public menuLateral: MenuItem[] = [];\n\n  //anexos\n  public nuevoAnexo: boolean = false;\n  public listaAnexos: ArchivoModel[] = []\n  public nuevoAnexoAdicional: boolean = false;\n  public listaAnexosAdicional: ArchivoModel[] = [];\n  public objetoAnexo: any;\n\n  @ViewChild(ParesAcademicosComponent) paresAcademicos: ParesAcademicosComponent;\n  @ViewChild(PopupAsignacionFactorPuntajeDocenteComponent) asignacionFactor: PopupAsignacionFactorPuntajeDocenteComponent;\n  @ViewChild(PopupMotivoSolicitudPuntoComponent) motivoSolicitud:  PopupMotivoSolicitudPuntoComponent;\n  @ViewChild(PopupSolicitarActaComponent) solicitarActa:  PopupSolicitarActaComponent;\n  @ViewChild(PopupAplicarSolicitudActaComponent) aplicarSolicitud:  PopupAplicarSolicitudActaComponent;\n\n  public mostrarPopupAsignacionFactor: boolean = false;\n  public mostrarPopupMotivoSolicitud: boolean = false;\n  public mostrarPopupSolicitarActa: boolean = false;\n  public mostrarPopupAplicarSolicitud: boolean = false;\n\n  constructor(private actasComitePipe: ActasComitePipe,\n\t\t\t  private generalService: GeneralService,\n\t\t\t  public  utilsService: UtilsService,\n\t\t\t  private generalPipe: GeneralPipe,\n\t\t\t  private hojaVidaPipe: HojaVidaPipe,\n\t\t\t  public  controlFuncionService: CargarControlFuncionalidadService,\n\t\t\t  private solicitudPuntoPipe: SolicitudPuntajeDocentePipe,\n\t\t\t  private solicitudPuntoService: SolicitudPuntoService,\n\t\t\t  private router: Router,\n\t\t\t  private hojaVidaService: HojaVidaService,\n\t\t\t  private popupsDinamicosPipe: PopupsDinamicosPipe,\n\t\t\t  private authService: AuthService,\n\t\t\t  private actasComiteService: ActasComiteService,\n\t\t\t  private notificacionesService: ToastService,\n\t\t\t  private campoFormularioPipe: CampoFormularioPipe,\n\t\t\t  private confirmationService: ConfirmationService,\n\t\t\t  private translateService: TranslateService,\n\t\t\t  private archivoAnexoHojaVidaService: ArchivoAnexoHojaVidaService,\n\t\t\t  private cargarArchivo: CargarArchivosService,\n\t\t\t  private encriptadoBasico: EncriptadoBasicoService,\n  ){}\n\n  ngOnInit(): void {\n    this.cargarListados();\n  }\n\n  cargarListados() {\n\tthis.listaEstadosActas = this.actasComitePipe.MAPA_ESTADOS_ACTA;\n\tthis.listaEstados = this.solicitudPuntoPipe.ESTADOS_SOLICITUD;\n  }\n\n  public async traerProductoUnico(solicitudProducto: SolicitudPuntoModel, llaveActividad: string) {\n\tthis.multiple = false;\n\tawait this.traerProducto(solicitudProducto, solicitudProducto, llaveActividad);\n\t\n\t}\n\tpublic async traerProductoMultiple(solicitudCaso: SolicitudPuntoModel, solicitudProducto: SolicitudPuntoModel, llaveActividad: string) {\n\t\tthis.multiple = true;\n\t\tawait this.traerProducto(solicitudCaso, solicitudProducto, llaveActividad);\n\t}\n\n\tprivate async traerProducto(solicitudCaso: SolicitudPuntoModel, solicitudProducto: SolicitudPuntoModel, llaveActividad: string) {\n\t\tthis.llaveactividad = llaveActividad;\n\t\tthis.solicitudCaso = solicitudCaso;\n\t\tthis.solicitudProducto = solicitudProducto;\n\t\tthis.solicitudProducto = this.solicitudPuntoService.formatearFechasSolicitudPunto(this.solicitudProducto);\n\t\tthis.solicitudCaso = this.solicitudPuntoService.formatearFechasSolicitudPunto(solicitudCaso);\n\t\tthis.nuevoProducto = solicitudCaso.llaveTabla == null;\n\t\tthis.seccionDTO = new SeccionModel();\n\t\tawait this.cargarMenu();\n\t\tvar hojaIntelectoResultado = await this.traerHojaIntelecto();\n\t\tthis.selectedPanel = ('detalle');\n\t\tconsole.log('traerproducto')\n\t\tawait this.cargarFormularioProducto(hojaIntelectoResultado);\n\t\tthis.archivoPdf = false;\n\t\tsolicitudProducto.descripcionSeccion = null;\n\n\t\tif ( hojaIntelectoResultado != null ) {\n\t\t\tthis.cargarCoautor(solicitudProducto.hojaIntelecto);\n\t\t\t//await this.cargarAnexos(solicitudProducto.hojaIntelecto);\n\t\t\t//this.cargarParesAcademicos(solicitudProducto);\n\t\t\tthis.cargarAnexosAdicionales(solicitudProducto.llaveTabla);\n\t\t\t\n\t\t}\n\t\tawait this.verBotonesDeActas();\n\t\tthis.verificaCambiarDatos();\n\t\tthis.archivoPdf = false;\n\t\tthis.seccionDTO = new SeccionModel();\n\t\tconsole.log('traer producto')\n\t\tif ( hojaIntelectoResultado.seccion != null) {\n\t\t\tthis.seccionDTO.llave = hojaIntelectoResultado.seccion;\n\t\t\tthis.seccionDTO = await this.generalService.queryForObject(new GeneralModel('SeccionDTO', null, false, this.seccionDTO)).toPromise();\n\t\t\tif ( this.seccionDTO == null) {\n\t\t\t\tthis.seccionDTO = new SeccionModel();\n\t\t\t}\n\t\t\tif (this.seccionDTO.puntajeArchivo != null && this.seccionDTO.puntajeArchivo != this.generalPipe.ESPACIO_NULO) {\n\t\t\t\tthis.archivoPdf = true;\n\t\t\t}\n\t\t}\n\n\t}\n\n\n\tpublic async nuevoProductoMultiple(solicitudCaso: SolicitudPuntoModel, productoHojaIntelecto: HojaIntelectoDTO, nuevoCaso: boolean) {\n\t\tthis.multiple=true;\n\t\tthis.nuevoSolicitud=nuevoCaso;\n\t\tvar solicitudProducto = new SolicitudPuntoModel();\n\t\tsolicitudProducto.estado = '9';\n\t\tawait this.nuevoProductoBase(solicitudCaso, solicitudProducto, productoHojaIntelecto);\n\t\t\n\t}\n\n\tpublic async nuevoProductoUnico(solicitudProducto: SolicitudPuntoModel, productoHojaIntelecto: HojaIntelectoDTO) {\n\t\tthis.multiple=false;\n\t\tthis.nuevoSolicitud=true;\n\t\tawait this.nuevoProductoBase(solicitudProducto, solicitudProducto, productoHojaIntelecto);\n\t//\t\tSolicitudPuntoDTO solicitudProducto = new SolicitudPuntoModel();\n\t//\t\tsolicitudProducto.setEstado('9');\n\t\t\n\t}\n\n\tprivate async nuevoProductoBase(solicitudCaso: SolicitudPuntoModel, solicitudProducto: SolicitudPuntoModel, productoHojaIntelecto: HojaIntelectoDTO) {\n\t\tthis.nuevoProducto=true;\n\t\tthis.verActualizar = false;\n\t\tthis.solicitudProducto = solicitudProducto;\n\t\tthis.solicitudProducto = this.solicitudPuntoService.formatearFechasSolicitudPunto(this.solicitudProducto);\n\t\tvar llaveHojaIntelecto = null;\n\t\tif ( productoHojaIntelecto != null ) {\n\t\t\tllaveHojaIntelecto = productoHojaIntelecto.llave;\n\t\t}\n\t\tthis.solicitudProducto.hojaIntelecto = llaveHojaIntelecto;\n\t\tthis.llaveactividad = null;\n\t\tthis.solicitudCaso = solicitudCaso;\n\n\t\tvar hojaIntelectoDTO: HojaIntelectoDTO = productoHojaIntelecto;\n\n\t\tif (llaveHojaIntelecto != null  ) {\n\t\t\thojaIntelectoDTO.llave = llaveHojaIntelecto;\n\t\t\thojaIntelectoDTO = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, hojaIntelectoDTO)).toPromise();\n\t\t}\n\t\t\n\n\t\tawait this.cargarMenu();\n\t\tthis.seccionDTO = new SeccionModel();\n\t\tthis.seccionDTO.llave = hojaIntelectoDTO.seccion;\n\t\tthis.seccionDTO = await this.generalService.queryForObject(new GeneralModel('SeccionDTO', null, false, this.seccionDTO)).toPromise();\n\t\tthis.selectedPanel = ('detalle');\n\t\tconsole.log('traerproductounico')\n\n\t\tawait this.cargarFormularioProducto(hojaIntelectoDTO);\n\n\t\tthis.cargarCoautor(solicitudProducto.hojaIntelecto);\n\t\t//await this.cargarAnexos(solicitudProducto.hojaIntelecto);\n\t\t//this.cargarParesAcademicos(solicitudProducto);\n\t\tthis.cargarAnexosAdicionales(solicitudProducto.llaveTabla);\n\t\tthis.verificaCambiarDatos();\n\t}\n\n\n\tpublic async cargarMenu()  {\n\t\tvar buscarFactores = new FactorPuntajeModel();\n\t\tif (this.solicitudProducto != null && !this.utilsService.isBlank(this.solicitudProducto.factorPuntaje) && this.solicitudProducto.hojaIntelecto != null ) {\n\t\t\tvar seccion = await this.cargarSeccion(this.solicitudProducto.hojaIntelecto);\n\t\t\tbuscarFactores.llaveTabla = this.solicitudProducto.factorPuntaje;\n\t\t\tbuscarFactores.seccion = seccion.llave;\n\t\t\tbuscarFactores = await this.generalService.queryForObject(new GeneralModel('FactorPuntajeDTO', 'FactorPuntaje.consultarFactorPuntajeVista', false, buscarFactores)).toPromise();\n\t\t}\n\t\tthis.menuLateral = [\n\t\t\t{ \n\t\t\t\tlabel: this.translateService.instant('producto'), \n\t\t\t\ticon: 'glyphicons glyphicons-book-open', \n\t\t\t\tcommand: async (event) => { await this.seleccionarOpcionMenu('detalle') } \n\t\t\t},\n\t\t\t{ \n\t\t\t\tlabel: this.translateService.instant('couautores'), \n\t\t\t\ticon: 'glyphicons glyphicons-parents', \n\t\t\t\tcommand: async (event) => { await this.seleccionarOpcionMenu('coautor') }, \n\t\t\t\tvisible: await this.mostrarCoautores(this.solicitudProducto.hojaIntelecto) && this.utilsService.isNotBlank(this.solicitudProducto.llaveTabla)\n\t\t\t},\n\t\t\t{ \n\t\t\t\tlabel: this.translateService.instant('anexos'), \n\t\t\t\ticon: 'glyphicons glyphicons-tags', \n\t\t\t\tcommand: async (event) => { await this.seleccionarOpcionMenu('anexo') }, \n\t\t\t\tvisible: await this.mostrarAnexos(this.solicitudProducto.hojaIntelecto) && this.utilsService.isNotBlank(this.solicitudProducto.llaveTabla)\n\t\t\t},\n\t\t\t{ \n\t\t\t\tlabel: this.translateService.instant('anexosadicionales'), \n\t\t\t\ticon: 'glyphicons glyphicons-tags', \n\t\t\t\tcommand: async (event) => { await this.seleccionarOpcionMenu('anexoAdicional') }, \n\t\t\t\tvisible: !this.isCliente() && this.utilsService.isNotBlank(this.solicitudProducto.llaveTabla)\n\t\t\t},\n\t\t\t{ \n\t\t\t\tlabel: this.translateService.instant('paresacademicos'), \n\t\t\t\ticon: 'glyphicons glyphicons-group', \n\t\t\t\tcommand: async (event) => { await this.seleccionarOpcionMenu('par_academico') }, \n\t\t\t\tvisible: buscarFactores != null && buscarFactores?.pares == this.generalPipe.SI && this.verificarControl('pundoc:pares') && this.utilsService.isNotBlank(this.solicitudProducto.llaveTabla)\n\t\t\t},\n\t\t\t{ \n\t\t\t\tlabel: this.translateService.instant('comite'), \n\t\t\t\ticon: 'glyphicons glyphicons-group', \n\t\t\t\tcommand: async (event) => { await this.seleccionarOpcionMenu('comite') }, \n\t\t\t\tvisible: this.isProductoEvaluado() && this.utilsService.isNotBlank(this.solicitudProducto.llaveTabla)\n\t\t\t},\n\t\t];\n\t}\n\n\tpublic verificarControl(control: string) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control) != null;\n\t}\n\n\tpublic async seleccionarOpcionMenu(panelOpcion) {\n\t\tthis.selectedPanel = (panelOpcion);\n\t\tif ('detalle' == (panelOpcion)) {\n\t\t\tawait this.cargarFormularioProducto( await this.traerHojaIntelecto());\n\t\t}\n\t\tif ('comite' == (panelOpcion)) {\n\t\t\tawait this.cargarDatosActas(this.solicitudProducto.llaveActa, this.solicitudProducto.llaveActaFacultad);\n\t\t}\n\t\tif ('par_academico' == (panelOpcion)) {\n\t\t\tawait this.cargarParesAcademicos(this.solicitudProducto);\n\t\t}\n\t\tif ('anexoAdicional' == (panelOpcion)) {\n\t\t\tthis.cargarAnexosAdicionales(this.solicitudProducto.llaveTabla);\n\t\t}\n\t\tif ('anexo' == (panelOpcion)) {\n\t\t\tawait this.cargarAnexos(this.solicitudProducto.hojaIntelecto);\n\t\t}\n\t}\n\n\tprivate async cargarDatosActas(llaveActaComite: string, llaveActaFacultad: string) {\n\t\tthis.actaComite = new ActasModel();\n\t\tif (this.utilsService.isNotBlank(llaveActaComite)) {\n\t\t\tthis.actaComite.llaveTabla = llaveActaComite;\n\t\t\tthis.actaComite = await this.generalService.queryForObject(new GeneralModel('ActasDTO', null, false, this.actaComite)).toPromise();\n\t\t\tthis.actaComite = this.actasComiteService.formatearFechasActas(this.actaComite);\n\t\t\tif (this.actaComite != null && this.actaComite.acta == this.generalPipe.PUNTO) {\n\t\t\t\tthis.actaComite = null;\n\t\t\t}\n\t\t}\n\t\tthis.actaFacultad = new ActasModel();\n\t\tif (this.utilsService.isNotBlank(llaveActaFacultad)) {\n\t\t\tthis.actaFacultad.llaveTabla = llaveActaFacultad;\n\t\t\tthis.actaFacultad = await this.generalService.queryForObject(new GeneralModel('ActasDTO', null, false, this.actaFacultad)).toPromise();\n\t\t\tthis.actaFacultad = this.actasComiteService.formatearFechasActas(this.actaFacultad);\n\t\t\tif (this.actaFacultad != null && this.actaFacultad.acta == this.generalPipe.PUNTO) {\n\t\t\t\tthis.actaFacultad = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic regresar() {\n\t\tconst url = this.router.url;\n\t\t//String url = getUrl();\n\t\tif (!this.multiple && (url.endsWith('solicitudPuntajeDocente.xhtml') || url.endsWith('uiSolicitudPuntajeDocente.xhtml')) ) {\n\t\t\t//getBean(SolicitudPuntajeDocenteBean.class).setVistaVisualizar(null);\n\t\t\treturn null;\n\t\t}\n\n\t\tvar solicitudResultante: SolicitudPuntoModel = this.solicitudCaso;\n\t\tif ( this.solicitudCaso.llaveTabla != null) {\n\t\t\tthis.solicitudPuntoService.consultarSolicitudPuntajeDocente({solicitud: this.solicitudCaso}).subscribe(data => {\n\t\t\t\tsolicitudResultante = data[0];\n\t\t\t});\n\t\t}\n\t\t/*getBean(DetalleSolicitudPuntajeDocenteBean.class).inicializar(solicitudResultante, this.llaveactividad);\n\t\tif (this.llaveactividad != null) {\n\t\t\tgetBean(DetalleSolicitudPuntajeDocenteBean.class).verAutorizacion(this.llaveactividad);\n\t\t}*/\n\t\t\n\t\treturn null;\n\t}\n\n\tpublic async cargarCaracteristicas() {\n\t\tif ( this.solicitudProducto.hojaIntelecto == null ) {\n\t\t\treturn;\n\t\t}\n\t\tvar hojacarcteristicas: HojaCaracteristicaModel = new HojaCaracteristicaModel();\n\t\thojacarcteristicas.identifica = this.solicitudProducto.identificacion;\n\t\thojacarcteristicas.llaveTabla = this.solicitudProducto.hojaIntelecto;\n\t\tvar caracteristicas: HojaCaracteristicaModel[] = [];\n\t\n\t\tcaracteristicas = await this.generalService.queryForList(new GeneralModel('HojaCaracteristicaDTO', null, false, hojacarcteristicas)).toPromise();\n\n\t\tfor (var cara of caracteristicas) {\n\t\t\tif (cara.tipo == null) {\n\t\t\t\tthis.formulario.cargarValor(cara.caracteristica, null, cara);\n\t\t\t} else if (cara.tipo == (this.campoFormularioPipe.NUMERO)  || cara.tipo == (this.campoFormularioPipe.DECIMAL) ) {\n\t\t\t\tthis.formulario.cargarValor(cara.caracteristica, cara.numero, cara);\n\t\t\t} else if (cara.tipo == (this.campoFormularioPipe.FECHA) ) {\n\t\t\t\tthis.formulario.cargarValor(cara.caracteristica, cara.fecha, cara);\n\t\t\t} else if (cara.tipo == (this.campoFormularioPipe.TEXTOAREA) ) {\n\t\t\t\tthis.formulario.cargarValor(cara.caracteristica, cara.area, cara);\n\t\t\t} else {\n\t\t\t\tcara.numero = null;\n\t\t\t\tthis.formulario.cargarValor(cara.caracteristica, cara.cadena, cara);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync setValorCampos(){\n\t\tawait this.utilsService.sleep(500)\n\t\tthis.listaCampos.forEach(async element => {\n\t\tif (typeof element.valor === \"string\") {\n\t\t\telement.valor = element.valor.trim()\n\t\t}\n\t\tif (element.tipo === 'F') {\n\t\t\telement.valor = element.valor ? new Date(element.valor) : null;\n\t\t} else if (element.tipo === 'H') {\n\t\t\tif (element.valor) {\n\t\t\tlet listaValortemp = [];\n\t\t\tlet valorRecorrer = element.valor.split(';')\n\t\t\tvalorRecorrer.forEach(element2 => {\n\t\t\t\tlistaValortemp.push({ label: element2, value: element2 })\n\t\t\t})\n\t\t\telement.valor = listaValortemp\n\t\t\t}\n\t\t} else if (element.tipo === 'P') {\n\t\t\tthis.popupsDinamicosPipe.LISTA_POPUPS.forEach(pop => {\n\t\t\tif (element.popup == pop.id) {\n\t\t\t\tvar ev = new EventEmitter();\n\t\t\t\telement.popupComponent = pop.popup;\n\t\t\t\telement['cargarValorPopup'] = (event) => { element.valor = event };          \n\t\t\t\telement.propiedadesPopupComponent = {\n\t\t\t\treadonly: element.editable == 'L',\n\t\t\t\tshowDialog: false,\n\t\t\t\tlabel: element.valor,\n\t\t\t\tcampoReferencia: element.campoTabla,\n\t\t\t\tmostrarX: !element.obligatorio,\n\t\t\t\tonChange: (event) => element.cargarValorPopup(event)\n\t\t\t\t}\n\t\t\t\telement.listaPopups = [];\n\t\t\t\telement.listaPopups.push(element.popup)\n\t\t\t}\n\t\t\t});\n\n\t\t}\n\t\t});\n\t\tawait this.utilsService.sleep(500)\n\n\t\tthis.formulario?.ngAfterViewInit();\n\t\tthis.utilsService.resizeWindowIFrame();\n\n\t\n\t\t  //this.formulario.campos = this.campos;\n\t  }\n\n\tprivate async cargarFormularioProducto(producto: HojaIntelectoDTO)  {\n\t\tthis.hojaIntelecto = producto;\n\t\tif ( producto == null ) {\n\t\t\treturn;\n\t\t}\n\t\tawait this.cargarFormulario(producto, this.solicitudCaso.llaveTabla);\n\t\tawait this.setValorCampos();\n\t\tthis.formulario.modificar(this.hojaIntelecto, producto.llave == null);\n\t\tawait this.cargarCaracteristicas();\n\t\tawait this.setValorCampos();\n\n\t}\n\n\tpublic async cargaFormularioProductoLlave(solicitud: SolicitudPuntoModel)  {\n\t\tif ( solicitud.hojaIntelecto == null) {\n\t\t\tthis.limpiarFormulario();\n\t\t\treturn;\n\t\t}\n\t\tvar hojaIntelectoDTO = new HojaIntelectoDTO();\n\t\thojaIntelectoDTO.llave = solicitud.hojaIntelecto;\n\t\thojaIntelectoDTO = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, hojaIntelectoDTO)).toPromise();\n\t\tif ( hojaIntelectoDTO == null ) {\n\t\t\tthis.limpiarFormulario();\n\t\t\treturn;\n\t\t}\n\t\tthis.solicitudProducto = solicitud;\n\t\tthis.solicitudProducto = this.solicitudPuntoService.formatearFechasSolicitudPunto(this.solicitudProducto);\n\t\tawait this.cargarFormulario(hojaIntelectoDTO, solicitud.llaveActa);\n\t\tthis.formulario?.modificar(hojaIntelectoDTO, false);\n\t\tawait this.cargarCaracteristicas();\n\t}\n\n\tpublic async asignarFactorProducto() {\n\t\tvar seccion = await this.cargarSeccion(this.solicitudProducto.hojaIntelecto);\n\t\tif ( seccion == null) {\n\t\t\tseccion = new SeccionModel();\n\t\t\tseccion.llave = '.';\n\t\t}\n\t\tif (seccion != null && this.utilsService.isNotBlank(seccion.llave)) {\n\t\t\tif (this.solicitudProducto.asunto != null) {\n\t\t\t\tthis.solicitudProducto.asunto = this.solicitudProducto.asunto.trim();\n\t\t\t}\n\t\t\tthis.mostrarPopupAsignacionFactor = true;\n\t\t\tawait this.utilsService.sleep(400);\n\t\t\tthis.asignacionFactor.inicializar(Object.assign({}, this.solicitudProducto), seccion.llave);\n\t\t}\n\t}\n\n\tpublic async accionCorreccion() {\n\t\tthis.mostrarPopupMotivoSolicitud = true;\n\t\tawait this.utilsService.sleep(400);\n\t\tthis.motivoSolicitud.init(this.solicitudCaso);\n\t}\n\n\tpublic setMotivo(dto: SolicitudPuntoModel)  {\n\t\tthis.solicitudCaso = dto;\n\t\tthis.enviarMail(null);\n\t\tthis.notificacionesService.showInfo('Cambio de estado de la solicitud');\n\t}\n\n\n\tpublic accionRevision() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: '¿Cambiar estado a Revisión?',\n\t\t\theader: 'Confirmar',\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\taccept: async () => {\n\t\t\t\tthis.setConfirmaRevision()\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic setConfirmaRevision() {\n\t\tthis.solicitudCaso.estado = this.solicitudPuntoPipe.ENREVISION;\n\t\tthis.generalService.update(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitudCaso)).subscribe(data => {\n\t\t\tthis.verBotonRevision = false;\n\t\t});\n\t}\n\n\n\tpublic enviarMail(estadoProcesoPares: string)  {\n\t\tthis.actasComiteService.enviarCorreo({\n\t\t\tunaSolicitud: this.solicitudProducto, estadoProcesoPares: estadoProcesoPares, usuario: this.authService.getTokenKey('usuario'), llaveRol: this.authService.getTokenKey('llaveRol'), llaveEmpresa: this.authService.getTokenKey('llaveEmpresa')\n\t\t}).subscribe(data => {\n\n\t\t});\n\t}\n\n\n\tpublic enviarMailInvitacion(estadoProcesoPares: string, instructorEntidad: number, lista: ArchivoModel[])  {\n\t\tthis.actasComiteService.enviarMailInvitacion({\n\t\t\tsolicitudCaso: this.solicitudCaso, estadoProcesoPares: estadoProcesoPares, instructorEntidad: instructorEntidad, lista: lista, usuario: this.authService.getTokenKey('usuario'), llaveRol: this.authService.getTokenKey('llaveRol'), llaveEmpresa: this.authService.getTokenKey('llaveEmpresa')\n\t\t}).subscribe(data => {\n\t\t\t\n\t\t});\n\t}\n\n\tpublic async verBotonesDeActas() {\n\t\tthis.verSolicitarActaFacultad = false;\n\t\tthis.verSolicitarActaComite = false;\n\t\tif (this.solicitudProducto.estado == (this.solicitudPuntoPipe.POREVALUAR) ) {\n\t\t\tvar cantidadActasVinculacion: number;\n\t\t\tcantidadActasVinculacion =await  this.actasComiteService.cantidadActasPorVinculacion(this.solicitudPuntoPipe.TIPOACTAFACULTAD, this.solicitudProducto.vinculacion);\n\t\t\tif (cantidadActasVinculacion > 0) {\n\t\t\t\tthis.verSolicitarActaFacultad = true;\n\t\t\t} else {\n\t\t\t\tcantidadActasVinculacion =await  this.actasComiteService.cantidadActasPorVinculacion(this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD, this.solicitudProducto.vinculacion);\n\t\t\t\tif (cantidadActasVinculacion > 0) {\n\t\t\t\t\tthis.verSolicitarActaComite = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.solicitudProducto.estado == (this.solicitudPuntoPipe.POREVALUARUNIVERSIDAD)) {\n\t\t\tvar cantidadActasVinculacion =await  this.actasComiteService.cantidadActasPorVinculacion(this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD, this.solicitudProducto.vinculacion);\n\t\t\tif (cantidadActasVinculacion > 0) {\n\t\t\t\tthis.verSolicitarActaComite = true;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\tpublic async cambiarDatos() {\n\t\tif (this.hojaIntelecto != null ) {\n\t\t\tthis.formulario.modificar(this.hojaIntelecto, true);\n\t\t\tawait this.cargarCaracteristicas();\n\t\t}\n\t\tthis.verBotonCambioDatos = false;\n\t\tthis.verActualizar = true;\n\t\treturn null;\n\t}\n\n\tpublic cancelar()  {\n\t\tif (!this.multiple  && this.nuevoProducto) {\n\t\t\tthis.regresar();\n\t\t\treturn null;\n\t\t}\n\t\tthis.regresar();\n\t\treturn null;\n\t}\n\n\tpublic async actualizarProducto() {\n\t\tif ( this.hojaIntelecto != null) {\n\t\t\tif (!this.formulario.validar()) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tif ( this.solicitudPuntoPipe.RECLAMACION == (this.solicitudProducto.tipo) ) {\n\t\t\tvar validador = this.utilsService.validarCampoObligatorio(this.solicitudProducto.basereclamacion);\n\t\t\tif ( !validador) {\n\t\t\t\tthis.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t\t\n\t\tvar intelecto: HojaIntelectoDTO = null;\n\t\tif ( this.hojaIntelecto != null) {\n\t\t\tintelecto = this.formulario.getObjecto();\n\t\t}\n\t\t\n\t\tlet data = await this.solicitudPuntoService.actualizarProducto({\n\t\t\tnuevoProducto: this.nuevoProducto, nuevoSolicitud: this.nuevoSolicitud, multiple: this.multiple, intelecto : intelecto, \n\t\t\tsolicitudCaso: this.solicitudCaso, solicitudProducto: this.solicitudProducto, listaCampos: this.formulario.campos, listaCaracteristicas: this.formulario.getCamposCaracteristica()\n\t\t}).toPromise();\n\t\tthis.nuevoProducto = data.nuevoProducto;\n\t\tthis.hojaIntelecto = data.intelecto;\n\t\tthis.solicitudCaso = data.solicitudCaso;\n\t\tthis.solicitudProducto = data.solicitudProducto;\n\t\tthis.solicitudProducto = this.solicitudPuntoService.formatearFechasSolicitudPunto(this.solicitudProducto);\n\t\tthis.formulario.modificar(this.hojaIntelecto, true);\n\n\t\tawait this.cargarMenu();\n\t\tif ( this.hojaIntelecto != null) {\n\t\t\tthis.formulario.modificar(intelecto, false);\n\t\t\tthis.cargarCoautor(this.solicitudProducto.hojaIntelecto);\n\t\t\t//await this.cargarAnexos(this.solicitudProducto.hojaIntelecto);\n\t\t\t//this.cargarParesAcademicos(this.solicitudProducto);\n\t\t}\n\t\t//this.cargarAnexosAdicionales(this.solicitudProducto.llaveTabla);\n\t\tawait this.cargarCaracteristicas();\n\t\tthis.verificaCambiarDatos();\n\t\tthis.verActualizar = false;\n\n\t\tif ( this.seccionDTO != null && this.seccionDTO.mensajeFinal != null ) {\n\t\t\tthis.notificacionesService.showWarningPopup(this.seccionDTO.mensajeFinal);\n\t\t}\n\t\telse {\n\t\t\tthis.notificacionesService.showWarningPopup('Se ha actualizado la solicitud.');\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate async traerHojaIntelecto()  {\n\t\tvar hojaIntelectoDTO: HojaIntelectoDTO =null;\n\t\tif (this.solicitudProducto.hojaIntelecto != null) {\n\t\t\tif ( this.solicitudPuntoPipe.PRODUCTOEVALUADO != this.solicitudProducto.estado ) {\n\t\t\t\tthis.solicitudProducto.hojaIntelectoTmp = null;\n\t\t\t}\n\t\t\tif ( this.solicitudProducto.hojaIntelectoTmp != null) {\n\t\t\t\thojaIntelectoDTO = new HojaIntelectoDTO();\n\t\t\t\thojaIntelectoDTO.llave = this.solicitudProducto.hojaIntelectoTmp;\n\t\t\t\thojaIntelectoDTO.registroHistorico = this.generalPipe.SI_DESC;\n\t\t\t\thojaIntelectoDTO = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, hojaIntelectoDTO)).toPromise();\n\t\t\t}\n\t\t\tif (hojaIntelectoDTO == null) {\n\t\t\t\thojaIntelectoDTO = new HojaIntelectoDTO();\n\t\t\t\thojaIntelectoDTO.llave = this.solicitudProducto.hojaIntelecto;\n\t\t\t\thojaIntelectoDTO = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, hojaIntelectoDTO)).toPromise();\n\t\t\t}\n\t\t\tif (hojaIntelectoDTO != null) {\n\t\t\t\tthis.seccionDTO.llave = hojaIntelectoDTO.seccion;\n\t\t\t\tthis.seccionDTO = await this.generalService.queryForObject(new GeneralModel('SeccionDTO', null, false, this.seccionDTO)).toPromise();\n\t\t\t\tif (this.seccionDTO == null) {\n\t\t\t\t\tthis.seccionDTO = new SeccionModel();\n\t\t\t\t}\n\t\t\t\tif (this.seccionDTO.puntajeArchivo != null && this.seccionDTO.puntajeArchivo != this.generalPipe.ESPACIO_NULO) {\n\t\t\t\t\tthis.archivoPdf = true;\n\t\t\t\t}\n\t\t\t\tthis.solicitudProducto.descripcionSeccion = this.seccionDTO.descripcion;\n\t\t\t}\n\t\t}\n\t\treturn hojaIntelectoDTO;\n\t\t\n\t}\n\t\n\tpublic eliminarSolicitudProducto() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\theader: 'Confirmar',\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\taccept: async () => {\n\t\t\t\tthis.setConfirmaEliminacion();\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic setConfirmaEliminacion() {\n\t\tthis.generalService.delete(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitudProducto)).subscribe(data => {\n\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\tthis.regresar();\n\t\t})\n\t}\n\n\tpublic imprimir() {\n\t\tthis.solicitudPuntoService.imprimirDetalleProducto({llaveSeccion: this.seccionDTO.llave, llaveSolicitud: this.solicitudProducto.llaveTabla }).subscribe(async data => {\n\t\t\tconsole.log(data)\n\t\t\tconst decodedData = atob(data.archivo);\n\t\t\t\tconst byteNumbers = new Array(decodedData.length);\n\t\t\t\tfor (let i = 0; i < decodedData.length; i++) {\n\t\t\t\t\tbyteNumbers[i] = decodedData.charCodeAt(i);\n\t\t\t\t}\n\t\t\t\tconst byteArray = new Uint8Array(byteNumbers);\n\t\t\t\tconst blob = new Blob([byteArray], { type: data.mime });\n\t\t\t\tconst url = URL.createObjectURL(blob);\n\t\t\t\tconst link = document.createElement('a');\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.download = 'Reporte';\n\t\t\t\tdocument.body.appendChild(link);\n\t\t\t\tlink.click();\n\t\t\t\tURL.revokeObjectURL(url);\n\t\t\tthis.notificacionesService.showSuccess('Reporte generado correctamente');\n\t\t  });\n\t}\n\n\tpublic async solicitarActaFacultad() {\n\t\tthis.mostrarPopupSolicitarActa = true;\n\t\tawait this.utilsService.sleep(400);\n\t\tthis.solicitarActa.inicializar(Object.assign({}, this.solicitudProducto), this.solicitudPuntoPipe.TIPOACTAFACULTAD);\n\t}\n\n\tpublic async solicitarActaComite() {\n\t\tthis.mostrarPopupSolicitarActa = true;\n\t\tawait this.utilsService.sleep(400);\n\t\tthis.solicitarActa.inicializar(Object.assign({}, this.solicitudProducto), this.solicitudPuntoPipe.TIPOACTAUNIVERSIDAD);\n\t}\n\n\tpublic async setRegresoAsignaActa(producto: SolicitudPuntoModel) {\n\t\tthis.solicitudProducto = producto;\n\t\tthis.solicitudProducto = this.solicitudPuntoService.formatearFechasSolicitudPunto(this.solicitudProducto);\n\t\tif ( !this.multiple ) {\n\t\t\tthis.solicitudCaso = producto;\n\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).setSolicitud(producto);\n\t\t\tif ( this.solicitudPuntoPipe.PRECOMITE == (this.solicitudProducto.estado) ) {\n\t\t\t\tvar actaDTO = new ActasModel();\n\t\t\t\tactaDTO.llaveTabla = this.solicitudProducto.llaveActa;\n\t\t\t\tthis.mostrarPopupAplicarSolicitud = true;\n\t\t\t\tawait this.utilsService.sleep(400);\n\t\t\t\tawait this.aplicarSolicitud.inicializar(this.solicitudProducto,actaDTO); \n\t\t\t}\n\t\t\tif ( this.solicitudPuntoPipe.CONTACTOSDEPARES == (this.solicitudProducto.estado) ) {\n\t\t\t\tthis.enviarMail(null);\n\t\t\t}\n\t\t}\n\t\tawait this.verBotonesDeActas();\n\t\tthis.verificaCambiarDatos();\n\t}\n\n\tpublic setSolicitudRegreso(producto: SolicitudPuntoModel) {\n\t\tthis.solicitudProducto = producto;\n\t\tthis.solicitudProducto = this.solicitudPuntoService.formatearFechasSolicitudPunto(this.solicitudProducto);\n\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).setSolicitud(producto);\n\t}\n\n\n\tpublic isVerAsignarFactor() {\n\t\treturn this.solicitudProducto != null\n\t\t\t\t&& (this.solicitudProducto.estado == (this.solicitudPuntoPipe.AUTORIZADO) || this.solicitudProducto.estado == (this.solicitudPuntoPipe.ENREVISION) || this.solicitudProducto.estado == (this.solicitudPuntoPipe.POREVALUAR));\n\t}\n\n\tpublic verificaCambiarDatos() {\n\t\tthis.verBotonCambioDatos=false;\n\t\tthis.verBotonCorreccion=false;\n\t\tthis.verActualizar=false;\n\t\t\n\t\tif ( this.solicitudCaso == null || this.nuevoProducto ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.multiple ) {\n\t\t\tthis.verBotonCambioDatos = this.solicitudPuntoPipe.ENELABORACION == (this.solicitudCaso.estado) || ( this.isVerAsignarFactor() && !this.isCliente());\n\t\t}\n\t\telse {\n\t\t\tthis.verBotonCambioDatos = this.solicitudPuntoPipe.ENREVISIONCORRECCION == (this.solicitudCaso.estado) || this.solicitudPuntoPipe.ENREVISION == (this.solicitudCaso.estado) || ( this.isVerAsignarFactor() && !this.isCliente());\n\t\t\tthis.verBotonCorreccion = ( this.solicitudPuntoPipe.ENREVISION == (this.solicitudCaso.estado) || this.solicitudPuntoPipe.CONTACTOSDEPARES == (this.solicitudCaso.estado) )  && !this.isCliente();\n\t\t\tthis.verBotonRevision = ( this.solicitudPuntoPipe.CONTACTOSDEPARES == (this.solicitudCaso.estado) )  && !this.isCliente();\n\t\t}\n\t}\n\n\tpublic isVerEliminar() {\n\t\treturn this.solicitudCaso != null && (this.solicitudPuntoPipe.ENELABORACION == (this.solicitudCaso.estado) || this.solicitudPuntoPipe.ENREVISION == (this.solicitudCaso.estado) || this.solicitudPuntoPipe.ENREVISIONCORRECCION == (this.solicitudCaso.estado) )  && this.verBotonCambioDatos;\n\t}\n\t\n\n\tpublic isProductoEvaluado() {\n\t\treturn this.solicitudProducto != null && this.solicitudProducto.estado == (this.solicitudPuntoPipe.PRODUCTOEVALUADO);\n\t}\n\n\t//SolicitudPuntajeDocenteLogicaBean\n\n  \tpublic limpiarFormulario()  {\n\t\tthis.formulario?.limpiar();\n\t}\n\tpublic async cargarFormulario(productoHojaIntelecto: HojaIntelectoDTO, llaveSolicitud: string)  {\n\t\tawait this.construir(productoHojaIntelecto.seccion, llaveSolicitud, productoHojaIntelecto.identifica);\n\t}\n\t\n\tprivate async construir(llaveSeccion: string, llaveSolicitud: string, identifica: number) {\n\t\tthis.formulario?.limpiar();\n\t\tif ( llaveSeccion == null) {\n\t\t\treturn;\n\t\t}\n\t\tthis.listaCampos = await this.solicitudPuntoService.cargarFormularioProducto({llaveSeccion: llaveSeccion, llaveSolicitud: llaveSolicitud, identifica: identifica}).toPromise();\n\t}\n\t\n\tpublic async cargarParesAcademicos(solicitud: SolicitudPuntoModel) {\n\t\tawait this.utilsService.sleep(400);\n\t\tawait this.paresAcademicos.traer(solicitud, await this.cargarSeccion(solicitud.hojaIntelecto));\n\t}\n\t\n\tpublic cargarCoautor(llaveHojaIntelecto: string) {\n\t}\n\t\n\tpublic async cargarAnexos(llaveHojaIntelecto: string) {\n\t\tthis.seccionDTO = await this.cargarSeccion(llaveHojaIntelecto);\n\t\tif (!this.seccionDTO) {\n\t\t\treturn;\n\t\t}\n\t\tthis.cargarListaAnexos();\n\t}\n\t\n\tpublic cargarAnexosAdicionales(llaveSolicitud: string) {\n\t\tthis.listaAnexosAdicional = [];\n\t\tlet filtro: ArchivoModel = new ArchivoModel();\n\t\tfiltro.llaveTablaArchivo = llaveSolicitud;\n\t\tfiltro.nombreTabla = this.hojaVidaPipe.SOLICITUDPUNTO;\n\t\tthis.archivoAnexoHojaVidaService.consultarAnexos(filtro).subscribe(data => {\n\t\t\tthis.listaAnexosAdicional = data;\n\t\t});\n\t}\n\t\n\tpublic async cargarSeccion(llaveHojaIntelecto: string) : Promise<SeccionModel> {\n\t\tif ( llaveHojaIntelecto == null) {\n\t\t\treturn null;\n\t\t}\n\t\tvar hojaIntelecto = await this.cargarHojaIntelectoProducto(llaveHojaIntelecto);\n\t\tif(hojaIntelecto != null && this.utilsService.isNotBlank(hojaIntelecto.seccion)){\n\t\t\tvar seccionHoja = new SeccionModel();\n\t\t\tseccionHoja.llave = hojaIntelecto.seccion;\n\t\t\treturn await this.generalService.queryForObject(new GeneralModel('SeccionDTO', null, false, seccionHoja)).toPromise();\n\t\t}\n\t\t\n\t\treturn null;\n\t}\n\t\n\tpublic async cargarHojaIntelectoProducto(llaveHojaIntelecto: string): Promise<HojaIntelectoDTO> {\n\t\tif ( llaveHojaIntelecto == null)  {\n\t\t\treturn null;\n\t\t}\n\t\tvar hojaProducto = new HojaIntelectoDTO();\n\t\thojaProducto.llave = llaveHojaIntelecto;\n\t\thojaProducto = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, hojaProducto)).toPromise();\n\t\treturn hojaProducto;\n\t}\n\t\n\tpublic async mostrarCoautores(llaveHojaIntelecto: string) {\n\t\tvar seccion : SeccionModel = await this.cargarSeccion(llaveHojaIntelecto);\n\t\tif(seccion!=null && (this.generalPipe.SI == seccion.coautores || this.hojaVidaPipe.SOLOLISTA == seccion.coautores)){\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\n\t}\n\t\n\tpublic async mostrarAnexos(llaveHojaIntelecto: string) {\n\t\tvar seccion : SeccionModel = await this.cargarSeccion(llaveHojaIntelecto);\n\t\tif(seccion!=null && this.generalPipe.SI == seccion.anexo){\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n \n\tisCliente(){\n\t\treturn this.authService.getTokenKey('tipoLogin') == 'C'\n\t}\n\n\tget descripcionEstado() :string{\n\t\tif (this.listaEstados.length == 0 || !this.solicitudProducto?.estado) {\n\t\t\treturn '';\n\t\t}\n\t\tlet listaResultado = this.listaEstados.filter(data => data.codigo == this.solicitudProducto?.estado);\n\t\tif (!listaResultado) {\n\t\t\treturn '';\n\t\t}\n\t\tlet resultado = listaResultado[0];\n\t\treturn resultado.nombre\n\t}\n\n\t//anexos\n\n\tverNuevoAnexo() {\n\t\tthis.nuevoAnexo = true;\n\t\tthis.objetoAnexo = this.hojaIntelecto;\n\t}\n\n\tverNuevoAnexoAdicional() {\n\t\tthis.nuevoAnexoAdicional = true;\n\t}\n\n\tasync cargarListaAnexos() {\n\t\tthis.hojaVidaService.obtenerListaAnexos({ seccion: this.seccionDTO , objeto: this.hojaIntelecto }).subscribe(data => {\n\t\t  this.listaAnexos = data;\n\t\t})\n\t}\n\n\tasync regresarPopupArchivo() {\n\t\tthis.nuevoAnexo = false;\n\t\tthis.cargarListaAnexos();\n\t}\n\n\tasync regresarPopupArchivoAdicional() {\n\t\tthis.nuevoAnexoAdicional = false;\n\t\tthis.cargarAnexosAdicionales(this.solicitudProducto.llaveTabla);\n\t}\n\n\tasync regresarPopupAsignacion(event) {\n\t\tthis.mostrarPopupAsignacionFactor = false;\n\t\tawait this.setRegresoAsignaActa(event);\n\t}\n\n\tdescargarAnexo(documento) {\n\t\tconsole.log('descargando documento')\n\t\tconsole.log(documento)\n\t\tlet propiedad = 'ruta_anexosHojaVida';\n\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\t//Ruta archivo\n\t\tthis.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(documento.rutaFisica), propiedad, aplicacion).subscribe(blob => {\n\t\t  const a = document.createElement('a')\n\t\t  const objectUrl = URL.createObjectURL(blob)\n\t\t  a.href = objectUrl\n\t\t  a.download = documento.archivoorigen;\n\t\t  a.click();\n\t\t  URL.revokeObjectURL(objectUrl);\n\t\t});\n\t\n\t  }\n\t\n\t  eliminarAnexo(event, documento) {\n\t\tthis.confirmationService.confirm({\n\t\t  target: event.target,\n\t\t  message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t  acceptLabel: this.generalPipe.SI_DESC,\n\t\t  header: 'Confirmar',\n\t\t  accept: async () => {\n\t\n\t\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\t\tlet aplicacion = this.authService.getTokenKey('aplicacion');\n\t\n\t\t\tlet data = await this.archivoAnexoHojaVidaService.eliminarAnexo(documento).toPromise();\n\t\t\tif (data == 1) {\n\t\t\t  this.notificacionesService.showSuccess('Se eliminó el registro exitosamente');\n\t\n\t\t\t  //Ruta archivo\n\t\n\t\t\t  let rutaSeg = data;\n\t\t\t  await this.cargarArchivo.eliminarArchivo(this.encriptadoBasico.encriptar(documento.rutaFisica), propiedad, aplicacion).toPromise();\n\t\n\t\t\t  this.cargarAnexosAdicionales(this.solicitudProducto.llaveTabla)\n\t\t\t  await this.cargarListaAnexos();\n\t\t\t  \n\t\t\t} else {\n\t\t\t  this.notificacionesService.showError('Error en el método de eliminar recurso');\n\t\t\t  //this.isLoading = false;\n\t\t\t}\n\t\t  },\n\t\t});\n\t\n\t  }\n\t\n\n}\n","<!--<p-menubar class=\"menu-accion-sara mt-4 mb-4\" [model]=\"menuLateral\" separator=\"true\" ></p-menubar>-->\n<p-confirmPopup></p-confirmPopup>\n<p-card>\n    <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n        <div class=\"Inputgroup m-0\">\n            <div class=\"p-fluid grid\">\n                <!-- ESTADO PRODUCTO -->\n                <div class=\"field col-4 md:col-4 lg:col-4\">\n                    <span class=\"p-float-label\">\n                        <input pInputText autofocus [(ngModel)]=\"descripcionEstado\" type=\"text\" [disabled]=\"true\" />\n                        <label>{{'estadoproducto' | translate}}</label>\n                    </span>\n                </div>\n                <!-- CONTRATO -->\n                @if(solicitudProducto.contrato){\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus [(ngModel)]=\"solicitudProducto.contrato\" type=\"text\" [disabled]=\"true\" />\n                            <label>{{'contrato' | translate}}</label>\n                        </span>\n                    </div>\n                }\n                <!-- LINEA -->\n                @if(solicitudProducto.descripcionLinea){\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus [(ngModel)]=\"solicitudProducto.descripcionLinea\" type=\"text\" [disabled]=\"true\" />\n                            <label>{{'lineafactor' | translate}}</label>\n                        </span>\n                    </div>\n                }\n                <!-- FACTOR -->\n                @if(solicitudProducto.descripcionFactor){\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus [(ngModel)]=\"solicitudProducto.descripcionFactor\" type=\"text\" [disabled]=\"true\" />\n                            <label>{{'factorpuntaje' | translate}}</label>\n                        </span>\n                    </div>\n                }\n                <!-- GRUPO -->\n                @if(solicitudProducto.descripcionGrupo){\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus [(ngModel)]=\"solicitudProducto.descripcionGrupo\" type=\"text\" [disabled]=\"true\" />\n                            <label>{{'grupofactor' | translate}}</label>\n                        </span>\n                    </div>\n                }\n                <!-- ASUNTO -->\n                @if(solicitudProducto.descripcionAsunto){\n                    <div class=\"field col-4 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus [(ngModel)]=\"solicitudProducto.descripcionAsunto\" type=\"text\" [disabled]=\"true\" />\n                            <label>{{'tipoasunto' | translate}}</label>\n                        </span>\n                    </div>\n                }\n            </div>\n        </div>\n    </div>\n</p-card>\n\n@if (solicitudProducto.baseRevision) {\n    <p-card class=\"mt-3\">\n        <p-floatLabel>\n            <textarea pInputTextarea [disabled]=\"true\" [(ngModel)]=\"solicitudProducto.baseRevision\" class=\"w-full min-h-100 max-h-250\"> </textarea>\n            <label>{{'motivorevision' | translate}}</label>\n        </p-floatLabel>\n    </p-card>\n}\n\n@if (solicitudProducto.tipo == 'R') {\n    <p-card class=\"mt-3\">\n        <p-floatLabel>\n            <textarea pInputTextarea [disabled]=\"!(verBotonCambioDatos && !nuevoProducto)\" [(ngModel)]=\"solicitudProducto.basereclamacion\" class=\"w-full min-h-100 max-h-250\"> </textarea>\n            <label>{{'motivo' | translate}}</label>\n        </p-floatLabel>\n    </p-card>\n}\n\n@if (selectedPanel == 'detalle') {\n    <h1>{{'producto' | translate}}</h1>\n    @if (seccionDTO.llave) {\n        <div class=\"flex justify-content-start align-items-center \">\n            <h6 class=\"mt-3\">{{'seccion' | translate}}: {{seccionDTO.descripcion}}</h6>\n        </div>\n        <div class=\"cardInstrucciones mb-3\" >\n            <div class=\"flex\">\n                <div class=\"icono\">\n                    <i class=\"pi pi-bell\"></i>\n                </div>\n                <div class=\"contenedor\">\n                    <label>{{seccionDTO.mensajeIdioma ? seccionDTO.mensajeIdioma : seccionDTO.mensaje}}</label>\n                </div>\n            </div>\n        </div>\n        <div class=\"card mt-2 mb-2\">\n            <formulario-dinamico [hidden]=\"listaCampos.length == 0\" [editable]=\"true\" [campos]=\"listaCampos\" ></formulario-dinamico>\n        </div>\n    } @else {\n        <p-card>\n            <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n                <div class=\"Inputgroup m-0\">\n                    <div class=\"p-fluid grid\">\n                        <!-- OBSERVACION -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus [(ngModel)]=\"solicitudProducto.observacion\" type=\"text\" \n                                    [disabled]=\"!(verActualizar && controlFuncionService.getControlFuncionalidad('pundoc:actproducto'))\" />\n                                <label>{{'observacion' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- FECHA INICIAL -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"solicitudProducto.fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                    [disabled]=\"!(verActualizar && controlFuncionService.getControlFuncionalidad('pundoc:actproducto'))\"></p-calendar>\n                                <label>{{'fechainicial' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- FECHA FINAL -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-calendar [(ngModel)]=\"solicitudProducto.fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                    [disabled]=\"!(verActualizar && controlFuncionService.getControlFuncionalidad('pundoc:actproducto'))\"></p-calendar>\n                                <label>{{'fechafinal' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </p-card>\n    }\n\n    <div class=\"flex justify-content-end\" >\n        @if (isVerAsignarFactor() && controlFuncionService.getControlFuncionalidad('pundoc:asignar') && !verActualizar) {\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"asignarFactorProducto()\" label=\"{{'asignarfactor' | translate}}\">\n            </button>\n        }\n        @if (verBotonCorreccion && controlFuncionService.getControlFuncionalidad('pundoc:asignar') && !verActualizar) {\n            <button pButton pRipple class=\"m-2 p-button p-button-outlined claro\" icon=\"glyphicons glyphicons-check\" \n                (click)=\"accionCorreccion()\" label=\"{{'correccion' | translate}}\">\n            </button>\n        }\n        @if (verBotonRevision && controlFuncionService.getControlFuncionalidad('pundoc:asignar') && !verActualizar) {\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"accionRevision()\" label=\"{{'colocarevision' | translate}}\">\n            </button>\n        }\n        @if (verSolicitarActaFacultad && controlFuncionService.getControlFuncionalidad('pundoc:solactfacultad') ) {\n            <button pButton pRipple class=\"m-2 p-button p-button-outlined claro\" icon=\"glyphicons glyphicons-check\" \n                (click)=\"solicitarActaFacultad()\" label=\"{{'solicitar' | translate}} {{'acta' | translate}} {{'facultad' | translate}}\">\n            </button>\n        }\n        @if (verSolicitarActaComite && controlFuncionService.getControlFuncionalidad('pundoc:solactfacomite') ) {\n            <button pButton pRipple class=\"m-2 p-button p-button-outlined claro\" icon=\"glyphicons glyphicons-check\" \n                (click)=\"solicitarActaComite()\" label=\"{{'solicitar' | translate}} {{'acta' | translate}} {{'comite' | translate}}\">\n            </button>\n        }\n        @if (verBotonCambioDatos  && controlFuncionService.getControlFuncionalidad('pundoc:actproducto')) {\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-random\"\n                (click)=\"cambiarDatos()\" label=\"{{'cambiardatos' | translate}}\">\n            </button>\n        }\n        @if (isVerEliminar() && controlFuncionService.getControlFuncionalidad('pundoc:eliminar')) {\n            <button pButton pRipple class=\"m-2 p-button p-button-outlined claro\" icon=\"glyphicons glyphicons-bin\" \n                (click)=\"eliminarSolicitudProducto()\" label=\"{{'eliminar' | translate}}\">\n            </button>\n        }\n\n        @if (archivoPdf && solicitudProducto.llaveTabla) {\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"imprimir()\" label=\"{{'imprimir' | translate}}\">\n            </button>\n        }\n\n        @if ((verActualizar && controlFuncionService.getControlFuncionalidad('pundoc:actproducto')) || nuevoProducto) {\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"actualizarProducto()\" label=\"{{'actualizar' | translate}}\">\n            </button>\n            <!--<button pButton pRipple class=\"m-2 p-button p-button-outlined claro\" icon=\"glyphicons glyphicons-check\" \n                (click)=\"cancelar()\" label=\"{{'cancelar' | translate}}\">\n            </button>-->\n            \n        }\n    </div>\n   \n} @else if (selectedPanel == 'coautor') {\n    <app-coautor  [llave]=\"solicitudProducto.hojaIntelecto\" ></app-coautor>\n} @else if (selectedPanel == 'anexo'){\n    <div class=\"flex justify-content-between align-items-center mb-2 mt-3\">\n        <h1>{{'anexos' | translate}}</h1>\n        <button pButton pRipple class=\"p-button-secondary font-semibold flex-shrink-0 ml-4\" icon=\"pi pi-plus\"\n            label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevoAnexo()\"></button>\n    </div>\n    @if (listaAnexos.length > 0) {\n        <p-table #tablaGeneralDoc [value]=\"listaAnexos\" responsiveLayout=\"scroll\" [rows]=\"10\"\n            [paginator]=\"listaAnexos.length > 10\" [totalRecords]=\"listaAnexos.length\"\n            selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n            [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\">\n            <ng-template pTemplate=\"header\">\n                <tr class=\"fondoTablaPincipal\">\n                    <th>{{'descripcion' | translate}}</th>\n                    <th>{{'nombre' | translate}}</th>\n                    <th class=\"w-8rem\"></th>\n                </tr>\n                <th>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-documento>\n                <tr [pSelectableRow]=\"documento\">\n                    <td>{{documento.descripcion}}</td>\n                    <td>{{documento.archivoorigen}}</td>\n                    <td class=\"flex justify-content-end w-8rem\">\n                        <button pButton pRipple\n                            class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(documento)\" type=\"file\"></button>\n                        <button pButton pRipple\n                            class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            icon=\"pi pi-trash\" (click)=\"eliminarAnexo($event, documento)\" ></button>\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    } @else {\n        <div class=\"centrar-contenedor-imagen-sin-datos mt-3\" >\n            <img src=\"/assets/images/no-info.webp\" alt=\"No se encontraron datos\" height=\"30%\" width=\"30%\">\n        </div>\n    }\n} @else if (selectedPanel == 'par_academico') {\n    <app-pares-academicos-solicitud></app-pares-academicos-solicitud>\n} @else if (selectedPanel == 'comite') {\n    <h1>{{'comite' | translate}}</h1>\n    <p-card>\n        <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n            <div class=\"Inputgroup m-0\">\n                <div class=\"p-fluid grid\">\n                    @if (actaFacultad.acta) {\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus [(ngModel)]=\"actaFacultad.acta\" type=\"text\" [disabled]=\"true\" />\n                                <label>{{'acta' | translate}} {{'facultad' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-calendar dateFormat=\"dd/mm/yy\" [disabled]=\"true\" [(ngModel)]=\"actaFacultad.fechaActa\"></p-calendar>\n                                <label>{{'fecha' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus [(ngModel)]=\"actaFacultad.resolucion\" type=\"text\" [disabled]=\"true\" />\n                                <label>{{'resolucion' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaEstadosActas\" [showClear]=\"false\" [autoDisplayFirst]=\"false\" [disabled]=\"true\" [(ngModel)]=\"actaFacultad.estado\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n                                <label>{{'estado' | translate}}</label>\n                            </span>\n                        </div>\n                    }\n                    @if (actaComite.acta) {\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus [(ngModel)]=\"actaComite.acta\" type=\"text\" [disabled]=\"true\" />\n                                <label>{{'acta' | translate}} {{'comite' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-calendar dateFormat=\"dd/mm/yy\" [disabled]=\"true\" [(ngModel)]=\"actaComite.fechaActa\"></p-calendar>\n                                <label>{{'fecha' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus [(ngModel)]=\"actaComite.resolucion\" type=\"text\" [disabled]=\"true\" />\n                                <label>{{'resolucion' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field col-3 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaEstadosActas\" [showClear]=\"false\" [autoDisplayFirst]=\"false\" [disabled]=\"true\" [(ngModel)]=\"actaComite.estado\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n                                <label>{{'estado' | translate}}</label>\n                            </span>\n                        </div>\n                    }\n                    <div class=\"field col-12 md:col-12 lg:col-12\">\n                        <p-fieldset class=\"fieltsintitulo\">\n                            <div class=\"p-fluid grid\">\n                                <div class=\"field col-12 md:col-12 lg:col-12 mb-0\">\n                                    <label class=\"font-semibold text-gray-900 text-base ml-1\">{{'puntos' | translate}}</label>\n                                </div>\n                                <div class=\"field col-2 md:col-2 lg:col-2\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.puntosSolicita\" [disabled]=\"true\" />\n                                        <label>{{'maximo' | translate}}</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-2 md:col-2 lg:col-2\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.puntosAsignados\" [disabled]=\"true\" />\n                                        <label>{{'otorgado' | translate}}</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-2 md:col-2 lg:col-2\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.puntoAdicional\" [disabled]=\"true\" />\n                                        <label>{{'distincion' | translate}}</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-2 md:col-2 lg:col-2\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.puntoPendiente\" [disabled]=\"true\" />\n                                        <label>{{'pendientes' | translate}}</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-2 md:col-2 lg:col-2\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.puntosValidos\" [disabled]=\"true\" />\n                                        <label>{{'asignados' | translate}}</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-2 md:col-2 lg:col-2\"></div>\n                                <div class=\"field col-2 md:col-2 lg:col-2\">\n                                    <span class=\"p-float-label\">\n                                        <p-calendar dateFormat=\"dd/mm/yy\" [disabled]=\"true\" [(ngModel)]=\"solicitudProducto.vigenciaFiscal\"></p-calendar>\n                                        <label>{{'vigenciafiscal' | translate}}</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-3 md:col-3 lg:col-3\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.descripcionGrupo\" [disabled]=\"true\" />\n                                        <label>{{'factor' | translate}}</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-3 md:col-3 lg:col-3\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.descripcionFactor\" [disabled]=\"true\" />\n                                    </span>\n                                </div>\n                                <div class=\"field col-3 md:col-3 lg:col-3\">\n                                    <span class=\"p-float-label\">\n                                        <input type=\"text\" pInputText [(ngModel)]=\"solicitudProducto.descripcionLinea\" [disabled]=\"true\" />\n                                    </span>\n                                </div>\n                            </div>\n                        </p-fieldset>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </p-card>\n} @else if (selectedPanel == 'anexoAdicional') {\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-3\" >\n        <h1>{{'anexosadicionales' | translate}}</h1>\n        <button pButton pRipple class=\"p-button-secondary font-semibold flex-shrink-0 ml-4\" icon=\"pi pi-plus\"\n            label=\"{{'link_nuevo' | translate}}\" (click)=\"verNuevoAnexoAdicional()\"></button>\n    </div>\n    @if (listaAnexosAdicional.length > 0) {\n        <p-table #tablaGeneralDoc [value]=\"listaAnexosAdicional\" responsiveLayout=\"scroll\" [rows]=\"10\"\n            [paginator]=\"listaAnexosAdicional.length > 10\" [totalRecords]=\"listaAnexosAdicional.length\"\n            selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n            [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\">\n            <ng-template pTemplate=\"header\">\n                <tr class=\"fondoTablaPincipal\">\n                    <th>{{'descripcion' | translate}}</th>\n                    <th>{{'nombre' | translate}}</th>\n                    <th class=\"w-8rem\"></th>\n                </tr>\n                <th>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-documento>\n                <tr [pSelectableRow]=\"documento\">\n                    <td>{{documento.descripcion}}</td>\n                    <td>{{documento.archivoorigen}}</td>\n                    <td class=\"flex justify-content-end w-8rem\">\n                        <button pButton pRipple\n                            class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(documento)\" type=\"file\"></button>\n                        <button pButton pRipple\n                            class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            icon=\"pi pi-trash\" (click)=\"eliminarAnexo($event, documento)\" ></button>\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    } @else {\n        <div class=\"centrar-contenedor-imagen-sin-datos mt-3\" >\n            <img src=\"/assets/images/no-info.webp\" alt=\"No se encontraron datos\" height=\"30%\" width=\"30%\">\n        </div>\n    }\n}\n\n\n@if(nuevoAnexo) {\n    <app-input-helper-cargar-archivo-hoja-vida [isMostrarPopup]=\"nuevoAnexo\" [objetoSeccion]=\"seccionDTO\"\n        [hojaVidaModel]=\"objetoAnexo\" (regresar)=\"regresarPopupArchivo()\"></app-input-helper-cargar-archivo-hoja-vida>\n}\n@if(nuevoAnexoAdicional) {\n    <app-input-helper-cargar-archivo-hoja-vida [isMostrarPopup]=\"nuevoAnexoAdicional\" [tabla]=\"'SOLICITUDPUNTO_SOP'\" \n        [llaveTablaAnexo]=\"solicitudProducto.llaveTabla\" (regresar)=\"regresarPopupArchivoAdicional()\"></app-input-helper-cargar-archivo-hoja-vida>\n}\n@if(mostrarPopupAsignacionFactor) {\n    <app-popup-asignacion-factor-puntaje-docente (regresar)=\"regresarPopupAsignacion($event)\"></app-popup-asignacion-factor-puntaje-docente>\n}\n@if(mostrarPopupMotivoSolicitud) {\n    <app-popup-motivo-solicitud-punto (regresar)=\"setMotivo($event)\"></app-popup-motivo-solicitud-punto>\n}\n@if(mostrarPopupSolicitarActa) {\n    <app-popup-solicitar-acta (regresar)=\"setRegresoAsignaActa($event)\"></app-popup-solicitar-acta>\n}\n@if(mostrarPopupAplicarSolicitud) {\n    <app-popup-aplicar-solicitud-acta (solicitudReturn)=\"setSolicitudRegreso($event)\"></app-popup-aplicar-solicitud-acta>\n}","import { DatePipe } from '@angular/common';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { SaraAplicacionService } from '../../../../../../shared/servicios/sara-aplicacion.service';\nimport { GeneralModel, UtilsService } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { HojaIntelectoDTO } from '../../../../../../modules/hojavida/models/HojaIntelectoModel';\nimport { SolicitudPuntoModel } from '../../../../../../modules/hojavida/models/SolicitudPuntoModel';\n\n@Component({\n  selector: 'app-popup-reclamacion-solicitud-puntaje-docente',\n  standalone: true,\n  imports: [\n    DialogModule,\n    TableModule, TemplateTablaVaciaComponent,\n    InputTextModule,\n    TranslateModule,\n    FormsModule,\n\tDatePipe,\n  ],\n  templateUrl: './popup-reclamacion-solicitud-puntaje-docente.component.html',\n  styleUrl: './popup-reclamacion-solicitud-puntaje-docente.component.scss'\n})\nexport class PopupReclamacionSolicitudPuntajeDocenteComponent {\n\n  \tpublic solicitud: SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic llaveSeccion: string;\n\tpublic listadoComitePuntaje: SolicitudPuntoModel[] = [];\n\n\tpublic mostrarPopup: boolean = false;\n\t@Output() regresar = new EventEmitter()\n\n\tconstructor(private generalService: GeneralService,\n\t\t\t\tprivate solicitudPuntajePipe: SolicitudPuntajeDocentePipe,\n\t\t\t\tprivate saraAplicacionService: SaraAplicacionService,\n\t\t\t\tpublic utilsService: UtilsService,\n\t\t\t\tprivate generalPipe: GeneralPipe,\n\t) {}\n\n  \tpublic inicializar(solicitud: SolicitudPuntoModel, llaveSeccion: string){\n\t\tthis.solicitud = solicitud;\n\t\tthis.llaveSeccion = llaveSeccion;\n\t\tthis.cargarListados();\n\t\tthis.mostrarPopup = true;\n\t}\n\t\n\tprivate cargarListados() {\n\t\tvar buscarSolicitudes = new SolicitudPuntoModel();\n\t\tbuscarSolicitudes.identificacion = this.solicitud.identificacion;\n\t\tbuscarSolicitudes.estado = this.solicitudPuntajePipe.PRODUCTOEVALUADO;\n\t\tbuscarSolicitudes.seccion = this.llaveSeccion;\n\t\tbuscarSolicitudes.empresa = this.solicitud.empresa;\n\t\tthis.generalService.queryForList(new GeneralModel('SolicitudPuntoDTO', null, false, buscarSolicitudes)).subscribe(data => {\n\t\tthis.listadoComitePuntaje = data;\n\t\t});\n\t}\n\t\n\tpublic async seleccionarSolicitudPuntaje(se){\n\t\t//getBean(SolicitudPuntajeDocenteBean.class).setVistaVisualizar(this.solicitudPuntajePipe.DETALLE_SOLICITUD_PUNTAJE);\n\n\t\tvar solicitudPuntoDTO: SolicitudPuntoModel = se.data;\n\t\tvar buscarHojaIntelecto = new HojaIntelectoDTO();\n\t\tbuscarHojaIntelecto.llave = solicitudPuntoDTO.hojaIntelecto;\n\t\tbuscarHojaIntelecto = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, buscarHojaIntelecto)).toPromise();\n\t\tthis.solicitud.padre = solicitudPuntoDTO.llaveTabla;\n\t\tthis.solicitud.factorPuntaje = solicitudPuntoDTO.factorPuntaje;\n\t\tthis.solicitud.asunto = solicitudPuntoDTO.asunto;\n\t\tthis.solicitud.hojaIntelecto = buscarHojaIntelecto.llave;\n\t\tlet dbe = await this.saraAplicacionService.getDatosBasicosEmpresa();\n      \tlet tipoSolicitudEmpresa = dbe.tipoSolicitud;\n\t\tconsole.log('retorno reclamacion')\n\t\tconsole.log(buscarHojaIntelecto)\n\t\tconsole.log(this.solicitud)\n\t\tif(this.utilsService.isBlank(tipoSolicitudEmpresa) || this.solicitudPuntajePipe.UNICO_REGISTRO == tipoSolicitudEmpresa){\n\t\t\tthis.solicitud.caso = this.utilsService.rightpad(this.generalPipe.PUNTO, 32, ' ');\n        \tthis.regresar.emit({tipoSolicitudEmpresa: tipoSolicitudEmpresa, solicitud: this.solicitud});\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).traerProductoHojaIntelecto(solicitud, null);\n\t\t} else {\n\t\t\tthis.regresar.emit({tipoSolicitudEmpresa: tipoSolicitudEmpresa, solicitud: this.solicitud, hojaIntelecto: buscarHojaIntelecto});\n\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).inicializar(solicitud,null);\n\t\t\t//aplicarDestino(buscarHojaIntelecto);\n\t\t}\n\t\tthis.mostrarPopup = false;\n\t}\n\n\tocultar() {\n\t\tthis.mostrarPopup = false;\n\t}\n\n\tget descripcionTipo(): string {\n\t\tif (!this.solicitud.tipo) {\n\t\treturn '';\n\t\t}\n\t\treturn this.solicitudPuntajePipe.TIPOS_SOLICITUD.find(data => data.codigo == this.solicitud.tipo).nombre;\n\t}\n}","<p-dialog header=\"{{'nuevasolicitud' | translate}}\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" \n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <div class=\"col-md-12\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <div class=\"field col-4 md:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText autofocus type=\"text\" [(ngModel)]=\"solicitud.nombreCompleto\" autocomplete=\"off\" [disabled]=\"true\" />\n                    <label>{{'nombre' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"field col-4 md:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText autofocus type=\"text\" [(ngModel)]=\"descripcionTipo\" autocomplete=\"off\" [disabled]=\"true\" />\n                    <label>{{'tiposolicitud' | translate}}</label>\n                </span>\n            </div>\n            <div class=\"field col-4 md:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText autofocus type=\"text\" [(ngModel)]=\"solicitud.descripcionSeccion\" autocomplete=\"off\" [disabled]=\"true\" />\n                    <label>{{'seccion' | translate}}</label>\n                </span>\n            </div>\n        </div>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"listadoComitePuntaje\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n      styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listadoComitePuntaje.length\"\n      [paginator]=\"listadoComitePuntaje.length > 10\"  scrollDirection=\"horizontal\" selectionMode=\"single\" \n      [scrollable]=\"true\" [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      (onRowSelect)=\"seleccionarSolicitudPuntaje($event)\" (onRowUnselect)=\"seleccionarSolicitudPuntaje($event)\">\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th>{{'producto' | translate}}</th>\n          <th>{{'fecha' | translate}}</th>\n        </tr>\n        <th>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-bean >\n        <tr [pSelectableRow]=\"bean\">\n          <td>{{bean.resumen}}</td>\n          <td>{{bean.solicitud | date : ('formatofecha' | translate)}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, EventEmitter, Output, ViewChild} from '@angular/core';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { SaraAplicacionService } from '../../../../../../shared/servicios/sara-aplicacion.service';\nimport { CargarControlFuncionalidadService, UtilsService } from 'general-library-union';\nimport { SeccionModel } from '../../../../../../modules/hojavida/models/SeccionModel';\nimport { SolicitudPuntoModel } from '../../../../../../modules/hojavida/models/SolicitudPuntoModel';\nimport { SeccionCampoService } from '../../../../../../modules/hojavida/services/seccionCampo.service';\nimport { PopupReclamacionSolicitudPuntajeDocenteComponent } from '../popup-reclamacion-solicitud-puntaje-docente/popup-reclamacion-solicitud-puntaje-docente.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { HojaIntelectoDTO } from '../../../../../../modules/hojavida/models/HojaIntelectoModel';\n\n@Component({\n  selector: 'app-popup-seccion-solicitud-puntaje-docente',\n  standalone: true,\n  imports: [\n\tPopupReclamacionSolicitudPuntajeDocenteComponent,\n\tDialogModule,\n\tTableModule, TemplateTablaVaciaComponent,\n\tTranslateModule\n  ],\n  templateUrl: './popup-seccion-solicitud-puntaje-docente.component.html',\n  styleUrl: './popup-seccion-solicitud-puntaje-docente.component.scss'\n})\nexport class PopupSeccionSolicitudPuntajeDocenteComponent {\n\n  \tpublic listadoSeccion: SeccionModel[] = [];\n\tpublic llaveFormularioHojaVida: string;\n\tpublic solicitud: SolicitudPuntoModel;\n\n\t@Output() regresar = new EventEmitter();\n\t@ViewChild(PopupReclamacionSolicitudPuntajeDocenteComponent) popupReclamacion:PopupReclamacionSolicitudPuntajeDocenteComponent;\n\tpublic mostrarPopup: boolean = false;\n\tpublic mostrarPopupReclamacion: boolean = false;\n\n\tconstructor(private solicitudPuntajePipe: SolicitudPuntajeDocentePipe,\n\t\tprivate saraAplicacionService: SaraAplicacionService,\n\t\tpublic utilsService: UtilsService,\n\t\tprivate controlFuncionService: CargarControlFuncionalidadService,\n\t\tprivate seccionService: SeccionCampoService,\n\t) {}\n\n  \tpublic inicializar(solicitud: SolicitudPuntoModel, llaveFormularioHojaVida: string) {\n\t\tthis.solicitud = solicitud;\n\t\tthis.llaveFormularioHojaVida = llaveFormularioHojaVida;\n\t\tthis.cargarListados();\n\t\tthis.mostrarPopup = true;\n\t}\n\n\tprivate cargarListados()  {\n\t\tthis.cargarSecciones();\n\t}\n\n\tprivate cargarSecciones()  {\n\t\tvar seccion = new SeccionModel();\n\t\tseccion.formulario = this.llaveFormularioHojaVida;\n\t\tif ( !this.controlFuncionService.getControlFuncionalidad(\"pundoc:ingcontrolfecha\") ) {\n\t\t\tconst hoy = new Date();\n\t\t\thoy.setHours(0, 0, 0, 0);\n\t\t\tseccion.fechaSolicitud = hoy;\n\t\t}\n\t\tthis.seccionService.obtenerSeccionSolicitudPorFormularioVinculacion({seccion: seccion, solicitud: this.solicitud}).subscribe(data => {\n\t\t\tthis.listadoSeccion = data;\n\t\t});\n\t}\n\n\tpublic async seleccionarSeccion(se) {\n\t\tvar seccion: SeccionModel = se.data;\n\t\tthis.solicitud.descripcionSeccion = seccion.descripcion;\n\t\tlet dbe = await this.saraAplicacionService.getDatosBasicosEmpresa();\n      \tlet tipoSolicitudEmpresa = dbe.tipoSolicitud;\n\t\tif (this.isNuevaSolicitud()) {\n\t\t\t//getBean(SeleccionSolicitudPuntajeDocenteBean.class).inicializar(getDestino(), solicitud, seccion.getLlave());\n\t\t\tif(this.utilsService.isBlank(tipoSolicitudEmpresa) || this.solicitudPuntajePipe.UNICO_REGISTRO == tipoSolicitudEmpresa){\n\t\t\t\tthis.regresar.emit({vistaVisualizar: 'NUEVA_SOLICITUD', solicitud: this.solicitud, llaveSeccion: seccion.llave})\n\t\t\t\t//getBean(SolicitudPuntajeDocenteBean.class).setVistaVisualizar(\"NUEVA_SOLICITUD\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.regresar.emit({vistaVisualizar: 'NUEVA_SOLICITUD', tipoSolicitudEmpresa: tipoSolicitudEmpresa, solicitud: this.solicitud, llaveSeccion: seccion.llave});\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).setVistaVisualizar(\"NUEVA_SOLICITUD\");\n\t\t\t}\n\t\t} else if (this.isReclamacionSolicitud()) {\n\t\t\tthis.mostrarPopupReclamacion = true;\n\t\t\tawait this.utilsService.sleep(400);\n\t\t\tthis.popupReclamacion.inicializar(this.solicitud, seccion.llave);\n\t\t\t//getBean(PopupReclamacionSolicitudPuntajeDocenteBean.class).inicializar(getDestino(), solicitud, seccion.getLlave());\n\t\t}\n\t\tthis.mostrarPopup = false;\n\t}\n\n\tocultar() {\n\t\tthis.mostrarPopup = false;\n\t}\n\n\tregresarReclamacion(event) {\n\t\tlet tipoSolicitudEmpresa: string = event.tipoSolicitudEmpresa;\n\t\tlet solicitud: SolicitudPuntoModel = event.solicitud;\n\t\tlet hojaIntelecto:HojaIntelectoDTO = event.hojaIntelecto;\n\n\t\tif(this.utilsService.isBlank(tipoSolicitudEmpresa) || this.solicitudPuntajePipe.UNICO_REGISTRO == tipoSolicitudEmpresa){\n\t\t\tthis.regresar.emit({tipoSolicitudEmpresa: tipoSolicitudEmpresa, solicitud: solicitud});\n\t\t} else {\n\t\t\tthis.regresar.emit({tipoSolicitudEmpresa: tipoSolicitudEmpresa, solicitud: solicitud, hojaIntelecto: hojaIntelecto});\n\t\t}\n\n\t}\n\t\n\tpublic isNuevaSolicitud(){\n\t\treturn this.solicitud != null && this.solicitudPuntajePipe.NUEVO_SOLICITUD == this.solicitud.tipo;\n\t}\n\t\n\tpublic isReclamacionSolicitud(){\n\t\treturn this.solicitud != null && this.solicitudPuntajePipe.RECLAMACION == this.solicitud.tipo;\n\t}\n}","<p-dialog header=\"{{'seccion' | translate}}\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" \n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <p-table #tablaGeneral [value]=\"listadoSeccion\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n      styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listadoSeccion.length\"\n      [paginator]=\"listadoSeccion.length > 10\"  scrollDirection=\"horizontal\" selectionMode=\"single\" \n      [scrollable]=\"true\" [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      (onRowSelect)=\"seleccionarSeccion($event)\" (onRowUnselect)=\"seleccionarSeccion($event)\">\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th>{{'seccion' | translate}}</th>\n        </tr>\n        <th>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-bean >\n        <tr [pSelectableRow]=\"bean\">\n          <td>{{bean.descripcion}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>\n\n@if (mostrarPopupReclamacion){\n    <app-popup-reclamacion-solicitud-puntaje-docente (regresar)=\"regresarReclamacion($event)\"></app-popup-reclamacion-solicitud-puntaje-docente>\n}","import { Component, EventEmitter, Output } from '@angular/core';\nimport { SolicitudPuntoModel } from '../../../models/SolicitudPuntoModel';\nimport { HojaIntelectoDTO } from '../../../models/HojaIntelectoModel';\nimport { GeneralModel, UtilsService } from 'general-library-union';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { DialogModule } from 'primeng/dialog';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DatePipe } from '@angular/common';\nimport { FieldsetModule } from 'primeng/fieldset';\n\n@Component({\n  selector: 'app-seleccion-solicitud-puntaje-docente',\n  standalone: true,\n  imports: [\n    TableModule, TemplateTablaVaciaComponent,\n    ButtonModule,\n    RippleModule,\n    TranslateModule,\n    DatePipe,\n    FieldsetModule,\n  ],\n  templateUrl: './seleccion-solicitud-puntaje-docente.component.html',\n  styleUrl: './seleccion-solicitud-puntaje-docente.component.scss'\n})\nexport class SeleccionSolicitudPuntajeDocenteComponent {\n\n  public llaveSeccion: string;\n\tpublic solicitud: SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic listadoSolicitudSeccion: HojaIntelectoDTO[] = [];\n\tpublic listadoCoautoria: HojaIntelectoDTO[] = [];\n\tpublic tipoSolicitudEmpresa: string;\n\n  @Output() public regresar = new EventEmitter();\n\t\n  constructor(private utilsService: UtilsService,\n              private solicitudPuntajeDocentePipe: SolicitudPuntajeDocentePipe,\n              private generalPipe: GeneralPipe,\n              private generalService: GeneralService,\n  ) {}\n\n  public inicializar(solicitud: SolicitudPuntoModel, llaveSeccion: string, tipoSolicitudEmpresa: string){\n\t\t\tthis.solicitud = solicitud;\n\t\t\tthis.llaveSeccion = llaveSeccion;\n\t\t\tthis.cargarListados();\n\t}\n\t\n\tprivate cargarListados() {\n\t\tthis.cargarListadoSolicitudSeccion();\n\t\tthis.cargarListadoCoautoria();\n\t}\n\t\n\tprivate cargarListadoSolicitudSeccion() {\n\t\tvar hojaIntelectoDTO = new HojaIntelectoDTO();\n\t\thojaIntelectoDTO.seccion = this.llaveSeccion;\n    hojaIntelectoDTO.identifica = this.solicitud.identificacion;\n    hojaIntelectoDTO.documento = this.solicitud.documento;\n    hojaIntelectoDTO.empresa = this.solicitud.empresa;\n    hojaIntelectoDTO.contrato = this.solicitud.contrato;\n\t\tthis.generalService.queryForList(new GeneralModel('HojaIntelectoDTO', 'HojaIntelecto.traerPorSolicitud', false, hojaIntelectoDTO)).subscribe(data => {\n      this.listadoSolicitudSeccion = data;\n    });\n\t}\n\t\n\tprivate cargarListadoCoautoria() {\n\t\tvar hojaIntelectoDTO = new HojaIntelectoDTO();\n\t\thojaIntelectoDTO.seccion = this.llaveSeccion;\n    hojaIntelectoDTO.identifica = this.solicitud.identificacion;\n    hojaIntelectoDTO.documento = this.solicitud.documento;\n    this.generalService.queryForList(new GeneralModel('HojaIntelectoDTO', 'HojaIntelecto.consultarCoautoria', false, hojaIntelectoDTO)).subscribe(data => {\n\t\t  this.listadoCoautoria = data;\n    })\n\t}\n\t\n\tpublic async seleccionarCoautoria(sevt){\n\t\t\tvar hojaIntelecto: HojaIntelectoDTO = sevt.data;\n\t\t\tvar buscarHojaIntelecto = new HojaIntelectoDTO();\n\t\t\tbuscarHojaIntelecto.llave = hojaIntelecto.llave;\n\t\t\tbuscarHojaIntelecto = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, buscarHojaIntelecto)).toPromise();\n\t\t\t\n\t\t\tbuscarHojaIntelecto.llave = null;\n      buscarHojaIntelecto.identifica = this.solicitud.identificacion;\n      buscarHojaIntelecto.llaveBase = hojaIntelecto.llave;\n\t\t\t\n\t\t\tif(this.utilsService.isBlank(this.tipoSolicitudEmpresa) || this.solicitudPuntajeDocentePipe.UNICO_REGISTRO == this.tipoSolicitudEmpresa){\n\t\t\t\tthis.solicitud.caso = this.utilsService.rightpad(this.generalPipe.PUNTO, 32, ' ');\n\t\t\t\tthis.regresar.emit({nuevo: false, vistaVisualizar: this.solicitudPuntajeDocentePipe.DETALLE_SOLICITUD_PUNTAJE, solicitud: this.solicitud, \n\t\t\t\t\thojaIntelecto: buscarHojaIntelecto, tipoSolicitudEmpresa: this.tipoSolicitudEmpresa});\n\t\t\t\t//getBean(SolicitudPuntajeDocenteBean.class).setVistaVisualizar(this.solicitudPuntajeDocentePipe.DETALLE_SOLICITUD_PUNTAJE);\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).inicializar(solicitud,null);\n\t\t\t}\n\t\t\t//DetalleSolicitudPuntajeDocenteBean registroProducto aplicarDestino(buscarHojaIntelecto);\n\t}\n\n\tpublic async seleccionarSeccionSolicitud(se){\n\t\t\tvar hojaIntelecto: HojaIntelectoDTO = se.data;\n\t\t\t\n\t\t\tvar buscarHojaIntelecto = new HojaIntelectoDTO();\n\t\t\tbuscarHojaIntelecto.llave = hojaIntelecto.llave;\n\t\t\tbuscarHojaIntelecto = await this.generalService.queryForObject(new GeneralModel('HojaIntelectoDTO', null, false, buscarHojaIntelecto)).toPromise();\n\t\t\t\n\t\t\tif(this.utilsService.isBlank(this.tipoSolicitudEmpresa) || this.solicitudPuntajeDocentePipe.UNICO_REGISTRO == this.tipoSolicitudEmpresa ){\n        this.regresar.emit({nuevo: false, vistaVisualizar: this.solicitudPuntajeDocentePipe.DETALLE_SOLICITUD_PUNTAJE, solicitud: this.solicitud, \n          hojaIntelecto: buscarHojaIntelecto, tipoSolicitudEmpresa: this.tipoSolicitudEmpresa});\n        //getBean(SolicitudPuntajeDocenteBean.class).setVistaVisualizar(this.solicitudPuntajeDocentePipe.DETALLE_SOLICITUD_PUNTAJE);\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).crearProductoHojaIntelecto(solicitud,buscarHojaIntelecto);\n\t\t\t}\n\t\t\telse {\n        this.regresar.emit({nuevo: false, vistaVisualizar: '', hojaIntelecto: buscarHojaIntelecto, tipoSolicitudEmpresa: this.tipoSolicitudEmpresa});\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).setVistaVisualizar(\"\");\n\t\t\t\t//aplicarDestino(buscarHojaIntelecto);\n        //DetalleSolicitudPuntajeDocenteBean registroProducto aplicarDestino(buscarHojaIntelecto);\n\n\t\t\t}\n\t}\n\t\n\tpublic nuevaSolicitudSeccion(){\n\t\t\t//getBean(SolicitudPuntajeDocenteBean.class).setVistaVisualizar(this.solicitudPuntajeDocentePipe.DETALLE_SOLICITUD_PUNTAJE);\n\n\t\t\tvar hojaIntelecto = new HojaIntelectoDTO();\n\t\t\thojaIntelecto.seccion = this.llaveSeccion;\n      hojaIntelecto.identifica = this.solicitud.identificacion;\n\n\t\t\t\n\t\t\tif(this.utilsService.isBlank(this.tipoSolicitudEmpresa) || this.solicitudPuntajeDocentePipe.UNICO_REGISTRO == this.tipoSolicitudEmpresa ){\n        this.regresar.emit({nuevo: true, solicitud: this.solicitud, hojaIntelecto: hojaIntelecto, tipoSolicitudEmpresa: this.tipoSolicitudEmpresa});\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).crearProductoHojaIntelecto(solicitud,hojaIntelecto);\n\t\t\t}\n\t\t\telse {\n        this.regresar.emit({nuevo: true, solicitud: this.solicitud, hojaIntelecto: hojaIntelecto, tipoSolicitudEmpresa: this.tipoSolicitudEmpresa});\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).inicializar(solicitud,null);\n\t\t\t\t//aplicarDestino(hojaIntelecto);\n        //DetalleSolicitudPuntajeDocenteBean registroProducto aplicarDestino(buscarHojaIntelecto);\n\t\t\t}\n\t}\n\t\n\tpublic regresarAction() {\n\t\tif(this.utilsService.isBlank(this.tipoSolicitudEmpresa) || this.solicitudPuntajeDocentePipe.UNICO_REGISTRO == this.tipoSolicitudEmpresa ){\n\t\t\t//getBean(SolicitudPuntajeDocenteBean.class).setVistaVisualizar(null);\n\t\t}\n\t\telse {\n\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).setVistaVisualizar(\"detalle\");\n\t\t}\n\t}\n\n}\n","<div class=\"empleado mt-3\" style=\"justify-content: center; align-items: center\">\n    <div class=\"flex\">\n        <div class=\"col-md-12 ml-3\">\n            <div class=\"p-fluid p-formgrid grid\">\n  \n                <div class=\"col-6 md:col-3 lg:col-3\">\n                    <p>\n                        <span class=\"font-medium\">{{ \"nombre\" | translate }}: </span><br />\n                        <span>{{ solicitud.nombreCompleto }}</span>\n                    </p>\n                </div>\n  \n                <div class=\"col-6 md:col-3 lg:col-3\">\n                    <p>\n                        <span class=\"font-medium\">{{ \"seccion\" | translate }}: </span><br />\n                        <span>{{ solicitud.descripcionSeccion }}</span>\n                    </p>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n\n<p-fieldset legend=\"{{'nuevasolicitud' | translate}}\">\n    <div class=\"flex justify-content-end align-items-center mt-2 mb-3\" >\n        <button pButton pRipple class=\"p-button-secondary font-semibold flex-shrink-0 ml-4\" icon=\"pi pi-plus\"\n            label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevaSolicitudSeccion()\"></button>\n        <button pButton pRipple class=\"p-button p-button-outlined ml-2\" label=\"{{'regresar' | translate}}\"  \n            (click)=\"regresarAction()\"><i class=\"pi pi-chevron-left\"></i></button>\n    </div>\n</p-fieldset>\n\n\n@if (listadoSolicitudSeccion.length != 0) {\n    <p-fieldset legend=\"{{'solicitudseccionhojavida' | translate}}\">\n        <p-table #tablaGeneral [value]=\"listadoSolicitudSeccion\" responsiveLayout=\"scroll\" [scrollable]=\"true\" class=\"mt-2\"\n            styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listadoSolicitudSeccion.length\"\n            [paginator]=\"listadoSolicitudSeccion.length > 10\"  scrollDirection=\"horizontal\" selectionMode=\"single\" \n            [scrollable]=\"true\" [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n            (onRowSelect)=\"seleccionarSeccionSolicitud($event)\" (onRowUnselect)=\"seleccionarSeccionSolicitud($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{'resumen' | translate}}</th>\n                    <th>{{'fechainicial' | translate}}</th>\n                    <th>{{'fechafinal' | translate}}</th>\n                </tr>\n                <th>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean >\n                <tr [pSelectableRow]=\"bean\">\n                    <td>{{bean.resumen}}</td>\n                    <td>{{bean.inicial | date : ('formatofecha' | translate)}}</td>\n                    <td>{{bean.fechaFinal | date : ('formatofecha' | translate)}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </p-fieldset>\n}\n\n@if (listadoCoautoria.length != 0) {\n    <p-fieldset legend=\"{{'solicitudcoautores' | translate}}\">\n        <p-table #tablaGeneral [value]=\"listadoCoautoria\" responsiveLayout=\"scroll\" [scrollable]=\"true\" class=\"mt-2\"\n            styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listadoCoautoria.length\"\n            [paginator]=\"listadoCoautoria.length > 10\"  scrollDirection=\"horizontal\" selectionMode=\"single\" \n            [scrollable]=\"true\" [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n            (onRowSelect)=\"seleccionarCoautoria($event)\" (onRowUnselect)=\"seleccionarCoautoria($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{'seccion' | translate}}</th>\n                    <th>{{'resumen' | translate}}</th>\n                    <th>{{'fechainicial' | translate}}</th>\n                    <th>{{'fechafinal' | translate}}</th>\n                </tr>\n                <th>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-bean >\n                <tr [pSelectableRow]=\"bean\">\n                    <td>{{bean.nombreSeccion}}</td>\n                    <td>{{bean.resumen}}</td>\n                    <td>{{bean.inicial | date : ('formatofecha' | translate)}}</td>\n                    <td>{{bean.fechaFinal | date : ('formatofecha' | translate)}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </p-fieldset>\n}","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { SolicitudPuntoModel } from '../../../models/SolicitudPuntoModel';\nimport { HojaIntelectoDTO } from '../../../models/HojaIntelectoModel';\nimport { SelectListCompensa } from '../../../../../modules/compensacion/services/select-list-compensa.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { SolicitudPuntajeDocentePipe } from '../../../../../shared/pipes/solicitudPuntajeDocente.pipe';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { SolicitudPuntoService } from '../../../services/solicitud-punto.service';\nimport { ConfirmationService, MenuItem } from 'primeng/api';\nimport { VinculacionModel } from '../../../models/VinculacionModel';\nimport { FormularioModel } from '../../../models/FormularioModel';\nimport { ActividadFuenteTareaModel } from '../../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { UnidadUsuarioModel } from '../../../../../modules/compensacion/models/UnidadUsuarioModel';\nimport { UnidadCargoModel } from '../../../../../modules/talento/models/UnidadCargoModel';\nimport { DetalleProductoPuntajeDocenteComponent } from '../detalle-producto-puntaje-docente/detalle-producto-puntaje-docente.component';\nimport { MenubarModule } from 'primeng/menubar';\nimport { CardModule } from 'primeng/card';\nimport { DatePipe } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { PopupSeccionSolicitudPuntajeDocenteComponent } from '../popups/popup-seccion-solicitud-puntaje-docente/popup-seccion-solicitud-puntaje-docente.component';\nimport { SeleccionSolicitudPuntajeDocenteComponent } from '../seleccion-solicitud-puntaje-docente/seleccion-solicitud-puntaje-docente.component';\nimport { EjecucionAutorizacionComponent } from '../../../../../modules/sarageneral/pages/ejecucion-autorizacion/ejecucion-autorizacion.component';\nimport { WorkflowPipe } from '../../../../../shared/pipes/workflow.pipe';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n  selector: 'app-detalle-solicitud-puntaje-docente',\n  standalone: true,\n  imports: [DetalleProductoPuntajeDocenteComponent, \n\tMenubarModule, \n\tCardModule,\n\tTranslateModule,\n\tDatePipe,\n\tSolicitudPuntajeDocentePipe,\n\tTableModule, TemplateTablaVaciaComponent,\n\tInputTextareaModule,\n\tFloatLabelModule,\n\tButtonModule,\n\tRippleModule,\n\tPopupSeccionSolicitudPuntajeDocenteComponent,\n\tSeleccionSolicitudPuntajeDocenteComponent,\n\tEjecucionAutorizacionComponent,\n\tFormsModule\n],\n  templateUrl: './detalle-solicitud-puntaje-docente.component.html',\n  styleUrl: './detalle-solicitud-puntaje-docente.component.scss'\n})\nexport class DetalleSolicitudPuntajeDocenteComponent implements OnInit {\n\n  \tpublic tipoSolicitudEmpresa: string;\n\tpublic solicitud: SolicitudPuntoModel = new SolicitudPuntoModel();\n\tpublic listadoProductosSolicitudes: SolicitudPuntoModel[] = [];\n\tpublic llaveFormularioHV: string;\n\tpublic verEnviarSolicitud: boolean;\n\tpublic verNuevo: boolean;\n  \tpublic VerEncuesta: boolean;\n\tpublic llaveActividad: string;\n\tpublic listVinculacion: any[];\n\tpublic nombreSeccion: string;\n\tpublic mensajeSeccion: string;\n\tpublic mensajeFinal: string;\n\tpublic filtroSolicitud: SolicitudPuntoModel;\n\tpublic enProducto: boolean;\n\n\tpublic vistaVisualizar: string;\n\tpublic menuLateral: MenuItem[] = [];\n\tpublic mostrarPopupSeccionSolicitud: boolean = false;\n\n\t@ViewChild(DetalleProductoPuntajeDocenteComponent) detalleProducto: DetalleProductoPuntajeDocenteComponent;\n\t@ViewChild(PopupSeccionSolicitudPuntajeDocenteComponent) popupSeccionSolicitud: PopupSeccionSolicitudPuntajeDocenteComponent;\n\t@ViewChild(SeleccionSolicitudPuntajeDocenteComponent) seleccionSolicitud: SeleccionSolicitudPuntajeDocenteComponent;\n\t@ViewChild(EjecucionAutorizacionComponent) ejecucionAutorizacion: EjecucionAutorizacionComponent;\n\t@Output() public regresar = new EventEmitter();\n\t\n  constructor(public utilsService: UtilsService,\n              private generalPipe: GeneralPipe,\n\t\t\t  private authService: AuthService,\n\t\t\t  private workFlowPipe: WorkflowPipe,\n\t\t\t  private generalService: GeneralService,\n\t\t\t  private translateService: TranslateService,\n\t\t\t  private notificacionesService: ToastService,\n\t\t\t  private selectListCompensa: SelectListCompensa,\n              private confirmationService: ConfirmationService,\n\t\t\t  private solicitudPuntoService: SolicitudPuntoService,\n\t\t\t  public  controlFuncionService: CargarControlFuncionalidadService,\n\t\t\t  private solicitudPuntajeDocentePipe: SolicitudPuntajeDocentePipe\n  ){}\n\n  ngOnInit(): void {\n    this.enProducto = false;\n  }\n\n  async crearProductoHojaIntelecto(solicitud: SolicitudPuntoModel, hojaIntelectoDTO: HojaIntelectoDTO) {\n    this.listVinculacion = await this.selectListCompensa.getListadoVinculacionLaboral();\n    this.enProducto = true;\n    if (this.llaveActividad != null) {\n      this.VerEncuesta = true;\n    }\n    solicitud.caso = this.utilsService.rightpad(this.generalPipe.PUNTO, 32, ' ');\n    this.solicitud = solicitud;\n    this.vistaVisualizar = 'producto';\n    await this.detalleProducto.nuevoProductoUnico(solicitud, hojaIntelectoDTO);\n  }\n\n  async traerProductoHojaIntelecto(solicitud: SolicitudPuntoModel, llaveActividad: string) {\n    this.listVinculacion = await this.selectListCompensa.getListadoVinculacionLaboral();\n    this.enProducto = true;\n    if (llaveActividad != null) {\n      this.VerEncuesta = true;\n      this.llaveActividad = llaveActividad;\n    }\n    this.solicitud = solicitud;\n    this.vistaVisualizar = 'producto';\n    await this.detalleProducto.traerProductoUnico(solicitud, llaveActividad);\n  }\n\n  async inicializar(solicitud: SolicitudPuntoModel, llaveActividad: string, tipoSolicitudEmpresa: string) {\n\t\tthis.enProducto = false;\n\t\t\tif (llaveActividad != null) {\n\t\t\t\tthis.VerEncuesta = (true);\n\t\t\t\tthis.llaveActividad = (llaveActividad);\n\t\t\t}\n\t\t\tthis.listVinculacion = await this.selectListCompensa.getListadoVinculacionLaboral();\n\t\t\tthis.solicitud = solicitud;\n\t\t\tthis.llaveFormularioHV = solicitud.tipoHojaVida;\n\t\t\tthis.tipoSolicitudEmpresa = tipoSolicitudEmpresa;\n\t\t\tthis.cargarMenu();\n\t\t\tawait this.cargarListadoProductos();\n\t\t\tthis.evaluarVerNuevo();\n\t\t\tthis.evaluarVerEnviarSolicitud();\n\t\t\tawait this.detalleProducto.cargaFormularioProductoLlave(solicitud);\n\t\t\tthis.vistaVisualizar = 'detalle';\n\t\t\t\n\t}\n\n  public evaluarVerEnviarSolicitud() {\n\t\tthis.verEnviarSolicitud = false;\n\t\tif (this.isSolicitudMultiple()) {\n\t\t\tif (this.listadoProductosSolicitudes.length >= 1) {\n\t\t\t\tif (this.solicitud.estado == (this.solicitudPuntajeDocentePipe.ENELABORACION)) {\n\t\t\t\t\tthis.verEnviarSolicitud = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.solicitud != null && this.solicitud.estado == (this.solicitudPuntajeDocentePipe.ENELABORACION) && this.solicitud.fechaAdicionado != null) {\n\t\t\t\tthis.verEnviarSolicitud = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic evaluarVerNuevo() {\n\t\t\n\t\t\tthis.verNuevo = false;\n\t\t\tif (this.isSolicitudMultiple()) {\n\t\t\t\tif (this.solicitud.estado == (this.solicitudPuntajeDocentePipe.ENELABORACION)) {\n\t\t\t\t\tthis.verNuevo = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.solicitud.estado == (this.solicitudPuntajeDocentePipe.ENELABORACION)) {\n\t\t\t\tthis.verNuevo = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\n\n\t}\n\n\tprivate async cargarListadoProductos()  {\n\t\tif (this.isNuevo() || this.isSolicitudUnica()) {\n\t\t\tthis.listadoProductosSolicitudes = [];\n\t\t\treturn;\n\t\t}\n\t\tvar solicitudPuntoDTO = new SolicitudPuntoModel();\n\t\tsolicitudPuntoDTO.caso = this.utilsService.rightpad(this.solicitud.llaveTabla, 32, ' ');\n\t\tthis.listadoProductosSolicitudes = await this.solicitudPuntoService.consultarListaSolicitudPuntajeDocente(solicitudPuntoDTO).toPromise();\n\t\tvar posicion=0;\n\t\tfor (var unaSolicitud of this.listadoProductosSolicitudes) {\n\t\t\tposicion++;\n\t\t\tunaSolicitud.paginacionRegistroFinal = posicion;\n\t\t\t\n\t\t}\n\t\n\t}\n\n\tpublic cargarMenu()  {\n\t\tthis.menuLateral = [\n\t\t\t{ label: this.translateService.instant('caso'), icon: 'glyphicons glyphicons-wallet', command: (event) => { this.seleccionarOpcionMenu('detalle') } },\n\t\t];\n\t}\n\n\tpublic seleccionarOpcionMenu(parametro) {\n\t\tthis.vistaVisualizar = parametro;\n\t\t\n\t}\n\n\tpublic regresarAction() {\n\t\tif (this.enProducto) {\n\t\t\tthis.enProducto=false;\n\t\t\tif(this.utilsService.isBlank(this.tipoSolicitudEmpresa) || this.solicitudPuntajeDocentePipe.UNICO_REGISTRO == this.tipoSolicitudEmpresa){\n\t\t\t\tthis.regresar.emit(false);\n\t\t\t} else {\n\t\t\t\tthis.vistaVisualizar = 'detalle';\n\t\t\t}\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis.regresar.emit(false);\n\t\t}\n\t\t// String url = getUrl();\n\n\t\t// if (!isSolicitudMultiple()) {\n\t\t// \tif (url.endsWith(\"solicitudPuntajeDocente.xhtml\") || url.endsWith(\"uiSolicitudPuntajeDocente.xhtml\")) {\n\t\t// \t\tgetBean(SolicitudPuntajeDocenteBean.class).VistaVisualizar(null);\n\t\t// \t\treturn;\n\t\t// \t}\n\t\t// }\n\t\t// getBean(SolicitudPuntajeDocenteBean.class).VistaVisualizar(null);\n\t}\n\n\tpublic nuevoProductoSolicitud() {\n\t\tif (this.validar()) {\n\t\t\tthis.configurarSolicitud();\n\t\t}\n\t}\n\n\tpublic eliminarPadre() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\theader: 'Confirmar',\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\taccept: () => {\n\t\t\t\tthis.setEliminar();\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic setEliminar() {\n\t\tthis.generalService.delete(new GeneralModel('SolicitudPuntoDTO', null, false, this.solicitud)).subscribe(data => {\n\t\t\tthis.notificacionesService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\tthis.regresarAction();\n\t\t});\n\t}\n\n\tpublic validar() {\n\t\tvar valido = true;\n\t\tvalido = valido && this.utilsService.validarCampoObligatorio(this.solicitud.vinculacion);\n\t\tvalido = valido && this.utilsService.validarCampoObligatorio(this.solicitud.unidad);\n\t\treturn valido;\n\t}\n\n\tpublic async seleccionarProductoSolicitud(se) {\n\t\tthis.vistaVisualizar = (\"producto\");\n\t\tvar producto = se.data;\n\t\tawait this.detalleProducto.traerProductoMultiple(this.solicitud, producto, this.llaveActividad);\n\t\tthis.enProducto = true;\n\t}\n\n\tprivate async configurarSolicitud()  {\n\t\tvar llaveFormularioHojaVida = await this.validarFormularioHojaVida();\n\t\tthis.mostrarPopupSeccionSolicitud = true;\n\t\tawait this.utilsService.sleep(400);\n\t\tthis.popupSeccionSolicitud.inicializar(this.solicitud, llaveFormularioHojaVida);\n\t\t//getBean(PopupSeccionSolicitudPuntajeDocenteBean.class).inicializar(\"detalleSolicitudPuntajeDocenteBean.registroProducto\", this.solicitud, llaveFormularioHojaVida);\n\t}\n\n\tprivate async validarFormularioHojaVida() : Promise<string> {\n\t\tif (this.utilsService.isNotBlank(this.llaveFormularioHV)) {\n\t\t\tvar vincula = new VinculacionModel();\n\t\t\tvincula.vinculacion = this.llaveFormularioHV;\n\t\t\tvar tipoHoja = await this.generalService.queryForObject(new GeneralModel('VinculacionDTO', null, false, vincula)).toPromise();\n\t\t\tif (tipoHoja != null) {\n\t\t\t\tif (tipoHoja.formulario != null) {\n\t\t\t\t\tvar formulario = new FormularioModel();\n\t\t\t\t\tformulario.llaveTabla = tipoHoja.formulario;\n\t\t\t\t\tformulario = await this.generalService.queryForObject(new GeneralModel('FormularioDTO', null, false, formulario)).toPromise();\n\t\t\t\t\treturn formulario.llaveTabla;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic async setRegistroProducto(productoHojaIntelecto: HojaIntelectoDTO) {\n\t\tthis.enProducto = true;\n\t\tthis.vistaVisualizar = (\"producto\");\n\t\tif ( this.isSolicitudUnica() ) {\n\t\t\tawait this.detalleProducto.nuevoProductoUnico(this.solicitud, productoHojaIntelecto);\n\t\t}\n\t\telse {\n\t\t\tawait this.detalleProducto.nuevoProductoMultiple(this.solicitud, productoHojaIntelecto, this.isNuevo());\n\t\t}\n\t}\n\n\tpublic async verAutorizacion(llaveActividad: string) {\n\t\tvar actividad = new ActividadFuenteTareaModel();\n\t\tactividad.llaveTabla = llaveActividad;\n\t\tactividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n\n\t\tvar solicitud = new SolicitudPuntoModel();\n\t\tsolicitud.llaveTabla = actividad.llaveTablaBase;\n\t\tlet lista = await this.solicitudPuntoService.consultarSolicitudPuntajeDocente({solicitud: solicitud}).toPromise();\n\t\tconsole.log(lista)\n\t\tif (lista.length > 0) {\n\t\t\tsolicitud = lista[0];\n\t\t}\n\t\tconsole.log(solicitud)\n\t\tthis.VerEncuesta = true;\n\t\tawait this.utilsService.sleep(300);\n\t\tawait this.ejecucionAutorizacion.inicializar(actividad.llaveTabla, actividad.fuenteServicio, this.workFlowPipe.PROCESOPUNTAJEDOCENTE, this.solicitud);\n\t\tawait this.inicializar(solicitud, llaveActividad, 'M');\n\t}\n\n\tpublic enviarSolicitud() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: '¿Desea enviar la solicitud?',\n\t\t\theader: 'Confirmar',\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\taccept: async () => {\n\t\t\t\tawait this.setRepuestaEnviar();\n\t\t\t}\n\t\t})\n\t}\n\t\n\tpublic async setRepuestaEnviar() {\n\t\tif (this.isSolicitudMultiple()) {\n\t\t\tfor (var solicitudPuntoDTO of this.listadoProductosSolicitudes) {\n\t\t\t\tawait this.solicitudPuntoService.actualizarEstadoSolicitud({solicitud: solicitudPuntoDTO, nuevoEstado: this.solicitudPuntajeDocentePipe.ENSOLICITUD}).toPromise();\n\t\t\t\tsolicitudPuntoDTO.estado = this.solicitudPuntajeDocentePipe.ENSOLICITUD;\n\t\t\t}\n\t\t}\n\t\tawait this.solicitudPuntoService.actualizarEstadoSolicitud({solicitud: this.solicitud, nuevoEstado: this.solicitudPuntajeDocentePipe.ENSOLICITUD}).toPromise();\n\t\tthis.solicitud.estado = this.solicitudPuntajeDocentePipe.ENSOLICITUD;\n\t\tthis.evaluarVerNuevo();\n\t\tthis.evaluarVerEnviarSolicitud();\n\t\tthis.lanzarProcesoBPM();\n\t\tthis.notificacionesService.showWarningPopup(this.translateService.instant(\"solicitudpuntoenviada\"));\n\t}\n\n\tpublic lanzarProcesoBPM() {\n\t\tthis.solicitudPuntoService.lanzarProcesoBPM(this.solicitud).subscribe(data => {\n\t\t});\n\t}\n\n\tpublic llevarAlComite() {\n\t\tthis.solicitudPuntoService.llevarAlComite({solicitud: this.solicitud, listadoProductosSolicitudes: this.listadoProductosSolicitudes}).subscribe(data => {\n\t\t\tthis.solicitud = data.solicitud; \n\t\t\tthis.listadoProductosSolicitudes = data.listadoProductosSolicitudes;\n\t\t});\n\t}\n\n\t/**\n\t * Método de retorno del popupUnidad - Establece la unidad usuario\n\t * seleccionada\n\t * \n\t * @param unidadUsuarioDTO\n\t *            La unidad seleccionada\n\t * @\n\t */\n\tpublic async setRegresarUnidad(unidadUsuarioDTO: UnidadUsuarioModel)  {\n\t\tthis.solicitud.unidad = unidadUsuarioDTO.unidad;\n\t\tthis.solicitud.unidadNombre = unidadUsuarioDTO.unidad + \" : \" + unidadUsuarioDTO.nombreUnidad;\n\t\tvar unidadCargoDTO: UnidadCargoModel = await this.solicitudPuntoService.obtenerValoresAdicionalesSolicitud(unidadUsuarioDTO.unidad, parseInt(this.authService.getTokenKey('numeroEmpresa')));\n\t\tif (unidadCargoDTO != null) {\n\t\t\tthis.solicitud.nombreUnidadDocum = unidadCargoDTO.nombreFacultad;\n\t\t\tthis.solicitud.unidadDocum = unidadCargoDTO.codigoFacultad;\n\t\t\tthis.solicitud.sucursal = unidadCargoDTO.sucursalFacultad;\n\t\t\tthis.solicitud.nombreSucursal = unidadCargoDTO.nombreSucursal;\n\t\t}\n\t}\n\n\tpublic isVerLlevarAlComite() {\n\t\tif (!this.isSolicitudUnica()) {\n\t\t\tif (this.listadoProductosSolicitudes.length == 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif (this.solicitud.estado == (this.solicitudPuntajeDocentePipe.POREVALUAR)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tpublic isVerAsignarPuntosPorFormulacion() {\n\t\tif (this.solicitud.estado == (this.solicitudPuntajeDocentePipe.POREVALUAR)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tpublic asignarPuntosProductos() {\n\t\tthis.solicitudPuntoService.asignarPuntosProductos(this.solicitud).subscribe(data => {\n\t\t\tthis.solicitud = data;\n\t\t})\n\t}\n\n\tpublic autorizarDirecto() {\n\t\tvar mensaje = \"¿Desea autorizar las solicitudes?\";\n\t\tif ( !this.isSolicitudMultiple()) {\n\t\t\tmensaje = \"¿Desea enviar la solicitud?\";\n\t\t}\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: mensaje,\n\t\t\theader: 'Confirmar',\n\t\t\tacceptLabel: this.generalPipe.SI_DESC,\n\t\t\taccept: async () => {\n\t\t\t\tawait this.setConfirmarAutorizarDirecto();\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic async setConfirmarAutorizarDirecto() {\n\t\tthis.solicitud = await this.solicitudPuntoService.confirmarAutorizarDirecto(this.solicitud).toPromise();\n\t\tthis.verEnviarSolicitud = false;\n\t\tthis.verNuevo = false;\n\t\tawait this.cargarListadoProductos();\n\t}\n\n\tpublic async regresarSeccionSolicitud(event){\n\t\tconsole.log('regresarSeccionSolicitud')\n\t\tconsole.log(event)\n\t\tlet vista: string = event.vistaVisualizar;\n\t\tlet llaveSeccion: string = event.llaveSeccion;\n\t\tlet tipoSolicitudEmpresa: string = event.tipoSolicitudEmpresa;\n\t\tlet solicitud: SolicitudPuntoModel = event.solicitud;\n\t\tlet hojaIntelecto:HojaIntelectoDTO = event.hojaIntelecto;\n\n\t\tif (vista) {\n\t\t\tthis.vistaVisualizar = vista;\n\t\t\tawait this.utilsService.sleep(400);\n\t\t\tthis.seleccionSolicitud.inicializar(solicitud, llaveSeccion, tipoSolicitudEmpresa);\n\t\t} else {\n\t\t\tif(this.utilsService.isBlank(tipoSolicitudEmpresa) || this.solicitudPuntajeDocentePipe.UNICO_REGISTRO == tipoSolicitudEmpresa){\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).traerProductoHojaIntelecto(solicitud, null);\n\t\t\t\tawait this.traerProductoHojaIntelecto(solicitud, null);\n\t\t\t} else {\n\t\t\t\tawait this.inicializar(solicitud, null, tipoSolicitudEmpresa);\n\t\t\t\tawait this.setRegistroProducto(hojaIntelecto);\n\t\t\t\t//getBean(DetalleSolicitudPuntajeDocenteBean.class).inicializar(solicitud,null);\n\t\t\t\t//detalleSolicitudPuntajeDocenteBean.registroProducto aplicarDestino(buscarHojaIntelecto);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync regresarSeleccionSolicitud(event) {\n\t\tlet nuevo: boolean = event.nuevo;\n\t\tlet vistaVisualizar: string = event.vistaVisualizar;\n\t\tlet hojaIntelecto: HojaIntelectoDTO = event.hojaIntelecto;\n\t\tlet solicitud: SolicitudPuntoModel = event.solicitud;\n\t\tlet tipoSolicitudEmpresa: string = event.tipoSolicitudEmpresa;\n\n\t\tif (nuevo) {\n\t\t\tawait this.inicializar(solicitud,null, tipoSolicitudEmpresa);\n\t\t\tawait this.setRegistroProducto(hojaIntelecto);\n\t\t} else {\n\t\t\tthis.vistaVisualizar = vistaVisualizar\n        \tawait this.setRegistroProducto(hojaIntelecto);\n\t\t}\n\t}\n\n\n\tpublic isSolicitudUnica() {\n\t\treturn this.solicitudPuntajeDocentePipe.UNICO_REGISTRO == (this.tipoSolicitudEmpresa);\n\t}\n\n\tpublic isSolicitudMultiple() {\n\t\treturn this.solicitudPuntajeDocentePipe.MULTIPLE_REGISTRO == (this.tipoSolicitudEmpresa) || this.solicitudPuntajeDocentePipe.MULTIPLE_REGISTRO_UNIVERSIDAD == (this.tipoSolicitudEmpresa);\n\t}\n\n\tpublic isNuevo() {\n\t\treturn this.solicitud != null && this.utilsService.isBlank(this.solicitud.llaveTabla);\n\t}\n\n\tpublic isNuevaSolicitud() {\n\t\treturn this.solicitud != null && this.solicitudPuntajeDocentePipe.NUEVO_SOLICITUD == (this.solicitud.tipo);\n\t}\n\n\tpublic isReclamacionSolicitud() {\n\t\treturn this.solicitud != null && this.solicitudPuntajeDocentePipe.RECLAMACION == (this.solicitud.tipo);\n\t}\n\n\tpublic isEnSolicitud() {\n\t\treturn this.solicitud != null && (this.solicitud.estado == (this.solicitudPuntajeDocentePipe.ENSOLICITUD) || this.solicitud.estado == (this.solicitudPuntajeDocentePipe.ENELABORACION))\t&& (this.isSolicitudUnica() || (this.listadoProductosSolicitudes != null && this.listadoProductosSolicitudes.length > 0));\n\t}\n\n\tpublic isVerEnviarSolicitud() {\n\t\tthis.evaluarVerEnviarSolicitud();\n\t\treturn this.verEnviarSolicitud;\n\t}\n\n\tpublic isVerVinculacion() {\n\t\treturn this.solicitud != null && !(this.solicitud.contrato == null);\n\t}\n\n\tpublic isVerEliminar() {\n\t\treturn this.listadoProductosSolicitudes == null || this.listadoProductosSolicitudes.length == 0;\n\t}\n\n\n\n}\n","<div class=\"flex justify-content-between align-items-center mb-2\">\n    <h1 class=\"mb-2\">{{'detalle' | translate}} {{'solicitudpuntajedocente' | translate}}</h1>\n    <button pButton pRipple (click)=\"regresarAction()\" label=\"{{'regresar' | translate}}\" icon=\"pi pi-chevron-left\"\n        class=\"p-button-text font-semibold flex-shrink-0\"></button>\n</div>\n@if (vistaVisualizar == 'detalle' && isSolicitudMultiple() && !enProducto) {\n    <p-menubar class=\"menu-accion-sara mt-4 mb-4\" [model]=\"menuLateral\" separator=\"true\" ></p-menubar>\n}\n\n@if (vistaVisualizar == 'producto' && enProducto) {\n    <p-menubar class=\"menu-accion-sara mt-4 mb-4\" [model]=\"detalleProducto?.menuLateral\" separator=\"true\" ></p-menubar>\n}\n<!--CABECERA-->\n<div class=\"empleado mt-3\" style=\"justify-content: center; align-items: center\">\n    <div class=\"\">\n        <div class=\"col-md-12 ml-3\">\n            <div class=\"p-fluid p-formgrid grid\">\n                <h1 class=\"w-full mb-3 mt-3 ml-2\">{{ solicitud.documento }} - {{ solicitud.nombreCompleto }}</h1>\n  \n                <div class=\"col-6 md:col-3 lg:col-3\">\n                    <p>\n                        <span class=\"font-medium\">{{ \"fechasolicitud\" | translate }}: </span><br />\n                        <span>{{ solicitud.solicitud | date : ('formatofechahorasegundo' | translate) }}</span>\n                    </p>\n                </div>\n  \n                <div class=\"col-6 md:col-3 lg:col-3\">\n                    <p>\n                        <span class=\"font-medium\">{{ \"tiposolicitud\" | translate }}: </span><br />\n                        <span>{{ solicitud.tipo | solicitudPuntajeDocente : 'listaTipo' }}</span>\n                    </p>\n                </div>\n  \n                @if (isSolicitudMultiple()) {\n                    <div class=\"col-6 md:col-3 lg:col-3\">\n                        <p>\n                            <span class=\"font-medium\">{{ \"estado\" | translate }}: </span><br />\n                            <span>{{ solicitud.estado | solicitudPuntajeDocente : 'listaEstadoSolicitud'}}</span>\n                        </p>\n                    </div>\n                }\n  \n                @if (solicitud.radicado) {\n                    <div class=\"col-6 md:col-3 lg:col-3\">\n                        <p>\n                            <span class=\"font-medium\">{{ \"radicado\" | translate }}: </span><br />\n                            <span>{{ solicitud.radicado }}</span>\n                        </p>\n                    </div>\n                }\n\n                @if (solicitud.cargo) {\n                    <div class=\"col-6 md:col-3 lg:col-3\">\n                        <p>\n                            <span class=\"font-medium\">{{ \"cargo\" | translate }}: </span><br />\n                            <span>{{ solicitud.cargoDescripcion }}</span>\n                        </p>\n                    </div>\n                }\n\n                <div class=\"col-6 md:col-3 lg:col-3\">\n                    <p>\n                        <span class=\"font-medium\">{{ \"vinculacion\" | translate }}: </span><br />\n                        <span>{{ solicitud.nombreVinculacion }}</span>\n                    </p>\n                </div>\n\n                <div class=\"col-6 md:col-3 lg:col-3\">\n                    <p>\n                        <span class=\"font-medium\">{{ \"unidad\" | translate }}: </span><br />\n                        <span>{{ solicitud.unidadNombre }}</span>\n                    </p>\n                </div>\n\n                @if (solicitud.nombreUnidadDocum) {\n                    <div class=\"col-6 md:col-3 lg:col-3\">\n                        <p>\n                            <span class=\"font-medium\">{{ \"unidaddocum\" | translate }}: </span><br />\n                            <span>{{ solicitud.nombreUnidadDocum }}</span>\n                        </p>\n                    </div>\n                }\n\n                @if (solicitud.nombreSucursal) {\n                    <div class=\"col-6 md:col-3 lg:col-3\">\n                        <p>\n                            <span class=\"font-medium\">{{ \"sucursal\" | translate }}: </span><br />\n                            <span>{{ solicitud.nombreSucursal }}</span>\n                        </p>\n                    </div>\n                }\n\n                @if (solicitud.turno) {\n                    <div class=\"col-6 md:col-3 lg:col-3\">\n                        <p>\n                            <span class=\"font-medium\">{{ \"turno\" | translate }}: </span><br />\n                            <span>{{ solicitud.descripcionTurno }}</span>\n                        </p>\n                    </div>\n                }\n            </div>\n        </div>\n    </div>\n</div>\n\n<!-- PRODUCTOS SOLICITUD MULTIPLE -->\n@if (vistaVisualizar == 'detalle' && isSolicitudMultiple()) {\n    <div class=\"flex justify-content-end align-items-center mt-2 mb-3\" >\n        @if (verNuevo && controlFuncionService.getControlFuncionalidad('pundoc:nuevoproducto')) {\n            <button pButton pRipple class=\"p-button-secondary font-semibold flex-shrink-0 ml-4\" icon=\"pi pi-plus\"\n                label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoProductoSolicitud()\"></button>\n        }\n        @if (isVerEliminar() && controlFuncionService.getControlFuncionalidad('pundoc:eliminar')) {\n            <button pButton pRipple class=\"p-button p-button-outlined ml-2\" label=\"{{'eliminar' | translate}}\"  \n                (click)=\"eliminarPadre()\"><i class=\"glyphicons glyphicons-bin\"></i></button>\n        }\n    </div>\n\n    <p-table responsiveLayout=\"scroll\" [value]=\"listadoProductosSolicitudes\" [rows]=\"20\" [totalRecords]=\"listadoProductosSolicitudes.length\" \n        [paginator]=\"listadoProductosSolicitudes.length > 20\" [showCurrentPageReport]=\"true\" [selectionMode]=\"!VerEncuesta ? 'single' : null\" \n        [scrollable]=\"true\" (onRowSelect)=\"seleccionarProductoSolicitud($event)\" (onRowUnselect)=\"seleccionarProductoSolicitud($event)\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n        <ng-template pTemplate=\"header\">\n            <tr class=\"fondoTablaPincipal\">\n                <th pSortableColumn=\"paginacionRegistroFinal\" style=\"width:2%\">\n                    <p-sortIcon field=\"paginacionRegistroFinal\" />\n                </th>\n                <th pSortableColumn=\"descripcionSeccion\" style=\"width:10%\">\n                    {{'producto' | translate}} <p-sortIcon field=\"descripcionSeccion\" />\n                </th>\n                <th pSortableColumn=\"estado\" style=\"width:10%\">\n                    {{'estado' | translate}} <p-sortIcon field=\"estado\" />\n                </th>\n                <th pSortableColumn=\"solicitud\" style=\"width:10%\">\n                    {{'fechasolicitud' | translate}} <p-sortIcon field=\"solicitud\" />\n                </th>\n                <th pSortableColumn=\"numeroActa\" style=\"width:10%\">\n                    {{'acta_comite' | translate}} <p-sortIcon field=\"numeroActa\" />\n                </th>\n                <th pSortableColumn=\"numeroActaFacultad\" style=\"width:10%\">\n                    {{'acta' | translate}} {{'facultad' | translate}} <p-sortIcon field=\"numeroActaFacultad\" />\n                </th>\n                <th pSortableColumn=\"descripcionGrupo\" style=\"width:10%\">\n                    {{'factor' | translate}} <p-sortIcon field=\"descripcionGrupo\" />\n                </th>\n                <th style=\"width: 10%;\">{{'tipoasunto' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean>\n            <tr [pSelectableRow]=\"bean\">\n                <td style=\"width: 2%;\">{{bean.paginacionRegistroFinal}}</td>\n                <td style=\"width: 10%;\">{{bean.descripcionSeccion}} : {{bean.resumen}}</td>\n                <td style=\"width: 10%;\">{{bean.estado | solicitudPuntajeDocente : 'listaEstadoSolicitud' }} @if(bean.estado == '4') { {{bean.etapaPares}} }</td>\n                <td style=\"width: 10%;\">{{bean.solicitud | date : ('formatofechahorasegundo' | translate)}}</td>\n                <td style=\"width: 10%;\">{{bean.numeroActa}}</td>\n                <td style=\"width: 10%;\">{{bean.numeroActaFacultad}}</td>\n                <td style=\"width: 10%;\">{{bean.descripcionGrupo}} - {{bean.descripcionFactor}} - {{bean.descripcionLinea}}</td>\n                <td style=\"width: 10%;\">{{bean.asuntoDescripcion}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n    @if (solicitud.mensaje) {\n        \n        <p-card class=\"mt-3\">\n            <p-floatLabel>\n                <textarea pInputTextarea [disabled]=\"true\" [(ngModel)]=\"solicitud.mensaje\"\n                    class=\"w-full min-h-100 max-h-250\"> </textarea>\n                <label>{{'mensaje' | translate}}</label>\n            </p-floatLabel>\n        </p-card>\n    }\n}\n\n<app-detalle-producto-puntaje-docente #detalleProducto [hidden]=\"vistaVisualizar != 'producto'\"></app-detalle-producto-puntaje-docente>\n\n<app-seleccion-solicitud-puntaje-docente #seleccionSolicitud [hidden]=\"vistaVisualizar != 'NUEVA_SOLICITUD'\" (regresar)=\"regresarSeleccionSolicitud($event)\" ></app-seleccion-solicitud-puntaje-docente>\n\n@if (vistaVisualizar != 'producto' && vistaVisualizar != 'NUEVA_SOLICITUD' && isSolicitudMultiple()) {\n    \n    <div class=\"flex justify-content-end\" >\n        @if (isVerEnviarSolicitud() && controlFuncionService.getControlFuncionalidad('pundoc:enviar')) {\n            <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                (click)=\"enviarSolicitud()\" label=\"{{'enviarsolicitud' | translate}}\">\n            </button>\n        }\n        @if (isVerEnviarSolicitud() && controlFuncionService.getControlFuncionalidad('pundoc:autorizardirecto')) {\n            <button pButton pRipple class=\"m-2 p-button p-button-outlined claro\" icon=\"glyphicons glyphicons-check\" \n                (click)=\"autorizarDirecto()\" label=\"{{'autorizardirecto' | translate}}\">\n            </button>\n        }\n    </div>\n}\n\n@if (mostrarPopupSeccionSolicitud){\n    <app-popup-seccion-solicitud-puntaje-docente (regresar)=\"regresarSeccionSolicitud($event)\"></app-popup-seccion-solicitud-puntaje-docente>\n}\n\n@if (VerEncuesta) {\n    <app-ejecucion-autorizacion (regresar)=\"regresarAction()\"></app-ejecucion-autorizacion>\n}","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n    name: 'separadorArchivoPlanoPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class SeparadorArchivoPlanoPipe implements PipeTransform {\n\n    COMA = \",\";\n    PIPELINE = \"\\\\|\";\n    PUNTOYCOMA = \";\";\n    TABULADOR = \"\\\\t\";\n\n    DESCOMA = \"Coma\";\n    DESPUNTOYCOMA = \"Punto y coma\";\n    DESPIPELINE = \"Pipeline\";\n    DESTABULADOR = \"Tabulador\";\n\n    SEPARADOR_ARCHIVOPLANO =\n      [\n        { codigo: this.COMA, nombre: this.DESCOMA },\n        { codigo: this.PIPELINE, nombre: this.DESPIPELINE },\n        { codigo: this.PUNTOYCOMA, nombre: this.DESPUNTOYCOMA },\n        { codigo: this.TABULADOR, nombre: this.DESTABULADOR },\n      ]\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listaSeparadorArchivoPlano') { this.SEPARADOR_ARCHIVOPLANO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TipoActividadService {\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  obtenerEntrevistaPrueba(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/tipoActividad/obtenerEntrevistaPrueba`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { AuthService, DataExporter, GeneralModel, ParametrosGeneralModel, ToastService, cargarmapasGlobal } from 'general-library-union';\nimport { SeparadorArchivoPlanoPipe } from '../../../../modules/compensacion/pipes/separadorArchivoPlano.pipe';\nimport { ProcesoSeleccionModel } from '../../models/ProcesoSeleccionModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { TipoActividadService } from '../../../../modules/capacitacion/services/tipo-actividad.service';\nimport { EntrevistaPruebaModel } from '../../models/EntrevistaPruebaModel';\nimport { ProcesoSeleccionService } from '../../services/proceso-seleccion.service';\nimport { HttpEventType } from '@angular/common/http';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TemporalNovedadModel } from '../../../../modules/compensacion/models/TemporalNovedadModel';\nimport { InformacionArchivoModel } from '../../../../modules/bienestar/models/InformacionArchivoModel';\nimport { SeleccionableWrapper } from '../../../../modules/compensacion/models/SeleccionableWrapperModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { NgIf } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-importar-calificacion-medio',\n    templateUrl: './popup-importar-calificacion-medio.component.html',\n    styleUrls: ['./popup-importar-calificacion-medio.component.scss'],\n    providers: [DataExporter],\n    standalone: true,\n    imports: [DialogModule, FormsModule, ReactiveFormsModule, DropdownModule, FileUploadModule, ButtonDirective, Ripple, NgIf, TooltipModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, ConfirmPopupModule, TranslateModule]\n})\nexport class PopupImportarCalificacionMedioComponent implements OnInit {\n\n  @ViewChild('tablaGeneral') tabla: Table;\n  @Input() mostrarPopup: boolean;\n  @Input() proceso: ProcesoSeleccionModel;\n  @Output() regresar = new EventEmitter;\n\n  public listadoDatosArchivoPlanoAux: TemporalNovedadModel[] = [];\n  public listaWrapper: SeleccionableWrapper[] = [];\n  public archivoSeleccionado: File;\n  public informacionArchivo: InformacionArchivoModel;\n  public extensionesPermitidas: string[];\n  public separador: string;\n\tpublic formatoFecha: string;\n  public llaveEtapa: string;\n  public llaveEvaluacion: string;\n  public aplicado: boolean;\n\n  columnasExportExcel = [\"identificacion\", \"nombre\", \"puntaje\", \"observacion\", \"mensaje\"];\n  nombreArchivo : string;\n\n  formImportarCalificacion : FormGroup;\n\n  listaEtapa : any;\n  listaSeparadores : any;\n  listaEvaluaciones : any;\n\n  constructor(private cargarMapas: cargarmapasGlobal, private separadorArchivoPlanoPipe : SeparadorArchivoPlanoPipe,\n    private formBuilder : FormBuilder, private generalService: GeneralService, private tipoActividadService : TipoActividadService,\n    private notificacionesService: ToastService, private procesoSeleccionService : ProcesoSeleccionService, private authService : AuthService,\n    public dataExporter: DataExporter, private translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.llaveEtapa = null;\n    this.llaveEvaluacion = null;\n    this.nombreArchivo = this.translateService.instant('listado') + Constantes.ESPACIO_BLANCO + this.translateService.instant('calificacion');\n    this.formatoFecha = 'dd/MM/yyyy';\n    this.cargarFormulario();\n    this.cargarListas();\n  }\n\n  cargarFormulario(){\n    this.formImportarCalificacion = this.formBuilder.group({\n      llaveEtapa: new FormControl(null),\n      evaluacion: new FormControl(null),\n      separador: new FormControl(null),\n    });\n  }\n\n  async cargarListas(){\n    this.extensionesPermitidas = ['txt', 'TXT'];\n    this.listaSeparadores = this.separadorArchivoPlanoPipe.SEPARADOR_ARCHIVOPLANO;\n    this.listaEtapa = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'nombreEtapa', new GeneralModel('EtapaProcesoDTO', null, false,\n      { individual : 'W', origen : Constantes.CONSTANTE_SI, tipoEtapa : 'citacion', procesoSeleccion : this.proceso.llaveTabla }));\n  }\n\n  async cambioEtapa(event){\n    if(event != null){\n      this.llaveEtapa = event.value;\n      this.listaEvaluaciones = [];\n      let objEtapaProceso = await this.generalService.queryForObject(new GeneralModel('EtapaProcesoDTO', null, false, {llaveTabla : event.value})).toPromise();\n      if(objEtapaProceso != null){\n        let objParametros : ParametrosGeneralModel = new ParametrosGeneralModel(\n          'EntrevistaPruebaDTO', null, null, {llaveTipoActividad: objEtapaProceso.tipoActividad}, null);\n        let listaEntrevista : EntrevistaPruebaModel [] = [] ;\n        let data = await this.tipoActividadService.obtenerEntrevistaPrueba(objParametros).toPromise();\n        if(data?.resultado){\n          listaEntrevista = data.resultado;\n          if(0 < listaEntrevista.length){\n            listaEntrevista.forEach(entrevista => {\n              this.listaEvaluaciones.push({key : entrevista.llaveTabla, label : entrevista.descripcion});\n            });\n          }\n        }\n      }\n    }\n  }\n\n  cambioEvaluacion(event){\n    if(event != null){\n      this.llaveEvaluacion = event.value;\n    }\n  }\n\n  cambioSeparador(event){\n    if(event != null){\n      this.separador = event.value;\n    }\n  }\n\n  cargarArchivo(data: any, fubauto) {\n\t\tthis.archivoSeleccionado = data.files[0];\n\t\tthis.readFile(this.archivoSeleccionado);\n\t\tthis.notificacionesService.showSuccess('Se cargó el documento con éxito');\n\t\tfubauto.clear();\n  }\n\n  private readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n    this.procesoSeleccionService.cargarArchivoPlano(file, this.authService.getTokenKey('usuario')).subscribe({\n      next: data => {\n        if (data.type === HttpEventType.Response) {\n          let response: any = data.body;\n          if(response?.resultado){\n            this.informacionArchivo = response.resultado;\n          }\n        }\n              },\n      error: err => {\n        console.log(err)\n      }\n    })\n\t}\n\n  regresarVista(){\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n  async importarCalificacion(){\n    this.listaWrapper = [];\n    let objParametros : ParametrosGeneralModel = new ParametrosGeneralModel(\n      'InformacionArchivo', null, null, {llaveProceso: this.proceso.llaveTabla, llaveEtapa : this.llaveEtapa,\n      login : this.authService.getTokenKey('usuario'), separador : this.separador, llaveEvaluacion : this.llaveEvaluacion, file: this.informacionArchivo.file,\n      fileName : this.informacionArchivo.fileName,  contentType : this.informacionArchivo.contentType, mensaje : this.informacionArchivo.mensaje }, null);\n    let data = await this.procesoSeleccionService.importarCalificacion(objParametros).toPromise();\n    if(data?.resultado){\n      this.listaWrapper = data.resultado;\n    }\n  }\n\n  exportarExcel() {\n    const customMapper = (data: any[]) => {\n      return data.map(item => {\n        return {\n          identificacion: item.unionDTO.identifica,\n          nombre: item.unionDTO.nombreCompleto,\n          puntaje: item.unionDTO.puntaje,\n          observacion: item.unionDTO.observacion,\n          mensaje: item.valor,\n        };\n      });\n    };\n    this.dataExporter.exportExcelColumnas(customMapper(this.listaWrapper), this.nombreArchivo, this.columnasExportExcel);\n  }\n\n\n}\n","<p-dialog header=\"{{'importar' | translate}} {{'calificacion' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '54vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <form [formGroup]=\"formImportarCalificacion\" #formulario=\"ngForm\">\n      <div class=\"field col-12 md:col-12 lg:col-12\">\n        <div class=\"Inputgroup\">\n          <div class=\"p-fluid p-formgrid grid\">\n\n            <!-- ETAPA -->\n            <div class=\"field col-6 md:col-12 lg:col-4\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"llaveEtapa\" [options]=\"listaEtapa\" formControlName=\"llaveEtapa\" optionValue=\"key\" optionLabel=\"label\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\" (onChange)=\"cambioEtapa($event)\" required></p-dropdown>\n                <label htmlFor=\"llaveEtapa\">{{'etapa' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- EVALUACIÓN -->\n            <div class=\"field col-6 md:col-12 lg:col-4\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"evaluacion\" [options]=\"listaEvaluaciones\" formControlName=\"evaluacion\" optionValue=\"key\" optionLabel=\"label\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\" (onChange)=\"cambioEvaluacion($event)\" required></p-dropdown>\n                <label htmlFor=\"evaluacion\">{{'evaluacion' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- ADJUNTAR ARCHIVO-->\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n              <p-fileUpload #fubauto chooseLabel=\"{{'cargar' | translate}}\" mode=\"basic\" [customUpload]=\"true\"\n                  accept=\".txt,.TXT\"\n                  chooseIcon=\"pi pi-paperclip\"\n                  (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n            </div>\n\n            <!-- CARACTER SEPARADOR -->\n            <div class=\"field col-6 md:col-12 lg:col-4\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"separador\" [options]=\"listaSeparadores\" formControlName=\"separador\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\" (onChange)=\"cambioSeparador($event)\" required></p-dropdown>\n                <label htmlFor=\"separador\">{{'caracterseparador' | translate}} *</label>\n              </span>\n            </div>\n\n          </div>\n        </div>\n      </div>\n    </form>\n    <div>\n      <div class=\"flex justify-content-end mt-3 mb-2\">\n        <button pButton pRipple class=\"mr-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\" (click)=\"importarCalificacion()\"\n          label=\"{{'link_importar' | translate}}\"></button>\n        <button type=\"button\" pButton pRipple icon=\"pi pi-file-excel\" (click)=\"exportarExcel()\" *ngIf=\"0 < listaWrapper.length\"\n          class=\"p-button-outlined p-button-export background-100 w-auto\" pTooltip=\"XLS\" tooltipPosition=\"bottom\"></button>\n      </div>\n      <p-table #tablaGeneral id=\"tabla_calificacion\" [value]=\"listaWrapper\" responsiveLayout=\"scroll\"\n        [rows]=\"10\" [paginator]=\"listaWrapper.length > 10\" scrollDirection=\"horizontal\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        styleClass=\"p-datatable-striped\" [totalRecords]=\"listaWrapper.length\" [scrollable]=\"true\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'54rem'}\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n        <ng-template pTemplate=\"header\">\n          <tr>\n            <th style=\"width: 25%;\">{{'identificacion' | translate}}</th>\n            <th style=\"width: 15%;\">{{'nombre' | translate}}</th>\n            <th style=\"width: 10%;\">{{'puntaje' | translate}}</th>\n            <th style=\"width: 20%;\">{{'observacion' | translate}}</th>\n            <th style=\"width: 30%;\">{{'mensaje' | translate}}</th>\n          </tr>\n          <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-registro>\n          <tr [pSelectableRow]=\"registro\">\n            <td style=\"width: 25%;\">{{registro.unionDTO.identifica}}</td>\n            <td style=\"width: 15%;\">{{registro.unionDTO.nombreCompleto}}</td>\n            <td style=\"width: 10%;\">{{registro.unionDTO.puntaje}}</td>\n            <td style=\"width: 20%;\">{{registro.unionDTO.observacion}}</td>\n            <td style=\"width: 30%;\">{{registro.valor}}</td>\n          </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>      </p-table>\n    </div>\n</p-dialog>\n<p-confirmPopup></p-confirmPopup>\n","import { UnionModel } from \"general-library-union\";\n\nexport class SeleccionableWrapper{\n\n    seleccionar:boolean;\n\thabilitar:boolean;\n\tvalor:string;\n\tlabel:string;\n\tcolor:string;\n\tfecha:string;\n\n\tlista?: []\n  objeto?: any;\n  unionDTO : UnionModel;\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { EtapaProcesoModel } from '../../models/EtapaProcesoModel';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { GeneralService, GeneralModel, ToastService, CargarControlFuncionalidadService } from 'general-library-union';\nimport { TipoActividadModel } from '../../../../modules/capacitacion/models/TipoActividadModel';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { EntrevistaPruebaModel } from '../../models/EntrevistaPruebaModel';\nimport { GestionPeriodoModel } from '../../models/GestionPeriodoModel';\nimport { SeleccionableWrapper } from '../../../../modules/compensacion/models/SeleccionableWrapperModel';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { EvaluacionesPipe } from '../../pipes/evaluaciones.pipe';\nimport { RequerimientoPersonalModel } from '../../models/RequerimientoPersonalModel';\nimport { TerceroTalentoModel } from '../../../../modules/bienestar/models/TerceroTalentoModel';\nimport { CandidatoModel } from '../../models/CandidatoModel';\nimport { WorkflowPipe } from '../../../../shared/pipes/workflow.pipe';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputHelperHojaVidaComponent } from '../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n  selector: 'app-popup-citacion',\n  templateUrl: './popup-citacion.component.html',\n  styleUrls: ['./popup-citacion.component.scss'],\n  standalone: true,\n  imports: [DialogModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule,\n    CalendarModule, DropdownModule, InputHelperHojaVidaComponent, CheckboxModule, InputTextareaModule, InputTextModule,\n    DatePipe, TranslateModule]\n})\nexport class PopupCitacionComponent implements OnInit {\n\n  @ViewChild('formCitacion', { static: false }) formCitacion!: NgForm;\n  @Input() requerimiento: RequerimientoPersonalModel;\n  @Input() procesoSeleccion: string;\n  @Input() showDialog: boolean;\n  @Input() porJurados: boolean;\n  @Output() public regresar = new EventEmitter;\n\n  public listaEtapas: EtapaProcesoModel[] = [];\n  public ventana: EntrevistaPruebaModel[] = [];\n  public listaEvaluadores: TerceroTalentoModel[] = [];\n  public lstEntrevistaPrueba: EntrevistaPruebaModel[] = [];\n  public candidatos: CandidatoModel[] = [];\n  public herramientas: SeleccionableWrapper;\n  public listaCandidatosWrapper: SeleccionableWrapper[] = [];\n  public etapa: EtapaProcesoModel;\n  public etapaProceso: EtapaProcesoModel;\n  public tipoActividad: TipoActividadModel;\n  public entrevistaPrueba: EntrevistaPruebaModel;\n  public estadoCandidatos: string;\n  public correoOpcional: string;\n  public estadoProceso: string;\n  public hayRequerimiento: boolean;\n  public etapa1: boolean;\n  public etapa2: boolean;\n  public etapa3: boolean;\n  public enganche: boolean;\n  public accion: string;\n  public clickContinuar: boolean;\n\n  listaHr: any;\n  listaMin: any;\n  listaJornada: any;\n  listaAccion: any;\n  listaProceso: any;\n  puestosTrabajo: any;\n  header: string;\n  paginatorEtapas = { rows: 10, totalRecords: 0 };\n  paginatorCandidatos = { rows: 10, totalRecords: 0 };\n\n  constructor(private generalService: GeneralService, private listaConstantesPipe: ListaConstantesPipe, private translateService: TranslateService,\n    private evaluacionesPipe: EvaluacionesPipe, private formBuilder: FormBuilder, private notificacionesService: ToastService, private workflowPipe: WorkflowPipe,\n    private controlFuncionalidad: CargarControlFuncionalidadService) { }\n\n  ngOnInit(): void {\n    this.header = this.translateService.instant('citacion');\n    this.etapa = new EtapaProcesoModel();\n    this.tipoActividad = new TipoActividadModel();\n    this.etapa1 = true;\n    this.etapa2 = false;\n    this.etapa3 = false;\n    this.clickContinuar = false;\n    this.estadoProceso = this.listaConstantesPipe.PROCESO;\n\n  }\n\n  async cargar() {\n    await this.cargarDatos();\n    await this.cargarListasTiempos();\n    this.hayRequerimiento = this.requerimiento != null;\n  }\n\n\n  async cargarListaEtapas(event) {\n    let objFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      origen: Constantes.CONSTANTE_SI,\n      procesoSeleccion: this.procesoSeleccion,\n      esEtapaProceso: Constantes.CONSTANTE_SI,\n      tipoEtapa: 'citacion'\n    };\n    let objEtapa = new GeneralModel('EtapaProcesoDTO', null, false, objFiltro);\n    this.listaEtapas = await this.generalService.queryForList(objEtapa).toPromise();\n    this.paginatorEtapas.totalRecords = await this.generalService.cantidadRegistros(objEtapa).toPromise();\n    this.estadoCandidatos = this.listaConstantesPipe.TODOS;\n  }\n\n  async verEtapa(event) {\n    this.tipoActividad = new TipoActividadModel();\n    if (event?.data) {\n      this.etapa = event.data;\n      this.header = this.translateService.instant('citacion') + Constantes.ESPACIO_BLANCO + this.etapa.nombreEtapa;\n      this.etapa1 = false;\n      this.etapa2 = true;\n      this.etapa3 = false;\n      let objEtapa = new GeneralModel('TipoActividadDTO', null, false, { llaveTabla: this.etapa.tipoActividad, origen: Constantes.CONSTANTE_SI });\n      this.tipoActividad = await this.generalService.queryForObject(objEtapa).toPromise();\n      if (this.tipoActividad.medio == null || this.listaConstantesPipe.NO_APLICA_MEDIO == this.tipoActividad.medio.trim()) {\n        return;\n      }\n      if (this.listaConstantesPipe.UNICO_MEDIO == this.tipoActividad.medio.trim() || this.listaConstantesPipe.MULTIPLES_MEDIO == this.tipoActividad.medio.trim()) {\n        this.cargarMedios1({ first: 0, rows: 10 });\n      } else if (this.listaConstantesPipe.HERRAMIENTA == this.tipoActividad.medio.trim()) {\n        this.cargarHerramientas();\n      }\n    }\n  }\n\n  async cargarDatos() {\n    if (this.porJurados) {\n      let objEvaluador = new GeneralModel('TerceroTalentoDTO', null, false, { origen: 'PROCESOSELEC_PRS', llaveBase: this.procesoSeleccion });\n      this.listaEvaluadores = await this.generalService.queryForList(objEvaluador).toPromise();\n    } else {\n      this.listaEvaluadores = [];\n    }\n    let objCandidato = new GeneralModel('CandidatoDTO', null, false, { procesoseleccion: this.procesoSeleccion });\n    let cantidad = await this.generalService.cantidadRegistros(objCandidato).toPromise();\n    if (0 == cantidad) {\n      this.notificacionesService.showError('No existen candidatos asociados al proceso de seleccion');\n      this.regresarVista();\n      return;\n    }\n    this.listaAccion = this.listaConstantesPipe.ACCIONETAPAPROCESO;\n    this.listaProceso = this.listaConstantesPipe.PROCESOETAPAPROCESO;\n    this.accion = this.listaConstantesPipe.REGISTRARCITACION;\n    this.etapa1 = true;\n    this.etapa2 = false;\n    this.etapa3 = false;\n    this.etapaProceso = new EtapaProcesoModel();\n    this.etapaProceso.citacion = new Date();\n    if (this.requerimiento != null) {\n      let objHojaVida = new GeneralModel('HojaVidaDTO', null, false, { identifica: this.requerimiento.requerimientoSolicita });\n      let hojaVida = await this.generalService.queryForObject(objHojaVida).toPromise();\n      if (hojaVida != null && hojaVida.identifica != null) {\n        this.etapaProceso.responsable = hojaVida.identifica;\n        this.etapaProceso.responsableNombre = hojaVida.nombreCompleto;\n      }\n      let objrequerimiento = new GeneralModel('PuestoRequerimientoDTO', null, false, { requerimiento: this.requerimiento.llaveTabla });\n      let puestosRequerimiento = await this.generalService.queryForList(objrequerimiento).toPromise();\n      if (0 < puestosRequerimiento.length) {\n        puestosRequerimiento.forEach(objeto => {\n          this.puestosTrabajo.push({ key: objeto.puesto, label: objeto.nombreUnidad + Constantes.LINEA_GUION + objeto.nombreCargo + Constantes.LINEA_GUION + objeto.codigoPuesto });\n        });\n      }\n    }\n  }\n\n  async cargarMedios1(event) {\n    let objFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      llave: this.listaConstantesPipe.UNICO_MEDIO == this.tipoActividad.medio.trim() ? this.tipoActividad.entrevistaPrueba : null,\n      procesoSeleccion: this.listaConstantesPipe.UNICO_MEDIO != this.tipoActividad.medio.trim() ? this.procesoSeleccion : null,\n      etapa: this.listaConstantesPipe.UNICO_MEDIO != this.tipoActividad.medio.trim() ? this.etapa.tipoActividad : null,\n    };\n    if (this.listaConstantesPipe.UNICO_MEDIO == this.tipoActividad.medio.trim()) {\n      let objEtapa = new GeneralModel('EntrevistaPruebaDTO', null, false, objFiltro);\n      this.ventana = await this.generalService.queryForList(objEtapa).toPromise();\n    } else if (this.listaConstantesPipe.MULTIPLES_MEDIO == this.tipoActividad.medio.trim()) {\n      let objEtapa = new GeneralModel('EntrevistaPruebaDTO', 'EntrevistaPrueba.consultaEntrevistaProcesoSeleccion', false, objFiltro);\n      this.ventana = await this.generalService.queryForList(objEtapa).toPromise();\n    }\n  }\n\n  async cargarHerramientas() {\n    let gestionPeriodo: GestionPeriodoModel = new GestionPeriodoModel();\n    let objGestionPeriodo = new GeneralModel('GestionPeriodoDTO', null, false, { llaveGestionPeriodo: String(this.tipoActividad.gestionPeriodo) });\n    gestionPeriodo = await this.generalService.queryForObject(objGestionPeriodo).toPromise();\n    let wrapper: SeleccionableWrapper = new SeleccionableWrapper();\n    wrapper.objeto = gestionPeriodo;\n    wrapper.seleccionar = true;\n    this.herramientas = new SeleccionableWrapper();\n    this.herramientas = wrapper;\n  }\n\n  onSelectResponsable(event) {\n    this.etapaProceso.documento = event.documento;\n    this.etapaProceso.responsableNombre = event.nombreCompleto;\n  }\n\n  async continuar() {\n    this.clickContinuar = true;\n    if (this.formCitacion.valid) {\n      this.lstEntrevistaPrueba = [];\n      let seleccionados: number = 0;\n      if (this.ventana != null) {\n        this.ventana.forEach(objeto => {\n          if (objeto.check) {\n            this.lstEntrevistaPrueba.push(objeto);\n          }\n        });\n      }\n\n      if (0 < this.lstEntrevistaPrueba.length && this.tipoActividad.medio != null && this.listaConstantesPipe.NO_APLICA_MEDIO != this.tipoActividad.medio\n        && this.listaConstantesPipe.HERRAMIENTA != this.tipoActividad.medio) {\n        this.lstEntrevistaPrueba.forEach(item => {\n          this.entrevistaPrueba = new EntrevistaPruebaModel();\n          this.entrevistaPrueba = item;\n          seleccionados = seleccionados + 1;\n        });\n        if (0 == seleccionados) {\n          this.notificacionesService.showError('Usted no ha selecionado el medio a aplicar');\n          return;\n        }\n      }\n\n      this.etapa1 = false;\n      this.etapa2 = false;\n      this.etapa3 = true;\n      this.enganche = false;\n      if (this.listaConstantesPipe.ENGANCHE.toUpperCase() == this.tipoActividad.etapa.toUpperCase()) {\n        this.cargarCandidatosEnganche();\n      } else {\n        this.estadoProceso = this.listaConstantesPipe.PROCESO;\n        this.cargarCandidatos({ first: 0, rows: 10 });\n      }\n    } else {\n      this.notificacionesService.showError('Faltan campos obligatorios');\n      Object.keys(this.formCitacion.controls).forEach((key) => {\n        if (this.formCitacion.controls[key].invalid) {\n          this.formCitacion.controls[key].markAsDirty();\n        }\n      });\n    }\n\n  }\n\n  cargarCandidatosEnganche() {\n    this.enganche = true;\n    this.cargarCandidatos({ first: 0, rows: 10 });\n  }\n\n  async cargarCandidatos(event) {\n    this.candidatos = [];\n    this.listaCandidatosWrapper = [];\n    let estado: string;\n    if (this.enganche) {\n      this.estadoCandidatos = this.listaConstantesPipe.ENGANCHE;\n    } else {\n      estado = 'T' == this.estadoCandidatos ? null : this.estadoCandidatos;\n    }\n    let objFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      procesoseleccion: this.procesoSeleccion,\n      estado: estado,\n      consultaEtapa: this.tipoActividad.llaveTabla,\n      consultaMedio: this.entrevistaPrueba?.llaveTabla != null ? this.entrevistaPrueba.llaveTabla : null\n    };\n    let objCandidato = new GeneralModel('CandidatoDTO', 'Candidato.consultarCandidatoCitacion', false, objFiltro);\n    this.candidatos = await this.generalService.queryForList(objCandidato).toPromise();\n    let objTotalCandidato = new GeneralModel('CandidatoDTO', null, false, objFiltro);\n    this.paginatorCandidatos.totalRecords = await this.generalService.cantidadRegistros(objTotalCandidato).toPromise();\n    if (0 < this.candidatos.length) {\n      this.candidatos.forEach(candidato => {\n        let objWrapper: SeleccionableWrapper = new SeleccionableWrapper();\n        objWrapper.objeto = candidato;\n        objWrapper.habilitar = candidato.fechaCitacion == null ? true : false;\n        this.listaCandidatosWrapper.push(objWrapper);\n      });\n    } else {\n      this.notificacionesService.showError('No existen candidatos para este estado');\n    }\n  }\n\n  cambioProceso(event) {\n    if (event != null) {\n      this.estadoProceso = event.value;\n      this.cargarListaCandidatos(this.estadoProceso);\n    }\n  }\n\n  cargarListaCandidatos(estado: string) {\n    this.estadoCandidatos = estado;\n    this.cargarCandidatos({ first: 0, rows: 10 });\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  isAsignarFecha(): boolean {\n    return this.tipoActividad != null && this.evaluacionesPipe.CITAR_DESDE_PROCESO == this.tipoActividad.asignarFecha;\n  }\n\n  isVerPuestoTrabajo(): boolean {\n    if (this.tipoActividad == null) {\n      return false;\n    }\n    if (this.tipoActividad.etapa == null || !this.isEtapaEnganche()) {\n      return false;\n    }\n    return !((this.requerimiento == null)\n      || (this.requerimiento != null && this.requerimiento.cantidad != null && this.requerimiento.cantidad == 1)\n      || (this.requerimiento != null && this.requerimiento.puestoTrabajo != null));\n  }\n\n  isEtapaEnganche(): boolean {\n    if (this.tipoActividad == null) {\n      return false;\n    }\n    if (this.workflowPipe.ENGANCHE == this.tipoActividad.etapa) {\n      return true;\n    }\n    return false;\n  }\n\n  regresarAnterior() {\n    if (this.etapa2) {\n      this.etapa1 = true;\n      this.etapa2 = false;\n      this.etapa3 = false;\n    } else {\n      this.etapa1 = false;\n      this.etapa2 = true;\n      this.etapa3 = false;\n    }\n  }\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  citacionCorreo() {\n\n    let mensajeCorreo: string;\n    if (this.isAsignarFecha()) {\n      if (new Date() > this.etapaProceso.fechaInicial) {\n        mensajeCorreo = '. No se env' + Constantes.I_TILDE_MIN\n          + 'a correo por que la fecha de citaci' + Constantes.O_TIDLE_MIN\n          + 'n es anterior a la fecha actual';\n      }\n    }\n    let listaCandidatosSel: CandidatoModel [] = [];\n    this.listaCandidatosWrapper.forEach(candidato => {\n      if (candidato.objeto.check) {\n        listaCandidatosSel.push(candidato.objeto);\n      }\n    });\n\n    if (0 == listaCandidatosSel.length) {\n      this.notificacionesService.showError('Por favor seleccione los candidatos a los que desea citar');\n      return;\n    }\n\n    if(this.hayRequerimiento && this.requerimiento != null){\n      if(this.requerimiento.cantidad != null && 1 == this.requerimiento.cantidad){\n        if(1 < listaCandidatosSel.length && this.isEtapaEnganche()){\n          this.notificacionesService.showError('Solo puede seleccionar un registro para este proceso de seleccion');\n          return;\n        }\n      }\n    } else {\n      if(!this.validarPuestos(listaCandidatosSel)){\n        this.notificacionesService.showError('Por favor asigne puesto de trabajo a todos los registros seleccionados');\n        return;\n      }\n    }\n  }\n\n  validarPuestos(listaCandidatosSel : CandidatoModel[]){\n    if(!this.isVerPuestoTrabajo()){\n      return true;\n    }\n    for(let candidato of listaCandidatosSel){\n      if(candidato?.puestoTrabajo){\n        return false;\n      }\n    }\n    return true;\n  }\n\n  cargarListasTiempos() {\n    this.listaHr = [];\n    this.listaMin = [];\n    this.listaJornada = [];\n    for (let i = 1; i <= 12; i++) {\n      this.listaHr.push({ label: i < 10 ? '0' + i : i, value: i });\n    }\n    for (let i = 0; i < 60; i += 15) {\n      const valor = i < 10 ? `0${i}` : `${i}`;\n      this.listaMin.push({ key: valor, label: valor });\n    }\n    this.listaJornada.push({ key: 'AM', label: 'AM' });\n    this.listaJornada.push({ key: 'PM', label: 'PM' });\n  }\n\n\n}\n","<p-dialog [header]=\"header\" [(visible)]=\"showDialog\" [style]=\"{width: '48vw'}\" (onHide)=\"regresarVista()\" [modal]=\"true\"\n  [draggable]=\"false\" [resizable]=\"false\">\n\n  <div class=\"flex justify-content-end mb-2\" *ngIf=\"etapa2 || etapa3\">\n    <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarAnterior()\" icon=\"pi pi-chevron-left\"\n      class=\"p-button-text font-semibold\">\n    </button>\n  </div>\n\n  <div *ngIf=\"etapa1\">\n    <p-table #tablaEtapas [value]=\"listaEtapas\" selectionMode=\"single\" [rows]=\"10\"\n      [paginator]=\"paginatorEtapas.totalRecords > 10\" [totalRecords]=\"paginatorEtapas.totalRecords\"\n      [tableStyle]=\"{'min-width':'40rem'}\" [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[10,20,50]\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\"\n      (onRowSelect)=\"verEtapa($event)\" (onLazyLoad)=\"cargarListaEtapas($event)\" [lazy]=\"true\">\n      <ng-template pTemplate=\"header\">\n        <tr style=\"width: 100%;\">\n          <th style=\"width: 100%;\">{{ 'etapa' | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-etapa>\n        <tr [pSelectableRow]=\"etapa\">\n          <td>{{etapa.nombreEtapa}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n  </div>\n\n  <div *ngIf=\"etapa2\">\n    <form #formCitacion=\"ngForm\">\n      <div class=\"field col-12 md:col-12 lg:col-12\">\n        <div class=\"p-fluid p-formgrid grid\">\n\n          <!-- FECHA -->\n          <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"isAsignarFecha()\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"fechaInicial\" dateFormat=\"dd/mm/yy\" name=\"fechaInicial\"\n                [(ngModel)]=\"etapaProceso.fechaInicial\" appendTo=\"body\" [showIcon]=\"true\" [showTime]=\"true\"\n                [stepMinute]=\"15\" required></p-calendar>\n              <label for=\"fechaInicial\">{{'fecha' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- HORA \n          <div class=\"field col-12 md:col-2 lg:col-2\">\n            <span class=\"p-float-label\">\n              <p-dropdown id=\"hr\" [options]=\"listaHr\" optionValue=\"key\" optionLabel=\"label\" formControlName=\"hr\"\n                [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n              <label for=\"hr\">{{'hora' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field col-12 md:col-2 lg:col-2\">\n            <span class=\"p-float-label\">\n              <p-dropdown id=\"min\" [options]=\"listaMin\" optionValue=\"key\" optionLabel=\"label\" formControlName=\"min\"\n                [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n              <label for=\"min\">{{'minutos' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field col-12 md:col-2 lg:col-2\">\n            <span class=\"p-float-label\">\n              <p-dropdown id=\"jornada\" [options]=\"listaJornada\" optionValue=\"key\" optionLabel=\"label\"\n                formControlName=\"jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n              <label for=\"jornada\">{{'jornada' | translate}}</label>\n            </span>\n          </div> -->\n\n          <!-- RESPONSABLE -->\n          <div class=\"field col-12 md:col-8 lg:col-8\" *ngIf=\"!porJurados\">\n            <app-input-helper-hoja-vida header=\"{{'responsable' | translate}} *\" id=\"responsableNombre\"\n              name=\"responsableNombre\" [(ngModel)]=\"etapaProceso.responsableNombre\"\n              [label]=\"etapaProceso.responsableNombre != null ? etapaProceso.responsableNombre : ''\"\n              [booleano]=\"etapaProceso.responsableNombre == null && clickContinuar\" [ocultarBtnLimpiar]=\"false\"\n              (onSelected)=\"onSelectResponsable($event)\">\n            </app-input-helper-hoja-vida>\n          </div>\n        </div>\n\n        <p-table #tablaEvaluadores *ngIf=\"porJurados\" [value]=\"listaEvaluadores\" [rows]=\"3\"\n          [paginator]=\"listaEvaluadores.length > 3\" [totalRecords]=\"listaEvaluadores.length\"\n          [tableStyle]=\"{'min-width':'40rem'}\" [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[10,20,50]\"\n          currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\">\n          <ng-template pTemplate=\"header\">\n            <tr style=\"width: 100%;\">\n              <th style=\"width: 30%;\"></th>\n              <th style=\"width: 25%;\">{{ 'identifica' | translate }}</th>\n              <th style=\"width: 45%;\">{{ 'nombre' | translate }}</th>\n            </tr>\n          </ng-template>\n          <ng-template pTemplate=\"body\" let-jurado>\n            <tr [pSelectableRow]=\"jurado\">\n              <td style=\"width: 30%;\">\n                <div class=\"field-checkbox\">\n                  <p-checkbox [binary]=\"true\">\n                  </p-checkbox>\n                </div>\n              </td>\n              <td style=\"width: 25%;\">{{jurado.identifica}}</td>\n              <td style=\"width: 45%;\">{{jurado.nombreIdentifica}}</td>\n            </tr>\n          </ng-template>\n          <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n\n        <!-- OBSERVACIÓN  -->\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n          <span class=\"p-float-label\">\n            <textarea id=\"observacion\" rows=\"2\" pInputTextarea name=\"observacion\" [(ngModel)]=\"etapaProceso.observacion\"\n              maxlength=\"200\"\n              class=\"p-inputtextarea p-inputtext p-component p-element min-h-50 max-h-100 w-full\"></textarea>\n            <label for=\"observacion\">{{'observacion' | translate}}</label>\n          </span>\n        </div>\n      </div>\n    </form>\n    <p-table #tablaMedios [value]=\"ventana\" [rows]=\"10\" [paginator]=\"ventana.length > 10\"\n      [totalRecords]=\"ventana.length\" [tableStyle]=\"{'min-width':'40rem'}\" [showCurrentPageReport]=\"true\"\n      [rowsPerPageOptions]=\"[10,20,50]\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped\">\n      <ng-template pTemplate=\"header\">\n        <tr style=\"width: 100%;\">\n          <th style=\"width: 90%;\">{{ 'medio' | translate }}</th>\n          <th style=\"width: 10%;\"></th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-medio>\n        <tr [pSelectableRow]=\"medio\">\n          <td style=\"width: 90%;\">{{medio.descripcion}}</td>\n          <td style=\"width: 10%;\">\n            <div class=\"field-checkbox\">\n              <p-checkbox [binary]=\"true\" [(ngModel)]=\"medio.check\">\n              </p-checkbox>\n            </div>\n          </td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n  </div>\n  <div *ngIf=\"etapa3\">\n    <!-- PROCESO -->\n    <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"!enganche\">\n      <span class=\"p-float-label\">\n        <p-dropdown id=\"proceso\" [options]=\"listaProceso\" optionValue=\"codigo\" optionLabel=\"nombre\"\n          [(ngModel)]=\"estadoCandidatos\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n          (onChange)=\"cambioProceso($event)\"></p-dropdown>\n        <label for=\"proceso\">{{'proceso' | translate}}</label>\n      </span>\n    </div>\n    <p-table #tablaCandidatos [value]=\"listaCandidatosWrapper\" [rows]=\"4\"\n      [paginator]=\"paginatorCandidatos.totalRecords > 4\" [totalRecords]=\"paginatorCandidatos.totalRecords\"\n      [tableStyle]=\"{'min-width':'40rem'}\" [showCurrentPageReport]=\"true\" [rowsPerPageOptions]=\"[10,20,50]\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\">\n      <ng-template pTemplate=\"header\">\n        <tr style=\"width: 100%;\">\n          <th style=\"width: 20%;\"></th>\n          <th style=\"width: 20%;\">{{ 'identificacion' | translate }}</th>\n          <th style=\"width: 30%;\">{{ 'nombre' | translate }}</th>\n          <th style=\"width: 20%;\" *ngIf=\"isVerPuestoTrabajo()\">{{ 'puesto' | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-candidato>\n        <tr [pSelectableRow]=\"candidato\">\n          <td style=\"width: 20%;\">\n            <div class=\"field-checkbox\" *ngIf=\"candidato.habilitar\">\n              <p-checkbox [binary]=\"true\" [(ngModel)]=\"candidato.objeto.check\">\n              </p-checkbox>\n            </div>\n            {{candidato.objeto.fechaCitacion| date : ('formatofechahora' | translate)}}\n          </td>\n          <td style=\"width: 20%;\">{{candidato.objeto.documentoCandidato}}</td>\n          <td style=\"width: 30%;\">{{candidato.objeto.nombres}}</td>\n          <td style=\"width: 20%;\" *ngIf=\"isVerPuestoTrabajo()\">\n            <p-dropdown id=\"puesto\" class=\"dropdown-tabla\" [options]=\"puestosTrabajo\" optionLabel=\"label\"\n              appendTo=\"body\" [(ngModel)]=\"candidato.objeto.puestoTrabajo\" optionValue=\"key\" [autoDisplayFirst]=\"false\">\n            </p-dropdown>\n          </td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n    <!-- NOTIFICAR CITACIÓN -->\n    <div class=\"field col-12 md:col-12 lg:col-12 mt-3\">\n      <span class=\"p-float-label\">\n        <input pInputText id=\"notificacion\" [(ngModel)]=\"correoOpcional\" maxlength=\"50\">\n        <label for=\"notificacion\">{{'notificar' | translate}} {{'citacion' | translate}}</label>\n      </span>\n    </div>\n  </div>\n  <div class=\"flex justify-content-end\">\n    <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'link_continuar' | translate}}\" *ngIf=\"etapa2\"\n      (click)=\"continuar()\"><i class=\"glyphicons glyphicons-chevron-right\"></i></button>\n    <button pButton pRipple class=\"p-button-outlined\" icon=\"glyphicons glyphicons-file\"\n      *ngIf=\"etapa3 && validarControlFuncionalidad('procsel:nuevacit') && 0 < listaCandidatosWrapper.length\"\n      label=\"{{'link_generar' | translate}}\" (click)=\"citacionCorreo()\">\n    </button>\n  </div>\n\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralService, GeneralModel, ToastService } from 'general-library-union';\nimport { PlanillaModel } from '../../../../modules/compensacion/models/PlanillaModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-seleccion-reportes',\n    templateUrl: './popup-seleccion-reportes.component.html',\n    styleUrls: ['./popup-seleccion-reportes.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule]\n})\nexport class PopupSeleccionReportesComponent implements OnInit {\n\n  @Input() showDialog : boolean;\n  @Input() tipoPopup : string;\n  @Output() public regresar = new EventEmitter;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  public listaPlanilla: PlanillaModel [] = [];\n  paginator = {rows: 10, totalRecords:0};\n\n  constructor( private constantesPipe: ListaConstantesPipe, private generalService: GeneralService,\n    private notificacionesBusService: ToastService) { }\n\n  ngOnInit(): void {\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  onRowSelect(event) {\n    if(event?.data){\n      this.onSelected.emit(event.data);\n      this.showDialog = false;\n    }\n  }\n\n  async cargarLista(event){\n    let objFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      periodo: this.constantesPipe.IMPRESION_PERIODO,\n      tipo: this.tipoPopup,\n    };\n    let objPlanilla = new GeneralModel('PlanillaDTO', null, false, objFiltro);\n    this.listaPlanilla = await this.generalService.queryForList(objPlanilla).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(objPlanilla).toPromise();\n    if(this.listaPlanilla == null || this.listaPlanilla.length == 0) {\n      this.notificacionesBusService.showError('No se presentó plantillas relacionadas');\n    }\n  }\n\n  cerrarPopup(){\n    this.regresarVista();\n  }\n\n}\n","<p-dialog header=\"{{'perfil'| translate}} \" [(visible)]=\"showDialog\" [style]=\"{width: '42vw'}\"\n  (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n  <p-table #tablaGeneral [value]=\"listaPlanilla\" selectionMode=\"single\" [rows]=\"10\"\n    [paginator]=\"paginator.totalRecords > 10\" [totalRecords]=\"paginator.totalRecords\"\n    [tableStyle]=\"{'min-width':'36rem'}\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" styleClass=\"p-datatable-striped\"\n    (onRowSelect)=\"onRowSelect($event)\" (onLazyLoad)=\"cargarLista($event)\" [lazy]=\"true\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 100%;\">{{ 'descripcion' | translate }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-planilla>\n      <tr [pSelectableRow]=\"planilla\">\n        <td>{{planilla.descripcionPlanilla}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>\n","import { UnionModel } from 'general-library-union'\n\nexport class ReclamacionProcesoModel extends UnionModel {\n\n\tprocesoSeleccion: string;\n\tcandidato: string;\n\torigen: string;\n\tetapaProceso: string;\n\tdetalle: string;\n\testado: string;\n\tfechaRespuesta: Date;\n\trespuesta: string;\n\tusuarioRespuesta: string;\n\tfechaSolicitud: Date;\n\tdescripcionEtapa: string;\n\tnombreCandidato: string;\n\tradicado: string;\n\trutaSolicitud: string;\n\trutaReclama: string;\n\tnombreArchivo: string;\n\tprincipal: string;\n\n}","import { CommonModule, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ReclamacionProcesoModel } from '../../models/ReclamacionProcesoModel';\nimport { CandidatoModel } from '../../models/CandidatoModel';\nimport { AuthService, EncriptadoBasicoService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { firstValueFrom } from 'rxjs';\nimport { EtapaProcesoModel } from '../../models/EtapaProcesoModel';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { ArchivoModel } from '../../../hojavida/models/ArchivoModel';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { BeneficioService } from '../../../bienestar/services/beneficio.service';\nimport { InformacionArchivoModel } from '../../../bienestar/models/InformacionArchivoModel';\nimport { ProcesoSeleccionService } from '../../services/proceso-seleccion.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { ConfirmationService } from 'primeng/api';\n\n@Component({\n  selector: 'app-popup-reclamacion-proceso',\n  standalone: true,\n  imports: [ConfirmPopupModule,\n    DialogModule,\n    FormsModule,\n    CalendarModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    TranslateModule,\n    InputTextModule,\n    InputTextareaModule,\n    FileUploadModule,\n    CommonModule],\n  templateUrl: './popup-reclamacion-proceso.component.html',\n  styleUrl: './popup-reclamacion-proceso.component.scss'\n})\nexport class PopupReclamacionProcesoComponent implements OnInit {\n\n  @ViewChild('miFormulario', { static: false }) miFormulario!: NgForm;\n\n  @Output()\n  regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input()\n  showDialog: boolean = false;\n  reclamacion: ReclamacionProcesoModel;\n  respuesta: boolean;\n  candidato: CandidatoModel;\n  etapaReclamacion: EtapaProcesoModel;\n  archivoSolicitud: ArchivoModel;\n  archivoReclamacion: ArchivoModel;\n  archivoSeleccionadoAnexo: File;\n  caracteresMaximos = 4000;\n  caracteresRestantes = this.caracteresMaximos;\n  caracteresMaximosEmpleados = 4000;\n  caracteresRestantesEmpleados = this.caracteresMaximosEmpleados;\n\n  constructor(private generalService: GeneralService, private notificacionesBusService: ToastService, private generalPipe: GeneralPipe,\n    private cargarArchivoServices: CargarArchivosService, private authService: AuthService, private beneficioService: BeneficioService,\n    private procesoSeleccionService: ProcesoSeleccionService, private utilsServices: UtilsService, private encriptadoBasico: EncriptadoBasicoService,\n    private confirmationService: ConfirmationService) { }\n\n  ngOnInit(): void {\n    this.candidato = new CandidatoModel();\n    this.reclamacion = new ReclamacionProcesoModel();\n    this.archivoSolicitud = new ArchivoModel();\n    this.archivoReclamacion = new ArchivoModel();\n    this.etapaReclamacion = new EtapaProcesoModel();\n  }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  public openDialog() {\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsServices.calcularPosicionDialog(), 0);\n    }\n  }\n\n  async nuevaReclamacion(candidato: CandidatoModel, etapaProceso: EtapaProcesoModel) {\n\n    this.respuesta = false;\n    this.etapaReclamacion = etapaProceso;\n    this.candidato = candidato;\n    this.reclamacion = new ReclamacionProcesoModel();\n    this.reclamacion.candidato = candidato.llaveTabla;\n    this.reclamacion.estado = this.generalPipe.PROCESO;\n    this.reclamacion.etapaProceso = etapaProceso.llaveTabla;\n    this.reclamacion.procesoSeleccion = candidato.procesoseleccion;\n    this.reclamacion.origen = \"CANDIDATO_CAN\";\n\n    await this.inicializa();\n    this.actualizarContador();\n    this.actualizarContadorEmpleado();\n  }\n\n  async traerReclamacion(reclamacion: ReclamacionProcesoModel, respuesta: boolean) {\n\n    this.reclamacion = reclamacion;\n    this.respuesta = respuesta;\n\n    this.candidato = new CandidatoModel();\n    this.candidato.llaveTabla = this.reclamacion.candidato;\n\n    let objCandidato = new GeneralModel('CandidatoDTO', null, false, this.candidato);\n    this.candidato = await firstValueFrom(this.generalService.queryForObject(objCandidato));\n    this.etapaReclamacion = new EtapaProcesoModel();\n    this.etapaReclamacion.llaveTabla = this.reclamacion.etapaProceso;\n    let objFiltroEtapa = new GeneralModel('EtapaProcesoDTO', null, false, this.etapaReclamacion);\n    this.etapaReclamacion = await firstValueFrom(this.generalService.queryForObject(objFiltroEtapa));\n\n    if (this.candidato == null) {\n      this.ocultar();\n      this.notificacionesBusService.showWarning(\"Candidato no seleccionado\");\n      return;\n    }\n\n    await this.inicializa();\n\n    this.actualizarContador();\n    this.actualizarContadorEmpleado();\n  }\n\n\n  async inicializa() {\n    this.showDialog = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsServices.calcularPosicionDialog(), 0);\n    }\n    await this.traerArchivoAdjunto();\n  }\n\n  async traerArchivoAdjunto() {\n\n    this.archivoSolicitud = new ArchivoModel();\n    this.archivoReclamacion = new ArchivoModel();\n\n    if (this.reclamacion.llaveTabla == null) {\n      return;\n    }\n\n    let filtro = new ArchivoModel();\n    filtro.nombreTabla = \"RECLAMAPROCESOSEL_RPS\";\n    filtro.llaveTablaArchivo = this.reclamacion.llaveTabla;\n    let objFiltro = new GeneralModel('ArchivoDTO', null, false, filtro);\n    let lista = await firstValueFrom(this.generalService.queryForList(objFiltro));\n\n    if (lista.length == 0) {\n      return;\n    }\n\n    for (let archivoDTO of lista) {\n\n      if (\"RE\" == archivoDTO.tipoActo) {\n        this.archivoReclamacion = archivoDTO;\n      }\n      else {\n        this.archivoSolicitud = archivoDTO;\n      }\n\n      let objeto = (await this.cargarArchivoServices.getPropiedad({ propiedad: \"ruta_anexosHojaVida\", aplicacion: 1 }).toPromise());\n      let rutaArchivo = objeto.valor.valor\n      if (archivoDTO.llaveTabla != null) {\n        rutaArchivo = rutaArchivo + await this.getRutaFisica(archivoDTO.archivoorigen, archivoDTO.carpeta, archivoDTO.llaveTabla);\n      }\n      else if (archivoDTO.llaveTemporal != null) {\n        rutaArchivo = (await this.cargarArchivoServices.getPropiedad({ propiedad: \"ruta_temporal\", aplicacion: 0 }).toPromise()).valor;\n        rutaArchivo = rutaArchivo + await this.getRutaFisica(archivoDTO.archivoorigen, archivoDTO.carpeta, archivoDTO.llaveTabla);\n      } else {\n        continue;\n      }\n\n      archivoDTO.ruta = rutaArchivo;\n      archivoDTO.archivoorigen = archivoDTO.archivoorigen;\n      archivoDTO.archivoorigenencriptado = archivoDTO.archivoorigen;\n    }\n  }\n\n  async getRutaFisica(archivoOrigen: string, carpeta: string, llaveTabla: string): Promise<string> {\n\n    if (archivoOrigen === null) {\n      return null;\n    }\n\n    const indice = archivoOrigen.lastIndexOf('.');\n    let extension = 'pdf';\n\n    if (indice !== -1) {\n      extension = archivoOrigen.substring(indice + 1);\n    }\n\n    if (carpeta === null) {\n      return llaveTabla + '.' + extension;\n    } else {\n      return carpeta + llaveTabla + '.' + extension;\n    }\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n\n  guardar() {\n    this.confirmationService.confirm({\n      target: event.target,\n      key: 'confirmarReclamacion',\n      message: '¿Desea confirmar?',\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.setGuardar();\n      },\n      reject: () => { },\n    });\n  }\n\n  async setGuardar() {\n\n    if (this.miFormulario.valid) {\n\n      if (this.respuesta) {\n\n        if (!this.archivoReclamacion.archivoorigen) {\n          this.archivoReclamacion.descripcion = null;\n        }\n\n        this.archivoReclamacion.tipoActo = 'RE';\n        let data = await this.procesoSeleccionService.guardar(this.reclamacion, this.respuesta, this.archivoReclamacion, \"RECLAMAPROCESOSEL_RPS\", this.reclamacion.llaveTabla).toPromise();\n        this.archivoReclamacion = data?.body?.archivoReclamacion;\n      } else {\n\n        if (!this.archivoSolicitud.archivoorigen) {\n          this.archivoSolicitud.descripcion = null;\n        }\n\n        this.archivoSolicitud.tipoActo = 'SO';\n        let data = await this.procesoSeleccionService.guardar(this.reclamacion, false, this.archivoSolicitud, \"RECLAMAPROCESOSEL_RPS\", this.reclamacion.llaveTabla).toPromise();\n        this.archivoReclamacion = data?.body?.archivoReclamacion;\n      }\n\n    } else {\n\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      Object.keys(this.miFormulario.controls).forEach((key) => {\n        if (this.miFormulario.controls[key].invalid) {\n          this.miFormulario.controls[key].markAsDirty();\n        }\n      });\n    }\n\n    this.ocultar();\n  }\n\n  async cargarAnexo(event, fubauto) {\n\n    let unicoAdjunto = new ArchivoModel();\n\n    this.archivoSeleccionadoAnexo = event.files[0];\n\n    //Cargar Archivo Temporal\n    let resultado = await this.beneficioService.cargarDocumentoTemporal(this.archivoSeleccionadoAnexo).toPromise();\n\n    fubauto.clear();\n\n    if (resultado.body.mensaje) {\n      this.notificacionesBusService.showSuccess(resultado.body.mensaje);\n      return;\n    }\n\n    let informacionArchivo: InformacionArchivoModel = resultado.body.informacionArchivo ? resultado.body.informacionArchivo : null;\n\n    if (this.respuesta) {\n      unicoAdjunto = this.archivoReclamacion;\n    }\n    else {\n      unicoAdjunto = this.archivoSolicitud;\n    }\n\n    if (unicoAdjunto.llaveTabla == null) {\n\n      let data = await this.procesoSeleccionService.cargarDocumento(this.utilsServices.generarLlave(), true, null, informacionArchivo).toPromise();\n\n      if (data?.body?.respuestaWarning) {\n        this.notificacionesBusService.showWarning(data?.body?.respuestaWarning);\n        return;\n      }\n\n      this.setAdjunto(data?.body);\n    }\n    else {\n      let data = await this.procesoSeleccionService.cargarDocumento(unicoAdjunto.llaveTabla, false, unicoAdjunto.carpeta, informacionArchivo).toPromise();\n\n      if (data?.body?.respuestaWarning) {\n        this.notificacionesBusService.showWarning(data?.body?.respuestaWarning);\n        return;\n      }\n\n      this.setAdjunto(data?.body)\n    }\n\n    this.notificacionesBusService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n\n    //this.cargarCumplido();\n\n  }\n\n  setAdjunto(lista) {\n\n    if (lista == null || !lista?.nombreArchivoGuardar || !lista?.nombreArchivo) {\n      return;\n    }\n\n    let unicoAdjunto = new ArchivoModel();\n\n    if (this.respuesta) {\n      unicoAdjunto = this.archivoReclamacion;\n    }\n    else {\n      unicoAdjunto = this.archivoSolicitud;\n    }\n\n    unicoAdjunto.archivoorigen = lista.nombreArchivo;\n    if (unicoAdjunto.llaveTabla == null) {\n      unicoAdjunto.llaveTemporal = lista.nombreArchivoGuardar;\n    }\n    else {\n      let objFiltro = new GeneralModel('ArchivoDTO', null, false, unicoAdjunto);\n      this.generalService.update(objFiltro);\n    }\n\n  }\n\n  descargarAnexo(archivo: ArchivoModel) {\n\n    //Ruta archivo  \n    this.cargarArchivoServices.descargarArchivo(this.encriptadoBasico.encriptar(archivo.ruta), undefined, undefined).subscribe(blob => {\n      const a = document.createElement('a');\n      const objectUrl = URL.createObjectURL(blob);\n      a.href = objectUrl;\n      a.download = archivo.archivoorigen;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n\n  }\n\n  actualizarContador() {\n    this.caracteresRestantes = this.caracteresMaximos - (this.reclamacion.respuesta?.length || 0);\n  }\n\n  actualizarContadorEmpleado() {\n    this.caracteresRestantesEmpleados = this.caracteresMaximosEmpleados - (this.reclamacion.detalle?.length || 0);\n  }\n\n}\n","<p-confirmPopup key=\"confirmarReclamacion\"></p-confirmPopup>\n<p-dialog header=\"{{ 'reclamacion' | translate }}\" [(visible)]=\"showDialog\" (onHide)=\"ocultar()\"\n    (onShow)=\"openDialog()\" [modal]=\"true\"\n    [breakpoints]=\"{'1366px': '60vw', '1024px': '60vw','960px': '60vw', '640px': '60vw'}\" [style]=\"{ width: '40vw' }\">\n\n    <form #miFormulario=\"ngForm\">\n\n        <div class=\"mt-2\">\n            <h5><i class=\"glyphicons glyphicons-resize-small\"\n                    style=\"margin-top:-5px\"></i>{{etapaReclamacion.nombreEtapa}}</h5>\n        </div>\n\n        <!-- campos -->\n        <div class=\"p-fluid p-formgrid grid\">\n\n            <!-- NOMBRE CANDIDATO -->\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_nombres\" [(ngModel)]=\"candidato.nombres\" [disabled]=\"true\"\n                        [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_nombres\">{{'nombres' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- RESPUESTA EMPLEADO -->\n            <div class=\"field col-12 md:col-12\">\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea class=\"min-h-100 max-h-100 w-full\" rows=\"4\" cols=\"40\"\n                        [(ngModel)]=\"reclamacion.detalle\" maxlength=\"4000\" [required]=\"true\"\n                        [disabled]=\"respuesta || reclamacion.estado == 'C'\" name=\"detalle\"\n                        (input)=\"actualizarContadorEmpleado()\"></textarea>\n                    <label htmlFor=\"motivo\">{{'motivo' | translate}} *</label>\n                </span>\n                <small class=\"contador\">Cantidad Caracteres: {{ caracteresRestantesEmpleados }}</small>\n            </div>\n\n            <!-- NOMBRE ADJUNTO -->\n            <div class=\"field col-12\"\n                [ngClass]=\"{ 'md:col-5': (archivoSolicitud.ruta || (!respuesta && reclamacion.estado != 'C')), 'md:col-6': !(archivoSolicitud.ruta || (!respuesta && reclamacion.estado != 'C')) }\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_descripcion\" [(ngModel)]=\"archivoSolicitud.descripcion\"\n                        [disabled]=\"respuesta || reclamacion.estado == 'C'\" [required]=\"archivoSolicitud.archivoorigen\"\n                        name=\"nombreAdjuntoSolicitud\">\n                    <label for=\"id_descripcion\">{{'nombre' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- ADJUNTO -->\n            <div class=\"field col-12\"\n                [ngClass]=\"{ 'md:col-5': (!respuesta && reclamacion.estado != 'C'), 'md:col-6': !(!respuesta && reclamacion.estado != 'C') }\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_archivoorigen\" [(ngModel)]=\"archivoSolicitud.archivoorigen\"\n                        [disabled]=\"true\" [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_archivoorigen\">{{'adjunto' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- ADJUNTAR ARCHIVO -->\n            <div class=\"field col-12 md:col-1\" *ngIf=\"!respuesta && reclamacion.estado != 'C'\">\n                <div id=\"btn-cargar-archivo-tabla\" class=\"ml-2\" style=\"margin-top: 12px;\">\n                    <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n                        (onSelect)=\"cargarAnexo($event, fubauto)\" required=\"true\"></p-fileUpload>\n                </div>\n            </div>\n\n            <!-- DESCARGAR -->\n            <div class=\"field col-12 md:col-1\" class=\"ml-2\" style=\"margin-top: 12px;\" *ngIf=\"archivoSolicitud.ruta\">\n                <button pButton pRipple style=\"margin-top: 7px;\"\n                    class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only\"\n                    icon=\"pi pi-download\" (click)=\"descargarAnexo(this.archivoSolicitud)\" type=\"file\"></button>\n            </div>\n\n            <!-- REGISTRO -->\n            @if(reclamacion.fechaSolicitud){\n            <div class=\"field col-12 md:col-6\">\n                <label for=\"id_registro\">{{'registro' | translate}} {{reclamacion.fechaSolicitud |\n                    date:('formatofechahora'|translate)}}</label>\n            </div>\n            }\n\n            <!-- RESPUESTA -->\n            @if(reclamacion.estado == 'C' || !isCliente()){\n            <div class=\"field col-12 md:col-12\">\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea class=\"min-h-100 max-h-100 w-full\" rows=\"4\" cols=\"40\"\n                        [(ngModel)]=\"reclamacion.respuesta\" maxlength=\"4000\" [required]=\"true\" [disabled]=\"!respuesta\"\n                        name=\"respuesta\" (input)=\"actualizarContador()\"></textarea>\n                    <label htmlFor=\"respuesta\">{{'respuesta' | translate}} *</label>\n                </span>\n                <small class=\"contador\">Cantidad Caracteres: {{ caracteresRestantes }}</small>\n            </div>\n\n            <!-- NOMBRE ADJUNTO -->\n            <div class=\"field col-12 md:col-5\"\n                [ngClass]=\"{ 'md:col-5': (reclamacion.estado == 'P' || archivoReclamacion.ruta), 'md:col-6': !(reclamacion.estado == 'P' || archivoReclamacion.ruta) }\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_descripcion\" [(ngModel)]=\"archivoReclamacion.descripcion\"\n                        [disabled]=\"reclamacion.estado == 'C'\" name=\"nombreAdjuntoReclamacion\"\n                        [required]=\"archivoReclamacion.archivoorigen\">\n                    <label for=\"id_descripcion\">{{'nombre' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- ADJUNTO -->\n            <div class=\"field col-12 md:col-6\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_archivoorigen\" [(ngModel)]=\"archivoReclamacion.archivoorigen\"\n                        [disabled]=\"true\" [ngModelOptions]=\"{standalone: true}\">\n                    <label for=\"id_archivoorigen\">{{'adjunto' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- ADJUNTAR ARCHIVO -->\n            <div class=\"field col-12 md:col-1\" *ngIf=\"reclamacion.estado == 'P'\">\n                <div id=\"btn-cargar-archivo-tabla\" class=\"ml-2\" style=\"margin-top: 12px;\">\n                    <p-fileUpload #fubauto mode=\"basic\" [auto]=\"true\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\"\n                        (onSelect)=\"cargarAnexo($event, fubauto)\" required=\"true\"></p-fileUpload>\n                </div>\n            </div>\n\n            <!-- DESCARGAR -->\n            <div class=\"field col-12 md:col-1\" class=\"ml-2\" style=\"margin-top: 12px;\" *ngIf=\"archivoReclamacion.ruta\">\n                <button pButton pRipple\n                    class=\"p-element p-ripple p-button-rounded p-button-secondary p-button p-component p-button-icon-only\"\n                    icon=\"pi pi-download\" (click)=\"descargarAnexo(this.archivoReclamacion)\" type=\"file\"></button>\n            </div>\n            }\n\n            @if(reclamacion.fechaRespuesta != null && (reclamacion.estado != 'P' || !isCliente())){\n            <!-- REGISTRO -->\n            <div class=\"field col-12 md:col-6\">\n                <label for=\"id_nombres\">{{'fecha' | translate}} {{reclamacion.fechaRespuesta |\n                    date:('formatofechahora'|translate)}}</label>\n            </div>\n            }\n        </div>\n    </form>\n\n    <div class=\"flex justify-content-end mb-2\">\n        <!--GUARDAR RECLAMO-->\n        @if(reclamacion.estado == 'P' && !respuesta){\n        <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            label=\"{{'guardarreclamo' | translate}}\" (click)=\"guardar()\">\n        </button>\n        }\n\n        <!--GUARDAR RESPUESTA-->\n        @if(respuesta){\n        <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            label=\"{{'darrespuesta' | translate}}\" (click)=\"guardar()\">\n        </button>\n        }\n    </div>\n\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { CalendarModule } from 'primeng/calendar';\nimport { Dropdown, DropdownModule } from 'primeng/dropdown';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { EmpresaModel } from '../../../../../modules/hojavida/models/EmpresaModel';\nimport { DatoOrganizacionPipe } from '../../../../../shared/pipes/datoOrganizacion.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { CodigoBaseTalentoModel } from '../../../../../modules/bienestar/models/CodigoBaseTalentoModel';\nimport { BienestarPipe } from '../../../../../modules/bienestar/pipes/bienestar.pipe';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\n\n@Component({\n  selector: 'app-registro-proceso-seleccion',\n  templateUrl: './registro-proceso-seleccion.page.html',\n  styleUrl: './registro-proceso-seleccion.page.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, ProcesoSeleccionMenuPage, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, InputHelperHojaVidaComponent, TranslateModule\n\n  ],\n})\nexport class RegistroProcesoSeleccionPage implements OnInit {\n\n  @Input() public isNew : boolean;\n  @Input() public procesoSeleccionado : ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  public listaDatoTabla: DatoorganizacionModel[] = [];\n  public estadoDisabled : boolean;\n  public empresa: EmpresaModel;\n  public clickGuardar : boolean;\n  headerResponsable: string = 'Responsable';\n\n  listaSucursal: any;\n  listaEstProceso: any;\n  listaMapa: any;\n  listaMapaObligatorios: any;\n  listaTipoProcesoSeleccion: any;\n\n\n  constructor(private generalService: GeneralService, public authService: AuthService,\n    public utilsService: UtilsService, public listaConstantesPipe: ListaConstantesPipe,\n    private toastService: ToastService, public generalPipe: GeneralPipe, private cargarMapas: cargarmapasGlobal,\n    private datoOrganizacionPipe: DatoOrganizacionPipe, private bienestarPipe: BienestarPipe,\n    private confirmationService: ConfirmationService, private procesoSeleccionService : ProcesoSeleccionService\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n\n  cargar(){\n    this.empresa = new EmpresaModel();\n    this.estadoDisabled = true;\n    this.cargarListas();\n    this.cargarEmpresa();\n    this.cargarFormulario();\n  }\n\n\n  async cargarListas(){\n    this.listaMapa = [];\n    this.listaMapaObligatorios = [];\n    this.listaEstProceso = await this.cargarMapas.cargarSelectItemString('codigo', 'descripcion', new GeneralModel('CodigoBaseHovDTO', null, false, { tipo: this.listaConstantesPipe.TIPO_PROCESO }));\n    this.listaTipoProcesoSeleccion = [];\n    let listaTipoProcesoSeleccionTmp : CodigoBaseTalentoModel [] = [];\n    listaTipoProcesoSeleccionTmp = await this.generalService.queryForList(new GeneralModel('CodigoBaseTalentoDTO', null, false, { tabla: this.bienestarPipe.TABLA_TIPOPROCESOSELECCION })).toPromise();\n    if(listaTipoProcesoSeleccionTmp != null && 0 < listaTipoProcesoSeleccionTmp.length){\n      listaTipoProcesoSeleccionTmp.forEach(element => {\n        this.listaTipoProcesoSeleccion.push({key : element.llaveTabla, label : element.codigo + Constantes.ESPACIO_BLANCO + Constantes.LINEA_GUION + Constantes.ESPACIO_BLANCO + element.descripcion});\n      });\n    }\n    this.listaDatoTabla = await this.generalService.queryForList(new GeneralModel('DatoorganizacionDTO', null, false,\n      {\n        organizacion: this.empresa.organizacion,\n        tipo: this.datoOrganizacionPipe.TIPO_TABLA_PROCESO_SELECCION,\n        estado: Constantes.CONSTANTE_SI,\n        tabla: this.datoOrganizacionPipe.PROCESO_SELECCION\n      })).toPromise();\n    if (0 < this.listaDatoTabla.length) {\n      this.listaDatoTabla.forEach(datos => {\n        this.listaMapa.push({ value: datos.campo, label: datos.descripcion });\n        if (datos.requerido != null && Constantes.CONSTANTE_SI == datos.requerido) {\n          this.listaMapaObligatorios.push({ value: datos.campo, label: datos.descripcion });\n        }\n      });\n    }\n    this.listaSucursal = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SucursalGesDTO', null, false, { organizacion: this.empresa.organizacion }));\n  }\n\n\n  cargarFormulario(){\n    this.procesoSeleccionado.fechainicio = this.procesoSeleccionado.fechainicio != null ? new Date(this.procesoSeleccionado.fechainicio) : null;\n    this.procesoSeleccionado.asignacion = this.procesoSeleccionado.asignacion != null ? new Date(this.procesoSeleccionado.asignacion) : null;\n    this.procesoSeleccionado.fechaCierre = this.procesoSeleccionado.fechaCierre != null ? new Date(this.procesoSeleccionado.fechaCierre) : null;\n    this.procesoSeleccionado.fechaconvocatoria = this.procesoSeleccionado.fechaconvocatoria != null ? new Date(this.procesoSeleccionado.fechaconvocatoria) : null;\n  }\n\n\n  async cargarEmpresa() {\n    let objeto: GeneralModel = new GeneralModel('EmpresaDTO', null, false, { empresa: this.authService.getTokenKey('numeroEmpresa') });\n    this.empresa = await this.generalService.queryForObject(objeto).toPromise();\n  }\n\n  onSelectResponsable(event) {\n    this.procesoSeleccionado.documento = event.documento;\n    this.procesoSeleccionado.nombreCompleto = event.nombreCompleto;\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  buscarValorMapa(valorBuscado: string): any | null {\n    const objetoEncontrado = this.listaMapa.find(item => item.value === valorBuscado);\n    return objetoEncontrado || null;\n  }\n\n  buscarValorMapaObligatorios(valorBuscado: string): any | null {\n    const objetoEncontrado = this.listaMapaObligatorios.find(item => item.value === valorBuscado);\n    return objetoEncontrado || null;\n  }\n\n  showEliminarRegistroConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async eliminarRegistro(){\n    let cantidad : number = 0;\n    let objeto: GeneralModel = new GeneralModel('CandidatoDTO', null, false, { procesoseleccion: this.procesoSeleccionado.llaveTabla });\n    cantidad = await this.generalService.cantidadRegistros(objeto).toPromise();\n    if(0 == cantidad){\n      let result : number;\n      let objetoFiltro: GeneralModel = new GeneralModel('ProcesoSeleccionDTO', null, false, this.procesoSeleccionado);\n      this.generalService.delete(objetoFiltro).subscribe(data => {\n        result = data;\n        if (result == 1) {\n          this.regresarVista();\n          this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n        } else {\n          this.toastService.showError('Error al eliminar el registro');\n        }\n      }, err => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        if (data.includes('ORA-02292')) {\n          this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n        }\n      });\n    } else {\n      this.toastService.showError('No se puede eliminar el proceso poque tiene candidatos asociados');\n    }\n  }\n\n  isBloqueoEstado() : boolean {\n\t\treturn this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.ANULADO == this.procesoSeleccionado.estado.toUpperCase()\n\t\t\t\t|| this.listaConstantesPipe.CERRADO == this.procesoSeleccionado.estado.toUpperCase();\n\t}\n\n  async actualizarRegistro(){\n    this.clickGuardar = false;\n    if (!this.validar()) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n\n    if(this.requerimiento != null && !this.isBloqueoEstado()){\n      if(this.listaConstantesPipe.ANULADO == this.procesoSeleccionado.estado.toUpperCase() || this.listaConstantesPipe.CERRADO == this.procesoSeleccionado.estado.toUpperCase()){\n        let objetoFiltro: GeneralModel = new GeneralModel('ProcesoSeleccionDTO', null, false, this.procesoSeleccionado);\n        this.generalService.update(objetoFiltro).subscribe(data => {\n          let result : number = data;\n          if (result == 1) {\n            this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n            this.regresarVista();\n          } else {\n            this.toastService.showError('Error al actualizar el registro');\n          }\n        }, err => {\n          var data = JSON.stringify(err.error.mensajeEtiqueta);\n          if (data.includes('ORA-02292')) {\n            this.toastService.showError('El registro se utiliza en otros tareas, No es posible actualizar');\n          }\n        });\n      }\n    }\n  }\n\n  onSelectCoordinador(event){\n    console.log(event);\n  }\n\n\n  regresarVista(){\n    this.regresar.emit();\n  }\n\n\n  validar(): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.unidad);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.cantidad);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.fechainicio);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.cargo);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.identifica);\n\n    if(this.buscarValorMapaObligatorios('lugarEntFor') != null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.lugarEntFor);\n    }\n    if(this.buscarValorMapaObligatorios('horarioEntFor') != null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.horarioEntFor);\n    }\n    if(this.buscarValorMapaObligatorios('fechaEntForm') != null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.fechaEntForm);\n    }\n    if(this.buscarValorMapaObligatorios('divulgacion') != null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.divulgacion);\n    }\n    if(this.buscarValorMapaObligatorios('convocatoria') != null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.convocatoria);\n    }\n    if(this.buscarValorMapaObligatorios('condiciones') != null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.condiciones);\n    }\n    if(this.buscarValorMapaObligatorios('complejida') != null){\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.complejida);\n    }\n\n    if(this.isNew){\n      if(this.buscarValorMapaObligatorios('origen') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.origen);\n      }\n      if(this.buscarValorMapaObligatorios('inscripcion') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.inscripcion);\n      }\n      if(this.buscarValorMapaObligatorios('proceso') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.proceso);\n      }\n      if(this.buscarValorMapaObligatorios('nombreSucursal') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.nombreSucursal);\n      }\n      if(this.buscarValorMapaObligatorios('autorizado') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.autorizado);\n      }\n      if(this.buscarValorMapaObligatorios('fechaconvocatoria') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.fechaconvocatoria);\n      }\n      if(this.buscarValorMapaObligatorios('asignacion') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.asignacion);\n      }\n      if(this.buscarValorMapaObligatorios('asignacion') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.fechaCierre);\n      }\n      if(this.buscarValorMapaObligatorios('tipoProcesoSeleccion') != null){\n        validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.tipoProcesoSeleccion);\n      }\n      validador = validador && this.utilsService.validarCampoObligatorio(this.procesoSeleccionado.grupoMedio);\n    }\n\n    return validador;\n  }\n\n  async actualizarEstado(){\n    if(this.estadoDisabled){\n      let objetoFiltro: GeneralModel = new GeneralModel('ProcesoSeleccionDTO', null, false, this.procesoSeleccionado);\n      await this.generalService.update(objetoFiltro).toPromise();\n      await this.procesoSeleccionService.cambiarEstadoProcesoSeleccion({proceso : this.procesoSeleccionado}).toPromise();\n      this.estadoDisabled = true;\n      this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n    }\n  }\n\n  cambiarEstado(){\n    if(this.estadoDisabled){\n      this.estadoDisabled = false;\n    }else{\n      this.estadoDisabled = true;\n    }\n  }\n\n  guardarRegistro(){\n\n  }\n\n}\n","\n<div class=\"mt-3\">\n  <h5><i class=\"glyphicons glyphicons-book\"></i>{{'registro' | translate}} {{'proceso' | translate}}</h5>\n    <div class=\"field col-12 md:col-12 lg:col-12\">\n      <div class=\"p-fluid p-formgrid grid\">\n\n        <!-- CANTIDAD PUESTO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input class=\"form-control input-md\" pInputText type=\"text\" id=\"cantidad\" maxlength=\"5\"\n              oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" [(ngModel)]=\"procesoSeleccionado.cantidad\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.cantidad) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.cantidad) && clickGuardar\" />\n            <label htmlFor=\"cantidad\">{{'cantidad' | translate}} {{'puesto' | translate}} *</label>\n          </span>\n        </div>\n\n        <!-- RESPONSABLE -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n          <app-input-helper-hoja-vida [ocultarBtnLimpiar]=\"procesoSeleccionado.documento != null\" [header]=\"headerResponsable\" id=\"responsable\"\n            [label]=\"procesoSeleccionado.documento != null ? (procesoSeleccionado.documento + ' - ' + procesoSeleccionado.nombreCompleto) : ''\"\n            [(ngModel)]=\"procesoSeleccionado.documento\" (onSelected)=\"onSelectResponsable($event)\">\n          </app-input-helper-hoja-vida>\n        </div>\n\n        <!-- COORDINADOR -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" >\n          <app-input-helper-hoja-vida [ocultarBtnLimpiar]=\"procesoSeleccionado.coordinador != null\" \n            header=\"{{ buscarValorMapa('coordinador')?.label }} {{ buscarValorMapaObligatorios('coordinador')?.label != null ? '*' : '' }}\"\n            [label]=\"procesoSeleccionado.coordinador != null ? (procesoSeleccionado.coordinador + ' - ' + procesoSeleccionado.nombreCoordinador) : ''\"\n            [(ngModel)]=\"procesoSeleccionado.coordinador\" (onSelected)=\"onSelectCoordinador($event)\">\n          </app-input-helper-hoja-vida>\n        </div>\n\n        <!-- GRUPO MEDIO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"grupoMedio\" [options]=\"generalPipe.LISTA_SINO\"\n              optionValue=\"codigo\" optionLabel=\"nombre\" [(ngModel)]=\"procesoSeleccionado.grupoMedio\"\n              [autoDisplayFirst]=\"false\" [readonly]=\"isBloquear()\" appendTo=\"body\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.grupoMedio) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.grupoMedio) && clickGuardar\">\n            </p-dropdown>\n            <label htmlFor=\"grupoMedio\">{{'grupomedio' | translate}} *</label>\n          </span>\n        </div>\n\n        <!-- ESTADO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-dropdown [autofocus]=\"!estadoDisabled\" id=\"estado\" [options]=\"listaEstProceso\" optionValue=\"key\" optionLabel=\"label\" [disabled]=\"estadoDisabled\"\n              [autoDisplayFirst]=\"false\" appendTo=\"body\" [(ngModel)]=\"procesoSeleccionado.estado\"></p-dropdown>\n            <label htmlFor=\"estado\">{{'estado' | translate}}</label>\n          </span>\n        </div>\n\n        <!-- FECHA INICIAL -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"procesoSeleccionado.fechainicio\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.fechainicio) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.fechainicio) && clickGuardar\">\n            </p-calendar>\n            <label>{{'proceso' | translate}} *</label>\n          </span>\n        </div>\n\n        <!-- ASIGNACIÓN -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('asignacion')\">\n          <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"procesoSeleccionado.asignacion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.asignacion) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.asignacion) && clickGuardar\">\n            </p-calendar>\n            <label>{{buscarValorMapa('asignacion')?.label}} {{buscarValorMapaObligatorios('asignacion')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- FECHA CIERRE -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('asignacion')\">\n          <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"procesoSeleccionado.fechaCierre\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.fechaCierre) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.fechaCierre) && clickGuardar\">\n            </p-calendar>\n            <label>{{buscarValorMapa('asignacion')}}</label>\n          </span>\n        </div>\n\n        <!-- SUCURSAL -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('nombreSucursal')\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"nombreSucursal\" [options]=\"listaSucursal\" [(ngModel)]=\"procesoSeleccionado.sucursal\"\n              optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n            </p-dropdown>\n            <label htmlFor=\"nombreSucursal\">{{buscarValorMapa('nombreSucursal')?.label}} {{buscarValorMapaObligatorios('nombreSucursal')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- FECHA CONVOCATORIA -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('fechaconvocatoria')\">\n          <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"procesoSeleccionado.fechaconvocatoria\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.fechaconvocatoria) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(procesoSeleccionado.fechaconvocatoria) && clickGuardar\">\n            </p-calendar>\n            <label htmlFor=\"fechaconvocatoria\">{{buscarValorMapa('fechaconvocatoria')?.label}} {{buscarValorMapaObligatorios('fechaconvocatoria')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- AUTORIZADO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('autorizado')\">\n          <span class=\"p-float-label\">\n            <input class=\"form-control input-md\" pInputText type=\"text\" id=\"autorizado\"\n              [(ngModel)]=\"procesoSeleccionado.autorizado\" maxlength=\"30\"/>\n              <label>{{buscarValorMapa('autorizado')?.label}} {{buscarValorMapaObligatorios('autorizado')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- ORIGEN -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('origen')\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"origen\" [options]=\"listaConstantesPipe.CONCURSO\" [(ngModel)]=\"procesoSeleccionado.origen\" optionValue=\"codigo\"\n              optionLabel=\"nombre\" [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n            <label htmlFor=\"origen\">{{buscarValorMapa('origen')?.label}} {{buscarValorMapaObligatorios('origen')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- COMPLEJIDA -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('complejida')\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"complejida\" [options]=\"listaConstantesPipe.COMPLEJIDAD\" [(ngModel)]=\"procesoSeleccionado.complejida\"\n              optionValue=\"codigo\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n            <label htmlFor=\"complejida\">{{buscarValorMapa('complejida')?.label}} {{buscarValorMapaObligatorios('complejida')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- CONVOCATORIA -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('convocatoria')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n              maxlength=\"100\" [(ngModel)]=\"procesoSeleccionado.convocatoria\">\n            </textarea>\n            <label>{{buscarValorMapa('convocatoria')?.label}} {{buscarValorMapaObligatorios('convocatoria')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- DIVULGACIÓN -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('divulgacion')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n              maxlength=\"100\" [(ngModel)]=\"procesoSeleccionado.divulgacion\">\n            </textarea>\n            <label>{{buscarValorMapa('divulgacion')?.label}} {{buscarValorMapaObligatorios('divulgacion')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- FECHA ENT FORM -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('fechaEntForm')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"5\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n              maxlength=\"100\" [(ngModel)]=\"procesoSeleccionado.fechaEntForm\">\n            </textarea>\n            <label>{{buscarValorMapa('fechaEntForm')?.label}} {{buscarValorMapaObligatorios('fechaEntForm')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- HORARIO ENT FORM -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('horarioEntFor')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n              maxlength=\"100\" [(ngModel)]=\"procesoSeleccionado.horarioEntFor\">\n            </textarea>\n            <label>{{buscarValorMapa('horarioEntFor')?.label}} {{buscarValorMapaObligatorios('horarioEntFor')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- LUGAR ENT FORM -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('lugarEntFor')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 min-h-100 w-full\"\n              maxlength=\"100\" [(ngModel)]=\"procesoSeleccionado.lugarEntFor\">\n            </textarea>\n            <label>{{buscarValorMapa('lugarEntFor')?.label}} {{buscarValorMapaObligatorios('lugarEntFor')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- CONDICIONES -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('condiciones')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n              maxlength=\"4000\" [(ngModel)]=\"procesoSeleccionado.condiciones\">\n            </textarea>\n            <label>{{buscarValorMapa('condiciones')?.label}} {{buscarValorMapaObligatorios('condiciones')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- INSCRIPCIÓN -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('inscripcion')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n              maxlength=\"4000\" [(ngModel)]=\"procesoSeleccionado.inscripcion\">\n            </textarea>\n            <label>{{buscarValorMapa('inscripcion')?.label}} {{buscarValorMapaObligatorios('inscripcion')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- PROCESO -->\n        <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"buscarValorMapa('proceso')\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea rows=\"2\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n               maxlength=\"4000\" [(ngModel)]=\"procesoSeleccionado.proceso\">\n            </textarea>\n            <label>{{buscarValorMapa('proceso')?.label}} {{buscarValorMapaObligatorios('proceso')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n        <!-- TIPO PROCESO SELECCIÓN -->\n        <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"buscarValorMapa('tipoProcesoSeleccion')\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"tipoProcesoSeleccion\" [options]=\"listaTipoProcesoSeleccion\" [(ngModel)]=\"procesoSeleccionado.tipoProcesoSeleccion\"\n              optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n            <label htmlFor=\"tipoProcesoSeleccion\">{{buscarValorMapa('tipoProcesoSeleccion')?.label}} {{buscarValorMapaObligatorios('tipoProcesoSeleccion')?.label != null ? '*' : ''}}</label>\n          </span>\n        </div>\n\n      </div>\n      <h5 class=\"mt-3\" *ngIf=\"procesoSeleccionado.mensaje != null\"><i class=\"glyphicons glyphicons-book\"></i>{{'mensaje' | translate}}</h5>\n\n      <!-- MENSAJE -->\n      <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"procesoSeleccionado.mensaje != null\">\n        <span class=\"p-float-label\">\n          <textarea pInputTextarea rows=\"10\" cols=\"30\" class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n            maxlength=\"4000\" [(ngModel)]=\"procesoSeleccionado.mensaje\" [readonly]=\"true\">\n          </textarea>\n          <label>{{buscarValorMapa('mensaje')?.label}} {{buscarValorMapaObligatorios('mensaje')?.label != null ? '*' : ''}}</label>\n        </span>\n      </div>\n\n      <div class=\"flex justify-content-end mb-2\">\n        <button pButton pRipple class=\"m-2 p-button p-button-raised p-button-outlined background-100\" icon=\"glyphicons glyphicons-random\"\n          *ngIf=\"!isNew && estadoDisabled && !isBloqueoEstado()\" label=\"{{'cambiarestado' | translate}}\" (click)=\"cambiarEstado()\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n          *ngIf=\"!isNew && !estadoDisabled\" label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarEstado()\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n          *ngIf=\"!isNew && estadoDisabled\" label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarRegistro()\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button-outlined font-semibold\" icon=\"glyphicons glyphicons-remove-circle\"\n          *ngIf=\"!isNew && !estadoDisabled\" label=\"{{'link_cancelar' | translate}}\" (click)=\"cambiarEstado()\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" (click)=\"guardarRegistro()\"\n          icon=\"glyphicons glyphicons-floppy-save\" *ngIf=\"isNew\" label=\"{{'link_guardar' | translate}}\">\n        </button>\n        <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"!isNew && estadoDisabled\"\n          (click)=\"showEliminarRegistroConfirmDialog()\" label=\"{{'link_eliminar' | translate}}\" >\n        </button>\n      </div>\n\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { CommonModule, DatePipe, NgIf } from '@angular/common';\nimport { FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ArchivoModel } from '../../../../../modules/hojavida/models/ArchivoModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { EtapaProcesoService } from '../../../services/etapa-proceso.service';\nimport { MediosEtapaModel } from '../../../models/MediosEtapaModel';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { HttpEventType } from '@angular/common/http';\nimport { HojaVidaService } from '../../../../../modules/hojavida/services/hojavida.service';\nimport { TipoActividadModel } from '../../../../../modules/capacitacion/models/TipoActividadModel';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\n\n@Component({\n  selector: 'app-etapa-proceso-seleccion',\n  templateUrl: './etapa-proceso-seleccion.page.html',\n  styleUrl: './etapa-proceso-seleccion.page.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,\n    DatePipe, FileUploadModule, CheckboxModule, ConfirmPopupModule, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent, CommonModule\n  ],\n\n})\nexport class EtapaProcesoSeleccionPage implements OnInit {\n\n  @ViewChild('formEtapa', { static: false }) formEtapa!: NgForm;\n  @Input() public isNew: boolean;\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaMediosEtapa: MediosEtapaModel[] = [];\n  public listaEtapas: EtapaProcesoModel[] = [];\n  public etapaSeleccionada: EtapaProcesoModel;\n  public unicoAdjunto: ArchivoModel;\n  public archivoSeleccionado: File;\n  public verDetalle: boolean;\n  public isLoadingData: boolean;\n  public nombreArchivo: string;\n  public verTabla: boolean;\n\n\n  constructor(private generalService: GeneralService, public utilsService: UtilsService,\n    public listaConstantesPipe: ListaConstantesPipe, public generalPipe: GeneralPipe,\n    private cargarMapas: cargarmapasGlobal, private cargarArchivoService: CargarArchivosService,\n    private etapaProcesoService: EtapaProcesoService, private toastService: ToastService,\n    private confirmationService: ConfirmationService, private encriptadoBasico: EncriptadoBasicoService,\n    public procesoSeleccionService: ProcesoSeleccionService, private hojaVidaService: HojaVidaService,\n    private authService: AuthService,\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.cargarListaEtapas();\n  }\n\n  async cargarListaEtapas() {\n    this.isLoadingData = true;\n    this.listaEtapas = [];\n    this.listaEtapas = await this.generalService.queryForList(new GeneralModel('EtapaProcesoDTO', null, false,\n      { procesoSeleccion: this.procesoSeleccionado.llaveTabla })).toPromise();\n    this.listaEtapas.forEach(etapa => {\n      this.listaConstantesPipe.LISTA_ESTADO_ETAPA.forEach(async estado => {\n        if (etapa.estado != null && etapa.estado == estado.codigo) {\n          etapa.descripcionEstado = estado.nombre;\n          await this.traerUnicoAdjunto(etapa.llaveTabla, 'ruta_anexosHojaVida', 'ruta_temporal');\n          if(this.unicoAdjunto.carpeta != null && this.unicoAdjunto.llaveTabla){\n            etapa.ruta = this.unicoAdjunto.carpeta + this.unicoAdjunto.llaveTabla;\n          }else{\n            etapa.ruta = null;\n          }\n        }\n      });\n    });\n    this.isLoadingData = false;\n  }\n\n  nuevoRegistroEtapa() {\n    this.etapaSeleccionada = new EtapaProcesoModel();\n    this.unicoAdjunto = new ArchivoModel();\n    this.isNew = true;\n    this.etapaSeleccionada.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n    this.cargarDetalleEtapa();\n    this.verDetalle = true;\n  }\n\n  seleccionRegistroEtapa(event) {\n    if (event != null) {\n      this.etapaSeleccionada = new EtapaProcesoModel();\n      this.etapaSeleccionada = event.data;\n      this.etapaSeleccionada.fechaInicial = this.etapaSeleccionada.fechaInicial != null ? new Date(this.etapaSeleccionada.fechaInicial) : null;\n      this.etapaSeleccionada.fechaFinal = this.etapaSeleccionada.fechaFinal != null ? new Date(this.etapaSeleccionada.fechaFinal) : null;\n      this.etapaSeleccionada.fechaReclamacion = this.etapaSeleccionada.fechaReclamacion != null ? new Date(this.etapaSeleccionada.fechaReclamacion) : null;\n      this.isNew = false;\n      this.cargarDetalleEtapa();\n      this.verDetalle = true;\n    }\n  }\n\n  async cargarDetalleEtapa() {\n    this.listaEtapas = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoActividadDTO', null, false, { origen: Constantes.CONSTANTE_SI }));\n    if (!this.isNew) {\n      await this.traerUnicoAdjuntoDetalle();\n    }\n  }\n\n  async traerUnicoAdjuntoDetalle() {\n    try {\n      let listaUnicoAdjunto: ArchivoModel[] = [];\n      listaUnicoAdjunto = await this.generalService.queryForList(new GeneralModel('ArchivoDTO', null, false, { nombreTabla: 'ETAPAPROCESOSE_EPS', llaveTablaArchivo: this.etapaSeleccionada.llaveTabla })).toPromise();\n      if (0 == listaUnicoAdjunto.length) {\n        this.unicoAdjunto = new ArchivoModel();\n        return;\n      }\n      this.unicoAdjunto = listaUnicoAdjunto[0];\n      if (this.unicoAdjunto.archivoorigen == null) {\n        return;\n      }\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  cargarArchivo(data: any, fubauto) {\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.unicoAdjunto.archivoorigen = this.archivoSeleccionado.name;\n    fubauto.clear();\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.nombreArchivo = file.name;\n  }\n\n  async traerUnicoAdjunto(llaveEtapa: string, rutaAnexo: string, rutaTemporal: string) {\n    try {\n      this.unicoAdjunto = new ArchivoModel();\n      let filtroAdjunto = new ArchivoModel();\n      filtroAdjunto.llaveTablaArchivo = llaveEtapa;\n      filtroAdjunto.nombreTabla = 'ETAPAPROCESOSE_EPS'\n      let listaAdjuntos = await this.generalService.queryForList(new GeneralModel('ArchivoDTO', null, false, filtroAdjunto)).toPromise();\n      if (0 == listaAdjuntos.length) {\n        this.unicoAdjunto = new ArchivoModel();\n        return;\n      }\n      this.unicoAdjunto = listaAdjuntos[0];\n      if (this.unicoAdjunto.archivoorigen == null) {\n        return;\n      }\n      if (this.unicoAdjunto == null) {\n        this.unicoAdjunto = new ArchivoModel();\n        return;\n      }\n      if (this.unicoAdjunto.archivoorigen == null) {\n        return;\n      }\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n  crearEstructuraAnexo(tabla: string): string {\n    const fecha = new Date();\n    let anio = fecha.getFullYear();\n    let mes = fecha.getMonth() + 1;\n    let ruta = \"\";\n    ruta = '/' + tabla + '/' + anio + '/' + mes + '/';\n    return ruta;\n  }\n\n  async guardarUnicoAdjunto() {\n    if (this.unicoAdjunto.descripcion == null || this.unicoAdjunto.archivoorigen == null) {\n      return;\n    } else {\n      let propiedad = 'ruta_anexosHojaVida'\n      let rutaCarpeta = this.crearEstructuraAnexo('etapaprocesose_eps');\n      let codigoAplicacion = this.authService.getTokenKey('aplicacion');\n      let llaveNuevoReg: string = '';\n      if (this.unicoAdjunto.llaveTabla != null) {\n        this.cargarArchivoService.eliminarArchivo(this.encriptadoBasico.encriptar(this.unicoAdjunto.carpeta + this.unicoAdjunto.llaveTabla + '.pdf'), propiedad, codigoAplicacion).subscribe(blob => { });\n        llaveNuevoReg = this.unicoAdjunto.llaveTabla\n      } else {\n        llaveNuevoReg = this.utilsService.generarLlave();\n      }\n      let fileExtension: string = this.archivoSeleccionado.name.split('?')[0].split('.').pop();\n      this.archivoSeleccionado = new File([this.archivoSeleccionado], llaveNuevoReg + '.' + fileExtension);\n      await this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, rutaCarpeta, propiedad, codigoAplicacion).subscribe({\n        next: async (event) => {\n          if (event.type === HttpEventType.Response) {\n            let response: any = event.body;\n            //this.unicoAdjunto.archivoorigen = this.nombreArchivo;\n            this.unicoAdjunto.llaveTemporal = llaveNuevoReg;\n            await this.hojaVidaService.insertAdjuntoTabla({ archivo: this.unicoAdjunto, tabla: 'etapaprocesose_eps', llaveBase: this.etapaSeleccionada.llaveTabla }).subscribe({\n              next: async (data) => {\n                if (data != null) {\n                  await this.traerUnicoAdjunto(this.etapaSeleccionada.llaveTabla, 'ruta_anexosHojaVida', 'ruta_temporal');\n                } else {\n                  this.toastService.showError('Error en el método de agregar anexo');\n                }\n              },\n            });\n          }\n        },\n      });\n    }\n  }\n\n  async actualizarRegistro() {\n    if (this.formEtapa.valid) {\n      let objetoFiltro: GeneralModel = new GeneralModel('EtapaProcesoDTO', null, false, this.etapaSeleccionada);\n      let result: number = await this.generalService.update(objetoFiltro).toPromise();\n      if (1 == result) {\n        let objEtapa: EtapaProcesoModel = new EtapaProcesoModel();\n        objEtapa.llaveTabla = this.etapaSeleccionada.llaveTabla;\n        objEtapa.procesoSeleccion = this.etapaSeleccionada.procesoSeleccion;\n        await this.guardarUnicoAdjunto();\n        await this.etapaProcesoService.actualizarGrupoSeleccion({ etapa: objEtapa }).toPromise();\n        this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n      } else {\n        this.toastService.showError('Error en actualizar el registro');\n        throw new Error('Error en el método de actualizar');\n      }\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formEtapa.controls).forEach((key) => {\n        if (this.formEtapa.controls[key].invalid) {\n          this.formEtapa.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  async crearRegistro() {\n    if (this.formEtapa.valid) {\n      let etapaProcesoTmp: EtapaProcesoModel = new EtapaProcesoModel();\n      etapaProcesoTmp.tipoActividad = this.etapaSeleccionada.tipoActividad;\n      etapaProcesoTmp.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n      etapaProcesoTmp.individual = 'W';\n      etapaProcesoTmp.origen = Constantes.CONSTANTE_SI;\n      let cantExiste: number = await this.generalService.cantidadRegistros(new GeneralModel('EtapaProcesoDTO', null, false, etapaProcesoTmp)).toPromise();\n      if (0 < cantExiste) {\n        this.toastService.showError(Constantes.MENSAJE_EXISTE);\n        return;\n      }\n      let etapaProcesoInf: EtapaProcesoModel = new EtapaProcesoModel();\n      etapaProcesoInf.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n      let etapas: EtapaProcesoModel[] = [];\n      etapas = await this.generalService.queryForList(new GeneralModel('EtapaProcesoDTO', null, false, etapaProcesoInf)).toPromise();\n      let tipoActividad: TipoActividadModel = new TipoActividadModel();\n      tipoActividad.llaveTabla = this.etapaSeleccionada.tipoActividad;\n      tipoActividad.origen = Constantes.CONSTANTE_SI;\n      tipoActividad = await this.generalService.queryForObject(new GeneralModel('TipoActividadDTO', null, false, tipoActividad)).toPromise();\n\n      if (this.listaConstantesPipe.INFORMEFINAL.toUpperCase() == tipoActividad.etapa.toUpperCase()) {\n        if (0 < etapas.length) {\n          for (const etapaProc of etapas) {\n            if (etapaProc.tipoActividad == null) {\n              continue;\n            }\n\n            tipoActividad = new TipoActividadModel();\n            tipoActividad.llaveTabla = etapaProc.tipoActividad;\n            tipoActividad.origen = etapaProc.origen;\n            tipoActividad = await this.generalService.queryForObject(new GeneralModel('TipoActividadDTO', null, false, tipoActividad)).toPromise();\n\n            if (this.listaConstantesPipe.INFORMEFINAL.toUpperCase() == tipoActividad.etapa.toUpperCase()) {\n              this.toastService.showError(\"Ya se asocia una etapa como informe final\");\n              return;\n            }\n          }\n        }\n      }\n      this.etapaSeleccionada.cantidad = 0;\n      this.etapaSeleccionada.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n      this.etapaSeleccionada.origen = Constantes.CONSTANTE_SI;\n      this.etapaSeleccionada.individual = 'W';\n\n      let objetoFiltro: GeneralModel = new GeneralModel('EtapaProcesoDTO', null, false, this.etapaSeleccionada);\n      this.generalService.crearRegistro(objetoFiltro).subscribe(async data => {\n        this.etapaSeleccionada = data;\n        await this.guardarUnicoAdjunto();\n        await this.etapaProcesoService.actualizarGrupoSeleccion({ etapa: this.etapaSeleccionada }).toPromise();\n        this.isNew = false;\n        this.seleccionRegistroEtapa({data : this.etapaSeleccionada});\n        this.toastService.showSuccess(Constantes.MENSAJE_GUARDAR);\n      }, err => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        if (true) {\n          this.toastService.showError('Error al ingresar en el servicio');\n        }\n      });\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formEtapa.controls).forEach((key) => {\n        if (this.formEtapa.controls[key].invalid) {\n          this.formEtapa.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n\n  showEliminarRegistroConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async eliminarRegistro() {\n    let objetoFiltro: GeneralModel = new GeneralModel('EtapaProcesoDTO', null, false, this.etapaSeleccionada);\n    let result: number = await this.generalService.delete(objetoFiltro).toPromise();\n    if (1 == result) {\n      let objEtapa: EtapaProcesoModel = new EtapaProcesoModel();\n      objEtapa.llaveTabla = this.etapaSeleccionada.llaveTabla;\n      objEtapa.procesoSeleccion = this.etapaSeleccionada.procesoSeleccion;\n      await this.etapaProcesoService.actualizarGrupoSeleccion({ etapa: objEtapa }).toPromise();\n      this.regresarVista();\n      this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n    } else {\n      this.toastService.showError('Error en actualizar el registro');\n      throw new Error('Error en el método de actualizar');\n    }\n  }\n\n  async cambioEtapa(event) {\n    this.verTabla = false;\n    this.listaMediosEtapa = [];\n    if (event?.value) {\n      this.listaMediosEtapa = await this.procesoSeleccionService.obtenerListaCambioEtapa({ llaveEtapa: event.value }).toPromise();\n      if (0 < this.listaMediosEtapa.length) {\n        this.verTabla = true;\n      }\n    }\n  }\n\n  onSeleccionarIndiv(wrapper) {\n    if (wrapper.deshabilitar) {\n      if (wrapper.seleccionar) {\n        this.listaMediosEtapa.push(wrapper);\n      } else {\n        this.listaMediosEtapa = this.listaMediosEtapa.filter(\n          (element) => element.llaveTabla != wrapper.llaveTabla\n        );\n      }\n    }\n  }\n\n  descargarAnexoEtapa(documento) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    let nombreArchivo: string = Constantes.ESPACIO_NULO;\n    if (documento.ruta != null) {\n      let partes = documento.ruta.split(Constantes.BARRA_INCLINADA_DERECHA);\n      nombreArchivo = partes[partes.length - 1];\n    }\n    this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(documento.ruta + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = nombreArchivo + Constantes.PUNTO + Constantes.ARCHIVO_PDF;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  async regresarVista() {\n    if (this.verDetalle) {\n      await this.cargarListaEtapas();\n      this.verDetalle = false;\n    }\n  }\n\n  async regresarVistaPrincipal() {\n    this.regresar.emit();\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVistaPrincipal()\"\n    icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'etapa' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  @if(!verDetalle){\n  <div class=\"flex justify-content-end\" *ngIf=\"!isBloquear() && (procesoSeleccionado.principal == null)\">\n    <!-- Botón de nuevo-->\n    <button pButton pRipple (click)=\"nuevoRegistroEtapa()\" label=\"{{'link_nuevo'| translate}}\" icon=\"pi pi-plus\"\n      class=\"p-button-secondary font-semibold flex-shrink-0 mb-2\"></button>\n  </div>\n\n  <p-table #tablaGeneralEtapas id=\"tablaEtapas\" [value]=\"listaEtapas\" responsiveLayout=\"scroll\" [rows]=\"10\"\n    [paginator]=\"listaEtapas.length > 10\" selectionMode=\"single\" scrollDirection=\"horizontal\"\n    styleClass=\"p-datatable-striped\" [totalRecords]=\"listaEtapas.length\" [scrollable]=\"true\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n    (onRowSelect)=\"seleccionRegistroEtapa($event)\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 25%;\">{{ 'etapa' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'numero' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'inicia' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'final' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'estado' | translate }}</th>\n        <th>{{ 'adjunto' | translate }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-etapa>\n      <tr [pSelectableRow]=\"etapa\" style=\"width: 100%;\">\n        <td style=\"width: 25%;\">{{etapa.nombreEtapa}}</td>\n        <td style=\"width: 15%;\">{{etapa.orden}}</td>\n        <td style=\"width: 15%;\">{{etapa.fechaInicial | date: 'dd/MM/yyyy HH:mm'}}</td>\n        <td style=\"width: 15%;\">{{etapa.fechaFinal | date: 'dd/MM/yyyy HH:mm'}}</td>\n        <td style=\"width: 15%;\">{{etapa.descripcionEstado}}</td>\n        <td style=\"width: 15%;\">\n          <div *ngIf=\"etapa.ruta != null\" class=\"flex justify-content-between\">\n            <button pButton pRipple\n              class=\"p-element p-ripple p-button-rounded p-button-secondary mb-2 p-button p-component p-button-icon-only\"\n              icon=\"pi pi-download p-2\" (click)=\"descargarAnexoEtapa(etapa)\" type=\"file\">\n            </button>\n          </div>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n      <tr>\n        <td colspan=\"100\">\n          <app-template-tabla-vacia></app-template-tabla-vacia>\n        </td>\n      </tr>\n    </ng-template>\n  </p-table>\n  }\n\n  @if(verDetalle){\n  <div class=\"card mb-3\">\n    <div class=\"col-12 md:col-12 lg:col-12\">\n      <div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n        <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'etapa' | translate}}</h5>\n        <button pButton pRipple label=\"{{'listado' | translate}} {{'etapa' | translate}}\" (click)=\"regresarVista()\"\n          icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n      </div>\n\n\n      <form #formEtapa=\"ngForm\">\n        <div class=\"p-fluid p-formgrid grid mt-2\">\n\n          <!-- ETAPA -->\n          <div class=\"field col-12 md:col-9 lg:col-9\">\n            <span class=\"p-float-label\">\n              <p-dropdown id=\"tipoActividad\" [options]=\"listaEtapas\" name=\"tipoActividad\"\n                [(ngModel)]=\"etapaSeleccionada.tipoActividad\" optionValue=\"key\" optionLabel=\"label\"\n                [autoDisplayFirst]=\"false\" appendTo=\"body\" (onChange)=\"cambioEtapa($event)\" [readonly]=\"isBloquear()\"\n                required></p-dropdown>\n              <label htmlFor=\"tipoActividad\">{{'etapa' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- NUMERO-->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"orden\" name=\"orden\"\n                [(ngModel)]=\"etapaSeleccionada.orden\" maxlength=\"5\"\n                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" [readonly]=\"isBloquear()\"\n                required />\n              <label htmlFor=\"orden\">{{'numero' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- INICIAL -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-calendar [showIcon]=\"true\" id=\"fechaInicial\" appendTo=\"body\" [stepMinute]=\"1\" [showTime]=\"true\"\n                [hourFormat]=\"'24'\" name=\"fechaInicial\" [(ngModel)]=\"etapaSeleccionada.fechaInicial\"\n                dateFormat=\"dd/mm/yy\"></p-calendar>\n              <label htmlFor=\"fechaInicial\">{{'inicial' | translate }}</label>\n            </span>\n          </div>\n\n          <!-- FINAL -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-calendar [showIcon]=\"true\" id=\"fechaFinal\" appendTo=\"body\" [stepMinute]=\"1\" [showTime]=\"true\"\n                [hourFormat]=\"'24'\" name=\"fechaFinal\" [(ngModel)]=\"etapaSeleccionada.fechaFinal\"\n                dateFormat=\"dd/mm/yy\"></p-calendar>\n              <label htmlFor=\"fechaFinal\">{{'final' | translate }}</label>\n            </span>\n          </div>\n\n          <!-- RECLAMACIÓN -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-calendar [showIcon]=\"true\" id=\"fechaReclamacion\" appendTo=\"body\" [stepMinute]=\"1\" [showTime]=\"true\"\n                [hourFormat]=\"'24'\" name=\"fechaReclamacion\" [(ngModel)]=\"etapaSeleccionada.fechaReclamacion\"\n                dateFormat=\"dd/mm/yy\"></p-calendar>\n              <label htmlFor=\"fechaReclamacion\">{{'reclamacion' | translate }}</label>\n            </span>\n          </div>\n\n          <!-- ESTADO -->\n          <div class=\"field col-12 md:col-3 lg:col-3\">\n            <span class=\"p-float-label\">\n              <p-dropdown id=\"estado\" [options]=\"listaConstantesPipe.LISTA_ESTADO_ETAPA\" name=\"estado\"\n                [(ngModel)]=\"etapaSeleccionada.estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                [autoDisplayFirst]=\"false\" appendTo=\"body\" required></p-dropdown>\n              <label htmlFor=\"estado\">{{'estado' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- ADJUNTO -->\n          <div class=\"field col-12 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"descripcion\" name=\"descripcion\"\n                [(ngModel)]=\"unicoAdjunto.descripcion\" maxlength=\"30\" />\n              <label htmlFor=\"descripcion\">{{'adjunto' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- ARCHIVO -->\n          <div class=\"col-12 md:col-6 lg:col-6\">\n            <div class=\"p-inputgroup\">\n              <span class=\"p-float-label\">\n                <input pInputText #inputText [readonly]=\"true\" [(ngModel)]=\"unicoAdjunto.archivoorigen\"\n                  name=\"archivoorigen\" disabled />\n                <label htmlFor=\"archivo\">{{'archivo' | translate}}</label>\n                <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\" [accept]=\"'.pdf'\"\n                  (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n              </span>\n            </div>\n          </div>\n\n        </div>\n      </form>\n\n      <div class=\"mt-2\" *ngIf=\"verTabla\">\n        <p-table #tablaWrapper id=\"tablaEtapaMedios\" [scrollable]=\"true\" [value]=\"listaMediosEtapa\"\n          responsiveLayout=\"scroll\" [rows]=\"10\" [totalRecords]=\"listaMediosEtapa.length\"\n          [paginator]=\"listaMediosEtapa.length > 10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n          [showCurrentPageReport]=\"true\" dataKey=\"llave\" [tableStyle]=\"{'min-width':'60%'}\"\n          currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n          <ng-template pTemplate=\"header\">\n            <tr style=\"width: 100%;\">\n              <th style=\"width: 15%;\"></th>\n              <th style=\"width: 15%;\">{{ 'medio' | translate }}</th>\n              <th style=\"width: 15%;\">{{ 'caracter' | translate }}</th>\n              <th style=\"width: 15%;\">{{ 'peso' | translate }}</th>\n              <th style=\"width: 15%;\">{{ 'minimo' | translate }}</th>\n              <th style=\"width: 15%;\">{{ 'maximo' | translate }}</th>\n            </tr>\n          </ng-template>\n          <ng-template pTemplate=\"body\" let-wrapper>\n            <tr>\n              <td style=\"width: 15%;\">\n                <div class=\"field-checkbox\">\n                  <p-checkbox class=\"mt-2 ml-1\" [binary]=\"true\" (onChange)=\"onSeleccionarIndiv(wrapper)\"\n                    [(ngModel)]=\"wrapper.seleccionar\"></p-checkbox>\n                </div>\n              </td>\n              <td style=\"width: 15%;\">{{wrapper.unionDTO.descripcionEntrevista}}</td>\n              <td style=\"width: 15%;\">\n                <p-dropdown id=\"accion\" [options]=\"listaConstantesPipe.MAPAACCIONESMEDIOS\"\n                  [(ngModel)]=\"wrapper.unionDTO.accion\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n              </td>\n              <td style=\"width: 15%;\">\n                <input class=\"form-control input-md\" pInputText type=\"text\" id=\"peso\"\n                  [(ngModel)]=\"wrapper.unionDTO.peso\" maxlength=\"8\"\n                  oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\" />\n              </td>\n              <td style=\"width: 15%;\">\n                <input class=\"form-control input-md\" pInputText type=\"text\" id=\"minimo\"\n                  [(ngModel)]=\"wrapper.unionDTO.minimo\" maxlength=\"8\"\n                  oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\" />\n              </td>\n              <td style=\"width: 15%;\">\n                <input class=\"form-control input-md\" pInputText type=\"text\" id=\"maximo\"\n                  [(ngModel)]=\"wrapper.unionDTO.maximo\" maxlength=\"8\"\n                  oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\" />\n              </td>\n            </tr>\n          </ng-template>\n          <ng-template pTemplate=\"emptymessage\">\n            <tr>\n              <td colspan=\"100\">\n                <app-template-tabla-vacia></app-template-tabla-vacia>\n              </td>\n            </tr>\n          </ng-template>\n        </p-table>\n      </div>\n\n    </div>\n    <div class=\"flex justify-content-end mr-2\">\n      <button pButton pRipple class=\"mr-2 mb-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n        (click)=\"actualizarRegistro()\" label=\"{{'link_actualizar' | translate}}\" *ngIf=\"!isNew\">\n      </button>\n      <button pButton pRipple class=\"mb-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n        (click)=\"showEliminarRegistroConfirmDialog()\" label=\"{{'link_eliminar' | translate}}\" *ngIf=\"!isNew\">\n      </button>\n      <button pButton pRipple class=\"mb-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n        (click)=\"crearRegistro()\" label=\"{{'link_guardar' | translate}}\" *ngIf=\"isNew\"></button>\n    </div>\n  </div>\n  }\n</div>\n<p-confirmPopup></p-confirmPopup>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ProcesoSeleccionModel } from '../../models/ProcesoSeleccionModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel} from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { DatePipe} from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\n\n@Component({\n  selector : 'app-popup-unir-proceso-seleccion',\n  templateUrl: './popup-unir-proceso-seleccion.component.html',\n  styleUrl: './popup-unir-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule, CalendarModule,\n    InputTextModule, DatePipe, TranslateModule, FiltroGeneralComponent, FormsModule, InputHelperUnidadComponent]\n})\n\nexport class PopupUnirProcesoSeleccionComponent implements OnInit{\n\n  @Input() showDialog: boolean;\n  @Input() procesoSeleccionado: ProcesoSeleccionModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  onChange: Function = () => { };\n  public listaBuscar: ProcesoSeleccionModel[] = [];\n  public listaProceso: ProcesoSeleccionModel[] = [];\n  public tipo : string;\n  public codigoUnidad: string;\n  public nombreUnidad: string;\n  filters =[];\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService,\n    private controlFuncionalidad: CargarControlFuncionalidadService, private listaConstantesPipe: ListaConstantesPipe) {}\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar(){\n    this.codigoUnidad = null;\n    this.nombreUnidad = null;\n    this.crearFiltro();\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'numero',\n        header: this.translateService.instant('numero'),\n        matchMode: 'contains'\n      },\n      {\n        field: 'unidad',\n        header: this.translateService.instant('unidadorganizacional'),\n        matchMode: 'equal',\n      },\n    ];\n  }\n\n  async cargarListaProceso(event){\n    if(event?.unidad == null){\n      this.codigoUnidad = null;\n    }\n    this.listaProceso = [];\n    if(event?.numero || event?.unidad != null){\n      let filtro : ProcesoSeleccionModel = new ProcesoSeleccionModel();\n      filtro.numero = event?.numero?.value != null ? event.numero?.value : null;\n      filtro.unidad = event?.unidad?.value != null ? event.unidad?.value : null,\n      this.listaProceso = await this.generalService.queryForList(new GeneralModel('ProcesoSeleccionDTO', null, false, filtro)).toPromise();\n    }\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  seleccionRegistro(event) {\n    this.onSelected.emit(event.data);\n    this.showDialog = false;\n  }\n\n  onSelectUnidad(event) {\n    if (event?.unidad) {\n      this.codigoUnidad = event.unidad;\n      this.nombreUnidad = event.nombreUnidad;\n    } else {\n      this.codigoUnidad = null;\n      this.nombreUnidad = null;\n    }\n  }\n\n}\n","<p-dialog header=\"{{'proceso' | translate}}\" [(visible)]=\"showDialog\" [style]=\"{width: '54vw'}\"\n  (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n  <div class=\"flex justify-content-between align-items-center mt-2\">\n    <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaProceso($event)\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText type=\"text\" formControlName=\"numero\" autocomplete=\"off\" maxlength=\"5\"\n                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n              <label>{{'numero' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <app-input-helper-unidad [readonly]=\"false\" [mostrarX]=\"codigoUnidad != null && codigoUnidad != ''\" [header]=\"'unidadorganizacional' | translate\"\n              [label]=\"codigoUnidad ? nombreUnidad : ''\" (onSelected)=\"onSelectUnidad($event)\" formControlName=\"unidad\">\n            </app-input-helper-unidad>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n\n  <div class=\"mt-2\">\n    <p-table #tablaGeneral [value]=\"listaProceso\" selectionMode=\"single\" [rows]=\"10\" responsiveLayout=\"scroll\"\n      [paginator]=\"listaProceso.length > 10\" [totalRecords]=\"listaProceso.length\" [tableStyle]=\"{'min-width':'48rem'}\"\n      [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped\" (onRowSelect)=\"seleccionRegistro($event)\"\n      [scrollable]=\"true\" selectionMode=\"single\" >\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th style=\"width: 20%;\">{{ 'unidadorganizacional' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'cargo' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'sucursal' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'numero' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'consecutivo' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'fecha' | translate }}</th>\n          <th style=\"width: 15%;\">{{ 'estado' | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-registroProceso>\n        <tr [pSelectableRow]=\"registroProceso\">\n          <td style=\"width: 20%;\">{{registroProceso.nombreunidad}}</td>\n          <td style=\"width: 15%;\">{{'.' == registroProceso.nombrecargo ? '' : registroProceso.cargo}} - {{'.' == registroProceso.nombrecargo ? registroProceso.nombreCargoNuevo : registroProceso.nombrecargo}}</td>\n          <td style=\"width: 15%;\">{{registroProceso.nombreSucursal}}</td>\n          <td style=\"width: 15%;\">{{registroProceso.numero}}</td>\n          <td style=\"width: 15%;\">{{registroProceso.consecutivoReq}}</td>\n          <td style=\"width: 15%;\">{{registroProceso.fechainicio | date : ( 'formatofecha' | translate)}}</td>\n          <td style=\"width: 15%;\">{{registroProceso.descripcionEstado}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n  </div>\n\n</p-dialog>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralModel, UtilsService } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { PopupUnirProcesoSeleccionComponent } from '../../../popups/popup-unir-proceso-seleccion/popup-unir-proceso-seleccion.component';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\n\n@Component({\n  selector: 'app-grupo-proceso-seleccion',\n  templateUrl: './grupo-proceso-seleccion.page.html',\n  styleUrl: './grupo-proceso-seleccion.page.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, DatePipe,\n    ConfirmPopupModule, PopupUnirProcesoSeleccionComponent, ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent\n  ],\n})\n\nexport class GrupoProcesoSeleccionPage implements OnInit {\n\n  @Input() public isNew : boolean;\n  @Input() public procesoSeleccionado : ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaGrupo: ProcesoSeleccionModel[] = [];\n  public procesoGrupoSeleccionado : ProcesoSeleccionModel;\n  public tipo : string;\n  verPopupUnirProcesoSeleccion : boolean;\n\n\n  constructor(private generalService: GeneralService, public utilsService: UtilsService,\n    public listaConstantesPipe: ListaConstantesPipe, public generalPipe: GeneralPipe,\n    private confirmationService: ConfirmationService\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar(){\n    this.cargarListaGrupo();\n  }\n\n  async cargarListaGrupo(){\n    this.tipo = null;\n    let comodin : ProcesoSeleccionModel = new ProcesoSeleccionModel();\n    if(this.procesoSeleccionado.principal == null){\n      comodin = new ProcesoSeleccionModel();\n      comodin.principal = this.procesoSeleccionado.llaveTabla;\n      this.listaGrupo = await this.generalService.queryForList(new GeneralModel('ProcesoSeleccionDTO', null, false, comodin)).toPromise();\n      if(0 == this.listaGrupo.length){\n        this.tipo = 'nodefinido';\n        return;\n      }\n      this.tipo = 'principal';\n      this.procesoSeleccionado.tipoGrupo = 'Principal';\n      this.listaGrupo.push(this.procesoSeleccionado);\n      return;\n    }\n\n    comodin = new ProcesoSeleccionModel();\n    comodin.llaveTabla = this.procesoSeleccionado.principal;\n    let principal : ProcesoSeleccionModel = new ProcesoSeleccionModel();\n    principal = await this.generalService.queryForObject(new GeneralModel('ProcesoSeleccionDTO', null, false, comodin)).toPromise();\n    if(principal.llaveTabla == null){\n      this.tipo = 'nodefinido';\n      return;\n    }\n    comodin = new ProcesoSeleccionModel();\n    comodin.principal = this.procesoSeleccionado.principal;\n    this.listaGrupo = await this.generalService.queryForList(new GeneralModel('ProcesoSeleccionDTO', null, false, comodin)).toPromise();\n    this.tipo = 'noprincipal';\n    principal.tipoGrupo = 'Principal';\n    this.listaGrupo.push(this.procesoSeleccionado);\n  }\n\n\n  seleccionRegistroGrupo(event) {\n    if (event != null) {\n      this.procesoGrupoSeleccionado = new ProcesoSeleccionModel();\n      this.procesoGrupoSeleccionado = event.data;\n    }\n  }\n\n  asociar(){\n    this.verPopupUnirProcesoSeleccion = true;\n  }\n\n  showDesasociarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.desasociar();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async desasociar(){\n    this.procesoSeleccionado.principal = null;\n    await this.generalService.update(new GeneralModel('ProcesoSeleccionDTO', null, false, this.procesoSeleccionado)).toPromise();\n    this.cargarListaGrupo();\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  seleccionAccionMenu(event) {\n    if(event != null){\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'grupo' | translate}}</h4>\n</div>\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <div class=\"flex justify-content-end\">\n    <button pButton pRipple (click)=\"asociar()\" label=\"{{'asociar'| translate}}\" icon=\"pi pi-plus\"\n      class=\"p-button-outlined flex-shrink-0 mb-2\" *ngIf=\"'nodefinido' == tipo && !isBloquear()\">\n    </button>\n    <button pButton pRipple (click)=\"showDesasociarConfirmDialog()\" label=\"{{'desasociar'| translate}}\"\n      icon=\"pi pi-times\" class=\"p-button-outlined flex-shrink-0 mb-2\" *ngIf=\"'noprincipal' == tipo && !isBloquear()\">\n    </button>\n  </div>\n\n  <p-table #tablaGeneralGrupo id=\"tablaGrupo\" [value]=\"listaGrupo\" responsiveLayout=\"scroll\" [rows]=\"10\"\n    [paginator]=\"listaGrupo.length > 10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"listaGrupo.length\" [scrollable]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 20%;\">{{ 'unidadorganizacional' | translate }}</th>\n        <th style=\"width: 20%;\">{{ 'cargo' | translate }}</th>\n        <th style=\"width: 10%;\">{{ 'sucursal' | translate }}</th>\n        <th style=\"width: 10%;\">{{ 'numero' | translate }}</th>\n        <th style=\"width: 10%;\">{{ 'consecutivo' | translate }}</th>\n        <th style=\"width: 10%;\">{{ 'fecha' | translate }}</th>\n        <th style=\"width: 10%;\">{{ 'estado' | translate }}</th>\n        <th style=\"width: 10%;\">{{ 'tipo' | translate }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-grupo>\n      <tr [pSelectableRow]=\"grupo\" style=\"width: 100%;\">\n        <td style=\"width: 20%;\">{{grupo.nombreunidad}}</td>\n        <td style=\"width: 20%;\">{{'.' === grupo.nombrecargo ? '' : grupo.cargo}} - {{'.' === grupo.nombrecargo ?\n          grupo.nombreCargoNuevo : grupo.nombrecargo}}</td>\n        <td style=\"width: 10%;\">{{grupo.nombreSucursal}}</td>\n        <td style=\"width: 10%;\">{{grupo.numero}}</td>\n        <td style=\"width: 10%;\">{{grupo.consecutivoReq}}</td>\n        <td style=\"width: 10%;\">{{grupo.fechainicio | date:('formatofecha'|translate)}}</td>\n        <td style=\"width: 10%;\">{{grupo.descripcionEstado}}</td>\n        <td style=\"width: 10%;\">{{grupo.tipoGrupo}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n<div *ngIf=\"verPopupUnirProcesoSeleccion\">\n  <app-popup-unir-proceso-seleccion [showDialog]=\"verPopupUnirProcesoSeleccion\"\n    [procesoSeleccionado]=\"procesoSeleccionado\"></app-popup-unir-proceso-seleccion>\n</div>\n<p-confirmPopup></p-confirmPopup>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { WorkflowPipe } from '../../../../shared/pipes/workflow.pipe';\nimport { FiltroGeneralComponent } from 'general-library-union';\nimport { ActividadFuenteTareaService } from '../../services/actividadFuenteTarea.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-atributos',\n    templateUrl: './popup-atributos.component.html',\n    styleUrls: ['./popup-atributos.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule, InputTextModule, TranslateModule, FiltroGeneralComponent]\n})\nexport class PopupAtributosComponent implements OnInit {\n\n  @Input() opcSeleccionada: string;\n  @Input() mostrarPopup: boolean;\n\n  @Output() regresar = new EventEmitter;\n  paginator = {rows: 10, totalRecords: 0};\n  filters = [];\n\n  public listaAtributos : any;\n  public listaAtributosFiltro : any;\n\n  constructor(private workflowPipe : WorkflowPipe, private actividadFuenteTareaService : ActividadFuenteTareaService,\n    private translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.cargar();\n\n  }\n\n  async cargar(){\n    this.crearFiltro();\n    this.cargarListaObjeto();\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'filtro',\n        header: this.translateService.instant('atributo'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  cargarListaObjeto(){\n    if (this.workflowPipe.PROCESOCONTRATACION === this.opcSeleccionada) {\n      this.obtenerAtributos('ActoAdministrativoDTO', true);\n    } else if (this.workflowPipe.PROCESOREQUERIMIENTO === this.opcSeleccionada) {\n      this.obtenerAtributos('RequerimientoPersonalDTO', true);\n    } else if (this.workflowPipe.PROCESOSELECCION === this.opcSeleccionada) {\n      this.obtenerAtributos('ProcesoSeleccionDTO', true);\n    } else if (this.workflowPipe.PROCESOSELECCIONCANDIDATO === this.opcSeleccionada) {\n      this.obtenerAtributos('CandidatoDTO', true);\n    } else if (this.workflowPipe.PROCESOVACACIONES === this.opcSeleccionada) {\n      this.obtenerAtributos('AusenciaNovedadDTO', true);\n    } else if (this.workflowPipe.PROCESOINCAPACIDAD === this.opcSeleccionada) {\n      this.obtenerAtributos('AusenciaNovedadDTO', true);\n    } else if (this.workflowPipe.PROCESOLICENCIA === this.opcSeleccionada) {\n      this.obtenerAtributos('AusenciaNovedadDTO', true);\n    } else if (this.workflowPipe.PROCESOINTERRUPCION === this.opcSeleccionada) {\n      this.obtenerAtributos('AusenciaNovedadDTO', true);\n    } else if (this.workflowPipe.PROCESONOVEDAD === this.opcSeleccionada) {\n      this.obtenerAtributos('NovedadDTO', true);\n    } else if (this.workflowPipe.PROCESOBENEFICIO === this.opcSeleccionada) {\n      this.obtenerAtributos('BeneficioEmpleadoDTO', true);\n    } else if (this.workflowPipe.PROCESOBIENESTAR === this.opcSeleccionada) {\n      this.obtenerAtributos('AsistenteEventoDTO', true);\n    } else if (this.workflowPipe.PROCESOCAPACITACION === this.opcSeleccionada) {\n      this.obtenerAtributos('CapacitacionEvaluacionDTO', true);\n    } else if (this.workflowPipe.PROCESOSOLICITUDES === this.opcSeleccionada) {\n      this.obtenerAtributos('SolicitudDTO', true);\n    } else if (this.workflowPipe.PROCESOHOJAVIDA === this.opcSeleccionada) {\n      this.obtenerAtributos('HojaVidaDTO', true);\n    } else if (this.workflowPipe.PROCESOPUNTAJEDOCENTE === this.opcSeleccionada) {\n      this.obtenerAtributos('SolicitudPuntoDTO', true);\n    } else if (this.workflowPipe.PROCESOCONVOCATORIA === this.opcSeleccionada) {\n      this.obtenerAtributos('CandidatoDTO', true);\n    } else if (this.workflowPipe.PROCESOVIATICO === this.opcSeleccionada) {\n      this.obtenerAtributos('ViaticoDTO', true);\n    } else if (this.workflowPipe.PROCESODESCRIPCIONCARGO === this.opcSeleccionada) {\n      this.obtenerAtributos('PerfilFuncionDTO', true);\n    } else if (this.workflowPipe.PROCESOELEMENTO === this.opcSeleccionada) {\n      this.obtenerAtributos('SolicitudElementoDTO', true);\n    } else if (this.workflowPipe.PROCESOFASEGESTION === this.opcSeleccionada) {\n      this.obtenerAtributos('FaseGestionHojaDTO', true);\n    }else{\n      this.obtenerAtributos('ProcesoSeleccionDTO', false);\n    }\n  }\n\n  async obtenerAtributos(clase : string, actividad : boolean){\n    this.listaAtributos = [];\n    let resultado = await this.actividadFuenteTareaService.cargarAtributos({'claseObj' : clase, 'actividad' : actividad}).toPromise();\n    if(resultado?.resultado){\n      this.listaAtributos = resultado.resultado;\n    }\n  }\n\n  regresarVista() {\n    this.mostrarPopup = false;\n    this.regresar.emit(false);\n  }\n\n  cargarListaObjetoFiltro(event){\n    if(event?.filtro?.value){\n      this.listaAtributosFiltro = this.listaAtributos;\n      this.listaAtributos = this.listaAtributosFiltro.filter((item) => item.toLowerCase().includes(event.filtro.value.toLowerCase()));\n    }else{\n      this.cargarListaObjeto();\n    }\n  }\n\n}\n","\n<p-dialog header=\"{{'atributo' | translate}}s\" [(visible)]=\"mostrarPopup\" appendTo=\"body\" [style]=\"{width: '47vw'}\"\n    (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-3\">\n      <app-filtro-general #tablaGeneral [filtros]=\"filters\" (metodoRegresar)=\"cargarListaObjetoFiltro($event)\">\n          <ng-template let-form>\n              <ng-container [formGroup]=\"form\">\n                  <div class=\"flex mt-3\">\n                      <div class=\"mr-3 w-full\">\n                          <span class=\"p-float-label\">\n                              <input pInputText type=\"text\" id=\"filtro\" formControlName=\"filtro\"\n                                  autocomplete=\"off\" />\n                              <label for=\"filtro\"> {{'atributo' | translate}}</label>\n                          </span>\n                      </div>\n                  </div>\n              </ng-container>\n          </ng-template>\n      </app-filtro-general>\n    </div>\n    <p-table #tablaGeneral styleClass=\"p-datatable-striped input-helper-datatable\"\n      [value]=\"listaAtributos\" [rows]=\"10\" [paginator]=\"listaAtributos.length > 10\" [totalRecords]=\"listaAtributos.length\"\n      [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n      <ng-template pTemplate=\"header\">\n        <tr style=\"width: 100%;\">\n          <th style=\"width: 100%;\">{{'nombre' | translate}} {{'atributo' | translate}}</th>\n        </tr>\n        <th></th>\n      </ng-template>\n\n      <ng-template pTemplate=\"body\" let-objeto>\n        <tr [pSelectableRow]=\"objeto\" style=\"width: 100%;\">\n          <td style=\"width: 100%;\">{{objeto}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { EditorModule } from 'primeng/editor';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { GeneralModel, ToastService } from 'general-library-union';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { PopupAtributosComponent } from '../../../../../modules/sarageneral/popups/popup-atributos/popup-atributos.component';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\n\n@Component({\n  selector : 'app-publicacion-proceso-seleccion',\n  standalone: true,\n  templateUrl: './publicacion-proceso-seleccion.component.html',\n  styleUrl: './publicacion-proceso-seleccion.component.scss',\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, EditorModule, DatePipe,\n    TranslateModule, TooltipModule, PopupAtributosComponent, ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent],\n})\nexport class PublicacionProcesoSeleccionComponent implements OnInit {\n\n  @ViewChild('formMostrarPublicacion', { static: false }) formMostrarPublicacion!: NgForm;\n  @Input() public procesoSeleccionado : ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public opcSeleccionada : string;\n  verPopupAtributos : boolean;\n\n\n  constructor(private confirmationService: ConfirmationService, private toastService: ToastService,\n    public listaConstantesPipe: ListaConstantesPipe, private generalService: GeneralService,\n    private procesoSeleccionService: ProcesoSeleccionService,\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n\n  cargar(){\n    this.procesoSeleccionado.publicacion = this.procesoSeleccionado.publicacion != null ? new Date(this.procesoSeleccionado.publicacion) : null;\n    this.procesoSeleccionado.publicaHasta = this.procesoSeleccionado.publicaHasta != null ? new Date(this.procesoSeleccionado.publicaHasta) : null;\n  }\n\n  publicar() {\n    if (this.formMostrarPublicacion.valid) {\n      if (new Date(this.procesoSeleccionado.publicacion) < new Date(this.procesoSeleccionado.publicaHasta)) {\n        this.procesoSeleccionado.fechaModificado = new Date();\n        this.procesoSeleccionado.publicacion = new Date(this.procesoSeleccionado.publicacion);\n        this.procesoSeleccionado.publicaHasta = new Date(this.procesoSeleccionado.publicaHasta);\n        this.generalService.update(new GeneralModel('ProcesoSeleccionDTO', null, false, this.procesoSeleccionado)).toPromise();\n        if (this.listaConstantesPipe.MIXTO == this.procesoSeleccionado.origen || this.listaConstantesPipe.PROCESOEXTERNO == this.procesoSeleccionado.origen) {\n          this.showPublicarConfirmDialog();\n        }\n        this.toastService.showSuccess('El proceso ha sido publicado exitosamente');\n      } else {\n        const fechaPublicacionFormateada: string = new Date(this.procesoSeleccionado.publicacion).toLocaleDateString('es-ES');\n        const fechaPublicaHastaFormateada: string = new Date(this.procesoSeleccionado.publicaHasta).toLocaleDateString('es-ES');\n        this.toastService.showError('La fecha ' + fechaPublicaHastaFormateada + ' debe ser mayor a la fecha ' + fechaPublicacionFormateada);\n      }\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formMostrarPublicacion.controls).forEach((key) => {\n        if (this.formMostrarPublicacion.controls[key].invalid) {\n          this.formMostrarPublicacion.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  showPublicarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Desea publicar convocatoria también en Aspirantes?',\n      acceptLabel: Constantes.SI_STRING,\n      accept: () => {\n        this.confirmarPublicacionAspirantes();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async confirmarPublicacionAspirantes() {\n    let mensaje = await this.procesoSeleccionService.crearProcesoAspirantes({ proceso: this.procesoSeleccionado }).toPromise();\n    if (mensaje?.resultado != null) {\n      this.toastService.showSuccess(mensaje.resultado);\n    }\n  }\n\n  isBloquear(){\n    return false;\n  }\n\n  verObjeto(){\n    this.verPopupAtributos = true;\n  }\n\n  regresaPopupAtributos(){\n    this.verPopupAtributos = false;\n  }\n\n  seleccionAccionMenu(event) {\n    if(event != null){\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'publicacion' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"card\">\n    <h5 class=\"mt-5\"><i class=\"glyphicons glyphicons-book\"></i>{{'link_publicar' | translate}}</h5>\n    <form #formMostrarPublicacion=\"ngForm\">\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <div class=\"Inputgroup\">\n                <div class=\"p-fluid p-formgrid grid\">\n\n                    <!-- PUBLICACIÓN -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"publicacion\" appendTo=\"body\" [disabled]=\"isBloquear()\"\n                                name=\"publicacion\" [(ngModel)]=\"procesoSeleccionado.publicacion\" dateFormat=\"dd/mm/yy\"\n                                required></p-calendar>\n                            <label htmlFor=\"publicacion\">{{'publicacion' | translate }} *</label>\n                        </span>\n                    </div>\n\n                    <!-- HASTA -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [showIcon]=\"true\" id=\"publicaHasta\" appendTo=\"body\" [disabled]=\"isBloquear()\"\n                                name=\"publicaHasta\" [(ngModel)]=\"procesoSeleccionado.publicaHasta\" dateFormat=\"dd/mm/yy\"\n                                required></p-calendar>\n                            <label htmlFor=\"publicaHasta\">{{'hasta' | translate }} *</label>\n                        </span>\n                    </div>\n\n                    <!-- CONSECUTIVO -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input class=\"form-control input-md\" pInputText type=\"text\" id=\"cadenaConsecutivo\" name=\"cadenaConsecutivo\"\n                                [disabled]=\"true\" [(ngModel)]=\"procesoSeleccionado.cadenaConsecutivo\" />\n                            <label htmlFor=\"cadenaConsecutivo\">{{'consecutivo' | translate}}</label>\n                        </span>\n                    </div>\n\n                </div>\n\n                <div class=\"flex justify-content-end\">\n                    <!-- Ver Atributos -->\n                    <button pButton pRipple class=\"mt-2 mr-2 p-button p-button-rounded p-button-secondary\"\n                        icon=\"glyphicons glyphicons-justify\" (click)=\"verObjeto()\"\n                        pTooltip=\"{{'atributos' | translate}}\" tooltipPosition=\"bottom\"></button>\n                    <!-- Botón de publicar -->\n                    <button pButton pRipple (click)=\"publicar()\" label=\"{{'publicar' | translate }}\"\n                        icon=\"glyphicons glyphicons-new-window\" class=\"m-2 p-button p-button-raised\"></button>\n                </div>\n\n                <!-- DETALLE -->\n                <div class=\"field col-12 md:col-6 lg:col-12\">\n                    <p-editor [style]=\"{ height: '320px' }\" name=\"detallePublicacion\"\n                        [(ngModel)]=\"procesoSeleccionado.detallePublicacion\" maxlength=\"2000\" required></p-editor>\n                </div>\n\n            </div>\n        </div>\n\n    </form>\n</div>\n<div *ngIf=\"verPopupAtributos\">\n    <app-popup-atributos [mostrarPopup]=\"verPopupAtributos\" [opcSeleccionada]=\"opcSeleccionada\"\n        (regresar)=\"regresaPopupAtributos()\"></app-popup-atributos>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { ReclamacionProcesoModel } from '../../models/ReclamacionProcesoModel';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DialogModule } from 'primeng/dialog';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { ArchivoModel } from '../../../../modules/hojavida/models/ArchivoModel';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { AuthService, GeneralModel, ParametrosGeneralModel, ToastService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { ReclamacionProcesoService } from '../../services/reclamacion-proceso.service';\nimport { HojaVidaService } from '../../../../modules/hojavida/services/hojavida.service';\n\n@Component({\n  selector: 'app-popup-adendo-proceso',\n  templateUrl: './popup-adendo-proceso.component.html',\n  styleUrls: ['./popup-adendo-proceso.component.scss'],\n  standalone: true,\n  imports: [DialogModule, FormsModule, ReactiveFormsModule, InputTextModule, CalendarModule, NgIf,\n    ButtonDirective, Ripple, ConfirmPopupModule, TranslateModule, FileUploadModule, ConfirmPopupModule]\n})\nexport class PopupAdendoProcesoComponent implements OnInit {\n\n  @ViewChild('formAdendoProceso', { static: false }) formAdendoProceso!: NgForm;\n  @Input() mostrarPopup: boolean;\n  @Input() isNew: boolean;\n  @Input() grupal: boolean;\n  @Input() reclamacionProcesoSeleccionado: ReclamacionProcesoModel;\n  @Output() regresar = new EventEmitter;\n  public unicoAdjunto: ArchivoModel;\n  public archivoSeleccionado: File;\n  public nombreArchivo: string;\n  public titulo: string;\n\n  constructor(private translateService: TranslateService, private confirmationService: ConfirmationService,\n    private generalService: GeneralService, private reclamacionProcesoService : ReclamacionProcesoService,\n    private toastService : ToastService, private hojaVidaService : HojaVidaService, private authService: AuthService,\n    private cargarArchivoService: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService,\n  ) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  async cargar() {\n    this.unicoAdjunto = new ArchivoModel();\n    this.titulo = this.grupal ? this.translateService.instant('adendo') + Constantes.ESPACIO_BLANCO + this.translateService.instant('grupo')\n      : this.translateService.instant('adendo') + Constantes.ESPACIO_BLANCO + this.translateService.instant('individual');\n    this.reclamacionProcesoSeleccionado.fechaSolicitud = this.reclamacionProcesoSeleccionado?.fechaSolicitud != null ? new Date(this.reclamacionProcesoSeleccionado.fechaSolicitud) : null;\n    if (!this.isNew) {\n      await this.traerUnicoAdjuntoDetalle();\n    }\n  }\n\n  async traerUnicoAdjuntoDetalle() {\n    try {\n      let listaUnicoAdjunto: ArchivoModel[] = [];\n      listaUnicoAdjunto = await this.generalService.queryForList(new GeneralModel('ArchivoDTO', null, false, { nombreTabla: 'ADENDOPROCESOSELE', llaveTablaArchivo: this.reclamacionProcesoSeleccionado.llaveTabla })).toPromise();\n      if (0 == listaUnicoAdjunto.length) {\n        this.unicoAdjunto = new ArchivoModel();\n        return;\n      }\n      this.unicoAdjunto = listaUnicoAdjunto[0];\n      if (this.unicoAdjunto.archivoorigen == null) {\n        return;\n      }\n    } catch (error) {\n      console.log(JSON.stringify(error));\n    }\n  }\n\n  cargarArchivo(data: any, fubauto) {\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.unicoAdjunto.archivoorigen = this.archivoSeleccionado.name;\n    fubauto.clear();\n  }\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.nombreArchivo = file.name;\n  }\n\n  regresarVistaAdendoProceso() {\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n  showEliminarRegistroConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async eliminarRegistro() {\n    let result: number = await this.generalService.delete(new GeneralModel('ReclamacionProcesoDTO', null, false, this.reclamacionProcesoSeleccionado)).toPromise();\n    if (1 == result) {\n      if(this.unicoAdjunto.llaveTabla != null){\n        await this.generalService.delete(new GeneralModel('ArchivoDTO', null, false, this.unicoAdjunto)).toPromise();\n        if(this.grupal){\n          await this.reclamacionProcesoService.actualizarGrupoSeleccion({ reclamacion: this.reclamacionProcesoSeleccionado }).toPromise();\n        }\n        this.eliminarArchivo(this.unicoAdjunto);\n      }\n      this.regresarVistaAdendoProceso();\n      this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n    } else {\n      this.toastService.showError('Error en actualizar el registro');\n      throw new Error('Error en el método de actualizar');\n    }\n  }\n\n  eliminarArchivo(registro : ArchivoModel) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivoService.eliminarArchivo(this.encriptadoBasico.encriptar(registro.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {});\n  }\n\n\n  async guardarRegistro() {\n    if (this.formAdendoProceso.valid) {\n      if(this.isNew){\n        this.reclamacionProcesoSeleccionado = await this.generalService.crearRegistro(new GeneralModel('ReclamacionProcesoDTO', null, false, this.reclamacionProcesoSeleccionado)).toPromise();\n        this.isNew = false;\n      }else{\n        await this.generalService.update(new GeneralModel('ReclamacionProcesoDTO', null, false, this.reclamacionProcesoSeleccionado)).toPromise();\n      }\n      await this.hojaVidaService.insertAdjuntoTabla({ archivo: this.unicoAdjunto, tabla: 'ADENDOPROCESOSELE', llaveBase: this.reclamacionProcesoSeleccionado.llaveTabla }).toPromise();\n      if(this.grupal){\n        await this.reclamacionProcesoService.actualizarGrupoSeleccion(new GeneralModel('ReclamacionProcesoDTO', null, false, this.reclamacionProcesoSeleccionado)).toPromise();\n      }\n      this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formAdendoProceso.controls).forEach((key) => {\n        if (this.formAdendoProceso.controls[key].invalid) {\n          this.formAdendoProceso.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  async notificar(){\n    let objParametros : ParametrosGeneralModel = new ParametrosGeneralModel('ReclamacionProcesoDTO', this.reclamacionProcesoSeleccionado, null,\n      {\n        login : this.authService.getTokenKey('usuario'),\n        llaveRol : this.authService.getTokenKey('llaveRol'),\n        llaveEmpresa : this.authService.getTokenKey('llaveEmpresa')\n      }, null);\n    await this.reclamacionProcesoService.notificarAdendo(objParametros).toPromise();\n    this.toastService.showSuccess('Notificaci' + Constantes.O_TIDLE_MIN + 'n fue enviada');\n  }\n\n}\n","<p-dialog [header]=\"titulo\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '54vw'}\" (onHide)=\"regresarVistaAdendoProceso()\"\n  [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n  <div class=\"justify-content-between align-items-center\">\n    <div>\n      <span class=\"font-semibold mt-3\">{{ reclamacionProcesoSeleccionado.descripcionEtapa }}</span>\n    </div>\n  </div>\n\n  <div class=\"mt-3\">\n    <form #formAdendoProceso=\"ngForm\">\n      <div class=\"col-12 md:col-12 lg:col-12\">\n        <div class=\"p-fluid p-formgrid grid\">\n\n          <!-- MOTIVO -->\n          <div class=\"field col-12 md:col-8 lg:col-8\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"detalle\"\n                [(ngModel)]=\"reclamacionProcesoSeleccionado.detalle\" name=\"detalle\" maxlength=\"60\" required />\n              <label htmlFor=\"detalle\">{{'motivo' | translate}} *</label>\n            </span>\n          </div>\n\n          <!-- REGISTRO -->\n          <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n              <p-calendar [showIcon]=\"true\" id=\"fechaSolicitud\" appendTo=\"body\" name=\"fechaSolicitud\"\n                [(ngModel)]=\"reclamacionProcesoSeleccionado.fechaSolicitud\" dateFormat=\"dd/mm/yy\"></p-calendar>\n              <label htmlFor=\"fechaSolicitud\">{{'registro' | translate }}</label>\n            </span>\n          </div>\n\n          <!-- ADJUNTO -->\n          <div class=\"field col-12 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"descripcion\" name=\"descripcion\"\n                [(ngModel)]=\"unicoAdjunto.descripcion\" maxlength=\"30\" />\n              <label htmlFor=\"descripcion\">{{'adjunto' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- ARCHIVO -->\n          <div class=\"col-12 md:col-6 lg:col-6\">\n            <div class=\"p-inputgroup\">\n              <span class=\"p-float-label\">\n                <input pInputText #inputText [readonly]=\"true\" [(ngModel)]=\"unicoAdjunto.archivoorigen\"\n                  name=\"archivoorigen\" disabled />\n                <label htmlFor=\"archivo\">{{'archivo' | translate}}</label>\n                <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\" [accept]=\"'.pdf'\"\n                  (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n              </span>\n            </div>\n          </div>\n\n        </div>\n      </div>\n    </form>\n    <div class=\"flex justify-content-end\">\n      <button pButton pRipple class=\"mr-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n        (click)=\"guardarRegistro()\" label=\"{{'link_actualizar' | translate}}\" *ngIf=\"!isNew\">\n      </button>\n      <button pButton pRipple class=\"mr-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n        (click)=\"showEliminarRegistroConfirmDialog()\" label=\"{{'link_eliminar' | translate}}\" *ngIf=\"!isNew\">\n      </button>\n      <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n        (click)=\"guardarRegistro()\" label=\"{{'link_guardar' | translate}}\" *ngIf=\"isNew\">\n      </button>\n      <button pButton pRipple class=\"mr-2 p-button-outlined\" icon=\"glyphicons glyphicons-envelope\"\n        (click)=\"notificar()\" label=\"{{'link_notificar' | translate}}\" *ngIf=\"!isNew\">\n      </button>\n    </div>\n  </div>\n</p-dialog>\n<p-confirmPopup></p-confirmPopup>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { environment } from '../../../../../../environments/environment';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ReclamacionProcesoModel } from '../../../models/ReclamacionProcesoModel';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { PopupAdendoProcesoComponent } from '../../../popups/popup-adendo-proceso/popup-adendo-proceso.component';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\n\n@Component({\n  selector: 'app-adendo-proceso-seleccion',\n  templateUrl: './adendo-proceso-seleccion.component.html',\n  styleUrl: './adendo-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,\n    DatePipe, FileUploadModule, CheckboxModule, ConfirmPopupModule, PopupAdendoProcesoComponent,\n    ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent\n  ],\n})\nexport class AdendoProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaAdendo: ReclamacionProcesoModel[] = [];\n  public reclamacionProcesoSeleccionado: ReclamacionProcesoModel;\n  public isNew: boolean;\n  public grupal: boolean;\n  public procesoPrincipal: boolean;\n  verPopupAdendo: boolean;\n\n  constructor(private generalService: GeneralService, public utilsService: UtilsService,\n    public listaConstantesPipe: ListaConstantesPipe, public generalPipe: GeneralPipe,\n    private cargarArchivoService: CargarArchivosService, private toastService: ToastService,\n    private encriptadoBasico: EncriptadoBasicoService, public procesoSeleccionService: ProcesoSeleccionService,\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.cargarListaAdendos();\n  }\n\n  async cargarListaAdendos() {\n    let respuesta = await this.procesoSeleccionService.traerAdendos({ llaveProceso: this.procesoSeleccionado.llaveTabla }).toPromise();\n    if (respuesta?.resultado != null) {\n      this.listaAdendo = respuesta.resultado;\n    }\n  }\n\n  async nuevoRegistroAdendo() {\n    await this.isProcesoPrincipal();\n    if (!this.isBloquear() && this.grupal) {\n      this.grupal = true;\n    } else if (!this.isBloquear()) {\n      this.grupal = false;\n    }\n    let listadoEtapa: EtapaProcesoModel[] = [];\n    let filtro = new GeneralModel('EtapaProcesoDTO', null, false, { procesoSeleccion: this.procesoSeleccionado.llaveTabla, individual: 'W', origen: Constantes.CONSTANTE_SI, tipoEtapa: null });\n    listadoEtapa = await this.generalService.queryForList(filtro).toPromise();\n    let etapaReclama: EtapaProcesoModel = new EtapaProcesoModel();\n    etapaReclama = null;\n    listadoEtapa.forEach(etapaProceso => {\n      if (this.listaConstantesPipe.PROCESO == etapaProceso.estado) {\n        etapaReclama = etapaProceso;\n      }\n    });\n\n    if (etapaReclama == null) {\n      this.toastService.showError('Etapa activa no se encuentra');\n      return;\n    } else {\n      this.reclamacionProcesoSeleccionado = new ReclamacionProcesoModel();\n      this.isNew = true;\n      this.verPopupAdendo = true;\n    }\n  }\n\n  async isProcesoPrincipal() {\n    this.procesoPrincipal = false;\n    let procesoSel: ProcesoSeleccionModel = new ProcesoSeleccionModel();\n    procesoSel.principal = this.procesoSeleccionado.llaveTabla;\n    let cantExiste: number = await this.generalService.cantidadRegistros(new GeneralModel('ProcesoSeleccionDTO', null, false, procesoSel)).toPromise();\n    if (0 < cantExiste) {\n      this.procesoPrincipal = true;\n    }\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  seleccionRegistroAdendo(event) {\n    this.reclamacionProcesoSeleccionado = new ReclamacionProcesoModel();\n    if (event?.data != null) {\n      this.reclamacionProcesoSeleccionado = event.data;\n      this.isNew = false;\n      this.verPopupAdendo = true;\n    }\n  }\n\n  regresarPopupAdendoProceso() {\n    this.cargarListaAdendos();\n    this.verPopupAdendo = false;\n  }\n\n  descargarAdendo(adendo) {\n    let aplicacion = environment.codigoAplicacion;\n    this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(adendo.rutaSolicitud), aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = adendo.nombreArchivo;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'adendo' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <div class=\"flex justify-content-end\">\n    <!-- Botón de nuevo-->\n    <button pButton pRipple (click)=\"nuevoRegistroAdendo()\" label=\"Nuevo\" icon=\"pi pi-plus\"\n      class=\"p-button-secondary font-semibold flex-shrink-0 mb-2\"></button>\n  </div>\n\n  <p-table #tablaGeneralAdendo id=\"tabla_adendo\" [value]=\"listaAdendo\" responsiveLayout=\"scroll\" [rows]=\"10\"\n    [paginator]=\"listaAdendo.length > 10\" scrollDirection=\"horizontal\" selectionMode=\"single\"\n    styleClass=\"p-datatable-striped\" [totalRecords]=\"listaAdendo.length\" (onRowSelect)=\"seleccionRegistroAdendo($event)\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 30%;\">{{ 'fecha' | translate }}</th>\n        <th style=\"width: 30%;\">{{ 'vigencia' | translate }}</th>\n        <th style=\"width: 30%;\">{{ 'detalle' | translate }}</th>\n        <th style=\"width: 10%;\"></th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-adendo>\n      <tr [pSelectableRow]=\"adendo\" style=\"width: 100%;\">\n        <td style=\"width: 30%;\">{{adendo.fechaSolicitud | date:('formatofecha'|translate)}}</td>\n        <td style=\"width: 30%;\">{{adendo.descripcionEtapa}}</td>\n        <td style=\"width: 30%;\">{{adendo.detalle}}</td>\n        <td style=\"width: 10%;\">\n          <button pButton pRipple\n            class=\"p-element p-ripple p-button-rounded p-button-secondary mb-2 p-button p-component p-button-icon-only\"\n            *ngIf=\"adendo.rutaSolicitud != null\" icon=\"pi pi-download p-2\" (click)=\"descargarAdendo(adendo)\"\n            type=\"file\"></button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n<div *ngIf=\"verPopupAdendo\">\n  <app-popup-adendo-proceso [mostrarPopup]=\"verPopupAdendo\" [grupal]=\"grupal\"\n    [reclamacionProcesoSeleccionado]=\"reclamacionProcesoSeleccionado\" [isNew]=\"isNew\"\n    (regresar)=\"regresarPopupAdendoProceso()\"></app-popup-adendo-proceso>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { DimensionCargoModel } from '../../../models/DimensionCargoModel';\nimport { TipoActividadPipe } from '../../../pipes/tipo-actividad.pipe';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\n\n@Component({\n  selector: 'app-competencia-proceso-seleccion',\n  templateUrl: './competencia-proceso-seleccion.component.html',\n  styleUrl: './competencia-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, PrimeTemplate, FormsModule,\n    ReactiveFormsModule, InputTextModule, NgIf, DropdownModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    InputTextareaModule, PaginatorModule, CalendarModule,\n    FileUploadModule, ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent\n  ],\n\n})\nexport class CompetenciaProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaCompetencia: DimensionCargoModel[] = [];\n  public competenciaSeleccionada: DimensionCargoModel;\n  public buttonEditing: boolean;\n  public clickGuardar: boolean;\n  public nuevoRegistroPanel: boolean;\n  public listaCompetencias: any;\n\n\n  constructor(private generalService: GeneralService, private toastService: ToastService,\n    public utilsService: UtilsService, private cargarMapas: cargarmapasGlobal,\n    private confirmationService: ConfirmationService, private tipoActividadPipe: TipoActividadPipe,\n    public listaConstantesPipe: ListaConstantesPipe) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n\n  async cargar() {\n    this.clickGuardar = false;\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.cargarListaCompetencia();\n    this.cargarListaCompetencias();\n  }\n\n  async cargarListaCompetencia() {\n    this.listaCompetencia = await this.generalService.queryForList(new GeneralModel('DimensionCargoDTO', null, false,\n      { procesoSeleccion: this.procesoSeleccionado.llaveTabla })).toPromise();\n  }\n\n  async cargarListaCompetencias() {\n    this.listaCompetencias = await this.cargarMapas.cargarSelectItemString('dimension', 'descripcion', new GeneralModel('DimensionDTO', null, false, new DimensionCargoModel()));\n    this.listaCompetencias.sort((a, b) => a.label.localeCompare(b.label));\n  }\n\n  mostrarNuevoRegistro() {\n    this.competenciaSeleccionada = new DimensionCargoModel();\n    this.nuevoRegistroPanel = true;\n  }\n\n  async adicionarRegistro() {\n    this.clickGuardar = false;\n    if (!this.validarCampos(this.competenciaSeleccionada)) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    let cantidad = await this.generalService.cantidadRegistros(new GeneralModel('DimensionCargoDTO', null, false, { procesoSeleccion: this.procesoSeleccionado.llaveTabla, dimension: this.competenciaSeleccionada.dimension })).toPromise();\n    if (0 < cantidad) {\n      this.toastService.showError(Constantes.MENSAJE_EXISTE);\n      return;\n    }\n    this.competenciaSeleccionada.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n    this.competenciaSeleccionada.llaveTabla = this.utilsService.generarLlave();\n    this.competenciaSeleccionada = await this.generalService.crearRegistro(new GeneralModel('DimensionCargoDTO', null, false, this.competenciaSeleccionada)).toPromise();\n    await this.cargarListaCompetencia();\n    this.cancelarNuevoRegistro();\n    this.toastService.showSuccess(Constantes.MENSAJE_GUARDAR);\n  }\n\n  validarCampos(registro: DimensionCargoModel): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.dimension);\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.puntajeespera);\n    return validador;\n  }\n\n  cancelarNuevoRegistro() {\n    this.competenciaSeleccionada = new DimensionCargoModel();\n    this.nuevoRegistroPanel = false;\n  }\n\n  cancelarRegistro() {\n    this.buttonEditing = false;\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  editarRegistro() {\n    this.buttonEditing = true;\n  }\n\n  async actualizarRegistro(registro: DimensionCargoModel) {\n    this.clickGuardar = false;\n    if (!this.validarCampos(registro)) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    await this.generalService.update(new GeneralModel('DimensionCargoDTO', null, false, registro)).toPromise();\n    await this.cargarListaCompetencia();\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n  }\n\n\n  showEliminarRegConfirmDialog(registro: DimensionCargoModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro(registro);\n      },\n      reject: () => {\n      }\n    });\n  };\n\n\n  eliminarRegistro(registro: DimensionCargoModel) {\n    let objetoFiltro: GeneralModel = new GeneralModel('DimensionCargoDTO', null, false, registro);\n    this.generalService.delete(objetoFiltro).subscribe(data => {\n      let result: number = data;\n      if (result == 1) {\n        this.cargarListaCompetencia();\n        this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      } else {\n        this.toastService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'competencia' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div id=\"competenciaProcesoSeleccion\" class=\"mt-5\">\n  <div class=\"flex justify-content-end mb-1\">\n    <!-- Botón de nuevo-->\n    <button pButton label=\"{{'link_nuevo'| translate}}\" [disabled]=\"buttonEditing || nuevoRegistroPanel\"\n      class=\"p-ripple p-element p-button p-component  p-button-secondary mb-2\" type=\"button\"\n      (click)=\"mostrarNuevoRegistro()\"><span class=\"glyphicons glyphicons-plus\"></span></button>\n  </div>\n\n  <p-table #tablaGeneral id=\"tablaListaCompetenciaProcesoSel\" [value]=\"listaCompetencia\" responsiveLayout=\"scroll\"\n    [paginator]=\"listaCompetencia.length > 10\" [scrollable]=\"true\" scrollDirection=\"horizontal\"\n    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaCompetencia.length\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" dataKey=\"llaveTabla\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 50%;\">{{ 'etapa' | translate }}</th>\n        <th style=\"width: 40%;\">{{ 'esperado' | translate }}</th>\n        <th style=\"width: 10%;\"></th>\n      </tr>\n      <tr class=\"TablaNuevoRegistro\" style=\"width: 100%;\" *ngIf=\"nuevoRegistroPanel\">\n        <td style=\"width: 50%;\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"dimension\" [options]=\"listaCompetencias\" [(ngModel)]=\"competenciaSeleccionada.dimension\"\n              optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"isBloquear()\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(competenciaSeleccionada.dimension) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(competenciaSeleccionada.dimension) && clickGuardar\">\n            </p-dropdown>\n          </span>\n        </td>\n        <td style=\"width: 40%;\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"puntajeespera\" [(ngModel)]=\"competenciaSeleccionada.puntajeespera\" type=\"text\"\n              maxlength=\"5\" [disabled]=\"isBloquear()\"\n              oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(competenciaSeleccionada.puntajeespera) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(competenciaSeleccionada.puntajeespera) && clickGuardar\" />\n          </span>\n        </td>\n\n        <!-- BOTONES NUEVO REGISTRO -->\n        <td class=\"flex justify-content-end\">\n          <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mt-2 p-button p-component p-button-icon-only\"\n            (click)=\"adicionarRegistro()\">\n          </button>\n          <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoRegistro()\"\n            class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mt-2 p-button p-component p-button-icon-only\">\n          </button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-registro let-editing=\"editing\" let-ri=\"rowIndex\">\n      <tr [pEditableRow]=\"registro\">\n\n        <td style=\"width:50%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <p-dropdown id=\"dimension\" [options]=\"listaCompetencias\" [(ngModel)]=\"registro.dimension\"\n                optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                [disabled]=\"isBloquear()\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.dimension) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.dimension) && clickGuardar\">\n              </p-dropdown>\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.descripcionDimension}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <td style=\"width:40%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <input pInputText id=\"puntajeespera\" [(ngModel)]=\"registro.puntajeespera\" type=\"text\" maxlength=\"5\"\n                [disabled]=\"isBloquear()\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.puntajeespera) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.puntajeespera) && clickGuardar\" />\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.puntajeespera}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <!-- BOTONES -->\n        <td class=\"flex justify-content-end\">\n          <!-- CHECK GUARDAR -->\n          <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n            (click)=\"actualizarRegistro(registro)\"\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>\n          <!-- CANCELAR -->\n          <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n            (click)=\"cancelarRegistro()\"\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>\n          <!-- EDITAR -->\n          <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow icon=\"glyphicons glyphicons-pencil\"\n            (click)=\"editarRegistro()\" [disabled]=\"buttonEditing || nuevoRegistroPanel\"\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>\n          <!-- ELIMINAR -->\n          <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n            (click)=\"showEliminarRegConfirmDialog(registro)\"\n            class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mt-2 p-button p-component p-button-icon-only\"\n            [disabled]=\"buttonEditing || nuevoRegistroPanel\"></button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n","import { DatePipe, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { AuthService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { TipoActividadPipe } from '../../../pipes/tipo-actividad.pipe';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { ArchivoModel } from '../../../../../modules/hojavida/models/ArchivoModel';\nimport { HojaVidaService } from '../../../../../modules/hojavida/services/hojavida.service';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\n\n@Component({\n  selector: 'app-anexos-proceso-seleccion',\n  templateUrl: './anexos-proceso-seleccion.component.html',\n  styleUrl: './anexos-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, PrimeTemplate, FormsModule,\n    ReactiveFormsModule, InputTextModule, NgIf, DropdownModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    InputTextareaModule, PaginatorModule, CalendarModule, FileUploadModule, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent],\n})\nexport class AnexosProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaAdjuntos: ArchivoModel[] = [];\n  public adjuntoSeleccionado: ArchivoModel;\n  public unicoAdjunto: ArchivoModel;\n  public buttonEditing: boolean;\n  public clickGuardar: boolean;\n  public nuevoRegistroPanel: boolean;\n  public archivoSeleccionado: File;\n  public nombreArchivo: string;\n\n  constructor(private generalService: GeneralService, private toastService: ToastService,\n    private translateService: TranslateService, public utilsService: UtilsService, private cargarMapas: cargarmapasGlobal,\n    private cargarArchivoService: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService,\n    private confirmationService: ConfirmationService, private authService: AuthService, private tipoActividadPipe: TipoActividadPipe,\n    public listaConstantesPipe: ListaConstantesPipe, private hojaVidaService: HojaVidaService) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  async cargar() {\n    this.clickGuardar = false;\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.cargarListaAdjuntos();\n  }\n\n\n  async cargarListaAdjuntos() {\n    this.listaAdjuntos = await this.generalService.queryForList(new GeneralModel('ArchivoDTO', null, false,\n      { nombreTabla: 'PROCESOSELEC_PRS', llaveTablaArchivo: this.procesoSeleccionado.llaveTabla })).toPromise();\n  }\n\n  cancelarNuevoRegistro() {\n    this.adjuntoSeleccionado = new ArchivoModel();\n    this.nuevoRegistroPanel = false;\n  }\n\n  descargarAnexo(event) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivoService.descargarArchivo(this.encriptadoBasico.encriptar(event.carpeta + event.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = event.archivoorigen;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  async adicionarRegistro() {\n    this.clickGuardar = false;\n    if (!this.validarCampos()) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    await this.hojaVidaService.insertAdjuntoTabla({ archivo: this.adjuntoSeleccionado, tabla: 'PROCESOSELEC_PRS', llaveBase: this.procesoSeleccionado.llaveTabla }).toPromise();\n    await this.cargarListaAdjuntos();\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.toastService.showSuccess(Constantes.MENSAJE_GUARDAR);\n  }\n\n  validarCampos(): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.adjuntoSeleccionado.descripcion);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.adjuntoSeleccionado.archivoorigen);\n    return validador;\n  }\n\n\n  async actualizarRegistro(registro: ArchivoModel) {\n    this.clickGuardar = false;\n    if (!this.validarCampoActualizar(registro)) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    await this.generalService.update(new GeneralModel('ArchivoDTO', null, false, registro)).toPromise();\n    await this.cargarListaAdjuntos();\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n  }\n\n\n  validarCampoActualizar(registro: ArchivoModel): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.descripcion);\n    return validador;\n  }\n\n  editarRegistro() {\n    this.buttonEditing = true;\n  }\n\n  async cancelarRegistro() {\n    this.buttonEditing = false;\n    await this.cargarListaAdjuntos();\n  }\n\n  mostrarNuevoRegistro() {\n    this.adjuntoSeleccionado = new ArchivoModel();\n    this.nuevoRegistroPanel = true;\n  }\n\n  cargarArchivo(data: any, fubauto) {\n    this.archivoSeleccionado = data.files[0];\n    this.readFile(this.archivoSeleccionado);\n    this.adjuntoSeleccionado.archivoorigen = this.archivoSeleccionado.name;\n    fubauto.clear();\n  }\n\n\n  private readFile(file: File) {\n    const reader: FileReader = new FileReader();\n    reader.readAsText(file);\n    this.nombreArchivo = file.name;\n  }\n\n  showEliminarRegConfirmDialog(registro: ArchivoModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro(registro);\n      },\n      reject: () => {\n      }\n    });\n  };\n\n\n  eliminarRegistro(registro: ArchivoModel) {\n    let objetoFiltro: GeneralModel = new GeneralModel('ArchivoDTO', null, false, registro);\n    this.generalService.delete(objetoFiltro).subscribe(data => {\n      let result: number = data;\n      if (result == 1) {\n        this.eliminarArchivo(registro);\n        this.cargarListaAdjuntos();\n        this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      } else {\n        this.toastService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n  eliminarArchivo(registro: ArchivoModel) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivoService.eliminarArchivo(this.encriptadoBasico.encriptar(registro.llaveTabla + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => { });\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'anexos' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div id=\"competenciaProcesoSeleccion\" class=\"mt-5\">\n  <div class=\"flex justify-content-end mb-1\">\n    <!-- Botón de nuevo-->\n    <button pButton label=\"{{'link_nuevo'| translate}}\" [disabled]=\"buttonEditing || nuevoRegistroPanel\"\n      class=\"p-ripple p-element p-button p-component  p-button-secondary mb-2\" type=\"button\"\n      (click)=\"mostrarNuevoRegistro()\"><span class=\"glyphicons glyphicons-plus\"></span></button>\n  </div>\n\n  <p-table #tablaGeneral id=\"tablaListaAdjuntoProcesoSel\" [value]=\"listaAdjuntos\" responsiveLayout=\"scroll\"\n    [paginator]=\"listaAdjuntos.length > 10\" [scrollable]=\"true\" scrollDirection=\"horizontal\"\n    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaAdjuntos.length\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" dataKey=\"llaveTabla\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 45%;\">{{ 'descripcion' | translate }}</th>\n        <th style=\"width: 45%;\">{{ 'archivo' | translate }}</th>\n        <th style=\"width: 10%;\"></th>\n      </tr>\n      <tr class=\"TablaNuevoRegistro\" style=\"width: 100%;\" *ngIf=\"nuevoRegistroPanel\">\n        <td style=\"width: 45%;\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"descripcion\" [(ngModel)]=\"adjuntoSeleccionado.descripcion\" type=\"text\" maxlength=\"30\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(adjuntoSeleccionado.descripcion) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(adjuntoSeleccionado.descripcion) && clickGuardar\" />\n          </span>\n        </td>\n        <td style=\"width: 45%;\">\n          <div class=\"p-inputgroup\">\n            <span class=\"p-float-label\">\n              <input pInputText #inputText [(ngModel)]=\"adjuntoSeleccionado.archivoorigen\" [disabled]=\"true\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(adjuntoSeleccionado.archivoorigen) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(adjuntoSeleccionado.archivoorigen) && clickGuardar\" />\n              <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" chooseIcon=\"pi pi-paperclip\" [accept]=\"'.pdf'\"\n                (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n            </span>\n          </div>\n        </td>\n\n        <!-- BOTONES NUEVO REGISTRO -->\n        <td class=\"flex justify-content-end\">\n          <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mt-2 p-button p-component p-button-icon-only\"\n            (click)=\"adicionarRegistro()\">\n          </button>\n          <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoRegistro()\"\n            class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mt-2 p-button p-component p-button-icon-only\">\n          </button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-registro let-editing=\"editing\" let-ri=\"rowIndex\">\n      <tr [pEditableRow]=\"registro\">\n\n        <td style=\"width:45%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <input pInputText id=\"descripcion\" [(ngModel)]=\"registro.descripcion\" type=\"text\"\n                maxlength=\"30\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.descripcion) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.descripcion) && clickGuardar\" />\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.descripcion}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <td style=\"width:45%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.archivoorigen}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <!-- BOTONES -->\n        <td class=\"flex justify-content-end\">\n          <!-- CHECK DESCARGAR -->\n          <button pButton pRipple\n            class=\"p-element p-ripple p-button-rounded p-button-secondary mb-2 p-button p-component p-button-icon-only\"\n            icon=\"pi pi-download p-2\" (click)=\"descargarAnexo(registro)\" type=\"file\"\n            [disabled]=\"buttonEditing || nuevoRegistroPanel\"></button>\n          <!-- CHECK GUARDAR -->\n          <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n            (click)=\"actualizarRegistro(registro)\"\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>\n          <!-- CANCELAR -->\n          <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n            (click)=\"cancelarRegistro()\"\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>\n          <!-- EDITAR -->\n          <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow icon=\"glyphicons glyphicons-pencil\"\n            (click)=\"editarRegistro()\" [disabled]=\"buttonEditing || nuevoRegistroPanel\"\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>\n          <!-- ELIMINAR -->\n          <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n            (click)=\"showEliminarRegConfirmDialog(registro)\"\n            class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mt-2 p-button p-component p-button-icon-only\"\n            [disabled]=\"buttonEditing || nuevoRegistroPanel\"></button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n","import { UnionModel } from 'general-library-union'\n\nexport class MedioProcesoSeleccionModel extends UnionModel {\n\n\t\n\tprocesoSeleccion: string;\n\tmedio: string;\n\ttipo: string;\n\taccion: string;\n\tpeso: number;\n\tminimo: number;\n\tmaximo: number;\n\tentrevistaPrueba: string;\n\tdescripcionEntrevista: string;\n\tfiltroAccion: string;\n\tprincipal: string;\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralService, UtilsService } from \"general-library-union\";\nimport { DimensionCargoModel } from '../models/DimensionCargoModel';\nimport { DatoorganizacionModel } from '../models/DatoorganizacionModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MedioProcesoSeleccionService {\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilService: UtilsService, private GeneralSvc: GeneralService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  actualizarGrupoSeleccion(general : any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/medioprocesoSeleccion/actualizarGrupoSeleccion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { MedioProcesoSeleccionModel } from '../../../models/MedioProcesoSeleccionModel';\nimport { EntrevistaPruebaModel } from '../../../models/EntrevistaPruebaModel';\nimport { MedioProcesoSeleccionService } from '../../../services/medioProcesoSeleccion.service';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\n\n@Component({\n  selector: 'app-medios-proceso-seleccion',\n  templateUrl: './medios-proceso-seleccion.component.html',\n  styleUrl: './medios-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, PrimeTemplate, FormsModule,\n    ReactiveFormsModule, InputTextModule, NgIf, DropdownModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    InputTextareaModule, PaginatorModule, CalendarModule, FileUploadModule, ListaConstantesPipe,\n    ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent],\n})\nexport class MediosProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaMedios: MedioProcesoSeleccionModel[] = [];\n  public medioSeleccionado: MedioProcesoSeleccionModel;\n  public buttonEditing: boolean;\n  public clickGuardar: boolean;\n  public nuevoRegistroPanel: boolean;\n  public listaPruebas: any;\n  public listaAccionesMedios: any;\n\n  constructor(private generalService: GeneralService, private toastService: ToastService,\n    public utilsService: UtilsService, private cargarMapas: cargarmapasGlobal,\n    private confirmationService: ConfirmationService, private medioProcesoSeleccionService: MedioProcesoSeleccionService,\n    public listaConstantesPipe: ListaConstantesPipe) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  async cargar() {\n    this.clickGuardar = false;\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.cargarListaMedios();\n    this.cargarListas();\n  }\n\n  async cargarListaMedios() {\n    this.listaMedios = await this.generalService.queryForList(new GeneralModel('MedioProcesoSeleccionDTO', null, false,\n      { procesoSeleccion: this.procesoSeleccionado.llaveTabla })).toPromise();\n  }\n\n  async cargarListas() {\n    this.listaPruebas = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('EntrevistaPruebaDTO', null, false, new EntrevistaPruebaModel()));\n  }\n\n  mostrarNuevoRegistro() {\n    this.medioSeleccionado = new MedioProcesoSeleccionModel();\n    this.nuevoRegistroPanel = true;\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  cancelarNuevoRegistro() {\n    this.medioSeleccionado = new MedioProcesoSeleccionModel();\n    this.nuevoRegistroPanel = false;\n  }\n\n  cancelarRegistro() {\n    this.buttonEditing = false;\n  }\n\n  showEliminarRegConfirmDialog(registro: MedioProcesoSeleccionModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarRegistro(registro);\n      },\n      reject: () => {\n      }\n    });\n  };\n\n\n  eliminarRegistro(registro: MedioProcesoSeleccionModel) {\n    let objetoFiltro: GeneralModel = new GeneralModel('MedioProcesoSeleccionDTO', null, false, registro);\n    this.generalService.delete(objetoFiltro).subscribe(data => {\n      let result: number = data;\n      if (result == 1) {\n        this.cargarListaMedios();\n        this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      } else {\n        this.toastService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n  async adicionarRegistro() {\n    this.clickGuardar = false;\n    if (!this.validarCampos(this.medioSeleccionado)) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    this.medioSeleccionado.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n    this.medioSeleccionado.tipo = 'W';\n    await this.generalService.crearRegistro(new GeneralModel('MedioProcesoSeleccionDTO', null, false, this.medioSeleccionado)).toPromise();\n    await this.medioProcesoSeleccionService.actualizarGrupoSeleccion({ llaveProceso: this.procesoSeleccionado.llaveTabla, llaveMedio: this.medioSeleccionado.llaveTabla }).toPromise();\n    await this.cargarListaMedios();\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.toastService.showSuccess(Constantes.MENSAJE_GUARDAR);\n  }\n\n\n  validarCampos(registro: MedioProcesoSeleccionModel): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.entrevistaPrueba);\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.accion);\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.peso);\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.minimo);\n    validador = validador && this.utilsService.validarCampoObligatorio(registro.maximo);\n    return validador;\n  }\n\n\n  async actualizarRegistro(registro: MedioProcesoSeleccionModel) {\n    this.clickGuardar = false;\n    if (!this.validarCampos(registro)) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    await this.generalService.update(new GeneralModel('MedioProcesoSeleccionDTO', null, false, registro)).toPromise();\n    await this.medioProcesoSeleccionService.actualizarGrupoSeleccion({ llaveProceso: this.procesoSeleccionado.llaveTabla, llaveMedio: registro.llaveTabla }).toPromise();\n    await this.cargarListaMedios();\n    this.buttonEditing = false;\n    this.nuevoRegistroPanel = false;\n    this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n  }\n\n\n  editarRegistro() {\n    this.buttonEditing = true;\n  }\n\n  buscarValor(lista: any, valorBuscar: string): string {\n    let valor: string = Constantes.ESPACIO_NULO;\n    lista.forEach(element => {\n      if (element.key == valorBuscar) {\n        valor = element.label;\n      }\n    });\n    return valor;\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'medio' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div id=\"mediosProcesoSeleccion\" class=\"mt-5\">\n  <div class=\"flex justify-content-end mb-1\">\n    <!-- Botón de nuevo-->\n    <button pButton label=\"{{'link_nuevo'| translate}}\" [disabled]=\"buttonEditing || nuevoRegistroPanel\"\n      class=\"p-ripple p-element p-button p-component  p-button-secondary mb-2\" type=\"button\"\n      (click)=\"mostrarNuevoRegistro()\"><span class=\"glyphicons glyphicons-plus\"></span></button>\n  </div>\n\n  <p-table #tablaGeneral id=\"tablaListaMediosProcesoSel\" [value]=\"listaMedios\" responsiveLayout=\"scroll\"\n    [paginator]=\"listaMedios.length > 10\" [scrollable]=\"true\" scrollDirection=\"horizontal\"\n    styleClass=\"p-datatable-striped\" [rows]=\"10\" [totalRecords]=\"listaMedios.length\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" editMode=\"row\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" dataKey=\"llaveTabla\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 30%;\">{{ 'claseprueba' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'caracter' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'peso' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'minimo' | translate }}</th>\n        <th style=\"width: 15%;\">{{ 'maximo' | translate }}</th>\n      </tr>\n      <tr class=\"TablaNuevoRegistro\" style=\"width: 100%;\" *ngIf=\"nuevoRegistroPanel\">\n        <td style=\"width: 30%;\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"entrevistaPrueba\" [options]=\"listaPruebas\" [(ngModel)]=\"medioSeleccionado.entrevistaPrueba\"\n              optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"isBloquear()\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.entrevistaPrueba) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.entrevistaPrueba) && clickGuardar\">\n            </p-dropdown>\n          </span>\n        </td>\n\n        <td style=\"width: 15%;\">\n          <span class=\"p-float-label\">\n            <p-dropdown id=\"accion\" [options]=\"listaConstantesPipe.MAPAACCIONESMEDIOS\" [(ngModel)]=\"medioSeleccionado.accion\"\n              optionValue=\"codigo\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"isBloquear()\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.accion) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.accion) && clickGuardar\">\n            </p-dropdown>\n          </span>\n        </td>\n\n        <td style=\"width: 15%;\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"peso\" [(ngModel)]=\"medioSeleccionado.peso\" type=\"text\" maxlength=\"8\"\n              [disabled]=\"isBloquear()\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.peso) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.peso) && clickGuardar\" />\n          </span>\n        </td>\n\n        <td style=\"width: 15%;\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"minimo\" [(ngModel)]=\"medioSeleccionado.minimo\" type=\"text\" maxlength=\"8\"\n              [disabled]=\"isBloquear()\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.minimo) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.minimo) && clickGuardar\" />\n          </span>\n        </td>\n\n        <td style=\"width: 15%;\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"maximo\" [(ngModel)]=\"medioSeleccionado.maximo\" type=\"text\" maxlength=\"8\"\n              [disabled]=\"isBloquear()\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\"\n              [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.maximo) && clickGuardar\"\n              [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(medioSeleccionado.maximo) && clickGuardar\" />\n          </span>\n        </td>\n\n        <!-- BOTONES NUEVO REGISTRO -->\n        <td class=\"flex justify-content-end\">\n          <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mt-2 p-button p-component p-button-icon-only\"\n            (click)=\"adicionarRegistro()\">\n          </button>\n          <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoRegistro()\"\n            class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mt-2 p-button p-component p-button-icon-only\">\n          </button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-registro let-editing=\"editing\" let-ri=\"rowIndex\">\n      <tr [pEditableRow]=\"registro\">\n\n        <td style=\"width:30%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <p-dropdown id=\"entrevistaPrueba\" [options]=\"listaPruebas\"\n                [(ngModel)]=\"registro.entrevistaPrueba\" optionValue=\"key\" optionLabel=\"label\"\n                [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"isBloquear()\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.entrevistaPrueba) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.entrevistaPrueba) && clickGuardar\">\n              </p-dropdown>\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.descripcionEntrevista}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <td style=\"width:15%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <p-dropdown id=\"accion\" [options]=\"listaConstantesPipe.MAPAACCIONESMEDIOS\" [(ngModel)]=\"registro.accion\"\n                optionValue=\"codigo\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                [disabled]=\"isBloquear()\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.accion) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.accion) && clickGuardar\">\n              </p-dropdown>\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.accion | listaConstantesPipe : 'mapaAccionesMedios'}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <td style=\"width:15%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <input pInputText id=\"peso\" [(ngModel)]=\"registro.peso\" type=\"text\" maxlength=\"8\"\n                [disabled]=\"isBloquear()\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.peso) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.peso) && clickGuardar\" />\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.peso}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <td style=\"width:15%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <input pInputText id=\"minimo\" [(ngModel)]=\"registro.minimo\" type=\"text\" maxlength=\"8\"\n                [disabled]=\"isBloquear()\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.minimo) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.minimo) && clickGuardar\" />\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.minimo}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <td style=\"width:15%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"input\">\n              <input pInputText id=\"maximo\" [(ngModel)]=\"registro.maximo\" type=\"text\" maxlength=\"8\"\n                [disabled]=\"isBloquear()\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 8);\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registro.maximo) && clickGuardar\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registro.maximo) && clickGuardar\" />\n            </ng-template>\n            <ng-template pTemplate=\"output\">{{registro.maximo}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n\n        <!-- BOTONES -->\n        <td class=\"flex justify-content-end\">\n          <!-- CHECK GUARDAR -->\n          <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n            (click)=\"actualizarRegistro(registro)\"\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>\n          <!-- CANCELAR -->\n          <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n            (click)=\"cancelarRegistro()\"\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>\n          <!-- EDITAR -->\n          <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow icon=\"glyphicons glyphicons-pencil\"\n            (click)=\"editarRegistro()\" [disabled]=\"buttonEditing || nuevoRegistroPanel\"\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>\n          <!-- ELIMINAR -->\n          <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n            (click)=\"showEliminarRegConfirmDialog(registro)\"\n            class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mt-2 p-button p-component p-button-icon-only\"\n            [disabled]=\"buttonEditing || nuevoRegistroPanel\"></button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RequisitoHojaModel } from '../../models/RequisitoHojaModel';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { AuthService, GeneralModel, ParametrosGeneralModel, ToastService } from 'general-library-union';\nimport { HttpEventType } from '@angular/common/http';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ProcesoSeleccionService } from '../../services/proceso-seleccion.service';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { NgIf } from '@angular/common';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-documento-anular-contratacion',\n    templateUrl: './popup-documento-anular-contratacion.component.html',\n    styleUrls: ['./popup-documento-anular-contratacion.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, ReactiveFormsModule, InputTextareaModule, CalendarModule, DropdownModule, NgIf, FileUploadModule, ButtonDirective, Ripple, ConfirmPopupModule, TranslateModule]\n})\nexport class PopupDocumentoAnularContratacionComponent implements OnInit {\n\n  @Input() mostrarPopup: boolean;\n  @Input() llave: string;\n  @Input() origen: string;\n  @Output() regresar = new EventEmitter;\n  public requisitoHoja : RequisitoHojaModel;\n  public archivoSeleccionado: File;\n  public extensionesPermitidas: string[];\n  formDocumento : FormGroup;\n\n  adjuntar : boolean;\n\n  listaSiNo : any;\n\n  constructor(private formBuilder : FormBuilder, private generalPipe : GeneralPipe, private cargarArchivoService: CargarArchivosService,\n    private notificacionesService: ToastService,  private translateService: TranslateService, private procesoSeleccionService : ProcesoSeleccionService,\n    private generalService: GeneralService, private authService: AuthService) { }\n\n  ngOnInit(): void {\n    this.requisitoHoja = new RequisitoHojaModel();\n    this.listaSiNo = this.generalPipe.LISTA_SINO;\n    this.extensionesPermitidas = ['pdf', 'PDF'];\n    this.adjuntar = false;\n    this.cargarFormulario();\n  }\n\n  cargarFormulario(){\n    this.formDocumento = this.formBuilder.group({\n      motivo: new FormControl(this.requisitoHoja.motivo),\n      vigencia: new FormControl(new Date()),\n      anexo: new FormControl(this.requisitoHoja.anexo),\n    });\n  }\n\n  regresarVistaDocumento(){\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n  async guardar(){\n    if(this.formDocumento.valid){\n      let objParametros : ParametrosGeneralModel = new ParametrosGeneralModel(\n        'RequisitoHojaDTO', this.formDocumento.value, null, {llaveProceso: this.llave, origenProceso : this.origen}, null);\n        let respuesta = await this.procesoSeleccionService.guardarDocumentoAnulacion(objParametros).toPromise();\n        if(respuesta){\n          if(this.adjuntar){\n            let objeto: GeneralModel = new GeneralModel('RequisitoHojaDTO', null, false, {origen : this.origen, llaveTablaBase : this.llave});\n            this.requisitoHoja = await this.generalService.queryForObject(objeto).toPromise();\n            this.guardarArchivo(this.requisitoHoja.llave);\n          }\n          this.notificacionesService.showSuccess(Constantes.MENSAJE_GUARDAR);\n          this.regresarVistaDocumento();\n        }\n    }else {\n      this.notificacionesService.showError('Faltan campos obligatorios')\n      Object.keys(this.formDocumento.controls).forEach((key) => {\n        if (this.formDocumento.get(key).errors) {\n          this.formDocumento.get(key).markAsDirty()\n        }\n      })\n    }\n  }\n\n  cambioOpcionAdjuntar(event){\n    if(event != null){\n      this.adjuntar = Constantes.CONSTANTE_SI == event.value ? true : false;\n    }\n  }\n\n  cargarArchivo(data: any, fubauto) {\n\t\tthis.archivoSeleccionado = data.files[0];\n\t\tthis.readFile(this.archivoSeleccionado);\n\t\tthis.notificacionesService.showSuccess('Se cargó el documento con éxito');\n\t\tfubauto.clear();\n  }\n\n  private readFile(file: File) {\n\t\tconst reader: FileReader = new FileReader();\n\t\treader.readAsText(file);\n\t}\n\n  guardarArchivo(llave: string){\n\t\tlet extensionArchivo:string = this.archivoSeleccionado.name.split('?')[0].split('.').pop();\n\t\tif(!this.extensionesPermitidas.includes(extensionArchivo)){\n\t\t\tthis.notificacionesService.showWarning(this.translateService.instant('extensionnovalida'));\n\t\t\treturn\n\t\t}\n\t\tlet propiedad = 'ruta_anexosHojaVida'\n\t\tlet codigoAplicacion =  this.authService.getTokenKey('aplicacion');\n\t\tthis.archivoSeleccionado =  new File([this.archivoSeleccionado], llave+'.' +extensionArchivo);\n\n\t  this.cargarArchivoService.cargarArchivo(this.archivoSeleccionado, '', propiedad, codigoAplicacion).subscribe({\n\t\t  next: (event) => {\n\t\t\tif (event.type === HttpEventType.Response) {\n\t\t\t\tlet response: any = event.body;\n\t\t\t\tthis.requisitoHoja.archivo = this.archivoSeleccionado.name\n\t\t\t\tthis.regresar.emit(this.requisitoHoja);\n\t\t\t}\n\t\t  },\n\t\t});\n\n\t}\n\n}\n","<p-dialog header=\"{{'documento' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '35vw'}\"\n    (onHide)=\"regresarVistaDocumento()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <form [formGroup]=\"formDocumento\" #formulario=\"ngForm\">\n      <div class=\"field col-12 md:col-12 lg:col-12\">\n        <div class=\"Inputgroup\">\n          <div class=\"p-fluid p-formgrid grid\">\n\n            <!-- MOTIVO -->\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n              <span class=\"p-float-label\">\n                  <textarea id=\"motivo\" rows=\"3\" pInputTextarea formControlName=\"motivo\" maxlength=\"1000\" required\n                      class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max min-h-100\"></textarea>\n                  <label for=\"motivo\">{{'motivo' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- VIGENCIA -->\n            <div [class]=\"adjuntar ? 'field col-12 md:col-4 lg:col-4' : 'field col-12 md:col-6 lg:col-6'\">\n              <span class=\"p-float-label\">\n                  <p-calendar id=\"vigencia\" dateFormat=\"dd/mm/yy\"\n                      formControlName=\"vigencia\" appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"true\"\n                      [showIcon]=\"true\" [showTime]=\"false\" [showSeconds]=\"true\"></p-calendar>\n                  <label for=\"vigencia\">{{'vigencia' | translate}}</label>\n              </span>\n            </div>\n\n            <!-- ADJUNTAR -->\n            <div [class]=\"adjuntar ? 'field col-12 md:col-4 lg:col-4' : 'field col-6 md:col-12 lg:col-6'\">\n              <span class=\"p-float-label\">\n                <p-dropdown id=\"anexo\" [options]=\"listaSiNo\" formControlName=\"anexo\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                  [autoDisplayFirst]=\"false\" appendTo=\"body\" [autoZIndex]=\"false\" (onChange)=\"cambioOpcionAdjuntar($event)\" required></p-dropdown>\n                <label htmlFor=\"anexo\">{{'adjuntar' | translate}} *</label>\n              </span>\n            </div>\n\n            <!-- ADJUNTAR ARCHIVO-->\n            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"adjuntar\">\n              <p-fileUpload #fubauto chooseLabel=\"Cargar\" mode=\"basic\" [customUpload]=\"true\"\n              chooseIcon=\"pi pi-paperclip\"\n                  (onSelect)=\"cargarArchivo($event, fubauto)\"></p-fileUpload>\n            </div>\n\n          </div>\n        </div>\n      </div>\n    </form>\n    <div class=\"flex justify-content-end\">\n      <button pButton pRipple class=\"mb-2 mr-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\" (click)=\"guardar()\"\n          label=\"{{'link_guardar' | translate}}\"></button>\n    </div>\n</p-dialog>\n<p-confirmPopup></p-confirmPopup>\n","import { DatePipe, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AuthService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { RequisitoHojaModel } from '../../../models/RequisitoHojaModel';\nimport { ParametrosPipe } from '../../../../../shared/pipes/parametros.pipe';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { PopupDocumentoAnularContratacionComponent } from '../../../popups/popup-documento-anular-contratacion/popup-documento-anular-contratacion.component';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\n\n@Component({\n  selector: 'app-anular-proceso-seleccion',\n  templateUrl: './anular-proceso-seleccion.component.html',\n  styleUrl: './anular-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, PrimeTemplate, FormsModule,\n    ReactiveFormsModule, InputTextModule, NgIf, DropdownModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    InputTextareaModule, PaginatorModule, CalendarModule, DatePipe,\n    FileUploadModule, PopupDocumentoAnularContratacionComponent, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent],\n})\nexport class AnularProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaAnulacion: RequisitoHojaModel[] = [];\n  verPopupDocAnularContratacion: boolean;\n  origenDocAnularContratacion: string;\n\n  constructor(private generalService: GeneralService, private toastService: ToastService,\n    public utilsService: UtilsService, private cargarMapas: cargarmapasGlobal, private authService: AuthService,\n    private confirmationService: ConfirmationService, private parametrosPipe: ParametrosPipe,\n    public listaConstantesPipe: ListaConstantesPipe, private cargarArchivo: CargarArchivosService,\n    private encriptadoBasico: EncriptadoBasicoService,) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.cargarListaAnularProceso();\n  }\n\n  async cargarListaAnularProceso() {\n    this.listaAnulacion = await this.generalService.queryForList(new GeneralModel('RequisitoHojaDTO', null, false,\n      { llaveTablaBase: this.procesoSeleccionado.llaveTabla, origen: this.parametrosPipe.PROCESOSELECCION })).toPromise();\n    this.listaAnulacion.forEach(unreq => {\n      unreq.ruta = unreq.llave;\n    });\n  }\n\n  async regresarPopupDocAnularContratacion() {\n    this.cargarListaAnularProceso();\n    this.verPopupDocAnularContratacion = false;\n  }\n\n  anularProceso() {\n    this.origenDocAnularContratacion = this.parametrosPipe.PROCESOSELECCION;\n    this.verPopupDocAnularContratacion = true;\n  }\n\n  descargarAnexoAnularProceso(anulacion) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(anulacion.llave + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = anulacion.llave + Constantes.PUNTO + Constantes.ARCHIVO_PDF;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n\n<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'anularproceso' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div id=\"anularProcesoSeleccion\" class=\"mt-5\">\n  <div class=\"flex justify-content-end\" *ngIf=\"'S' == procesoSeleccionado.estado\">\n    <button pButton pRipple class=\"mb-2 p-button-outlined\" icon=\"glyphicons glyphicons-remove-circle\"\n      label=\"{{'link_anular' | translate}}\" (click)=\"anularProceso()\">\n    </button>\n  </div>\n\n  <p-table #tablaGeneralAnular id=\"tabla_anular\" [value]=\"listaAnulacion\" responsiveLayout=\"scroll\" [rows]=\"10\"\n    [paginator]=\"listaAnulacion.length > 10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"listaAnulacion.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n    [tableStyle]=\"{'min-width':'50rem'}\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 50%;\">{{ 'motivo' | translate }}</th>\n        <th style=\"width: 40%;\">{{ 'vigencia' | translate }}</th>\n        <th style=\"width: 10%;\"></th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-anulacion>\n      <tr [pSelectableRow]=\"anulacion\" style=\"width: 100%;\">\n        <td style=\"width: 50%;\">{{anulacion.motivo}}</td>\n        <td style=\"width: 40%;\">{{anulacion.vigencia | date: ('formatofecha'|translate)}}</td>\n        <td style=\"width: 10%;\">\n          <button pButton pRipple class=\"m-2 p-button p-button-raised\"\n            *ngIf=\" 'S' == anulacion.anexo && anulacion.ruta != null\" icon=\"glyphicons glyphicons-paperclip\"\n            (click)=\"descargarAnexoAnularProceso(anulacion)\" type=\"file\"></button>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n\n</div>\n<div *ngIf=\"verPopupDocAnularContratacion\">\n  <app-popup-documento-anular-contratacion [mostrarPopup]=\"verPopupDocAnularContratacion\"\n    [llave]=\"procesoSeleccionado.llaveTabla\" [origen]=\"origenDocAnularContratacion\"\n    (regresar)=\"regresarPopupDocAnularContratacion()\"></app-popup-documento-anular-contratacion>\n</div>\n","import { DatePipe, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { UtilsService } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { RequerimientoPersonalService } from '../../../services/requerimiento-personal.service';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { RequerimientoPersonalPipe } from '../../../pipes/requerimiento-personal.pipe';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\n\n@Component({\n  selector: 'app-requerimientos-proceso-seleccion',\n  templateUrl: './requerimientos-proceso-seleccion.component.html',\n  styleUrl: './requerimientos-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, PrimeTemplate, FormsModule,\n    ReactiveFormsModule, InputTextModule, NgIf, DropdownModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    InputTextareaModule, PaginatorModule, CalendarModule, DatePipe, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent],\n\n})\nexport class RequerimientosProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaPuestoRequerimiento: PuestoTrabajoModel[] = [];\n  public estadoRequerimiento: string;\n\n  constructor(public utilsService: UtilsService,\n    public listaConstantesPipe: ListaConstantesPipe,\n    private requerimientoPersonalService: RequerimientoPersonalService,\n    private requerimientoPersonalPipe: RequerimientoPersonalPipe) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  async cargar() {\n    this.estadoRequerimiento = null;\n    this.requerimiento.solicitud = this.requerimiento.solicitud != null ? new Date(this.requerimiento.solicitud) : null;\n    this.requerimiento.fechaCubrir = this.requerimiento.fechaCubrir != null ? new Date(this.requerimiento.fechaCubrir) : null;\n    this.cargarListaPuestoRequerimiento();\n  }\n\n  async cargarListaPuestoRequerimiento() {\n    if (this.requerimiento != null) {\n      let respuesta = await this.requerimientoPersonalService.traerPuestos({ requerimiento: this.requerimiento }).toPromise();\n      if (respuesta?.resultado != null) {\n        this.listaPuestoRequerimiento = respuesta.resultado;\n      }\n    }\n    if (this.requerimiento != null) {\n      this.requerimientoPersonalPipe.LISTAESTADOREQUERIMIENTO.forEach(estado => {\n        if (estado.codigo == this.requerimiento.estado) {\n          this.estadoRequerimiento = estado.nombre;\n        }\n      });\n    }\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'requerimiento' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div id=\"requerimientosProcesoSeleccion\" class=\"mt-5\">\n  <div class=\"card\">\n    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'requerimientos' | translate}}</h5>\n\n    <form #formRequerimiento=\"ngForm\">\n      <div class=\"field col-12 md:col-12 lg:col-12\">\n        <div class=\"p-fluid p-formgrid grid\">\n\n          <!-- ESTADO -->\n          <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"estadoRequerimiento\"\n                [(ngModel)]=\"estadoRequerimiento\" name=\"estadoRequerimiento\" maxlength=\"50\" [disabled]=\"true\" />\n              <label htmlFor=\"estadoRequerimiento\">{{'estado' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- MOTIVO -->\n          <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"nombreMotivoRequerimiento\"\n                [(ngModel)]=\"requerimiento.nombreMotivoRequerimiento\" name=\"nombreMotivoRequerimiento\" maxlength=\"50\"\n                [disabled]=\"true\" />\n              <label htmlFor=\"nombreMotivoRequerimiento\">{{'motivovacante' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- CONSECUTIVO -->\n          <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"cadenaConsecutivo\"\n                [(ngModel)]=\"requerimiento.cadenaConsecutivo\" name=\"cadenaConsecutivo\" maxlength=\"50\"\n                [disabled]=\"true\" />\n              <label htmlFor=\"cadenaConsecutivo\">{{'consecutivo' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- FECHA SOLICITUD -->\n          <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"solicitud\" dateFormat=\"dd/mm/yy\" [(ngModel)]=\"requerimiento.solicitud\" name=\"solicitud\"\n                [disabled]=\"true\" appendTo=\"body\" [showIcon]=\"true\" [showTime]=\"false\"\n                [showSeconds]=\"true\"></p-calendar>\n              <label for=\"solicitud\">{{'fechasolicitud' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- FECHA CUBRIR -->\n          <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"fechaCubrir\" dateFormat=\"dd/mm/yy\" [(ngModel)]=\"requerimiento.fechaCubrir\"\n                name=\"fechaCubrir\" [disabled]=\"true\" appendTo=\"body\" [showIcon]=\"true\" [showTime]=\"false\"\n                [showSeconds]=\"true\"></p-calendar>\n              <label for=\"fechaCubrir\">{{'fecha' | translate}} {{'cubrir' | translate}}</label>\n            </span>\n          </div>\n\n          <!-- INFORMACIÓN BASICA -->\n          <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n              <input class=\"form-control input-md\" pInputText type=\"text\" id=\"asignacion\"\n                [(ngModel)]=\"requerimiento.asignacion\" name=\"asignacion\" maxlength=\"50\" [disabled]=\"true\" />\n              <label htmlFor=\"asignacion\">{{'informacionbasica' | translate}}</label>\n            </span>\n          </div>\n\n        </div>\n      </div>\n    </form>\n\n    <p-table #tablaGeneralRequerimiento id=\"tablaRequerimiento\" [value]=\"listaPuestoRequerimiento\"\n      responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listaPuestoRequerimiento.length > 10\"\n      scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [totalRecords]=\"listaPuestoRequerimiento.length\"\n      [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n      currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n      <ng-template pTemplate=\"header\">\n        <tr style=\"width: 100%;\">\n          <th style=\"width: 40%;\">{{ 'nombreocupa' | translate }}</th>\n          <th style=\"width: 20%;\">{{ 'unidad' | translate }}</th>\n          <th style=\"width: 20%;\">{{ 'cargo' | translate }}</th>\n          <th style=\"width: 20%;\">{{ 'numero' | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-puesto>\n        <tr [pSelectableRow]=\"puesto\" style=\"width: 100%;\">\n          <td style=\"width: 40%;\">{{puesto.nombreOcupa}}</td>\n          <td style=\"width: 20%;\">{{puesto.nombreUnidad}}</td>\n          <td style=\"width: 20%;\">{{puesto.nombreCargo}}</td>\n          <td style=\"width: 20%;\">{{puesto.numeroPuesto}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ProcesoSeleccionModel } from '../../models/ProcesoSeleccionModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel} from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { EmpresaModel } from '../../../../modules/compensacion/models/EmpresaModel';\nimport { HojaVidaModel } from '../../../../modules/hojavida/models/HojaVidaModel';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\n\n@Component({\n    selector: 'app-popup-proceso-seleccion-trasladar',\n    templateUrl: './popup-proceso-seleccion-trasladar.component.html',\n    styleUrls: ['./popup-proceso-seleccion-trasladar.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule, CalendarModule,\n      InputTextModule, DatePipe, TranslateModule, FiltroGeneralComponent, ButtonDirective, Ripple, NgIf, FormsModule]\n})\nexport class PopupProcesoSeleccionTrasladarComponent implements OnInit {\n\n  @Input() showDialog: boolean;\n  @Input() procesoSeleccionado: ProcesoSeleccionModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n  onChange: Function = () => { };\n  public listaProceso: ProcesoSeleccionModel[] = [];\n  filtroProcesoSeleccion: ProcesoSeleccionModel;\n  empresa : EmpresaModel;\n  dataSelected: ProcesoSeleccionModel;\n  filters =[];\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService,\n    private controlFuncionalidad: CargarControlFuncionalidadService, private listaConstantesPipe: ListaConstantesPipe) {}\n\n  ngOnInit(): void {\n    this.filtroProcesoSeleccion = new ProcesoSeleccionModel();\n    this.cargar();\n  }\n\n  async cargar(){\n    this.crearFiltro();\n    this.cargarEmpresa();\n    this.cargarLista({first : 0, rows : 10});\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'numero',\n        header: this.translateService.instant('numero'),\n        matchMode: 'contains'\n      }\n    ];\n  }\n\n  async cargarEmpresa(){\n    this.empresa = new EmpresaModel();\n    this.empresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, {empresa: this.authService.getTokenKey('numeroEmpresa')})).toPromise();\n  }\n\n  async cargarLista(event){\n    this.filtroProcesoSeleccion.fechaInicial = event?.fechaInicial?.value ? new Date(event.fechaInicial?.value) : null;\n    this.filtroProcesoSeleccion.fechaFinal = event?.fechaFinal?.value ? new Date(event.fechaFinal?.value) : null;\n    this.filtroProcesoSeleccion.numero = event?.numero?.value ? Number(event.numero?.value) : null;\n\n    if(this.controlFuncionalidad.getControlFuncionalidad('procsel:filtroEmpresa')){\n      this.filtroProcesoSeleccion.empresa = Number(this.authService.getTokenKey('numeroEmpresa'));\n    }else if(this.filtroProcesoSeleccion.empresa != null && this.filtroProcesoSeleccion.empresa == 0){\n      this.filtroProcesoSeleccion.empresa = null;\n    }\n    this.filtroProcesoSeleccion.estado = this.listaConstantesPipe.SOLICITUD;\n    this.filtroProcesoSeleccion.organizacion = this.empresa.organizacion;\n    if(this.controlFuncionalidad.getControlFuncionalidad('procsel:soloAsignados')){\n      let hojaVida : HojaVidaModel = new HojaVidaModel();\n      let objeto = new GeneralModel('ProcesoSeleccionDTO', null, false, {login : this.authService.getTokenKey('usuario')});\n      hojaVida = await this.generalService.queryForObject(objeto).toPromise();\n      this.filtroProcesoSeleccion.identifica = hojaVida.identifica;\n    }\n\n    let filtro = new GeneralModel('ProcesoSeleccionDTO', null, false, this.filtroProcesoSeleccion);\n    this.listaProceso = await this.generalService.queryForList(filtro).toPromise();\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  onRowSelect(event) {\n    this.onSelected.emit(event.data);\n    this.showDialog = false;\n  }\n\n}\n","<p-dialog header=\"{{'trasladar' | translate}}\" [(visible)]=\"showDialog\" [style]=\"{width: '46vw'}\"\n  (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n  <div class=\"flex justify-content-between align-items-center mt-2\">\n    <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarLista($event)\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"fechaInicial\" formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\"\n                [showIcon]=\"true\"></p-calendar>\n              <label for=\"fechaInicial\">{{ \"fechainicial\" | translate }}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"fechaFinal\" formControlName=\"fechaFinal\" dateFormat=\"dd/mm/yy\"\n                [showIcon]=\"true\"></p-calendar>\n              <label for=\"fechaFinal\">{{ \"fechafinal\" | translate }}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input pInputText type=\"text\" formControlName=\"numero\" autocomplete=\"off\" maxlength=\"5\"\n                oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\"/>\n              <label>{{'numero' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n  </div>\n\n  <div class=\"mt-2\">\n    <p-table #tablaGeneral [value]=\"listaProceso\" selectionMode=\"single\" [rows]=\"10\" responsiveLayout=\"scroll\"\n      [paginator]=\"listaProceso.length > 10\" [totalRecords]=\"listaProceso.length\" [tableStyle]=\"{'min-width':'48rem'}\"\n      [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      styleClass=\"p-datatable-striped\" (onRowSelect)=\"onRowSelect($event)\"\n      [scrollable]=\"true\" selectionMode=\"single\" >\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th style=\"width: 40%;\">{{ 'cargo' | translate }}</th>\n          <th style=\"width: 30%;\">{{ 'numero' | translate }}</th>\n          <th style=\"width: 30%;\">{{ 'fecha' | translate }}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-proceso>\n        <tr [pSelectableRow]=\"proceso\">\n          <td style=\"width: 40%;\">{{'.' == proceso.nombrecargo ? proceso.nombreCargoNuevo : proceso.nombrecargo}}</td>\n          <td style=\"width: 30%;\">{{proceso.numero}}</td>\n          <td style=\"width: 30%;\">{{proceso.fechainicio | date : ( 'formatofecha' | translate)}}</td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n  </div>\n\n</p-dialog>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CommonModule, DatePipe, NgIf } from '@angular/common';\nimport { FormsModule, NgForm, ReactiveFormsModule } from '@angular/forms';\nimport { CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { CandidatoModel } from '../../../models/CandidatoModel';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { TipoActividadPipe } from '../../../pipes/tipo-actividad.pipe';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { TabViewModule } from 'primeng/tabview';\nimport { PopupCambioEstadoCandidatoComponent } from '../../../popups/popup-cambio-estado-candidato/popup-cambio-estado-candidato.component';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ProcesoSeleccionCandidatoFacadeService } from '../../../../../modules/sarageneral/services/procesoSeleccionCandidatoFacade.service';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\n\n@Component({\n  selector: 'app-detalle-candidato-proceso-seleccion',\n  templateUrl: './detalle-candidato-proceso-seleccion.component.html',\n  styleUrl: './detalle-candidato-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,\n    DatePipe, FileUploadModule, CheckboxModule, ConfirmPopupModule, ProcesoSeleccionMenuPage, CommonModule, InputHelperHojaVidaComponent,\n    TabViewModule, PopupCambioEstadoCandidatoComponent],\n\n})\nexport class DetalleCandidatoProcesoSeleccionComponent implements OnInit {\n\n  @ViewChild('formDetalleCandidato', { static: false }) formDetalleCandidato!: NgForm;\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Input() public candidato: CandidatoModel;\n  @Input() public encuesta: boolean;\n  @Input() public candidatoNuevo: boolean;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  @Output() public regresarAListado = new EventEmitter;\n  public puntajeProceso: string;\n  listaEstNuevo: any;\n  listaCodigo: any;\n  listaMotivo: any;\n  verPopupCambioEstadoCandidato: boolean;\n  listaEstadoSeguimiento: any;\n  //FIXME: metodos que faltan\n  listaSiNo: any;\n  headerIdentificacion: string;\n\n  constructor(private generalService: GeneralService, public utilsService: UtilsService,\n    public listaConstantesPipe: ListaConstantesPipe, public generalPipe: GeneralPipe,\n    private confirmationService: ConfirmationService, private procesoSeleccionService: ProcesoSeleccionService,\n    private toastService: ToastService, public translateService: TranslateService, private cargarMapas: cargarmapasGlobal,\n    private tipoActividadPipe: TipoActividadPipe, private controlFuncionalidad: CargarControlFuncionalidadService,\n    private procesoSeleccionCandidatoFacadeService : ProcesoSeleccionCandidatoFacadeService\n  ) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  async cargar() {\n    this.cargarCandidato();\n    if (this.encuesta) {\n      // bloquear form candidato\n    }\n    this.listaEstadoSeguimiento = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoActividadDTO', null, false, { origen: this.tipoActividadPipe.ORIGEN_ESTADO_SEGUIMIENTO }));\n    this.listaCodigo = await this.cargarMapas.cargarSelectItemString('codigo', 'descripcion', new GeneralModel('CodigoBaseDTO', null, false, { tipo: 'TI' }));\n    this.listaMotivo = await this.cargarMapas.cargarSelectItemString('codigo', 'descripcion', new GeneralModel('CodigoBaseDTO', null, false, { tipo: 'MR' }));\n  }\n\n  async regresarVistaPrincipal() {\n    this.regresar.emit();\n  }\n\n  async regresarVista() {\n    this.regresarAListado.emit();\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  async cargarCandidato() {\n    this.candidato.fechainscripcion = this.candidato.fechainscripcion != null ? new Date(this.candidato.fechainscripcion) : null;\n    this.candidato.conceptofinal = this.candidato.conceptofinal != null ? new Date(this.candidato.conceptofinal) : null;\n    this.listaEstNuevo = this.listaConstantesPipe.ETAPAPROCESO;\n    if (this.candidatoNuevo) {\n      this.candidato.estado = this.listaConstantesPipe.PREINSCRIPCION;\n      this.candidato.externo = 'N';\n      this.candidato.fechainscripcion = new Date();\n    }\n    this.obtenerPuntajeProceso();\n  }\n\n  obtenerPuntajeProceso() {\n    this.puntajeProceso = \"\";\n    if (this.candidato != null && this.candidato.puntaje != null) {\n      if (this.candidato.puntaje > 0) {\n        this.puntajeProceso = String(this.candidato.puntaje);\n      } else {\n        this.puntajeProceso = 'Puntaje Inferior';\n      }\n    }\n  }\n\n  cambioTab(event) {\n\n  }\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  isEstadoFinal(): boolean {\n    return this.listaConstantesPipe.ENGANCHE.toUpperCase() == this.candidato.estado.toUpperCase() ||\n      this.listaConstantesPipe.INFORMEFINAL.toUpperCase() == this.candidato.estado.toUpperCase();\n  }\n\n  isPuntajeProceso(): string {\n    let puntajeProceso: string = '';\n    if (this.candidato != null && this.candidato.puntaje != null) {\n      if (0 < this.candidato.puntaje) {\n        puntajeProceso = String(this.candidato.puntaje);\n      } else {\n        puntajeProceso = 'Puntaje Inferior';\n      }\n    }\n    return puntajeProceso;\n  }\n\n  cambiarEstadoCandidato() {\n    this.verPopupCambioEstadoCandidato = true;\n  }\n\n  regresarPopupEstadoSeleccionCandidato() {\n    this.verPopupCambioEstadoCandidato = false;\n  }\n\n  seleccionEstadoCandidato(event) {\n    if (event?.etapa) {\n      this.candidato.estado = event.etapa;\n      this.candidato.estadoSeguimiento = event.estadoInicio;\n    }\n    this.verPopupCambioEstadoCandidato = false;\n  }\n\n  showEliminarCandidatoConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarCandidato();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  eliminarCandidato() {\n    let objetoFiltro: GeneralModel = new GeneralModel('CandidatoDTO', null, false, this.candidato);\n    this.generalService.delete(objetoFiltro).subscribe(data => {\n      let result: number = data;\n      if (result == 1) {\n        this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      } else {\n        this.toastService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n  actualizarTarea() {\n    if (this.formDetalleCandidato.valid) {\n      if(Constantes.CONSTANTE_NO != this.candidato.estado){\n        this.distintoAdmitido();\n      }\n\n      let objetoFiltro: GeneralModel = new GeneralModel('FormatoDatoDTO', null, false, this.candidato);\n      this.generalService.update(objetoFiltro).subscribe(data => {\n        let result: number = data;\n        if (result == 1) {\n            //let objProcesoSeleccionCandFacade : ParametrosGeneralModel = new ParametrosGeneralModel('CandidatoDTO', this.formCandidato.value, null, {estadoPasado : this.estadoPasado} ,null);\n            //await this.procesoSeleccionCandidatoFacadeService.actualizarProcesoSeleccionCandidato(objProcesoSeleccionCandFacade).toPromise();\n          this.toastService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n        } else {\n          this.toastService.showError('Error al actualizar el registro');\n        }\n      }, err => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        if (data.includes('ORA-02292')) {\n          this.toastService.showError('El registro se utiliza en otros tareas, No es posible actualizar');\n        }\n      });\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formDetalleCandidato.controls).forEach((key) => {\n        if (this.formDetalleCandidato.controls[key].invalid) {\n          this.formDetalleCandidato.controls[key].markAsDirty();\n        }\n      });\n    }\n  }\n\n  distintoAdmitido(){\n    this.candidato.motivo = Constantes.PUNTO;\n    this.candidato.observacion = Constantes.PUNTO;\n    this.candidato.reclamacion = Constantes.CONSTANTE_NO;\n    this.candidato.fechareclamacion = null;\n    this.candidato.dorecalcma = Constantes.PUNTO;\n    this.candidato.reclamaciontexto = Constantes.PUNTO;\n  }\n\n  //FIXME: metodos que faltan\n  onSelectNuevoCandidato(event) {\n  }\n\n  crearRegistroCandidato() {\n  }\n\n}\n","<div class=\"card\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n        <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'candidato' | translate}}</h5>\n        <button pButton pRipple label=\"{{'listado' | translate}} {{'candidato' | translate}}\" (click)=\"regresarVista()\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n    </div>\n\n    <p-tabView (onChange)=\"cambioTab($event)\">\n        <!-- TAB CANDIDATO -->\n        <p-tabPanel header=\"{{'candidato' | translate}}\">\n            <form #formDetalleCandidato=\"ngForm\">\n                <div class=\"col-12 md:col-12 lg:col-12 mt-3\">\n                    <div class=\"p-fluid p-formgrid grid\">\n\n                        <!-- IDENTIFICACIÓN -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"candidatoNuevo\">\n                            <app-input-helper-hoja-vida [header]=\"headerIdentificacion\" id=\"documentoCandidato\"\n                                [label]=\"candidato.documentoCandidato != null ? candidato.documentoCandidato  : ''\"\n                                name=\"documentoCandidato\" [(ngModel)]=\"candidato.documentoCandidato\" required\n                                (onSelected)=\"onSelectNuevoCandidato($event)\">\n                            </app-input-helper-hoja-vida>\n                        </div>\n\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"!candidatoNuevo\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"documentoCandidato\" required\n                                    [(ngModel)]=\"candidato.documentoCandidato\" autocomplete=\"off\" [disabled]=\"true\" />\n                                <label htmlFor=\"identificacion\">{{'identificacion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- ESTADO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"estado\" [options]=\"listaEstNuevo\" name=\"estado\" required\n                                    [(ngModel)]=\"candidato.estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                                    [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"true\"></p-dropdown>\n                                <label htmlFor=\"estado\">{{'estado' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- ENGANCHE -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'E' == candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"enganche\" [options]=\"listaConstantesPipe.SI_NO\" name=\"enganche\"\n                                    [(ngModel)]=\"candidato.enganche\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                                    [autoDisplayFirst]=\"false\" appendTo=\"body\"></p-dropdown>\n                                <label htmlFor=\"enganche\">{{'enganche' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- NOMBRE -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"nombres\" [(ngModel)]=\"candidato.nombres\"\n                                    autocomplete=\"off\" [disabled]=\"true\" />\n                                <label htmlFor=\"nombres\">{{'nombre' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- DIRECCIÓN -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"direccion\" [(ngModel)]=\"candidato.direccion\"\n                                    autocomplete=\"off\" [disabled]=\"true\" />\n                                <label htmlFor=\"direccion\">{{'direccion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- TELEFONO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"telefono\" [(ngModel)]=\"candidato.telefono\"\n                                    autocomplete=\"off\" [disabled]=\"true\" />\n                                <label htmlFor=\"telefono\">{{'telefono' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- CONSECUTIVO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"cadenaConsecutivo\"\n                                    [(ngModel)]=\"candidato.cadenaConsecutivo\" autocomplete=\"off\" [disabled]=\"true\" />\n                                <label htmlFor=\"cadenaConsecutivo\">{{'consecutivo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- FECHA -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-calendar id=\"fechainscripcion\" dateFormat=\"dd/mm/yy\" name=\"fechainscripcion\"\n                                    [(ngModel)]=\"candidato.fechainscripcion\" appendTo=\"body\" [showIcon]=\"true\"\n                                    [showTime]=\"false\" [showSeconds]=\"true\"></p-calendar>\n                                <label for=\"fechainscripcion\">{{'fecha' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- ESTADO SEGUIMIENTO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"estadoSeguimiento\" [options]=\"listaEstadoSeguimiento\"\n                                    name=\"estadoSeguimiento\" [(ngModel)]=\"candidato.estadoSeguimiento\" optionValue=\"key\"\n                                    optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                    [disabled]=\"true\"></p-dropdown>\n                                <label htmlFor=\"estadoSeguimiento\">{{'estado' | translate}} {{'seguimiento' |\n                                    translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- DOCUMENTO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"folio\" [(ngModel)]=\"candidato.folio\"\n                                    autocomplete=\"off\" [disabled]=\"encuesta\" maxlength=\"10\" />\n                                <label htmlFor=\"folio\">{{'documento' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- TIPO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"inscripcion\" [options]=\"listaCodigo\" name=\"inscripcion\"\n                                    [(ngModel)]=\"candidato.inscripcion\" optionValue=\"key\" optionLabel=\"label\"\n                                    [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"encuesta\"></p-dropdown>\n                                <label htmlFor=\"inscripcion\">{{'tipo' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- CONCEPTO FINAL -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <p-calendar id=\"conceptofinal\" dateFormat=\"dd/mm/yy\" name=\"conceptofinal\"\n                                    [(ngModel)]=\"candidato.conceptofinal\" [disabled]=\"encuesta\" appendTo=\"body\"\n                                    [showIcon]=\"true\" [showTime]=\"false\" [showSeconds]=\"true\"></p-calendar>\n                                <label for=\"conceptofinal\">{{'concepto_final' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- PUNTAJE PROCESO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != candidato.estado && !encuesta\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"puntajeProceso\" [(ngModel)]=\"puntajeProceso\"\n                                    autocomplete=\"off\" [disabled]=\"true\" />\n                                <label htmlFor=\"puntajeProceso\">{{'puntaje' | translate}} {{'proceso' |\n                                    translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- POSICIÓN -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'I' != candidato.estado && !encuesta\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"posicion\" [(ngModel)]=\"candidato.posicion\"\n                                    autocomplete=\"off\" [disabled]=\"true\" maxlength=\"17\"\n                                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\" />\n                                <label htmlFor=\"posicion\">{{'posicion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- POSIBLE INGRESO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\"\n                            *ngIf=\"'I' != candidato.estado && isEstadoFinal() && !encuesta\">\n                            <span class=\"p-float-label\">\n                                <p-calendar id=\"fechaingreso\" dateFormat=\"dd/mm/yy\" name=\"fechaingreso\"\n                                    [(ngModel)]=\"candidato.fechaingreso\" appendTo=\"body\" [showIcon]=\"true\"\n                                    [showTime]=\"false\" [showSeconds]=\"true\"></p-calendar>\n                                <label for=\"fechaingreso\">{{'posible' | translate}} {{'ingreso' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- TERMINA -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\"\n                            *ngIf=\"'I' != candidato.estado && isEstadoFinal() && !encuesta\">\n                            <span class=\"p-float-label\">\n                                <p-calendar id=\"fechatermina\" dateFormat=\"dd/mm/yy\" name=\"fechatermina\" appendTo=\"body\"\n                                    [showIcon]=\"true\" [showTime]=\"false\" [(ngModel)]=\"candidato.fechatermina\"\n                                    [showSeconds]=\"true\"></p-calendar>\n                                <label for=\"fechatermina\">{{'termina' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- MOTIVO -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"motivo\" [options]=\"listaMotivo\" name=\"motivo\" required\n                                    [(ngModel)]=\"candidato.motivo\" optionValue=\"key\" optionLabel=\"label\"\n                                    [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"encuesta\"></p-dropdown>\n                                <label htmlFor=\"motivo\">{{'motivo' | translate}} {{'no' | translate}} {{'admision' |\n                                    translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- OBSERVACIÓN -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"observacion\" [(ngModel)]=\"candidato.observacion\"\n                                    autocomplete=\"off\" [disabled]=\"encuesta\" maxlength=\"2000\" />\n                                <label htmlFor=\"observacion\">{{'observacion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- RECLAMACIÓN -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"reclamacion\" [options]=\"listaSiNo\" name=\"reclamacion\"\n                                    [(ngModel)]=\"candidato.reclamacion\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                                    [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"encuesta\"></p-dropdown>\n                                <label htmlFor=\"reclamacion\">{{'reclamacion' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- FECHA RECLAMACIÓN -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <p-calendar id=\"fechareclamacion\" dateFormat=\"dd/mm/yy\"\n                                    [(ngModel)]=\"candidato.fechareclamacion\" name=\"fechareclamacion\"\n                                    [disabled]=\"encuesta\" appendTo=\"body\" [showIcon]=\"true\" [showTime]=\"false\"\n                                    [showSeconds]=\"true\"></p-calendar>\n                                <label for=\"fechareclamacion\">{{'fecha' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- DORECALCMA -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"dorecalcma\" autocomplete=\"off\" [disabled]=\"encuesta\"\n                                    maxlength=\"10\" [(ngModel)]=\"candidato.dorecalcma\" />\n                                <label htmlFor=\"dorecalcma\">{{'documento' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- DESC. RECLAMACIÓN -->\n                        <div class=\"field col-12 md:col-3 lg:col-3\" *ngIf=\"'N' == candidato.estado\">\n                            <span class=\"p-float-label\">\n                                <input pInputText type=\"text\" name=\"reclamaciontexto\" autocomplete=\"off\"\n                                    [disabled]=\"encuesta\" maxlength=\"4000\" [(ngModel)]=\"candidato.reclamaciontexto\" />\n                                <label htmlFor=\"reclamaciontexto\">{{'descripcion' | translate}} {{'reclamacion' |\n                                    translate}}</label>\n                            </span>\n                        </div>\n\n                        <div class=\"field col-12 md:col-9 lg:col-9\">\n                        </div>\n\n                        <!-- CONCEPTO GENERAL -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"!encuesta\">\n                            <span class=\"p-float-label\">\n                                <textarea pInputTextarea rows=\"5\" cols=\"10\" [disabled]=\"encuesta\"\n                                    class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n                                    maxlength=\"4000\" name=\"concepto\" [(ngModel)]=\"candidato.concepto\">\n                          </textarea>\n                                <label for=\"concepto\">{{'concepto' | translate}} {{'general' | translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- CONCEPTO GENERAL -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"!encuesta\">\n                            <span class=\"p-float-label\">\n                                <textarea pInputTextarea rows=\"5\" cols=\"10\" [disabled]=\"encuesta\"\n                                    class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n                                    maxlength=\"4000\" name=\"desarrollo\" [(ngModel)]=\"candidato.desarrollo\">\n                          </textarea>\n                                <label for=\"desarrollo\">{{'factor' | translate}} {{'de' | translate}} {{'desarrollo' |\n                                    translate}}</label>\n                            </span>\n                        </div>\n\n                        <!-- MENSAJE -->\n                        <div class=\"field col-12 md:col-6 lg:col-6\" *ngIf=\"candidato.mensaje != null\">\n                            <span class=\"p-float-label\">\n                                <textarea pInputTextarea rows=\"5\" cols=\"10\" [disabled]=\"true\"\n                                    class=\"p-inputtextarea p-inputtext p-component p-element min-h-70 max-h-100 w-full\"\n                                    maxlength=\"4000\" name=\"mensaje\" [(ngModel)]=\"candidato.mensaje\">\n                          </textarea>\n                                <label for=\"mensaje\">{{'mensaje' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n            </form>\n            <div class=\"flex justify-content-end\">\n                <button pButton pRipple class=\"mr-3 mb-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n                    (click)=\"actualizarTarea()\" label=\"{{'link_actualizar' | translate}}\"\n                    *ngIf=\"this.validarControlFuncionalidad('procsel:actcand') && !candidatoNuevo\"></button>\n                <button pButton pRipple class=\"mr-3 mb-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n                    (click)=\"showEliminarCandidatoConfirmDialog()\" label=\"{{'link_eliminar' | translate}}\"\n                    *ngIf=\"this.validarControlFuncionalidad('procsel:elimcand') && !candidatoNuevo\"></button>\n                <button pButton pRipple class=\"mr-2 mb-2 p-button p-button-outlined\" icon=\"glyphicons glyphicons-check\"\n                    (click)=\"cambiarEstadoCandidato()\" label=\"{{'link_cambiarestado' | translate}}\"\n                    *ngIf=\"this.validarControlFuncionalidad('procsel:actcand') && !candidatoNuevo\">\n                </button>\n                <button pButton pRipple *ngIf=\"this.validarControlFuncionalidad('procsel:guarcand') && candidatoNuevo\"\n                    class=\"mr-2 mb-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n                    (click)=\"crearRegistroCandidato()\" label=\"{{'link_guardar' | translate}}\"></button>\n            </div>\n        </p-tabPanel>\n\n    </p-tabView>\n</div>\n<div *ngIf=\"verPopupCambioEstadoCandidato\">\n    <app-popup-cambio-estado-candidato [showDialog]=\"verPopupCambioEstadoCandidato\"\n        [procesoSeleccion]=\"procesoSeleccionado.llaveTabla\" (onSelected)=\"seleccionEstadoCandidato($event)\"\n        (regresar)=\"regresarPopupEstadoSeleccionCandidato()\"></app-popup-cambio-estado-candidato>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule, DatePipe, NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FiltroGeneralComponent, GeneralModel, ParametrosGeneralModel, ToastService, UnionModel, UtilsService } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { CandidatoModel } from '../../../models/CandidatoModel';\nimport { SeleccionableWrapper } from '../../../../../modules/compensacion/models/SeleccionableWrapperModel';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { TipoActividadPipe } from '../../../pipes/tipo-actividad.pipe';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { PopupProcesoSeleccionTrasladarComponent } from '../../../popups/popup-proceso-seleccion-trasladar/popup-proceso-seleccion-trasladar.component';\nimport { DetalleCandidatoProcesoSeleccionComponent } from '../detalle-candidato-proceso-seleccion/detalle-candidato-proceso-seleccion.component';\n\n@Component({\n  selector: 'app-registro-candidato-proceso-seleccion',\n  templateUrl: './registro-candidato-proceso-seleccion.component.html',\n  styleUrl: './registro-candidato-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, DatePipe,\n    ConfirmPopupModule, FiltroGeneralComponent, CheckboxModule, PopupProcesoSeleccionTrasladarComponent,\n    ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent, DetalleCandidatoProcesoSeleccionComponent, CommonModule],\n})\n\nexport class RegistroCandidatoProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaRegistroCandidatoWrapper: SeleccionableWrapper[] = [];\n  public listaSelectRegistroCandidato: UnionModel[] = [];\n  public candidatosSeleccionados: EtapaProcesoModel[] = [];\n  public verPopupProcesoSeleccionTrasladar: boolean;\n  public candidato: CandidatoModel;\n  public candidatoNuevo: boolean;\n  public verDetalleCandidato : boolean;\n  listaEstadosRegistroCandidato: any;\n  listaEstadosSeguimRegistroCand: any;\n  filters = [];\n\n  constructor(private generalService: GeneralService, public utilsService: UtilsService,\n    public listaConstantesPipe: ListaConstantesPipe, public generalPipe: GeneralPipe,\n    private confirmationService: ConfirmationService, private procesoSeleccionService: ProcesoSeleccionService,\n    private toastService: ToastService, public translateService: TranslateService, private cargarMapas: cargarmapasGlobal,\n    private tipoActividadPipe: TipoActividadPipe\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n\n  cargar() {\n    this.verDetalleCandidato = false;\n    this.cargarFiltroRegistroCandidato();\n    this.cargarListaEstadosRegCandidato();\n  }\n\n  cargarFiltroRegistroCandidato() {\n    this.filters = [\n      {\n        field: 'persona',\n        header: this.translateService.instant('persona'),\n        matchMode: 'contains'\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: this.listaEstadosRegistroCandidato,\n        matchMode: 'equals',\n      },\n    ];\n  }\n\n  async cargarListaEstadosRegCandidato() {\n    this.listaEstadosRegistroCandidato = await this.cargarMapas.cargarSelectItemString('codigo', 'descripcion', new GeneralModel('CodigoBaseHovDTO', null, false, { tipo: this.listaConstantesPipe.TIPO_CANDIDATO }));\n    this.listaEstadosSeguimRegistroCand = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoActividadDTO', null, false, { origen: this.tipoActividadPipe.ORIGEN_ESTADO_SEGUIMIENTO }));\n  }\n\n  async cargarListaRegistroCandidato(event) {\n    let candidatoFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      procesoseleccion: this.procesoSeleccionado.llaveTabla,\n      comodinBusqueda: event.filters?.persona?.value != null ? Constantes.PORCENTAJE + event.filters?.persona?.value.trim() + Constantes.PORCENTAJE : null,\n      estado: event.filters?.estado?.value != null ? event.filters?.estado?.value : null\n    };\n    let respuesta = await this.procesoSeleccionService.obtenerListaRegistroCandidatos({ candidato: candidatoFiltro }).toPromise();\n    this.listaRegistroCandidatoWrapper = [];\n    this.listaSelectRegistroCandidato = [];\n    this.candidatosSeleccionados = [];\n    if (respuesta?.resultado) {\n      this.listaRegistroCandidatoWrapper = respuesta?.resultado;\n      this.listaRegistroCandidatoWrapper.forEach(wrapper => {\n        let objWrapper: any;\n        objWrapper = wrapper.unionDTO;\n        objWrapper.check = wrapper.seleccionar ? true : false;\n        this.listaSelectRegistroCandidato.push(objWrapper);\n      });\n    }\n  }\n\n  notificarRegistroCandidato() {\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'CandidatoDTO', this.procesoSeleccionado, this.listaSelectRegistroCandidato, null, null);\n    this.procesoSeleccionService.notificarRegistroCandidato(objParametros).subscribe(data => {\n      if (data?.resultado != null) {\n        let alguno = data?.resultado;\n        if (alguno) {\n          this.toastService.showSuccess('Las notificaciones han sido enviadas correctamente');\n        } else {\n          this.toastService.showError('Por Favor Seleccione un candidato');\n        }\n      }\n    });\n  }\n\n  async seleccionRegistroCandidato(event) {\n    this.candidato = new CandidatoModel();\n    if (event?.data) {\n      this.candidatoNuevo = false;\n      this.candidato = event.data;\n      this.verDetalleCandidato = true;\n    }\n  }\n\n  verPopupTrasladarRegistroCandidato() {\n    this.verPopupProcesoSeleccionTrasladar = true;\n  }\n\n  regresarPopupProcesoSeleccionTrasladar() {\n    this.verPopupProcesoSeleccionTrasladar = false;\n  }\n\n  seleccionTraslado(event) {\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'CandidatoDTO', event, this.listaSelectRegistroCandidato, null, null);\n    this.procesoSeleccionService.trasladarCandidato(objParametros).subscribe(data => {\n      if (data?.resultado != null) {\n        let mensaje = data?.resultado;\n        if (mensaje != null && mensaje != Constantes.ESPACIO_NULO) {\n          this.toastService.showSuccess(mensaje);\n        } else {\n          this.toastService.showError('Por Favor Seleccione un candidato');\n        }\n      }\n    });\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n  regresarAListado(){\n    this.verDetalleCandidato = false;\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'registro' | translate}} {{'candidato' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\" *ngIf=\"!verDetalleCandidato\">\n  <div class=\"p-fluid grid flex justify-content-between align-items-center mr-0 ml-0 mt-3\">\n    <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneralRegistroCandidato\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <input autofocus pInputText type=\"text\" formControlName=\"persona\" autocomplete=\"off\" />\n              <label>{{'persona' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-dropdown [autoDisplayFirst]=\"false\" [options]=\"listaEstadosRegistroCandidato\" formControlName=\"estado\"\n                optionLabel=\"label\" optionValue=\"key\">\n              </p-dropdown>\n              <label>{{'estado' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n    <div class=\"flex justify-content-end\" *ngIf=\"0 < listaSelectRegistroCandidato.length && !isBloquear()\">\n      <button pButton pRipple class=\"mb-2 mr-2 p-button-secondary\" icon=\"glyphicons glyphicons-envelope\"\n        label=\"{{'link_notificar' | translate}}\" (click)=\"notificarRegistroCandidato()\">\n      </button>\n      <button pButton pRipple class=\"mb-2 p-button p-button-outlined\" icon=\"glyphicons glyphicons-reflect-y\"\n        label=\"{{'trasladar' | translate}}\" (click)=\"verPopupTrasladarRegistroCandidato()\">\n      </button>\n    </div>\n  </div>\n\n  <div class=\"mt-1\">\n    <p-table #tablaGeneralRegistroCandidato id=\"tabla_registro_candidato\" [value]=\"listaSelectRegistroCandidato\"\n      responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listaSelectRegistroCandidato.length > 10\"\n      scrollDirection=\"horizontal\" [rowsPerPageOptions]=\"[10, 20, 50]\" styleClass=\"p-datatable-striped\"\n      [totalRecords]=\"listaSelectRegistroCandidato.length\" selectionMode=\"single\"\n      (onRowSelect)=\"seleccionRegistroCandidato($event)\" [showCurrentPageReport]=\"true\"\n      [tableStyle]=\"{'min-width':'50rem'}\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      (onLazyLoad)=\"cargarListaRegistroCandidato($event)\" [lazy]=\"true\">\n      <ng-template pTemplate=\"header\">\n        <tr>\n          <th style=\"width: 3%;\" *ngIf=\"0 < listaSelectRegistroCandidato.length\"></th>\n          <th style=\"width: 8%;\">{{'posicion' | translate}}</th>\n          <th style=\"width: 8%;\">{{'consecutivo' | translate}}</th>\n          <th style=\"width: 10%;\">{{'identificacion' | translate}}</th>\n          <th style=\"width: 10%;\">{{'nombre' | translate}}</th>\n          <th style=\"width: 10%;\">{{'telefono' | translate}}</th>\n          <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n          <th style=\"width: 10%;\">{{'estado' | translate}} {{'seguimiento' | translate}}</th>\n          <th style=\"width: 10%;\">{{'candidatoprovieneaspirantes' | translate}}</th>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-candidato>\n        <tr [pSelectableRow]=\"candidato\">\n          <td style=\"width: 3%;\" *ngIf=\"0 < listaSelectRegistroCandidato.length\">\n            <div class=\"field-checkbox\">\n              <p-checkbox [binary]=\"true\" [(ngModel)]=\"candidato.check\">\n              </p-checkbox>\n            </div>\n          </td>\n          <td style=\"width: 8%;\">{{candidato.posicion}}</td>\n          <td style=\"width: 8%;\">{{candidato.cadenaConsecutivoCandidato}}</td>\n          <td style=\"width: 10%;\">{{candidato.documentoCandidato}}</td>\n          <td style=\"width: 10%;\">{{candidato.nombres}}</td>\n          <td style=\"width: 10%;\">{{candidato.telefono}}</td>\n          <td style=\"width: 10%;\">{{candidato.descripcionEstado}}</td>\n          <td style=\"width: 10%;\">\n            <p-dropdown [options]=\"listaEstadosSeguimRegistroCand\" [(ngModel)]=\"candidato.estadoSeguimiento\"\n              optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" [readonly]=\"true\"\n              appendTo=\"body\"></p-dropdown>\n          </td>\n          <td style=\"width: 10%;\" *ngIf=\"candidato.identificacion != 0 && 'S' == candidato.externo\">SI</td>\n          <td style=\"width: 10%;\" *ngIf=\"candidato.hojaVidaCandidato != null\">Hoja Aspirante</td>\n          <td style=\"width: 10%;\" *ngIf=\"candidato.hojaVidaCandidato == null && 'S' != candidato.externo\"></td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n          <td colspan=\"100\">\n            <app-template-tabla-vacia></app-template-tabla-vacia>\n          </td>\n        </tr>\n      </ng-template>\n    </p-table>\n  </div>\n</div>\n<div *ngIf=\"verDetalleCandidato\">\n  <app-detalle-candidato-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [candidato]=\"candidato\" [candidatoNuevo]=\"candidatoNuevo\"\n    [encuesta]=\"false\"\n  (regresarAListado)=\"regresarAListado()\"></app-detalle-candidato-proceso-seleccion>\n</div>\n<div *ngIf=\"verPopupProcesoSeleccionTrasladar\">\n  <app-popup-proceso-seleccion-trasladar [showDialog]=\"verPopupProcesoSeleccionTrasladar\"\n    [procesoSeleccionado]=\"procesoSeleccionado\" (regresar)=\"regresarPopupProcesoSeleccionTrasladar()\"\n    (onSelected)=\"seleccionTraslado($event)\">\n  </app-popup-proceso-seleccion-trasladar>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralService } from 'general-library-union';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { CargarArchivosService } from '../../servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../servicios/encriptado-basico.service';\nimport { AuthService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { HojaVidaModel } from '../../../modules/hojavida/models/HojaVidaModel';\nimport { NgIf } from '@angular/common';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { CandidatoModel } from '../../../modules/talento/models/CandidatoModel';\nimport { ProcesoSeleccionModel } from '../../../modules/talento/models/ProcesoSeleccionModel';\n\n@Component({\n  selector: 'app-cabecera-candidato',\n  templateUrl: './cabecera-candidato.component.html',\n  styleUrl: './cabecera-candidato.component.scss',\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    ConfirmPopupModule, NgIf],\n\n})\nexport class CabeceraCandidatoComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public planSucesionSeleccionado: CandidatoModel;\n  @Input() public conContrato: boolean = true;\n  @Input() public adicional: boolean = false;\n  public hojaVida : HojaVidaModel;\n  public urlFoto: string;\n\n\n  constructor(private encriptadoBasico: EncriptadoBasicoService,\n    private authService: AuthService, private generalService: GeneralService,\n    private cargarArchivo: CargarArchivosService) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  async cargar() {\n    if (this.planSucesionSeleccionado !== undefined && this.planSucesionSeleccionado !== null) {\n      this.cargarImagenFoto();\n    }\n  }\n\n  cargarImagenFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.planSucesionSeleccionado.nombreFoto + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n      this.blobToBase64(blob)\n    });\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  desRequiere() : string{\n    if(this.procesoSeleccionado.requerimiento != null && Constantes.PUNTO != this.procesoSeleccionado.requerimiento.trim()){\n      return Constantes.SI_STRING;\n    }\n    return Constantes.NO_STRING;\n  }\n\n}\n","<div class=\"mt-3\">\n    <div [class]=\"adicional ? 'col-12 md:col-6 lg:col-6' : 'col-12 md:col-12 lg:col-12'\">\n        <div [class]=\"conContrato ? 'empleado' : 'empleado hv-sin-contrato'\"\n            style=\"justify-content: center; align-items: center\">\n\n            <div class=\"flex\">\n                <div style=\"display: flex; justify-content: center; align-items: center; \">\n                    <div class=\"avatar-container\">\n                        <img [src]=\"urlFoto\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"urlFoto\">\n                        <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\" *ngIf=\"!urlFoto\">\n                    </div>\n                </div>\n\n                <div class=\"w-full ml-4\">\n                    <h1 class=\"w-full mb-3\">{{planSucesionSeleccionado.documentoCandidato}} :\n                        {{planSucesionSeleccionado.nombres}}</h1>\n                    <div class=\"p-fluid grid\">\n                        <!-- EMPRESA -->\n                        <div class=\"col-6 md:col-3 lg:col-3\">\n                            <p><span class=\"font-medium\">{{('empresa') | translate}}: </span><br>\n                                <span>{{planSucesionSeleccionado.nombreEmpresa}}</span>\n                            </p>\n                        </div>\n\n                        <!-- REQUERIMIENTO -->\n                        <div class=\"col-6 md:col-3 lg:col-3\">\n                            <p><span class=\"font-medium\">{{('requerimiento') | translate}}: </span><br>\n                                <span> {{desRequiere()}}</span>\n                            </p>\n                        </div>\n\n                        <!-- UNIDAD -->\n                        <div class=\"col-6 md:col-3 lg:col-3\">\n                            <p><span class=\"font-medium\">{{('unidad') | translate}}: </span><br>\n                                <span> {{planSucesionSeleccionado.nombreUnidad}}</span>\n                            </p>\n                        </div>\n\n                        <!-- CARGO -->\n                        <div class=\"col-6 md:col-3 lg:col-3\">\n                            <p><span class=\"font-medium\">{{('cargo') | translate}}: </span><br>\n                                <span> {{planSucesionSeleccionado.nombreCargo}}</span>\n                            </p>\n                        </div>\n\n                    </div>\n\n                </div>\n            </div>\n        </div>\n    </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CargarControlFuncionalidadService, GeneralService } from 'general-library-union';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { CandidatoModel } from '../../../../../../modules/talento/models/CandidatoModel';\nimport { ProcesoSeleccionModel } from '../../../../../../modules/talento/models/ProcesoSeleccionModel';\nimport { ListaConstantesPipe } from '../../../../../../shared/pipes/listaConstantes.pipe';\nimport { CabeceraCandidatoComponent } from '../../../../../../shared/componentes/cabecera-candidato/cabecera-candidato.component';\nimport { TabViewModule } from 'primeng/tabview';\n\n@Component({\n  selector: 'app-editar-plan-sucesion-proceso-seleccion',\n  templateUrl: './editar-plan-sucesion-proceso-seleccion.component.html',\n  styleUrl: './editar-plan-sucesion-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    ConfirmPopupModule, CabeceraCandidatoComponent, TabViewModule]\n})\nexport class EditarPlanSucesionProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public planSucesionSeleccionado: CandidatoModel;\n  @Output() public regresar = new EventEmitter;\n  public verDetalle : boolean;\n\n\n  constructor(private generalService: GeneralService, public listaConstantesPipe: ListaConstantesPipe,\n    public controlFuncionalidadService: CargarControlFuncionalidadService,\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.verDetalle = true;\n  }\n\n  cambioTab(event){\n    const tabName = event.originalEvent.target.innerText;\n    console.log(event);\n  }\n\n}\n","<div>\n  <app-cabecera-candidato [procesoSeleccionado]=\"procesoSeleccionado\"\n    [planSucesionSeleccionado]=\"planSucesionSeleccionado\"></app-cabecera-candidato>\n</div>\n\n<p-tabView (onChange)=\"cambioTab($event)\">\n  <!-- TAB FACTOR -->\n  <p-tabPanel header=\"{{'factor' | translate}}\" >\n\n  </p-tabPanel>\n\n  <!-- TAB RESULTADOS -->\n  <p-tabPanel header=\"{{'resultados' | translate}}\">\n\n  </p-tabPanel>\n\n</p-tabView>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralModel, GeneralService } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { CandidatoModel } from '../../../../../../modules/talento/models/CandidatoModel';\nimport { ProcesoSeleccionModel } from '../../../../../../modules/talento/models/ProcesoSeleccionModel';\nimport { ListaConstantesPipe } from '../../../../../../shared/pipes/listaConstantes.pipe';\nimport { EditarPlanSucesionProcesoSeleccionComponent } from '../editar-plan-sucesion-proceso-seleccion/editar-plan-sucesion-proceso-seleccion.component';\nimport { DetalleProcesoSeleccionComponent } from '../../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { ProcesoSeleccionMenuPage } from '../../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { RequerimientoPersonalModel } from '../../../../../../modules/talento/models/RequerimientoPersonalModel';\n\n@Component({\n  selector: 'app-listado-plan-sucesion-proceso-seleccion',\n  templateUrl: './listado-plan-sucesion-proceso-seleccion.component.html',\n  styleUrl: './listado-plan-sucesion-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,\n    ConfirmPopupModule, EditarPlanSucesionProcesoSeleccionComponent, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent]\n})\nexport class ListadoPlanSucesionProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public ocultarDetalleProcSel = new EventEmitter;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public planSucesionSeleccionado: CandidatoModel;\n  public listaPlanSucesion: CandidatoModel[] = [];\n  public verDetallePlanSucesion : boolean;\n\n\n  constructor(private generalService: GeneralService, public listaConstantesPipe: ListaConstantesPipe) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.verDetallePlanSucesion = false;\n    this.cargarListaPlanSucesion();\n  }\n\n  async cargarListaPlanSucesion() {\n    this.listaPlanSucesion = await this.generalService.queryForList(new GeneralModel('CandidatoDTO', null, false,\n      { procesoseleccion: this.procesoSeleccionado.llaveTabla })).toPromise();\n  }\n\n\n  seleccionRegistro(event) {\n    if (event) {\n      if (!this.isBloquear()) {\n        this.planSucesionSeleccionado = new CandidatoModel();\n        this.planSucesionSeleccionado = event.data;\n        this.ocultarDetalleProcSel.emit();\n        this.verDetallePlanSucesion = true;\n      }\n    }\n  }\n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n  seleccionAccionMenu(event) {\n    if(event != null){\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    if(this.verDetallePlanSucesion){\n      this.verDetallePlanSucesion = false;\n    }else{\n      this.regresar.emit();\n    }\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'plansucesion' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div *ngIf=\"!verDetallePlanSucesion\">\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\" *ngIf=\"!verDetallePlanSucesion\">\n  <p-table #tablaPlanSucesion id=\"tablaPlanSucesion\" [value]=\"listaPlanSucesion\" responsiveLayout=\"scroll\" [rows]=\"10\"\n    [paginator]=\"listaPlanSucesion.length > 10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"listaPlanSucesion.length\" [scrollable]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\" selectionMode=\"single\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" (onRowSelect)=\"seleccionRegistro($event)\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 25%;\">{{ 'identificacion' | translate }}</th>\n        <th style=\"width: 25%;\">{{ 'nombre' | translate }}</th>\n        <th style=\"width: 25%;\">{{ 'telefono' | translate }}</th>\n        <th style=\"width: 25%;\">{{ 'clasificacion' | translate }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-candidato>\n      <tr [pSelectableRow]=\"candidato\" style=\"width: 100%;\">\n        <td style=\"width: 25%;\">{{candidato.documentoCandidato}}</td>\n        <td style=\"width: 25%;\">{{candidato.nombres}}</td>\n        <td style=\"width: 25%;\">{{candidato.telefono}}</td>\n        <td style=\"width: 25%;\">{{candidato.puntajeSucesion}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n<div *ngIf=\"verDetallePlanSucesion\">\n  <app-editar-plan-sucesion-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    [planSucesionSeleccionado]=\"planSucesionSeleccionado\"></app-editar-plan-sucesion-proceso-seleccion>\n</div>\n","import { UnionModel } from 'general-library-union'\n\nexport class CategoriaModel extends UnionModel {\n\n\t\n\tcategoria: string;\n\t/**\n\t * Parametro para buscar o por el nivel del cargo o por la descripcion\n\t * Inicio\n\t*/\n\tparametroBusqueda: string;\t\n\t/**\n\t * Final\n\t */\n\tdescripcion: string;\n\torganizacion: number;\n\t//datos no persitentes\n\tmostrarEditar: boolean;\n\t\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, TableColumn } from 'general-library-union';\nimport { EmpresaModel } from '../../../modules/compensacion/models/EmpresaModel';\nimport { UnidadOrganizacionalModel } from '../../../modules/talento/models/UnidadOrganizacionalModel';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\n\n@Component({\n    selector: 'app-input-helper-unidad-multiple',\n    templateUrl: './input-helper-unidad-multiple.page.html',\n    styleUrls: ['./input-helper-unidad-multiple.page.scss'],\n    standalone: true,\n    imports: [InputTextModule, NgIf, ButtonDirective, Ripple, DialogModule, FormsModule, ReactiveFormsModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, CheckboxModule, TranslateModule,\n      FiltroGeneralComponent, InputTextareaModule]\n})\n\nexport class InputHelperUnidadMultiplePage implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  dataSelected: UnidadOrganizacionalModel;\n  seleccionar: boolean = true;\n\n  seleccionarTodo: boolean = false;\n\n\n  filters: { field: string; header: string; matchMode: string; }[];\n\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() ocultarBoton: boolean = false;\n\n  @Input() verListaFija: boolean = false;\n  @Input() punto: boolean = false;\n  @Input() estado: string = null;\n  @Input() sucursalGes: string = null;\n  @Input() verUnidades: boolean = false;\n  @Input() filtroLogin: boolean = false;\n  @Input() filtroSucursalGestionAsociada: boolean = false;\n  @Input() listaUnidadFija: UnidadOrganizacionalModel[] = [];\n  @Input() empresa: number;\n  @Input() booleano: boolean;\n\n\n\n\n  @Output() unidadseleccionado = new EventEmitter<UnidadOrganizacionalModel[]>();\n\n\n  showDialog: boolean = false;\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  columns: TableColumn[] = []\n  empresaSesion: EmpresaModel = new EmpresaModel;\n  lista: UnidadOrganizacionalModel[] = [];\n  listaUnidad: UnidadOrganizacionalModel[] = [];\n  parametroBusqueda: string = null;\n  usuario: string = null;\n  aliasRol: string = null;\n\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private translateService: TranslateService) { }\n\n  async ngOnInit() {\n\n    this.label = '';\n    this.listaUnidad = [];\n    this.filters = [\n      {\n        field: 'comodinBusqueda',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'equal',\n      }\n\n    ];\n\n    this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).subscribe(data => {\n      this.empresaSesion = data;\n\n      this.cargarListado(event);\n\n\n    });\n    this.usuario = this.authService.getTokenKey('usuario')\n    this.aliasRol = this.authService.getTokenKey('aliasRol')\n  }\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n  openDataTable() {\n    this.label = '';\n    this.listaUnidad = [];\n    this.filtroItem.chips = [];\n    this.showDialog = true;\n    this.cargarListado(event);\n  }\n\n  seleccionunidadmul() {\n\n    this.showDialog = false;\n\n    this.onChange(this.value);\n    this.unidadseleccionado.emit(this.listaUnidad);\n\n    for (const multi of this.listaUnidad) {\n      if (multi.check == true) {\n\n        const valor = String(multi.unidad);\n        const texto = String(multi.nombreUnidad);\n\n        // Agregar el valor y el texto a la variable label\n        for (let i = 0; i < 1; i++) {\n          this.label += valor + ' ' + texto + ' | ';\n        }\n      } else {\n        console.log(\"Los de False\", multi.nombreUnidad);\n      }\n    }\n\n    this.onChange(this.value);\n\n    // this.conceptoSeleccionados.emit();\n\n  }\n\n  async cargarListado(event) {\n\n\n    try {\n\n\n\n      if (this.verListaFija) {\n        this.listaUnidad = this.listaUnidadFija;\n        this.paginator.totalRecords = this.listaUnidad.length;\n        this.lista = this.listaUnidad;\n        this.paginator.totalRecords = (this.lista.length);\n      } else {\n        let objeto = {\n\n\n          sucursalGes: this.sucursalGes,\n          empresa: this.empresa ? this.empresa : parseInt(this.authService.getTokenKey('numeroEmpresa')),\n          //  empresa: 2,\n          //comodinBusqueda: this.parametroBusqueda ? '%' + this.parametroBusqueda + '%': null,\n          comodinBusqueda: event['comodinBusqueda'] ? '%' + event['comodinBusqueda']['value'] + '%' : null,\n\n          estado: this.estado ? 'S' : null,\n          filtroSucursalGes: this.filtroSucursalGestionAsociada ? 'S' : null,\n          aliasRol: this.aliasRol,\n          login: this.usuario,\n          paginacionRegistroInicial: event.first,\n          paginacionRegistroFinal: event.rows,\n\n        }\n\n        if ((this.parametroBusqueda == null || this.parametroBusqueda?.length < 1) && !this.verUnidades) {\n          //  this.paginator.totalRecords = 0;\n          this.lista = [];\n          if (this.filtroLogin) {\n            this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.contarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n            if (this.paginator.totalRecords < 10) {\n              this.lista = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.consultarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n            } else {\n              //   this.paginator.totalRecords = 0;\n            }\n          }\n        } else {\n          if (this.filtroLogin) {\n\n            this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.contarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n            this.lista = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', 'UnidadOrganizacional.consultarUnidadesDisponiblesRolAcceso', false, objeto)).toPromise();\n          } else {\n            this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('UnidadOrganizacionalDTO', null, false, objeto)).toPromise();\n\n            this.lista = await this.generalService.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, objeto)).toPromise();\n          }\n        }\n\n\n        if (this.punto) {\n          this.listaUnidad = this.lista\n        } else {\n          this.lista.forEach(uni => {\n            this.listaUnidad.push(uni)\n          })\n        }\n      }\n      this.verListaFija = false;\n\n\n    } catch (error) {\n      console.log(\"CArga error\", error);\n\n    }\n\n  }\n\n\n  async cargarListaFiltros(event) {\n    this.cargarListado(event);\n\n\n  }\n\n  async cambiarEstadoLoginCheck() {\n\n\n    if (this.seleccionar) {\n      this.seleccionar = false;\n      for (let per of this.listaUnidad) {\n        per.check = true;\n      }\n    } else {\n      this.seleccionar = true;\n      for (let per of this.listaUnidad) {\n        per.check = false;\n      }\n    }\n    return null;\n\n  }\n\n\n\n  estadoCheck() {\n\n    let isvalidar = false;\n\n    for (let per of this.listaUnidad) {\n      if (!per.check) {\n        isvalidar = true;\n        break;\n      }\n    }\n\n    if (isvalidar) {\n      this.seleccionar = true;\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionar = false;\n      this.seleccionarTodo = true;\n    }\n\n  }\n\n\n\n\n}\n","<div [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \" >\n    <span class=\"p-float-label\">\n        \n    <textarea pInputText [readonly]=\"true\" [value]=\"label\" class=\"w-full\"\n                    style=\"border-radius: 5px; ; max-height: 45px !important;  min-height: 45px;\"></textarea>\n                    \n    <label for=\"variable\">{{ 'unidad'| translate}} * </label>\n\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\"\n        *ngIf=\"!ocultarBoton\">\n        <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    </span>\n</div>\n\n<p-dialog header=\"{{'unidadorganizacional' | translate}} {{'multiple' | translate}}\"  [(visible)]=\"showDialog\" appendTo=\"body\"\n    [modal]=\"true\" [style]=\"{width: '50vw'}\">\n    <!-- <span class=\"p-input-icon-left buscardor\">\n        <i class=\"pi pi-search\"></i>\n        <input type=\"text\" pInputText [(ngModel)]=\"parametroBusqueda\"\n            (keyup.enter)=\"cargarListado({first: 0, rows: 10})\" />\n    </span> -->\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!-- <app-filtro-general #filtroItem  [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\" >\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n\n                        <span class=\"p-float-label mb-3\">\n                            <input pInputText autofocus type=\"text\" id=\"unidad\" formControlName=\"unidad\" />\n                            <label for=\"unidad\">{{'unidad' | translate}}</label>\n\n                        </span>\n\n                        <span class=\"p-float-label mb-3\">\n                            <input pInputText autofocus type=\"text\" id=\"nombreUnidad\" formControlName=\"nombreUnidad\" />\n                            <label for=\"nombreUnidad\">{{'campo' | translate}}</label>\n\n                        </span>\n\n                       \n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general> -->\n\n        <app-filtro-general (onHide)=\"showDialog\" #filtroItem  [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n              <ng-container [formGroup]=\"form\">\n                <div class=\"field\">\n                  <span class=\"p-float-label\">\n                    <input pInputText autofocus type=\"text\" id=\"comodinBusqueda\" formControlName=\"comodinBusqueda\" autocomplete=\"off\" />\n                    <label for=\"comodinBusqueda\">{{'busqueda' | translate}}</label>\n                  </span>\n                </div>\n              </ng-container>\n            </ng-template>\n          </app-filtro-general>\n        <button pButton label=\"{{'aplicar' | translate}}\" (click)=\"seleccionunidadmul()\"\n            icon=\"glyphicons glyphicons-check\" class=\"p-ripple p-element p-button p-component p-button-secondary\">\n        </button>\n\n\n    </div>\n\n    <!-- fin filtro G-->\n\n\n    <p-table   class=\"mt-4\" [value]=\"listaUnidad\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n    [totalRecords]=\"paginator.totalRecords\" [rows]=\"paginator.rows\" [paginator]=\"this.paginator.totalRecords > 10\"\n         [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" (onRowSelect)=\"seleccionunidadmul()\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"max-width: 10%;\">\n                    \n                    <p-checkbox class=\"ml-1\" [(ngModel)]=\"seleccionarTodo\" (onChange)=\"cambiarEstadoLoginCheck()\" [binary]=\"true\">\n                    </p-checkbox>\n                </th>\n                <th style=\"max-width: 40%;\">{{'codigo' | translate}}</th>\n                <th style=\"max-width: 40%\">{{'nombre' | translate}}</th>\n\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-planilla>\n            <tr [pSelectableRow]=\"planilla\">\n                <td style=\"max-width: 10%;\">\n                    <div class=\"field-checkbox\">\n                        <p-checkbox class=\"ml-1\"   (onChange)=\"estadoCheck()\"  [(ngModel)]=\"planilla.check\" [binary]=\"true\">\n                        </p-checkbox>\n                    </div>\n                </td>\n                <td style=\"max-width: 40%;\">{{planilla.unidad}}</td>\n                <td style=\"max-width: 40%;\">{{planilla.nombreUnidad}}</td>\n\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { FiltroGeneralComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { VariableCargoModel } from '../../../modules/compensacion/models/VariableCargoModel';\nimport { CargoModel } from '../../../modules/talento/models/CargoModel';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { NgSwitch, NgSwitchCase, NgIf } from '@angular/common';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Component({\n  selector: 'app-input-helper-variable-cargo',\n  templateUrl: './input-helper-variable-cargo.component.html',\n  styleUrls: ['./input-helper-variable-cargo.component.scss'],\n  standalone: true,\n  imports: [\n    NgSwitch,\n    NgSwitchCase,\n    InputTextareaModule,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    InputTextModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    CheckboxModule,\n    NgIf,\n    TranslateModule,\n    FiltroGeneralComponent\n  ],\n})\nexport class InputHelperVariableCargoComponent implements OnInit {\n  @Input() titcarg: string;\n  @Input() value: string | number;\n  @Input() mostrarobli: boolean;\n  @Input() mostraroblicargo: boolean;\n  @Input() mostrar: boolean;\n  @Output() public regresar = new EventEmitter();\n  @Input() public envio: VariableCargoModel;\n  @Output() descrip: string;\n\n  @Output() conceptoSeleccionado = new EventEmitter();\n  @Output() conceptoSeleccionados = new EventEmitter<CargoModel[]>();\n  @Output() conceptoMultiple = new EventEmitter();\n  @Input() readonly: boolean = false;\n  @Input() showDialog: boolean = false;\n  @Input() label: string = '';\n\n  @Input() llaveEmpresa: string;\n  @Input() titulabel: string;\n  @Input() tituvar: string;\n  @Input() editarono: boolean;\n  @Input() cargomultiple: boolean;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  listacargot: any[];\n  onChange: Function = () => {};\n  listaRutasOrig: CargoModel[] = [];\n  cargoseleccionado = [];\n  public listacargopop: CargoModel;\n  public totalRecords: number;\n  filters: { field: string; header: string; matchMode: string }[];\n  seleccionarTodo: boolean = false;\n\n  paginator = {\n    totalRecords: 0,\n    rows: 10,\n  };\n\n  seleccionar: boolean = true;\n  dataSelected: CargoModel;\n  multidataselec: CargoModel;\n  cargo4: null;\n  descr4: null;\n\n  constructor(\n    private translateService: TranslateService,\n    private notificacionesBusService: ToastService,\n    private generalService: GeneralService,\n    private generalPipe: GeneralPipe,\n  ) {}\n\n  ngOnInit() {    \n    if (this.titulabel != null) {\n    } else if (this.titcarg != null) {\n      this.titulabel = this.titcarg;\n    } else {\n      this.titulabel = 'Cargo';\n    }\n\n    let event = {};\n    this.cargardatosCargo(event);\n    this.filtro();\n  }\n\n  filtro() {\n    this.filters = [\n      {\n        field: 'cargo',\n        header: this.translateService.instant('cargo'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nivelCargo',\n        header: this.translateService.instant('nivelcargo'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  async cambiarEstadoLoginCheck() {\n    if (this.seleccionar) {\n      this.seleccionar = false;\n      for (let per of this.listaRutasOrig) {\n        per.check = true;\n      }\n    } else {\n      this.seleccionar = true;\n      for (let per of this.listaRutasOrig) {\n        per.check = false;\n      }\n    }\n    return null;\n  }\n\n  estadoCheck() {\n    let isvalidar = false;\n    for (let per of this.listaRutasOrig) {\n      if (!per.check) {\n        isvalidar = true;\n        break;\n      }\n    }\n\n    if (isvalidar) {\n      this.seleccionar = true;\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionar = false;\n      this.seleccionarTodo = true;\n    }\n  }\n\n  cargarListaFiltros(event) {\n    this.seleccionarTodo = false\n    this.seleccionar = true;\n    this.cargardatosCargo(event);\n    \n    }\n\n  cargardatosCargo(event) {\n    let filtro: CargoModel = new CargoModel();\n    filtro.cargo = event['cargo'] ? event['cargo']['value'].padEnd(8, ' ')  : null;\n    filtro.descripcion = event['descripcion']? '%' + event['descripcion']['value'] + '%' : null;\n    filtro.empresa = this.llaveEmpresa == null ? null : parseInt(this.llaveEmpresa);\n    filtro.estado = Constantes.CONSTANTE_SI;\n    \n    this.generalService\n      .queryForList(new GeneralModel('CargoDTO', null, false, filtro))\n      .subscribe((data) => {\n        this.listaRutasOrig = data;        \n        this.paginator.totalRecords = this.listaRutasOrig.length;\n        if(this.paginator.totalRecords <= 0){\n          this.seleccionarTodo = false\n          this.seleccionar = true;\n\n        }\n      });\n  }\n\n  verAction(evento) {\n    this.envio = evento.data;\n    this.regresaPopup();\n  }\n\n  seleccionConcepto() {\n//this.filtroItem.chips = [];\nthis.cargo4 = null;\nthis.descr4 = null;\n\n\n    if (!this.cargomultiple) {\n      this.showDialog = false;\n      this.value = String(this.dataSelected.cargo);\n      this.label = String(\n        this.dataSelected.cargo + ' - ' + this.dataSelected.descripcion,\n      );\n      this.onChange(this.value);\n      this.conceptoSeleccionado.emit(this.dataSelected);\n    } else {\n      this.showDialog = false;\n      this.onChange(this.value);\n      this.conceptoSeleccionados.emit(this.listaRutasOrig);\n\n      for (const multi of this.listaRutasOrig) {\n        if (multi.check == true) {\n          const valor = String(multi.cargo);\n          const texto = String( multi.descripcion);\n\n          // Agregar el valor y el texto a la variable label\n          for (let i = 0; i < 1; i++) {\n            this.label += valor + ' ' + texto + ' | ';\n          }\n        }\n      }\n\n      this.onChange(this.value);\n    }\n  }\n\n  async regresaPopup() {\n    this.mostrar = false;\n    this.regresar.emit(false);\n\n    // this.ngOnInit();\n  }\n\n  openDataTable() {\n    this.label = '';\n    this.listaRutasOrig = [];\n    let event = {};\n    this.showDialog = true;\n    this.cargardatosCargo(event);\n  }\n\n  loadData() {\n    let filtroc: CargoModel = new CargoModel();\n\n    const objetoFiltro = {\n      nombreDTO: 'CargoDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: filtroc,\n    };\n\n    this.generalService.queryForList(objetoFiltro).subscribe((data) => {\n      this.listacargot = data;\n      this.showDialog = true;\n    });\n  }\n\n  //prueba de tablas Dinamicas\n\n  crearRegistro() {\n    let acceso: CargoModel = new CargoModel();\n\n    acceso.llaveTabla = 'zehfauhderdbiccwdolmwxcusbbsaoto';\n    acceso.organizacion = 12;\n    acceso.cargoGen = 'acces';\n    acceso.empresa = 1;\n    acceso.cargo = 'prue';\n    acceso.nivelCargo = 'ss';\n\n    let result: number;\n    let objetoFiltro: GeneralModel = new GeneralModel(\n      'CargoDTO',\n      null,\n      false,\n      acceso,\n    );\n    this.generalService.crearRegistro(objetoFiltro).subscribe({\n      next: (data) => {\n        result = data;\n        if (result != null) {\n          this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n          this.listaRutasOrig.push();\n        } else {\n          this.notificacionesBusService.showError(\n            'Error en el método de agregar recurso',\n          );\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesBusService.showError(\n          'No es posible agregar el registro',\n        );\n      },\n    });\n  }\n\n  eliminarRegistro(acceso: CargoModel) {\n    let result: number;\n    let objetoFiltro: GeneralModel = new GeneralModel(\n      'CargoDTO',\n      null,\n      false,\n      acceso,\n    );\n    this.generalService.delete(objetoFiltro).subscribe({\n      next: (data) => {\n        result = data;\n        this.listaRutasOrig.push(acceso);\n\n        if (result != null) {\n          this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n          //this.cargarDatos();\n        } else {\n          this.notificacionesBusService.showError(\n            'Error en el método de eliminar recurso',\n          );\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesBusService.showError(\n          'No es posible eliminar el registro',\n        );\n      },\n    });\n  }\n\n  quitarRegistro(event: any) {\n    let acceso: CargoModel = event.data;\n    this.eliminarRegistro(acceso);\n  }\n\n  seleccionaRegistro(event: any) {\n    let periodo: CargoModel = event.data;\n    this.listaRutasOrig = this.listaRutasOrig.filter(\n      (data) => data.llaveTabla != periodo.llaveTabla,\n    );\n    this.crearRegistro();\n  }\n\n  mostrarNuevo() {\n    this.showDialog = false;\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value);\n    this.conceptoMultiple.emit(this.listaRutasOrig);\n  }\n\n  cambiarEstadoCheck() {\n    if (this.seleccionar) {\n      this.seleccionar = false;\n      for (let per of this.listaRutasOrig) {\n        per.check = true;\n      }\n    } else {\n      this.seleccionar = true;\n      for (let per of this.listaRutasOrig) {\n        per.check = false;\n      }\n    }\n    return null;\n  }\n}\n","<div #field [ngSwitch]=\"readonly\">\n    <div #field *ngSwitchCase=\"true\">\n        <div *ngIf=\"!mostraroblicargo\" #field class=\"p-inputgroup ml-3\">\n            <span class=\"p-float-label\">\n                <textarea pInputText [readonly]=\"true\" [value]=\"label\" class=\"w-full\"\n                    style=\"border-radius: 5px; ; max-height: 45px !important;  min-height: 45px;\"></textarea>\n                <label for=\"variable\">{{ titulabel | translate}} *</label>\n            </span>\n            <button pButton pRipple (click)=\"openDataTable()\" class=\"p-button-icon-only unico\">\n                <i class=\"pi pi-search\"></i>\n            </button>\n        </div>\n        <div *ngIf=\"mostraroblicargo\" #field class=\"p-inputgroup ng-invalid ng-dirty ng-touched ml-3\">\n            <span class=\"p-float-label\">\n                <textarea pInputText [readonly]=\"true\" [value]=\"label\" class=\"w-full\"\n                    style=\"border-radius: 5px; ; max-height: 45px !important;  min-height: 45px;\"></textarea>\n                <label for=\"variable\">{{ titulabel | translate}} *</label>\n            </span>\n            <button pButton pRipple (click)=\"openDataTable()\" class=\"p-button-icon-only unico\">\n                <i class=\"pi pi-search\"></i>\n            </button>\n        </div>\n        <p-dialog appendTo=\"body\" header=\"{{'cargo' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\"\n            [draggable]=\"false\" [resizable]=\"false\" (onHide)=\"regresaPopup()\" scrollbars=1\n            [breakpoints]=\"{'1366px': '75vw', '1024px': '75vw', '960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" (onShow)=\"openDataTable()\">\n            <div class=\"flex justify-content-between align-items-center mb-3\">\n                <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n                    <ng-template let-form>\n                        <ng-container [formGroup]=\"form\">\n                            <div class=\"field\">\n                                <span class=\"p-float-label mb-3\">\n                                    <input pInputText autofocus type=\"text\" id=\"cargo\" formControlName=\"cargo\" />\n                                    <label for=\"cargo\">{{'Cargo' | translate}}</label>\n\n                                </span>\n\n                                <span class=\"p-float-label mb-3\">\n                                    <input pInputText autofocus type=\"text\" id=\"descripcion\"\n                                        formControlName=\"descripcion\" />\n                                    <label for=\"descripcion\">{{'Descripcion' | translate}}</label>\n                                </span>\n                            </div>\n                        </ng-container>\n                    </ng-template>\n                </app-filtro-general>\n                <button pButton label=\"{{'aplicar' | translate}}\"\n                    (click)=\"seleccionConcepto()\" icon=\"glyphicons glyphicons-check\"\n                    class=\"p-ripple p-element p-button p-component p-button-secondary\">\n                </button>\n            </div>\n            <!-- fin filtro G-->\n\n            <p-table #tablaGeneral class=\"mt-4\" [scrollable]=\"true\" [value]=\"listaRutasOrig\" class=\"background:#fff;\"\n                responsiveLayout=\"scroll\" [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > 10 \"\n                [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\" dataKey=\"cargo\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                (onRowSelect)=\"seleccionConcepto()\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th style=\"width: 5%\">\n                            <p-checkbox class=\"ml-1\" [(ngModel)]=\"seleccionarTodo\"\n                                (onChange)=\"cambiarEstadoLoginCheck()\" [binary]=\"true\">\n                            </p-checkbox>\n                        </th>\n                        <th style=\"width: 10%\">{{'cargo' | translate}}</th>\n                        <th style=\"width: 40%\">{{'descripcion' | translate}}</th>\n                        <th style=\"width: 10%\">{{'Nivel Cargo' | translate}}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-planilla>\n                    <tr [pSelectableRow]=\"planilla\">\n                        <td style=\"width: 5%\">\n                            <div class=\"field-checkbox\">\n                                <p-checkbox class=\"ml-1\" (onChange)=\"estadoCheck()\" [(ngModel)]=\"planilla.check\"\n                                    [binary]=\"true\">\n                                </p-checkbox>\n                            </div>\n                        </td>\n                        <td style=\"width: 10%\">{{planilla.cargo}}</td>\n                        <td style=\"width: 40%\">{{planilla.descripcion}}</td>\n                        <td style=\"width: 10%\">{{planilla.nivelCargo}}</td>\n                    </tr>\n                </ng-template>\n\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>\n\n            </p-table>\n        </p-dialog>\n    </div>\n\n    <div *ngSwitchCase=\"false\">\n        <div #field *ngIf=\"mostraroblicargo\" class=\"p-inputgroup\">\n            <span class=\"p-float-label\">\n                <input pInputText #inputText [disabled]=\"true\" [readonly]=\"true\" [value]=\"label\" />\n                <button style=\"border-radius: 0px;\" pButton pRipple [disabled]=\"false\" (click)=\"openDataTable()\"\n                    class=\"p-button-icon-only unico\">\n                    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n                </button>\n                <label htmlFor=\"recursos\">{{titulabel | translate}}</label>\n            </span>\n        </div>\n        <div *ngIf=\"!mostraroblicargo\" #field class=\"p-inputgroup ng-invalid ng-dirty ng-touched\">\n            <span class=\"p-float-label\">\n                <input pInputText #inputText [disabled]=\"true\" [readonly]=\"true\" [value]=\"label\" />\n                <button style=\"border-radius: 0px;\" pButton pRipple [disabled]=\"editarono\" (click)=\"openDataTable()\"\n                    class=\"p-button-icon-only unico ng-invalid ng-dirty ng-touche\">\n                    <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n                </button>\n                <label for=\"recursos\">{{titulabel | translate}}</label>\n            </span>\n        </div>\n\n\n        <p-dialog class=\"top\" header=\"{{'cargo' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n            [draggable]=\"true\" (onHide)=\"regresaPopup()\" [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\"\n            [style]=\"{ width: '45vw', overflow:'auto'}\" (onShow)=\"openDataTable()\">\n            <div class=\"mb-3\">\n                <app-filtro-general #filtroItem [filtros]=\"filters\" (datatable)=\"tablaGeneral1\"\n                    (metodoRegresar)=\"cargarListaFiltros($event)\">\n                    <ng-template let-form>\n                        <ng-container [formGroup]=\"form\">\n                            <div class=\"field\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"cargo\" formControlName=\"cargo\"\n                                        [(ngModel)]=\"cargo4\" />\n                                    <label for=\"cargo\">{{'cargo' | translate}}</label>\n                                </span>\n                            </div>\n                            <div class=\"field\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"descripcion\" [(ngModel)]=\"descr4\"\n                                        formControlName=\"descripcion\" />\n                                    <label for=\"descripcion\">{{'descripcion' | translate}}</label>\n                                </span>\n                            </div>\n                        </ng-container>\n                    </ng-template>\n                </app-filtro-general>\n            </div>\n            <!-- fin filtro G-->\n            <p-table #tablaGeneral1 class=\"mt-4\" [value]=\"listaRutasOrig\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n                [rows]=\"paginator.rows\" [paginator]=\"true\" selectionMode=\"single\"\n                [paginator]=\"paginator.totalRecords > 10 \" [totalRecords]=\"paginator.totalRecords\"\n                [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                dataKey=\"cargo\" [(selection)]=\"dataSelected\" (onRowSelect)=\"seleccionConcepto()\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th style=\"width: 10%;\">{{'cargo' | translate}}</th>\n                        <th style=\"width: 60%;\">{{'descripcion' | translate}}</th>\n                        <th style=\"width: 12%;\">{{'Nivel Cargo' | translate}}</th>\n                    </tr>\n                    <th>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-planilla>\n                    <tr [pSelectableRow]=\"planilla\">\n                        <td style=\"width: 10%;\">{{planilla.cargo}}</td>\n                        <td style=\"width: 60%;\">{{planilla.descripcion}}</td>\n                        <td style=\"width: 12%;\">{{planilla.nivelCargo}}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n            <!-- </div> -->\n        </p-dialog>\n    </div>\n</div>","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n    name: 'requisitoConsPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class RequisitoConsPipe implements PipeTransform {\n\n    TABLA_TIPOBENEFICIO = \"TIPOBENEFICIO\";\n    TABLA_CONCEPTO = \"CONCEPTO\";\n    TABLA_VARIABLE = \"VARIABLE\";\n    TABLA_EVENTO = \"EVENTO\";\n    TABLA_GESTIONHOJA = \"GESTIONHOJA\";\n    TABLA_TIPONOVEDAD = \"TIPONOVEDAD\";\n    TABLA_TIPOAUSENCIA = \"TIPOAUSENCIA\";\n    TABLA_LOGIN_ACCESO = \"LOGINACCESO\";\n    TABLA_SELECCION = \"SELECCION\";\n    TABLA_PERIODOGESTION = \"PERIODOGESTION\";\n    TABLA_PLANCAPACITACION = \"PLANCAPACITA\";\n\n    CIUDAD = \"ciudad\";\n    ESTADO_CIVIL = \"estadocivil\";\n    NIVEL_DEL_CARGO = \"nivelcargo\";\n    TIPO_DE_VINCULACION = \"vinculacion\";\n    TIEMPO_DE_ANTIGUEDAD = \"antiguedad\";\n    TIEMPO_DE_ANTIGUEDADENTERO = \"antiguedadentero\";\n    TIEMPO_DE_ANTIGUEDADENTERO_DESC = \"Tiempo de Antiguedad Empresa - Año Entero\";\n    UNIDAD = \"unidad\";\n    UNIDAD_MULTI = \"unidad_multiple\";\n    UNIDAD_RELACION = \"unidadrelacion\";\n    RANGO_DE_SUELDO = \"sueldobasico\";\n    RESULTADO_EVALUACION = \"resultado_evaluacion\";\n    TIPO_DE_PERIODO = \"tipoperiodo\";\n    EMPRESA = \"empresa\";\n    EDAD = \"edad\";\n    EDADENTERO = \"edadentero\";\n    GENERO = \"sexo\";\n    CARGO = \"cargo\";\n    CARGO_MULTI = \"cargo_multiples\";\n    PARENTESCO = \"parentesco\";\n    ESTADOLABORAL = \"estadoeml\";\n    GRUPO = \"grupoempleado\";\n    SUELDOBASICO = \"basicosueldo\";\n    FILTRO_SUELDOBASICO = \"sueldobasico\";\n    ROLCLASIFICACION = \"rolclasificacion\";\n    DISCAPACIDAD = \"discapacidad\";\n    CLASIFICACION = \"clasificacion\";\n    TIEMPO_DE_ANTIGUEDAD_CARGO = \"antiguedadcargoact\";\n    TIEMPO_DE_ANTIGUEDAD_CARGOENTERO = \"antiguedadcargoactentero\"\n    CATEGORIA = \"categoria\";\n\n    //campos usados para filtro pariente\n    APROBADA = \"aprobada\";\n    CIUDAD2 = \"ciudad2\";\n    DEPENDE = \"depende\";\n    LISTA = \"lista\";\n    NIVEL_ACADEMICO = \"nivelacademico\";\n    PROFESION_OFICIO = \"profesionoficio\";\n    PUBLICA = \"publica\";\n\n    CIUDAD_DESC = \"Ciudad\";\n    ESTADO_CIVIL_DESC = \"Estado Civil\";\n    NIVEL_DEL_CARGO_DESC = \"Nivel del Cargo\";\n    TIPO_DE_VINCULACION_DESC = \"Tipo de Vinculacion\";\n    TIEMPO_DE_ANTIGUEDAD_DESC = \"Tiempo de Antiguedad Empresa\";\n    UNIDAD_ORGANIZACIONAL_DESC = \"Unidad Organizacional\";\n    UNIDAD_MULTI_DESC = \"Unidades Organizacionales Multiples\";\n    UNIDAD_RELACION_DESC = \"Unidades Organizacionales y las que dependen\";\n    RANGO_DE_SUELDO_DESC = \"Rango de Sueldo\";\n    RESULTADO_EVALUACION_DESC = \"Resultado Evaluacion\";\n    TIPO_DE_PERIODO_DESC = \"Tipo de Periodo\";\n    EMPRESA_DESC = \"Empresa\";\n    EDAD_DESC = \"Edad\";\n    EDADENTERO_DESC = \"Edad Año Entero\";\n    GENERO_DESC = \"Genero\";\n    CARGO_DESC = \"Cargo\";\n    CARGO_MULTI_DESC = \"Cargos Multiples\";\n    PARENTESCO_DESC = \"Parentesco\";\n    ESTADOLABORAL_DESC = \"Estado Laboral\";\n    GRUPO_DESC = \"Grupo Empleado\";\n    SUELDOBASICO_DESC = \"Sueldo Basico\";\n    ROLCLASIFICACION_DESC = \"Rol Clasificacion\";\n    DISCAPACIDAD_DESC = \"Discapacidad\";\n    CLASIFICACION_DESC = \"Clasificacion\";\n    TIEMPO_DE_ANTIGUEDAD_CARGO_DESC = \"Tiempo de Antiguedad Cargo Actual\";\n    TIEMPO_DE_ANTIGUEDAD_CARGOENTERO_DESC = \"Tiempo de Antiguedad Cargo Actual Año Entero\";\n    CATEGORIA_DESC = \"Categoria\";\n\n    //campos usados para filtro pariente\n    APROBADA_DESC = \"Aprobada\";\n    CIUDAD2_DESC = \"Ciudad 2\";\n    DEPENDE_DESC = \"Depende\";\n    LISTA_DESC = \"Lista\";\n    NIVEL_ACADEMICO_DESC = \"Nivel Academico\";\n    PROFESION_OFICIO_DESC = \"Profesion Oficio\";\n    PUBLICA_DESC = \"Publica\";\n\n    LISTA_TIPOCAMPO = [\n        { codigo: this.CIUDAD, nombre: this.CIUDAD_DESC },\n        { codigo: this.ESTADO_CIVIL, nombre: this.ESTADO_CIVIL_DESC },\n        { codigo: this.NIVEL_DEL_CARGO, nombre: this.NIVEL_DEL_CARGO_DESC },\n        { codigo: this.TIPO_DE_VINCULACION, nombre: this.TIPO_DE_VINCULACION_DESC },\n        { codigo: this.TIEMPO_DE_ANTIGUEDAD, nombre: this.TIEMPO_DE_ANTIGUEDAD_DESC },\n        { codigo: this.TIEMPO_DE_ANTIGUEDADENTERO, nombre: this.TIEMPO_DE_ANTIGUEDADENTERO_DESC },\n        { codigo: this.UNIDAD, nombre: this.UNIDAD_ORGANIZACIONAL_DESC },\n        { codigo: this.UNIDAD_MULTI, nombre: this.UNIDAD_MULTI_DESC },\n        { codigo: this.UNIDAD_RELACION, nombre: this.UNIDAD_RELACION_DESC },\n        { codigo: this.RANGO_DE_SUELDO, nombre: this.RANGO_DE_SUELDO_DESC },\n        { codigo: this.TIPO_DE_PERIODO, nombre: this.TIPO_DE_PERIODO_DESC },\n        { codigo: this.EMPRESA, nombre: this.EMPRESA_DESC },\n        { codigo: this.EDAD, nombre: this.EDAD_DESC },\n        { codigo: this.EDADENTERO, nombre: this.EDADENTERO_DESC },\n        { codigo: this.GENERO, nombre: this.GENERO_DESC },\n        { codigo: this.GRUPO, nombre: this.GRUPO_DESC },\n        { codigo: this.CARGO, nombre: this.CARGO_DESC },\n        { codigo: this.CARGO_MULTI, nombre: this.CARGO_MULTI_DESC },\n        { codigo: this.ESTADOLABORAL, nombre: this.ESTADOLABORAL_DESC },\n        { codigo: this.ROLCLASIFICACION, nombre: this.ROLCLASIFICACION_DESC },\n        { codigo: this.CLASIFICACION, nombre: this.CLASIFICACION_DESC },\n        { codigo: this.TIEMPO_DE_ANTIGUEDAD_CARGO, nombre: this.TIEMPO_DE_ANTIGUEDAD_CARGO_DESC },\n        { codigo: this.TIEMPO_DE_ANTIGUEDAD_CARGOENTERO, nombre: this.TIEMPO_DE_ANTIGUEDAD_CARGOENTERO_DESC },\n        { codigo: this.CATEGORIA, nombre: this.CATEGORIA_DESC },\n    ]\n\n    LISTA_TIPOCAMPODERECHO = [\n        { codigo: this.CIUDAD, nombre: this.CIUDAD_DESC },\n        { codigo: this.ESTADO_CIVIL, nombre: this.ESTADO_CIVIL_DESC },\n        { codigo: this.EDAD, nombre: this.EDAD_DESC },\n        { codigo: this.GENERO, nombre: this.GENERO_DESC }\n    ]\n\n    MAPA_RELACION_TIPO_CAMPO = [\n        { codigo: this.CIUDAD, nombre: \"String \" },\n        { codigo: this.ESTADO_CIVIL, nombre: \"String \" },\n        { codigo: this.NIVEL_DEL_CARGO, nombre: \"String \" },\n        { codigo: this.TIPO_DE_VINCULACION, nombre: \"Integer\" },\n        { codigo: this.TIEMPO_DE_ANTIGUEDAD, nombre: \"Integer\" },\n        { codigo: this.UNIDAD, nombre: \"String\" },\n        { codigo: this.UNIDAD_MULTI, nombre: \"String\" },\n        { codigo: this.UNIDAD_RELACION, nombre: \"String\" },\n        { codigo: this.RANGO_DE_SUELDO, nombre: \"Integer\" },\n        { codigo: this.TIPO_DE_PERIODO, nombre: \"Integer\" },\n        { codigo: this.EMPRESA, nombre: \"Integer\" },\n        { codigo: this.EDAD, nombre: \"Integer\" },\n        { codigo: this.GENERO, nombre: \"String\" },\n        { codigo: this.DISCAPACIDAD, nombre: \"String\" },\n        { codigo: this.CARGO, nombre: \"String\" },\n        { codigo: this.RESULTADO_EVALUACION, nombre: \"Integer\" },\n        { codigo: this.PARENTESCO, nombre: \"String\" },\n        { codigo: this.ESTADOLABORAL, nombre: \"String\" },\n        { codigo: this.GRUPO, nombre: \"String\" },\n        { codigo: this.SUELDOBASICO, nombre: \"Integer\" },\n        { codigo: this.ROLCLASIFICACION, nombre: \"String\" },\n        { codigo: this.CLASIFICACION, nombre: \"String\" },\n        { codigo: this.CATEGORIA, nombre: \"String\" },\n        { codigo: this.TIEMPO_DE_ANTIGUEDAD_CARGO, nombre: \"Integer\" },\n        { codigo: this.APROBADA, nombre: \"String\" },\n        { codigo: this.CIUDAD2, nombre: \"Integer\" },\n        { codigo: this.DEPENDE, nombre: \"String\" },\n        { codigo: this.LISTA, nombre: \"String\" },\n        { codigo: this.NIVEL_ACADEMICO, nombre: \"String\" },\n        { codigo: this.PROFESION_OFICIO, nombre: \"Integer\" },\n        { codigo: this.PUBLICA, nombre: \"String\" },\n    ]\n\n    LISTA_TIPOCAMPO_SOLICITANTE = [\n        { codigo: this.EDAD, nombre: this.EDAD_DESC },\n        { codigo: this.GENERO, nombre: this.GENERO_DESC },\n        { codigo: this.PARENTESCO, nombre: this.PARENTESCO_DESC },\n        { codigo: this.DISCAPACIDAD, nombre: this.DISCAPACIDAD_DESC },\n        { codigo: this.APROBADA, nombre: this.APROBADA_DESC },\n        { codigo: this.CIUDAD, nombre: this.CIUDAD_DESC },\n        { codigo: this.CIUDAD2, nombre: this.CIUDAD2_DESC },\n        { codigo: this.DEPENDE, nombre: this.DEPENDE_DESC },\n        { codigo: this.LISTA, nombre: this.LISTA_DESC },\n        { codigo: this.NIVEL_ACADEMICO, nombre: this.NIVEL_ACADEMICO_DESC },\n        { codigo: this.PROFESION_OFICIO, nombre: this.PROFESION_OFICIO_DESC },\n        { codigo: this.PUBLICA, nombre: this.PUBLICA_DESC }\n    ]\n\n    transform(value: unknown, ...args: unknown[]): unknown {\n        let result = value;\n        if (args[0] == 'Lista_TipoCampo_Solicitante') { this.LISTA_TIPOCAMPO_SOLICITANTE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Mapa_Relacion_Tipo_Campo') { this.MAPA_RELACION_TIPO_CAMPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_TipoCampoDerecho') { this.LISTA_TIPOCAMPODERECHO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'Lista_TipoCampo') { this.LISTA_TIPOCAMPO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n\n}","import { Component, EventEmitter, Input, OnInit, Output, viewChild, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Constantes } from '../../../shared/constantes/Constantes';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { RequisitoConsPipe } from '../../../shared/pipes/RequisitoCons.pipe';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService, cargarmapasGlobal, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { CategoriaModel } from '../../../modules/compensacion/models/CategoriaModel';\nimport { ClasificacionModel } from '../../../modules/compensacion/models/ClasificacionModel';\nimport { EmpresaModel } from '../../../modules/compensacion/models/EmpresaModel';\nimport { EstadoLaboralModel } from '../../../modules/compensacion/models/EstadoLaboralModel';\nimport { NivelCargoModel } from '../../../modules/compensacion/models/NivelCargoModel';\nimport { TipoAusenciaModel } from '../../../modules/compensacion/models/TipoAusenciaModel';\nimport { TipoGrupoModel } from '../../../modules/compensacion/models/TipoGrupoModel';\nimport { TipoPeriodoModel } from '../../../modules/compensacion/models/TipoPeriodoModel';\nimport { VinculacionLaboralModel } from '../../../modules/compensacion/models/VinculacionLaboralModel';\nimport { requisitoService } from '../../../modules/compensacion/services/requisito.service';\nimport { EstadoCivilModel } from '../../../modules/hojavida/models/EstadoCivilModel';\nimport { LoginAccesoModel } from '../../../modules/sarageneral/models/LoginAccesoModel';\nimport { CargoModel } from '../../../modules/talento/models/CargoModel';\nimport { RequisitoModel } from '../../../modules/talento/models/RequisitoModel';\nimport { UnidadOrganizacionalModel } from '../../../modules/talento/models/UnidadOrganizacionalModel';\nimport { GeneralPipe as GeneralPipe_1 } from '../../pipes/general.pipe';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputHelperUnidadComponent } from '../input-helper-unidad/input-helper-unidad.component';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputHelperUbicacionComponent } from '../input-helper-ubicacion/input-helper-ubicacion.component';\nimport { InputHelperUnidadMultiplePage } from '../input-helper-unidad-multiple/input-helper-unidad-multiple.page';\nimport { InputHelperVariableCargoComponent } from '../input-helper-variable-cargo/input-helper-variable-cargo.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgSwitch, NgSwitchCase, NgIf, NgSwitchDefault, JsonPipe, CommonModule } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { firstValueFrom } from 'rxjs';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { InputTextModule } from 'primeng/inputtext';\n\n\n@Component({\n  selector: 'app-input-helper-condicion-derecho',\n  templateUrl: './input-helper-condicion-derecho.component.html',\n  styleUrls: ['./input-helper-condicion-derecho.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule,\n    NgSwitch,\n    NgSwitchCase,\n    JsonPipe,\n    ButtonDirective,\n    Ripple,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    NgIf,\n    FormsModule,\n    ReactiveFormsModule,\n    DropdownModule,\n    InputHelperVariableCargoComponent,\n    InputHelperUnidadMultiplePage,\n    InputHelperUbicacionComponent,\n    InputNumberModule,\n    InputHelperUnidadComponent,\n    NgSwitchDefault,\n    DialogModule,\n    TranslateModule,\n    GeneralPipe_1,\n    CommonModule,\n    InputTextModule,\n  ]\n})\nexport class InputHelperCondicionDerechoComponent implements OnInit {\n\n  @ViewChild('tablaGeneral') tablaGeneral: Table;\n  @ViewChild('variableCargo') variableCargo: InputHelperVariableCargoComponent;\n  @ViewChild('unidadMultple') unidadMultple: InputHelperUnidadMultiplePage;\n  public clonedProducts: { [s: string]: RequisitoModel; } = {};\n\n  @Input()\n  public mostrarPopup: boolean;\n  @Input()\n  public nombreTabla: string;\n  @Output()\n  public regresar = new EventEmitter;\n  @Input()\n  envio: string;\n  @Input()\n  descripcionTipo: string = '';\n  @Input()\n  llaveNumerica: number = 0;\n  @Input()\n  tipoRegistro: string;\n  @Input()\n  nombreTarea: string = '';\n\n  public mostrarbtn: boolean = false;\n  public listaperiodo: TipoPeriodoModel[] = [];\n  listacampos: RequisitoModel[] = [];\n  public periodolista = [];\n  public pausaeditar: boolean = false;\n  public bloquearboton: boolean = false;\n  seleccionar: boolean = true;\n  public Requisito1: RequisitoModel;\n  public listaempresa: EmpresaModel[] = [];\n  public empresalista = [];\n  public listadogrupo: TipoGrupoModel[] = [];\n  public grupoLista = [];\n  public listadocargo: CargoModel[] = [];\n  public liscargop = [];\n  public almacenar: boolean = true;\n  public contador: number = 0;\n  public tipo: string;\n  public labelMultiple: string = '';\n  public vistaVisualizar: string = '';\n  public requisitoDTO: RequisitoModel;\n  public clickGenerar: boolean = false;\n  public isValidar: boolean = true;\n\n  public listadotcampo;\n  public listadoGenero;\n  public listacategoria1: CategoriaModel[] = [];\n  public listacondicion: LoginAccesoModel[] = [];\n  public listacargo: CargoModel[] = [];\n  public listatperiodo: TipoPeriodoModel[] = [];\n  public listaunidad: UnidadOrganizacionalModel[] = [];\n  public lisuni = [];\n\n  public listarequisito: RequisitoModel[] = [];\n  public listavincula: VinculacionLaboralModel[] = [];\n  public listav = [];\n  public listaeslaboral: EstadoLaboralModel[] = [];\n  public listadoLaboral = [];\n  public loginselecionado: TipoAusenciaModel;\n  public ventana: RequisitoModel[] = null;\n  public ListaResultado: RequisitoModel[] = [];\n  public registro2: RequisitoModel = new RequisitoModel()\n  public ismostrarcargo: boolean = false;\n  public llave6: string;\n\n  public listadoCategoria = [];\n  public listacatecar1 = [];\n  public listadoClasificacion = [];\n  public listadoEstadoCivil = [];\n  public listadoNivelCargo = [];\n  public multicargolista = [];\n  public multiunidad = [];\n  public listacatecar;\n  public listacate;\n  public listacarg;\n  public listaclasi;\n  public listaQuerycategoria;\n  public listacate2;\n  public listadoestadoc;\n  public listadonivelv;\n  public llaveEmpresa: string;\n  public filtroRequisito: RequisitoModel;\n\n  paginator = { rows: 10, totalRecords: 0 }\n  listadoRoles: { key: string; label: string; }[];\n  mapaRolClasificacion: any;\n\n  constructor(\n    private generalService: GeneralService,\n    private authService: AuthService,\n    private generalPipe: GeneralPipe,\n    private notificacionesBusService: ToastService,\n    public us: UtilsService,\n    private requisitoSvc: requisitoService,\n    private confirmationService: ConfirmationService,\n    public requisitoConsPipe: RequisitoConsPipe,\n    private cargarMapas: cargarmapasGlobal,\n    private requisitoPipe: RequisitoConsPipe,\n    public translateService: TranslateService,\n    private saraAplicacionServices: SaraAplicacionService,\n  ) { }\n\n  async ngOnInit() {\n\n    this.labelMultiple = \"\";\n    this.requisitoDTO = new RequisitoModel();\n    this.isValidar = true;\n    this.nombreTarea = this.nombreTarea ? this.nombreTarea : '';\n\n    this.almacenar = true;\n\n    if (\"NOAPLICA\" == this.tipoRegistro) {\n      this.almacenar = false;\n    }\n\n    this.cargarListas();\n    this.cargarListadoCargo();\n    this.parametrosMap();\n\n  }\n\n  regresaPopup() {\n    this.mostrarPopup = false;\n    this.regresar.emit(false);\n    this.ngOnInit();\n  }\n\n\n  async cargarListadoCargo() {\n\n    try {\n      this.filtroRequisito = new RequisitoModel();\n\n      this.filtroRequisito.tabla = this.nombreTabla;\n\n      if (this.nombreTabla == this.requisitoConsPipe.TABLA_CONCEPTO) {\n        this.filtroRequisito.llaveBase = null;\n        this.filtroRequisito.llaveBaseNumerica = this.llaveNumerica;\n      } else {\n        this.filtroRequisito.llaveBase = this.descripcionTipo;\n        this.filtroRequisito.llaveBaseNumerica = null;\n      }\n      this.filtroRequisito.tipo = this.tipoRegistro ? this.tipoRegistro : null;\n\n      let objetoFiltro: GeneralModel = new GeneralModel('RequisitoDTO', null, false, this.filtroRequisito);\n      this.generalService.queryForList(objetoFiltro).subscribe(data => {\n        this.ventana = data;\n        this.paginator.totalRecords = this.ventana.length;\n        for (let registrox of this.ventana) {\n          if (registrox.campo == null) {\n            continue;\n          }\n          if (registrox.campo == 'cargo') {\n\n            let cargof: CargoModel = new CargoModel();\n            cargof.cargo = registrox.dato;\n            cargof.empresa = registrox.entero;\n            let objetoFiltro: GeneralModel = new GeneralModel('CargoDTO', null, false, cargof);\n            this.generalService.queryForObject(objetoFiltro).subscribe(data => {\n              let cargoT: CargoModel = data;\n              registrox.descripcionCargo = cargoT.descripcion;\n            })\n\n          }\n          if ((registrox.campo == 'unidad') || (registrox.campo == 'unidadrelacion')) {\n            try {\n              let unidad: UnidadOrganizacionalModel = new UnidadOrganizacionalModel();\n              unidad.unidad = registrox.dato,\n                unidad.empresa = registrox.entero\n              let objetoFiltro4: GeneralModel = new GeneralModel('UnidadOrganizacionalDTO', null, false, unidad);\n              this.generalService.queryForObject(objetoFiltro4).subscribe(data => {\n                let unidadT: UnidadOrganizacionalModel = data;\n\n                registrox.descripcionUnidad = unidadT?.nombreUnidad;\n                registrox.descripcionEmpresa = unidadT?.nombreEmpresa;\n              })\n            } catch (e) {\n              Error(e);\n            }\n          }\n          if (registrox.campo == 'tipoperiodo') {\n            let tipoperiodo: TipoPeriodoModel = new TipoPeriodoModel();\n            tipoperiodo.tipo = registrox.entero;\n            let objetoFiltro3: GeneralModel = new GeneralModel('TipoPeriodoDTO', null, false, tipoperiodo);\n            this.generalService.queryForObject(objetoFiltro3).subscribe(data => {\n              let tipoT: TipoPeriodoModel = data;\n              registrox.descripcionTipoPeriodo = tipoT.descripcion\n            })\n          }\n          if (registrox.campo == 'vinculacion') {\n            let vinculacion: VinculacionLaboralModel = new VinculacionLaboralModel();\n            vinculacion.vinculacion = parseInt(registrox.dato);\n            let objetoFiltro5: GeneralModel = new GeneralModel('VinculacionLaboralDTO', null, false, vinculacion);\n            this.generalService.queryForObject(objetoFiltro5).subscribe(data => {\n              let vinculaT: VinculacionLaboralModel = data;\n              registrox.descripcionVinculaLaboral = vinculaT.descripcion;\n            })\n\n          }\n        }\n        return this.ventana;\n      });\n\n    } catch (error) {\n      Error(error);\n    }\n  }\n\n  async cargarListas() {\n    this.listaCategoria();\n    this.listaClasificacion();\n    this.listaRoles();\n    this.listaEstadoCivil();\n    this.listaNivelCargo();\n    this.ListaEmpresa();\n    this.ListaPeriodo();\n    this.ListaVinculacionL();\n    this.listaGenero();\n    this.listagrupo();\n    this.ListaEstadoLaboral();\n  }\n\n  async listaCategoria() {\n    let mapafiltro: Map<string, string> = new Map<string, string>();\n    let filtrogrupo: CategoriaModel = new CategoriaModel();\n    filtrogrupo.organizacion = parseInt(this.authService.getTokenKey('llaveOrganizacion'));\n\n    let objetoTipoServicio: GeneralModel = new GeneralModel('CategoriaDTO', null, false, filtrogrupo);\n    this.listacate = await this.generalService.queryForList(objetoTipoServicio).toPromise();\n    this.listacate.forEach((item) => {\n      mapafiltro.set(item.categoria, item.descripcion);\n    });\n\n    this.listadoCategoria = Array.from(mapafiltro, ([key, label]) => ({ key, label }));\n    let mapas: Map<string, string> = new Map<string, string>();\n    this.listacate.forEach((item) => {\n      mapas.set(item.categoria, item.descripcion);\n    });\n    this.listacate = Object.fromEntries(mapas);\n  }\n\n\n  async listaClasificacion() {\n    let mapafiltro: Map<string, string> = new Map<string, string>();\n    let filtrogrupo: ClasificacionModel = new ClasificacionModel();\n    filtrogrupo.organizacion = (await this.saraAplicacionServices.getEmpresa()).organizacion;\n    filtrogrupo.tipo = 'C';\n\n    let objetoTipoServicio: GeneralModel = new GeneralModel('ClasificacionDTO', null, false, filtrogrupo);\n    this.listaclasi = await this.generalService.queryForList(objetoTipoServicio).toPromise();\n    this.listaclasi.forEach((item) => {\n      mapafiltro.set(item.clasificacion, item.descripcion);\n    });\n    this.listadoClasificacion = Array.from(mapafiltro, ([key, label]) => ({ key, label }));\n    let mapas: Map<string, string> = new Map<string, string>();\n    this.listaclasi.forEach((item) => {\n      mapas.set(item.clasificacion, item.descripcion);\n    });\n    this.listaclasi = Object.fromEntries(mapas);\n  }\n\n  async listaRoles() {\n    let mapafiltro: Map<string, string> = new Map<string, string>();\n    let filtrogrupo: ClasificacionModel = new ClasificacionModel();\n    filtrogrupo.organizacion = (await this.saraAplicacionServices.getEmpresa()).organizacion;\n    filtrogrupo.tipo = 'R';\n\n    let objetoTipoServicio: GeneralModel = new GeneralModel('ClasificacionDTO', null, false, filtrogrupo);\n    this.mapaRolClasificacion = await this.generalService.queryForList(objetoTipoServicio).toPromise();\n    this.mapaRolClasificacion.forEach((item) => {\n      mapafiltro.set(item.clasificacion, item.descripcion);\n    });\n    this.listadoRoles = Array.from(mapafiltro, ([key, label]) => ({ key, label }));\n    let mapas: Map<string, string> = new Map<string, string>();\n    this.mapaRolClasificacion.forEach((item) => {\n      mapas.set(item.clasificacion, item.descripcion);\n    });\n    this.mapaRolClasificacion = Object.fromEntries(mapas);\n  }\n\n\n  async listaEstadoCivil() {\n    let mapafiltro: Map<string, string> = new Map<string, string>();\n    let filtrogrupo: EstadoCivilModel = new EstadoCivilModel();\n    let objetoTipoServicio: GeneralModel = new GeneralModel('EstadoCivilDTO', null, false, filtrogrupo);\n    this.listadoestadoc = await this.generalService.queryForList(objetoTipoServicio).toPromise();\n    this.listadoestadoc.forEach((item) => {\n      mapafiltro.set(item.estado, item.descripcion);\n    });\n    this.listadoEstadoCivil = Array.from(mapafiltro, ([key, label]) => ({ key, label }));\n    let mapas: Map<string, string> = new Map<string, string>();\n    this.listadoestadoc.forEach((item) => {\n      mapas.set(item.estado, item.descripcion);\n    });\n    this.listadoestadoc = Object.fromEntries(mapas);\n  }\n\n\n  async listaNivelCargo() {\n    let mapafiltro: Map<string, string> = new Map<string, string>();\n    let filtrogrupo: NivelCargoModel = new NivelCargoModel();\n    let objetoTipoServicio: GeneralModel = new GeneralModel('NivelCargoDTO', null, false, filtrogrupo);\n    this.listadonivelv = await this.generalService.queryForList(objetoTipoServicio).toPromise();\n    this.listadonivelv.forEach((item) => {\n      mapafiltro.set(item.nivelCargo, item.descripcion);\n    });\n    this.listadoNivelCargo = Array.from(mapafiltro, ([key, label]) => ({ key, label }));\n    let mapas: Map<string, string> = new Map<string, string>();\n    this.listadonivelv.forEach((item) => {\n      mapas.set(item.nivelCargo, item.descripcion);\n    });\n    this.listadonivelv = Object.fromEntries(mapas);\n\n  }\n\n  async listaGenero() {\n    let mapafiltro: Map<string, string> = new Map<string, string>();\n    let filtrogrupo: NivelCargoModel = new NivelCargoModel();\n    let objetoTipoServicio: GeneralModel = new GeneralModel('NivelCargoDTO', null, false, filtrogrupo);\n    this.listadonivelv = await this.generalService.queryForList(objetoTipoServicio).toPromise();\n    this.listadonivelv.forEach((item) => {\n      mapafiltro.set(item.nivelCargo, item.descripcion);\n    });\n\n    this.listadoNivelCargo = Array.from(mapafiltro, ([key, label]) => ({ key, label }));\n\n    let mapas: Map<string, string> = new Map<string, string>();\n    this.listadonivelv.forEach((item) => {\n      mapas.set(item.nivelCargo, item.descripcion);\n    });\n    this.listadonivelv = Object.fromEntries(mapas);\n  }\n\n  listagrupo() {\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    this.generalService.queryForList({\n      nombreConsulta: 'TipoGrupo.consultarTipoGrupoSinVinculaLaboral',\n      nombreDTO: 'TipoGrupoDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data) => {\n      this.listadogrupo = data;\n      this.listadogrupo.forEach(item => {\n        mapaRetorna.set(item.tipoGrupo, item.descripcion)\n      });\n      this.grupoLista = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    })\n  }\n\n  mostrarNuevo() {\n\n    this.pausaeditar = true;\n    this.contador = 0;\n    this.vistaVisualizar = 'nuevo';\n  }\n\n\n  //CREAR GENERAL \n  async onRowEditcrear() {\n\n    this.pausaeditar = false;\n\n    this.requisitoDTO.llave = this.us.generarLlave();\n    this.requisitoDTO.tabla = this.nombreTabla;\n    this.requisitoDTO.tipo = this.tipoRegistro ? this.tipoRegistro : null;\n\n    if (this.almacenar) {\n      if (this.isLLaveNumerica()) {\n        this.requisitoDTO.llaveBaseNumerica = this.llaveNumerica;\n      } else {\n        this.requisitoDTO.llaveBase = this.descripcionTipo;\n      }\n    }\n\n    if (this.requisitoDTO.campo != null && this.requisitoDTO.entero != null && this.requisitoDTO.campo != 'tipoperiodo') {\n      this.requisitoDTO.dato2 = this.requisitoDTO.entero.toString();\n    } else {\n      this.requisitoDTO.empresa = null;\n    }\n\n    // Cargos Multiples\n    if (this.requisitoDTO.campo == 'cargo_multiples') {\n\n      if (!this.isValidarMultiple(this.requisitoDTO)) {\n        this.notificacionesBusService.showError('Faltan campos obligatorios');\n        this.clickGenerar = true;\n        return;\n      }\n\n      // Valida que el campo Cargo tenga datos\n      const seleccionado = this.multicargolista.some(item => item.check === true);\n\n      if (!seleccionado) {\n        this.notificacionesBusService.showError('Faltan campos obligatorios');\n        this.clickGenerar = true;\n        this.isValidar = false;\n        return;\n      }\n\n      let cargosAll = [];\n\n      if (this.almacenar) {\n        this.filtroRequisito.campo = this.generalPipe.CARGO;\n        let filtroFormulario = new GeneralModel('RequisitoDTO', null, false, this.filtroRequisito);\n        cargosAll = await firstValueFrom(this.generalService.queryForList(filtroFormulario));\n      }\n\n      let requisitoNuevo = new RequisitoModel();\n\n      //Valida que todos los registros seleccionados no esten creados en la tabla\n      const todosExisten = this.multicargolista\n        .filter((test) => test.check)\n        .every((test) => cargosAll.some((requisito) => requisito.dato === test.cargo && requisito.entero === test.empresa));\n\n      if (todosExisten) {\n        this.notificacionesBusService.showError('Los campos ya existen en la lista');\n        return;\n      }\n\n      for (const test of this.multicargolista) {\n        if (test.check) {\n          requisitoNuevo.tabla = this.nombreTabla;\n          requisitoNuevo.tipo = this.tipoRegistro;\n          requisitoNuevo.llave = this.us.generarLlave();\n          requisitoNuevo.dato = test.cargo;\n          requisitoNuevo.descripcionCargo = test.descripcion\n          requisitoNuevo.dato2 = test.empresa;\n          requisitoNuevo.campo = this.generalPipe.CARGO;\n          requisitoNuevo.entero = this.requisitoDTO.entero;\n\n          let insertar = true;\n          for (let requisito of cargosAll) {\n            if (requisitoNuevo.dato == requisito.dato && requisito.entero === test.empresa) {\n              insertar = false;\n              break;\n            }\n          }\n\n          if (insertar) {\n            if (this.almacenar) {\n              if (this.isLLaveNumerica()) {\n                requisitoNuevo.llaveBaseNumerica = this.llaveNumerica;\n              } else {\n                requisitoNuevo.llaveBase = this.descripcionTipo;\n              }\n              this.crearPorCargoMultiple(requisitoNuevo);\n            } else {\n              // Pendiente encontrar funcionaliodad -> listaSinAlmacenar.add(requisitoNuevo);\n            }\n          }\n        }\n      }\n      this.multicargolista = [];\n      return;\n    }\n\n    // Unidad Multiples\n    else if (this.requisitoDTO.campo == 'unidad_multiple') {\n\n      if (!this.isValidarMultiple(this.requisitoDTO)) {\n        this.notificacionesBusService.showError('Faltan campos obligatorios');\n        this.clickGenerar = true;\n        return;\n      }\n\n      // Valida que el campo unidad tenga datos\n      const seleccionado = this.multiunidad.some(item => item.check === true);\n\n      if (!seleccionado) {\n        this.notificacionesBusService.showError('Faltan campos obligatorios');\n        this.clickGenerar = true;\n        this.isValidar = false;\n        return;\n      }\n\n      let UnidadAll = [];\n\n      if (this.almacenar) {\n        this.filtroRequisito.campo = this.generalPipe.UNIDAD;\n        let filtroFormulario = new GeneralModel('RequisitoDTO', null, false, this.filtroRequisito);\n        UnidadAll = await firstValueFrom(this.generalService.queryForList(filtroFormulario));\n      }\n\n      let requisitoNuevo = new RequisitoModel();\n\n      //Valida que todos los registros seleccionados no esten creados en la tabla\n      const todosExisten = this.multiunidad\n        .filter((test) => test.check)\n        .every((test) => UnidadAll.some((requisito) => requisito.dato === test.unidad && requisito.entero === test.empresa));\n\n      if (todosExisten) {\n        this.notificacionesBusService.showError('Los campos ya existen en la lista');\n        return;\n      }\n\n      //Ingresar\n      for (const test of this.multiunidad) {\n        if (test.check) {\n          requisitoNuevo.tabla = this.nombreTabla;\n          requisitoNuevo.tipo = this.tipoRegistro;\n          requisitoNuevo.llave = this.us.generarLlave();\n          requisitoNuevo.dato = test.unidad;\n          requisitoNuevo.descripcionUnidad = test.nombreUnidad;\n          requisitoNuevo.dato2 = test.empresa;\n          requisitoNuevo.campo = this.generalPipe.UNIDAD;\n          requisitoNuevo.entero = this.requisitoDTO.entero;\n\n          let insertar = true;\n          for (let requisito of UnidadAll) {\n            if (requisitoNuevo.dato == requisito.dato && requisito.entero === test.empresa) {\n              insertar = false;\n              break;\n            }\n          }\n\n          if (insertar) {\n            if (this.almacenar) {\n              if (this.isLLaveNumerica()) {\n                requisitoNuevo.llaveBaseNumerica = this.llaveNumerica;\n              } else {\n                requisitoNuevo.llaveBase = this.descripcionTipo;\n              }\n              this.crearPorCargoMultiple(requisitoNuevo);\n            } else {\n              // Pendiente encontrar funcionaliodad -> listaSinAlmacenar.add(requisitoNuevo);\n            }\n          }\n        }\n\n      }\n      //Despues de agregar se valide el campo de unidad Multiple\n      this.multiunidad = [];\n      return;\n    }\n\n    let result: number;\n\n    if (!this.validarCampo(this.requisitoDTO)) {\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      this.clickGenerar = true;\n      return;\n    }\n\n    if (this.requisitoDTO.campo != null && this.requisitoDTO.campo == 'empresa') {\n      this.requisitoDTO.dato = this.requisitoDTO.entero.toString();\n      this.requisitoDTO.empresa = this.requisitoDTO.entero;\n    } else if (this.requisitoDTO.campo != null && this.requisitoDTO.campo == ('tipoperiodo')) {\n      this.requisitoDTO.dato = this.requisitoDTO.entero.toString();\n    } else if (this.requisitoPipe.RANGO_DE_SUELDO == this.requisitoDTO.campo && this.validarRangoSalarial(this.requisitoDTO)) {\n      return;\n    }\n\n    this.requisitoDTO.llave = this.us.generarLlave();\n\n    let objetoFiltro: GeneralModel = new GeneralModel('RequisitoDTO', null, false, this.requisitoDTO);\n\n    this.generalService.crearRegistro(objetoFiltro).subscribe({\n      next: (data) => {\n        result = data;\n        if (result != null) {\n          this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n          this.cancelarNuevo();\n          this.cargarListadoCargo();\n          this.servicio();\n\n        } else {\n          this.notificacionesBusService.showError(\n            'Error en el método de agregar recurso'\n          );\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesBusService.showError(\n          'No es posible agregar el registro'\n        );\n      },\n    });\n  }\n\n  validarCampo(item: RequisitoModel) {\n\n    var validador: boolean = true;\n\n    validador = validador && this.us.validarCampoObligatorio(item.campo);\n\n    // CARGO\n    if (this.requisitoPipe.CARGO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.entero);\n      if (item.entero) {\n        validador = validador && this.us.validarCampoObligatorio(item.descripcionCargo);\n        this.isValidar = !(item.descripcionCargo == null);\n      }\n    }\n\n    // UNIDAD\n    if (this.requisitoPipe.UNIDAD == item.campo || this.requisitoPipe.UNIDAD_RELACION == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.entero);\n      if (item.entero) {\n        validador = validador && this.us.validarCampoObligatorio(item.descripcionUnidad);\n        this.isValidar = !(item.descripcionUnidad == null);\n      }\n    }\n\n    // CATEGORIA\n    if (this.requisitoPipe.CATEGORIA == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // CIUDAD\n    if (this.requisitoPipe.CIUDAD == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n      this.isValidar = !(item.dato == null);\n    }\n\n    // CALIFICACIÓN\n    if (this.requisitoPipe.CLASIFICACION == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // EDAD\n    if (this.requisitoPipe.EDAD == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // EMPRESA\n    if (this.requisitoPipe.EMPRESA == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.entero);\n    }\n\n    // ESTADO CIVIL\n    if (this.requisitoPipe.ESTADO_CIVIL == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // ESTADO LABORAL\n    if (this.requisitoPipe.ESTADOLABORAL == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // GENERO\n    if (this.requisitoPipe.GENERO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // GRUPO EMPLEADO\n    if (this.requisitoPipe.GRUPO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // NIVEL CARGO\n    if (this.requisitoPipe.NIVEL_DEL_CARGO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // RANGO SUELDO\n    if (this.requisitoPipe.RANGO_DE_SUELDO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n      validador = validador && this.us.validarCampoObligatorio(item.dato2);\n    }\n\n    // ROL CLASIFICACIÓN\n    if (this.requisitoPipe.ROLCLASIFICACION == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // TIEMPO DE ANTIGUEDAD\n    if (this.requisitoPipe.TIEMPO_DE_ANTIGUEDAD == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // TIEMPO DE ANTIGUEDAD CARGO ENTERO\n    if (this.requisitoPipe.TIEMPO_DE_ANTIGUEDAD_CARGOENTERO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // TIEMPO DE ANTIGUEDAD CARGO\n    if (this.requisitoPipe.TIEMPO_DE_ANTIGUEDAD_CARGO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // TIEMPO DE ANTIGUEDAD ENTERO\n    if (this.requisitoPipe.TIEMPO_DE_ANTIGUEDADENTERO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n    // TIPO DE PERIODO\n    if (this.requisitoPipe.TIPO_DE_PERIODO == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.entero);\n    }\n\n    // TIPO DE VINCULACION\n    if (this.requisitoPipe.TIPO_DE_VINCULACION == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.dato);\n    }\n\n\n    return validador;\n  }\n\n  isValidarMultiple(item: RequisitoModel): boolean {\n\n    var validador: boolean = true;\n\n    // CARGO MULTI\n    if (this.requisitoPipe.CARGO_MULTI == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.entero);\n    }\n\n    // UNIDAD MULTI\n    if (this.requisitoPipe.UNIDAD_MULTI == item.campo) {\n      validador = validador && this.us.validarCampoObligatorio(item.entero);\n    }\n\n    return validador;\n  }\n\n  validarRangoSalarial(item: RequisitoModel): boolean {\n    if (item.dato2 < item.dato) {\n      this.notificacionesBusService.showError('El valor no debe ser inferior : ' + this.requisitoDTO.dato)\n      return true;\n    }\n    return false;\n  }\n\n  isLLaveNumerica(): boolean {\n    return (this.descripcionTipo == null || this.descripcionTipo == '') && (this.llaveNumerica != null);\n  }\n\n  crearPorCargoMultiple(requisitoNuevo: RequisitoModel) {\n\n    let result: number;\n\n    let objetoFiltro: GeneralModel = new GeneralModel('RequisitoDTO', null, false, requisitoNuevo);\n\n    this.generalService.crearRegistro(objetoFiltro).subscribe({\n      next: (data) => {\n        result = data;\n        if (result != null) {\n\n          this.contador++;\n\n          if (this.contador <= 1) {\n            this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n            this.cargarListadoCargo();\n            this.servicio();\n          } else {\n\n          }\n\n          this.cancelarNuevo();\n          this.ngOnInit();\n        } else {\n          this.notificacionesBusService.showError(\n            'Error en el método de agregar recurso multiple'\n          );\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.notificacionesBusService.showError(\n          'No es posible agregar el registro miltiple E'\n        );\n      },\n    });\n  }\n\n  eliminar(aplicacion: RequisitoModel) {\n    try {\n      let evento = { filters: { descripcion: null } };\n      const objetoFiltro = {\n        nombreDTO: 'RequisitoDTO',\n        nombreConsulta: null,\n        seguridad: false,\n        objeto: aplicacion,\n\n      };\n      this.generalService.delete(objetoFiltro).subscribe((data) => {\n        if (data == 1) {\n          this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n          this.cancelarNuevo();\n          this.cargarListadoCargo();\n          this.servicio();\n\n\n        } else {\n          this.notificacionesBusService.showError('Error en el método de Eliminar Entidad');\n        }\n      });\n    }\n    catch (error) {\n\n      this.notificacionesBusService.showError('Error al ingresar');\n    }\n  }\n\n  actualizar(item: RequisitoModel) {\n\n    if (!this.validarCampo(this.requisitoDTO)) {\n      this.tablaGeneral.initRowEdit(item);\n      this.notificacionesBusService.showError('Faltan campos obligatorios');\n      this.clickGenerar = true;\n      return;\n    }\n\n    if (this.requisitoPipe.RANGO_DE_SUELDO == item.campo && this.validarRangoSalarial(item)) {\n      this.tablaGeneral.initRowEdit(item);\n      return;\n    }\n\n    const objetoFiltro = {\n      nombreDTO: 'RequisitoDTO',\n      nombreConsulta: null,\n      seguridad: false,\n      objeto: item,\n    };\n\n    this.generalService.update(objetoFiltro).subscribe(async (data) => {\n      if (data == 1) {\n        await this.servicio();\n        this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n        this.cargarListadoCargo();\n        this.pausaeditar = false;\n        this.cancelarNuevo();\n      } else {\n        this.notificacionesBusService.showError('Error en el método de actualizar Entidad');\n      }\n    });\n  }\n\n  async servicio() {\n    try {\n      // Inicialización de objetoDinamico sin tipo específico.\n      let objetoDinamico: any;\n      // Construcción del objeto requisi basado en condiciones.\n      const requisi: RequisitoModel = new RequisitoModel();\n      requisi.tabla = this.nombreTabla;\n      if (this.nombreTabla === this.requisitoConsPipe.TABLA_CONCEPTO) {\n        requisi.llaveBase = null;\n        requisi.llaveBaseNumerica = this.llaveNumerica;\n      } else {\n        requisi.llaveBase = this.descripcionTipo;\n        requisi.llaveBaseNumerica = null;\n      }\n      // Preparación y envío de la solicitud para listar campos.\n      const objetoFiltro: GeneralModel = new GeneralModel('RequisitoDTO', null, false, requisi);\n      this.listacampos = await this.generalService.queryForList(objetoFiltro).toPromise();\n      // Obtención de dataTemp mediante sentencia SQL.\n      const dataTemp = await this.requisitoSvc.sentenciaSql(this.listacampos).toPromise();\n      // Determinación del filtro y dto basados en nombreTabla.\n      let filtro: any;\n      let dto: string;\n      const configuraciones = {\n        [this.requisitoConsPipe.TABLA_TIPOBENEFICIO]: { filtro: { llaveTabla: this.descripcionTipo }, dto: 'TipoBeneficioDTO' },\n        [this.requisitoConsPipe.TABLA_TIPONOVEDAD]: { filtro: { llave: this.descripcionTipo }, dto: 'TipoNovedadDTO' },\n        [this.requisitoConsPipe.TABLA_EVENTO]: { filtro: { llaveTabla: this.descripcionTipo }, dto: 'EventoDTO' },\n        [this.requisitoConsPipe.TABLA_LOGIN_ACCESO]: { filtro: { llave: this.descripcionTipo }, dto: 'LoginAccesoSaraDTO' },\n        [this.requisitoConsPipe.TABLA_SELECCION]: { filtro: { procesoseleccion: this.descripcionTipo }, dto: 'ProcesoSeleccionDTO' },\n        [this.requisitoConsPipe.TABLA_CONCEPTO]: { filtro: { concepto: this.llaveNumerica }, dto: 'ConceptoDTO' },\n        [this.requisitoConsPipe.TABLA_VARIABLE]: { filtro: { variable: this.descripcionTipo }, dto: 'VariableDTO' },\n        [this.requisitoConsPipe.TABLA_TIPOAUSENCIA]: { filtro: { llaveTabla: this.descripcionTipo }, dto: 'TipoAusenciaDTO' },\n        [this.requisitoConsPipe.TABLA_PERIODOGESTION]: { filtro: { llaveTabla: this.descripcionTipo }, dto: 'ProgramacionGestionDTO' },\n      };\n      // Uso de configuraciones basadas en nombreTabla para establecer filtro y dto.\n      if (configuraciones.hasOwnProperty(this.nombreTabla)) {\n        filtro = configuraciones[this.nombreTabla].filtro;\n        dto = configuraciones[this.nombreTabla].dto;\n      }\n      // Consulta del objeto dinámico basado en filtro y dto.\n      const objetoFiltros: GeneralModel = new GeneralModel(dto, null, false, filtro);\n      objetoDinamico = await this.generalService.queryForObject(objetoFiltros).toPromise();\n      // Asignación de dataTemp a la propiedad correspondiente de objetoDinamico.\n      const propiedades = {\n        [this.requisitoConsPipe.TABLA_TIPOAUSENCIA]: 'filtroCondicionDerecho',\n        [this.requisitoConsPipe.TABLA_LOGIN_ACCESO]: 'filtroCondicion',\n        default: 'filtro',\n      };\n      const propiedad = propiedades.hasOwnProperty(this.nombreTabla) ? propiedades[this.nombreTabla] : propiedades.default;\n      objetoDinamico[propiedad] = dataTemp?.data;\n\n      if (this.nombreTabla == this.requisitoConsPipe.TABLA_EVENTO) {\n\n        let listaCampos2 = [];\n        for (let i = 0; i < this.listacampos.length; i++) {\n          if (this.listacampos[i].campo == \"sexo\" || this.listacampos[i].campo == \"edad\") {\n            listaCampos2.push(this.listacampos[i]);\n            this.listacampos.splice(i, 1);\n            i = i - 1;\n          }\n        }\n\n        if (this.listacampos.length > 0) {\n          const where = await this.requisitoSvc.sentenciaSql(this.listacampos).toPromise();\n          objetoDinamico.filtro = where?.data;\n        } else {\n          objetoDinamico.filtro = null;\n        }\n\n        // where2 es where solo con campos sexo y genero\n        if (listaCampos2.length > 0) {\n          const where2 = await this.requisitoSvc.sentenciaSql(listaCampos2).toPromise();\n          objetoDinamico.filtroHoja = where2?.data;\n        } else {\n          objetoDinamico.filtroHoja = null;\n        }\n      }\n\n      // Actualización del objeto dinámico.\n      await this.generalService.update(new GeneralModel(dto, null, false, objetoDinamico)).toPromise();\n\n    } catch (error) {\n      Error(error)\n    }\n  }\n\n  confirmaEliminacion(rutas: RequisitoModel) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      header: 'Confirmar',\n      accept: () => {\n        this.onRowDeleteSave(rutas);\n      }\n    }\n    )\n  }\n\n  onRowDeleteSave(rutas: RequisitoModel) {\n    delete this.clonedProducts[rutas.llaveTabla];\n    this.eliminar(rutas);\n  }\n\n  onRowEditSave(dato: RequisitoModel) {\n\n    this.bloquearboton = false;\n\n    if (dato.campo == 'cargo' || dato.campo == 'ciudad' || dato.campo == 'unidad' || dato.campo == 'unidadrelacion') {\n      dato.dato = this.requisitoDTO.dato;\n      dato.descripcionCargo = this.requisitoDTO.descripcionCargo;\n      delete this.clonedProducts[dato.llaveTabla];\n      this.actualizar(dato);\n    } else {\n      delete this.clonedProducts[dato.llaveTabla];\n      dato.fechaAdicionado = new Date(dato.fechaAdicionado);\n      dato.fechaModificado = new Date(dato.fechaModificado);\n      this.actualizar(dato);\n    }\n  }\n\n  cancelarNuevo() {\n    this.isValidar = true;\n    this.pausaeditar = false;\n    this.bloquearboton = false;\n    this.vistaVisualizar = '';\n    this.clickGenerar = false;\n    this.requisitoDTO = new RequisitoModel();\n    this.cargarListadoCargo();\n  }\n\n  //listas\n  async ListaEmpresa() {\n    let mapaRetorna: Map<number, string> = new Map<number, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'EmpresaDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data) => {\n      this.listaempresa = data;\n      this.listaempresa.forEach(item => {\n        mapaRetorna.set(item.empresa, item.nombre)\n      });\n      this.empresalista = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    })\n  }\n\n  async ListaPeriodo() {\n    let mapaRetorna: Map<number, string> = new Map<number, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'TipoPeriodoDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data) => {\n      this.listaperiodo = data;\n      this.listaperiodo.forEach(item => {\n        mapaRetorna.set(item.tipo, item.descripcion)\n      });\n      this.periodolista = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    })\n  }\n\n  async ListaVinculacionL() {\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'VinculacionLaboralDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data) => {\n      this.listavincula = data;\n      this.listavincula.forEach(item => {\n        mapaRetorna.set(item.vinculacion.toString(), item.descripcion)\n      });\n      this.listav = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    })\n  }\n\n  async ListaEstadoLaboral() {\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'EstadoLaboralDTO',\n      seguridad: false,\n      objeto: {},\n    }).subscribe((data) => {\n      this.listaeslaboral = data;\n      this.listaeslaboral.forEach(item => {\n        mapaRetorna.set(item.estadoLaboral, item.descripcion)\n      });\n      this.listadoLaboral = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    })\n  }\n\n  async cambiarVista(evento) {\n    if (evento != null) {\n      this.llaveEmpresa = evento.value;\n    } else {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.entero = null;\n    }\n  }\n\n  cambiarVistaClasi(evento) {\n    if (evento != null) {\n      this.tipo = evento;\n      this.llaveEmpresa = evento.value;\n      this.isValidar = true;\n    } else {\n      this.requisitoDTO.dato = null\n    }\n  }\n\n  cambiarVistacategoria(evento) {\n    if (evento != null) {\n      this.tipo = evento;\n      this.llaveEmpresa = evento.value;\n    } else {\n      this.requisitoDTO.dato = null;\n    }\n  }\n\n  cambiarVistaEmpresa(evento) {\n    \n    this.ismostrarcargo = true;\n    this.llaveEmpresa = evento.value;\n    this.tipo = evento;\n\n    if (this.variableCargo?.label) {\n      this.multicargolista = [];\n      this.variableCargo.label = '';\n    }\n\n    if (this.unidadMultple?.label) {\n      this.multiunidad = [];\n      this.unidadMultple.label = '';\n    }\n  }\n\n  cambiarEmpresaEditar(evento, item) {\n    this.tipo = evento;\n    this.llaveEmpresa = evento.value;\n    item.descripcionCargo = null;\n    item.dato = null;\n  }\n\n  cambiarEmpresaEditarUnidad(evento, item) {\n    this.tipo = evento;\n    this.llaveEmpresa = evento.value;\n    item.descripcionUnidad = null;\n    item.dato = null;\n  }\n\n  async cambiarVistaCampo(evento) {\n\n    this.clickGenerar = false;\n\n    if (evento.value == 'categoria') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null\n      this.requisitoDTO.dato2 = null\n      this.ismostrarcargo = false;\n      this.cambiarVistacategoria(null)\n    } else if (evento.value == 'tipoperiodo' || evento.value == 'rolclasificacion' || evento.value == 'empresa' || evento.value == 'estadoeml' || evento.value == 'grupoempleado' || evento.value == 'estadocivil' || evento.value == 'sexo' || evento.value == 'nivelcargo' || evento.value == 'vinculacion' || evento.value == 'clasificacion') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.ismostrarcargo = false;\n      this.cambiarVista(null);\n    } else if (evento.value == 'edad') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.ismostrarcargo = false;\n    }\n    else if (evento.value == 'unidad_multiple') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.requisitoDTO.entero = null;\n      this.ismostrarcargo = false;\n      this.onSelectUnidadmultiple(null);\n    }\n    else if (evento.value == 'cargo_multiples') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.requisitoDTO.entero = null;\n      this.ismostrarcargo = false;\n      this.onSelectMultyCargo(null);\n    }\n    else if (evento.value == 'ciudad') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.ismostrarcargo = false;\n      this.onSelectCiudad(null);\n    }\n    else if (evento.value == 'clasificacion') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.ismostrarcargo = false;\n      this.cambiarVistaClasi(null);\n    }\n    else if (evento.value == 'unidad' || evento.value == 'unidadrelacion') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.entero = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.ismostrarcargo = false;\n      this.onSelectUnidad(null);\n    }\n    else if (evento.value == 'cargo') {\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.entero = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n      this.ismostrarcargo = false;\n    }\n    else {\n      this.ismostrarcargo = false;\n      this.requisitoDTO.empresa = null;\n      this.requisitoDTO.dato = null;\n      this.requisitoDTO.dato2 = null;\n    }\n\n    this.tipo = evento;\n    this.llaveEmpresa = evento.value;\n  }\n\n  async parametrosMap() {\n    this.listadotcampo = this.generalPipe.TIPOCAMPO;\n    const objDestino = this.generalPipe.TIPOCAMPO.reduce((obj, tipo) => {\n      obj[tipo.codigo] = tipo.nombre;\n      return obj;\n    }, {});\n    this.listadoGenero = await this.cargarMapas.cargarSelectItemString('codigo', 'descripcion', new GeneralModel('CodigoBaseHovDTO', null, false, { tipo: 'TIPGE' }));\n    const objDestino2 = this.listadoGenero.reduce((obj, tipo) => {\n      obj[tipo.codigo] = tipo.nombre;\n      return obj;\n    }, {});\n  }\n\n  onSelectCargo(event) {\n    this.isValidar = true;\n    this.requisitoDTO.descripcionCargo = event.descripcion;\n    this.requisitoDTO.dato = event.cargo;\n  }\n\n  /// para cargo multiple\n  onSelectMultyCargo(event: any[]) {\n\n    if (event != null) {\n      this.multicargolista = event;\n      this.isValidar = true;\n    }\n  }\n\n  cargarEmpresaInicial(evento) {\n\n    this.requisitoDTO = evento;\n    this.bloquearboton = true;\n    this.pausaeditar = true;\n\n    this.llaveEmpresa = evento.entero;\n  }\n\n  onSelectCiudad(event) {\n    if (event != null) {\n      this.requisitoDTO.descripcionCiudad = event.ciudad;\n      this.requisitoDTO.dato = event.llaveCiudad;\n      this.isValidar = true;\n    } else {\n      this.requisitoDTO.dato = null;\n    }\n  }\n\n  async onSelectUnidad(event) {\n    if (event != null) {\n      this.requisitoDTO.descripcionUnidad = event.nombreUnidad;\n      this.requisitoDTO.dato = event.unidad;\n      this.isValidar = true;\n    }\n  }\n\n  //para unidad multiple\n  onSelectUnidadmultiple(event: any[]) {\n\n    if (event != null) {\n      this.multiunidad = event;\n      this.isValidar = true;\n    }\n  }\n\n  mapGenero(dato: string): string {\n    let result: string;\n    this.listadoGenero.forEach(data => { if (data.key === dato) { result = data.label } });\n    return result\n  }\n\n\n}\n\n","<p-confirmPopup></p-confirmPopup>\n\n<p-confirmPopup [showTransitionOptions]=\"'10ms'\" [hideTransitionOptions]=\"'10ms'\"></p-confirmPopup>\n\n<div class=\"flex justify-content-between align-content-center mb-3\">\n    <h2 class=\"mt-2\">{{nombreTarea}}</h2>\n    <button pButton pRipple class=\"p-button p-button-secondary\" icon=\"pi pi-plus\" [disabled]=\"bloquearboton\"\n        label=\"{{'link_nuevo' | translate}}\" (click)=\"mostrarNuevo()\">\n    </button>\n</div>\n<p-table #tablaGeneral class=\"mt-4\" [value]=\"ventana\" responsiveLayout=\"scroll\" scroll [scrollable]=\"true\"\n    [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > paginator.rows\" scrollDirection=\"horizontal\"\n    [totalRecords]=\"paginator.totalRecords\" selectionMode=\"single\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" dataKey=\"llave\" editMode=\"row\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th style=\"width: 20%;\">{{'campo' | translate}}</th>\n            <th style=\"width: 72%;\">{{'tipocampo' | translate}} </th>\n            <th style=\"width: 8%;\"></th>\n        </tr>\n        <tr class=\"TablaNuevoRegistro\" *ngIf=\"vistaVisualizar == 'nuevo'\">\n            <ng-container>\n                <td style=\"width: 20%;\">\n                    <div style=\"min-width:22rem; max-width:22rem\">\n                        <p-dropdown id=\"campo\" appendTo=\"body\" [autoDisplayFirst]=\"false\" optionLabel=\"nombre\"\n                            optionValue=\"codigo\" [options]=\"listadotcampo\" [(ngModel)]=\"requisitoDTO.campo\"\n                            (onChange)=\"cambiarVistaCampo($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.campo) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.campo)  && clickGenerar\"></p-dropdown>\n                    </div>\n                </td>\n                <!-- Inicial -->\n                <td style=\"width: 70%;\" *ngIf=\"!this.requisitoDTO.campo\">\n                </td>\n                <!-- CARGO -->\n                <td style=\"width: 70%;\" *ngIf=\"this.requisitoDTO.campo == 'cargo'\">\n                    <div class=\"flex\">\n                        <span class=\"p-float-label\" style=\"width:30%\">\n                            <p-dropdown id=\"empresa\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\"\n                                optionValue=\"key\" [options]=\"empresalista\" [(ngModel)]=\"requisitoDTO.entero\"\n                                (onChange)=\"cambiarVistaEmpresa($event)\" [virtualScroll]=\"true\"\n                                [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.entero) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.entero)  && clickGenerar\"></p-dropdown>\n                            <label htmlFor=\"empresa\">{{'empresa' | translate}}</label>\n                        </span>\n                        <div style=\"width:70%\" *ngIf=\"ismostrarcargo\">\n                            <span class=\"p-float-label ml-3\" style=\"width:100%\">\n                                <app-input-helper-variable-cargo [mostraroblicargo]=\"isValidar\" [showDialog]=\"false\"\n                                    [llaveEmpresa]=\"llaveEmpresa\" [titulabel]=\"'cargo' | translate\"\n                                    (conceptoSeleccionado)=\"onSelectCargo($event)\">\n                                </app-input-helper-variable-cargo>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <!-- CARGO MULTIPLE -->\n                <td style=\"width: 70%;\" *ngIf=\"this.requisitoDTO.campo =='cargo_multiples'\">\n                    <div class=\"flex\">\n                        <div style=\"width:30%\">\n                            <span class=\"p-float-label \">\n                                <p-dropdown id=\"empresa_multi\" [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n                                    appendTo=\"body\" optionValue=\"key\" [options]=\"empresalista\" [virtualScroll]=\"true\"\n                                    [virtualScrollItemSize]=\"38\" [(ngModel)]=\"requisitoDTO.entero\"\n                                    (onChange)=\"cambiarVistaEmpresa($event)\"\n                                    [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.entero) && clickGenerar\"\n                                    [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.entero)  && clickGenerar\"></p-dropdown>\n                                <label htmlFor=\"empresa_multi\">{{'empresa' | translate}}</label>\n                            </span>\n                        </div>\n                        <div style=\"width:70%\" *ngIf=\"ismostrarcargo\">\n                            <span class=\"p-float-label\" style=\"width:100%\">\n                                <app-input-helper-variable-cargo #variableCargo [showDialog]=\"false\" [readonly]=\"true\"\n                                    [mostraroblicargo]=\"!isValidar\" [llaveEmpresa]=\"llaveEmpresa\"\n                                    [titulabel]=\"'cargo' | translate\"\n                                    (conceptoSeleccionados)=\"onSelectMultyCargo($event)\" [cargomultiple]=\"true\">\n                                </app-input-helper-variable-cargo>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <!--UNIDAD ORGANIZACIONAL -->\n                <td style=\"width: 70%;\"\n                    *ngIf=\"this.requisitoDTO.campo == 'unidad' || this.requisitoDTO.campo == 'unidadrelacion'\">\n                    <div class=\"flex\">\n                        <div style=\"width:30%\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown id=\"empresa_unidad\" [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n                                    optionValue=\"key\" appendTo=\"body\" [options]=\"empresalista\" [virtualScroll]=\"true\"\n                                    [virtualScrollItemSize]=\"38\" [(ngModel)]=\"requisitoDTO.entero\"\n                                    (onChange)=\"cambiarVistaEmpresa($event)\"\n                                    [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.entero) && clickGenerar\"\n                                    [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.entero)  && clickGenerar\"></p-dropdown>\n                                <label htmlFor=\"empresa_unidad\">{{'empresa' | translate}}</label>\n                            </span>\n                        </div>\n                        <div style=\"width:70%\" *ngIf=\"ismostrarcargo\">\n                            <span class=\"p-float-label w-full ml-3\">\n                                <app-input-helper-unidad #unidad [punto]=\"true\" [verUnidades]=\"true\"\n                                    [header]=\"this.translateService.instant('unidad' | translate)\"\n                                    (onSelected)=\" onSelectUnidad($event)\" [mostrarX]=\"false\" [empresa]=\"+llaveEmpresa\"\n                                    [booleano]=\"!isValidar\"></app-input-helper-unidad>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <!-- UNIDAD MULTIPLE -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'unidad_multiple'\" style=\"width: 70%;\">\n                    <div class=\"flex\">\n                        <div style=\"width:30%\">\n                            <span class=\"p-float-label \">\n                                <p-dropdown id=\"entero\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\"\n                                    optionValue=\"key\" [options]=\"empresalista\" [(ngModel)]=\"requisitoDTO.entero\"\n                                    (onChange)=\"cambiarVistaEmpresa($event)\" [virtualScroll]=\"true\"\n                                    [virtualScrollItemSize]=\"38\"\n                                    [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.entero) && clickGenerar\"\n                                    [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.entero)  && clickGenerar\"></p-dropdown>\n                                <label htmlFor=\"empresa\">{{'empresa' | translate}}</label>\n                            </span>\n                        </div>\n                        <div style=\"width:70%\" *ngIf=\"ismostrarcargo\">\n                            <span class=\"p-float-label w-full ml-3\">\n                                <app-input-helper-unidad-multiple #unidadMultple [punto]=\"true\" class=\"w-full\" [verUnidades]=\"true\"\n                                    (unidadseleccionado)=\"onSelectUnidadmultiple($event)\" [booleano]=\"!isValidar\"\n                                    [empresa]=\"+llaveEmpresa\"></app-input-helper-unidad-multiple>\n                            </span>\n                        </div>\n                    </div>\n                </td>\n                <!-- Categoria -->\n                <td style=\"width: 70%;\" *ngIf=\"this.requisitoDTO.campo == 'categoria'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\"\n                            optionValue=\"key\" [options]=\"listadoCategoria\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVistacategoria($event)\" [virtualScroll]=\"true\"\n                            [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- Ciudad -->\n                <td style=\"width: 70%;\" *ngIf=\"this.requisitoDTO.campo == 'ciudad'\">\n                    <span class=\"p-float-label\">\n                        <app-input-helper-ubicacion [(ngModel)]=\"requisitoDTO.descripcionCiudad\"\n                            (onSelected)=\"onSelectCiudad($event)\" [booleano]=\"!isValidar\"></app-input-helper-ubicacion>\n                    </span>\n                </td>\n                <!-- Clasificacion -->\n                <td style=\"width: 70%;\" *ngIf=\"this.requisitoDTO.campo == 'clasificacion'\">\n                    <div>\n                        <span class=\"p-float-label\">\n                            <p-dropdown id=\"clasificacion\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\"\n                                optionValue=\"key\" [options]=\"listadoClasificacion\" [(ngModel)]=\"requisitoDTO.dato\"\n                                (onChange)=\"cambiarVistaClasi($event)\" [virtualScroll]=\"true\"\n                                [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                        </span>\n                    </div>\n                </td>\n                <!-- Edad -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'edad' || this.requisitoDTO.campo == 'edadentero'\">\n                    <div class=\"flex\">\n                        <span class=\"p-float-label\" style=\"width: 50%;\">\n                            <input pInputText type=\"text\" id=\"id_edad_1\" [(ngModel)]=\"requisitoDTO.dato\" maxlength=\"5\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\" />\n                        </span>\n                        <span class=\"p-float-label ml-3\" style=\"width: 50%;\">\n                            <input pInputText type=\"text\" id=\"id_edad_2\" [(ngModel)]=\"requisitoDTO.dato2\" maxlength=\"5\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\" />\n                        </span>\n                    </div>\n                </td>\n                <!-- Empresa -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'empresa'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"empresa\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\"\n                            optionValue=\"key\" [options]=\"empresalista\" class=\"w-full\" [(ngModel)]=\"requisitoDTO.entero\"\n                            (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.entero) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.entero)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- Estado civil -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'estadocivil'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                            appendTo=\"body\" [options]=\"listadoEstadoCivil\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- Estado laboral -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'estadoeml'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"empresa\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\"\n                            optionValue=\"key\" [options]=\"listadoLaboral\" class=\"w-full\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- Genero -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'sexo'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" appendTo=\"body\"\n                            optionValue=\"key\" [options]=\"listadoGenero\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVista($event)\" class=\"w-full\" [virtualScroll]=\"true\"\n                            [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- Grupo Empleado -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'grupoempleado'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                            appendTo=\"body\" [options]=\"grupoLista\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVista($event)\" class=\"w-full\" [virtualScroll]=\"true\"\n                            [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- nivel cargo -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'nivelcargo'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"nivel_cargo\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                            appendTo=\"body\" [options]=\"listadoNivelCargo\" class=\"w-full\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- RANGO SUELDO -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'sueldobasico'\">\n                    <div class=\"flex\">\n                        <span class=\"p-float-label\" style=\"width: 50%;\">\n                            <input pInputText type=\"text\" id=\"rango_out_1\" [(ngModel)]=\"requisitoDTO.dato\"\n                                maxlength=\"14\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 14);\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\" />\n                        </span>\n\n                        <span class=\"p-float-label  ml-3\" style=\"width: 50%;\">\n                            <input pInputText type=\"text\" id=\"rango_out_2\" [(ngModel)]=\"requisitoDTO.dato2\"\n                                maxlength=\"14\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 14);\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato2) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato2)  && clickGenerar\" />\n                        </span>\n                    </div>\n                </td>\n                <!--Rol clasificacion -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'rolclasificacion'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                            appendTo=\"body\" [options]=\"listadoRoles\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!-- Tiempo antigüedad empresa -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'antiguedad'\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" id=\"antiguedad\" [(ngModel)]=\"requisitoDTO.dato\" maxlength=\"5\"\n                            oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\" />\n                    </span>\n                </td>\n                <!-- Tiempo antigüedad cargo actual -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'antiguedadcargoactentero'\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" id=\"antiguedadcargoactentero\" [(ngModel)]=\"requisitoDTO.dato\"\n                            maxlength=\"5\"\n                            oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\" />\n                    </span>\n                </td>\n                <!-- Tiempo antigüedad cargo actual año entero-->\n                <td *ngIf=\"this.requisitoDTO.campo == 'antiguedadcargoact'\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" id=\"antiguedadcargoact\" [(ngModel)]=\"requisitoDTO.dato\"\n                            maxlength=\"5\"\n                            oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\" />\n                    </span>\n                </td>\n                <!-- Tiempo antigüedad empresa actual año entero-->\n                <td *ngIf=\"this.requisitoDTO.campo == 'antiguedadentero'\">\n                    <span class=\"p-float-label\">\n                        <input pInputText type=\"text\" id=\"antiguedadentero\" [(ngModel)]=\"requisitoDTO.dato\"\n                            maxlength=\"5\"\n                            oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\" />\n                    </span>\n                </td>\n                <!--tipo periodo -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'tipoperiodo'\">\n                    <span class=\"p-float-label\">\n                        <label htmlFor=\"estado\">{{'tipoperiodo' | translate}}</label>\n                        <p-dropdown id=\"entero\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                            appendTo=\"body\" [options]=\"periodolista\" [(ngModel)]=\"requisitoDTO.entero\"\n                            (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.entero) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.entero)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n                <!--tipo vinculacion -->\n                <td *ngIf=\"this.requisitoDTO.campo == 'vinculacion'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                            appendTo=\"body\" [options]=\"listav\" [(ngModel)]=\"requisitoDTO.dato\"\n                            (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                            [class.ng-dirty]=\"!us.validarCampoObligatorio(requisitoDTO.dato) && clickGenerar\"\n                            [class.ng-invalid]=\"!us.validarCampoObligatorio(requisitoDTO.dato)  && clickGenerar\"></p-dropdown>\n                    </span>\n                </td>\n\n                <!-- BOTONES NUEVO REGISTRO -->\n                <td style=\"width: 8%; text-align: right\">\n                    <div class=\"flex justify-content-end\">\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            (click)=\"onRowEditcrear()\"></button>\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\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>\n                    </div>\n                </td>\n            </ng-container>\n        </tr>\n        <!-- </form> -->\n        <!-- fin -->\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-item let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr [pEditableRow]=\"item\">\n            <td style=\"width: 20%;\">\n                <p-cellEditor class=\"w-full\">\n                    <ng-template pTemplate=\"input\">\n                        <div style=\"min-width:22rem; max-width:22rem\">\n                            <p-dropdown id=\"campo\" appendTo=\"body\" [autoDisplayFirst]=\"false\" optionLabel=\"nombre\"\n                                optionValue=\"codigo\" [options]=\"listadotcampo\" [disabled]=\"true\"\n                                [(ngModel)]=\"item.campo\" (onChange)=\"cambiarVistaCampo($event)\" [virtualScroll]=\"true\"\n                                [virtualScrollItemSize]=\"38\"></p-dropdown>\n                        </div>\n                    </ng-template>\n                    <ng-template pTemplate=\"output\">\n                        {{item.campo | generalPipe:'listaTipoCampo'}}\n                    </ng-template>\n                </p-cellEditor>\n            </td>\n            <td style=\"width: 72%;\">\n                <p-cellEditor class=\"w-full\">\n                    <!-- campos que se muestran al editar INPUT -->\n                    <ng-template pTemplate=\"input\">\n                        <!--CARGO -->\n                        <div *ngIf=\"item.campo == 'cargo'\">\n                            <div class=\"flex\" style=\"display: flex; width: 100%;\">\n                                <span class=\"p-float-label\" style=\"width:30%\">\n                                    <p-dropdown id=\"empresa\" [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n                                        appendTo=\"body\" optionValue=\"key\" [options]=\"empresalista\" [disabled]=\"false\"\n                                        [(ngModel)]=\"item.entero\" (onChange)=\"cambiarEmpresaEditar($event, item)\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(item.entero) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(item.entero)  && clickGenerar\"\n                                        [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"></p-dropdown>\n                                    <label htmlFor=\"empresa\">{{'empresa' | translate}}</label>\n                                </span>\n                                <div style=\"width:70%\">\n                                    <span class=\"p-float-label ml-3\" style=\"width:100%\">\n                                        <app-input-helper-variable-cargo [mostraroblicargo]=\"isValidar\"\n                                            [showDialog]=\"false\" [llaveEmpresa]=\"llaveEmpresa\"\n                                            [titulabel]=\"'cargo' | translate\" [label]=\"item.descripcionCargo\"\n                                            (conceptoSeleccionado)=\"onSelectCargo($event)\" [cargomultiple]=\"false\">\n                                        </app-input-helper-variable-cargo>\n                                    </span>\n                                </div>\n                            </div>\n                        </div>\n\n                        <!--***EMPRESA -->\n                        <div *ngIf=\"item.campo == 'empresa'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                                appendTo=\"body\" [options]=\"empresalista\" class=\"w-full\" [(ngModel)]=\"item.entero\"\n                                (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.entero) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.entero)  && clickGenerar\"></p-dropdown>\n                        </div>\n                        <!--***CLASIFICACION -->\n                        <div *ngIf=\"item.campo == 'clasificacion'\">\n                            <p-dropdown id=\"clasificacion\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                                appendTo=\"body\" [options]=\"listadoClasificacion\" class=\"w-full\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                        </div>\n                        <!--***NIVEL CARGO -->\n                        <div *ngIf=\"item.campo == 'nivelcargo'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\n                                optionValue=\"key\" appendTo=\"body\" [options]=\"listadoNivelCargo\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                        </div>\n\n                        <!--***Estado Civil -->\n                        <div *ngIf=\"item.campo == 'estadocivil'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\n                                optionValue=\"key\" appendTo=\"body\" [options]=\"listadoEstadoCivil\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                        </div>\n                        <!--***RANGO SUELDO -->\n                        <div *ngIf=\"item.campo == 'sueldobasico'\">\n                            <div class=\"flex\">\n                                <span class=\"p-float-label\" style=\"width: 50%;\">\n                                    <input pInputText type=\"text\" id=\"rango_out_1\" [(ngModel)]=\"item.dato\"\n                                        maxlength=\"14\"\n                                        oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 14);\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\" />\n                                </span>\n\n                                <span class=\"p-float-label  ml-3\" style=\"width: 50%;\">\n                                    <input pInputText type=\"text\" id=\"rango_out_2\" [(ngModel)]=\"item.dato2\"\n                                        maxlength=\"14\"\n                                        oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 14);\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato2) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato2)  && clickGenerar\" />\n                                </span>\n                            </div>\n                        </div>\n                        <!-- ***Categoria -->\n                        <div *ngIf=\"item.campo == 'categoria'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                                appendTo=\"body\" class=\"w-full\" [options]=\"listadoCategoria\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVistacategoria($event)\" [virtualScroll]=\"true\"\n                                [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                        </div>\n                        <!-- ***Ciudad -->\n                        <div *ngIf=\"item.campo == 'ciudad'\">\n                            <app-input-helper-ubicacion (onSelected)=\"onSelectCiudad($event)\"\n                                [label]=\"item.descripcionCiudad\" [booleano]=\"!isValidar\"></app-input-helper-ubicacion>\n                        </div>\n                        <!-- ***EDAD -->\n                        <div *ngIf=\"item.campo == 'edad' || item.campo == 'edadentero'\">\n                            <div class=\"flex\">\n                                <span class=\"p-float-label\" style=\"width: 50%;\">\n                                    <input pInputText type=\"text\" id=\"id_edad_1\" [(ngModel)]=\"item.dato\" maxlength=\"5\"\n                                        oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\" />\n                                </span>\n                                <span class=\"p-float-label ml-3\" style=\"width: 50%;\">\n                                    <input pInputText type=\"text\" id=\"id_edad_2\" [(ngModel)]=\"item.dato2\" maxlength=\"5\"\n                                        oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\" />\n                                </span>\n                            </div>\n                        </div>\n                        <!-- ***Estado Laboral -->\n                        <div *ngIf=\"item.campo == 'estadoeml'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\n                                optionValue=\"key\" appendTo=\"body\" [options]=\"listadoLaboral\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVistacategoria($event)\" [virtualScroll]=\"true\"\n                                [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                        </div>\n                        <!-- ***Sexo -->\n                        <div *ngIf=\"item.campo == 'sexo'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                                appendTo=\"body\" [options]=\"listadoGenero\" class=\"w-full\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                        </div>\n                        <!-- ***Grupo Empleado -->\n                        <div *ngIf=\"item.campo == 'grupoempleado'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                                appendTo=\"body\" [options]=\"grupoLista\" class=\"w-full\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                        </div>\n                        <!-- ***RolClasificacion -->\n                        <div *ngIf=\"item.campo == 'rolclasificacion'\">\n                            <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" class=\"w-full\"\n                                optionValue=\"key\" appendTo=\"body\" [options]=\"listadoRoles\" [(ngModel)]=\"item.dato\"\n                                (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"></p-dropdown>\n                        </div>\n\n                        <!--***ANTIGUEDAD CARGO AÑO ENTERO-->\n                        <div *ngIf=\"item.campo == 'antiguedadcargoactentero'\">\n                            <input pInputText type=\"text\" id=\"antiguedadcargoactentero_out\" [(ngModel)]=\"item.dato\"\n                                maxlength=\"5\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\" />\n                        </div>\n\n                        <!--***ANTIGUEDAD CARGO -->\n                        <div *ngIf=\"item.campo == 'antiguedadcargoact'\">\n                            <input pInputText type=\"text\" id=\"antiguedadcargoact_out\" [(ngModel)]=\"item.dato\"\n                                maxlength=\"5\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\" />\n                        </div>\n\n                        <!-- ***Antiguedad -->\n                        <div *ngIf=\"item.campo == 'antiguedad'\">\n                            <input pInputText type=\"text\" id=\"antiguedad_out\" [(ngModel)]=\"item.dato\" maxlength=\"5\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\" />\n                        </div>\n\n                        <!--***ANTIGUEDAD EMPRESA AÑO ENTERO-->\n                        <div *ngIf=\"item.campo == 'antiguedadentero'\">\n                            <input pInputText type=\"text\" id=\"antiguedadentero_out\" [(ngModel)]=\"item.dato\"\n                                maxlength=\"5\"\n                                oninput=\"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\\..*)\\./g, '$1').slice(0, 5);\"\n                                [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\" />\n                        </div>\n\n                        <!-- ***TipoPeriodo -->\n                        <div *ngIf=\"item.campo == 'tipoperiodo'\">\n                            <div style=\"width:30%\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown id=\"entero\" [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n                                        optionValue=\"key\" appendTo=\"body\" [options]=\"periodolista\"\n                                        [(ngModel)]=\"item.entero\" (onChange)=\"cambiarVista($event)\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(item.entero) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(item.entero)  && clickGenerar\"\n                                        [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"></p-dropdown>\n                                </span>\n                            </div>\n                        </div>\n                        <!-- ***Vinculacion -->\n                        <div *ngIf=\"item.campo == 'vinculacion'\">\n                            <span class=\"p-float-label w-full ml-3\">\n                                <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"key\"\n                                    appendTo=\"body\" [options]=\"listav\" [(ngModel)]=\"item.dato\"\n                                    (onChange)=\"cambiarVista($event)\" [virtualScroll]=\"true\"\n                                    [virtualScrollItemSize]=\"38\"\n                                    [class.ng-dirty]=\"!us.validarCampoObligatorio(item.dato) && clickGenerar\"\n                                    [class.ng-invalid]=\"!us.validarCampoObligatorio(item.dato)  && clickGenerar\"></p-dropdown>\n                            </span>\n                        </div>\n                        <!-- UNIDAD -->\n                        <div *ngIf=\"item.campo == 'unidadrelacion' || item.campo == 'unidad'\">\n                            <div class=\"flex\" style=\"display: flex; width: 100%;\">\n                                <span class=\"p-float-label\" style=\"width:30%\">\n                                    <p-dropdown id=\"entero\" [autoDisplayFirst]=\"false\" optionLabel=\"label\"\n                                        optionValue=\"key\" appendTo=\"body\" [options]=\"empresalista\"\n                                        [(ngModel)]=\"item.entero\" (onChange)=\"cambiarEmpresaEditarUnidad($event, item)\"\n                                        [class.ng-dirty]=\"!us.validarCampoObligatorio(item.entero) && clickGenerar\"\n                                        [class.ng-invalid]=\"!us.validarCampoObligatorio(item.entero)  && clickGenerar\"\n                                        [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\"></p-dropdown>\n                                    <label htmlFor=\"empresa\">{{'empresa' | translate}}</label>\n                                </span>\n                                <div style=\"width:70%\">\n                                    <div class=\"ml-3\" style=\"width:100%\">\n                                        <app-input-helper-unidad #unidad [punto]=\"true\" [verUnidades]=\"true\"\n                                            [header]=\"this.translateService.instant('unidad' | translate)\"\n                                            (onSelected)=\" onSelectUnidad($event)\" [mostrarX]=\"false\"\n                                            [empresa]=\"+llaveEmpresa\" [booleano]=\"!isValidar\"\n                                            [label]=\"item.descripcionUnidad\"></app-input-helper-unidad>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </ng-template>\n                    <!--***Campos que se muestran en el front -->\n                    <ng-template pTemplate=\"output\">\n                        <div *ngIf=\"item.campo == 'cargo'\">\n                            {{item.descripcionCargo}}\n                        </div>\n                        <!-- ***Categoria -->\n                        <div *ngIf=\"item.campo == 'categoria'\">\n                            {{listacate[item.dato]}}\n                        </div>\n                        <!-- ***Edad -->\n                        <div *ngIf=\"item.campo == 'edad' || item.campo == 'edadentero'\">\n                            {{item.dato}} - {{item.dato2}}\n                        </div>\n                        <!-- ***Ciudad -->\n                        <div *ngIf=\"item.campo == 'ciudad'\">\n                            {{item.descripcionCiudad}}\n                        </div>\n                        <!-- ***Clasificacion -->\n                        <div *ngIf=\"item.campo == 'clasificacion'\">\n                            {{listaclasi[item.dato]}}\n                        </div>\n                        <!-- ***Empresa -->\n                        <div *ngIf=\"item.campo == 'empresa'\">\n                            {{item.descripcionEmpresa}}\n                        </div>\n                        <!-- ***EStadoCivil -->\n                        <div *ngIf=\"item.campo == 'estadocivil'\">\n                            {{listadoestadoc[item.dato]}}\n                        </div>\n                        <!-- ***EStadoLaboral -->\n                        <div *ngIf=\"item.campo == 'estadoeml'\">\n                            {{item.descripcionEstadoLaboral}}\n                        </div>\n                        <!-- ***Grupo Empleado -->\n                        <div *ngIf=\"item.campo == 'grupoempleado'\">\n                            {{item.descripcionGrupo}}.\n                        </div>\n                        <!-- ***Nivel Cargo -->\n                        <div *ngIf=\"item.campo == 'nivelcargo'\">\n                            {{listadonivelv[item.dato]}}.\n                        </div>\n                        <!-- ***Rango Sueldo -->\n                        <div *ngIf=\"item.campo == 'sueldobasico'\">\n                            {{item.dato}} - {{item.dato2}}\n                        </div>\n                        <!-- ***Rol Clasificacion -->\n                        <div *ngIf=\"item.campo == 'rolclasificacion'\">\n                            {{mapaRolClasificacion[item.dato]}}\n                        </div>\n                        <!-- ***Antiguedad Cargo -->\n                        <div *ngIf=\"item.campo == 'antiguedadcargoact'\">\n                            {{item.dato}}\n                        </div>\n                        <!-- ***Antiguedad -->\n                        <div *ngIf=\"item.campo == 'antiguedad'\">\n                            {{item.dato}}\n                        </div>\n                        <!-- ***Antiguedad Cargo Entero -->\n                        <div *ngIf=\"item.campo == 'antiguedadcargoactentero'\">\n                            {{item.dato}}\n                        </div>\n                        <!-- ***Antiguedad empresa Entero -->\n                        <div *ngIf=\"item.campo == 'antiguedadentero'\">\n                            {{item.dato}}\n                        </div>\n                        <!-- ***Sexo -->\n                        <div *ngIf=\"item.campo == 'sexo'\">\n                            {{mapGenero(item.dato)}}\n                        </div>\n                        <!-- ***TipoPeriodo -->\n                        <div *ngIf=\"item.campo == 'tipoperiodo'\">\n                            {{item.descripcionTipoPeriodo}}\n                        </div>\n                        <!-- ***Vinculacion -->\n                        <div *ngIf=\"item.campo == 'vinculacion'\">\n                            {{item.descripcionVinculaLaboral}}\n                        </div>\n                        <!-- ***Unidad -->\n                        <div *ngIf=\"item.campo == 'unidad' || item.campo == 'unidadrelacion' \">\n                            <!-- {{item.descripcionUnidad}} - {{item.descripcionEmpresa}} -->\n                            {{item.descripcionUnidad | uppercase}} {{item.descripcionVinculaLaboral |\n                            uppercase}}\n                            {{item.descripcionEmpresa | uppercase}}\n                        </div>\n                    </ng-template>\n                </p-cellEditor>\n            </td>\n            <td style=\"width: 8%; text-align: right\">\n                <div class=\"flex justify-content-end\">\n                    <!-- CHECK GUARDAR -->\n                    <button *ngIf=\"editing \" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                        (click)=\"onRowEditSave(item)\"\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>\n\n                    <!-- CANCELAR -->\n                    <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n                        (click)=\"cancelarNuevo()\"\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>\n                    <!-- EDITAR -->\n                    <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow [disabled]=\"pausaeditar\"\n                        icon=\"glyphicons glyphicons-pencil\" (click)=\"cargarEmpresaInicial(item)\"\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>\n                    <!-- ELIMINAR -->\n                    <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                        [disabled]=\"pausaeditar\" (click)=\"confirmaEliminacion(item)\"\n                        class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only ng-star-inserted\"></button>\n                </div>\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n<!-- @if(espopup){\n</p-dialog>\n} -->\n<!-- </div> -->\n<!-- </ng-container> -->","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { InputHelperCondicionDerechoComponent } from '../input-helper-condicion-derecho/input-helper-condicion-derecho.component';\nimport { NgIf } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\n@Component({\n  selector: 'app-input-helper-condicion-rolacceso',\n  templateUrl: './input-helper-condicion-rolacceso.page.html',\n  styleUrls: ['./input-helper-condicion-rolacceso.page.scss'],\n  standalone: true,\n  imports: [InputHelperCondicionDerechoComponent,\n    NgIf,\n    DialogModule,\n    TranslateModule,\n  ]\n})\nexport class InputHelperCondicionRolaccesoPage implements OnInit {\n\n  @Output()\n  public regresar = new EventEmitter;\n\n  @Input()\n  public mostrarPopup: boolean = false;\n  @Input()\n  public nombreTabla: string;\n  @Input()\n  descripcionTipo: string = '';\n  @Input()\n  llaveNumerica: number = 0;\n  @Input()\n  tipoRegistro: string;\n  @Input()\n  nombreTarea: string;\n\n  showDialog: boolean;\n\n  constructor (\n    public translateService: TranslateService,\n  ) { }\n\n  ngOnInit(): void {\n\n    this.showDialog = false;\n\n    if(this.mostrarPopup){\n      this.showDialog = true;\n    }\n  }\n\n  regresaPopup() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n}\n","@if(mostrarPopup){\n<p-dialog  header=\"{{ 'condicion' | translate }}\" [(visible)]=\"showDialog\" [modal]=\"true\"\n    appendTo=\"body\" [draggable]=\"false\" [resizable]=\"false\" (onHide)=\"regresaPopup()\"\n    [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '60vw'}\">\n\n    <app-input-helper-condicion-derecho [nombreTabla]=\"nombreTabla\" [descripcionTipo]=\"descripcionTipo\"\n        [llaveNumerica]=\"llaveNumerica\" [tipoRegistro]=\"tipoRegistro\">\n    </app-input-helper-condicion-derecho>\n\n</p-dialog>\n}\n\n@if(!mostrarPopup){\n<app-input-helper-condicion-derecho [nombreTabla]=\"nombreTabla\" [descripcionTipo]=\"descripcionTipo\"\n    [llaveNumerica]=\"llaveNumerica\" [tipoRegistro]=\"tipoRegistro\" [nombreTarea]=\"nombreTarea\">\n</app-input-helper-condicion-derecho>\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { InputHelperCondicionRolaccesoPage } from '../../../../../shared/componentes/input-helper-condicion-rolacceso/input-helper-condicion-rolacceso.page';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\n\n@Component({\n  selector: 'app-condicion-derecho-proceso-seleccion',\n  templateUrl: './condicion-derecho-proceso-seleccion.component.html',\n  styleUrl: './condicion-derecho-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent, TranslateModule,\n    ButtonDirective, Ripple, FormsModule, InputHelperCondicionRolaccesoPage\n  ],\n})\nexport class CondicionDerechoProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public nombreTablaCondDer: string;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public mostrarCondicionDerecho : boolean;\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.mostrarCondicionDerecho = true;\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'condiciondederecho' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <app-input-helper-condicion-rolacceso [nombreTabla]=\"nombreTablaCondDer\"\n    [descripcionTipo]=\"procesoSeleccionado.llaveTabla\">\n  </app-input-helper-condicion-rolacceso>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { TerceroTalentoModel } from '../../../../../modules/bienestar/models/TerceroTalentoModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\n\n@Component({\n  selector: 'app-jurados-proceso-seleccion',\n  templateUrl: './jurados-proceso-seleccion.component.html',\n  styleUrl: './jurados-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [NgIf, FormsModule, ReactiveFormsModule, InputTextModule, DropdownModule, CalendarModule,\n    InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, ConfirmPopupModule, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent, InputHelperHojaVidaComponent],\n})\nexport class JuradosProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public ocultarDetalleProcSel = new EventEmitter;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaEvaluadores: TerceroTalentoModel[] = [];\n  public nuevoRegistro: TerceroTalentoModel;\n  public nuevoJuradoPanel: boolean;\n  public clickGuardar: boolean;\n\n\n  constructor(private generalService: GeneralService, public listaConstantesPipe: ListaConstantesPipe, private confirmationService: ConfirmationService,\n    private toastService: ToastService, public utilsService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.nuevoJuradoPanel = false;\n    this.clickGuardar = false;\n    this.cargarListaEvaluadores();\n  }\n\n  async cargarListaEvaluadores() {\n    this.listaEvaluadores = await this.generalService.queryForList(new GeneralModel('TerceroTalentoDTO', null, false,\n      { origen: 'PROCESOSELEC_PRS', llaveBase: this.procesoSeleccionado.llaveTabla })).toPromise();\n  }\n\n  mostrarNuevoEvaluador() {\n    this.nuevoRegistro = new TerceroTalentoModel();\n    this.nuevoJuradoPanel = true;\n    this.clickGuardar = false;\n  }\n\n  cancelarNuevoEvaluador() {\n    this.nuevoRegistro = new TerceroTalentoModel();\n    this.nuevoJuradoPanel = false;\n  }\n\n  async crearNuevoEvaluador() {\n    this.clickGuardar = false;\n    if (!this.validarCampos()) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    this.nuevoRegistro.origen = 'PROCESOSELEC_PRS';\n    this.nuevoRegistro.llaveBase = this.procesoSeleccionado.llaveTabla;\n    let objeto: GeneralModel = new GeneralModel('TerceroTalentoDTO', null, false, this.nuevoRegistro);\n    this.generalService.crearRegistro(objeto).subscribe((data) => {\n      if (data != null) {\n        this.cargarListaEvaluadores();\n        this.cancelarNuevoEvaluador();\n        this.toastService.showSuccess(Constantes.MENSAJE_GUARDAR);\n      } else {\n        this.toastService.showError('Error en el método de actualizar recurso');\n      }\n    });\n  }\n\n  validarCampos() {\n    let validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.nuevoRegistro.identifica);\n    return validador;\n  }\n\n  onSelectJurado(event) {\n    this.nuevoRegistro.identifica = event.identifica;\n    this.nuevoRegistro.nombreIdentifica = event.nombreCompleto;\n  }\n\n  showEliminarEvaluadorConfirmDialog(evaluador: TerceroTalentoModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.eliminarEvaluador(evaluador);\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  eliminarEvaluador(evaluador: TerceroTalentoModel) {\n    let objetoFiltro: GeneralModel = new GeneralModel('TerceroTalentoDTO', null, false, evaluador);\n    this.generalService.delete(objetoFiltro).subscribe(data => {\n      let result: number = data;\n      if (result == 1) {\n        this.cargarListaEvaluadores();\n        this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n      } else {\n        this.toastService.showError('Error al eliminar el registro');\n      }\n    }, err => {\n      var data = JSON.stringify(err.error.mensajeEtiqueta);\n      if (data.includes('ORA-02292')) {\n        this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n      }\n    });\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'jurado' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <div class=\"flex justify-content-end\">\n    <button pButton label=\"{{'link_nuevo'| translate}}\"\n      class=\"p-ripple p-element p-button p-component  p-button-secondary mb-2\" type=\"button\"\n      (click)=\"mostrarNuevoEvaluador()\"><span class=\"glyphicons glyphicons-plus\"></span></button>\n  </div>\n  <p-table #tablaGeneralJurados id=\"tabla_jurados\" [value]=\"listaEvaluadores\" responsiveLayout=\"scroll\" [rows]=\"10\"\n    [paginator]=\"listaEvaluadores.length > 10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"listaEvaluadores.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n    [tableStyle]=\"{'min-width':'50rem'}\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    editMode=\"row\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 30%;\">{{ 'identificacion' | translate }}</th>\n        <th style=\"width: 30%;\">{{ 'nombre' | translate }}</th>\n        <th style=\"width: 30%;\">{{ 'email' | translate }}</th>\n        <th style=\"width: 10%;\"></th>\n        <!-- CAMPOS NUEVO REGISTRO -->\n      <tr class=\"TablaNuevoRegistro\" *ngIf=\"nuevoJuradoPanel\" style=\"width: 100%;\">\n        <!-- Hoja Vida -->\n        <td style=\"width: 30%;\">\n          <app-input-helper-hoja-vida (onSelected)=\"onSelectJurado($event)\"\n            [booleano]=\"nuevoRegistro.nombreIdentifica == null && clickGuardar\"\n            [label]=\"nuevoRegistro.nombreIdentifica != null ? nuevoRegistro.identifica +' - ' + nuevoRegistro.nombreIdentifica : null\">\n          </app-input-helper-hoja-vida>\n        </td>\n        <td style=\"width: 30%;\"></td>\n        <td style=\"width: 30%;\"></td>\n        <!-- BOTONES NUEVO REGISTRO -->\n        <td class=\"flex justify-content-end\">\n          <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 ml-3 mb-2 p-button p-component p-button-icon-only\"\n            (click)=\"crearNuevoEvaluador()\">\n          </button>\n          <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevoEvaluador()\"\n            class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\">\n          </button>\n        </td>\n      </tr>\n    </ng-template>\n    <!-- DATOS DE LA TABLA -->\n    <ng-template pTemplate=\"body\" let-evaluador>\n      <tr [pEditableRow]=\"evaluador\">\n        <td style=\"width:30%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"output\">{{evaluador.identifica}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n        <td style=\"width:30%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"output\">{{evaluador.nombreIdentifica}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n        <td style=\"width:30%;\">\n          <p-cellEditor style=\"width:100%;\">\n            <ng-template pTemplate=\"output\">{{evaluador.mailIdentifica}}\n            </ng-template>\n          </p-cellEditor>\n        </td>\n        <td class=\"flex justify-content-end\">\n          <!-- BOTONES -->\n          <!-- ELIMINAR -->\n          <button pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n            (click)=\"showEliminarEvaluadorConfirmDialog(evaluador)\"\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>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n<p-confirmPopup></p-confirmPopup>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService } from 'primeng/api';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { ReclamacionProcesoModel } from '../../../models/ReclamacionProcesoModel';\nimport { PopupReclamacionProcesoComponent } from '../../../popups/popup-reclamacion-proceso/popup-reclamacion-proceso.component';\n\n@Component({\n  selector: 'app-reclamacion-proceso-seleccion',\n  templateUrl: './reclamacion-proceso-seleccion.component.html',\n  styleUrl: './reclamacion-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, InputTextModule, DropdownModule, CalendarModule,\n    InputTextareaModule, TableModule, TemplateTablaVaciaComponent, TranslateModule, ConfirmPopupModule, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent, PopupReclamacionProcesoComponent],\n})\nexport class ReclamacionProcesoSeleccionComponent implements OnInit {\n\n  @ViewChild(PopupReclamacionProcesoComponent) popupReclamacionProcesoComponent: PopupReclamacionProcesoComponent;\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listadoReclamacion: ReclamacionProcesoModel[];\n  public verPopupReclamacion: boolean;\n  public reclamacionSeleccionada: ReclamacionProcesoModel;\n\n\n  constructor(private generalService: GeneralService, public listaConstantesPipe: ListaConstantesPipe, private confirmationService: ConfirmationService,\n    private toastService: ToastService, public utilsService: UtilsService\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n\n  cargar() {\n    this.verPopupReclamacion = false;\n    this.listadoReclamacion = [];\n  }\n\n  async cargarListaReclamacion() {\n    let objetoFiltro: GeneralModel = new GeneralModel('ReclamacionProcesoDTO', null, false, { procesoSeleccion: this.procesoSeleccionado.llaveTabla, origen: 'CANDIDATO_CAN' });\n    this.listadoReclamacion = await this.generalService.queryForList(objetoFiltro).toPromise();\n  }\n\n  async verReclamacion(event) {\n    if (event) {\n      this.reclamacionSeleccionada = new ReclamacionProcesoModel();\n      this.reclamacionSeleccionada = event.data;\n      this.verPopupReclamacion = true;\n      const sleep = (m) => new Promise((r) => setTimeout(r, m));\n      await sleep(50);\n      this.popupReclamacionProcesoComponent.traerReclamacion(this.reclamacionSeleccionada, true);\n    }\n  }\n\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n\n  async regresarVista() {\n    this.regresar.emit();\n  }\n\n  regresarPopupReclamacion() {\n    this.verPopupReclamacion = false;\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'reclamacion' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <p-table #tablaGeneral id=\"tabla_listado_reclamacion\" [value]=\"listadoReclamacion\" responsiveLayout=\"scroll\"\n    [rows]=\"10\" [paginator]=\"listadoReclamacion.length > 10\" [totalRecords]=\"listadoReclamacion.length\"\n    scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    selectionMode=\"single\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    [showCurrentPageReport]=\"true\" dataKey=\"llaveTabla\" (onRowSelect)=\"verReclamacion($event)\">\n\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{'descripcion' | translate}}</th>\n        <th>{{'estado' | translate}}</th>\n      </tr>\n    </ng-template>\n\n    <ng-template pTemplate=\"body\" let-item>\n      <tr [pSelectableRow]=\"item\">\n        <td>{{item.nombreCandidato}}</td>\n        <td>{{item.fechaSolicitud}}</td>\n      </tr>\n    </ng-template>\n\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n@if(verPopupReclamacion){\n  <app-popup-reclamacion-proceso (regresar)=\"regresarPopupReclamacion()\"> </app-popup-reclamacion-proceso>\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { DatePipe, NgFor, NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { SeleccionableWrapper } from '../../../../../modules/compensacion/models/SeleccionableWrapperModel';\nimport { CeldaModel } from '../../../models/CeldaModel';\nimport { MedioProcesoSeleccionModel } from '../../../models/MedioProcesoSeleccionModel';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\n\n@Component({\n  selector: 'app-medios-asistente-proceso-seleccion',\n  templateUrl: './medios-asistente-proceso-seleccion.component.html',\n  styleUrl: './medios-asistente-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,\n    DatePipe, FileUploadModule, CheckboxModule, ConfirmPopupModule, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent, NgFor\n  ],\n})\nexport class MediosAsistenteProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaRegistrosMediosAsist: SeleccionableWrapper [] = [];\n  public listaEncabezadosMediosAsist: CeldaModel[] = [];\n  public medioProceso: EtapaProcesoModel;\n  public verPopupMediosAsistente: boolean;\n\n  constructor(private generalService: GeneralService, public listaConstantesPipe: ListaConstantesPipe, private confirmationService: ConfirmationService,\n    private toastService: ToastService, public utilsService: UtilsService, private procesoSeleccionService: ProcesoSeleccionService,\n  ) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.cargarEncabezadosMediosAsistente();\n  }\n\n  async cargarEncabezadosMediosAsistente() {\n    this.listaRegistrosMediosAsist = [];\n    this.listaEncabezadosMediosAsist = [];\n    let medioAsistente = new MedioProcesoSeleccionModel();\n    medioAsistente.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n    this.listaEncabezadosMediosAsist = await this.procesoSeleccionService.cargarEncabezadosMedioAsistente({ medioAsistente: medioAsistente }).toPromise();\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'CandidatoDTO', null, this.listaEncabezadosMediosAsist, { llaveProceso: this.procesoSeleccionado.llaveTabla }, null);\n    this.procesoSeleccionService.cargarMediosPorAsistente(objParametros).subscribe(data => {\n      if (data?.resultado) {\n        this.listaRegistrosMediosAsist = data.resultado;\n      }\n    });\n  }\n\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n  verMedioAsistente(objeto) {\n    this.medioProceso = new EtapaProcesoModel();\n    this.medioProceso = objeto.unionDTO;\n    this.verPopupMediosAsistente = true;\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'medio' | translate}} {{'por' | translate}} {{'asistente' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <p-table #tablaMediosAsistente id=\"tabla_medios_asistente\" [value]=\"listaRegistrosMediosAsist\"\n    responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listaRegistrosMediosAsist.length > 10\"\n    scrollDirection=\"horizontal\" [rowsPerPageOptions]=\"[10, 20, 50]\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"listaRegistrosMediosAsist.length\" [showCurrentPageReport]=\"true\"\n    [tableStyle]=\"{'min-width':'50rem'}\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th *ngFor=\"let encabezado of listaEncabezadosMediosAsist\">{{ encabezado.valor }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-wrapper>\n      <tr>\n        <td *ngFor=\"let objeto of wrapper\">\n          <span *ngIf=\"objeto.valor != 'P' && objeto.valor != 'C' && objeto.valor && 'E' \">{{ objeto.valor\n            }}</span>\n          <button *ngIf=\"objeto.valor == 'P' || objeto.valor == 'C' || objeto.valor == 'A'\"\n            (click)=\"verMedioAsistente(objeto)\" class=\"btn-icon\">\n            <span *ngIf=\"objeto.valor == 'P'\" class=\"glyphicons glyphicons-unchecked\"></span>\n            <span *ngIf=\"objeto.valor == 'E'\" class=\"glyphicons glyphicons-edit\"></span>\n            <span *ngIf=\"objeto.valor == 'C'\" class=\"glyphicons glyphicons-check\"></span>\n          </button>\n          <span *ngIf=\"objeto.fecha != null\" class=\"ml-3\">{{ objeto.fecha | date:\n            ('formatofecha'|translate)}}</span>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FiltroGeneralComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\n\n@Component({\n  selector: 'app-candidatos-externos-proceso-seleccion',\n  templateUrl: './candidatos-externos-proceso-seleccion.component.html',\n  styleUrl: './candidatos-externos-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [NgIf, FormsModule, ReactiveFormsModule, InputTextModule, DropdownModule, CalendarModule,\n    InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, ConfirmPopupModule, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent, FiltroGeneralComponent],\n\n})\nexport class CandidatosExternosProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public ocultarDetalleProcSel = new EventEmitter;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaCandidatosExternos : any;\n  filters = [];\n\n  constructor(private generalService: GeneralService, public listaConstantesPipe: ListaConstantesPipe, private confirmationService: ConfirmationService,\n    private toastService: ToastService, public utilsService: UtilsService, private translateService: TranslateService\n  ) { }\n\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.listaCandidatosExternos = [];\n    this.crearFiltro();\n  }\n\n  crearFiltro(){\n    this.filters = [\n      {\n        field: 'comodinBusqueda',\n        header: this.translateService.instant('busqueda') ,\n        matchMode: 'contains',\n      },\n    ]\n  }\n\n  cargarListaCandidatosExternos(event) {\n    console.log(event);\n  }\n\n  cargarListaFiltro(event){\n    this.cargarListaCandidatosExternos(event);\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n  inscribir(){\n\n  }\n\n  noAdmitir(){\n\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'candidatosexternos' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <div class=\"flex justify-content-between align-items-center mb-1\">\n    <app-filtro-general #filtroCandExterno [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltro($event)\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"p-fluid p p-formgrid grid\">\n            <div class=\"field col-12\">\n              <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"comodinBusqueda\" formControlName=\"comodinBusqueda\"\n                  maxlength=\"50\" [readonly]=\"true\">\n                <label for=\"comodinBusqueda\">{{'busqueda' | translate}} </label>\n              </span>\n            </div>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n\n    <div class=\"flex justify-content-end\">\n      <button pButton pRipple (click)=\"inscribir()\" label=\"{{'inscribir'| translate}}\" icon=\"pi pi-plus\"\n        class=\"p-button-raised flex-shrink-0 mb-2 mr-2\">\n      </button>\n      <button pButton pRipple (click)=\"noAdmitir()\" label=\"{{'noadmitir'| translate}}\" icon=\"pi pi-times\"\n        class=\"p-button-outlined flex-shrink-0 mb-2\">\n      </button>\n    </div>\n  </div>\n\n  <p-table #tablaGeneral id=\"tablaCandidatosExternos\" [value]=\"listaCandidatosExternos\" responsiveLayout=\"scroll\" [rows]=\"10\"\n    [paginator]=\"listaCandidatosExternos.length > 10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"listaCandidatosExternos.length\" [scrollable]=\"true\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n      <tr style=\"width: 100%;\">\n        <th style=\"width: 20%;\"></th>\n        <th style=\"width: 20%;\">{{ 'identificacion' | translate }}</th>\n        <th style=\"width: 20%;\">{{ 'nombre' | translate }}</th>\n        <th style=\"width: 20%;\">{{ 'telefono' | translate }}</th>\n        <th style=\"width: 20%;\">{{ 'opciones' | translate }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-registro>\n      <tr [pSelectableRow]=\"registro\" style=\"width: 100%;\">\n        <td style=\"width: 20%;\">{{registro.numero}}</td>\n        <td style=\"width: 20%;\">{{registro.consecutivoReq}}</td>\n        <td style=\"width: 20%;\">{{registro.fechainicio}}</td>\n        <td style=\"width: 20%;\">{{registro.descripcionEstado}}</td>\n        <td style=\"width: 20%;\">{{registro.tipoGrupo}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n\n\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { ParametrosGeneralModel, ToastService, UtilsService, GeneralModel } from 'general-library-union';\nimport { DatePipe, NgFor, NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { SeleccionableWrapper } from '../../../../../modules/compensacion/models/SeleccionableWrapperModel';\nimport { CeldaModel } from '../../../models/CeldaModel';\nimport { CandidatoModel } from '../../../models/CandidatoModel';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { EtapaProcesoService } from '../../../services/etapa-proceso.service';\nimport { PopupEtapaProcesoComponent } from '../../../popups/popup-etapa-proceso/popup-etapa-proceso.component';\n\n@Component({\n  selector: 'app-etapas-asistente-proceso-seleccion',\n  templateUrl: './etapa-asistente-proceso-seleccion.component.html',\n  styleUrl: './etapa-asistente-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, FormsModule, ReactiveFormsModule, InputTextModule,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,\n    DatePipe, FileUploadModule, CheckboxModule, ConfirmPopupModule, ProcesoSeleccionMenuPage,\n    DetalleProcesoSeleccionComponent, NgFor, PopupEtapaProcesoComponent],\n})\nexport class EtapaAsistenteProcesoSeleccionComponent implements OnInit {\n\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public etapaProceso: EtapaProcesoModel;\n  public listaEncabezadosEtapasAsist : CeldaModel[] = [];\n  public listaRegistrosEtapasAsist: SeleccionableWrapper[] = [];\n  public listaEncabezadosEtapasAsistente : any;\n  public verPopupEtapaProceso: boolean;\n\n  constructor(private generalService: GeneralService, public listaConstantesPipe: ListaConstantesPipe, private confirmationService: ConfirmationService,\n    private toastService: ToastService, public utilsService: UtilsService, private procesoSeleccionService: ProcesoSeleccionService,\n    private etapaProcesoService: EtapaProcesoService,\n  ) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.cargarEncabezadosEtapasAsistente();\n  }\n\n  async cargarEncabezadosEtapasAsistente() {\n    this.listaEncabezadosEtapasAsist = [];\n    this.listaRegistrosEtapasAsist = [];\n    let etapaAsistente = new EtapaProcesoModel();\n    etapaAsistente.procesoSeleccion = this.procesoSeleccionado.llaveTabla;\n    this.listaEncabezadosEtapasAsist = await this.etapaProcesoService.cargarEncabezadosEtapasAsistente({ etapaProceso: etapaAsistente }).toPromise();\n    let candidatos: CandidatoModel[] = [];\n    candidatos = await this.generalService.queryForList(new GeneralModel('CandidatoDTO', null, false, { procesoseleccion: this.procesoSeleccionado.llaveTabla })).toPromise();\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'CandidatoDTO', null, candidatos, { llaveProceso: this.procesoSeleccionado.llaveTabla }, null);\n    this.etapaProcesoService.cargarEtapasPorAsistente(objParametros).subscribe(data => {\n      if (data?.resultado) {\n        this.listaRegistrosEtapasAsist = data.resultado;\n      }\n    });\n  }\n\n  verEtapaAsistente(objeto) {\n    this.etapaProceso = new EtapaProcesoModel();\n    this.etapaProceso = objeto.unionDTO;\n    this.verPopupEtapaProceso = true;\n  }\n\n  regresarPopupEtapaProceso() {\n    this.cargarEncabezadosEtapasAsistente();\n    this.verPopupEtapaProceso = false;\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'etapa' | translate}} {{'por' | translate}} {{'asistente' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <p-table #tablaEtapasAsistente id=\"tabla_etapas_asistente\" responsiveLayout=\"scroll\"\n    [value]=\"listaRegistrosEtapasAsist\" [rows]=\"10\" [paginator]=\"listaRegistrosEtapasAsist.length > 10\"\n    scrollDirection=\"horizontal\" [rowsPerPageOptions]=\"[10, 20, 50]\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"listaRegistrosEtapasAsist.length\" [showCurrentPageReport]=\"true\"\n    [tableStyle]=\"{'min-width':'50rem'}\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th *ngFor=\"let encabezado of listaEncabezadosEtapasAsist\">{{ encabezado.valor }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-wrapper>\n      <tr>\n        <td *ngFor=\"let objeto of wrapper\">\n          <span *ngIf=\"objeto.valor != 'P'\">{{ objeto.valor }}</span>\n          <button *ngIf=\"objeto.valor == 'P' || objeto.valor == 'N' || objeto.valor == 'X'\"\n            (click)=\"verEtapaAsistente(objeto)\" class=\"btn-icon\">\n            <span *ngIf=\"objeto.valor == 'P'\" class=\"glyphicons glyphicons-user-add\"></span>\n            <span *ngIf=\"objeto.valor != 'P'\" class=\"glyphicons glyphicons-user\"></span>\n            <span *ngIf=\"objeto.valor == 'X'\" class=\"btn_ok\"></span>\n          </button>\n          <span *ngIf=\"objeto.fecha != null\" class=\"ml-3\">{{ objeto.fecha | date:\n            ('formatofecha'|translate)}}</span>\n        </td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n<div *ngIf=\"verPopupEtapaProceso\">\n  <app-popup-etapa-proceso [mostrarPopup]=\"verPopupEtapaProceso\" [etapaProcesoSeleccionada]=\"etapaProceso\"\n    (regresar)=\"regresarPopupEtapaProceso()\"></app-popup-etapa-proceso>\n</div>\n","import { DatePipe, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, GeneralService, ParametrosGeneralModel, ToastService, UnionModel, UtilsService } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { SeleccionableWrapper } from '../../../../../modules/compensacion/models/SeleccionableWrapperModel';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { EtapaProcesoService } from '../../../services/etapa-proceso.service';\nimport { PopupEtapaProcesoComponent } from '../../../popups/popup-etapa-proceso/popup-etapa-proceso.component';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@Component({\n  selector: 'app-registro-citacion-proceso-seleccion',\n  templateUrl: './registro-citacion-proceso-seleccion.component.html',\n  styleUrl: './registro-citacion-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, PrimeTemplate, FormsModule,\n    ReactiveFormsModule, InputTextModule, NgIf, DropdownModule, TableModule, TemplateTablaVaciaComponent, TranslateModule,\n    InputTextareaModule, PaginatorModule, CalendarModule, FileUploadModule,\n    ProcesoSeleccionMenuPage, DetalleProcesoSeleccionComponent, FiltroGeneralComponent,\n    InputHelperHojaVidaComponent, PopupEtapaProcesoComponent, DatePipe, CheckboxModule],\n})\nexport class RegistroCitacionProcesoSeleccionComponent implements OnInit {\n\n  @ViewChild('filtroRegistroCitacion') filtroRegistroCitacion: FiltroGeneralComponent;\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Input() public requerimiento: RequerimientoPersonalModel;\n  @Output() public regresar = new EventEmitter;\n  @Output() public irTarea = new EventEmitter;\n  public listaSelectCitacion: UnionModel[] = [];\n  public listaCitacionWrapper: SeleccionableWrapper[] = [];\n  public citacionesSeleccionadas: EtapaProcesoModel[] = [];\n  public candidatosSeleccionados: EtapaProcesoModel[] = [];\n  public etapaProceso: EtapaProcesoModel;\n  public filtroIdentifica: string;\n  public filtroIdentificaResponsable: string;\n  public filtroNombreResponsable: string;\n  public filtroNombre: string;\n  public filtroEstadoEtapa: string;\n  public filtroEtapa: string;\n  public verPopupEtapaProceso: boolean;\n  public listaEtapasCitacion: any;\n\n  paginatorRegistroCitacion = { rows: 10, totalRecords: 0 };\n  filtersCitacion = [];\n\n  constructor(private generalService: GeneralService, private toastService: ToastService,\n    public utilsService: UtilsService, private cargarMapas: cargarmapasGlobal, private authService: AuthService,\n    private confirmationService: ConfirmationService, public translateService: TranslateService,\n    public listaConstantesPipe: ListaConstantesPipe, private procesoSeleccionService: ProcesoSeleccionService,\n    private etapaProcesoService: EtapaProcesoService) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.listaEtapasCitacion = [];\n    this.crearFiltroCitacion();\n    this.cargarListaEtapasCitacion();\n  }\n\n  crearFiltroCitacion() {\n    this.filtersCitacion = [\n      {\n        field: 'identificacion',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nombreCompleto',\n        header: this.translateService.instant('nombrepersona'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'identificacionResponsable',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nombreCompletoResponsable',\n        header: this.translateService.instant('nombrepersona'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'filtroFechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equals',\n        formatDate: true\n      },\n      {\n        field: 'filtroFechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'estadoEtapa',\n        header: this.translateService.instant('estado') + Constantes.ESPACIO_BLANCO + this.translateService.instant('etapa'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'etapa',\n        header: this.translateService.instant('etapa'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  async cargarListaEtapasCitacion() {\n    this.listaEtapasCitacion = await this.cargarMapas.cargarSelectItemString('tipoActividad', 'nombreEtapa', new GeneralModel('EtapaProcesoDTO', null, false,\n      { procesoSeleccion: this.procesoSeleccionado.llaveTabla, individual: 'W', origen: Constantes.CONSTANTE_SI, tipoEtapa: 'citacion' }));\n  }\n\n  async cargarMostrarCitacion(event) {\n    let citacionFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      procesoSeleccion: this.procesoSeleccionado.llaveTabla,\n      individual: Constantes.CONSTANTE_SI,\n      fechaInicioCitacion: event.filters?.filtroFechaInicial?.value ? event.filters?.filtroFechaInicial?.value : null,\n      fechaFinCitacion: event.filters?.filtroFechaFinal?.value ? event?.filters.filtroFechaFinal?.value : null,\n      tipoActividad: event.filters?.tipoActividad?.value ? event.filters?.tipoActividad?.value : null,\n      origen: event.filters?.tipoActividad?.value ? Constantes.CONSTANTE_SI : null,\n    };\n\n    let objCitacion = new GeneralModel('EtapaProcesoDTO', null, false, citacionFiltro);\n    this.paginatorRegistroCitacion.totalRecords = await this.generalService.cantidadRegistros(objCitacion).toPromise();\n\n    this.procesoSeleccionService.obtenerListaCitacion({ citacion: citacionFiltro }).subscribe(data => {\n      this.listaCitacionWrapper = [];\n      this.listaSelectCitacion = [];\n      this.citacionesSeleccionadas = [];\n      this.listaCitacionWrapper = data?.resultado;\n      this.listaCitacionWrapper.forEach(wrapper => {\n        let objWrapper: any;\n        objWrapper = wrapper.unionDTO;\n        objWrapper.check = wrapper.seleccionar ? true : false;\n        this.listaSelectCitacion.push(objWrapper);\n      });\n    });\n  }\n\n  async notificarRegistroCitacion() {\n    this.candidatosSeleccionados = [];\n    this.listaSelectCitacion.forEach(registro => {\n      if (registro.check) {\n        let registroCitacion: any = registro;\n        let objCitacion: EtapaProcesoModel = new EtapaProcesoModel();\n        objCitacion = registroCitacion;\n        this.candidatosSeleccionados.push(objCitacion);\n        registro.check = false;\n      }\n    });\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'EtapaProcesoDTO', null, this.candidatosSeleccionados, {\n      llaveProceso: this.procesoSeleccionado.llaveTabla, login: this.authService.getTokenKey('usuario'),\n      nombreEmpresa: this.authService.getTokenKey('nombreEmpresa'), llaveEmpresa: this.authService.getTokenKey('llaveEmpresa'), llaveRol: this.authService.getTokenKey('llaveRol')\n    }, null);\n    this.etapaProcesoService.notificarCitacion(objParametros).subscribe(data => {\n      if (data?.resultado?.lista != null) {\n        let mensajeActual: string = Constantes.ESPACIO_NULO;\n        let mensaje: string = Constantes.ESPACIO_NULO;\n        let listaWrapper = data?.resultado.lista;\n        listaWrapper.forEach(wrapper => {\n          let objWrapper: any;\n          objWrapper = wrapper.unionDTO;\n          if (mensajeActual == Constantes.ESPACIO_NULO) {\n            mensajeActual = wrapper.valor;\n            mensaje += `${mensajeActual}:`;\n          }\n          if (mensajeActual.toUpperCase() != wrapper.valor.toUpperCase()) {\n            mensaje += `\\n${mensajeActual}:`;\n          }\n          mensaje += `\\n${objWrapper.nombres}`;\n        });\n        this.toastService.showSuccess('Se presentaron los siguientes problemas al realizar las notificaciones\\n' + mensaje);\n      } else {\n        this.toastService.showSuccess('Las notificaciones fueron enviadas correctamente');\n      }\n    });\n  }\n\n  seleccionRegistroCitacion(event) {\n    this.etapaProceso = new EtapaProcesoModel();\n    this.etapaProceso = event.data;\n    this.verPopupEtapaProceso = true;\n  }\n\n  onSelectIdentificacionPersonaFiltro(event) {\n    if (event != null) {\n      this.filtroIdentifica = event.documento;\n      this.filtroNombre = event.nombreCompleto;\n    }\n  }\n\n  onSelectIdentificacionResponsableFiltro(event) {\n    if (event != null) {\n      this.filtroIdentificaResponsable = event.documento;\n      this.filtroNombreResponsable = event.nombreCompleto;\n    }\n  }\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      this.irTarea.emit(event);\n    }\n  }\n\n  regresarVista() {\n    this.regresar.emit();\n  }\n\n  regresarPopupEtapaProceso() {\n    this.verPopupEtapaProceso = false;\n  }\n\n  obtenerEstado(estadoInt: string): string {\n    let cadena: string = '';\n    this.listaConstantesPipe.ESTADOETAPAPROCESO.forEach(element => {\n      if (element.codigo === estadoInt.trim()) {\n        cadena = element.nombre;\n      }\n    });\n    return cadena;\n  }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n  <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n  <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVista()\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n</div>\n\n<app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\" [procesoSeleccionado]=\"procesoSeleccionado\"\n  [requerimiento]=\"requerimiento\"></app-proceso-seleccion-menu>\n\n<div class=\"flex aling-items-center justify-content-between align-items-center\">\n  <h4 class=\"text-xl mt-4\">{{'registro' | translate}} {{'citacion' | translate}}</h4>\n</div>\n\n<!-- PANEL DETALLE -->\n<div>\n  <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n</div>\n\n<div class=\"mt-5\">\n  <div class=\"flex justify-content-between align-items-center\">\n    <app-filtro-general #filtroRegistroCitacion [filtros]=\"filtersCitacion\" [datatable]=\"tablaRegistroCitacion\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"p-fluid p p-formgrid grid\">\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"identificacion\" formControlName=\"identificacion\"\n                  [(ngModel)]=\"this.filtroIdentifica\" maxlength=\"14\" [readonly]=\"true\">\n                <label for=\"identificacion\">{{'identificacion' | translate}} </label>\n              </span>\n            </div>\n\n            <div class=\"field col-12 md:col-8 lg:col-8\">\n              <span class=\"p-float-label\">\n                <app-input-helper-hoja-vida [ocultarBtnLimpiar]=\"true\"\n                  [header]=\"this.translateService.instant('identificacion')\"\n                  [label]=\"this.filtroIdentifica != null ? this.filtroNombre : ''\" formControlName=\"nombreCompleto\"\n                  (onSelected)=\"onSelectIdentificacionPersonaFiltro($event)\">\n                </app-input-helper-hoja-vida>\n              </span>\n            </div>\n          </div>\n          <div class=\"p-fluid p p-formgrid grid\">\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n              <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"identificacion\" formControlName=\"identificacionResponsable\"\n                  [(ngModel)]=\"this.filtroIdentificaResponsable\" maxlength=\"14\" [readonly]=\"true\">\n                <label for=\"identificacion\">{{'identificacion' | translate}} </label>\n              </span>\n            </div>\n\n            <div class=\"field col-12 md:col-8 lg:col-8\">\n              <span class=\"p-float-label\">\n                <app-input-helper-hoja-vida [ocultarBtnLimpiar]=\"true\"\n                  [header]=\"this.translateService.instant('responsable')\"\n                  [label]=\"this.filtroIdentificaResponsable != null ? this.filtroNombreResponsable : ''\"\n                  formControlName=\"nombreCompletoResponsable\"\n                  (onSelected)=\"onSelectIdentificacionResponsableFiltro($event)\">\n                </app-input-helper-hoja-vida>\n              </span>\n            </div>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"filtroFechaInicial\" formControlName=\"filtroFechaInicial\" dateFormat=\"dd/mm/yy\"\n                [showIcon]=\"true\"></p-calendar>\n              <label for=\"filtroFechaInicial\">{{'fechainicial' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-calendar id=\"filtroFechaFinal\" formControlName=\"filtroFechaFinal\" dateFormat=\"dd/mm/yy\"\n                [showIcon]=\"true\"></p-calendar>\n              <label for=\"filtroFechaFinal\">{{'fechafinal' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-dropdown [options]=\"listaConstantesPipe.ESTADOETAPAPROCESO\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                formControlName=\"estadoEtapa\" [autoDisplayFirst]=\"false\" [showClear]=\"true\"\n                [(ngModel)]=\"filtroEstadoEtapa\" appendTo=\"body\"></p-dropdown>\n              <label for=\"estadoEtapa\">{{'estado' | translate}} {{'etapa' | translate}}</label>\n            </span>\n          </div>\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-dropdown [options]=\"listaEtapasCitacion\" optionLabel=\"label\" optionValue=\"key\" formControlName=\"etapa\"\n                appendTo=\"body\" [autoDisplayFirst]=\"false\" [showClear]=\"true\" [(ngModel)]=\"filtroEtapa\"></p-dropdown>\n              <label for=\"etapa\">{{'etapa' | translate}}</label>\n            </span>\n          </div>\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n\n    <div class=\"flex justify-content-end mt-2 mb-2\">\n      <button pButton pRipple label=\"{{'link_notificar'| translate}}\" (click)=\"notificarRegistroCitacion()\"\n        class=\"p-button p-button-raised\" type=\"button\" icon=\"glyphicons glyphicons-envelope\"></button>\n    </div>\n  </div>\n\n  <p-table #tablaRegistroCitacion id=\"tabla_registro_citacion\" [value]=\"listaSelectCitacion\" responsiveLayout=\"scroll\"\n    selectionMode=\"single\" [rows]=\"paginatorRegistroCitacion.rows\"\n    [paginator]=\"paginatorRegistroCitacion.totalRecords > paginatorRegistroCitacion.rows\" scrollDirection=\"horizontal\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" styleClass=\"p-datatable-striped\"\n    [totalRecords]=\"paginatorRegistroCitacion.totalRecords\" (onRowSelect)=\"seleccionRegistroCitacion($event)\"\n    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'50rem'}\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    (onLazyLoad)=\"cargarMostrarCitacion($event)\" [lazy]=\"true\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th style=\"width: 3%;\" *ngIf=\"0 < listaSelectCitacion.length\">\n        </th>\n        <th style=\"width: 8%;\">{{'identificacion' | translate}}</th>\n        <th style=\"width: 10%;\">{{'nombre' | translate}}</th>\n        <th style=\"width: 15%;\">{{'etapa' | translate}}</th>\n        <th style=\"width: 10%;\">{{'fecha' | translate}}</th>\n        <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n      </tr>\n      <th>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-citacion>\n      <tr [pSelectableRow]=\"citacion\">\n        <td style=\"width: 3%;\" *ngIf=\"0 < listaSelectCitacion.length\">\n          <div class=\"field-checkbox\">\n            <p-checkbox [binary]=\"true\" [(ngModel)]=\"citacion.check\">\n            </p-checkbox>\n          </div>\n        </td>\n        <td style=\"width: 8%;\">{{citacion.documentoEmpleado}}</td>\n        <td style=\"width: 10%;\">{{citacion.nombres}}</td>\n        <td style=\"width: 15%;\">{{citacion.nombreEtapa}}</td>\n        <td style=\"width: 10%;\">{{citacion.fechaInicial| date: ('formatofecha' | translate)}}</td>\n        <td style=\"width: 10%;\">{{obtenerEstado(citacion.estado)}}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</div>\n<div *ngIf=\"verPopupEtapaProceso\">\n  <app-popup-etapa-proceso [mostrarPopup]=\"verPopupEtapaProceso\" [etapaProcesoSeleccionada]=\"etapaProceso\"\n    (regresar)=\"regresarPopupEtapaProceso()\"></app-popup-etapa-proceso>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { GeneralService, GeneralModel, ToastService, CargarControlFuncionalidadService, FiltroGeneralComponent, ParametrosGeneralModel, AuthService } from 'general-library-union';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { EvaluacionesPipe } from '../../pipes/evaluaciones.pipe';\nimport { RequerimientoPersonalModel } from '../../models/RequerimientoPersonalModel';\nimport { WorkflowPipe } from '../../../../shared/pipes/workflow.pipe';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { ProcesoSeleccionModel } from '../../models/ProcesoSeleccionModel';\nimport { EmpleadoModel } from '../../../../modules/compensacion/models/EmpleadoModel';\nimport { EmpresaModel } from '../../../../modules/hojavida/models/EmpresaModel';\nimport { cargarmapasGlobal } from '../../../../shared/servicios/cargar-mapas.service';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { ProcesoSeleccionService } from '../../services/proceso-seleccion.service';\n\n@Component({\n  selector: 'app-popup-invitacion-proceso-seleccion',\n  templateUrl: './popup-invitacion-proceso-seleccion.component.html',\n  styleUrl: './popup-invitacion-proceso-seleccion.component.scss',\n  standalone: true,\n  imports: [DialogModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule,\n    CalendarModule, DropdownModule, CheckboxModule, InputTextareaModule, InputTextModule,\n    DatePipe, TranslateModule, FiltroGeneralComponent, InputHelperUnidadComponent],\n\n})\nexport class PopupInvitacionProcesoSeleccionComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @Input() requerimiento: RequerimientoPersonalModel;\n  @Input() procesoSeleccion: ProcesoSeleccionModel;\n  @Input() filtrarUnidad: boolean;\n  @Input() showDialog: boolean;\n  @Input() porJurados: boolean;\n  @Output() public regresar = new EventEmitter;\n\n  public cargo: string;\n  public unidad: string;\n  public nombreUnidad: string;\n  public empresaFiltroSel: number;\n  public empleado: EmpleadoModel;\n  public seleccionar: boolean = true;\n  public seleccionarTodo: boolean = false;\n  public listaInvitacion: EmpleadoModel[] = [];\n  public listaEmpresa: any;\n  public listaCargos: any;\n  public objEmpresaFiltroGeneral: any;\n  public objCargoFiltroGeneral: any;\n  public loading: boolean = false;\n\n  filters = [];\n\n  constructor(private generalService: GeneralService, private listaConstantesPipe: ListaConstantesPipe, private translateService: TranslateService,\n    private evaluacionesPipe: EvaluacionesPipe, private formBuilder: FormBuilder, private notificacionesService: ToastService, private workflowPipe: WorkflowPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService, private cargarSelectItem: cargarmapasGlobal, private procesoSeleccionService : ProcesoSeleccionService,\n    private authService: AuthService,) { }\n\n  ngOnInit(): void {\n    this.cargar();\n  }\n\n  cargar() {\n    this.empleado = new EmpleadoModel();\n    this.listaEmpresa = [];\n    this.crearFiltro();\n    this.cargarListaEmpresa();\n    if (this.filtrarUnidad) {\n      this.empleado.empresa = this.procesoSeleccion.empresa;\n      this.empleado.filtroUnidadComodin = 'S';\n    }\n  }\n\n  crearFiltro() {\n    this.filters = [\n      {\n        field: 'empresa',\n        header: this.translateService.instant('empresa'),\n        values: (value) => this.objEmpresaFiltroGeneral[value],\n        matchMode: 'equal',\n      },\n      {\n        field: 'unidad',\n        header: this.translateService.instant('unidad'),\n        matchMode: 'equals',\n      },\n      {\n        field: 'cargo',\n        header: this.translateService.instant('cargo'),\n        values: (value) => this.objCargoFiltroGeneral[value],\n        matchMode: 'equal',\n      },\n    ];\n  }\n\n  async cargarListaInvitados(event) {\n    if (event?.empresa?.value && event?.unidad?.value && event?.cargo?.value) {\n      let filtro = {\n        filtro: this.procesoSeleccion.filtro,\n        soloActivos: Constantes.CONSTANTE_SI,\n        empresa: event?.empresa?.value ? event?.empresa?.value : null,\n        cargo: event?.cargo?.value ? event?.cargo?.value : null,\n        unidad: event?.unidad?.value ? event?.unidad?.value : null,\n      };\n      this.listaInvitacion = await this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, filtro)).toPromise();\n    } else {\n      this.listaInvitacion = [];\n    }\n  }\n\n  seleccionCargo(event) {\n    if (event?.value) {\n      this.cargo = event.value;\n    }\n  }\n\n  async cargarListaEmpresa() {\n    this.listaEmpresa = await this.cargarSelectItem.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, new EmpresaModel()));\n    this.objEmpresaFiltroGeneral = await this.listaEmpresa.reduce((obj, empresa) => {\n      obj[empresa.key] = empresa.label;\n      return obj;\n    }, {});\n  }\n\n  seleccionEmpresa(event) {\n    if (event?.value) {\n      this.empresaFiltroSel = event.value;\n    } else {\n      this.empresaFiltroSel = null;\n    }\n    this.unidad = null;\n    this.nombreUnidad = null;\n    this.cargo = null;\n  }\n\n  async cargarListaCargos() {\n    this.listaCargos = await this.cargarSelectItem.cargarSelectItemString('cargo', 'descripcion', new GeneralModel('CargoDTO', 'Cargo.consultaCargoRelacionadosConUnidad', false, { empresa: this.empresaFiltroSel, unidad: this.unidad }));\n    this.objCargoFiltroGeneral = await this.listaCargos.reduce((obj, cargo) => {\n      obj[cargo.key] = cargo.label;\n      return obj;\n    }, {});\n  }\n\n  cambiarEstadoTodosCheck() {\n    if (this.seleccionar) {\n      this.seleccionar = false;\n      for (let per of this.listaInvitacion) {\n        per.check = true;\n      }\n    } else {\n      this.seleccionar = true;\n      for (let per of this.listaInvitacion) {\n        per.check = false;\n      }\n    }\n    return null;\n  }\n\n  regresarVista() {\n    this.showDialog = false;\n    this.regresar.emit();\n  }\n\n  onSeleccionarIndiv(registro) {\n    let isvalidar = false;\n    for (let reg of this.listaInvitacion) {\n      if (!reg.check) {\n        isvalidar = true;\n        break;\n      }\n    }\n\n    if (isvalidar) {\n      this.seleccionar = true;\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionar = false;\n      this.seleccionarTodo = true;\n    }\n  }\n\n  seleccionUnidad(event) {\n    if (event) {\n      this.unidad = event?.unidad;\n      this.nombreUnidad = event?.nombreUnidad;\n      this.cargarListaCargos();\n    }\n    this.cargo = null;\n  }\n\n  async enviarCorreo(){\n    let listaCorreos : EmpleadoModel [] = [];\n    for (let obj of this.listaInvitacion) {\n      if(obj.check){\n        listaCorreos.push(obj);\n      }\n    }\n    if(0 == listaCorreos.length){\n      this.notificacionesService.showError('Por favor seleccione las personas a notificar');\n      return;\n    }\n\n    let filtro: ParametrosGeneralModel = new ParametrosGeneralModel('EmpleadoDTO', this.procesoSeleccion, listaCorreos, {login : this.authService.getTokenKey('usuario')}, null);\n    let resultadoCorreo = await this.procesoSeleccionService.enviarInvitaciones(filtro).toPromise();\n    if(resultadoCorreo?.lista){\n      let sb: string = '';\n      for (let objeto of listaCorreos) {\n        sb += objeto.primerApellido + Constantes.ESPACIO_BLANCO + objeto.segundoApellido + Constantes.ESPACIO_BLANCO + objeto.nombres + '\\n';\n      }\n      this.notificacionesService.showError('No se pudieron enviar los correos a las siguientes personas : ' + sb);\n    }else{\n      this.notificacionesService.showSuccess('Las invitaciones fueron enviadas correctamente');\n    }\n\n  }\n\n}\n","<p-dialog header=\"{{'enviar' | translate}} {{'invitacion' | translate}}\" [(visible)]=\"showDialog\"\n    [style]=\"{width: '57vw'}\" (onHide)=\"regresarVista()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <div class=\"flex justify-content-between align-items-center mb-2\">\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaInvitados($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"mt-3 w-full\" style=\"min-width:20rem; max-width:20rem\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"id_empresa\" [options]=\"listaEmpresa\" optionLabel=\"label\"\n                                optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"empresa\"\n                                (onChange)=\"seleccionEmpresa($event)\" [showClear]=\"true\"></p-dropdown>\n                            <label for=\"id_empresa\">{{'empresa' | translate}} *</label>\n                        </span>\n                    </div>\n                    <div *ngIf=\"empresaFiltroSel != null\" class=\"w-full mt-4\" style=\"min-width:20rem; max-width:20rem\">\n                        <app-input-helper-unidad formControlName=\"unidad\" [readonly]=\"false\"\n                            [empresa]=\"empresaFiltroSel\" [label]=\"nombreUnidad != null ? nombreUnidad : ''\"\n                            (onSelected)=\"seleccionUnidad($event)\" [(ngModel)]=\"unidad\"\n                            [header]=\"('unidad' | translate) + ' *'\"\n                            [mostrarX]=\"unidad != null ? true : false\">\n                        </app-input-helper-unidad>\n                    </div>\n                    <div *ngIf=\"empresaFiltroSel != null && unidad != null\" class=\"mt-3 w-full\"\n                        style=\"min-width:20rem; max-width:20rem\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"cargo\" [options]=\"listaCargos\" optionLabel=\"label\" optionValue=\"key\"\n                                [autoDisplayFirst]=\"false\" formControlName=\"cargo\" (onChange)=\"seleccionCargo($event)\"\n                                [showClear]=\"true\"></p-dropdown>\n                            <label for=\"cargo\">{{'cargo' | translate}} *</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n\n        <button pButton pRipple *ngIf=\"0 < listaInvitacion.length && controlFuncionalidad.getControlFuncionalidad('procsel:invempl')\" class=\"mb-1 p-button p-button-raised\" icon=\"glyphicons glyphicons-envelope\"\n            label=\"{{'link_enviar' | translate}}\" (click)=\"enviarCorreo()\" [loading]=\"loading\"></button>\n    </div>\n\n    <div class=\"mt-2\">\n        <p-table #tablaWrapper id=\"tablaInvitacion\" [scrollable]=\"true\" [value]=\"listaInvitacion\"\n            responsiveLayout=\"scroll\" [rows]=\"10\" [totalRecords]=\"listaInvitacion.length\"\n            [paginator]=\"listaInvitacion.length > 10\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n            [showCurrentPageReport]=\"true\" [tableStyle]=\"{'min-width':'60%'}\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n            <ng-template pTemplate=\"header\">\n                <tr style=\"width: 100%;\">\n                    <th style=\"width: 20%;\">\n                        <p-checkbox [(ngModel)]=\"seleccionarTodo\" (onChange)=\"cambiarEstadoTodosCheck()\"\n                            [binary]=\"true\">\n                        </p-checkbox>\n                    </th>\n                    <th style=\"width: 20%;\">{{ 'identificacion' | translate }}</th>\n                    <th style=\"width: 20%;\">{{ 'empleado' | translate }}</th>\n                    <th style=\"width: 20%;\">{{ 'unidad' | translate }}</th>\n                    <th style=\"width: 20%;\">{{ 'cargo' | translate }}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-invitacion>\n                <tr>\n                    <td style=\"width: 20%;\">\n                        <div class=\"field-checkbox\">\n                            <p-checkbox class=\"mt-2 ml-1\" [binary]=\"true\" (onChange)=\"onSeleccionarIndiv(invitacion)\"\n                                [(ngModel)]=\"invitacion.check\"></p-checkbox>\n                        </div>\n                    </td>\n                    <td style=\"width: 20%;\">{{invitacion.documento}}</td>\n                    <td style=\"width: 20%;\">{{invitacion.primerApellido}} {{invitacion.segundoApellido}}\n                        {{invitacion.nombres}}</td>\n                    <td style=\"width: 20%;\">{{invitacion.unidadNombreTitular}}</td>\n                    <td style=\"width: 20%;\">{{invitacion.cargoNombreTitular}}</td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ProcesoSeleccionModel } from '../../../models/ProcesoSeleccionModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, ParametrosGeneralModel, ToastService, UnionModel, UtilsService } from 'general-library-union';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ListaConstantesPipe } from '../../../../../shared/pipes/listaConstantes.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { EtapaProcesoModel } from '../../../models/EtapaProcesoModel';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ProcesoSeleccionService } from '../../../services/proceso-seleccion.service';\nimport { EncriptadoBasicoService } from '../../../../../shared/servicios/encriptado-basico.service';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { RequisitoModel } from '../../../models/RequisitoModel';\nimport { RequisitoConsPipe } from '../../../../../shared/pipes/RequisitoCons.pipe';\nimport { CandidatoModel } from '../../../models/CandidatoModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { TipoActividadModel } from '../../../../../modules/capacitacion/models/TipoActividadModel';\nimport { Table } from 'jspdf-autotable';\nimport { PublicacionPipe } from '../../../../../modules/compensacion/pipes/publicacion.pipe';\nimport { PlanillaModel } from '../../../../../modules/compensacion/models/PlanillaModel';\nimport { OrigenDatosPipe } from '../../../../../shared/pipes/origen-datos.pipe';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PopupImportarCalificacionMedioComponent } from '../../../popups/popup-importar-calificacion-medio/popup-importar-calificacion-medio.component';\nimport { PopupCitacionComponent } from '../../../popups/popup-citacion/popup-citacion.component';\nimport { PopupSeleccionReportesComponent } from '../../../popups/popup-seleccion-reportes/popup-seleccion-reportes.component';\nimport { PopupEtapaProcesoComponent } from '../../../popups/popup-etapa-proceso/popup-etapa-proceso.component';\nimport { TabViewModule } from 'primeng/tabview';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { EditorModule } from 'primeng/editor';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ProcesoSeleccionMenuPage } from '../proceso-seleccion-menu/proceso-seleccion-menu.page';\nimport { NgIf, NgFor, DatePipe } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { PopupCambioEstadoCandidatoComponent } from '../../../popups/popup-cambio-estado-candidato/popup-cambio-estado-candidato.component';\nimport { EtapaProcesoService } from '../../../services/etapa-proceso.service';\nimport { PopupReclamacionProcesoComponent } from '../../../popups/popup-reclamacion-proceso/popup-reclamacion-proceso.component';\nimport { RegistroProcesoSeleccionPage } from '../registro-proceso-seleccion/registro-proceso-seleccion.page';\nimport { EtapaProcesoSeleccionPage } from '../etapa-proceso-seleccion/etapa-proceso-seleccion.page';\nimport { GrupoProcesoSeleccionPage } from '../grupo-proceso-seleccion/grupo-proceso-seleccion.page';\nimport { ActividadFuenteTareaModel } from '../../../models/ActividadFuenteTareaModel';\nimport { EjecucionEncuestaComponent } from '../../../../../modules/sarageneral/pages/ejecucion-encuesta/ejecucion-encuesta.component';\nimport { PublicacionProcesoSeleccionComponent } from '../publicacion-proceso-seleccion/publicacion-proceso-seleccion.component';\nimport { AdendoProcesoSeleccionComponent } from \"../adendo-proceso-seleccion/adendo-proceso-seleccion.component\";\nimport { CompetenciaProcesoSeleccionComponent } from '../competencia-proceso-seleccion/competencia-proceso-seleccion.component';\nimport { AnexosProcesoSeleccionComponent } from '../anexos-proceso-seleccion/anexos-proceso-seleccion.component';\nimport { MediosProcesoSeleccionComponent } from '../medios-proceso-seleccion/medios-proceso-seleccion.component';\nimport { AnularProcesoSeleccionComponent } from '../anular-proceso-seleccion/anular-proceso-seleccion.component';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { RequerimientosProcesoSeleccionComponent } from '../requerimientos-proceso-seleccion/requerimientos-proceso-seleccion.component';\nimport { RegistroCandidatoProcesoSeleccionComponent } from '../registro-candidato-proceso-seleccion/registro-candidato-proceso-seleccion.component';\nimport { ListadoPlanSucesionProcesoSeleccionComponent } from '../plan-sucesion-proceso-seleccion/listado-plan-sucesion-proceso-seleccion/listado-plan-sucesion-proceso-seleccion.component';\nimport { DetalleProcesoSeleccionComponent } from '../detalle-proceso-seleccion/detalle-proceso-seleccion.component';\nimport { CondicionDerechoProcesoSeleccionComponent } from '../condicion-derecho-proceso-seleccion/condicion-derecho-proceso-seleccion.component';\nimport { JuradosProcesoSeleccionComponent } from '../jurados-proceso-seleccion/jurados-proceso-seleccion.component';\nimport { ReclamacionProcesoSeleccionComponent } from '../reclamacion-proceso-seleccion/reclamacion-proceso-seleccion.component';\nimport { MediosAsistenteProcesoSeleccionComponent } from '../medios-asistente-proceso-seleccion/medios-asistente-proceso-seleccion.component';\nimport { CandidatosExternosProcesoSeleccionComponent } from '../candidatos-externos-proceso-seleccion/candidatos-externos-proceso-seleccion.component';\nimport { EvaluacionProcesoSeleccionPage } from '../evaluacion-proceso-seleccion/evaluacion-proceso-seleccion.page';\nimport { EtapaAsistenteProcesoSeleccionComponent } from '../etapa-asistente-proceso-seleccion/etapa-asistente-proceso-seleccion.component';\nimport { RegistroCitacionProcesoSeleccionComponent } from '../registro-citacion-proceso-seleccion/registro-citacion-proceso-seleccion.component';\nimport { PopupInvitacionProcesoSeleccionComponent } from '../../../popups/popup-invitacion-proceso-seleccion/popup-invitacion-proceso-seleccion.component';\nimport { DetalleCandidatoProcesoSeleccionComponent } from '../detalle-candidato-proceso-seleccion/detalle-candidato-proceso-seleccion.component';\n\n\n@Component({\n  selector: 'app-editar-proceso-seleccion',\n  templateUrl: './editar-proceso-seleccion.page.html',\n  styleUrls: ['./editar-proceso-seleccion.page.scss'],\n  standalone: true,\n  imports: [ButtonDirective, Ripple, NgIf, ProcesoSeleccionMenuPage, FormsModule, ReactiveFormsModule, InputTextModule, InputHelperHojaVidaComponent,\n    DropdownModule, CalendarModule, InputTextareaModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, EditorModule, CheckboxModule, TabViewModule,\n    PopupSeleccionReportesComponent, PopupCitacionComponent, PopupImportarCalificacionMedioComponent,\n    ConfirmPopupModule, DatePipe, TranslateModule, AdendoProcesoSeleccionComponent,\n    RegistroProcesoSeleccionPage, EtapaProcesoSeleccionPage, GrupoProcesoSeleccionPage, PublicacionProcesoSeleccionComponent,\n    CompetenciaProcesoSeleccionComponent, AnexosProcesoSeleccionComponent, MediosProcesoSeleccionComponent, AnularProcesoSeleccionComponent,\n    RequerimientosProcesoSeleccionComponent, RegistroCandidatoProcesoSeleccionComponent, ListadoPlanSucesionProcesoSeleccionComponent,\n    DetalleProcesoSeleccionComponent, CondicionDerechoProcesoSeleccionComponent, JuradosProcesoSeleccionComponent, ReclamacionProcesoSeleccionComponent,\n    MediosAsistenteProcesoSeleccionComponent, CandidatosExternosProcesoSeleccionComponent, EvaluacionProcesoSeleccionPage, EtapaAsistenteProcesoSeleccionComponent,\n    RegistroCitacionProcesoSeleccionComponent, PopupInvitacionProcesoSeleccionComponent, DetalleCandidatoProcesoSeleccionComponent\n  ]\n})\nexport class EditarProcesoSeleccionPage implements OnInit {\n\n  @ViewChild('tablaRegistroCitacion') tabla: Table;\n  @ViewChild(PopupReclamacionProcesoComponent) popupReclamacionProcesoComponent: PopupReclamacionProcesoComponent;\n  //BPM\n  @ViewChild(EjecucionEncuestaComponent) ejecucionEncuesta: EjecucionEncuestaComponent;\n\n  @Input() public isNew: boolean;\n  @Input() public procesoSeleccionado: ProcesoSeleccionModel;\n  @Output() public regresar = new EventEmitter;\n\n  public candidato: CandidatoModel;\n  public vistaVisualizar: string;\n  public nombreTablaCondDer: string;\n  public requerimiento: RequerimientoPersonalModel;\n  public mostrarDetalle: boolean;\n  verEditar: boolean;\n  formMostrarProceso: FormGroup;\n  formCandidato: FormGroup;\n\n  headerIdentificacion: string = 'Identificación *';\n  verPopupCitacion: boolean;\n  verPopupImportarCalificacionMedio: boolean;\n\n  verPopUpSeleccionReportes: boolean;\n  verPopupInvitacion: boolean;\n\n  candidatoNuevo: boolean;\n  almacenar: boolean;\n  encuesta: boolean;\n  etapaSeleccionada: EtapaProcesoModel;\n\n  filtroRequisito: RequisitoModel;\n  nombreTabla: string;\n  llaveTablaNumerica: string;\n  llaveTabla: string;\n  tipoRegistro: string;\n  rutaAdjuntoEtapa: string;\n\n  opcionMenuSel: string;\n  mostrarMenu: boolean;\n  \n  listaEstadoCivilT: any;\n  jurados: boolean;\n\n  listaSiNo: any;\n  filters = [];\n  tipoPopupPerfil: string;\n\n  constructor(private generalService: GeneralService, private authService: AuthService,\n    public utilsService: UtilsService, private formBuilder: FormBuilder, public listaConstantesPipe: ListaConstantesPipe,\n    public generalPipe: GeneralPipe, private cargarMapas: cargarmapasGlobal, private etapaProcesoService: EtapaProcesoService,\n    private confirmationService: ConfirmationService, private procesoSeleccionService: ProcesoSeleccionService,\n    private cargarArchivo: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService,\n    public requisitoPipe: RequisitoConsPipe, public translateService: TranslateService,\n    private controlFuncionalidad: CargarControlFuncionalidadService, private publicacionPipe: PublicacionPipe,\n    private origenDatosPipe: OrigenDatosPipe, private parametrosEvaluacionPipe: ParametrosEvaluacionPipe, private toastService: ToastService\n  ) { }\n\n\n  ngOnInit(): void {\n    this.mostrarMenu = false;\n    this.opcionMenuSel = 'mostrarProceso';\n    this.encuesta = false;\n    this.cargar();\n  }\n\n\n  async cargar() {\n    this.requerimiento = new RequerimientoPersonalModel();\n    if (this.procesoSeleccionado != null && this.procesoSeleccionado.requerimiento != null && Constantes.PUNTO != this.procesoSeleccionado.requerimiento.trim()) {\n      this.requerimiento = await this.generalService.queryForObject(new GeneralModel('RequerimientoPersonalDTO', null, false, { llave: this.procesoSeleccionado.requerimiento.padEnd(32, ' ') })).toPromise();\n    }\n    if (this.procesoSeleccionado != null) {\n      this.mostrarMenu = true;\n    }\n    this.nombreTablaCondDer = this.requisitoPipe.TABLA_SELECCION;\n    this.mostrarDetalle = true;\n  }\n\n\n  seleccionAccionMenu(event) {\n    if (event != null) {\n      console.log(event);\n      if('imprimirCargo' != event && 'imprimirConvocatoria' != event && 'imprimirRequerimiento' != event && 'nuevaCitacion' != event\n        && 'nuevaCitacionJurado' != event && 'enviarCorreosInvitacion' != event){\n        this.opcionMenuSel = event;\n      }\n\n      if('imprimirCargo' == event){\n        this.imprimirCargo();\n      }\n\n      if('imprimirConvocatoria' == event){\n        this.tipoPopupPerfil = this.origenDatosPipe.PROCESO_SELECCION;\n        this.verPopUpSeleccionReportes = true;\n      }\n\n      if('imprimirRequerimiento' == event){\n        this.tipoPopupPerfil = this.origenDatosPipe.REQUERIMIENTO_PERSONAL;\n        this.verPopUpSeleccionReportes = true;\n      }\n\n      if ('nuevaCitacion' == event) {\n        this.jurados = false;\n        this.verPopupCitacion = true;\n      }\n\n      if ('nuevaCitacionJurado' == event) {\n        this.jurados = true;\n        this.verPopupCitacion = true;\n      } \n\n      if ('enviarCorreosInvitacion' == event) {\n        this.verPopupInvitacion = true;\n      } \n\n      if ('nuevoCandidato' == this.opcionMenuSel) {\n        this.candidatoNuevo = true;\n      } else if ('cargarPuntajes' == this.opcionMenuSel) {\n        this.verPopupImportarCalificacionMedio = true;\n      }\n    }\n  }\n\n\n  async imprimirCargo() {\n    let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n      'PerfilFuncionDTO', null, null, {\n      empresa: Number(this.authService.getTokenKey('numeroEmpresa')), cargo: this.procesoSeleccionado.cargo,\n      unidad: this.procesoSeleccionado.unidad, puestoTrabajo: this.requerimiento.puestoTrabajo\n    }, null);\n    this.procesoSeleccionService.traerPerfilExiste(objParametros).subscribe(data => {\n      if (data) {\n        this.tipoPopupPerfil = this.publicacionPipe.DESCRIPCION_CARGO;\n        this.verPopUpSeleccionReportes = true;\n      } else {\n        this.toastService.showError('No existe un perfil asociado para la descripcion de cargo, No se puede imprimir');\n      }\n    });\n  }\n\n\n  obtenerEstado(estadoInt: string): string {\n    let cadena: string = '';\n    let condicionCumplida: boolean = false;\n    if ('cargarEvaluacion' == this.opcionMenuSel) {\n      this.parametrosEvaluacionPipe.LISTA_ESTADO_EVALUACION_PRU.forEach(element => {\n        if (element.codigo === estadoInt.trim()) {\n          cadena = element.nombre;\n          condicionCumplida = true;\n        }\n      });\n    } else {\n      this.listaConstantesPipe.ESTADOETAPAPROCESO.forEach(element => {\n        if (element.codigo === estadoInt.trim()) {\n          cadena = element.nombre;\n          condicionCumplida = true;\n        }\n      });\n    }\n    if (!condicionCumplida) {\n      cadena = estadoInt;\n    }\n    return cadena;\n  }\n\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad(valor);\n  }\n\n  \n\n  async crearRegistroCandidato() {\n    if (this.formCandidato.valid) {\n      let cand: CandidatoModel = new CandidatoModel();\n      cand.procesoseleccion = this.procesoSeleccionado.llaveTabla;\n\n      if (this.candidato.hojaVidaCandidato != null) {\n        cand.hojaVidaCandidato = this.candidato.hojaVidaCandidato;\n      } else {\n        cand.identificacion = this.candidato.identificacion;\n      }\n      cand = await this.generalService.queryForObject(new GeneralModel('CandidatoDTO', null, false, cand)).toPromise();\n      if (cand != null) {\n        this.toastService.showError('Este candidato se encuentra registrado en este proceso');\n        return;\n      }\n      if (this.formCandidato.get('externo').value == null) {\n        this.formCandidato.get('externo').setValue('N');\n      }\n\n      let respuesta = await this.procesoSeleccionService.guardarCandidatoProcesoSeleccion({ candidato: this.formCandidato.value }).toPromise();\n      if (respuesta) {\n        this.toastService.showSuccess(Constantes.MENSAJE_GUARDAR);\n      }\n\n      let candidatosProceso: CandidatoModel = new CandidatoModel();\n      candidatosProceso.procesoseleccion = this.procesoSeleccionado.llaveTabla;\n      if (this.candidato.estadoPreinscripcionDefecto) {\n        let cantidad = await this.generalService.cantidadRegistros(new GeneralModel('CandidatoDTO', null, false, candidatosProceso)).toPromise();\n        if (cantidad == 1 && this.listaConstantesPipe.SOLICITUD == this.procesoSeleccionado.estado) {\n          this.procesoSeleccionado.estado = this.listaConstantesPipe.PROCESO;\n          await this.generalService.update(new GeneralModel('CandidatoDTO', null, false, this.procesoSeleccionado)).toPromise();\n        }\n      } else {\n        await this.procesoSeleccionService.cambiarEstadoProcesoSegunEstadoCandidatos({ proceso: this.procesoSeleccionado }).toPromise();\n      }\n    } else {\n      this.toastService.showError('Faltan campos obligatorios');\n      Object.keys(this.formCandidato.controls).forEach((key) => {\n        if (this.formCandidato.get(key).errors) {\n          this.formCandidato.get(key).markAsDirty();\n        }\n      });\n    }\n  }\n\n\n  onSelectNuevoCandidato(event) {\n    this.formCandidato.get('documentoCandidato').setValue(event.documento);\n  }\n\n\n  regresarVistaPrincipal() {\n    this.regresar.emit();\n  }\n\n\n  /*regresarPopupMediosAsistente() {\n    this.cargarEncabezadosMediosAsistente();\n    this.verPopupMediosAsistente = false;\n  }*/\n\n\n  descargarAnexoEtapa(etapa) {\n    let propiedad = 'ruta_anexosHojaVida';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    let segmentosRutaNombreArchivo = etapa.ruta.split('/');\n    let nombreArchivo = segmentosRutaNombreArchivo[segmentosRutaNombreArchivo.length - 1];\n    this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(etapa.ruta + Constantes.PUNTO + Constantes.ARCHIVO_PDF), propiedad, aplicacion).subscribe(blob => {\n      const a = document.createElement('a')\n      const objectUrl = URL.createObjectURL(blob)\n      a.href = objectUrl\n      a.download = nombreArchivo + Constantes.PUNTO + Constantes.ARCHIVO_PDF;\n      a.click();\n      URL.revokeObjectURL(objectUrl);\n    });\n  }\n\n\n  isLlaveNumerica(): boolean {\n    return this.llaveTabla != null && !this.llaveTabla.trim() && this.llaveTablaNumerica != null;\n  }\n\n\n  regresarPopupSeleccionReportes() {\n    this.verPopUpSeleccionReportes = false;\n  }\n\n  seleccionPlanillaReporte(event) {\n    let planillaSeleccionada: PlanillaModel = new PlanillaModel();\n    planillaSeleccionada = event;\n    if (this.origenDatosPipe.PROCESO_SELECCION == planillaSeleccionada.tipo) {\n      this.recibePlanilla(planillaSeleccionada);\n    } else if (this.origenDatosPipe.REQUERIMIENTO_PERSONAL == planillaSeleccionada.tipo) {\n      this.recibeRequerimiento(planillaSeleccionada);\n    }\n  }\n\n  recibePlanilla(planillaSeleccionada: PlanillaModel) {\n    if (planillaSeleccionada != null) {\n      let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n        'PerfilFuncionDTO', null, null, {\n        empresa: Number(this.authService.getTokenKey('numeroEmpresa')), cargo: this.procesoSeleccionado.cargo,\n        unidad: this.procesoSeleccionado.unidad, puestoTrabajo: this.requerimiento.puestoTrabajo != null ? this.requerimiento.puestoTrabajo : null, login: this.authService.getTokenKey('usuario'),\n        procesoSeleccion: this.procesoSeleccionado.llaveTabla, llavePlanilla: planillaSeleccionada.llaveTabla\n      }, null);\n      this.procesoSeleccionService.imprimirConvocatoria(objParametros).subscribe(data => {\n        if (data) {\n        } else {\n          this.toastService.showError('No existe un perfil asociado para la descripcion de cargo, No se puede imprimir');\n        }\n      });\n    }\n    this.verPopUpSeleccionReportes = false;\n  }\n\n  recibeRequerimiento(planillaSeleccionada: PlanillaModel) {\n    if (planillaSeleccionada != null) {\n      let objParametros: ParametrosGeneralModel = new ParametrosGeneralModel(\n        'PerfilFuncionDTO', null, null, {\n        empresa: Number(this.authService.getTokenKey('numeroEmpresa')), cargo: this.procesoSeleccionado.cargo,\n        unidad: this.procesoSeleccionado.unidad, puestoTrabajo: this.requerimiento.puestoTrabajo, login: this.authService.getTokenKey('usuario'),\n        procesoSeleccion: this.procesoSeleccionado.llaveTabla, llavePlanilla: planillaSeleccionada.llaveTabla, requerimiento: this.procesoSeleccionado.requerimiento\n      }, null);\n      this.procesoSeleccionService.imprimirRequerimiento(objParametros).subscribe(data => {\n        if (data) {\n        } else {\n          this.toastService.showError('No existe un perfil asociado para la descripcion de cargo, No se puede imprimir');\n        }\n      });\n    }\n    this.verPopUpSeleccionReportes = false;\n  }\n\n\n  regresarPopupCitacion() {\n    this.verPopupCitacion = false;\n  }\n\n  regresarPopupImportarCalificacionMedio() {\n    this.verPopupImportarCalificacionMedio = false;\n  }\n\n  ocultarDetalleProcSel() {\n    this.mostrarDetalle = false;\n  }\n\n  async seleccionRegistroCandidato(event) {\n    this.candidato = new CandidatoModel();\n    if (event?.data) {\n      this.candidatoNuevo = false;\n      this.candidato = event.data;\n      this.opcionMenuSel = 'nuevoCandidato';\n    }\n  }\n\n  regresarPopupInvitacionProcesoSeleccion(){\n    this.verPopupInvitacion = false;\n  }\n\n  public async verEncuesta(llaveActividad: string, llaveEncuesta: string) {\n    if (llaveActividad != null) {\n      var actividad = new ActividadFuenteTareaModel();\n      actividad.llaveTabla = llaveActividad;\n      actividad = await this.generalService.queryForObject(new GeneralModel('ActividadFuenteTareaDTO', null, false, actividad)).toPromise();\n      var candidatoDTO = new CandidatoModel();\n      candidatoDTO.llaveTabla = actividad.llaveTablaBase;\n      candidatoDTO = await this.generalService.queryForObject(new GeneralModel('CandidatoDTO', null, false, candidatoDTO)).toPromise();\n      if (candidatoDTO.procesoseleccion != null) {\n        this.procesoSeleccionado = new ProcesoSeleccionModel();\n        this.procesoSeleccionado.llaveTabla = candidatoDTO.procesoseleccion;\n        this.procesoSeleccionado = await this.generalService.queryForObject(new GeneralModel('ProcesoSeleccionDTO', null, false, this.procesoSeleccionado)).toPromise();\n        await this.seleccionRegistroCandidato({ data: candidatoDTO });\n      }\n      this.mostrarMenu = true;\n      this.encuesta = true;\n      await this.utilsService.sleep(300);\n      this.ejecucionEncuesta.establecerEvaluacionBPM(actividad, llaveEncuesta, candidatoDTO);\n    }\n  }\n\n  //FIXME: metodos que faltan \n  seleccionEstadoCandidato(event) {\n  }\n\n  \n\n  isBloquear(): boolean {\n    return this.procesoSeleccionado != null && this.procesoSeleccionado.estado != null && this.listaConstantesPipe.BLOQUEADO.toUpperCase() == this.procesoSeleccionado.estado.toUpperCase();\n  }\n\n}\n","<div id=\"detalleProcesoSeleccion\" *ngIf=\"'mostrarProceso' == opcionMenuSel\">\n\n  <div class=\"flex align-items-center justify-content-between align-items-center mt-2 mb-3\">\n    <h1>{{'proceso' | translate}} {{'seleccion' | translate}}</h1>\n    <button pButton pRipple label=\"{{'regresar' | translate}}\" (click)=\"regresarVistaPrincipal()\"\n      icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4 mb-2\"></button>\n  </div>\n\n  <div *ngIf=\"mostrarMenu\">\n    <app-proceso-seleccion-menu (seleccionAccion)=\"seleccionAccionMenu($event)\"\n      [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n      [encuesta]=\"encuesta\"></app-proceso-seleccion-menu>\n  </div>\n\n  <div class=\"flex aling-items-center justify-content-between align-items-center\">\n    <h4 class=\"text-xl mt-4\">{{'registro' | translate}} {{'proceso' | translate}}</h4>\n  </div>\n\n  <!-- PANEL DETALLE -->\n  <div *ngIf=\"mostrarDetalle\">\n    <app-detalle-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"></app-detalle-proceso-seleccion>\n  </div>\n\n  <!-- PANEL REGISTRO PROCESO -->\n  <div class=\"card\">\n    <app-registro-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n      [isNew]=\"isNew\"></app-registro-proceso-seleccion>\n  </div>\n</div>\n\n<!-- PANEL ETAPA -->\n<div *ngIf=\"'mostrarEtapas' == opcionMenuSel\">\n  <app-etapa-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-etapa-proceso-seleccion>\n</div>\n\n<!-- PANEL GRUPO -->\n<div *ngIf=\"'mostrarGrupo' == opcionMenuSel\">\n  <app-grupo-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-grupo-proceso-seleccion>\n</div>\n\n<!-- PANEL PUBLICAR -->\n<div *ngIf=\"'verPublicacion' == opcionMenuSel\">\n  <app-publicacion-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-publicacion-proceso-seleccion>\n</div>\n\n<!-- PANEL ADENDO -->\n<div *ngIf=\"'mostrarAdendo' == opcionMenuSel\">\n  <app-adendo-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-adendo-proceso-seleccion>\n</div>\n\n<!-- PANEL COMPETENCIA -->\n<div *ngIf=\"'mostrarCompetencias' == opcionMenuSel\">\n  <app-competencia-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-competencia-proceso-seleccion>\n</div>\n\n<!-- PANEL ANEXOS -->\n<div *ngIf=\"'mostrarAnexos' == opcionMenuSel\">\n  <app-anexos-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-anexos-proceso-seleccion>\n</div>\n\n<!-- PANEL MEDIOS -->\n<div *ngIf=\"'mostrarMedios' == opcionMenuSel\">\n  <app-medios-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-medios-proceso-seleccion>\n</div>\n\n<!-- PANEL ANULAR PROCESO -->\n<div *ngIf=\"'cargarAnulacion' == opcionMenuSel\">\n  <app-anular-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\"></app-anular-proceso-seleccion>\n</div>\n\n<!-- PANEL CONDICIÓN DE DERECHO -->\n<div *ngIf=\"'cargarCondicion' == opcionMenuSel\">\n  <app-condicion-derecho-proceso-seleccion [nombreTablaCondDer]=\"nombreTablaCondDer\"\n    [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\" (regresar)=\"regresarVistaPrincipal()\"\n    (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-condicion-derecho-proceso-seleccion>\n</div>\n\n<!-- PANEL REQUERIMIENTOS -->\n<div *ngIf=\"'mostrarRequerimiento' == opcionMenuSel\">\n  <app-requerimientos-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-requerimientos-proceso-seleccion>\n</div>\n\n<!-- PANEL REGISTRO CANDIDATO -->\n<div *ngIf=\"'mostrarCandidato' == opcionMenuSel\">\n  <app-registro-candidato-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [requerimiento]=\"requerimiento\"\n  (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-registro-candidato-proceso-seleccion>\n</div>\n\n<!-- PANEL PLAN SUCESIÓN -->\n<div *ngIf=\"'planSucesion' == opcionMenuSel\">\n  <app-listado-plan-sucesion-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-listado-plan-sucesion-proceso-seleccion>\n</div>\n\n<!-- PANEL JURADOS -->\n<div *ngIf=\"'mostrarEvaluadores' == opcionMenuSel\">\n  <app-jurados-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-jurados-proceso-seleccion>\n</div>\n\n<!-- PANEL RECLAMACIÓN -->\n<div *ngIf=\"'mostrarReclamacion' == opcionMenuSel\">\n  <app-reclamacion-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-reclamacion-proceso-seleccion>\n</div>\n\n<!-- PANEL MEDIOS POR ASISTENTE -->\n<div *ngIf=\"'mostrarCandidatosAsistente' == opcionMenuSel\">\n  <app-medios-asistente-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-medios-asistente-proceso-seleccion>\n</div>\n\n<!-- PANEL CANDIDATOS EXTERNOS -->\n<div *ngIf=\"'cargarCandidatosExternos' == opcionMenuSel\">\n  <app-candidatos-externos-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-candidatos-externos-proceso-seleccion>\n</div>\n\n<!-- PANEL EVALUACIONES -->\n<div *ngIf=\"'cargarEvaluacion' == opcionMenuSel\">\n  <app-evaluacion-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\" [mostrarDesdeProcSeleccion]=\"true\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-evaluacion-proceso-seleccion>\n</div>\n\n<!-- PANEL REGISTRO CITACIÓN -->\n<div *ngIf=\"opcionMenuSel == 'mostrarCitacion'\">\n  <app-registro-citacion-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-registro-citacion-proceso-seleccion>\n</div>\n\n<!-- PANEL ETAPAS POR ASISTENTE -->\n<div *ngIf=\"opcionMenuSel == 'mostrarEtapaAsistente'\">\n  <app-etapas-asistente-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-etapas-asistente-proceso-seleccion>\n</div>\n\n<!-- PANEL NUEVO - CANDIDATO -->\n<div *ngIf=\"opcionMenuSel == 'nuevoCandidato'\">\n  <app-detalle-candidato-proceso-seleccion [procesoSeleccionado]=\"procesoSeleccionado\"\n    (regresar)=\"regresarVistaPrincipal()\" (irTarea)=\"seleccionAccionMenu($event)\">\n  </app-detalle-candidato-proceso-seleccion>\n</div>\n\n\n<div *ngIf=\"verPopUpSeleccionReportes\">\n  <app-popup-seleccion-reportes [showDialog]=\"verPopUpSeleccionReportes\" [tipoPopup]=\"tipoPopupPerfil\"\n    (regresar)=\"regresarPopupSeleccionReportes()\"\n    (onSelected)=\"seleccionPlanillaReporte($event)\"></app-popup-seleccion-reportes>\n</div>\n<div *ngIf=\"verPopupCitacion\">\n  <app-popup-citacion [showDialog]=\"verPopupCitacion\" [procesoSeleccion]=\"procesoSeleccionado.llaveTabla\"\n    [porJurados]=\"jurados\" [requerimiento]=\"requerimiento\" (regresar)=\"regresarPopupCitacion()\"></app-popup-citacion>\n</div>\n<div *ngIf=\"verPopupImportarCalificacionMedio\">\n  <app-popup-importar-calificacion-medio [mostrarPopup]=\"verPopupImportarCalificacionMedio\"\n    [proceso]=\"procesoSeleccionado\"\n    (regresar)=\"regresarPopupImportarCalificacionMedio()\"></app-popup-importar-calificacion-medio>\n</div>\n<div *ngIf=\"verPopupInvitacion\">\n  <app-popup-invitacion-proceso-seleccion [showDialog]=\"verPopupInvitacion\"\n    [procesoSeleccion]=\"procesoSeleccionado\" (onSelected)=\"seleccionEstadoCandidato($event)\"\n    (regresar)=\"regresarPopupInvitacionProcesoSeleccion()\"></app-popup-invitacion-proceso-seleccion>\n</div>\n<p-confirmPopup></p-confirmPopup>\n","import { Component, OnInit, Type, ViewChild } from '@angular/core';\nimport { ActividadFuenteTareaModel } from '../../../../modules/talento/models/ActividadFuenteTareaModel';\nimport { ActividadFuenteTareaService } from '../../services/actividadFuenteTarea.service';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, FuenteGeneralModel, FuenteServicioModel, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { WorkflowPipe } from '../../../../shared/pipes/workflow.pipe';\nimport { ConfirmationService, MenuItem, SortEvent, PrimeTemplate } from 'primeng/api';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { MantenimientoDetalleNovedadComponent } from '../../../../modules/compensacion/pages/novedades/mantenimiento-detalle-novedad/mantenimiento-detalle-novedad.component';\nimport { VacacionAusenciaProgramadasComponent } from '../../../../modules/compensacion/ausentismos/vacacion-ausencia-programadas/vacacion-ausencia-programadas.component';\nimport { VacacionAusenciaInterrupcionComponent } from '../../../../modules/compensacion/pages/ausentismos/vacacion-ausencia-interrupcion/vacacion-ausencia-interrupcion.component';\nimport { IncapacidadAusenciaProgramadasComponent } from '../../../../modules/compensacion/ausentismos/incapacidad-ausencia-programadas/incapacidad-ausencia-programadas.component';\nimport { LicenciaAusenciaProgramadasComponent } from '../../../../modules/compensacion/ausentismos/licencia-ausencia-programadas/licencia-ausencia-programadas.component';\nimport { DetalleSolicitudComponent } from '../../../../modules/compensacion/pages/solicitudes/detalle-solicitud/detalle-solicitud.component';\nimport { PopupMotivoNoAutorizaComponent } from '../../popups/popup-motivo-no-autoriza/popup-motivo-no-autoriza.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MenubarModule } from 'primeng/menubar';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DetalleSolicitudViaticoComponent } from '../../../../modules/viaticos/pages/solicitud/detalle-solicitud-viatico/detalle-solicitud-viatico.component';\nimport { DetalleBeneficiarioComponent } from '../../../../modules/bienestar/pages/beneficios/detalle-beneficiario/detalle-beneficiario.component';\nimport { RequerimientoPmPage } from '../../../../modules/talento/pages/planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { DetalleNecesidadCapacitacionComponent } from '../../../../modules/capacitacion/pages/necesidadcapacitacion/detallenecesidadcapacitacion/detalle-necesidad-capacitacion.component';\nimport { EditarContratacionPage } from '../../../../modules/talento/pages/contratacion/editar-contratacion/editar-contratacion.page';\nimport { DetalleSolicitudPuntajeDocenteComponent } from '../../../../modules/hojavida/pages/solicitud/detalle-solicitud-puntaje-docente/detalle-solicitud-puntaje-docente.component';\nimport { EditarProcesoSeleccionPage } from '../../../../modules/talento/pages/proceso-seleccion/editar-proceso-seleccion/editar-proceso-seleccion.page';\nimport Swal from 'sweetalert2';\n\n@Component({\n    selector: 'app-actividades',\n    templateUrl: './actividades.component.html',\n    styleUrls: ['./actividades.component.scss'],\n    standalone: true,\n    imports: [\n      ConfirmPopupModule, \n      NgIf, \n      MenubarModule, \n      FormsModule, \n      ReactiveFormsModule, \n      InputTextModule, \n      DropdownModule, \n      ButtonDirective, \n      Ripple, \n      TableModule, TemplateTablaVaciaComponent, \n      PrimeTemplate, \n      MantenimientoDetalleNovedadComponent, \n      VacacionAusenciaProgramadasComponent, \n      VacacionAusenciaInterrupcionComponent, \n      IncapacidadAusenciaProgramadasComponent, \n      LicenciaAusenciaProgramadasComponent, \n      DetalleSolicitudComponent, \n      DetalleSolicitudViaticoComponent,\n      PopupMotivoNoAutorizaComponent, \n      DetalleBeneficiarioComponent,\n      DetalleNecesidadCapacitacionComponent,\n      RequerimientoPmPage,\n      EditarContratacionPage,\n      DetalleSolicitudPuntajeDocenteComponent,\n      EditarProcesoSeleccionPage,\n      DatePipe, \n      TranslateModule, \n      WorkflowPipe, \n      FiltroGeneralComponent\n    ]\n})\nexport class ActividadesComponent implements OnInit {\n\n  public actividadesVigentes: ActividadFuenteTareaModel[] = [];\n\tpublic actividadesHistoricas: ActividadFuenteTareaModel[] = [];\n\tpublic mostrarFiltro: boolean=true;\n\tpublic mostrarColumnas: boolean=true;\n\tpublic actual: ActividadFuenteTareaModel;\n\tpublic listaOrigenVigente: any[];\n  public listaOrigenHistorico: any[];\n\tpublic listaActividades: ActividadFuenteTareaModel[] = [];\n\tpublic seleccionar: boolean\n  public existeAutorizar: boolean;\n\n  public paginadorVigente = {\n    rows: 15,\n    totalRecords: 0\n  }\n  public paginadorHistorico = {\n    rows: 15,\n    totalRecords: 0\n  }\n  public iconoVigente: string = 'pi pi-fw pi-sort-amount-down';\n  public iconoHistorico: string = 'pi pi-fw pi-sort-amount-down';\n  public ordenVigente: boolean = true;\n  public ordenHistorico: boolean = true;\n  public filters = [];\n  public paginadorSeleccionado: ActividadFuenteTareaModel[] = [];\n\n  public cedula: number;\n  public autoServicioPortal: boolean;\n  public cliente: boolean;\n  public items: MenuItem[];\n  public opcionSeleccionada: string;\n  public vigente: boolean;\n  public mostrarMotivoNoAutoriza: boolean = false;\n  public vistaVisualizar: string = null;\n  public consultaCedula: boolean = false;\n\n  @ViewChild('filtroHistorico') filtroHistorico: FiltroGeneralComponent;\n  @ViewChild('filtroVigente') filtroVigente: FiltroGeneralComponent;\n\n  //Componentes BPM\n  @ViewChild(MantenimientoDetalleNovedadComponent) novedadBean: MantenimientoDetalleNovedadComponent;\n  @ViewChild(VacacionAusenciaProgramadasComponent) detalleVacacionAusenciaBean: VacacionAusenciaProgramadasComponent;\n  @ViewChild(VacacionAusenciaInterrupcionComponent) detalleInterrupcionAusenciaBean: VacacionAusenciaInterrupcionComponent;\n  @ViewChild(IncapacidadAusenciaProgramadasComponent) detalleIncapacidadAusenciaBean: IncapacidadAusenciaProgramadasComponent;\n  @ViewChild(LicenciaAusenciaProgramadasComponent) detalleLicenciaAusenciaBean: LicenciaAusenciaProgramadasComponent;\n  @ViewChild(DetalleSolicitudComponent) solicitudBean: DetalleSolicitudComponent;\n  @ViewChild(DetalleSolicitudViaticoComponent) detalleSolicitudViaticoBean: DetalleSolicitudViaticoComponent;\n  @ViewChild(DetalleBeneficiarioComponent) datosBeneficioBean: DetalleBeneficiarioComponent;\n  @ViewChild(RequerimientoPmPage) requerimientoPMBean: RequerimientoPmPage;\n  @ViewChild(DetalleNecesidadCapacitacionComponent) necesidadCapacitarBean: DetalleNecesidadCapacitacionComponent;\n  @ViewChild(EditarContratacionPage) detalleContratacionBean: EditarContratacionPage;\n  @ViewChild(DetalleSolicitudPuntajeDocenteComponent) detalleSolicitudPuntajeDocenteBean: DetalleSolicitudPuntajeDocenteComponent;\n  @ViewChild(EditarProcesoSeleccionPage) detallePublicacionConvocatoria: EditarProcesoSeleccionPage;\n  \n  constructor(private actividadFuenteTareaService: ActividadFuenteTareaService,\n              public controlFuncionService: CargarControlFuncionalidadService,\n              public saraAplicacionService: SaraAplicacionService,\n              private confirmationService: ConfirmationService,\n              private notificacionesService: ToastService,\n              private translateService: TranslateService,\n              private generalService: GeneralService,\n              private utilsService: UtilsService,\n              private workFlowPipe: WorkflowPipe,\n              private authService: AuthService,\n              private generalPipe: GeneralPipe,\n  ) { }\n\n  async ngOnInit() {\n    this.cargarMenu();\n    await this.cargarListas();\n  }\n\n  cargarMenu(){\n    this.opcionSeleccionada = this.translateService.instant('actividadesvigentes');\n    this.vigente = true;\n    this.items = [\n      {\n        label: this.translateService.instant('actividadesvigentes'),\n        icon: 'glyphicons glyphicons-user',\n        command:   (event) => {\n          this.opcionSeleccionada = event.item.label;\n          this.vigente = true;\n        },\n      },\n      {\n        label: this.translateService.instant('actividadeshistoricas'),\n        icon: 'glyphicons glyphicons-list-numbered',\n        command:   (event) => {\n          this.opcionSeleccionada = event.item.label;\n          this.vigente = false;\n        },\n        visible: this.controlFuncionService.getControlFuncionalidad('proact:verhistorico')\n      },\n    ];\n    this.filters = [\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'solicitante',\n        header: this.translateService.instant('solicita'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'origen',\n        header: this.translateService.instant('origen'),\n        values: (key) => this.listaOrigenHistorico.filter(data => data.value == key)[0].label,\n        matchMode: 'equal',\n      },\n    ]\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  filtrarEnterHistorico(event) {\n    if (event.key === 'Enter') {\n      this.filtroHistorico.aplicarFiltros();\n    }\n  }\n\n  filtrarEnterVigente(event) {\n    if (event.key === 'Enter') {\n      this.filtroVigente.aplicarFiltros();\n    }\n  }\n\n  async cargarListas(){\n    this.consultaCedula = false;\n    this.cedula = await this.saraAplicacionService.getCedula();\n    this.autoServicioPortal = this.saraAplicacionService.isAutoServicioPortal();\n    this.cliente = this.authService.getTokenKey('tipoLogin') != 'U';\n    this.consultaCedula = true;\n    let data = await this.actividadFuenteTareaService.consultarFiltrosActividad({cedula: this.cedula}).toPromise();\n    this.listaOrigenHistorico = data?.listaOrigenHistorico;\n    this.listaOrigenVigente = data?.listaOrigenVigente;\n  }\n\n  async cargarPaginadorVigente(event) {\n    if (!this.consultaCedula) {\n      await this.utilsService.sleep(1000)\n    }\n     let filtro = new ActividadFuenteTareaModel();\n    filtro.paginacionRegistroInicial = event.first;\n    filtro.paginacionRegistroFinal = event.rows;\n    filtro.responsable = this.cliente ? this.cedula : null;\n    filtro.origenPortal = this.autoServicioPortal ? this.generalPipe.SI : null;\n    filtro.estado = this.workFlowPipe.ESTADOPROCESO;\n    filtro.descripcion = event.filters.descripcion ? this.generalPipe.PORCENTAJE + event.filters.descripcion?.value.toLowerCase() + this.generalPipe.PORCENTAJE : null;\n    filtro.solicitante = event.filters.solicitante ? this.generalPipe.PORCENTAJE + event.filters.solicitante?.value.toLowerCase() + this.generalPipe.PORCENTAJE : null;\n    filtro.origen = event.filters.origen?.value;\n    filtro.sortInicio = this.ordenVigente ? 'DESC' : 'ASC';\n    this.actividadesVigentes = await this.generalService.queryForList(new GeneralModel('ActividadFuenteTareaDTO', null, false, filtro)).toPromise();\n    this.paginadorVigente.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('ActividadFuenteTareaDTO', null, false, filtro)).toPromise();\n    this.existeAutorizar = this.actividadesVigentes.some(data => data.tipoTarea == 'A');\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarPaginadorHistorico(event) {\n    if (!this.consultaCedula) {\n      await this.utilsService.sleep(1000)\n    }\n    let filtro = new ActividadFuenteTareaModel();\n    filtro.paginacionRegistroInicial = event.first;\n    filtro.paginacionRegistroFinal = event.rows;\n    filtro.responsable = this.cliente ? this.cedula : null;\n    filtro.origenPortal = this.autoServicioPortal ? this.generalPipe.SI : null;\n    filtro.estadoInactivo = this.generalPipe.SI;\n    filtro.descripcion = event.filters.descripcion ? this.generalPipe.PORCENTAJE + event.filters.descripcion?.value.toLowerCase() + this.generalPipe.PORCENTAJE : null;\n    filtro.solicitante = event.filters.solicitante ? this.generalPipe.PORCENTAJE + event.filters.solicitante?.value.toLowerCase() + this.generalPipe.PORCENTAJE : null;\n    filtro.origen = event.filters.origen?.value;\n    filtro.sortInicio = this.ordenHistorico ? 'DESC' : 'ASC';\n    this.actividadesHistoricas = await this.generalService.queryForList(new GeneralModel('ActividadFuenteTareaDTO', null, false, filtro)).toPromise();\n    this.paginadorHistorico.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('ActividadFuenteTareaDTO', null, false, filtro)).toPromise();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  ordenarHistorico(event) {\n    this.ordenHistorico = !this.ordenHistorico;\n    this.iconoHistorico = this.ordenHistorico ? 'pi pi-fw pi-sort-amount-down' : 'pi pi-fw pi-sort-amount-up-alt';\n    this.filtroHistorico.aplicarFiltros();\n  }\n\n  ordenarVigente(event) {\n    this.ordenVigente = !this.ordenVigente;\n    this.iconoVigente = this.ordenVigente ? 'pi pi-fw pi-sort-amount-down' : 'pi pi-fw pi-sort-amount-up-alt';\n    this.filtroVigente.aplicarFiltros();\n  }\n\n  accionAutorizar(event){\n    if (this.paginadorSeleccionado.length == 0) {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_NO_SELECCIONADO);\n      return;\n    }\n\n    this.confirmationService.confirm({\n      target: event.target,\n      message:  this.translateService.instant('mensajeconfirmarbpm'),\n      acceptLabel: this.generalPipe.SI_DESC,\n      header: this.translateService.instant('confirmar'),\n      accept: () => {\n        this.guardarRespuesta(true, null);\n      }\n    })\n  }\n\n  accionNoAutorizar(){\n    if (this.paginadorSeleccionado.length == 0) {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_NO_SELECCIONADO);\n      return;\n    }\n    this.mostrarMotivoNoAutoriza = true;\n  }\n\n  guardarRespuesta(respuesta: boolean, motivo: string){\n    this.actividadFuenteTareaService.guardarRespuestaListado({listaActividades: this.paginadorSeleccionado, respuesta: respuesta, motivo: motivo}).subscribe(data => {\n      this.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS);\n      this.filtroVigente.aplicarFiltros();\n    })\n  }\n\n  setNoAutorizacion(event){\n    console.log(event);\n    this.mostrarMotivoNoAutoriza = false;\n    if (event){\n      this.guardarRespuesta(false, event);\n    }\n  }\n\n  async ver(event){\n    let data = await this.actividadFuenteTareaService.verActividad({actividad: event}).toPromise();\n    console.log(data)\n    var fuenteServicioDTO: FuenteServicioModel = data.fuenteServicio;\n    var fuenteGeneral: FuenteGeneralModel =  data.fuenteGeneral;\n    var actividad: ActividadFuenteTareaModel = data.actividad;\n    if (this.workFlowPipe.TIPOEVENTOINTERACCION == fuenteServicioDTO.tipo) {\n      //FIXME: pte cuando hayan tareas desarrolladas que contengan humana predefinida \n    } else if (this.workFlowPipe.TIPOEVENTOHUMANOENCUESTA == fuenteServicioDTO.tipo) {\n      this.vistaVisualizar = data.reglaNavegacion;\n      var bean = data.bean; \n      await this.utilsService.sleep(20)\n      switch (bean) {\n        case \"novedadBean\":\n          await this.novedadBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          break;\n        case \"detalleVacacionAusenciaBean\":\n          await this.detalleVacacionAusenciaBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          break;\n        case \"detalleInterrupcionAusenciaBean\":\n          await this.detalleInterrupcionAusenciaBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          break;\n        case \"detalleIncapacidadAusenciaBean\":\n          await this.detalleIncapacidadAusenciaBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          break;\n        case \"detalleLicenciaAusenciaBean\": \n          await this.detalleLicenciaAusenciaBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        case \"solicitudBean\":\n          await this.solicitudBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        case \"detalleSolicitudViaticoBean\":\n          await this.detalleSolicitudViaticoBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        case \"datosBeneficioBean\":\n          await this.datosBeneficioBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        case \"requerimientoPMBean\":\n          await this.requerimientoPMBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        case \"necesidadCapacitarBean\":\n          await this.necesidadCapacitarBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        case \"detalleContratacionBean\":\n          await this.detalleContratacionBean.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        case \"detallePublicacionConvocatoria\":\n          await this.detallePublicacionConvocatoria.verEncuesta(actividad.llaveTabla, fuenteServicioDTO.encuesta.toString());\n          return;\n        default:\n          break;\n      }  \n    } else if (this.workFlowPipe.TIPOEVENTOSERVICIO == fuenteServicioDTO.tipo) {\n\n    } else if (this.workFlowPipe.TIPOEVENTOHUMANOAUTORIZA == fuenteServicioDTO.tipo) {\n      this.vistaVisualizar = data.reglaNavegacion;\n      var bean = data.bean; \n      await this.utilsService.sleep(20)\n      switch (bean) {\n        case \"novedadBean\":\n          await this.novedadBean.verAutorizacion(actividad.llaveTabla);\n          break;\n        case \"detalleVacacionAusenciaBean\":\n          await this.detalleVacacionAusenciaBean.verAutorizacion(actividad.llaveTabla);\n          break;\n        case \"detalleInterrupcionAusenciaBean\":\n          await this.detalleInterrupcionAusenciaBean.verAutorizacion(actividad.llaveTabla);\n          break;\n        case \"detalleIncapacidadAusenciaBean\":\n          await this.detalleIncapacidadAusenciaBean.verAutorizacion(actividad.llaveTabla);\n          break;\n        case \"detalleLicenciaAusenciaBean\": \n          await this.detalleLicenciaAusenciaBean.verAutorizacion(actividad.llaveTabla);\n          break;\n        case \"solicitudBean\":\n          await this.solicitudBean.verAutorizacion(actividad.llaveTabla);\n          return;\n        case \"datosBeneficioBean\":\n          await this.datosBeneficioBean.verAutorizacion(actividad.llaveTabla);\n          return;\n        case \"requerimientoPMBean\":\n          await this.requerimientoPMBean.verAutorizacion(actividad.llaveTabla);\n          return;\n        case \"necesidadCapacitarBean\":\n          await this.necesidadCapacitarBean.verAutorizacion(actividad.llaveTabla);\n          return;\n        case \"detalleSolicitudPuntajeDocenteBean\":\n          await this.detalleSolicitudPuntajeDocenteBean.verAutorizacion(actividad.llaveTabla);\n          return;\n        default:\n          break;\n      }  \n      \n    }\n  }\n\n  verError(event: MouseEvent,actividad) {\n    event.stopPropagation();\n    this.showErrorDetails(actividad.observacion, 'Interno')\n  }\n\n  private showErrorDetails(mensaje: string, codigo: string): void {\n    let contenidoHtml = `<p class=\"msjError\">${mensaje}</p><p class=\"codError\"><b>Código:</b> ${codigo}</p>`;\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>`;\n\n    Swal.fire({\n      title: '<span style=\"color: var(--color-700);\">' + 'Actividad - Mensaje Interno' + '</span>',\n      html: (mensaje.length ) > 100 ? contenidoPlusHtml : contenidoHtml,\n      icon: 'error',\n      showCancelButton: false,\n      showCloseButton: true,\n      showConfirmButton: false,\n      customClass: 'my-swal',\n      didOpen: () => {\n        if ((mensaje.length  ) > 100) {\n          // Agregar estilos al botón \"Ver más\"\n          const verMasButton = document.getElementById('verMasButton');\n          verMasButton.classList.add('swal2-styled', 'swal2-cancel', 'btn-vermas' );\n\n          const OkButton = document.getElementById('Ok');\n          OkButton.classList.add('swal2-styled', 'swal2-cancel' , 'btn-ok');\n\n          // Agregar un evento al botón \"Ver más\" para mostrar todo el contenido cuando se hace clic\n          verMasButton.addEventListener('click', () => {\n            Swal.update({\n              html: contenidoHtml,\n              showConfirmButton: true,\n            });\n            this.utilsService.sleep(500).then(data => {\n              this.utilsService.resizeWindowIFrame();\n            })\n          });\n\n          OkButton.addEventListener('click', () => {\n            Swal.close();\n            this.utilsService.sleep(500).then(data => {\n              this.utilsService.resizeWindowIFrame();\n            })\n          });\n        }\n        else{\n          Swal.update({\n            html: contenidoHtml,\n            showConfirmButton: true,\n          });\n        }\n      },\n    }).then((result) => {\n      if (result.isConfirmed) {\n        this.utilsService.sleep(500).then(data => {\n          this.utilsService.resizeWindowIFrame();\n        })\n      } else if (result.dismiss === Swal.DismissReason.cancel) {\n        this.utilsService.sleep(500).then(data => {\n          this.utilsService.resizeWindowIFrame();\n        })\n      } else if (result.dismiss === Swal.DismissReason.close) {\n        this.utilsService.sleep(500).then(data => {\n          this.utilsService.resizeWindowIFrame();\n        })\n      }\n    });\n    \n  this.utilsService.sleep(500).then(data => {\n    this.utilsService.resizeWindowIFrame();\n  })\n}\n\n  regresarBPM() {\n    this.vistaVisualizar = null;\n    this.paginadorSeleccionado = [];\n    this.filtroVigente.aplicarFiltros();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"vistaVisualizar == null\">\n    <p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>\n    <h1 class=\"text-xl mb-1\">{{opcionSeleccionada}}</h1>\n    <div *ngIf=\"vigente\">\n        <div class=\"flex justify-content-between align-items-center mb-3\">\n            <app-filtro-general #filtroVigente [filtros]=\"filters\" [datatable]=\"tablaVigente\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" formControlName=\"descripcion\"\n                                    autocomplete=\"off\" (keydown)=\"filtrarEnterVigente($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                <label>{{'descripcion' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaOrigenVigente\" [autoDisplayFirst]=\"false\" formControlName=\"origen\"\n                                    [showClear]=\"true\"  (keydown)=\"filtrarEnterVigente($event)\" (keydown.enter)=\"handleEnterKey($event)\"></p-dropdown>\n                                <label>{{'origen' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" formControlName=\"solicitante\"\n                                    autocomplete=\"off\" (keydown)=\"filtrarEnterVigente($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                                <label>{{'solicita' | translate}}</label>\n                            </span>\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n            <div class=\"flex justify-content-end\" *ngIf=\"existeAutorizar\">\n                <button pButton pRipple (click)=\"accionAutorizar($event)\" label=\"{{'autoriza' | translate}}\"\n                    icon=\"glyphicons glyphicons-check\" class=\"p-button-secondary font-semibold flex-shrink-0 ml-4 mr-2\"></button>\n                <button pButton pRipple class=\"p-button p-button-outlined\" label=\"{{'noautoriza' | translate}}\"\n                    (click)=\"accionNoAutorizar()\"><i class=\"glyphicons glyphicons-remove\"></i></button>\n            </div>\n        </div>\n        <p-table #tablaVigente responsiveLayout=\"scroll\" [value]=\"actividadesVigentes\" [rows]=\"paginadorVigente.rows\"\n            [totalRecords]=\"paginadorVigente.totalRecords\" [paginator]=\"paginadorVigente.totalRecords > paginadorVigente.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [(selection)]=\"paginadorSeleccionado\"\n            [lazy]=\"true\" (onLazyLoad)=\"cargarPaginadorVigente($event)\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n            <ng-template pTemplate=\"header\">\n                <tr class=\"fondoTablaPincipal\">\n                    <th [style.width.px]=\"60\" [style.flex]=\"'0 1 auto'\">\n                        <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n                    </th>\n                    <th>{{'origen' | translate}}</th>   \n                    <th style=\"min-width: 15%\">{{'descripcion' | translate}}</th>\n                    <th style=\"min-width: 15%\">{{'solicitante' | translate}}</th>\n                    <th style=\"min-width: 30%\">{{'datosadicionales' | translate}}</th>\n                    <th>{{'orden' | translate}}</th>\n                    <th>{{'estado' | translate}}</th>\n                    <th *ngIf=\"controlFuncionService.getControlFuncionalidad('proact:limite')\">{{'fechalimite' | translate}}</th>\n                    <th>\n                        {{'inicioactividad' | translate}} \n                        <button pButton pRipple icon=\"{{iconoVigente}}\" (click)=\"ordenarVigente($event)\" class=\"p-sortable-column-icon\">\n                        </button>\n                    </th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-actividad>\n                <tr>\n                    <td [style.width.px]=\"60\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n                        <p-tableCheckbox *ngIf=\"actividad.tipoTarea == 'A'\" [value]=\"actividad\"></p-tableCheckbox>\n                    </td>\n                    <td [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\"> \n                        {{actividad.origen | workflowPipe : 'procesos'}}\n                    </td>\n                    <td style=\"min-width: 15%\" [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\"> \n                        {{actividad.descripcion}}\n                    </td>\n                    <td style=\"min-width: 15%\" [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\"> \n                        {{actividad.solicitante}}\n                    </td>\n                    <td style=\"min-width: 30%\" [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\">\n                        <div class=\"col-12 md:col-12 lg:col-12\" >\n                            <!-- Responsable -->\n                            <div class=\"p-fluid p-formgrid grid\">\n                                <div class=\"col-12 md:col-4 lg:col-4\"  >\n                                    <label class=\"font-semibold\">{{'responsable' | translate}}:</label>\n                                </div>\n                                <div class=\"col-12 md:col-8 lg:col-8\">\n                                    <label>{{actividad.nombreResponsable}}</label>\n                                </div>\n                            </div>\n                            <!-- Tarea -->\n                            <div class=\"p-fluid p-formgrid grid\">\n                                <div class=\"col-12 md:col-4 lg:col-4\"  >\n                                    <label class=\"font-semibold\">{{'tarea' | translate}}:</label>\n                                </div>\n                                <div class=\"col-12 md:col-8 lg:col-8\">\n                                    <label>{{actividad.descripcionTarea}}</label>\n                                </div>\n                            </div>\n                        </div>\n                    </td>\n                    <td [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\"> \n                        {{actividad.orden}}\n                    </td>\n                    <td [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\"> \n                        <label>{{actividad.estado | workflowPipe : 'estados'}}</label>\n                        <button pButton pRipple icon=\"glyphicons glyphicons-hand-left\" *ngIf=\"actividad.observacion != null && !saraAplicacionService.isAutoServicioPortal()\"\n                            (click)=\"verError($event, actividad)\" [rounded]=\"true\">\n                        </button>\n                    </td>\n                    <td *ngIf=\"controlFuncionService.getControlFuncionalidad('proact:limite')\" [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\"> \n                        {{actividad.fechaLimite | date : ('formatofechahora' | translate)}}\n                    </td>\n                    <td [pSelectableRow]=\"actividad\" (click)=\"ver(actividad)\"> \n                        {{actividad.inicio | date : ('formatofecha' | translate)}}\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n\n    <div *ngIf=\"!vigente\">\n        <app-filtro-general #filtroHistorico [filtros]=\"filters\" [datatable]=\"tablaHistorico\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" formControlName=\"descripcion\"\n                                autocomplete=\"off\" (keydown)=\"filtrarEnterHistorico($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                            <label>{{'descripcion' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [options]=\"listaOrigenHistorico\" [autoDisplayFirst]=\"false\" formControlName=\"origen\"\n                                [showClear]=\"true\"  (keydown)=\"filtrarEnterHistorico($event)\" (keydown.enter)=\"handleEnterKey($event)\"></p-dropdown>\n                            <label>{{'origen' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" formControlName=\"solicitante\"\n                                autocomplete=\"off\" (keydown)=\"filtrarEnterHistorico($event)\" (keydown.enter)=\"handleEnterKey($event)\" />\n                            <label>{{'solicita' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n\n        <p-table #tablaHistorico responsiveLayout=\"scroll\" [value]=\"actividadesHistoricas\" [rows]=\"paginadorHistorico.rows\"\n            [totalRecords]=\"paginadorHistorico.totalRecords\" [paginator]=\"paginadorHistorico.totalRecords > paginadorHistorico.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n            [lazy]=\"true\" (onLazyLoad)=\"cargarPaginadorHistorico($event)\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n            <ng-template pTemplate=\"header\">\n                <tr class=\"fondoTablaPincipal\">\n                    <th>{{'origen' | translate}}</th>   \n                    <th style=\"min-width: 15%\">{{'descripcion' | translate}}</th>\n                    <th style=\"min-width: 15%\">{{'solicitante' | translate}}</th>\n                    <th style=\"min-width: 30%\">{{'datosadicionales' | translate}}</th>\n                    <th>{{'orden' | translate}}</th>\n                    <th>{{'estado' | translate}}</th>\n                    <th *ngIf=\"controlFuncionService.getControlFuncionalidad('proact:limite')\">{{'fechalimite' | translate}}</th>\n                    <th>\n                        {{'inicioactividad' | translate}} \n                        <button pButton pRipple icon=\"{{iconoHistorico}}\" (click)=\"ordenarHistorico($event)\" class=\"p-sortable-column-icon\">\n                        </button>\n                    </th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-actividad>\n                <tr [pSelectableRow]=\"actividad\">\n                    <td> \n                        {{actividad.origen | workflowPipe : 'procesos'}}\n                    </td>\n                    <td style=\"min-width: 15%\"> \n                        {{actividad.descripcion}}\n                    </td>\n                    <td style=\"min-width: 15%\"> \n                        {{actividad.solicitante}}\n                    </td>\n                    <td style=\"min-width: 30%\">\n                        <div class=\"col-12 md:col-12 lg:col-12\" >\n                            <!-- Responsable -->\n                            <div class=\"p-fluid p-formgrid grid\">\n                                <div class=\"col-12 md:col-4 lg:col-4\"  >\n                                    <label class=\"font-semibold\">{{'responsable' | translate}}:</label>\n                                </div>\n                                <div class=\"col-12 md:col-8 lg:col-8\">\n                                    <label>{{actividad.nombreResponsable}}</label>\n                                </div>\n                            </div>\n                            <!-- Tarea -->\n                            <div class=\"p-fluid p-formgrid grid\">\n                                <div class=\"col-12 md:col-4 lg:col-4\"  >\n                                    <label class=\"font-semibold\">{{'tarea' | translate}}:</label>\n                                </div>\n                                <div class=\"col-12 md:col-8 lg:col-8\">\n                                    <label>{{actividad.descripcionTarea}}</label>\n                                </div>\n                            </div>\n                        </div>\n                    </td>\n                    <td> \n                        {{actividad.orden}}\n                    </td>\n                    <td> \n                        {{actividad.estado | workflowPipe : 'estados'}}\n                    </td>\n                    <td *ngIf=\"controlFuncionService.getControlFuncionalidad('proact:limite')\"> \n                        {{actividad.fechaLimite | date : ('formatofechahora' | translate)}}\n                    </td>\n                    <td> \n                        {{actividad.inicio | date : ('formatofecha' | translate)}}\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n</div>\n\n<app-mantenimiento-detalle-novedad *ngIf=\"vistaVisualizar == 'NOVEDAD'\" (regresar)=\"regresarBPM()\"></app-mantenimiento-detalle-novedad>\n\n<app-vacacion-ausencia-programadas *ngIf=\"vistaVisualizar == 'VACACION'\" (regresar)=\"regresarBPM()\"></app-vacacion-ausencia-programadas>\n\n<app-vacacion-ausencia-interrupcion *ngIf=\"vistaVisualizar == 'INTERRUPCION'\" (regresar)=\"regresarBPM()\"></app-vacacion-ausencia-interrupcion>\n\n<app-incapacidad-ausencia-programadas *ngIf=\"vistaVisualizar == 'INCAPACIDAD'\" (regresar)=\"regresarBPM()\"></app-incapacidad-ausencia-programadas>\n\n<app-licencia-ausencia-programadas *ngIf=\"vistaVisualizar == 'LICENCIA'\" (regresar)=\"regresarBPM()\"></app-licencia-ausencia-programadas>\n\n<app-detalle-solicitud *ngIf=\"vistaVisualizar == 'SOLICITUD_EMPLEADO'\" (regresar)=\"regresarBPM()\"></app-detalle-solicitud>\n\n<app-detalle-solicitud-viatico *ngIf=\"vistaVisualizar == 'VIATICO'\" (regresar)=\"regresarBPM()\"></app-detalle-solicitud-viatico>\n\n<app-detalle-beneficiario *ngIf=\"vistaVisualizar == 'BENEFICIO'\" (regresar)=\"regresarBPM()\"></app-detalle-beneficiario>\n\n<app-requerimiento-pm *ngIf=\"vistaVisualizar == 'REQUERIMIENTO'\" (setVistaVisualizar)=\"regresarBPM()\" ></app-requerimiento-pm>\n\n<app-detalle-necesidad-capacitacion *ngIf=\"vistaVisualizar == 'CAPACITACION'\" (regresar)=\"regresarBPM()\" ></app-detalle-necesidad-capacitacion>\n\n<app-editar-contratacion *ngIf=\"vistaVisualizar == 'CONTRATACION'\" (regresar)=\"regresarBPM()\" ></app-editar-contratacion>\n\n<app-detalle-solicitud-puntaje-docente *ngIf=\"vistaVisualizar == 'PUNTAJE_DOCENTE'\" (regresar)=\"regresarBPM()\" ></app-detalle-solicitud-puntaje-docente>\n\n<app-editar-proceso-seleccion *ngIf=\"vistaVisualizar == 'CONVOCATORIA'\" (regresar)=\"regresarBPM()\" ></app-editar-proceso-seleccion>\n\n<app-popup-motivo-no-autoriza *ngIf=\"mostrarMotivoNoAutoriza\" [mostrarPopup]=\"mostrarMotivoNoAutoriza\" \n    (regresar)=\"setNoAutorizacion($event)\"></app-popup-motivo-no-autoriza>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { catchError, Observable, throwError } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CapacitacionHojaVidaService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  capacitacionInternaHojaVida(objeto: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/hojavida/capacitacion/interna`, objeto).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","export class ValoresTrayectoriaModel{\n\n\tcampo: string;\n\ttipo: string;\n\ttitulo: string;\n\tlongitud: number;\n\tlistado: boolean;\n\t\n\t\t\n\t\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FaseGestionModel } from '../../../models/FaseGestionModel';\nimport { GeneralModel, GeneralService } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-lista-periodo-evaluacion',\n    templateUrl: './lista-periodo-evaluacion.component.html',\n    styleUrls: ['./lista-periodo-evaluacion.component.scss'],\n    standalone: true,\n    imports: [DialogModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule]\n})\nexport class ListaPeriodoEvaluacionComponent implements OnInit {\n  @Output() aplicarDestinoOcultar: EventEmitter<any> = new EventEmitter<any>();\n  public filtro: FaseGestionModel = new FaseGestionModel();\n  public listaFaseGestionDTOs: FaseGestionModel[] = [];\n  mostrarPopup: boolean;\n  constructor(private generalSvc: GeneralService) { }\n\n  ngOnInit(): void {\n  }\n\n  public async inicializar(destino: string,gestionPeriodo: string): Promise<void> {\n\t\ttry {\n\t\t\tthis.filtro = new FaseGestionModel();\n\t\t\tthis.filtro.gestionPeriodo = (gestionPeriodo);\n\t\t\tthis.listaFaseGestionDTOs = await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO',null,false,this.filtro)).toPromise();\n\t\t\tthis.mostrarPopup = true;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t} \n\t}\n\n\tpublic seleccion(evento): void{\n\t\ttry{\n\t\t\tlet dato = evento.data;\n\t\t\tthis.aplicarDestinoOcultar.emit(dato.llave);\n\t\t\tthis.ocultar();\n\t\t}catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn ;\n\t}\n\n\tocultar(){\n\t\tthis.mostrarPopup = false;\n\t  }\n\n  \n\n}\n","<p-dialog #dialog id='popupcargo' header=\"{{'filtro' | translate}} {{'cargo' | translate}}\" [(visible)]=\"mostrarPopup\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n    [contentStyle]=\"{width: '900px'}\">\n\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listaFaseGestionDTOs\" [rows]=\"10\"\n        [totalRecords]=\"listaFaseGestionDTOs.length\" [paginator]=\"listaFaseGestionDTOs.length > 10\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n        [lazy]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" (onRowSelect)=\"seleccion($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th class=\"w-6rem\">{{'fase' | translate}}</th>\n                <th class=\"w-6rem\">{{'orden' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-fasegestion let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr [pSelectableRow]=\"fasegestion\">\n                <td class=\"w-6rem\">{{fasegestion.descripcion}}</td>\n                <td class=\"w-6rem\">{{fasegestion.orden}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\n\nexport class MetaFaseGestionModel extends UnionModel {\n\n\t\n\tplanillaGestion: string;\n\tfaseGestion: string;\n\tdescripcionFase: string;\n\ttema: string;\n\tindicador: string;\n\tprioridad: string;\n\taccion: string;\n\tmedida: string;\n\tesperado: string;\n\tobjetivo: string;\n\tlista1: string;\n\tarea: string;\n\tresponsable: string;\n\tpeso: number;\n\tpeso2: number;\n\tacuerdo: number;\n\tporcentaje1: number;\n\tporcentajeacuerdo: number;\n\talcance1: number;\n\talcance2: number;\n\talcance3: number;\n\tfechaInicio: Date;\n\tfechaFinal: Date;\n\tcadena1: string;\n\tcadena2: string;\n\tcadena3: string;\n\tcadena4: string;\n\tmensaje: string;\n\tprocesoGestion: string;\n\tdescripcionProcesoGestion: string;\n\torigen: string;\n\n\tempresa: number;\n\tnombreEmpresa: string;\n\tcargo: string;\n\tcargoNombre: string;\n\tunidadOrganizacional: string;\n\tunidadCliente: string;\n\tunidadOrganizacionalNombre: string;\n\tunidadesDependientes: string;\n\tobjetivoGeneral: string;\n\tcompetencia: string;\n\ttipoCompetencia: string;\n\tnombreCompetencia: string;\n\tcodigo: string;\n\tlogin: string;\n\trol: string;\n\tgestionPeriodo: string;\n\t\n\t\n\t}\n","import { UnionModel } from 'general-library-union'\n\nexport class PuntajeUnidadModel extends UnionModel {\n\n\tempresa: number;\n\tunidad: string;\n\tpuntaje: number;\n\tplanillaGestion: string;\n\tobservacion: string;\n\n\tnombreEmpresa: string;\n\tnombreUnidad: string;\n\tlogin: string;\n\trol: string;\n\n\tfaseGestion: string;\n\tprogramacion: Date;\n\tlimite: Date;\n\torigen: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tautomatica: string;\n\n\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'periodoEvaluacion',\n    standalone: true\n})\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PeriodoEvaluacionPipe implements PipeTransform {\n\n   ABIERTO = \"A\";\n\t CERRADO = \"C\";\n\t CONTROLFECHA=\"F\";\n\t\n\t ABIERTODESC = \"No hay un rango definido\";\n\t CERRADODESC = \"Periodo fijo de tiempo\";\n\t CONTROLFECHADESC=\"Periodo fijo, control de fecha\";\n\t\n\n   public TIPOEVALUADOR =  [\n\n\t{codigo: this.CERRADO, nombre: this.CERRADODESC},\n    {codigo: this.ABIERTO, nombre: this.ABIERTODESC},\n    {codigo: this.CONTROLFECHA, nombre: this.CONTROLFECHADESC},\n\t\t\n\t]\n\t\n\t NOAPLICASUB = \"N\";\n\t CONSUBALTERNO = \"C\";\n\t SINSUBALTERNO = \"S\";\n\n\t NOAPLICASUB_DESC = \"No aplica\";\n\t CONSUBALTERNO_DESC = \"Personas con subalterno\";\n\t SINSUBALTERNO_DESC = \"Personas sin sublaterno\";\n\n   public TIPOSUBALTERNO=  [\n\n\t\t{codigo: this.NOAPLICASUB, nombre: this.NOAPLICASUB_DESC},\n    {codigo: this.CONSUBALTERNO, nombre: this.CONSUBALTERNO_DESC},\n    {codigo: this.SINSUBALTERNO, nombre: this.SINSUBALTERNO_DESC},\n\t\t\n\t]\n\n\t EVALUADOR = \"E\";\n\t AUTORIZADOR = \"A\";\n\t AUTORIZAEVALUADO = \"Y\";\n\t\n\t EVALUADORDESC = \"Actor relacionado elabora evaluacion - no hay autorizaci\"+Constantes.O_TIDLE_MIN+\"n\";\n\t AUTORIZADORDESC = \"Autoevaluaci\"+Constantes.O_TIDLE_MIN+\"n - Actor relacionado autoriza\";\n\t AUTORIZAEVALUADORDESC = \"Actor relacionado elabora evaluaci\"+Constantes.O_TIDLE_MIN+\"n - Evaluado Autoriza\";\n\t\n   public TIPOROL=  [\n\n\t\t{codigo: this.EVALUADOR, nombre: this.EVALUADORDESC},\n    {codigo: this.AUTORIZADOR, nombre: this.AUTORIZADORDESC},\n    {codigo: this.AUTORIZAEVALUADO, nombre: this.AUTORIZAEVALUADORDESC},\n\t\t\n\t]\n\t\n\t SOLOTITULAR = \"T\";\n\t QUIENOCUPA = \"O\";\n\t\n\t SOLOTITULARDESC = \"Solamente Titular\";\n\t QUIENOCUPADESC = \"Quien lo Ocupa\";\n\n   public TIPOEVALUADO=  [\n\n\t\t{codigo: this.SOLOTITULAR, nombre: this.SOLOTITULARDESC},\n    {codigo: this.QUIENOCUPA, nombre: this.QUIENOCUPADESC},\n    \n\t]\n\t\n\n\t SINOTIFICAR = \"Notificar al correo\";\n\t NONOTIFICAR = \"No requiere notificar\";\n\n   public NOTIFICARCORREO=  [\n\n\t\t{codigo: Constantes.SI_STRING, nombre: this.SINOTIFICAR},\n    {codigo: Constantes.NO_STRING, nombre: this.NONOTIFICAR},\n    \n\t]\n\n\tpublic transform(value: unknown, ...args: unknown[]): any {\n    let result = value;\n        if (args[0] == 'tipoEvaluador') { this.TIPOEVALUADOR.forEach(data => { if (data.codigo === value) { result = data.nombre } }) }\n        return result;\n  }\n\n}\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { PlanillaGestionModel } from '../../../models/PlanillaGestionModel';\nimport { CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { PeriodoEvaluacionPipe } from '../../../pipes/periodo-evaluacion.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ConfirmationService } from 'primeng/api';\nimport { ListadoFaseGestionHojaComponent } from '../../evaluacion/listado-fase-gestion-hoja/listado-fase-gestion-hoja.component';\nimport { ListaPeriodoEvaluacionComponent } from '../lista-periodo-evaluacion/lista-periodo-evaluacion.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n    selector: 'app-popup-periodo-evaluacion',\n    templateUrl: './popup-periodo-evaluacion.component.html',\n    styleUrls: ['./popup-periodo-evaluacion.component.scss'],\n    standalone: true,\n    imports: [DialogModule, FormsModule, InputTextModule, DropdownModule, CalendarModule, NgIf, ButtonDirective, Ripple, ListadoFaseGestionHojaComponent, ListaPeriodoEvaluacionComponent, TranslateModule]\n})\nexport class PopupPeriodoEvaluacionComponent implements OnInit {\n\t@ViewChild('listadoFaseGHoja') listadoFaseGHoja: ListadoFaseGestionHojaComponent;\n\t@ViewChild('listadoPeriodoEvaluacion') listadoPeriodoEvaluacion: ListaPeriodoEvaluacionComponent;\n\t@Output() setContenido: EventEmitter<any> = new EventEmitter<any>();\n\n\n\tlistaEvaluador: any[] = [];\n\ttipoEvaluador: any[] = [];\n\tplanillaGestionDTO: PlanillaGestionModel = new PlanillaGestionModel();\n\tnuevo: boolean;\n\tdestino: string;\n\tmostrarPopup: boolean;\n\tmostrar: boolean\n\tvistaVisualizar: string;\n\tclickGuardar: boolean;\n\tyaHayAbierto: boolean;\n\n\tconstructor(public utilsService: UtilsService, public periodoEvaluacionCons: PeriodoEvaluacionPipe, private generalSvc: GeneralService, private notificacionesService: ToastService,\n\t\tprivate generalPipe: GeneralPipe, private confirmationService: ConfirmationService, public controlFuncionalidad: CargarControlFuncionalidadService) { }\n\n\tngOnInit(): void {\n\t\tthis.listaEvaluador = this.periodoEvaluacionCons.TIPOEVALUADOR;\n\t\tthis.tipoEvaluador = this.periodoEvaluacionCons.TIPOEVALUADOR;\n\t}\n\n\n\tpublic inicializar(planillaGestionDTO: PlanillaGestionModel, nuevo: boolean, destino: string): void {\n\t\tthis.planillaGestionDTO = planillaGestionDTO;\n\t\tthis.nuevo = nuevo;\n\t\tthis.destino = (destino);\n\t\tthis.mostrarPopup = true;\n\n\t}\n\n\tprivate validar(): boolean {\n\t\tlet validador = true;\n\t\tthis.clickGuardar = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.planillaGestionDTO.tipoEvaluador);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.planillaGestionDTO.descripcion);\n\t\tif (this.isMostrarFechas()) {\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.planillaGestionDTO.fechaInicial);\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.planillaGestionDTO.fechaFinal);\n\t\t}\n\n\t\treturn validador;\n\t}\n\n\tpublic async actualizar() {\n\t\ttry {\n\t\t\tif (this.validar()) {\n\t\t\t\tthis.clickGuardar = false;\n\t\t\t\tif (this.nuevo) {\n\t\t\t\t\tthis.planillaGestionDTO.llavePlanillaGestion = (this.utilsService.generarLlave());\n\t\t\t\t\tthis.planillaGestionDTO.tipo = (\"R\");\n\t\t\t\t\tthis.planillaGestionDTO = await this.generalSvc.crearRegistro(new GeneralModel('PlanillaGestionDTO', null, false, this.planillaGestionDTO)).toPromise();\n\t\t\t\t\tthis.notificacionesService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n\t\t\t\t} else {\n\t\t\t\t\tawait this.generalSvc.update(new GeneralModel('PlanillaGestionDTO', null, false, this.planillaGestionDTO)).toPromise();\n\t\t\t\t\tthis.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\t\t\t}\n\t\t\t\t// this.aplicarDestinoOcultar(null);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic eliminar(event) {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tacceptLabel: Constantes.SI_STRING,\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\taccept: () => {\n\t\t\t\tthis.setEliminar();\n\t\t\t},\n\t\t\treject: () => {\n\t\t\t}\n\t\t});\n\t\treturn null;\n\t}\n\n\tpublic async setEliminar(): Promise<void> {\n\t\ttry {\n\t\t\tawait this.generalSvc.delete(new GeneralModel('PlanillaGestionDTO', null, false, this.planillaGestionDTO)).toPromise();\n\t\t\tthis.notificacionesService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR)\n\t\t\t// this.aplicarDestinoOcultar(null);\n\t\t\t// getBean(ListaPlanillaGestionBean.class).regresar();\n\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic verListadoFacesGestion(): void {\n\t\tthis.setListadoFacesGestion(null);\n\t\treturn null;\n\t}\n\n\tpublic async setListadoFacesGestion(llaveFaseGestionDTO: string): Promise<void> {\n\t\ttry {\n\t\t\tlet url = window.location.href;\n\t\t\tthis.vistaVisualizar = 'listadoFaseGestionHoja';\n\t\t\tawait this.utilsService.sleep(10);\n\t\t\tthis.listadoFaseGHoja.botonRegresar = (true);\n\t\t\tawait this.listadoFaseGHoja.traerFasePeriodo(this.planillaGestionDTO.llavePlanillaGestion, llaveFaseGestionDTO, this.planillaGestionDTO.gestionPeriodo);\n\t\t\tthis.setContenido.emit(true);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tasync setContenidoPagina(event) {\n\t\tthis.vistaVisualizar = event;\n\t\tawait this.utilsService.sleep(10);\n\t\tthis.setContenido.emit(false);\n\t}\n\n\tpublic verPopupListaPeriodoEvaluacionesBean(): string {\n\t\ttry {\n\t\t\tthis.mostrarPopup = false;\n\t\t\tthis.listadoPeriodoEvaluacion.inicializar(\"#{popupPeriodoEvaluacionBean.listadoFacesGestion}\", this.planillaGestionDTO.gestionPeriodo);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic cambiarPeriodo(eve) {\n\t\tif (this.periodoEvaluacionCons.ABIERTO == (eve.value)) {\n\t\t\tthis.planillaGestionDTO.fechaInicial = (null);\n\t\t\tthis.planillaGestionDTO.fechaFinal = (null);\n\t\t}\n\t}\n\n\n\n\tpublic setPlanillaGestionDTO(planillaGestionDTO: PlanillaGestionModel): void {\n\t\tthis.planillaGestionDTO = planillaGestionDTO;\n\t}\n\n\tpublic setMostrar(mostrar: boolean): void {\n\t\tthis.mostrar = mostrar\n\t}\n\n\tpublic setNuevo(nuevo: boolean): void {\n\t\tthis.nuevo = nuevo;\n\t}\n\n\tpublic isMostrarFechas(): boolean {\n\t\treturn this.periodoEvaluacionCons.ABIERTO != (this.planillaGestionDTO.tipoEvaluador);\n\t}\n\n\tocultar() {\n\t\tthis.mostrarPopup = false;\n\t}\n\n\n\n\n}\n","\n<p-dialog #dialog id='popupcargo' header=\"{{'filtro' | translate}} {{'cargo' | translate}}\" [(visible)]=\"mostrarPopup\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n    [contentStyle]=\"{width: '900px'}\">\n\n<div class=\"p-fluid p-formgrid grid mt-1\">\n    <div class=\"field col-12 md:col-4 lg:col-8\">\n        <span class=\"p-float-label\">\n            <input pInputText type=\"text\" id=\"descripcion\"\n                [(ngModel)]=\"planillaGestionDTO.descripcion\" maxlength=\"20\"\n                [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(planillaGestionDTO.descripcion) ? 'ng-invalid ng-dirty' : ''\" />\n            <label htmlFor=\"descripcion\">{{('descripcion') | translate}} *</label>\n        </span>\n    </div>\n    <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n            <p-dropdown id=\"columna\" [options]=\"listaEvaluador\" optionValue=\"codigo\"\n                [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(planillaGestionDTO.tipoEvaluador) ? 'ng-invalid ng-dirty' : ''\"\n                [(ngModel)]=\"planillaGestionDTO.tipoEvaluador\" optionLabel=\"nombre\"\n                [autoDisplayFirst]=\"false\"></p-dropdown>\n            <label htmlFor=\"columna\">{{'periodo' | translate}} *</label>\n        </span>\n    </div>\n    <div class=\"field col-12 md:col-3 lg:col-6\">\n        <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"planillaGestionDTO.fechaInicial\" dateFormat=\"dd/mm/yy\"\n                [showIcon]=\"true\" appendTo=\"body\" autoZIndex=\"false\">\n            </p-calendar>\n            <label htmlFor=\"id_enganche\">{{'fechainicial' | translate}} *</label>\n        </span>\n    </div>\n    <div class=\"field col-12 md:col-3 lg:col-6\" >\n        <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"planillaGestionDTO.fechaFinal\" dateFormat=\"dd/mm/yy\"\n                [showIcon]=\"true\" appendTo=\"body\" autoZIndex=\"false\">\n            </p-calendar>\n            <label htmlFor=\"id_enganche\">{{'fechafinal' | translate}} *</label>\n        </span>\n    </div>\n</div>\n<div class=\"flex justify-content-end\">\n    <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n        *ngIf=\"nuevo && (controlFuncionalidad.getControlFuncionalidad('pereva:crearNuevo'))\"\n        icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n        (click)=\"actualizar()\">\n    </button>\n    <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n        *ngIf=\"!nuevo && (controlFuncionalidad.getControlFuncionalidad('pereva:crearNuevo'))\"\n        icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n        (click)=\"actualizar()\">\n    </button>\n    <button pButton pRipple class=\"ml-2 p-button-outlined\"\n        *ngIf=\"!nuevo && controlFuncionalidad.getControlFuncionalidad('pereva:eliminar')\"\n        icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n        (click)=\"eliminar($event)\">\n    </button>\n</div>\n</p-dialog>\n<div *ngIf=\"this.vistaVisualizar == 'listadoFaseGestionHoja'\">\n    <app-listado-fase-gestion-hoja #listadoFaseGHoja (regresar)=\"setContenidoPagina($event)\"></app-listado-fase-gestion-hoja>\n</div>\n\n<app-lista-periodo-evaluacion #listadoPeriodoEvaluacion (aplicarDestinoOcultar)=\"setListadoFacesGestion($event)\"></app-lista-periodo-evaluacion>\n\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { PlanillaGestionModel } from '../models/PlanillaGestionModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PlanillaGestionService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n   }\n\n   private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n\n  insertarIndicadores(general?: GeneralModel): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/planillaGestion/insertarIndicadores`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerProceso(general: PlanillaGestionModel): Observable<any[]> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/planillaGestion/obtenerProceso`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { MetaFaseGestionModel } from '../../../models/MetaFaseGestionModel';\nimport { PlanillaGestionModel } from '../../../models/PlanillaGestionModel';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { PeriodoEvaluacionPipe } from '../../../pipes/periodo-evaluacion.pipe';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { PlanillaGestionService } from '../../../services/planilla-gestion.service';\nimport { DatoorganizacionModel } from '../../../models/DatoorganizacionModel';\nimport { datoOrganizacionService } from '../../../services/dato-organizacion.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { FaseGestionModel } from '../../../models/FaseGestionModel';\nimport { UnidadOrganizacionModel } from '../../../models/UnidadOrganizacionModel';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperCargoComponent } from '../../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ConfirmationService } from 'primeng/api';\nimport { EditorModule } from 'primeng/editor';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputHelperCargoComponent as InputHelperCargoComponent_1 } from '../../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { InputHelperUnidadComponent as InputHelperUnidadComponent_1 } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { NgIf, NgSwitch, NgSwitchCase } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FieldsetModule } from 'primeng/fieldset';\n\n\n@Component({\n    selector: 'app-periodo-meta-fase-gestion',\n    templateUrl: './periodo-meta-fase-gestion.component.html',\n    styleUrls: ['./periodo-meta-fase-gestion.component.scss'],\n    standalone: true,\n    imports: [FieldsetModule,CalendarModule,InputTextareaModule,InputNumberModule,TableModule, TemplateTablaVaciaComponent,ConfirmPopupModule, ButtonDirective, Ripple, DropdownModule, FormsModule, NgIf, InputHelperUnidadComponent_1, InputHelperCargoComponent_1, ReactiveFormsModule, InputTextModule, EditorModule, NgSwitch, NgSwitchCase, TranslateModule,]\n})\nexport class PeriodoMetaFaseGestionComponent implements OnInit {\n\t@Output() regresar: EventEmitter<any> = new EventEmitter<any>();\n\t@ViewChild('inputUnidad') inputUnidad : InputHelperUnidadComponent;\n\t@ViewChild('inputCargo') inputCargo : InputHelperCargoComponent;\n\tmostrarEvaInd: boolean;\n\tmostrarCamposObjetivoEspcifico: boolean;\n\tlistaUnidadesDependientes: any[];\n\tmetaFaseGestionDTO: MetaFaseGestionModel = new MetaFaseGestionModel();\n\tplanillaGestionDTO: PlanillaGestionModel = new PlanillaGestionModel();\n\tlistaEmpresas: any[];\n\tlistaObjetivo: any[];\n\tlistaMetaLista1: any[];\n\tlistaMetaLista2: any[];\n\tlistaMetaLista3: any[];\n\tlistaFases: any[] = [];\n\tlistaProceso: any[] = [];\n\tlistaPrioridad: any[] = [];\n\tlistaCampos: DatoorganizacionModel[] = [];\n\tnuevo: boolean;\n\tclickGuardar: boolean;\n\tcodigoRelacionado: boolean;\n\tvalidando: boolean;\n\t\n\n\tconstructor(public selectListEvaluaciones: SelectListEvaluacionesService, public periodoEvaluacionPipe: PeriodoEvaluacionPipe, private parametrosEvaluacionPipe: ParametrosEvaluacionPipe, private planillaGestionSvc: PlanillaGestionService,\n\t\tprivate datoOrganizacionSvc: datoOrganizacionService, private authService: AuthService, private saraAplicationService: SaraAplicacionService, private generalSvc: GeneralService, public utilsService: UtilsService,public translateService: TranslateService,\n\t\tprivate notificationBusService: ToastService,private generalPipe: GeneralPipe,private controlFuncionalidadSvc : CargarControlFuncionalidadService,private confirmationService: ConfirmationService, public translateSvc: TranslateService\n\t) { }\n\n\tngOnInit(): void {\n\t}\n\n\tpublic async init(metaFaseGestionDTO: MetaFaseGestionModel, planillaGestionDTO: PlanillaGestionModel, unidadFiltro: UnidadUsuarioModel): Promise<void> {\n\t\tthis.mostrarEvaInd = false;\n\t\tthis.mostrarCamposObjetivoEspcifico = false;\n\t\ttry {\n\t\t\tif (metaFaseGestionDTO.llaveTabla != null) {\n\t\t\t\tif (\"E\" == (metaFaseGestionDTO.origen)) {\n\t\t\t\t\tthis.mostrarCamposObjetivoEspcifico = true;\n\n\t\t\t\t} else {\n\t\t\t\t\tthis.mostrarEvaInd = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.listaUnidadesDependientes = [];\n\t\t\tthis.listaUnidadesDependientes.push({ key: Constantes.CONSTANTE_SI, label: \"Incluir unidades dependientes\" });\n\t\t\tthis.listaUnidadesDependientes.push({ key: Constantes.CONSTANTE_NO, label: \"Unicamente para la unidad\" });\n\t\t\tthis.metaFaseGestionDTO = new MetaFaseGestionModel()\n\t\t\tthis.metaFaseGestionDTO = (metaFaseGestionDTO);\n\t\t\tthis.planillaGestionDTO = planillaGestionDTO;\n\t\t\tthis.listaEmpresas = await this.selectListEvaluaciones.listaEmpresa();\n\n\t\t\tthis.cargarListaCamposObjetivo();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tprivate async cargarListaCamposObjetivo(): Promise<void> {\n\t\ttry {\n\t\t//TODO Definir como se deberian sacar los objetivos, ya que no se tiene la unidad ni la llave de gestionhojavid\n\t\tthis.listaObjetivo = [];\n\t\tthis.listaMetaLista1 = await this.selectListEvaluaciones.getLista1GestionPeriodo(this.planillaGestionDTO.gestionPeriodo, this.parametrosEvaluacionPipe.LISTA_01);\n\t\tthis.listaMetaLista2 = await this.selectListEvaluaciones.getLista1GestionPeriodo(this.planillaGestionDTO.gestionPeriodo, this.parametrosEvaluacionPipe.LISTA_02);\n\t\tthis.listaMetaLista3 = await this.selectListEvaluaciones.getLista1GestionPeriodo(this.planillaGestionDTO.gestionPeriodo, this.parametrosEvaluacionPipe.LISTA_03);\n\t\tthis.listaPrioridad = this.selectListEvaluaciones.getSelectListPrioridad();\n\t\tthis.listaProceso = [];\n\t\tlet planilla: PlanillaGestionModel = new PlanillaGestionModel();\n\t\tplanilla.gestionPeriodo = (this.planillaGestionDTO.gestionPeriodo);\n\t\tplanilla.tipoEvaluador = (\"M\");\n\t\tplanilla.tipo = 'B'\n\t\tthis.listaProceso = (await this.generalSvc.queryForList(new GeneralModel('PlanillaGestionDTO', null, false, planilla)).toPromise()).map(data => ({key:data.llavePlanillaGestion, label:data.descripcion}));\n\t\tthis.listaFases = [];\n\t\tthis.listaFases = (await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO', null, false, { gestionPeriodo: this.planillaGestionDTO.gestionPeriodo })).toPromise()).map(data => ({key:data.llave, label:data.descripcion}));\n\t\tthis.listaCampos = [];\n\t\tif (!this.isNuevo()) {\n\t\t\tthis.cargarCampos(this.metaFaseGestionDTO.procesoGestion);\n\t\t}\t\t\n\t\t} catch (error) {\n\t\t\tconsole.error(error)\n\t\t}\n\t}\n\n\tprivate async cargarCampos(procesoGestion: string): Promise<void> {\n\t\ttry {\n\t\t\tif (procesoGestion != null) {\n\t\t\t\tthis.listaCampos = [];\n\t\t\t\tlet listaDatoOrganizacion: DatoorganizacionModel[] = await this.datoOrganizacionSvc.columnaGestionMeta(parseInt(this.authService.getTokenKey('numeroEmpresa')), procesoGestion).toPromise();\n\t\t\t\t//No insertar en la lista los campos de seguimiento, ya que en esta parte no se definen\n\t\t\t\tfor (const datoOrganizacion of listaDatoOrganizacion) {\n\t\t\t\t\tif (!datoOrganizacion.campo.includes(\"seguimiento_\")) {\n\t\t\t\t\t\tthis.listaCampos.push(datoOrganizacion);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.listaCampos = [];\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic cambiarProcesoGestion(evento) {\n\t\ttry{if (\"E\" == (this.metaFaseGestionDTO.origen)) {\n\t\t\tthis.mostrarCamposObjetivoEspcifico = false;\n\t\t\tif (evento != null && evento.value != null) {\n\t\t\t\tthis.mostrarCamposObjetivoEspcifico = true;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.mostrarEvaInd = false;\n\t\t\tif (evento != null && evento.value != null) {\n\t\t\t\tthis.cargarCampos(evento.value.toString());\n\t\t\t\tthis.mostrarEvaInd = true;\n\t\t\t}\n\t\t}\n\t\treturn null;}\n\t\tcatch(error){\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\tpublic async cambioEmpresa(vce?) {\n\t\ttry {\n\t\t\tthis.metaFaseGestionDTO.unidadOrganizacional = (null);\n\t\t\tthis.metaFaseGestionDTO.unidadOrganizacionalNombre = (null);\n\t\t\tthis.metaFaseGestionDTO.cargo = (null);\n\t\t\tthis.metaFaseGestionDTO.cargoNombre = (null);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic setUnidad(unidad: UnidadOrganizacionalModel): void {\n\t\ttry {\n\t\t\tthis.metaFaseGestionDTO.empresa = (unidad.empresa);\n\t\t\tthis.metaFaseGestionDTO.unidadOrganizacional = (unidad.unidad);\n\t\t\tthis.metaFaseGestionDTO.unidadOrganizacionalNombre = (unidad.nombreUnidad);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic setCargoPopup(cargoDTO: CargoModel): void {\n\t\ttry {\n\t\t\tthis.metaFaseGestionDTO.empresa = (cargoDTO.empresa);\n\t\t\tthis.metaFaseGestionDTO.cargoNombre = (cargoDTO.descripcion);\n\t\t\tthis.metaFaseGestionDTO.cargo = (cargoDTO.cargo);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\tpublic async crearMetaObjetivo(): Promise<void>{\n\t\ttry {\n\t\t\tthis.metaFaseGestionDTO.mensaje = (null);\n\t\t\tlet validar= this.validar();\n\t\t\tif(!validar){\n\t\t\t\tthis.metaFaseGestionDTO.mensaje = (\"Campos requeridos no han sido diligenciados\");\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.validando = false;\n\t\t\tif (this.mostrarCamposObjetivoEspcifico &&   this.utilsService.isNotBlank(this.metaFaseGestionDTO.codigo))  {\n\t\t\t\t validar = await this.generalSvc.cantidadRegistros(new GeneralModel('MetaFaseGestionDTO','MetaFaseGestion.verificaCodigoMeta',false,this.metaFaseGestionDTO)).toPromise() == 0;\n\t\t\t\tif(!validar){\n\t\t\t\t\tthis.notificationBusService.showError(\"Codigo ya relacionado\");\n\t\t\t\t\tthis.codigoRelacionado = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.metaFaseGestionDTO.planillaGestion = (this.planillaGestionDTO.llavePlanillaGestion);\n\t\t\t// this.metaFaseGestionDTO = metaFaseGestionSvc.insertarMetaFaseGestion(getDataSource(), metaFaseGestionDTO);\n\t\t\tif(this.metaFaseGestionDTO.llaveTabla == null){\n\t\t\t\tthis.metaFaseGestionDTO = await this.generalSvc.crearRegistro(new GeneralModel('MetaFaseGestionDTO',null,false,this.metaFaseGestionDTO)).toPromise();\n\t\t\t}else{\n\t\t\t\tawait this.generalSvc.update(new GeneralModel('MetaFaseGestionDTO',null,false,this.metaFaseGestionDTO)).toPromise();\n\t\t\t}\n\t\t\tif(this.isNuevo()){\n\t\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n\t\t\t}else{\n\t\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\t\t}\n\t\t\t\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tprivate validar(): boolean {\n\t\tthis.validando = true;\n\t\tlet validador=true;\n\t\tif (\"M\" == (this.metaFaseGestionDTO.origen)) {\n\t\t\t// Class<?> clase = metaFaseGestionDTO.getClass();\n\t\t\t// Method[] metodos = clase.getMethods();\n\t\t\tlet metodos = Object.getOwnPropertyNames(this.metaFaseGestionDTO);\n\n\t\t\tfor (const datoOrganizacion of this.listaCampos) {\n\t\t\t\tif (datoOrganizacion.requerido == null) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (datoOrganizacion.requerido == (\"N\")) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet campo = datoOrganizacion.campo;\n\n\t\t\t\tif (this.parametrosEvaluacionPipe.LISTAMETA1 === campo) {\n\t\t\t\t\tcampo = \"datoLista1\";\n\t\t\t\t}\n\n\t\t\t\tfor (const method of metodos) {\n\t\t\t\t\tif (!method[campo]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tlet valor = method[campo];\n\n\t\t\t\t\tif (valor == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (valor.toString().trim() == (\"\")) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}else{\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.metaFaseGestionDTO.empresa);\n\t\t\tif (this.isAutoServicioPortal()) {\n\t\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.metaFaseGestionDTO.unidadOrganizacional);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t\n\t\t\t}\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.metaFaseGestionDTO.objetivoGeneral);\n\t\t}\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.metaFaseGestionDTO.faseGestion);\n\t\treturn validador;\n\t}\n\n\tpublic eliminar(event): void {\n\t\tthis.confirmationService.confirm({\n\t\t  target: event.target,\n\t\t  acceptLabel: Constantes.SI_STRING,\n\t\t  message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t  accept: () => {\n\t\t\tthis.setEliminar();\n\t\t  },\n\t\t  reject: () => {\n\t\t  }\n\t\t});\n\t\t}\n\n\tpublic async setEliminar(): Promise<void>{\n\t\ttry {\n\t\t\tawait this.generalSvc.delete(new GeneralModel('MetaFaseGestionDTO',null,false,this.metaFaseGestionDTO)).toPromise();\n\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\tthis.volver();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\tpublic volver(){\n\t\tthis.regresar.emit(null);\n\t}\n\n\n\thandleEnterKey(event) {\n\t\tevent.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t}\n\n\tpublic isNuevo(): boolean {\n\t\treturn this.metaFaseGestionDTO == null || this.metaFaseGestionDTO.llaveTabla == null;\n\t}\n\n\tpublic isAutoServicioPortal(): boolean {\n\t\treturn this.saraAplicationService.isAutoServicioPortal();\n\t}\n\n\tpublic isMostrarCampos() {\n\t\treturn this.metaFaseGestionDTO != null && this.metaFaseGestionDTO.faseGestion != null && this.metaFaseGestionDTO.procesoGestion != null && \"M\" == (this.metaFaseGestionDTO.origen);\n\t}\n\t\n\tpublic listaComandos(comando: string){\n\t\treturn this.controlFuncionalidadSvc.getControlFuncionalidad(comando);\n\t   }\n\n\n\n}\n","\n<p-confirmPopup></p-confirmPopup>\n<div >\n  <ng-template pTemplate=\"header\">\n      <div>\n          <span class=\"glyphicons glyphicons-notes\" style=\"color:var(--color-400)\"></span>\n          <span>{{'datos' | translate}} {{'basicos' | translate}}</span>\n      </div>\n  </ng-template>\n<div class=\"flex align-items-center justify-content-end align-items-center mt-0\">\n  <button pButton pRipple (click)=\"volver()\" label=\"Listado {{this.translateSvc.instant('objetivo') + ' ' + this.translateSvc.instant('fase')}}\" icon=\"pi pi-chevron-left\"\n    class=\"p-button-text font-semibold\"></button>\n</div>\n<div class=\"panel-grid\" style=\"width: 100%;\">\n  <p-fieldset class=\"mt-0\">\n    <ng-template pTemplate=\"header\">\n      <div>\n        <h5><i class=\"glyphicons glyphicons-book\"></i>{{'meta'| translate}}</h5>\n      </div>\n  </ng-template>\n<div class=\"p-fluid p-formgrid grid\">\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <p-dropdown id=\"fase\" [options]=\"listaFases\" optionValue=\"key\" [disabled]=\"!isNuevo()\"\n            [class.ng-dirty]=\"validando && !utilsService.validarCampoObligatorio(metaFaseGestionDTO.faseGestion)\"\n            [class.ng-invalid]=\"validando && !utilsService.validarCampoObligatorio(metaFaseGestionDTO.faseGestion)\"\n            [(ngModel)]=\"metaFaseGestionDTO.faseGestion\" optionLabel=\"label\" [autoDisplayFirst]=\"false\"></p-dropdown>\n          <label htmlFor=\"fase\">{{('fase') | translate}} *</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <p-dropdown id=\"proceso\" [options]=\"listaProceso\" optionValue=\"key\" optionLabel=\"label\"\n            [class.ng-dirty]=\"validando && !utilsService.validarCampoObligatorio(metaFaseGestionDTO.procesoGestion)\"\n            [class.ng-invalid]=\"validando && !utilsService.validarCampoObligatorio(metaFaseGestionDTO.procesoGestion)\"\n            [(ngModel)]=\"metaFaseGestionDTO.procesoGestion\" (onChange)=\"cambiarProcesoGestion($event)\"\n            [autoDisplayFirst]=\"false\"></p-dropdown>\n          <label htmlFor=\"proceso\">{{('proceso') | translate}} {{('gestion') | translate}} *</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrarCamposObjetivoEspcifico\">\n        <span class=\"p-float-label\">\n          <p-dropdown id=\"empresa\" [options]=\"listaEmpresas\" optionValue=\"key\" [(ngModel)]=\"metaFaseGestionDTO.empresa\"\n            [class.ng-dirty]=\"validando && !utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa)\"\n            [class.ng-invalid]=\"validando && !utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa)\"\n            optionLabel=\"label\" (change)=\"cambioEmpresa($event)\" [disabled]=\"isAutoServicioPortal()\"\n            [autoDisplayFirst]=\"false\"></p-dropdown>\n          <label htmlFor=\"empresa\">{{('empresa') | translate}}*</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrarCamposObjetivoEspcifico\">\n        <app-input-helper-unidad #inputUnidad [readonly]=\"metaFaseGestionDTO.empresa == null\"\n          [empresa]=\"metaFaseGestionDTO.empresa\"\n          [booleano]=\"isAutoServicioPortal() && (validando && !utilsService.validarCampoObligatorio(metaFaseGestionDTO.procesoGestion))\"\n          [label]=\"metaFaseGestionDTO.unidadOrganizacionalNombre ? metaFaseGestionDTO.unidadOrganizacionalNombre : ''\"\n          required (onSelected)=\"setUnidad($event)\"\n          [header]=\"this.translateService.instant('unidad' | translate) + (isAutoServicioPortal() ? '*': ' ')\"\n          (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n        </app-input-helper-unidad>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrarCamposObjetivoEspcifico\">\n        <app-input-helper-cargo #inputCargo [nombreInput]=\"'Cargo Funcionario'\" (keydown.enter)=\"handleEnterKey($event)\"\n          (keydown.enter)=\"handleEnterKey($event)\" [empresa]=\"metaFaseGestionDTO.empresa\"\n          [label]=\"metaFaseGestionDTO.cargoNombre ? metaFaseGestionDTO.cargoNombre : ''\"\n          [readonly]=\"metaFaseGestionDTO.empresa == null\" (onSelected)=\"setCargoPopup($event)\"></app-input-helper-cargo>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrarCamposObjetivoEspcifico\">\n        <span class=\"p-float-label\">\n          <input pInputText type=\"text\" id=\"peso\" [(ngModel)]=\"metaFaseGestionDTO.peso\" maxlength=\"6\" />\n          <label htmlFor=\"peso\">{{('peso') | translate}}</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"mostrarCamposObjetivoEspcifico\">\n        <span class=\"p-float-label\">\n          <input pInputText type=\"text\" id=\"codigo\" [(ngModel)]=\"metaFaseGestionDTO.codigo\" maxlength=\"12\" />\n          <label htmlFor=\"codigo\">{{('codigo') | translate}}</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-12 lg:col-12\" *ngIf=\"mostrarCamposObjetivoEspcifico\">\n        <h5>{{ 'contenido' | translate }}</h5>\n        <p-editor [(ngModel)]=\"metaFaseGestionDTO.objetivoGeneral\" [style]=\"{ height: '320px' }\"></p-editor>\n      </div>\n\n\n    </div>\n\n    <p-table *ngIf=\"isMostrarCampos()\" [value]=\"listaCampos\" class=\"data-table\" [tableStyle]=\"{ 'width': '100%' }\">\n      <ng-template pTemplate=\"body\" let-meta>\n        <tr>\n          <td style=\"width: 20%;\" class=\"titulo_campo\">\n            {{ meta.descripcion }}<span *ngIf=\"meta.requerido === 'S'\">*</span>\n          </td>\n          <td style=\"width: 80%;\">\n            <ng-container [ngSwitch]=\"meta.campo\">\n              <!--CAMPO EMPRESA-->\n              <p-dropdown class=\"w-full\" appendTo=\"body\" [options]=\"listaEmpresas\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"metaFaseGestionDTO.empresa\" *ngSwitchCase=\"'empresa'\" (change)=\"cambioEmpresa()\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\">\n              </p-dropdown>\n              <!-- CAMPO UNIDAORGANIZACIONAL -->\n              <div *ngSwitchCase=\"'unidadOrganizacional'\" class=\"panel-grid\"\n                style=\"display: grid; grid-template-columns: repeat(2, 1fr); width: 100%;\">\n                <app-input-helper-unidad [readonly]=\"metaFaseGestionDTO.empresa == null\"\n                  [empresa]=\"metaFaseGestionDTO.empresa\" [label]=\"metaFaseGestionDTO.unidadOrganizacionalNombre\"\n                  required (onSelected)=\"setUnidad($event)\"\n                  [header]=\"this.translateService.instant('unidad' | translate) + ' *'\"\n                  (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                </app-input-helper-unidad>\n              </div>\n              <!-- CAMPO CARGO -->\n              <div *ngSwitchCase=\"'cargo'\" class=\"panel-grid\"\n                style=\"display: grid; grid-template-columns: repeat(2, 1fr); width: 100%;\">\n                <app-input-helper-cargo [nombreInput]=\"'Cargo Funcionario'\" (keydown.enter)=\"handleEnterKey($event)\"\n                  (keydown.enter)=\"handleEnterKey($event)\"\n                  [empresa]=\"metaFaseGestionDTO.empresa\"\n                  [label]=\"metaFaseGestionDTO.cargoNombre ? metaFaseGestionDTO.cargoNombre : ''\"\n                  (onSelected)=\"setCargoPopup($event)\"></app-input-helper-cargo>\n              </div>\n              <!-- CAMPO UNIDADES DEPENDIENTES -->\n              <p-dropdown class=\"w-full\" appendTo=\"body\" [options]=\"listaUnidadesDependientes\"\n                [autoDisplayFirst]=\"false\" [(ngModel)]=\"metaFaseGestionDTO.empresa\"\n                *ngSwitchCase=\"'unidadesDependientes'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.unidadesDependientes) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.unidadesDependientes) && validando) : false\">\n              </p-dropdown>\n              <!-- CAMPO TEMA -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'tema'\" [(ngModel)]=\"metaFaseGestionDTO.tema\" class=\"valor_campo\"\n                rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.tema) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.tema) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CAMPO INDICADOR -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'indicador'\" [(ngModel)]=\"metaFaseGestionDTO.indicador\"\n                class=\"valor_campo\" rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.indicador) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.indicador) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CAMPO PRIORIDAD -->\n              <p-dropdown class=\"w-full\" appendTo=\"body\" [options]=\"listaPrioridad\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"metaFaseGestionDTO.empresa\" *ngSwitchCase=\"'prioridad'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.unidadesDependientes) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.unidadesDependientes) && validando) : false\">\n              </p-dropdown>\n\n              <!-- CAMPO ACCION META -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'accionMeta'\" [(ngModel)]=\"metaFaseGestionDTO.accion\"\n                class=\"valor_campo\" rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.accion) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.accion) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CAMPO MEDIDA -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'medida'\" [(ngModel)]=\"metaFaseGestionDTO.medida\"\n                class=\"valor_campo\" rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.medida) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.medida) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CAMPO PESO -->\n              <p-inputNumber [(ngModel)]=\"metaFaseGestionDTO.peso\" [tabIndex]=\"0\" [maxlength]=\"100\"\n                *ngSwitchCase=\"'peso'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.peso) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.peso) && validando) : false\">\n\n              </p-inputNumber>\n              <!-- CAMPO PESO2 -->\n              <p-inputNumber [(ngModel)]=\"metaFaseGestionDTO.peso2\" [tabIndex]=\"0\" [maxlength]=\"100\"\n                *ngSwitchCase=\"'peso'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.peso2) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.peso2) && validando) : false\">\n\n              </p-inputNumber>\n              <!-- CAMPO PORCENTAJEACUERDO -->\n              <p-inputNumber [(ngModel)]=\"metaFaseGestionDTO.porcentajeacuerdo\" [tabIndex]=\"0\" [maxlength]=\"100\"\n                *ngSwitchCase=\"'porcentajeAcuerdo'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.porcentajeacuerdo) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.porcentajeacuerdo) && validando) : false\">\n\n              </p-inputNumber>\n              <!-- PORCENTAJE -->\n              <p-inputNumber [(ngModel)]=\"metaFaseGestionDTO.porcentaje1\" [tabIndex]=\"0\" [maxlength]=\"100\"\n                *ngSwitchCase=\"'porcentaje'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.porcentaje1) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.porcentaje1) && validando) : false\">\n\n              </p-inputNumber>\n              <!-- PORCENTAJE100 -->\n              <p-inputNumber [(ngModel)]=\"metaFaseGestionDTO.porcentajeacuerdo\" [tabIndex]=\"0\" [maxlength]=\"100\"\n                *ngSwitchCase=\"'porcentaje100'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.porcentajeacuerdo) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.porcentajeacuerdo) && validando) : false\">\n\n              </p-inputNumber>\n              <!-- ESPERADO -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'esperado'\" [(ngModel)]=\"metaFaseGestionDTO.esperado\"\n                class=\"valor_campo\" rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.esperado) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.esperado) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CADENA1 -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'cadena1'\" [(ngModel)]=\"metaFaseGestionDTO.cadena1\"\n                class=\"valor_campo\" rows=\"3\"[class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena1) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena1) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CADENA2 -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'cadena2'\" [(ngModel)]=\"metaFaseGestionDTO.cadena2\"\n                class=\"valor_campo\" rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena2) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena2) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CADENA3 -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'cadena3'\" [(ngModel)]=\"metaFaseGestionDTO.cadena3\"\n                class=\"valor_campo\" rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena3) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena3) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CADENA4 -->\n              <textarea pInputTextarea class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\" *ngSwitchCase=\"'cadena4'\" [(ngModel)]=\"metaFaseGestionDTO.cadena4\"\n                class=\"valor_campo\" rows=\"3\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena4) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.cadena4) && validando) : false\"\n                cols=\"50\"></textarea>\n              <!-- CODIGOOBJETIVO -->\n              <p-dropdown class=\"w-full\" appendTo=\"body\" [options]=\"listaObjetivo\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"metaFaseGestionDTO.empresa\" *ngSwitchCase=\"'codigoObjetivo'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.objetivo) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.objetivo) && validando) : false\">\n              </p-dropdown>\n              <!-- VALORACUERDO -->\n              <input pInputText [(ngModel)]=\"metaFaseGestionDTO.empresa\" *ngSwitchCase=\"'valorAcuerdo'\"\n                (input)=\"utilsService.validarCampoNumerico($event)\"\n                onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\" />\n              <!-- VALORALCANCE1 -->\n              <input pInputText [(ngModel)]=\"metaFaseGestionDTO.alcance1\" *ngSwitchCase=\"'valorAlcance1'\"\n                (input)=\"utilsService.validarCampoNumerico($event)\"\n                onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.alcance1) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.alcance1) && validando) : false\" />\n              <!-- VALORALCANCE2 -->\n              <input pInputText [(ngModel)]=\"metaFaseGestionDTO.alcance2\" *ngSwitchCase=\"'valorAlcance2'\"\n                (input)=\"utilsService.validarCampoNumerico($event)\"\n                onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\" />\n              <!-- VALORALCANCE3 -->\n              <input pInputText [(ngModel)]=\"metaFaseGestionDTO.alcance3\" *ngSwitchCase=\"'valorAlcance3'\"\n                (input)=\"utilsService.validarCampoNumerico($event)\"\n                onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.empresa) && validando) : false\" />\n              <!-- LISTAMETALISTA1 -->\n              <p-dropdown class=\"w-full\" appendTo=\"body\" [options]=\"listaMetaLista1\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"metaFaseGestionDTO.lista1\" *ngSwitchCase=\"'listaMeta1'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\">\n              </p-dropdown>\n              <!-- LISTAMETALISTA2 -->\n              <p-dropdown class=\"w-full\" appendTo=\"body\" [options]=\"listaMetaLista2\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"metaFaseGestionDTO.lista1\" *ngSwitchCase=\"'listaMeta2'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\">\n              </p-dropdown>\n              <!-- LISTAMETALISTA3 -->\n              <p-dropdown class=\"w-full\" appendTo=\"body\" [options]=\"listaMetaLista3\" [autoDisplayFirst]=\"false\"\n                [(ngModel)]=\"metaFaseGestionDTO.lista1\" *ngSwitchCase=\"'listaMeta3'\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\">\n              </p-dropdown>\n              <!-- FECHA INICIO -->\n              <p-calendar class=\"w-full\" appendTo=\"body\" type=\"text\" [(ngModel)]=\"metaFaseGestionDTO.fechaInicio\"\n                dateFormat=\"dd/mm/yy\" *ngSwitchCase=\"'fechaInicio'\" [showIcon]=\"true\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.lista1) && validando) : false\"></p-calendar>\n              <!-- FECHA FINAL -->\n              <p-calendar class=\"w-full\" appendTo=\"body\" type=\"text\" [(ngModel)]=\"metaFaseGestionDTO.fechaInicio\"\n                dateFormat=\"dd/mm/yy\" *ngSwitchCase=\"'fechaFinal'\" [showIcon]=\"true\"\n                [class.ng-dirty]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.fechaInicio) && validando) : false\"\n                [class.ng-invalid]=\"meta.requerido == 'S' ? (!utilsService.validarCampoObligatorio(metaFaseGestionDTO.fechaInicio) && validando) : false\"></p-calendar>\n            </ng-container>\n          </td>\n        </tr>\n      </ng-template>\n    </p-table>\n\n    <div class=\"flex justify-content-end mt-2 mb-2\">\n      <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n        *ngIf=\"isNuevo() && listaComandos('pereva:metafasges')\" icon=\"glyphicons glyphicons-floppy-save\"\n        label=\"{{'link_guardar' | translate}}\" (click)=\"crearMetaObjetivo()\">\n      </button>\n      <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n        *ngIf=\"!isNuevo() && listaComandos('pereva:metafasges')\" icon=\"glyphicons glyphicons-refresh\"\n        label=\"{{'link_actualizar' | translate}}\" (click)=\"crearMetaObjetivo()\">\n      </button>\n      <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"!isNuevo() && listaComandos('pereva:metafasges')\"\n        icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n      </button>\n    </div>\n  </p-fieldset>\n  </div>\n\n\n</div>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { PuntajeUnidadModel } from '../../../models/PuntajeUnidadModel';\nimport { GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ConfirmationService } from 'primeng/api';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { FieldsetModule } from 'primeng/fieldset';\n\n@Component({\n    selector: 'app-puntaje-unidad',\n    templateUrl: './puntaje-unidad.component.html',\n    styleUrls: ['./puntaje-unidad.component.scss'],\n    standalone: true,\n    imports: [FieldsetModule, ConfirmPopupModule, NgIf, ButtonDirective, Ripple, DropdownModule, FormsModule, InputHelperUnidadComponent, InputTextModule, InputTextareaModule, TranslateModule]\n})\nexport class PuntajeUnidadComponent implements OnInit {\n  @Output() regresar: EventEmitter<any> = new EventEmitter<any>();\n  puntajeUnidadDTO: PuntajeUnidadModel;\n  nuevo: boolean;\n  verUnidad: boolean;\n  mostrar: boolean;\n  listaEmpresa: any[];\n  empresaAnterior: number;\n  clickGuardar: boolean;\n\n  constructor(private generalSvc: GeneralService, private selectListEvaluaciones: SelectListEvaluacionesService, public utilsService: UtilsService, private generalPipe: GeneralPipe, private notificationBusService: ToastService,\n    public translateService: TranslateService,private confirmationService: ConfirmationService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    try {\n      this.listaEmpresa = await this.selectListEvaluaciones.listaEmpresa();\n      console.log(this.listaEmpresa)\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  public inicializar(puntajeUnidad: PuntajeUnidadModel, llavePlanillaGestion: string,nuevo: boolean): void {\n    try {\n      this.puntajeUnidadDTO = puntajeUnidad;\n      this.puntajeUnidadDTO.planillaGestion = (llavePlanillaGestion);\n      this.nuevo = nuevo;\n      this.verUnidad = this.puntajeUnidadDTO.empresa != null;\n      this.empresaAnterior = this.puntajeUnidadDTO.empresa\n      this.mostrar = true;\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  public cambiarEmpresa(event: any): void {\n    try {\n      const selectedValue = event.value;\n      if (this.puntajeUnidadDTO.empresa !== this.empresaAnterior) {\n        this.verUnidad = true;\n        this.limpiarUnidad();\n      }\n    } catch (error) {\n      console.log('Error en cambiarEmpresa:', error);\n    }\n  }\n\n  public limpiarUnidad(): void {\n    this.puntajeUnidadDTO.unidad = (null);\n    this.puntajeUnidadDTO.nombreUnidad = (null);\n  }\n\n\n  // public verPopupUnidad(): void {\n  // \tgetBean(PopupUnidad.class).buscar(\"#{popupPuntajeUnidadBean.unidad}\", puntajeUnidadDTO.getEmpresa(), false);\n  // }\n\n  public setUnidad(unidad: UnidadOrganizacionalModel): void {\n    this.puntajeUnidadDTO.unidad = (unidad.unidad);\n    this.puntajeUnidadDTO.nombreUnidad = (unidad.nombreUnidad);\n  }\n\n  public validar(): boolean {\n    this.clickGuardar = true;\n    let validar = true;\n    validar = validar && this.utilsService.validarCampoObligatorio(this.puntajeUnidadDTO.empresa);\n    validar = validar && this.utilsService.validarCampoObligatorio(this.puntajeUnidadDTO.unidad);\n    validar = validar && this.utilsService.validarCampoObligatorio(this.puntajeUnidadDTO.puntaje);\n    // validar = validar && this.utilsService.validarCampoObligatorio(this.puntajeUnidadDTO.observacion);\n    return validar;\n  }\n\n  public async guardar(): Promise<string> {\n    try {\n      if (this.validar()) {\n        this.clickGuardar = false\n        if (this.nuevo) {\n          this.puntajeUnidadDTO.origen = (\"PU\");\n          this.puntajeUnidadDTO = await this.generalSvc.crearRegistro(new GeneralModel('PuntajeUnidadDTO', null, false, this.puntajeUnidadDTO)).toPromise();\n          this.notificationBusService.showInfo(this.generalPipe.MENSAJE_GUARDAR);\n          this.nuevo = false;\n        } else {\n          await this.generalSvc.update(new GeneralModel('PuntajeUnidadDTO', null, false, this.puntajeUnidadDTO)).toPromise();\n          this.notificationBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n        }\n        this.cancelar();\n      }else{\n        this.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      }\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n  eliminar(){\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.setEliminar();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  public async setEliminar(): Promise<string> {\n    try {\n      await this.generalSvc.delete(new GeneralModel('PuntajeUnidadDTO', null, false, this.puntajeUnidadDTO)).toPromise();\n      this.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n      this.cancelar();\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n  public cancelar(): string {\n    this.mostrar = false;\n    this.regresar.emit(null);\n    return null;\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-end align-items-center mt-3\">\n        <button pButton pRipple (click)=\"cancelar()\" [label]=\"'Listado ' +' '+ ('puntajeporunidad' | translate)\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold\"></button>\n    </div>\n    <p-fieldset class=\"mt-0\">\n        <ng-template pTemplate=\"header\">\n          <div>\n            <h5><i class=\"glyphicons glyphicons-book\"></i>{{'puntajeporunidad'| translate}}</h5>\n          </div>\n      </ng-template>\n        <div class=\"p-fluid p-formgrid grid mt-1\">\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"empresa\" [options]=\"listaEmpresa\" optionValue=\"key\" (onChange)=\"cambiarEmpresa($event)\"\n                        [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(puntajeUnidadDTO.empresa) ? 'ng-invalid ng-dirty' : ''\"\n                        [(ngModel)]=\"puntajeUnidadDTO.empresa\" optionLabel=\"label\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                    <label htmlFor=\"empresa\">{{'empresa' | translate}} *</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"verUnidad\">\n                <app-input-helper-unidad #inputUnidad [readonly]=\"puntajeUnidadDTO.empresa == null\"\n                    [empresa]=\"puntajeUnidadDTO.empresa\" [booleano]=\"puntajeUnidadDTO.nombreUnidad == null\"\n                    [label]=\"puntajeUnidadDTO.nombreUnidad ? puntajeUnidadDTO.nombreUnidad : ''\" required\n                    (onSelected)=\"setUnidad($event)\"\n                    [header]=\"this.translateService.instant('unidad' | translate) + ' *'\"\n                    (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                </app-input-helper-unidad>\n            </div>\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <input pInputText type=\"text\" id=\"puntaje\" [(ngModel)]=\"puntajeUnidadDTO.puntaje\"\n                        [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(puntajeUnidadDTO.puntaje) ? 'ng-invalid ng-dirty' : ''\"\n                        maxlength=\"10\" />\n                    <label htmlFor=\"puntaje\">{{('puntaje') | translate}} *</label>\n                </span>\n            </div>\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <textarea rows=\"5\" cols=\"30\" pInputTextarea [(ngModel)]=\"puntajeUnidadDTO.observacion\"></textarea>\n                    <label htmlFor=\"puntaje\">{{('observacion') | translate}}</label>\n                </span>\n            </div>\n\n        </div>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"nuevo\"\n                icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n            </button>\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"!nuevo\"\n                icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" (click)=\"guardar()\">\n            </button>\n            <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"!nuevo\" icon=\"glyphicons glyphicons-bin\"\n                label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar()\">\n            </button>\n        </div>\n    </p-fieldset>\n</div>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService } from 'general-library-union';\nimport { CategoriaModel } from '../../../../../compensacion/models/CategoriaModel';\nimport { ClasificacionModel } from '../../../../../compensacion/models/ClasificacionModel';\nimport { EmpresaModel } from '../../../../../compensacion/models/EmpresaModel';\nimport { NivelCargoModel } from '../../../../../compensacion/models/NivelCargoModel';\nimport { CargoModel } from '../../../../models/CargoModel';\nimport { DimensionCargoModel } from '../../../../models/DimensionCargoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { FieldsetModule } from 'primeng/fieldset';\n\n@Component({\n\tselector: 'app-detalle-filtro-compentencia',\n\ttemplateUrl: './detalle-filtro-compentencia.component.html',\n\tstyleUrls: ['./detalle-filtro-compentencia.component.scss'],\n\tstandalone: true,\n\timports: [FieldsetModule, NgIf, ButtonDirective, Ripple, FormsModule, InputTextModule, DropdownModule, TranslateModule]\n})\nexport class DetalleFiltroCompentenciaComponent implements OnInit {\n\tdimensionCargoDTO: DimensionCargoModel = new DimensionCargoModel();\n\t@Output() regresar: EventEmitter<any> = new EventEmitter<any>();\n\tnuevo;\n\tdestino;\n\tlistaEmpresa: any[] = [];\n\tlistaCargo: any[] = [];\n\tlistaClasificacion: any[] = [];\n\tlistaNivelCargo: any[] = [];\n\tlistaCategoria: any[] = [];\n\tmostrar: boolean;\n\tprocesoValidar: boolean;\n\tconstructor(private generalSvc: GeneralService, private notificationBusService: ToastService, private generalPipe: GeneralPipe, private authService: AuthService, private controlFuncionalidad: CargarControlFuncionalidadService) { }\n\n\tngOnInit(): void {\n\t}\n\n\tpublic async buscar(destino: string, dimensionCargoDTO: DimensionCargoModel, nuevo: boolean): Promise<void> {\n\t\tthis.destino = destino;\n\t\tthis.nuevo = nuevo;\n\t\tthis.dimensionCargoDTO = dimensionCargoDTO;\n\t\tawait this.cargarListados();\n\t\tawait this.cargarListaCargo(dimensionCargoDTO.empresa);\n\t\tthis.mostrar = true;\n\t}\n\n\tpublic validar(): boolean {\n\t\tlet validador = true;\n\t\tthis.procesoValidar = true\n\n\t\tif (this.dimensionCargoDTO.empresa == null && this.dimensionCargoDTO.cargo == null && this.dimensionCargoDTO.nivelCargo == null &&\n\t\t\tthis.dimensionCargoDTO.clasificacion == null && this.dimensionCargoDTO.categoria == null) {\n\t\t\tvalidador = false;\n\t\t\tthis.notificationBusService.showError(\"Debe llenar al menos uno de los campos\");\n\t\t}\n\n\t\treturn validador;\n\t}\n\n\n\tpublic async cargarListados(): Promise<void> {\n\t\ttry {\n\t\t\tthis.listaEmpresa = [];\n\t\t\tthis.listaNivelCargo = [];\n\t\t\tthis.listaClasificacion = [];\n\t\t\tthis.listaCargo = [];\n\t\t\tthis.listaCategoria = [];\n\n\t\t\tlet nivelCargoDTO = new NivelCargoModel();\n\t\t\tlet listaNivelCargoDTO: NivelCargoModel[] = await this.generalSvc.queryForList(new GeneralModel('NivelCargoDTO', null, false, nivelCargoDTO)).toPromise();\n\t\t\tfor (const item of listaNivelCargoDTO) {\n\t\t\t\tthis.listaNivelCargo.push({ key: item.nivelCargo.trim(), label: item.descripcion });\n\t\t\t}\n\n\t\t\tlet empresaDTO = new EmpresaModel();\n\t\t\tlet listaEmpresaDTO: EmpresaModel[] = await this.generalSvc.queryForList(new GeneralModel('EmpresaDTO', null, false, empresaDTO)).toPromise();\n\t\t\tfor (const item of listaEmpresaDTO) {\n\t\t\t\tthis.listaEmpresa.push({ key: item.empresa, label: item.nombre });\n\t\t\t}\n\t\t\tlet clasificacionDTO = new ClasificacionModel();\n\t\t\tlet listaClasificacionDTO = await this.generalSvc.queryForList(new GeneralModel('ClasificacionDTO', null, false, clasificacionDTO)).toPromise();\n\t\t\tfor (const item of listaClasificacionDTO) {\n\t\t\t\tthis.listaClasificacion.push({ key: item.clasificacion.trim(), label: item.descripcion });\n\t\t\t}\n\n\t\t\tlet categoriaDTO = new CategoriaModel();\n\t\t\tlet listaCategoriaDTO = await this.generalSvc.queryForList(new GeneralModel('CategoriaDTO', null, false, categoriaDTO)).toPromise();\n\t\t\tfor (const item of listaCategoriaDTO) {\n\t\t\t\tthis.listaCategoria.push({ key: item.categoria.trim(), label: item.descripcion });\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tprivate async cargarListaCargo(empresa: number): Promise<void> {\n\t\ttry {\n\t\t\tthis.listaCargo = [];\n\t\t\tif (empresa != null) {\n\t\t\t\tlet cargoDTO = new CargoModel();\n\t\t\t\tcargoDTO.empresa = (empresa);\n\t\t\t\tlet listaCargosDTO: CargoModel[] = await this.generalSvc.queryForList(new GeneralModel('CargoDTO', null, false, cargoDTO)).toPromise();\n\t\t\t\tfor (const item of listaCargosDTO) {\n\t\t\t\t\tthis.listaCargo.push({ key: item.cargo, label: item.descripcion });\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\n\t}\n\n\tpublic cargarCargos(vce): string {\n\t\ttry {\n\t\t\tthis.listaCargo = [];\n\t\t\tthis.cargarListaCargo(parseInt(vce.value));\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tpublic async guardar(): Promise<string> {\n\t\ttry {\n\t\t\tif (this.validar()) {\n\t\t\t\tthis.procesoValidar = false;\n\t\t\t\tif (this.nuevo) {\n\t\t\t\t\tthis.dimensionCargoDTO.origen = (\"C\");\n\t\t\t\t\tthis.dimensionCargoDTO.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\t\tthis.dimensionCargoDTO = await this.generalSvc.crearRegistro(new GeneralModel('DimensionCargoDTO', null, false, this.dimensionCargoDTO)).toPromise();\n\t\t\t\t\tthis.notificationBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n\t\t\t\t\tthis.nuevo = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.generalSvc.update(new GeneralModel('DimensionCargoDTO', null, false, this.dimensionCargoDTO)).toPromise();\n\t\t\t\t\tthis.notificationBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\t\t\t}\n\t\t\t\tthis.aplicarDestinoOcultar();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\n\tpublic eliminar(): void {\n\t\ttry {\n\t\t\tthis.generalSvc.delete(new GeneralModel('DimensionCargoDTO', null, false, this.dimensionCargoDTO)).toPromise();\n\t\t\tthis.notificationBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\tthis.aplicarDestinoOcultar();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic aplicarDestinoOcultar() {\n\t\tthis.mostrar = false;\n\t\tthis.regresar.emit(null);\n\t\treturn null;\n\t}\n\n\tlistaComandos(valor) {\n\t\treturn this.controlFuncionalidad.getControlFuncionalidad(valor)\n\t}\n\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-end align-items-center\">\n        <button pButton pRipple (click)=\"aplicarDestinoOcultar()\" label=\"Filtro competencia\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold\"></button>\n    </div>\n    <p-fieldset class=\"mt-0\">\n        <ng-template pTemplate=\"header\">\n          <div>\n            <h5><i class=\"glyphicons glyphicons-book\"></i>{{'competencia'| translate}}</h5>\n          </div>\n      </ng-template>\n    <div class=\"p-fluid p-formgrid grid mt-1\">\n        <!-- COMPETENCIA -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"competencia\"\n                    [(ngModel)]=\"dimensionCargoDTO.dimension\" maxlength=\"20\" [disabled]=\"true\"/>\n                <label htmlFor=\"competencia\">{{('competencia') | translate}}</label>\n            </span>\n        </div>\n        <!-- DESCRIPCION -->\n        <div class=\"field col-12 md:col-8 lg:col-8\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"descripcion\"\n                    [(ngModel)]=\"dimensionCargoDTO.descripcionDimension\" maxlength=\"20\" [disabled]=\"true\"/>\n                <label htmlFor=\"descripcion\">{{('descripcion') | translate}}</label>\n            </span>\n        </div>\n        <!-- EMPRESA -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"empresa\" [options]=\"listaEmpresa\" optionValue=\"key\"\n                    (onChange)=\"cargarCargos($event)\"\n                    [(ngModel)]=\"dimensionCargoDTO.empresa\" optionLabel=\"label\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"empresa\">{{'empresa' | translate}}</label>\n            </span>\n        </div>\n        <!-- CARGO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"cargo\" [options]=\"listaCargo\" optionValue=\"key\"\n                    [(ngModel)]=\"dimensionCargoDTO.cargo\" optionLabel=\"label\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"cargo\">{{'cargo' | translate}}</label>\n            </span>\n        </div>\n        <!-- NIVEL CARGO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"nivelcargo\" [options]=\"listaNivelCargo\" optionValue=\"key\"\n                    [(ngModel)]=\"dimensionCargoDTO.nivelCargo\" optionLabel=\"label\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"nivelcargo\">{{'nivelcargo' | translate}}</label>\n            </span>\n        </div>\n        <!-- CLASIFICACION -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"clasificacion\" [options]=\"listaClasificacion\" optionValue=\"key\"\n                    [(ngModel)]=\"dimensionCargoDTO.clasificacion\" optionLabel=\"label\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"clasificacion\">{{'clasificacion' | translate}}</label>\n            </span>\n        </div>\n        <!-- CATEGORIA -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"categoria\" [options]=\"listaCategoria\" optionValue=\"key\"\n                    [(ngModel)]=\"dimensionCargoDTO.categoria\" optionLabel=\"label\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"categoria\">{{'categoria' | translate}}</label>\n            </span>\n        </div>\n        <!-- PUNTAJE ESPERADO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"puntajeespera\"\n                    [(ngModel)]=\"dimensionCargoDTO.puntajeespera\" maxlength=\"20\"/>\n                <label htmlFor=\"puntajeespera\">{{('puntaje') | translate}} {{('esperado') | translate}} </label>\n            </span>\n        </div>\n        \n    </div>\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"nuevo && listaComandos('pareval:guardar')\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n            (click)=\"guardar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"!nuevo && listaComandos('pareval:guardar')\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n            (click)=\"guardar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\"\n            *ngIf=\"!nuevo && listaComandos('pareval:eliminar')\"\n            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n            (click)=\"eliminar()\">\n        </button>\n    </div>\n\n\n</p-fieldset>\n</div>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralModel, GeneralService } from 'general-library-union';\nimport { DimensionCargoModel } from '../../../../models/DimensionCargoModel';\nimport { MetaFaseGestionModel } from '../../../../models/MetaFaseGestionModel';\nimport { DetalleFiltroCompentenciaComponent } from '../detalle-filtro-compentencia/detalle-filtro-compentencia.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-listado-filtro-compentencia',\n    templateUrl: './listado-filtro-compentencia.component.html',\n    styleUrls: ['./listado-filtro-compentencia.component.scss'],\n    standalone: true,\n    imports: [NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DetalleFiltroCompentenciaComponent, TranslateModule]\n})\nexport class ListadoFiltroCompentenciaComponent implements OnInit {\n  @ViewChild('detalleFiltro') detalleFiltroC : DetalleFiltroCompentenciaComponent;\n  @Output() regresar: EventEmitter<any> = new EventEmitter<any>();\n\n  paginador: DimensionCargoModel[] = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  filtro: DimensionCargoModel = new DimensionCargoModel();\n  filtroVer: DimensionCargoModel = new DimensionCargoModel();\n  comodinBusqueda: string;\n  metaFaseGestionDTO: MetaFaseGestionModel = new MetaFaseGestionModel();\n  mostrar: boolean;\n  constructor(private generalSvc: GeneralService) { }\n\n  ngOnInit(): void {\n  }\n\n\n  public async init(metaFaseGestionDTO: MetaFaseGestionModel): Promise<void> {\n    this.metaFaseGestionDTO = metaFaseGestionDTO;\n    this.mostrar = true;\n  }\n\n  public async load(event): Promise<void> {\n    try {\n      this.colocarFiltro();\n      this.filtro.paginacionRegistroInicial = event?.first != null ? event?.first : 0;\n      this.filtro.paginacionRegistroFinal =  event?.rows != null ? event?.rows : 10;\n      this.paginador = await this.generalSvc.queryForList(new GeneralModel('DimensionCargoDTO', null, false, this.filtro)).toPromise();\n      this.paginator.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('DimensionCargoDTO', null, false, this.filtro)).toPromise();\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  public colocarFiltro(): void {\n    this.filtro = new DimensionCargoModel();\n    this.filtro.metaFaseGestion = (this.metaFaseGestionDTO.llaveTabla);\n  }\n\n  public seleccionar(evnet): void {\n    /*ubicacion = (EspecialistaDTO) se.getObject();\n    aplicarDestino(ubicacion);\n    ocultarPopup();*/\n  }\n\n  public nuevo(): void {\n    let dimensionCargoDTO = new DimensionCargoModel();\n    dimensionCargoDTO.metaFaseGestion = (this.metaFaseGestionDTO.llaveTabla);\n    dimensionCargoDTO.dimension = (this.metaFaseGestionDTO.competencia.trim());\n    dimensionCargoDTO.descripcionDimension = (this.metaFaseGestionDTO.nombreCompetencia);\n    // getBean(PopupDetalleFiltroBean.class).buscar(\"#{popupFiltroCompetenciaPeriodoBean.cierre}\", dimensionCargoDTO, true);\n    this.mostrar = false;\n    this.detalleFiltroC.buscar(\"#{popupFiltroCompetenciaPeriodoBean.cierre}\", dimensionCargoDTO, true)\n    return null;\n  }\n\n  public setCierre(){\n    this.load(null);\n\t\tthis.mostrar = true;\n\t}\n\n  public verFiltro(event): void {\n    this.mostrar= false;\n    this.detalleFiltroC.buscar(\"#{popupFiltroCompetenciaPeriodoBean.cierre}\", event.data, false)\n  }\n\n  public cancelar(): string {\n    this.mostrar = false;\n    this.regresar.emit(null);\n    return null;\n  }\n\n}\n","<div *ngIf=\"mostrar\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mt-3 mb-3\">\n        <h1 class=\"mb-0\">{{'competencia'| translate}}</h1>\n        <button pButton pRipple (click)=\"cancelar()\" label=\"Listado competencia\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold\"></button>\n    </div>\n    <div class=\"flex align-items-center justify-content-end align-items-center mt-3\">\n        <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\" icon=\"pi pi-plus\"\n            class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n    </div>\n<p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginador\" [rows]=\"paginator.rows\"\n[tableStyle]=\"{ 'min-width': '100rem' }\" [totalRecords]=\"paginator.totalRecords\"\n[paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n[showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [lazy]=\"true\"\n(onLazyLoad)=\"load($event)\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n(onRowSelect)=\"verFiltro($event)\">\n<ng-template pTemplate=\"header\">\n    <tr>\n        <th class=\"w-6rem\">{{'empresa' | translate}}</th>\n        <th class=\"w-6rem\">{{'cargo' | translate}}</th>\n        <th class=\"w-6rem\">{{'nivel' | translate}} {{'cargo' | translate}}</th>\n        <th class=\"w-6rem\">{{'clasificacion' | translate}}</th>\n        <th class=\"w-6rem\">{{'categoria' | translate}}</th>\n        <th class=\"w-6rem\">{{'esperado' | translate}}</th>\n    </tr>\n</ng-template>\n<ng-template pTemplate=\"body\" let-filtro let-editing=\"editing\" let-ri=\"rowIndex\">\n    <tr [pSelectableRow]=\"filtro\">\n        <td class=\"w-6rem\">{{filtro.empresa}}</td>\n        <td class=\"w-6rem\">{{filtro.nombreCargo}}</td>\n        <td class=\"w-6rem\">{{filtro.descripcionNivelCargo}}</td>\n        <td class=\"w-6rem\">{{filtro.descripcionClasificacion}}</td>\n        <td class=\"w-6rem\">{{filtro.descripcionCategoria}}</td>\n        <td class=\"w-6rem\">{{filtro.puntajeespera}}</td>\n    </tr>\n</ng-template>\n<ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n</div>\n<app-detalle-filtro-compentencia #detalleFiltro (regresar)=\"setCierre()\"></app-detalle-filtro-compentencia>","import { UnionModel } from 'general-library-union'\nimport { FaseGestionHojaModel } from './FaseGestionHojaModel';\n\nexport class EvaluacionHojaModel extends UnionModel {\n\n    llave: string;\n\tllaveherramienta: string;\n\tnombreherramienta: string;\n\tidentificacion: number;\n\tempresa: number;\n\tnombreevaluado: string;\n\tprimerapellidoevaluado: string;\n\tsegundoapellidoevaluado: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tnombreempresa: string;\n\tunidad: string;\n\tnombreunidad: string;\n\tcargo: string;\n\tnombrecargo: string;\n\tdescripcion: string;\n\tllavePlanilla: string;\n\torganizacion: number;\n\tcontrato: number;\n\tplanillaPeriodo: string;\n\ttipoPlanilla: string;\n\tcerradaAbierta: string;\n\tcantidadEvaluaciones: number;\n\tcedulaOcupa: number;\n\tnombreOcupa: string;\n\tnivelCargo: string;\n\tnoPersona: string;\n\tnombrePlanillaPeriodo: string;\n\tclasificacion: string;\n\tnombreClasificacion: string;\n\testado: string;\n\tdocumento: string;\n\tfactor: number;\n\ttipoPerfil: string;\n\tperfilFuncion: string;\n\tnombreFoto: string;\n\tcodigoFaseGestion: string;\n\tlistaFasesGestionHoja:  Map<string, FaseGestionHojaModel>;\n\tllaveDocumento: string;\n\tcedulaActor: number;\n\tperiodo: string;\n\t\n\t}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CargarArchivoRespuestaService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  cargarArchivo(selectedFile: File): Observable<any> {\n    const formData = new FormData();\n    formData.append('file', selectedFile, selectedFile.name);\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/cargarArchivoRespuesta/cargarArchivo`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n  leeArchivoCargaDto(numeroEmpresa: number,llaveGestionPeriodo: string,fase:string,periodo:string,separador:string): Observable<any[]> {\n    const formData = new FormData();\n    formData.append(\"numeroEmpresa\",numeroEmpresa.toString());\n    formData.append(\"llaveGestion\",llaveGestionPeriodo);\n    formData.append(\"fase\",fase);\n    formData.append(\"periodo\",periodo);\n    formData.append(\"separador\",separador);\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/cargarArchivoRespuesta/leeArchivoCargaDto`, formData).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { ErrorArchivoResultadoModel } from '../../../models/ErrorArchivoResultadoModel';\nimport { GestionPeriodoModel } from '../../../models/GestionPeriodoModel';\nimport { AuthService, ToastService, UtilsService } from 'general-library-union';\nimport { SeparadorArchivoPlanoPipe } from '../../../../compensacion/pipes/separadorArchivoPlano.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { CargarArchivoRespuestaService } from '../../../services/cargar-archivos-respuesta.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { NgIf } from '@angular/common';\nimport { AccordionModule } from 'primeng/accordion';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\n\n@Component({\n    selector: 'app-cargar-archivo-respuesta',\n    templateUrl: './cargar-archivo-respuesta.component.html',\n    styleUrls: ['./cargar-archivo-respuesta.component.scss'],\n    standalone: true,\n    imports: [ButtonDirective, Ripple, DropdownModule, FormsModule, InputTextModule, FileUploadModule, AccordionModule, NgIf, PrimeTemplate, TableModule, TemplateTablaVaciaComponent, TranslateModule]\n})\nexport class CargarArchivoRespuestaComponent implements OnInit {\n\n\t@Output() regresar: EventEmitter<any> = new EventEmitter<any>();\n\tpublic gestionPeriodo: GestionPeriodoModel = new GestionPeriodoModel();\n\tpublic periodo: string;\n\tpublic fase: string;\n\tpublic separador: string;\n\tpublic entrada: any;\n\tpublic mostrarbtnCargarDatos: boolean;\n\tpublic listaErrores: ErrorArchivoResultadoModel[]= [];\n\tpublic listaFase: string[] = [];\n\tpublic listaPeriodo: string[] = [];\n\tpublic lineasError: string[] = [];\n    public clickGuardar: boolean;\n\tpublic fileName: string = '';\n\tpublic titulo: string = '';\n  constructor(private selectListEvaluaciones: SelectListEvaluacionesService, private notificationBusService: ToastService, public utilsService : UtilsService, public separadorArchivoPlanoCons: SeparadorArchivoPlanoPipe,\n    private cargarArchivoRespuestaService : CargarArchivoRespuestaService, private authService: AuthService,\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n\n  public async cargarListas(): Promise<void> {\n\t\t// let lists = getBean(SelectListEvaluaciones.class);\n\t\tthis.lineasError = [];\n\t\tthis.listaFase = await this.selectListEvaluaciones.getListaFaseFiltro(this.gestionPeriodo.llaveGestionPeriodo);\n\t\tthis.listaPeriodo = await this.selectListEvaluaciones.getListaPeriodo(\"R\", this.gestionPeriodo.llaveGestionPeriodo);\n\t}\n\n\tpublic inicializar(titulo: string,gestionPeriodo: GestionPeriodoModel,lista: ErrorArchivoResultadoModel[]): void {\n\t\tthis.titulo = titulo;\n\t\tthis.gestionPeriodo = (gestionPeriodo);\n\t\tthis.cargarListas();\n\t\tthis.listaErrores = (lista);\n\t}\n\n\n\tpublic async cargarArchivo(event,fupload): Promise<void> {\n\t\ttry {\n      let file: File = event.currentFiles[0];\n\t  this.fileName = file.name;\n      let data = await this.cargarArchivoRespuestaService.cargarArchivo(file).toPromise();\n\t  this.entrada = data['entrada'];\n\t  if(this.entrada != null){\n\t\tthis.notificationBusService.showSuccess('Se cargó el documento con éxito');\n\t\tfupload.clear();\n\t\tthis.mostrarbtnCargarDatos = true;\n\t  }\n    } catch (e) {\n\t\t\tconsole.log(e);\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// public verificaDatosDeArchivoPlano(archivo: File): void {\n\t// \tif (this.separador == null) {\n\t// \t\tthis.separador = \",\";\n\t// \t} else if (this.separador.includes(\"separador\")) {\n\t// \t\tthis.notificationBusService.showInfo(\"Debe seleccionar el tipo de separador\");\n\t// \t}\n\t// \tlet pasoValidaciones = true;\n\t// \tif (!archivo) {\n\t// \t\tthis.notificationBusService.showInfo(\"El archivo \" + archivo.name + \" no existe en la ruta indicada\");\n\t// \t\tpasoValidaciones = false;\n\t// \t}\n\t// \tif (!archivo.canRead()) {\n\t// \t\tinfo(\"El archivo \" + archivo.getAbsolutePath() + \" no tiene permisos de lectura\");\n\t// \t\tpasoValidaciones = false;\n\t// \t}\n\t// \tif (pasoValidaciones) {\n\t// \t\tFileInputStream textoPlanoFileStream;\n\t// \t\ttry {\n\t// \t\t\ttextoPlanoFileStream = new FileInputStream(archivo);\n\t// \t\t\tBufferedInputStream textoPlanoStream = new BufferedInputStream(textoPlanoFileStream);\n\t// \t\t\tentrada = new DataInputStream(textoPlanoStream);\n\t// \t\t} catch (FileNotFoundException e) {\n\t// \t\t\terror(e);\n\t// \t\t}\n\t// \t}\n\t// }\n\n\tpublic async pintarListaArchivo(): Promise<void> {\n\t\tif (!this.mostrarbtnCargarDatos) {\n\t\t\tthis.clickGuardar = true;\n\t\t\tthis.notificationBusService.showError(\"Debe seleccionar un archivo v\" + Constantes.A_TILDE_MIN + \"lido\");\n\t\t\treturn null;\n\t\t}\n\t\tif (this.separador == null || this.separador.trim().length == 0) {\n\t\t\tthis.clickGuardar = true;\n\t\t\tthis.notificationBusService.showError(\"Debe seleccionar un separador\");\n\t\t\treturn null;\n\t\t}\n\t\tif (this.entrada != null) {\n      \t\tthis.listaErrores \n\t\t\tthis.clickGuardar = false;\n\t\t\tlet data = await this.cargarArchivoRespuestaService.leeArchivoCargaDto(parseInt(this.authService.getTokenKey('numeroEmpresa')),this.gestionPeriodo.llaveGestionPeriodo,this.fase,this.periodo,this.separador).toPromise();\n\t\t\tlet noHayProblema: boolean = data['noHayProblema'];\n\t\t\tthis.listaErrores = data['listaErrores'];\n\t\t\tthis.lineasError = data['lineasError'];\n\t\t\tif(noHayProblema && this.lineasError.length > 0  && this.listaErrores.length > 0 ){\n\t\t\t\tthis.notificationBusService.showInfo('El cargue del archivo se hizo de manera correcta');\n\t\t\t}\n\t\t} else {\n\t\t\tthis.notificationBusService.showError(\"ARCHIVO INVALIDO\");\n\t\t}\n\t\tthis.mostrarbtnCargarDatos = false;\n\t\treturn null;\n\t}\n\n\n\tpublic cancelar(): string {\n\t\tthis.regresar.emit(null);\n\t\treturn null;\n\t  }\n\n\t// @SuppressWarnings(\"deprecation\")\n\t// public void leeArchivoCargaDto(DataInputStream entrada) {\n\t// \ttry {\n\t// \t\tString linea;\n\t// \t\tlineasError = new ArrayList<String>();\n\t// \t\tint numLinea = 1;\n\t// \t\tboolean noHayProblema = true;\n\t// \t\twhile ((linea = entrada.readLine()) != null) {\n\t// \t\t\tSimpleDateFormat formato = new SimpleDateFormat(ConstantesGenerales.FORMATO_FECHA);\n\t// \t\t\tString[] datos = linea.split(separador);\n\t// \t\t\tif (datos.length >= 7) {\n\t// \t\t\t\tif (!esNumero(datos[0])) {\n\t// \t\t\t\t\tnoHayProblema = false;\n\t// \t\t\t\t\tlineasError.add(\"Número no valido. Separador 1, linea \" + numLinea);\n\t// \t\t\t\t}\n\t// \t\t\t\tif (datos[2] == null || formato.parse(datos[2]) == null) {\n\t// \t\t\t\t\tnoHayProblema = false;\n\t// \t\t\t\t\tlineasError.add(\"Fecha no valida. Separador 3,linea \" + numLinea);\n\t// \t\t\t\t}\n\t// \t\t\t\tif (datos[3] == null || formato.parse(datos[3]) == null) {\n\t// \t\t\t\t\tnoHayProblema = false;\n\t// \t\t\t\t\tlineasError.add(\"Fecha no valida. Separador 4,linea\" + numLinea);\n\t// \t\t\t\t}\n\t// \t\t\t\tif (!esNumero(datos[5])) {\n\t// \t\t\t\t\tnoHayProblema = false;\n\t// \t\t\t\t\tlineasError.add(\"Número no valido. Separador 6, linea \" + numLinea);\n\t// \t\t\t\t}\n\t// \t\t\t\tif (!esNumero(datos[6])) {\n\t// \t\t\t\t\tnoHayProblema = false;\n\t// \t\t\t\t\tlineasError.add(\"Número no valido. Separador 7, linea \" + numLinea);\n\t// \t\t\t\t}\n\t// \t\t\t} else {\n\t// \t\t\t\tlineasError.add(\"La linea\" + numLinea + \"no contiene todos los parametros\");\n\t// \t\t\t}\n\t// \t\t\tif (lineasError.isEmpty()) {\n\t// \t\t\t\tErrorArchivoResultadoDTO error = periodoEvaluacionSvc.cargarArchivo(getDataSource(), new BigDecimal(datos[0]), datos[1], formato.parse(datos[2]), formato.parse(datos[3]),\n\t// \t\t\t\t\t\tdatos[4], new BigDecimal(datos[5]), new BigDecimal(datos[6]), fase, periodo, getCredencial().getNumeroEmpresa(), gestionPeriodo.getLlaveGestionPeriodo());\n\t// \t\t\t\tif (error != null) {\n\t// \t\t\t\t\tlistaErrores.add(error);\n\t// \t\t\t\t}\n\t// \t\t\t}\n\t// \t\t\tnumLinea++;\n\t// \t\t}\n\t// \t\tif (noHayProblema && lineasError.isEmpty() && listaErrores.isEmpty()) {\n\t// \t\t\tinfo(\"El cargue del archivo se hizo de manera correcta\");\n\t// \t\t\tgetBean(PeriodoEvaluacionesBean.class).setVistaVisualizar(null);\n\t// \t\t}\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// }\n\t\n\t// public void regresar() {\n\t// \tgetBean(PeriodoEvaluacionesBean.class).setVistaVisualizar(null);\n\t// }\n\n\t// public boolean esNumero(String a) {\n\t// \ttry {\n\t// \t\tnew BigDecimal(a);\n\t// \t\treturn true;\n\t// \t} catch (Exception e) {\n\t// \t\treturn false;\n\t// \t}\n\t// }\n\n}\n","<div class=\"flex align-items-center justify-content-between align-items-center mt-3 mb-3\">\n    <h1>{{titulo | translate}}</h1>\n    <button pButton pRipple (click)=\"cancelar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n        class=\"p-button-text font-semibold\"></button>\n</div>\n<div class=\"card\">\n    <div class=\"mt-2\">\n        <h5><i class=\"glyphicons glyphicons-file\"></i>{{gestionPeriodo.descripcion}}</h5>\n    </div>\n    <div class=\"p-fluid p-formgrid grid mt-1\">\n        <!-- PERIODO -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"periodo\" [options]=\"listaPeriodo\" optionValue=\"key\"\n                    [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(periodo) ? 'ng-invalid ng-dirty' : ''\"\n                    [(ngModel)]=\"periodo\" optionLabel=\"label\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"periodo\">{{'periodo' | translate}} *</label>\n            </span>\n        </div>\n        <!-- FASE -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"columna\" [options]=\"listaFase\" optionValue=\"key\"\n                    [class]=\"clickGuardar && !utilsService.validarCampoObligatorio(fase) ? 'ng-invalid ng-dirty' : ''\"\n                    [(ngModel)]=\"fase\" optionLabel=\"label\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"columna\">{{'fase' | translate}} *</label>\n            </span>\n        </div>\n        <!-- NOMBRE ARCHIVO -->\n        <div class=\"col-12 md:col-4\" id=\"btn-cargar-popup\">\n            <div [class]=\"(!utilsService.validarCampoObligatorio(fileName) && clickGuardar)  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n                <span class=\"p-float-label nomostrar\" style=\"display: flex;\">\n                    <input pInputText #inputText [readonly]=\"true\" [value]=\"fileName\" disabled />\n                    <label htmlFor=\"detalle\">{{'nombrearchivo' | translate}} *</label>\n                    <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" accept=\".pdf,.zip\" chooseLabel=\"\" chooseLabel=\"\" uploadLabel=\"\"\n                        (onSelect)=\"cargarArchivo($event, fubauto)\" required chooseIcon=\"pi pi-paperclip\"></p-fileUpload>\n                </span>\n            </div>\n        </div>\n        \n        <!-- SEPARADOR -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"columna\" [options]=\"separadorArchivoPlanoCons.SEPARADOR_ARCHIVOPLANO\"\n                    optionValue=\"codigo\" [(ngModel)]=\"separador\" optionLabel=\"nombre\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"columna\">{{'separador' | translate}} *</label>\n            </span>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n            label=\"{{'link_cargar' | translate}} {{'dato' | translate}}\" (click)=\"pintarListaArchivo()\">\n        </button>\n    </div>\n</div>\n\n<p-accordion class=\"mt-3\">\n    <p-accordionTab [selected]=\"true\" *ngIf=\"listaErrores.length > 0\">\n        <ng-template pTemplate=\"header\">\n            <i class=\"glyphicons glyphicons-book\"> </i>{{'inconvenientes' | translate}}\n        </ng-template>\n        <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listaErrores\" [rows]=\"10\"\n         [totalRecords]=\"listaErrores.length\"\n        [paginator]=\"listaErrores.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\" [scrollable]=\"true\" [lazy]=\"false\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th class=\"w-6rem\">{{'identificacon' | translate}}</th>\n                <th class=\"w-6rem\">{{'nombre' | translate}}</th>\n                <th class=\"w-6rem\">{{'competencia' | translate}}</th>\n                <th class=\"w-6rem\">{{'detalleerror' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-error let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr >\n                <td class=\"w-6rem\">{{error.cedula}}</td>\n                <td class=\"w-6rem\">{{error.nombre}}</td>\n                <td class=\"w-6rem\">{{error.competencia}}</td>\n                <td class=\"w-6rem\">{{error.error}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-accordionTab>\n\n<p-accordionTab [selected]=\"listaErrores.length > 0 ? false : true\" *ngIf=\"lineasError.length > 0\">\n    <ng-template pTemplate=\"header\">\n        <i class=\"glyphicons glyphicons-book\"> </i>{{'detalleerror' | translate}}\n    </ng-template>\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"lineasError\" [rows]=\"10\"\n     [totalRecords]=\"lineasError.length\"\n    [paginator]=\"lineasError.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\" [scrollable]=\"true\" [lazy]=\"false\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th class=\"w-6rem\">{{'detalleerror' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-error let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr>\n            <td class=\"w-6rem\">{{error}}</td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n    </p-accordionTab>\n</p-accordion>\n\n\n\n\n        ","import { UnionModel } from 'general-library-union'\n\nexport class VistaPlantaOcupoModel extends UnionModel{\n\n\t\n\t\n\t\n\tunidad: string;\n\tpuesto: number;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tlineaCosto: string;\n\tcargo: string;\n\ttipoPuestoTra: string;\n\tcontratoUltimoOcupo: number;\n\tcontratoOcupa: number;\n\tidentifica: number;\n\ttemporal: number;\n\tultimoOcupo: number;\n\tcreacion: Date;\n\testado: string;\n\teliminacion: Date;\n\tsueldo: number;\n\tobservacion: string;\n\tturno: number;\n\ttipoPeriodo: number;\n\tvinculacion: number;\n\tclasePuesto: string;\n\treserva: string;\n\tactualiza: Date;\n\tempresa: number;\n\tdisponible: Date;\n\tperfilFuncion: string;\n\tubicacionFis: string;\n\tactoMovPlanta: string;\n\tllavePuestoTrabajo: string;\n\tdependePuestoTrabajo: string;\n\tnegociacion: number;\n\tcedulaOcupa: number;\n\tnombreOcupa: string;\n\tnombreUltimoOcupo: string;\n\tnombreTitular: string;\n\tdescripcionZona: string;\n\tdescripcionCentro: string;\n\tdescripcionUbicacionFis: string;\n\tnombreUnidad: string;\n\tnombreCargo: string;\n\tnombreCompleto: string;\n\tdepende: string;\n\tdescripcion: string;\n\tnivelCargo: string;\n\tnombreEmpresa: string;\n\tasignacion: number;\t\n\tllaveRequerimiento: string;\n\tnombreTipoPuesto: string;\n\tfechaDisponible: Date;\n\ttipoPuestoAutomatico: string;\n\tcargoEstadoValidacion: boolean;\n\trelacion: string;\n\tsinSubalternos: string;\n\tcedulaTitular: number;\n\tclasificacion: string;\n\tdocumentoOcupa: string;\n\tdocumentoTitular: string;\n\tgestionPeriodo: string;\n\tfase: string;\n\tnombreFase: string;\n\ttipoEvaluador: string;\n\tnombreTipoEvaluador: string;\n\tfechaLimite: Date;\n\ttitular: string;\n\tnombreGestionPeriodo: string;\n\tnombrePlantillaGestion: string;\n\ttipoEvaluadorPalnilla: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\tresponsableUnidad: string;\n\tsubalterno: number;\n\tsqlDinamico: string;\n\t\n\t\n\tlistaPlantasOcupoColaborador: VistaPlantaOcupoModel[];\n\tfoto: any[];\n\t\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n\n@Injectable({\n    providedIn: 'root'\n  })\n\n  export class ConstantesService {\n\n    \n    constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n      }\n\n      private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          // A client-side or network error occurred. Handle it accordingly.\n          console.error('An error occurred:', error.error);\n        } else {\n          // The backend returned an unsuccessful response code.\n          // The response body may contain clues as to what went wrong.\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n      obtenerMapasCampos(): Observable<any>{\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/utils/obtenerMapasCampos`, null).pipe(\n          catchError(this.handleError)\n        );\n      }\n      convertirMapToListSelectItem(parametro: any[]): Observable<any[]>{\n        return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/utils/convertirMapToListSelectItem`, JSON.stringify(parametro)).pipe(\n          catchError(this.handleError)\n        );\n      }\n\n  }","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'caracteristicaPipe',\n    standalone: true\n})\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class CaracteristicaPipe implements PipeTransform {\n    \n    TEXTO = \"E\";\n\tLISTA = \"L\";\n\tALTERNATIVA = \"R\";\n\tSUBTITULO = Constantes.CONSTANTE_SI;\n\tMARCA = \"M\";\n\tNUMERICO = Constantes.CONSTANTE_NO;\n\tFECHA = \"F\";\n\tTITULO = \"T\";\n\tOBSERVACION = \"I\";\n\t\n\tTIPOS = \n\t[\n\t\t{codigo: this.TEXTO, nombre: \"Texto\"},\n\t\t{codigo: this.LISTA, nombre: \"Lista\"},\n\t\t{codigo: this.ALTERNATIVA, nombre: \"Alternativa\"},\n\t\t{codigo: this.SUBTITULO, nombre: \"Subt\"+Constantes.I_TILDE_MIN+\"tulo\"},\n\t\t{codigo: this.MARCA, nombre: \"Marca\"},\n\t\t{codigo: this.NUMERICO, nombre: \"Num\"+Constantes.E_TILDE_MIN+\"rico\"},\n\t\t{codigo: this.FECHA, nombre: \"Fecha\"},\n\t\t{codigo: this.TITULO, nombre: \"T\"+Constantes.I_TILDE_MIN+\"tulo\"},\n\t\t{codigo: this.OBSERVACION, nombre: \"Observaci\"+Constantes.O_TIDLE_MIN+\"n\"},\n\t]\t\n\n\t\n\t//Constantes Origen Caracteristicas\n\tHOJAVIDA = \"HV\";\n\tTALENTO = \"TA\";\n\tDESCRIPCIONCARGO = \"DC\";\n\tNECESIDADCAPACITACION = \"NC\";\n    \n    transform(value: unknown, ...args: unknown[]): unknown {\n        let result = value;          \n\t\tif (args[0] == 'listaTipoCaracteristica') { this.TIPOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }      \n        return result;\n    }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DatoorganizacionModel } from '../../models/DatoorganizacionModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { DatoOrganizacionPipe } from '../../../../shared/pipes/datoOrganizacion.pipe';\nimport { ConstantesService } from '../../../../shared/servicios/constantes.service';\nimport { ListaConstantesPipe } from '../../../../shared/pipes/listaConstantes.pipe';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { AuthService, cargarmapasGlobal, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { CaracteristicaPipe } from '../../../../shared/pipes/caracteristica.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { ConfirmationService } from 'primeng/api';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { datoOrganizacionService } from '../../services/dato-organizacion.service';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { NgIf } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n\n@Component({\n    selector: 'app-popup-datos-requerimiento',\n    templateUrl: './popup-datos-requerimiento.component.html',\n    styleUrls: ['./popup-datos-requerimiento.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, NgIf, FormsModule, ReactiveFormsModule, DropdownModule, InputTextModule, InputTextareaModule, ButtonDirective, Ripple, TranslateModule]\n})\nexport class PopupDatosRequerimientoComponent implements OnInit {\n  esCampoTabla: boolean;\n  verOrden: any;\n  remuneracionCargo: boolean;\n  mostrarCampoRequerido: boolean;\n  validadorCampoObligatorio: boolean;\n\n  constructor(private translateService: TranslateService, private confirmationService: ConfirmationService, private formBuilder: FormBuilder, private utilsService: UtilsService, private datoOrganizacionPipe: DatoOrganizacionPipe, private constantesService: ConstantesService, private listaConstantesPipe: ListaConstantesPipe,\n    private cargarMapas: cargarmapasGlobal, private caracteristicasPipe: CaracteristicaPipe, private generalService: GeneralService, private notificationBusService: ToastService, private generalPipe: GeneralPipe, private us: UtilsService, private authService: AuthService, private datoOrganizacionSvc: datoOrganizacionService) { }\n\n  listaDatos;\n  tipoTabla: string;\n  nuevo: boolean;\n  titulo;\n  datoOrganizacionDTO: DatoorganizacionModel = new DatoorganizacionModel();\n  listaItemCampos: any[] = [];\n  mostrarPopUp: boolean;\n  listaitemTabla: any\n  listaEstados = []\n  listaObligatorio = [];\n  @Input() public comodinBuscador: any;\n  @Output() public regresar = new EventEmitter();\n  @Output() public actualizar = new EventEmitter();\n\n\n\n  //TALENTO\n  accion: string;\n  listaTipoCampo: any[] = []; listaCaracterisDescriCargo: any[] = []; listaEstado: any[] = []; listaAccion: any[] = []; listaTipo: any[] = []; listaCaracteristica: any[] = []; listaCosteo: any[] = []; listaCandidato: any[] = []; listaProponer: any[] = []; listaAnexo: any[] = [];\n  caracteristica: boolean = false; campo: boolean = false; costeo: boolean = false; candidato: boolean = false; anexo: boolean = false;\n\n  convocatoria: boolean = false;\n  pocesoSeleccion: boolean = false;\n  verTabla: boolean = false;\n  verCosteo: boolean = false;\n  verAnexo: boolean = false;\n\n  formulario: FormGroup;\n\n  ngOnInit(): void {\n\n  }\n\n  async ver(tipoTabla: string, datoOrganizacion: DatoorganizacionModel, listaDatos) {\n    try {\n      this.listaDatos = listaDatos;\n      this.nuevo = (datoOrganizacion == null);\n      this.tipoTabla = tipoTabla;\n      if (this.nuevo) {\n        this.datoOrganizacionDTO = new DatoorganizacionModel();\n        this.datoOrganizacionDTO.tipo = tipoTabla;\n        this.datoOrganizacionDTO.requerido = 'N';\n        this.titulo = this.translateService.instant('campo') + ' ' + this.translateService.instant('perfil');\n        await this.cargarFormulario();\n        await this.cargarListados();\n      } else {\n        this.datoOrganizacionDTO = datoOrganizacion;\n        await this.cargarFormulario();\n        await this.cargarListados();\n        this.titulo = this.datoOrganizacionPipe.transform(datoOrganizacion.tipo, 'mapaTablas');\n        this.titulo = await this.convertidorPipesSelects(this.titulo);\n        this.titulo = await this.transform(this.titulo, datoOrganizacion.tabla);\n        this.titulo = this.capitalizarTexto(this.titulo)\n        this.listaItemCampos = await this.constantesService.obtenerMapasCampos().toPromise();\n        if ((this.listaItemCampos[tipoTabla])[this.formulario?.get('tabla')?.value] != null) {\n          this.listaItemCampos = (this.listaItemCampos[tipoTabla])[this.formulario?.get('tabla')?.value];\n          this.listaItemCampos = await this.constantesService.convertirMapToListSelectItem(this.listaItemCampos).toPromise();\n        }\n      }\n      this.mostrarPopUp = true;\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  async cargarListadoCampos() {\n    this.listaItemCampos = await this.constantesService.obtenerMapasCampos().toPromise();\n    this.listaItemCampos = (this.listaItemCampos[this.tipoTabla])\n    this.listaItemCampos = this.listaItemCampos[this.formulario.get('tabla').value];\n    this.listaItemCampos = await this.constantesService.convertirMapToListSelectItem(this.listaItemCampos).toPromise();\n  }\n\n\n  cargarFormulario() {\n    this.formulario = this.formBuilder.group({\n      llave: new FormControl((this.datoOrganizacionDTO?.llave) ? this.datoOrganizacionDTO?.llave : this.us.generarLlave()),\n      campo: new FormControl(this.datoOrganizacionDTO?.campo, Validators.required),\n      tabla: new FormControl(this.datoOrganizacionDTO?.tabla, Validators.required),\n      operador: new FormControl(this.datoOrganizacionDTO?.operador),\n      descripcion: new FormControl(this.datoOrganizacionDTO?.descripcion),\n      orden: new FormControl(this.datoOrganizacionDTO?.orden),\n      corto: new FormControl(this.datoOrganizacionDTO?.corto),\n      requerido: new FormControl(this.datoOrganizacionDTO?.requerido),\n      accion: new FormControl(this.datoOrganizacionDTO?.accion),\n      origen: new FormControl(this.datoOrganizacionDTO?.origen ? this.datoOrganizacionDTO?.origen : 'NO'),\n      informacionBasica: new FormControl(this.datoOrganizacionDTO?.informacionBasica),\n      organizacion: new FormControl(this.datoOrganizacionDTO?.organizacion ? this.datoOrganizacionDTO?.organizacion : parseInt(this.authService.getTokenKey('numeroEmpresa'))),\n      tipo: new FormControl(this.datoOrganizacionDTO?.tipo),\n      estado: new FormControl(this.datoOrganizacionDTO?.estado),\n    });\n  }\n\n  convertidorPipesSelects(pipe) {\n    let map: any[] = []\n    pipe.forEach(element => {\n      map.push({ key: element.codigo, label: element.nombre })\n    });\n    return map;\n  }\n\n\n\n\n  async cargarListados() {\n    try {\n      const sleep = (m) => new Promise((r) => setTimeout(r, m));\n      await sleep(20)\n      this.listaitemTabla = null;\n      this.listaitemTabla = this.convertidorPipesSelects(this.datoOrganizacionPipe.TABLAS);\n      this.listaitemTabla = await this.convertidorPipesSelects(this.transform(this.listaitemTabla, this.tipoTabla));\n      this.listaEstados = [];\n      this.listaEstados = this.convertidorPipesSelects(this.listaConstantesPipe.TIPOS_VIGENTE);\n      this.listaObligatorio = [];\n      this.listaObligatorio = this.convertidorPipesSelects(this.listaConstantesPipe.SI_NO);\n      await this.cargarListadosEspecificos()\n    } catch (error) {\n      console.log(error);\n\n    }\n\n  }\n\n  ocultar() {\n    this.mostrarPopUp = false\n    this.listaitemTabla = null;\n    this.listaEstados = [];\n    this.listaObligatorio = [];\n    this.datoOrganizacionDTO = new DatoorganizacionModel();\n    this.regresar.emit();\n  }\n\n  setActualizar() {\n    this.mostrarPopUp = false\n    this.listaitemTabla = null;\n    this.listaEstados = [];\n    this.listaObligatorio = [];\n    this.datoOrganizacionDTO = new DatoorganizacionModel();\n    this.actualizar.emit(this.comodinBuscador);\n  }\n\n  transform(mapa, value: any): any {\n    let result = value;\n    mapa.forEach(data => { if (data.key === value) { result = data.label } });\n    return result;\n  }\n\n\n  async validarEspecifico() {\n\n    Object.keys(this.formulario.controls).forEach((key) => {\n      this.formulario.get(key).clearValidators();\n      this.formulario.get(key).updateValueAndValidity();\n    });\n    this.formulario?.get('tabla').setValidators(Validators.required);\n    if (this.isCarpeta()) {\n      this.formulario?.get('corto').setValidators(Validators.required);\n    }\n    if (this.convocatoria) {\n      this.formulario?.get('accion').addValidators(Validators.required)\n    }\n    if (this.datoOrganizacionPipe.COSTEO == this.formulario?.get('accion')?.value || this.datoOrganizacionPipe.CANDIDATO == this.formulario?.get('accion')?.value || this.datoOrganizacionPipe.ANEXO == this.formulario?.get('accion')?.value) {\n      if (this.datoOrganizacionPipe.ANEXO == this.formulario?.get('accion')?.value) {\n        // this.formulario?.get('descripcion').setValue(this.datoOrganizacionPipe.LISTA_ANEXO[this.formulario?.get('campo')?.value]);\n      } else {\n        this.formulario?.get('descripcion').setValue(this.datoOrganizacionPipe.COSTEO == this.formulario?.get('accion')?.value ? this.datoOrganizacionPipe.LISTA_COSTEO[this.formulario?.get('campo')?.value] : this.datoOrganizacionPipe.LISTA_CANDIDATO[this.formulario?.get('campo')?.value])\n      }\n      if (this.isRequerimiento() && !this.caracteristica && !this.isEsCaracteristica()) {\n        this.formulario?.get('descripcion').addValidators(Validators.required)\n      }\n      if (this.caracteristica) {\n        this.formulario?.get('campo').addValidators(Validators.required)\n      }\n      if (this.candidato && !this.isEsCaracteristica()) {\n        this.formulario?.get('requerido').addValidators(Validators.required)\n      }\n    }\n    if (this.datoOrganizacionPipe.PUESTO_TRABAJO != this.formulario?.get('accion')?.value && this.datoOrganizacionPipe.COSTEO != this.formulario?.get('accion')?.value && this.datoOrganizacionPipe.CANDIDATO != this.formulario?.get('accion')?.value) {\n      if (this.isRequerimiento() && !this.caracteristica) {\n        this.formulario?.get('campo').addValidators(Validators.required);\n      } if (this.isRequerimiento() && !this.caracteristica && !this.isEsCaracteristica()) {\n        this.formulario?.get('descripcion').addValidators(Validators.required);\n      } if (this.requerimiento()) {\n        this.formulario?.get('accion').addValidators(Validators.required);\n      } if (this.caracteristica) {\n        this.formulario?.get('campo').addValidators(Validators.required);\n      } if (this.requerimiento()) {\n        this.formulario?.get('accion').addValidators(Validators.required);\n      } if (!this.convocatoria && !this.isCarpeta && !this.isEsCaracteristica() && !this.remuneracionCargo) {\n        this.formulario?.get('requerido').addValidators(Validators.required);\n      } if (this.isDescripcionCargo() && !this.isBase() && !this.isCarpeta() && !this.isEsCaracteristica) {\n\n      }\n      if (this.isCarpeta()) {\n        this.formulario?.get('corto').addValidators(Validators.required);\n      }\n      if (this.isDescripcionCargo()) {\n        this.formulario?.get('operador').addValidators(Validators.required);\n      }\n\n      Object.keys(this.formulario.controls).forEach((key) => {\n        this.formulario.get(key).updateValueAndValidity();\n      });\n\n      this.formulario.updateValueAndValidity();\n    }\n  }\n\n  validar() {\n    try {\n      for (const element of this.listaDatos) {\n\n        element.origen = element.origen == null ? \"NO\" : element.origen;\n        if (element.llave.trim() != this.formulario?.get('llave')?.value\n          && element.tabla.trim() == this.formulario?.get('tabla')?.value\n          && (element.campo != null && element.campo?.trim() == this.formulario?.get('campo')?.value)\n          && (element.origen != null && element.origen?.trim() == this.formulario?.get('origen')?.value)) {\n          this.notificationBusService.showWarning(\"Ya se configuro el mismo campo y tabla\");\n          this.validadorCampoObligatorio = true;\n          return false;\n        }\n        if (this.isCarpeta()) {\n          // se valida que no se repita el orden de las carpetas\n          if (element.llave.trim() != this.formulario?.get('llave')?.value && !this.isBase() && element.campo.trim() == this.formulario?.get('campo')?.value\n            && this.formulario?.get('origen')?.value != null && element.orden != null && element.orden === this.formulario?.get('orden')?.value) {\n            this.notificationBusService.showWarning(\"El orden no se puede repetir entre las carpetas\");\n            this.validadorCampoObligatorio = true;\n            return false;\n          }\n          // ni el orden dentro de los campos de una misma tabla\n        } else if (this.formulario?.get('orden')?.value != null && element.orden != null && element.llave.trim() != this.formulario?.get('llave')?.value\n          && element.tabla.trim() == this.formulario?.get('tabla')?.value && element.orden == this.formulario?.get('orden')?.value) {\n          this.notificationBusService.showWarning(\"El orden no se puede repetir entre los campos de una misma tabla\");\n          this.validadorCampoObligatorio = true;\n          return false;\n        }\n      }\n      return true;\n    } catch (error) {\n      console.log(error);\n      return false\n    }\n  }\n\n  async guardar() {\n    try {\n      await this.validarEspecifico();\n      const sleep = (m) => new Promise((r) => setTimeout(r, m));\n      await sleep(10);\n      let validar = await this.validar();\n      if (validar && this.formulario.valid) {\n        if (this.nuevo) {\n          if (this.tipoTabla != null && this.tipoTabla != this.datoOrganizacionPipe.TIPO_TABLA_NECESIDAD) {\n            this.formulario?.get('estado').setValue(this.datoOrganizacionPipe.SELECCION);\n          }\n          this.datoOrganizacionDTO = await this.datoOrganizacionSvc.guardar(this.formulario.value).toPromise();\n          this.nuevo = false;\n          await this.cargarFormulario();\n          await this.setActualizar()\n          this.notificationBusService.showSuccess('Registro Agregado correctamente')\n          return\n        }\n        if (await this.generalService.update(new GeneralModel('DatoorganizacionDTO', null, false, this.formulario.value)).toPromise() <= 0) {\n          this.notificationBusService.showInfo('Registro NO Actualizado')\n          return null;\n        }\n        this.notificationBusService.showSuccess(Constantes.MENSAJE_ACTUALIZAR);\n        await this.setActualizar();\n      } else {\n        if (!this.validadorCampoObligatorio) {\n          this.notificationBusService.showError('Faltan campos obligatorios');\n        }\n        Object.keys(this.formulario.controls).forEach((key) => {\n          if (this.formulario.get(key).errors) {\n            this.formulario.get(key).markAsDirty();\n          }\n        });\n      }\n\n    } catch (error) {\n      console.log(error);\n\n    }\n\n\n\n\n  }\n\n\n\n  //Talento\n\n  async cargarListadosEspecificos() {\n    try {\n      this.accion = this.formulario?.get('accion')?.value;\n      if (this.tipoTabla == this.datoOrganizacionPipe.TIPO_TABLA_PROCESO_SELECCION) {\n        await this.cargarCampoTabla(this.datoOrganizacionPipe.PROCESO_SELECCION);\n      }\n\n      if (await this.isProcesoSeleccion()) {\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.PROCESO_SELECCION);\n      } else if (this.isRequerimiento()) {\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.REQUERIMIENTO);\n        this.listaTipo = this.convertidorPipesSelects(this.datoOrganizacionPipe.MAPATIPO);\n        const sleep = (m) => new Promise((r) => setTimeout(r, m));\n        await sleep(20)\n        await this.cargueTipo(this.formulario?.get('accion')?.value);\n      }\n\n      // Construye las listas seleccionables de campos para datos de tipo COSTEO, CANDIDATO, ACCION CONVOCATORIA Y PROPONE //\n      this.listaAccion = this.convertidorPipesSelects(this.datoOrganizacionPipe.LISTA_ACCION_CONVOCATORIA);\n      this.listaCosteo = this.convertidorPipesSelects(this.datoOrganizacionPipe.LISTA_COSTEO);\n      this.listaCandidato = this.convertidorPipesSelects(this.datoOrganizacionPipe.LISTA_CANDIDATO);\n      this.listaProponer = this.convertidorPipesSelects(this.datoOrganizacionPipe.MAPAPROPONESUELDO);\n      this.listaAnexo = this.convertidorPipesSelects(this.datoOrganizacionPipe.LISTA_ANEXO);\n      this.listaTipoCampo = this.convertidorPipesSelects(this.datoOrganizacionPipe.MAPATIPOCAMPO);\n      this.listaCaracterisDescriCargo = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('CaracteristicaDTO', null, false, { origen: this.caracteristicasPipe.DESCRIPCIONCARGO }));\n      await this.booleanos();\n    } catch (error) {\n      console.log(error);\n\n    }\n  }\n\n\n  async cargarCampoTabla(valorTabla) {\n    this.listaItemCampos = await this.constantesService.obtenerMapasCampos().toPromise();\n    this.listaItemCampos = await (this.listaItemCampos[this.tipoTabla])[valorTabla];\n    this.listaItemCampos = await this.constantesService.convertirMapToListSelectItem(this.listaItemCampos).toPromise();\n    console.log('listaItemCampos', this.listaItemCampos);\n\n  }\n\n\n\n  async cargarTipo(evento) {\n    let envio: string = evento.value\n    await this.cargueTipo(envio);\n  }\n\n\n  async cargueTipo(tipo: string) {\n    try {\n      this.caracteristica = false;\n      this.campo = false;\n      this.costeo = false;\n      this.candidato = false;\n      this.anexo = false;\n      this.accion = tipo;\n      this.formulario?.get('accion').setValue(tipo);\n      this.formulario?.get('tipo').setValue(this.datoOrganizacionPipe.TIPO_TABLA_REQUERIMIENTO_PERSONAL);\n      //DATOS DE TIPO CARACTERISTICA\n      if (this.datoOrganizacionPipe.CARA.toUpperCase() == tipo.toUpperCase()) {\n        this.caracteristica = true;\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.CARA_TABLA);\n        this.listaCaracteristica = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('CaracteristicaDTO', null, false, { origen: 'TA' }));\n      }\n      //DATOS DE TIPO CAMPO\n      else if (this.datoOrganizacionPipe.CAMPO == tipo) {\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.REQUERIMIENTO);\n        this.campo = true\n      }\n      //DATOS DE TIPO COSTEO\n      else if (this.datoOrganizacionPipe.COSTEO == tipo) {\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.COSTEO_TABLA);\n        this.costeo = true;\n      }\n      //DATOS DE TIPO PUESTO TRABAJO\n      else if (this.datoOrganizacionPipe.PUESTO_TRABAJO == tipo) {\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.PUESTO_TRABAJO_TABLA);\n\n      }\n      //DATOS DE TIPO CANDIDATO\n      else if (this.datoOrganizacionPipe.CANDIDATO == tipo) {\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.CANDIDATO_TABLA);\n        this.candidato = true\n      }\n      //DATOS DE TIPO ANEXO\n      else if (this.datoOrganizacionPipe.ANEXO == tipo) {\n        this.formulario?.get('tabla').setValue(this.datoOrganizacionPipe.ANEXO_TABLA);\n        this.anexo = true\n\n      }\n      this.booleanos();\n\n    } catch (error) {\n      console.log(error);\n\n    }\n  }\n\n  isRequerimiento() {\n    return this.tipoTabla === this.datoOrganizacionPipe.TIPO_TABLA_REQUERIMIENTO_PERSONAL\n  }\n\n  verCandidato() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && this.candidato && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  }\n\n  isEsCampoTabla() {\n    return this.formulario.value != null && this.datoOrganizacionPipe.CAMPOTABLA == this.formulario?.get('operador')?.value;\n  }\n\n  isDescripcionCargo() {\n    return this.tipoTabla != null && this.tipoTabla == this.datoOrganizacionPipe.TIPOTABLADESCCARGO;\n  }\n\n  verCampo() {\n    return (this.formulario.value != null && this.formulario?.get('tabla')?.value != null && (!this.requerimiento() || (this.requerimiento() && this.campo)) && (!this.isDescripcionCargo() || this.isEsCampoTabla()));\n  }\n\n  requerimiento() {\n    return this.tipoTabla === this.datoOrganizacionPipe.TIPO_TABLA_REQUERIMIENTO_PERSONAL;\n  }\n\n  isProcesoSeleccion() {\n    return this.tipoTabla != null && this.tipoTabla == this.datoOrganizacionPipe.TIPO_TABLA_PROCESO_SELECCION;\n  }\n\n  verCaracteristicaCargo() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && (!this.isRequerimiento() || (this.isRequerimiento() && this.campo)) && (this.isDescripcionCargo() && this.isEsCaracteristica());\n  }\n\n  isEsCaracteristica() {\n    return this.formulario.value != null && this.datoOrganizacionPipe.CARACTERISTICA == this.formulario?.get('operador')?.value;\n  }\n\n\n\n  async booleanos() {\n    try {\n      this.convocatoria = await this.tipoTabla != null && this.tipoTabla == this.datoOrganizacionPipe.TIPO_TABLA_CONVOCATORIA;\n      this.verTabla = await (!this.requerimiento() && !this.isProcesoSeleccion());\n      this.verAnexo = await this.formulario.value != null && this.formulario?.get('tabla')?.value != null && this.anexo && (this.isDescripcionCargo() == false || this.isEsCampoTabla());\n      this.remuneracionCargo = await this.formulario.value != null && this.requerimiento() && this.formulario?.get('campo')?.value != null && (\"minimoremuneracioncargo\".toUpperCase() == this.formulario?.get('campo')?.value.toUpperCase() || \"maximoremuneracioncargo\".toUpperCase() == this.formulario?.get('campo')?.value.toUpperCase());\n      this.mostrarCampoRequerido = await (this.formulario?.get('tabla')?.value != null\n        && !this.convocatoria\n        && !this.isCarpeta()\n        && !this.requerimiento()\n        && this.accion != this.datoOrganizacionPipe.PUESTO_TRABAJO\n        && this.accion != this.datoOrganizacionPipe.COSTEO)\n        && (!this.isDescripcionCargo() || this.isEsCampoTabla())\n        && !this.remuneracionCargo\n    } catch (error) {\n      console.log(error);\n\n    }\n  }\n\n  // public isVerOrden() : boolean{\n  // \treturn this.formulario.value !=null && this.formulario?.get('campo')?.value != null && this.isDescripcionCargo() && (!this.isBase() || !this.isCarpeta()) && (!this.isDescripcionCargo() || this.esCampoTabla);\n  // }\n\n  // isMostrarMensaje() {\n  //   return (this.formulario?.get('campo')?.value != null) && (this.formulario?.get('tabla')?.value != this.datoOrganizacionPipe.DESCANDIDATO) && (this.formulario?.get('tabla')?.value != this.datoOrganizacionPipe.DESCOSTEO) && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  // }\n\n  isBase() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && this.formulario?.get('tabla')?.value.trim() == this.datoOrganizacionPipe.BASE;\n  }\n  isCarpeta() {\n    return this.formulario.value != null && this.formulario?.get('campo')?.value != null && this.formulario?.get('campo')?.value == Constantes.PUNTO;\n  }\n  // isSueldo() {\n  //   return this.formulario.value !=null && this.requerimiento() && this.formulario?.get('campo')?.value != null && this.formulario?.get('requerido')?.value != null && 'asignacion'.toUpperCase() == this.formulario?.get('campo')?.value.toUpperCase();\n  // }\n\n\n  public isMostrarMensaje() {\n    return this.formulario?.get('campo')?.value != null && this.formulario?.get('tabla')?.value != (this.datoOrganizacionPipe.DESCANDIDATO) && this.formulario?.get('tabla')?.value != (this.datoOrganizacionPipe.DESCOSTEO)\n      && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  }\n\n  /**Control visibilidad campos*/\n\n  public isVerTabla() {\n    return !this.isProcesoSeleccion() && !this.isRequerimiento();\n  }\n\n  public isVerCampo() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && (!this.isRequerimiento() || (this.isRequerimiento() && this.campo)) && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  }\n\n  public isVerCaracteristicaCargo() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && (!this.isRequerimiento() || (this.isRequerimiento() && this.campo)) && (this.isDescripcionCargo() && this.isEsCaracteristica());\n  }\n\n  public isVerCosteo() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && this.costeo && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  }\n\n  public isVerCandidato() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && this.isVerCandidato() && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  }\n\n  public isVerAnexo() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && this.anexo && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  }\n\n  public isVerOrden() {\n    return this.formulario.value != null && this.formulario?.get('tabla')?.value != null && this.isDescripcionCargo() && (!this.isBase() || !this.isCarpeta()) && (!this.isDescripcionCargo() || this.isEsCampoTabla());\n  }\n\n  // public isEsCampoTabla(){\n  // \treturn this.formulario.value !=null && this.datoOrganizacionPipe.CAMPOTABLA == (this.datoOrganizacionDTO.operador);\n  // }\n\n  // public isEsCaracteristica(){\n  // \treturn this.formulario.value !=null && this.datoOrganizacionPipe.CARACTERISTICA == (this.datoOrganizacionDTO.operador);\n  // }\n\n  public isRemuneracionCargo() {\n    return this.formulario.value != null && this.isRequerimiento() && this.datoOrganizacionDTO.campo != null\n      && (\"minimoremuneracioncargo\" == (this.datoOrganizacionDTO.campo.toLowerCase())\n        || \"maximoremuneracioncargo\" == (this.datoOrganizacionDTO.campo.toLowerCase()));\n  }\n\n  public isSueldo() {\n    return this.formulario.value != null && this.isRequerimiento() && this.datoOrganizacionDTO.campo != null\n      && this.datoOrganizacionDTO.requerido != null && \"asignacion\" == (this.datoOrganizacionDTO.campo.toLowerCase());\n  }\n\n\n\n  async eliminar(event) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      accept: () => {\n        this.setEliminar();\n      },\n      reject: () => { }\n    });\n  }\n\n  async setEliminar() {\n    try {\n\n      if ((await this.generalService.delete(new GeneralModel('DatoorganizacionDTO', null, false, { llave: this.formulario?.get('llave')?.value })).toPromise()) <= 0) {\n        this.notificationBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO);\n        return\n      }\n      this.notificationBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n      await this.setActualizar()\n    } catch (error) {\n      console.log(JSON.stringify(error));\n\n    }\n  }\n\n  capitalizarTexto(texto: string): string {\n    return texto\n      .toLowerCase() // Aseguramos que todo esté en minúsculas primero\n      .split(' ')    // Dividimos el string por espacios\n      .map(word => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalizamos la primera letra de cada palabra\n      .join(' ');    // Volvemos a unir las palabras con un espacio\n  }\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{ titulo }}\" [(visible)]=\"mostrarPopUp\" [breakpoints]=\"{ '960px': '75vw', '640px': '100vw' }\"\n    [style]=\"{ width: '45vw' }\" (onShow)=\"mostrarPopUp\" (onHide)=\"ocultar()\" [modal]=\"true\">\n    <!-- <form [formGroup]=\"form\" #formulario=\"ngForm\"> -->\n    <div  *ngIf=\"mostrarPopUp\">\n        <form [formGroup]=\"formulario\" class=\"grid p-fluid\">\n        <!-- TIPO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"this.requerimiento()\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaTipo\" appendTo=\"body\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\" id=\"reporte\"\n                    [(ngModel)]=\"accion\" [disabled]=\"!nuevo\" (onChange)=\"cargarTipo($event)\" [ngModelOptions]=\"{standalone: true}\">\n                </p-dropdown>\n                <label>{{'tipo' | translate}}*</label>\n            </span>\n        </div>\n        <!-- CARACTERISTICAS -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"this.requerimiento() && this.caracteristica\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaCaracteristica\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [autoDisplayFirst]=\"false\" id=\"reporte\" formControlName=\"campo\"></p-dropdown>\n                <label>{{'caracteristicas' | translate}}*</label>\n            </span>\n        </div>\n        <!-- TABLA -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"verTabla\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaitemTabla\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [autoDisplayFirst]=\"false\" id=\"reporte\" (onChange)=\"cargarListadoCampos()\"\n                    formControlName=\"tabla\"></p-dropdown>\n                <label>{{'tabla' | translate}}*</label>\n            </span>\n        </div>\n        <!-- TIPO CAMPO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"isDescripcionCargo()\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaTipoCampo\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [autoDisplayFirst]=\"false\" id=\"reporte\" formControlName=\"operador\"></p-dropdown>\n                <label>{{'tipo' | translate}}*</label>\n            </span>\n        </div>\n        <!-- CAMPO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"verCampo()\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"value\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaItemCampos\"\n                [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\" id=\"reporte\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" formControlName=\"campo\"></p-dropdown>\n                <label>{{'campo' | translate}}*</label>\n            </span>\n        </div>\n        <!-- CARACTERISTICAS CARGO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"verCaracteristicaCargo()\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaCaracterisDescriCargo\"\n                    [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\" id=\"reporte\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" formControlName=\"campo\"></p-dropdown>\n                <label>{{'caracteristicas' | translate}}*</label>\n            </span>\n        </div>\n        <!-- COSTEO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"isVerCosteo()\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaCosteo\" appendTo=\"body\"\n                    [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\"\n                    id=\"reporte\" formControlName=\"campo\"></p-dropdown>\n                <label>{{'costeo' | translate}}*</label>\n            </span>\n        </div>\n        <!-- CANDIDATO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"verCandidato()\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaCandidato\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [autoDisplayFirst]=\"false\" id=\"reporte\" formControlName=\"campo\"></p-dropdown>\n                <label>{{'candidato' | translate}}*</label>\n            </span>\n        </div>\n        <!-- ANEXO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"verAnexo\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaAnexo\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [autoDisplayFirst]=\"false\" id=\"reporte\" formControlName=\"campo\"></p-dropdown>\n                <label>{{'campoanexio' | translate}}*</label>\n            </span>\n        </div>\n        <!-- MENSAJE -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"isMostrarMensaje()\">\n            <span class=\"p-float-label\">\n                <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"descripcion\"\n                    [maxLength]=\"80\" />\n                <label>{{'mensaje' | translate}} {{this.isRequerimiento() && !this.caracteristica && !this.isEsCaracteristica() ? '*':  ''}}</label>\n            </span>\n        </div>\n        <!-- ORDEN -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"isVerOrden()\">\n            <span class=\"p-float-label\">\n                <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"orden\"/>\n                <label>{{'orden' | translate}}</label>\n            </span>\n        </div>\n        <!-- MENSAJE CORTO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"isCarpeta()\">\n            <span class=\"p-float-label\">\n                <input class=\"w-full\" pInputText autofocus type=\"text\" formControlName=\"corto\"/>\n                <label>{{'mensaje' | translate}} {{'corto' | translate}}*</label>\n            </span>\n        </div>\n        <!-- REQUERIDO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"mostrarCampoRequerido\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaObligatorio\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [autoDisplayFirst]=\"false\" id=\"reporte\" formControlName=\"requerido\"></p-dropdown>\n                <label>{{'requerido' | translate}}*</label>\n            </span>\n        </div>\n        <!-- ACCION -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"convocatoria\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaAccion\" appendTo=\"body\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [autoZIndex]=\"false\" [autoDisplayFirst]=\"false\" id=\"reporte\"\n                    formControlName=\"accion\" >\n                </p-dropdown>\n                <label>{{'accion' | translate}}*</label>\n            </span>\n        </div>\n        <!-- PROPONER -->\n        <div class=\"field col-6 md:col-6 lg:col-6\" *ngIf=\"isSueldo()\">\n            <span class=\"p-float-label\">\n                <p-dropdown optionValue=\"key\" optionLabel=\"label\" class=\"w-full\" [options]=\"listaProponer\"\n                    appendTo=\"body\" [autoZIndex]=\"false\" [disabled]=\"!nuevo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [autoDisplayFirst]=\"false\" id=\"reporte\" formControlName=\"origen\"></p-dropdown>\n                <label>{{'proponer' | translate}}*</label>\n            </span>\n        </div>\n         <!-- CUADRO TEXTO -->\n         <div class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n                <textarea id=\"float-input\"  counter=\"display\" maxlength=\"32000\" pInputTextarea formControlName=\"informacionBasica\"\n                    class=\"h-7rem min-h-100 w-full\"></textarea>\n\n                <label>{{'informacionbasica' | translate}}</label>\n            </span>\n        </div>\n    </form>\n    </div>\n    <div class=\"flex justify-content-end align-items-center mb-2\">\n        <button pButton *ngIf=\"nuevo\" pRipple class=\"p-button p-button-raised mr-2\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'Guardar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <button *ngIf=\"!nuevo\" pButton pRipple class=\"p-button p p-button-raised mr-2\"\n            icon=\"glyphicons glyphicons-refresh \" label=\"{{'Actualizar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2  p-button-outlined\" (click)=\"eliminar($event)\"\n            icon=\"glyphicons glyphicons-bin\" label=\"Eliminar\" *ngIf=\"!nuevo\"></button>\n    </div>\n    <!-- </form> -->\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class TipoCalificaModel extends UnionModel {\n\n\tdescripcion:string;\n\tcomodin:string;\n\torigen:string;\n\tgestionPeriodo:string;\n\torden:number;\n\ttipoEntrada:string;\n\n}","import { SelectListEvaluacionesService } from './../../../services/select-list-evaluaciones.service';\nimport { Component, ViewChild } from '@angular/core';\nimport { EvaluacionHojaModel } from '../../../models/EvaluacionHojaModel';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { ConfirmationService, MenuItem, SelectItem } from 'primeng/api';\nimport { FaseGestionHojaModel } from '../../../models/FaseGestionHojaModel';\nimport { FaseGestionHojaPipe } from '../../../pipes/fase-gestion-hoja.pipe';\nimport { HojaVidaModel } from '../../../../../modules/hojavida/models/HojaVidaModel';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { EvaluacionesService } from '../../../services/evaluaciones.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { FaseGestionHojaContComponent } from '../../evaluacion/fase-gestion-hoja-cont/fase-gestion-hoja-cont.component';\nimport { FaseGestionModel } from '../../../models/FaseGestionModel';\nimport { TipoCalificaModel } from '../../../models/TipoCalificaModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { DocumentoSoporteService } from '../../../../../modules/sarageneral/services/documento-soporte.service';\nimport { EvaluacionService } from '../../../services/evaluacion.service'; \nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgFor, NgIf, NgSwitch, NgSwitchCase } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { PopupConsultaDocumentoSoporteComponent } from '../../../popups/popup-consulta-documento-soporte/popup-consulta-documento-soporte.component';\n\n@Component({\n  selector: 'app-detalle-evaluador',\n  standalone: true,\n  imports: [FaseGestionHojaContComponent,ConfirmPopupModule, ButtonDirective, Ripple, DropdownModule, FormsModule, NgIf,ReactiveFormsModule, InputTextModule,NgFor, NgSwitch, \n\tNgSwitchCase, TranslateModule,InputHelperEmpleadoBotonComponent,CalendarModule,SplitButtonModule,PopupConsultaDocumentoSoporteComponent],\n  templateUrl: './detalle-evaluador.component.html',\n  styleUrl: './detalle-evaluador.component.scss'\n})\nexport class DetalleEvaluadorComponent {\n\n  // private static final long serialVersionUID = -160394534567242570L;\n\tpublic puedeEditar: boolean;\n\tpublic mostrarBotonGuardar: boolean;\n\tpublic filtro: FaseGestionHojaModel = new FaseGestionHojaModel();\t\n\tpublic listaTipoEvaluador: SelectItem[]= [];visible: boolean;\n\tpublic listaEstado: SelectItem[];\n\tpublic listaFase: SelectItem[]= [];\n\tpublic aplicada: boolean\n    public periodo: boolean;\n\tpublic reprogramada: boolean;\n\tpublic listaTipoEvaluacion: SelectItem[] = [];\n\tpublic llaveEvaluacionHoja: string ;\n\tpublic puestoTrabajoDTO: PuestoTrabajoModel =  new PuestoTrabajoModel();\n\tpublic filtroBean: EvaluacionHojaModel = new EvaluacionHojaModel();\n\tpublic tieneMotivo: boolean;\n\tpublic descripcionBtn: string;\n\tpublic clickGuardar: boolean;\n\tpublic rangoFechas: Date[] | undefined = [];\n  \t@ViewChild('faseGestionHojaC') faseGestionHojaC: FaseGestionHojaContComponent;\n\t@ViewChild('popupConsultaDoc') popupConsultaDoc: PopupConsultaDocumentoSoporteComponent;\n\tvalidando: boolean;\n\tmenu: MenuItem[] = [];\n\tcedula\n\n  \n\n  constructor(private faseGesHojaCons: FaseGestionHojaPipe, private generalSvc: GeneralService, public utilsService: UtilsService, private notificationBusService: ToastService, private authService: AuthService,\n    private evaluacionSvc: EvaluacionService,private confirmationService: ConfirmationService, private selectListSvc : SelectListEvaluacionesService, private saraAplicacionService: SaraAplicacionService,\n\tprivate  parametrosEvaluacionCons: ParametrosEvaluacionPipe, private documentoSoporteSvc: DocumentoSoporteService, private generalPipe: GeneralPipe, private translateService: TranslateService,private controlFuncionService: CargarControlFuncionalidadService\n  ){\n\tthis.listaEstado = this.faseGesHojaCons.ESTADOS.map((item) => ({value:item.codigo, label: item.nombre}));\n  }  \n\n  public setNuevoEvaluador(hojavidaDTO: HojaVidaModel): void {\n\t\tif(hojavidaDTO != null){\n\t\t\tthis.filtro.cedulaResponsable = (hojavidaDTO.identifica);\n\t\t\tthis.filtro.documentoResponsable = (hojavidaDTO.documento);\n\t\t\tthis.filtro.nombreCompletoResponsable = (hojavidaDTO.nombreCompleto);\n\t\t}\t\t\n\t}\n\n\tpublic setNuevoAutorizador(hojavidaDTO: HojaVidaModel): void {\n\t\tif(hojavidaDTO != null){\n\t\t\tthis.filtro.cedulaAutorizador = (hojavidaDTO.identifica);\n\t\t\tthis.filtro.documentoAutorizador = (hojavidaDTO.documento);\n\t\t\tthis.filtro.nombreCompletoAutoriza = (hojavidaDTO.nombreCompleto);\n\t\t}\t\t\n\t}\n\n\tpublic validarEvaluador(): boolean{\n\t\tlet valida: boolean = true;\n\t\tthis.validando = true;\n    \tvalida = valida && this.utilsService.validarCampoObligatorio(this.filtro.llaveFase);\n    \tvalida = valida && this.utilsService.validarCampoObligatorio(this.filtro.cedulaResponsable);\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.filtro.estado);\t\t\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.filtro.fechaInicial);\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.filtro.fechaFinal);\t\t\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.filtro.llavetipoEvaluador);\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.filtro.tipoEvaluacion);\n\t\treturn valida;\t\t\n\t}\n\t\n\tpublic async actualizarEvaluador(): Promise<string>{\n\t\ttry {\n\t\t\tthis.getRangoFechas();\n\t\t\tif(!this.validarEvaluador()){\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn null;\t\t\n\t\t\t}\n\t\t\tthis.validando = false;\n\t\t\tif ( this.filtro.estado == (this.faseGesHojaCons.PROGRAMADA)) {\n\t\t\t\tthis.filtro.estadoPrimario = (null);\n\t\t\t\tthis.filtro.estadoSecundario = (null);\n\t\t\t\tthis.filtro.llaveEtapaFase = (null);\n\t\t\t}\n\t\t\tawait this.generalSvc.update(new GeneralModel('FaseGestionHojaDTO',null,false,this.filtro)).toPromise();\n\t\t\tthis.notificationBusService.showInfo(\"Se actualizo el registro correctamente\");\n\t\t\tthis.aplicada = false;\n\t\t\tif(this.faseGesHojaCons.APLICADA == (this.filtro.estado)){\n\t\t\t\tthis.aplicada = true;\n\t\t\t}\n\t\t\tif(this.faseGesHojaCons.RECONCERTADA == (this.filtro.estado)){\n\t\t\t\tthis.reprogramada = true;\n\t\t\t}\n\t\t\tthis.regresarAction();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\tpublic async guardarEvaluador(): Promise<string> {\n\t\ttry {\n\t\t\tthis.getRangoFechas();\n\t\t\tif(!this.validarEvaluador()) {\n\t\t\t\treturn null;\t\t\t\n\t\t\t}\n\t\t\tif ( this.filtro.empresa == null) {\n\t\t\t\tthis.filtro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t}\n\n\t\t\tthis.filtro = await this.generalSvc.crearRegistro(new GeneralModel('FaseGestionHojaDTO',null,false,this.filtro)).toPromise();\n\t\t\tthis.notificationBusService.showInfo(\"Se Inserto el registro correctamente\");\n\t\t\tthis.aplicada = false;\n\t\t\tif(this.faseGesHojaCons.APLICADA == (this.filtro.estado)){\n\t\t\t\tthis.aplicada = true;\n\t\t\t}\n\t\t\tif(this.faseGesHojaCons.RECONCERTADA == (this.filtro.estado)){\n\t\t\t\tthis.reprogramada = true;\n\t\t\t}\n\t\t\tif(this.faseGesHojaCons.PROGRAMADA == (this.filtro.estado)){\n\t\t\t\tawait this.evaluacionSvc.procesoBPM(this.filtro.llave).toPromise();\n\t\t\t}\n\t\t\tthis.regresarAction();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\t\n\tpublic limpiarAutorizador(): string{\n\t\tthis.filtro.cedulaAutorizador = (null);\n\t\tthis.filtro.documentoAutorizador = (null);\n\t\tthis.filtro.nombreCompletoAutoriza =(null);\n\t\treturn null;\n\t}\n\t\n\tpublic eliminarEvaluador(): string{\n    this.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: 'Desea eliminar el registro',\n\t\t\tacceptLabel: 'Si',\n\t\t\theader: 'Confirmar',\n\t\t\taccept: () => {\n\t\t\t\tthis.setEliminarEvaluador(true);\n\t\t\t},\n\t\t});\n\t\treturn null;\n\t}\n\t\n\tpublic async setEliminarEvaluador(confirmar: boolean): Promise<void>{\n\t\ttry {\n\t\t\tif(confirmar){\n\t\t\t\tawait this.evaluacionSvc.borrarEvaluador(this.filtro.llave).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(\"Se elimino el registro correctamente\");\n\t\t\t\tthis.regresarAction();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn;\n\t}\n\tsetRangoFechas(){\n\t\tthis.rangoFechas.push(new Date(this.filtro.fechaInicial));\n\t\tthis.rangoFechas.push(new Date(this.filtro.fechaFinal));\n\t}\n\n\tgetRangoFechas(){\n\t\tthis.filtro.fechaInicial = this.rangoFechas[0];\n\t\tthis.filtro.fechaFinal = this.rangoFechas[1];\n\t}\n\n\tpublic async buscar(destino: string,filtro: FaseGestionHojaModel,puedeEditar: boolean,mostrarBotonGuardar: boolean,llavedetalleHerramienta: string): Promise<void>{\n\t\t// this.setDestino(destino);\n\t\tthis.cedula =  await this.saraAplicacionService.getCedula();\n\t\tthis.filtro = filtro;\n\t\tthis.setRangoFechas()\t\t\n\t\tthis.puedeEditar = puedeEditar;\n\t\tthis.mostrarBotonGuardar = mostrarBotonGuardar;\t\t\n\t\tthis.cargarDatos();\n\t\tthis.aplicada = false;\n\t\tthis.reprogramada = false;\n\t\tthis.listaTipoEvaluador = await this.selectListSvc.getListaTipoEvaluadorFiltro(llavedetalleHerramienta,'E');\n\t\tconsole.log('listaTipoEvaluador',this.listaTipoEvaluador);\n\t\t\n    // getBean(SelectListEvaluaciones.class).getListaTipoEvaluadorFiltro(llavedetalleHerramienta,\"E\");\n    let listaFaseTemp = await this.selectListSvc.getListaFaseFiltro(llavedetalleHerramienta)\n\t\tthis.listaFase = listaFaseTemp.map(item => ({value:item?.key, label: item?.label}));\n    // getBean(SelectListEvaluaciones.class).getListaFaseFiltro(llavedetalleHerramienta);\t\t\n\t\tthis.listaTipoEvaluacion= this.faseGesHojaCons.LISTA_TIPO_EVALUACION.map((item) => ({value:item.codigo,label:item.nombre}));\n\t\tif(this.faseGesHojaCons.APLICADA == (this.filtro.estado)){\n\t\t\tthis.aplicada = true;\n\t\t}\n\t\tif(this.faseGesHojaCons.RECONCERTADA == (this.filtro.estado)){\n\t\t\tthis.reprogramada = true;\n\t\t}\n\t\tthis.traerMotivo();\n\t\tthis.mostrarPopup();\n\t\tthis.cargasOpciones();\n\t}\n\tpublic cargarDatos(): void{\n\t\tif(this.mostrarBotonGuardar){\n\t\t\tif(this.listaFase != null && this.listaFase.length == 2){\n\t\t\t\tthis.filtro.llaveFase = (this.listaFase[1].value);\n\t\t\t}\t\n\t\t\tif(this.listaTipoEvaluador != null && this.listaTipoEvaluador.length == 2){\n\t\t\t\tthis.filtro.llavetipoEvaluador = (this.listaTipoEvaluador[1].value);\n\t\t\t}\n\t\t\telse if(this.listaTipoEvaluador != null && this.listaTipoEvaluador.length == 1){\n\t\t\t\tthis.filtro.llavetipoEvaluador = (Constantes.PUNTO);\n\t\t\t}\n\t\t\tthis.filtro.estado = (this.faseGesHojaCons.PROGRAMADA);\n\t\t\tthis.aplicada = false;\n\t\t\tthis.reprogramada = false;\n\t\t\tif(this.faseGesHojaCons.APLICADA == (this.filtro.estado)){\n\t\t\t\tthis.aplicada = true;\n\t\t\t}\n\t\t\tif(this.faseGesHojaCons.RECONCERTADA == (this.filtro.estado)){\n\t\t\t\tthis.reprogramada = true;\n\t\t\t}\n\t\t}\n\t}\n\tpublic limpiarEvaluador(): string{\n\t\tthis.filtro.cedulaResponsable = (null);\n\t\tthis.filtro.documentoResponsable  = (null);\n\t\tthis.filtro.nombreCompletoResponsable = (null);\n\t\t\n\t\treturn null;\n\t}\n\t\n\tpublic regresarAction(): void {\n\t\t// ListadoEvaluadores bean = getBean(ListadoEvaluadores.class);\n\t\t// bean.setVistaVisualizar(null);\n\t\t// bean.cargarBreadFases();\n\t}\n\tpublic enviarEmail(): void {\n    this.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: 'Desea Notificar  ',\n\t\t\tacceptLabel: 'Si',\n\t\t\theader: 'Confirmar',\n\t\t\taccept: () => {\n\t\t\t\tthis.enviarCorreo();\n\t\t\t},\n\t\t});\n\t}\n\n\tcargasOpciones(){\n\t\tthis.menu= [{label: this.translateService.instant('link_eliminar'), icon: 'glyphicons glyphicons-bin', visible: !this.mostrarBotonGuardar && !this.reprogramada, command: (event) => {this.eliminarEvaluador()}},\n\t\t{label: this.translateService.instant('link_reporte'), icon: 'glyphicons glyphicons-print', visible: (this.filtro.estado ==  'C' && (this.isMostrarArchivo()) && (this.verificarControl('evalua:verreportecombinado') || (this.isSoyJefe() && this.verificarControl('evalua:verreportecomjefe')) ) && this.isArchivoVer())  || this.isFuncional(), command: (event) => {this.combinarArchivo()}},\n\t\t{label: this.descripcionBtn, icon: 'glyphicons glyphicons-file', visible: this.aplicada && this.tieneMotivo, command: (event) => {this.aplicarReconcertar()}},\n\t\t{label: this.translateService.instant('link_notificar'), icon: 'glyphicons glyphicons-bell', command: (event) => {this.enviarEmail()}},\n\t\t{label: this.translateService.instant('iraevaluacion'), icon: 'glyphicons glyphicons-notes-2', visible: this.filtro.estado == 'C' && this.verificarControl('evalua:iraevaluacion'), command: (event) => {this.navegarEvaluacion()}},\n\t\t]\n\t}\n\n\tpublic verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t}\n  \n  public async enviarCorreo(): Promise<void> {\n\t\ttry {\n\t\t\t// FaseGestionHojaDTO\n\t\t\tlet  faseGestionHoja = new FaseGestionHojaModel();\n\t\t\tfaseGestionHoja.llave =  (this.filtro.llaveTabla);\n\t\t\tfaseGestionHoja= await this.generalSvc.queryForObject(new GeneralModel('FaseGestionHojaDTO',null,false,faseGestionHoja)).toPromise();\n\t\t\tif (this.utilsService.isBlank(faseGestionHoja.mailResposanble) || faseGestionHoja.mailResposanble.trim().length <= 3\n\t\t\t\t\t|| !this.utilsService.validarEmail(faseGestionHoja.mailResposanble)) {\n\t\t\t\tthis.notificationBusService.showWarning(\"No fue posible enviar la notificaci\" + Constantes.O_TIDLE_MIN + \"n a los siguientes colaboradores: \" + \"- \" + faseGestionHoja.nombreCompletoEvaluado + \"\\r\\n\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tif (this.utilsService.isBlank(faseGestionHoja.mailEvaluado) || faseGestionHoja.mailEvaluado.trim().length <= 3\n\t\t\t\t\t|| !this.utilsService.validarEmail(faseGestionHoja.mailEvaluado)) {\n\t\t\t\tthis.notificationBusService.showWarning(\"No fue posible enviar la notificaci\" + Constantes.O_TIDLE_MIN + \"n a los siguientes colaboradores: \" + \"- \" + faseGestionHoja.nombreCompletoEvaluado + \"\\r\\n\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.evaluacionSvc.enviarCorreo(this.filtro).toPromise();\n\t\t\tthis.notificationBusService.showInfo(\"Proceso de notificaci\" + Constantes.O_TIDLE_MIN + \"n ha finalizado\");\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t} \n\t\n\tpublic navegarEvaluacion(): string{\n\t\t// navegar(ConstantesGenerales.REGLA_DETALLE_GESTION);\n\t\t// FaseGestionHojaDTO \n    \tlet faseGestionHojaDTO = this.filtro;\n   \t\t this.faseGestionHojaC.setTraerFaseEvaluacion(faseGestionHojaDTO.llave, \"inicio\");\n    \tthis.faseGestionHojaC.llaveEvaluacionHoja = (this.llaveEvaluacionHoja);\n\t\tthis.faseGestionHojaC.puestoTrabajoDTO = (this.puestoTrabajoDTO);\n\t\tthis.faseGestionHojaC.filtroBean = (this.filtroBean);\n\t\tthis.faseGestionHojaC.periodo = (this.periodo);\n\t\tthis.faseGestionHojaC.origen = (\"P\");\n\t\treturn null;\n\t}\n\n\n  public isMostrarTipoEvaludor(): boolean{\n\t\treturn this.listaTipoEvaluador != null && this.listaTipoEvaluador.length != 1;\n\t}\n\t\n\t\n\tpublic aplicarReconcertar(): string{\n\t\ttry {\n\t\t\t// getBean(PopupFechaLimiteBean.class).buscar(\"#{detalleEvaluador.terminarProceso}\", filtro);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\t\n\t\treturn null;\n\t}\n\n\tpublic setTerminarProceso(mostrarReconcertar: boolean): void{\n\t\tthis.setAplicada(mostrarReconcertar);\n\t}\n\tpublic isAplicada(): boolean {\n\t\treturn this.aplicada;\n\t}\n\tpublic setAplicada(aplicada: boolean): void {\n\t\tthis.aplicada = aplicada;\n\t\tthis.reprogramada = true;\n\t}\n\t\n\tprivate async traerMotivo(): Promise<void>{\n\t\ttry {\n\t\t\tthis.tieneMotivo=false;\n\t\t\tthis.descripcionBtn=null;\n\t\t\tif ( this.filtro.llaveFase == null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// FaseGestionDTO \n\t\t\tlet dtoFase = new FaseGestionModel();\n\t\t\tdtoFase.llave = (this.filtro.llaveFase);\n\t\t\tdtoFase = await  this.generalSvc.queryForObject(new GeneralModel('FaseGestionDTO',null,false,dtoFase)).toPromise();\n\t\t\tif(dtoFase.tipoReprogramacion!=null){\n\n\t\t\t\t// TipoCalificaDTO \n\t\t\t\tlet tipo = new TipoCalificaModel();\n\t\t\t\ttipo.llaveTabla = (dtoFase.tipoReprogramacion);\n\t\t\t\ttipo = await this.generalSvc.queryForObject(new GeneralModel('TipoCalificaDTO',null,false,tipo)).toPromise();\n\t\t\t\tif ( tipo==null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.tieneMotivo=true;\n\t\t\t\tthis.descripcionBtn = this.selectListSvc.capitalizarTexto(tipo.descripcion);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\t\n\t}\n\t\n\tpublic isMostrarArchivo(): boolean {\n\t\ttry {\n\t\t\tthis.documentoSoporteSvc.cantidadListaDocumentoSoporte(this.parametrosEvaluacionCons.TABLAGESTIONPERIODO, this.filtro.llaveGestionPeriodo, this.filtro.clasificacionPK, \"C\", null, null).subscribe((data) => {\n\t\t\t\treturn data != 0;\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn false;\n\t}\n\t\n\tpublic isSoyJefe(): boolean{\n\t\tif ( this.authService.getTokenKey('isCliente') != 'true') {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.filtro == null || this.filtro.cedulaResponsable == null){\n\t\t\treturn false;\n\t\t}\n\t\tif(this.filtro.tipoEvaluador == null){\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\tif(this.cedula == null ){\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\treturn (this.cedula) == (this.filtro.cedulaResponsable) && this.parametrosEvaluacionCons.JEFE == (this.filtro.tipoEvaluador);\n\t}\n\t\n\tpublic async combinarArchivo(): Promise<string>{\n\t\tawait this.popupConsultaDoc.init(\"\", this.parametrosEvaluacionCons.TABLAGESTIONPERIODO, this.filtro.llaveGestionPeriodo, this.filtro.llaveGestionHoja, this.filtro.clasificacionPK, \"C\", \"herramientaDetalle\", null, null);\n\t\t// getBean(.class).init(\"\", ParametrosEvaluacionCons.TABLAGESTIONPERIODO, filtro.getLlaveGestionPeriodo(), filtro.getLlaveGestionHoja(), filtro.getClasificacionPK(), \"C\", \"herramientaDetalle\", null, null);\n\t\treturn null;\n\t}\n\t\n\tpublic isArchivoVer(): boolean {\n\t\tlet retorno = (this.isSoyJefe()) && this.isMostrarArchivo();\n\t\treturn retorno;\n\t}\n\t\n\tpublic isFuncional(): boolean{\n\t\treturn this.authService.getTokenKey('isCliente') != 'true';\n\t}\n\n  mostrarPopup(){\n    this.visible = true;\n  }\n\n  ocultarPopup(){\n    this.visible = false;\n  }\n\t\n\n}\n","<div class=\"card\">\n    <div class=\"mt-4\">\n      <h5><i class=\"glyphicons glyphicons-book\"></i>{{'detalle'| translate}} {{'programacion'| translate}}</h5>\n  </div>\n\n    <div class=\"p-fluid p-formgrid grid\">\n\n      <div class=\"field col-12 md:col-8 lg:col-8\">\n        <span class=\"p-float-label\">\n          <p-dropdown id=\"fase\" [options]=\"listaFase\" optionValue=\"value\" [disabled]=\"!mostrarBotonGuardar\"\n            [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(filtro.llaveFase) && validando)\"\n            [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(filtro.llaveFase) && validando)\"\n            [(ngModel)]=\"filtro.llaveFase\" optionLabel=\"label\" [autoDisplayFirst]=\"false\"></p-dropdown>\n          <label htmlFor=\"fase\">{{('fase') | translate}} *</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <p-dropdown id=\"proceso\" [options]=\"listaEstado\" optionValue=\"value\" \n            [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(filtro.estado) && validando)\"\n            [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(filtro.estado) && validando)\"\n            [(ngModel)]=\"filtro.estado\" optionLabel=\"label\"\n            [autoDisplayFirst]=\"false\"></p-dropdown>\n          <label htmlFor=\"proceso\">{{('estado') | translate}}*</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n          <p-dropdown id=\"empresa\" [options]=\"listaTipoEvaluacion\" optionValue=\"value\"\n            [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(filtro.tipoEvaluacion) && validando)\"\n            [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(filtro.tipoEvaluacion) && validando)\"\n            [(ngModel)]=\"filtro.tipoEvaluacion\" optionLabel=\"label\"\n            [autoDisplayFirst]=\"false\"></p-dropdown>\n          <label htmlFor=\"empresa\">{{('tipoevaluacion') | translate}}*</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n            <p-dropdown id=\"tipoevaluador\" [options]=\"listaTipoEvaluador\" optionValue=\"value\"\n              [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(filtro.llavetipoEvaluador) && validando)\"\n              [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(filtro.llavetipoEvaluador) && validando)\"\n              [(ngModel)]=\"filtro.llavetipoEvaluador\" optionLabel=\"label\"\n              [autoDisplayFirst]=\"false\"></p-dropdown>\n            <label htmlFor=\"tipoevaluador\">{{('tipoevaluador') | translate}}*</label>\n          </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <app-input-helper-empleado-boton [nombreInput]=\"'Identificación del Evaluado'\" [nombreInput]=\"('evaluador'| translate)+'*'\"\n            [label]=\"filtro.documentoResponsable != null ? (filtro.documentoResponsable + ':' + filtro.nombreCompletoResponsable) : ''\"\n            (onSelected)=\"setNuevoEvaluador($event)\">\n        </app-input-helper-empleado-boton>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <app-input-helper-empleado-boton [nombreInput]=\"'Identificación del Evaluado'\" [nombreInput]=\"('autorizador'| translate)+'*'\"\n            [label]=\"filtro.documentoAutorizador != null ? (filtro.documentoAutorizador + ':' + filtro.nombreCompletoAutoriza) : ''\"\n            (onSelected)=\"setNuevoAutorizador($event)\">\n        </app-input-helper-empleado-boton>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"rangoFechas\" selectionMode=\"range\" [readonlyInput]=\"true\" \n            [class.ng-dirty]=\"((!utilsService.validarCampoObligatorio(filtro.fechaInicial) || !utilsService.validarCampoObligatorio(filtro.fechaFinal))  && validando)\"\n            [class.ng-invalid]=\"((!utilsService.validarCampoObligatorio(filtro.fechaInicial) || !utilsService.validarCampoObligatorio(filtro.fechaFinal))  && validando)\" />\n          <label htmlFor=\"periodo\">{{('periodo') | translate}}*</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"filtro.fechaAplicado\" [readonlyInput]=\"true\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" />\n          <label htmlFor=\"periodo\">{{('aplica') | translate}}</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" >\n        <span class=\"p-float-label\">\n            <input pInputText autofocus type=\"text\" id=\"peso\" [(ngModel)]=\"filtro.peso\"\n                autocomplete=\"off\" />\n            <label for=\"peso\">{{'peso' | translate}}</label>\n        </span>\n    </div>\n\n    <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"filtro.fechaAsignacion\" [readonlyInput]=\"true\"  dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"/>\n          <label htmlFor=\"fechaasignacion\">{{('fechaasignacion') | translate}}</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" >\n        <span class=\"p-float-label\">\n            <input pInputText autofocus type=\"text\" id=\"dias\" [(ngModel)]=\"filtro.diasAviso\"\n                autocomplete=\"off\" />\n            <label for=\"dias\">{{'dias' | translate}}</label>\n        </span>\n    </div>\n\n    <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"filtro.fechaUltimoAviso\" [readonlyInput]=\"true\"  dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"/>\n          <label htmlFor=\"fechaultimoaviso\">{{('fechaultimoaviso') | translate}}</label>\n        </span>\n      </div>\n\n      <div class=\"field col-12 md:col-4 lg:col-4\" >\n        <span class=\"p-float-label\">\n            <input pInputText autofocus type=\"text\" id=\"dias\" [(ngModel)]=\"filtro.ipUsuario\"\n                autocomplete=\"off\" />\n            <label for=\"dias\">{{'ip' | translate}} {{('ultima') | translate}} {{('modificacion') | translate}}</label>\n        </span>\n    </div>\n\n    <div class=\"field col-12 md:col-4 lg:col-4\">\n        <span class=\"p-float-label\">\n            <p-calendar [(ngModel)]=\"filtro.fechaLimite\" [readonlyInput]=\"true\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" />\n          <label htmlFor=\"fechaultimoaviso\">{{('fechalimite') | translate}} {{('evaluacion') | translate}}</label>\n        </span>\n      </div>\n\n\n    </div>\n\n    <div class=\"flex justify-content-end\">\n      <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"mostrarBotonGuardar\"\n        icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardarEvaluador()\">\n      </button>\n      <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"!mostrarBotonGuardar && !reprogramada\"\n        icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarEvaluador()\">\n      </button>\n      <p-splitButton class=\"ml-2\" label=\"Acciones Evaluadores\" icon=\"glyphicons glyphicons-list\" [model]=\"menu\"></p-splitButton>\n    </div>\n\n\n  </div>\n  <app-popup-consulta-documento-soporte #popupConsultaDoc></app-popup-consulta-documento-soporte>","import { ValorCalificaModel } from \"../models/ValorCalificaModel\";\n\n\nexport class DimensionWrapper {\n    public seleccionado: boolean;\n    public descripcionValor: string;\n    public listaValorCalifica: ValorCalificaModel[];\n    public valorCalifica: ValorCalificaModel;\n}","import { GeneralPipe } from './../../../../../shared/pipes/general.pipe';\nimport { Component } from '@angular/core';\nimport { MetaEvaluacionModel } from '../../../models/MetaEvaluacionModel';\nimport { ValorCalificaModel } from '../../../models/ValorCalificaModel';\nimport { GeneralModel, GeneralService, ToastService } from 'general-library-union';\nimport { DimensionWrapper } from '../../../wrapper/DimensionWrapper';\n\n@Component({\n  selector: 'app-detalle-dimension',\n  standalone: true,\n  imports: [],\n  templateUrl: './detalle-dimension.component.html',\n  styleUrl: './detalle-dimension.component.scss'\n})\nexport class DetalleDimensionComponent {\n\n  private metaEvaluacionDTO: MetaEvaluacionModel;\n\tprivate listaWrapper: DimensionWrapper[] = [];\n\tprivate deshabilitar: boolean;\n\t\n  constructor(private generalSvc: GeneralService, private notificationBusService: ToastService, private generalPipe: GeneralPipe){}\n\n  public async cargarTabla(): Promise<void> {\n\t\ttry {\n\t\t\tthis.listaWrapper = [];\n\t\t\t// DimensionWrapper \n      let dimensionWrapper;\n\t\t\t// ValorCalificaDTO\n      let valorCalificaDTO = new ValorCalificaModel();\n\t\t\tvalorCalificaDTO.llaveTipoCalifica = (this.metaEvaluacionDTO.tipoCalifica);\n\t\t\tvalorCalificaDTO.origen = (\"V\");\n\t\t\tlet listaValorCalifica: ValorCalificaModel[] = await  this.generalSvc.queryForList(new GeneralModel('ValorCalificaDTO',null,false,valorCalificaDTO)).toPromise();\n\t\t\tfor (let dto of listaValorCalifica) {\n\t\t\t\tdimensionWrapper = new DimensionWrapper();\n\t\t\t\tdimensionWrapper.descripcionValor = (dto.llaveValor);\n\t\t\t\tvalorCalificaDTO = new ValorCalificaModel();\n\t\t\t\tvalorCalificaDTO.depende = (dto.llaveTabla);\n\t\t\t\tdimensionWrapper.listaValorCalifica = (this.generalSvc.queryForList(new GeneralModel('ValorCalificaDTO',null,false,valorCalificaDTO))).toPromise();\n\t\t\t\tif(dto.llaveValor.toUpperCase() == (this.metaEvaluacionDTO.valorCalifica.toUpperCase())){\n\t\t\t\t\tdimensionWrapper.seleccionado =  true\n\t\t\t\t}\n\t\t\t\tdimensionWrapper.valorCalificaDTO = (dto);\n\t\t\t\tthis.listaWrapper.push(dimensionWrapper);\n\t\t\t}\n\t\t\tif(this.metaEvaluacionDTO.prioridad!= null && this.metaEvaluacionDTO.prioridad == (\"AU\")){\n\t\t\t\tthis.deshabilitar = true;\n\t\t\t}else{\n\t\t\t\tthis.deshabilitar = false;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\t\n//\tpublic void seleccionar(ValueChangeEvent ev){\n//\t\tDimensionWrapper wp = (DimensionWrapper) tabla.getRowData();\n//\t\tfor (DimensionWrapper dim : listaWrapper) {\n//\t\t\tif(dim.getDescripcionValor().equals(wp.getDescripcionValor())){\n//\t\t\t\tdim.establecerSeleccionado(true);\n//\t\t\t}else{\n//\t\t\t\tdim.establecerSeleccionado(false);\n//\t\t\t}\n//\t\t}\n//\t}\n\t\n\tpublic async guardar(): Promise<void>{\n\t\ttry {\n\t\t\tfor (let  dim of this.listaWrapper) {\n\t\t\t\tif(dim.seleccionado){\n\t\t\t\t\tthis.metaEvaluacionDTO.valorCalifica = (dim.descripcionValor);\n\t\t\t\t\tawait this.generalSvc.update(new GeneralModel('MetaEvaluacionDTO',null,false,this.metaEvaluacionDTO)).toPromise();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\t\tthis.regresar();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n  public setMetaEvaluacionDTO(metaEvaluacionDTO: MetaEvaluacionModel): void {\n\t\tthis.metaEvaluacionDTO = metaEvaluacionDTO;\n\t}\n\n  public regresar(): string{\n\t\t// ListadoEvaluadores bean = (ListadoEvaluadores) FacesUtils.getBean(\"listadoEvaluadores\");\n\t\t// bean.setSelectedTab(1);\n\t\t// navegar(\"detalleHerramientas\");\n\t\treturn null;\n\t}\n\t\n\n}\n","","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ValorCalificaModel } from '../../models/ValorCalificaModel';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MetaEvaluacionModel } from '../../models/MetaEvaluacionModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { FiltroGeneralComponent, GeneralModel} from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n  selector: 'app-popup-tema-recomendacion',\n  standalone: true,\n  providers: [\n    {\n        provide: NG_VALUE_ACCESSOR,\n        useExisting: forwardRef(() => PopupTemaRecomendacionComponent),\n        multi: true,\n    },\n],\n  imports: [InputTextModule,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent],\n  templateUrl: './popup-tema-recomendacion.component.html',\n  styleUrl: './popup-tema-recomendacion.component.scss'\n})\nexport class PopupTemaRecomendacionComponent implements ControlValueAccessor, OnInit  {\n\n  constructor(private generalSvc: GeneralService){}\n\n  @Input() metaEvaluacion: MetaEvaluacionModel;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Input() showDialog: boolean = false;\n\n  @Input() booleano: boolean;\n\n  public paginador : ValorCalificaModel[] = [];\n\n  filters = [];\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  paginator={rows:10, totalRecords:0}\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n\n  public async ngOnInit(): Promise<void> {\n\t\ttry {\n\t\t\t// ValorCalificaDTO \n      let filtro = new ValorCalificaModel();\n\t\t\tfiltro.llaveTipoCalifica = (this.metaEvaluacion.tipoCalifica);\n\t\t\tfiltro.origen = (\"R\");\n\t\t\tfiltro.tipo = (this.metaEvaluacion.tipoRecomendacion);\n\t\t\tthis.paginador = await this.generalSvc.queryForList(new GeneralModel('ValorCalificaDTO',null,false,filtro)).toPromise();\n      this.paginator.totalRecords =  this.paginador.length;\n\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\t\n\tpublic onRowSelect(se): string{\n    let data : ValorCalificaModel = se.data;\n    this.showDialog = false;\n    this.value = data.llaveTabla;\n    this.label = data.descripcion;\n    this.onChange(this.value);\n\t\tthis.onSelected.emit(data);\n\t\treturn null;\n\t}\n\n  openDataTable() {\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n  }\n\n\n\n}\n","<div #field [class]=\"booleano ? 'p-inputgroup ng-invalid ng-dirty' : 'p-inputgroup'\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\" />\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico clear\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <label htmlFor=\"campo\">{{'tipoevaluacion' | translate}} * </label>\n    </span>\n</div>\n\n<p-dialog header=\"{{'tema' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n    (onShow)=\"openDataTable()\" [contentStyle]=\"{width: '800px', 'overflow-y': 'scroll'}\">\n\n    <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"paginador\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n        [scrollable]=\"true\" [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\"\n        (onRowSelect)=\"onRowSelect($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{\"campo\" | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-campo>\n            <tr [pSelectableRow]=\"campo\">\n                <td>{{campo.descripcion}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n</p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { FaseGestionHojaModel } from '../models/FaseGestionHojaModel';\nimport { MetaEvaluacionModel } from '../models/MetaEvaluacionModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MetaEvaluacionService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  insertarRecomendacion(dto: MetaEvaluacionModel): Observable<MetaEvaluacionModel>{\n    return this.httpClient.post<MetaEvaluacionModel>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/metaevaluacion/insertarRecomendacion`, dto).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  enviarCorreoMetaFaseHerramienta(llaveGestionPeriodo: string,llaveFaseGestion: string,numeroFrecuencia: string,lista: string): Observable<void>{\n    let form = new  FormData;\n    form.append('llaveGestionPeriodo',llaveGestionPeriodo);\n    form.append('llaveFaseGestion',llaveFaseGestion);\n    form.append('numeroFrecuencia',numeroFrecuencia);\n    form.append('lista',lista);\n    return this.httpClient.post<void>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/metaevaluacion/enviarCorreoMetaFaseHerramienta`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MetaEvaluacionModel } from '../../models/MetaEvaluacionModel';\nimport { ConfirmationService, PrimeTemplate, SelectItem } from 'primeng/api';\nimport { TipoCalificaModel } from '../../models/TipoCalificaModel';\nimport { GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ParametrosEvaluacionPipe } from '../../pipes/parametros-evaluacion.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MetaEvaluacionService } from '../../services/meta-evaluacion.service';\n//import { SafeHTMLPipe } from 'public-api';\nimport { TabViewModule } from 'primeng/tabview';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\nimport { Ripple } from 'primeng/ripple';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PopupTemaRecomendacionComponent } from '../popup-tema-recomendacion/popup-tema-recomendacion.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n\tselector: 'app-popup-recomendaciones-gestion',\n\tstandalone: true,\n\tproviders: [ConfirmationService],\n\timports: [NgIf, ReactiveFormsModule, ConfirmPopupModule, InputTextModule, TabViewModule, TranslateModule, TableModule, TemplateTablaVaciaComponent, DatePipe, BreadcrumbModule, Ripple, PrimeTemplate, DropdownModule, FormsModule, PopupTemaRecomendacionComponent, DialogModule, ButtonModule, ButtonDirective, FormsModule],\n\ttemplateUrl: './popup-recomendaciones-gestion.component.html',\n\tstyleUrl: './popup-recomendaciones-gestion.component.scss'\n})\n\n\n\nexport class PopupRecomendacionesGestionComponent implements OnInit {\n\n\tpublic metaEvaluacionDTO: MetaEvaluacionModel = new MetaEvaluacionModel();\n\tpublic listaTipoCalifica: any[] = [];\n\tpublic listaTipoRecomendacion: any[] = [];\n\tpublic visible: boolean;\n\tvalidando: boolean;\n\n\tconstructor(private generalSvc: GeneralService, private confirmationService: ConfirmationService, private parametrosEvaluacionCons: ParametrosEvaluacionPipe, private notificationBusService: ToastService,\n\t\tprivate generalPipe: GeneralPipe, private translateService: TranslateService, public utilsService: UtilsService, private metaEvaluacionSvc: MetaEvaluacionService\n\t) { }\n\n\n\tasync ngOnInit(): Promise<void> {\n\t\tlet listaTipoCalificaDTOs = await this.generalSvc.queryForList(new GeneralModel('TipoCalificaDTO', null, false, new TipoCalificaModel())).toPromise();\n\t\t\tlistaTipoCalificaDTOs.forEach(dto => {\n\t\t\t\tthis.listaTipoCalifica.push({ codigo: dto.llaveTabla, nombre: dto.descripcion });\n\t\t\t});\n\t}\n\t\n\n\tpublic async init(destino: string, metaEvaluacionDTO: MetaEvaluacionModel, llaveHerramienta: string): Promise<void> {\n\t\ttry {\n\t\t\tthis.metaEvaluacionDTO = metaEvaluacionDTO;\n\t\t\tawait this.cargarListas();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tprivate async cargarListas(): Promise<void> {\n\t\ttry {\n\t\t\tthis.listaTipoRecomendacion = this.parametrosEvaluacionCons.MAPADEFINICIONES.map(item => ({ codigo: item.codigo, nombre: item.nombre }));\n\t\t\tawait this.mostrarPopup();\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\tpublic setTema(data): void {\n\t\tthis.metaEvaluacionDTO.tema = (data.tema);\n\t}\n\n\tpublic async guardar(): Promise<string> {\n\t\ttry {\n\t\t\tif (this.validar()) {\n\t\t\t\tthis.validando = false;\n\t\t\t\tthis.metaEvaluacionDTO = await this.metaEvaluacionSvc.insertarRecomendacion(this.metaEvaluacionDTO).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR);\n\t\t\t\tthis.aplicarDestino();\n\t\t\t}else{\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tprivate aplicarDestino(): void {\n\t\tthis.ocultarPopup();\n\t}\n\n\tpublic eliminar(): void {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: this.translateService.instant(\"mensaje_alerta\"),\n\t\t\tacceptLabel: 'Si',\n\t\t\theader: 'Confirmar',\n\t\t\taccept: () => {\n\t\t\t\tthis.setRespuesta(true);\n\t\t\t},\n\t\t});\n\t\treturn null;\n\t}\n\n\tpublic async setRespuesta(respuesta: boolean): Promise<void> {\n\t\ttry {\n\t\t\tif (respuesta) {\n\t\t\t\tthis.generalSvc.delete(new GeneralModel('MetaEvaluacionDTO', null, false, this.metaEvaluacionDTO)).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t\t\tthis.aplicarDestino();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\tprivate validar(): boolean {\n\t\tthis.validando = true;\n\t\tlet validador: boolean = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.metaEvaluacionDTO.tipoCalifica);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.metaEvaluacionDTO.tipoRecomendacion);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.metaEvaluacionDTO.tema);\n\t\treturn validador;\n\t}\n\n\tactualizarEvaluador(){\n\t\t\n\t}\n\n\tpublic isNuevo(): boolean {\n\t\treturn this.metaEvaluacionDTO == null || this.metaEvaluacionDTO.llave == null;\n\t}\n\n\tpublic mostrarPopup(): void {\n\t\tthis.visible = true\n\t}\n\n\tpublic ocultarPopup(): void {\n\t\tthis.visible = false;\n\t}\n\n}\n","<div id=\"popup-recomendaciones-gestion\">\n<p-confirmPopup></p-confirmPopup>\n<p-dialog header=\"{{'recomendacion' | translate}}\" [(visible)]=\"visible\" appendTo=\"body\" [modal]=\"true\"\n    [contentStyle]=\"{width: '800px', 'overflow-y': 'scroll'}\">\n\n<div class=\"p-fluid p-formgrid grid\">\n\n    <div class=\"field col-12 md:col-4 lg:col-4\">\n      <span class=\"p-float-label\">\n          <p-dropdown id=\"proceso\" [options]=\"listaTipoCalifica\" optionValue=\"codigo\"  [disabled]=\"!isNuevo()\"\n          [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(metaEvaluacionDTO.tipoCalifica) && validando)\" appendTo=\"body\" [autoZIndex]=\"false\"\n          [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(metaEvaluacionDTO.tipoCalifica) && validando)\"\n          [(ngModel)]=\"metaEvaluacionDTO.tipoCalifica\" optionLabel=\"nombre\"\n          [autoDisplayFirst]=\"false\"></p-dropdown>\n          <label htmlFor=\"fase\">{{('fase') | translate}} *</label>\n      </span>\n    </div>\n\n    <div class=\"field col-12 md:col-4 lg:col-4\">\n      <span class=\"p-float-label\">\n        <p-dropdown id=\"proceso\" [options]=\"listaTipoRecomendacion\" optionValue=\"codigo\"  [disabled]=\"!isNuevo()\"\n          [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(metaEvaluacionDTO.tipoRecomendacion) && validando)\" appendTo=\"body\" [autoZIndex]=\"false\"\n          [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(metaEvaluacionDTO.tipoRecomendacion) && validando)\"\n          [(ngModel)]=\"metaEvaluacionDTO.tipoRecomendacion\" optionLabel=\"nombre\"\n          [autoDisplayFirst]=\"false\"></p-dropdown>\n        <label htmlFor=\"estado\">{{('estado') | translate}}*</label>\n      </span>\n    </div>\n\n    <div class=\"field col-12 md:col-4 lg:col-4\">\n      <span class=\"p-float-label\">\n        <app-popup-tema-recomendacion [metaEvaluacion]=\"metaEvaluacionDTO\" [readonly]=\"false\"\n        [label]=\"metaEvaluacionDTO.tema ?  metaEvaluacionDTO.tema : ''\"\n        (onSelected)=\"setTema($event)\" [booleano]=\"!utilsService.validarCampoObligatorio(metaEvaluacionDTO.tema) && validando\"\n        ></app-popup-tema-recomendacion>\n      </span>\n    </div>\n\n     </div>\n\n  <div class=\"flex justify-content-end\">\n    <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"isNuevo()\"\n        icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n    </button>\n    <button pButton pRipple class=\"ml-2 p-button p-button-raised\" *ngIf=\"!isNuevo()\"\n        icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarEvaluador()\">\n    </button>\n    <button pButton pRipple class=\"ml-2 p-button-outlined\" *ngIf=\"!isNuevo()\" icon=\"glyphicons glyphicons-bin\"\n        label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar()\">\n    </button>\n</div>\n</p-dialog>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { CabeceraHojaVidaComponent } from '../../../../../shared/componentes/cabecera-hoja-vida/cabecera-hoja-vida.component';\nimport { DetalleHerramientasComponent } from '../detalle-herramientas/detalle-herramientas.component';\nimport { AuthService, EncriptadoBasicoService, UtilsService } from 'general-library-union';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { EvaluacionHojaModel } from '../../../models/EvaluacionHojaModel';\n\n@Component({\n  selector: 'app-detalle-herramientas-encabezado',\n  standalone: true,\n  providers: [TranslateService,ParametrosEvaluacionPipe,DatePipe],\n  imports: [CabeceraHojaVidaComponent,TranslateModule,ParametrosEvaluacionPipe,DatePipe, NgIf],\n  templateUrl: './detalle-herramientas-encabezado.component.html',\n  styleUrl: './detalle-herramientas-encabezado.component.scss'\n})\nexport class DetalleHerramientasEncabezadoComponent implements OnInit {\n\n  public urlFoto: string = '';\n  @Input() public detalleHerramienta: EvaluacionHojaModel = new EvaluacionHojaModel();\n  listaEmpresa: any[];\n  constructor (private authService: AuthService,private encriptadoBasico: EncriptadoBasicoService,private selectListEvaluacionesSvc: SelectListEvaluacionesService,\n    private cargarArchivo: CargarArchivosService, private utilsService: UtilsService) {}\n\n\n  \n\n\nasync ngOnInit(): Promise<void> {    \n  this.listaEmpresa = await this.selectListEvaluacionesSvc.listaEmpresa();\n  this.cargarImagenFoto();\n  }\n\n  cargarImagenFoto() {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authService.getTokenKey('aplicacion');\n    try {\n      this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.detalleHerramienta.nombreFoto + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n        this.blobToBase64(blob)        \n      });    \n    } catch (error) {\n    }\n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  public getNombreCompleto(): string {\n\t\tlet nombre = Constantes.ESPACIO_NULO;\n\t\tif (this.detalleHerramienta.nombreevaluado != null || !this.utilsService.isBlank(this.detalleHerramienta.nombreevaluado)) {\n\t\t\tnombre = this.detalleHerramienta.nombreevaluado;\n\t\t}\n\t\tif (this.detalleHerramienta.primerapellidoevaluado != null || !this.utilsService.isBlank(this.detalleHerramienta.primerapellidoevaluado)) {\n\t\t\tnombre = nombre + Constantes.ESPACIO_BLANCO + this.detalleHerramienta.primerapellidoevaluado;\n\t\t}\n\t\tif (this.detalleHerramienta.segundoapellidoevaluado != null || !this.utilsService.isBlank(this.detalleHerramienta.segundoapellidoevaluado)) {\n\t\t\tnombre = nombre + Constantes.ESPACIO_BLANCO + this.detalleHerramienta.segundoapellidoevaluado;\n\t\t}\n\t\treturn this.utilsService.capitalizeFully(nombre);\n\t}\n\n\n  transform(value: any, ...args: any): any {\n    let result = value;\n    if (args[0] == 'listaEmpresa') { this.listaEmpresa?.forEach(data => { if (data.key === value) { result = data.label } }); }\n    return result;\n  }\n\n}\n","<div class=\"empleado\" style=\"justify-content: center; align-items: center\">\n\n    <div class=\"flex\" >\n\n      <div style=\"display: flex; justify-content: center; align-items: center; \">\n          <div class=\"avatar-container\">\n            @if(urlFoto){ \n                <img  [src]=\"urlFoto\" alt=\"Foto\" class=\"avatar-image\">\n            }@else {\n                <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\">\n            }\n        </div>\n\n      </div>\n        <div class=\"field\">\n            <div>\n                <div>\n                    <div class=\"col-md-12 ml-3\">\n                        <div class=\"p-fluid p-formgrid grid col-12\">\n                          <h1 class=\"w-full mb-3\">{{detalleHerramienta.documento}} : {{getNombreCompleto()}}</h1>\n                          <!--CONTRATO-->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p><span class=\"font-medium\">{{('identificacion') | translate}}: </span><br> <span>{{detalleHerramienta.documento}}</span></p>\n                            </div>\n\n                            <!--HERRAMIENTA -->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p><span class=\"font-medium\">{{('herramienta') | translate}}: </span><br> <span> {{detalleHerramienta.nombreherramienta}}</span></p>\n                            </div>\n\n                            <!--EMPRESA-->\n                            <div class=\"col-6 md:col-4 lg:col-4\" >\n                                <p> <span class=\"font-medium\">{{('empresa') | translate}}:</span> <br><span>{{transform(detalleHerramienta.empresa,'listaEmpresa')}}</span></p>\n                            </div>\n\n\n                            <!--UNIDAD ORGANIZACIONAL-->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p> <span class=\"font-medium\">{{('unidad') | translate}} {{('organizacional') | translate}}:</span> <br> <span> <p>{{detalleHerramienta.nombreunidad}}</p></span></p>\n                            </div>\n\n\n                            <!--CARGO-->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p><span class=\"font-weight\">{{('cargo') | translate}}:</span> <br><span>{{detalleHerramienta.nombrecargo}}</span></p>\n                            </div>\n\n\n                            <!--CLASIFICACION-->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p>\n                                  <span class=\"font-medium\">{{('clasificacion') | translate}}:</span><br>\n                                  <span>{{detalleHerramienta.nombreClasificacion}}</span>\n                                </p>\n                            </div>\n\n\n                            <!--PERIODO-->\n                            <div class=\"col-6 md:col-4 lg:col-4\">\n                                <p>\n                                  <span class=\"font-medium\"> {{('periodo') | translate}}:</span>\n                                  <span> {{detalleHerramienta.fechaInicial | date : ('formatofecha' | translate) }} : {{detalleHerramienta.fechaFinal | date : ('formatofecha' | translate)}}</span>\n                                 </p>\n                            </div>\n\n\n                            <!--ESTADO-->\n                              <div class=\"col-4\">\n                                <p class=\"chip\">{{detalleHerramienta.estado | parametrosEvaluacionPipe:'mapaEstados'}}</p>\n                              </div>\n\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n","import { NgIf } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, GeneralService } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CargoModel } from '../../../modules/talento/models/CargoModel';\n\n@Component({\n  selector: 'app-input-helper-filtro-periodo-evaluacion',\n  standalone: true,\n  providers: [\n    {\n        provide: NG_VALUE_ACCESSOR,\n        useExisting: forwardRef(() => InputHelperFiltroPeriodoEvaluacionComponent),\n        multi: true,\n    },\n],\n  imports: [\n    NgIf,\n    InputTextModule,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n],\n  templateUrl: './input-helper-filtro-periodo-evaluacion.component.html',\n  styleUrl: './input-helper-filtro-periodo-evaluacion.component.scss'\n})\nexport class InputHelperFiltroPeriodoEvaluacionComponent {\n\n  \n  filters\n  listado: CargoModel[] = []\n  paginator = {\n    totalRecords: 0,\n    rows: 10,\n  }\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() showDialog: boolean = false;\n\n  @Input() soloPopup: boolean = false;\n\n  @Input() mostrarX: boolean;\n\n  @Input() booleano: boolean;\n\n  @Input() nombreInput : string = '';\n  @Input() campoReferencia : any;\n  @Input() campoReferenciaDos : any;\n  \n  @Input() empresa: any;\n\n  onChange: Function = () => {};\n  onCambio: Function = () => { };\n\n  onTouched: Function = () => {};\n\n  constructor(private translateService: TranslateService,private authService: AuthService,private generalService: GeneralService,) { }\n\n  ngOnInit(): void {\n    this.filters = [\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      }, \n    ];\n  }\n\n\n  async loadData(event) {\n    this.paginator.totalRecords = 10;\n    this.listado = []\n    let objeto = {\n      paginacionRegistroInicial: event?.first != null ? event?.first : 0,\n      paginacionRegistroFinal: event?.rows != null ? event?.rows : 10,\n      descripcion: event?.descripcion?.value ?event.descripcion?.value : null,\n    }\n    this.listado = await this.generalService.queryForList(new GeneralModel('PlanillaGestionDTO',null,false,objeto)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('PlanillaGestionDTO',null,false,objeto)).toPromise();\n  }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  openDataTable(){\n    if(this.empresa != null || this.empresa != undefined ){\n      this.loadData(event)\n    }\n    this.showDialog = true;\n    if(this.booleano == null){\n      this.booleano = false;\n    }\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onCambio(this.value);\n    this.onSelected.emit({});\n  }\n\n  onRowSelect(event) {    \n    this.showDialog = false;\n    let seleccionado = event?.data;\n    this.label = seleccionado.descripcion;\n    this.value = seleccionado.cargo;\n    this.onChange(this.value);\n    this.onCambio(this.value);\n    this.onSelected.emit(seleccionado);\n    \n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  async getDescripcionLlave(generalService: GeneralService, authService: AuthService, llave: string, campo: any): Promise<string> {    \n    if (llave != null) {\n      let filtro = new CargoModel();\n      filtro.cargo = llave;\n      filtro.empresa = parseInt(authService.getTokenKey('numeroEmpresa'));\n      let objeto = new GeneralModel('CargoDTO', null, false, filtro);\n      let respuesta: CargoModel = await generalService.queryForObject(objeto).toPromise();\n      return respuesta?.descripcion ? respuesta?.descripcion : '';\n    }\n\n    return null;\n  }\n\n\n}\n","<div #field class=\"p-inputgroup\" *ngIf=\"!soloPopup\">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText disabled [readonly]=\"true\" [value]=\"label\" [required]=\"booleano\"\n            [class]=\"booleano  ? 'ng-invalid ng-dirty' : ''\"/>\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label *ngIf=\"booleano\">{{ nombreInput}} *</label>\n        <label *ngIf=\"!booleano\">{{ nombreInput}}</label>\n    </span>\n</div>\n\n<p-dialog #dialog id='popupcargo' header=\"{{'periodo' | translate}}\" [(visible)]=\"showDialog\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n    [contentStyle]=\"{width: '900px', 'overflow-y': 'scroll'}\">\n\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\"> \n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"descripcion\"\n                                formControlName=\"descripcion\" />\n                            <label for=\"descripcion\">{{'Descripcion' | translate}}</label>\n                        </span>\n                    </div> \n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"listado\" selectionMode=\"single\"\n        responsiveLayout=\"scroll\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [scrollable]=\"true\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\" [lazy]=\"true\"\n        (onLazyLoad)=\"loadData($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 60%;\">{{'descripcion' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data>\n            <tr [pSelectableRow]=\"data\">\n                <td style=\"width: 60%;\">{{data.descripcion}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n</p-dialog>\n","import { SelectListEvaluacionesService } from '../../../../modules/talento/services/select-list-evaluaciones.service';\nimport { SelectListCompensa } from '../../../../modules/compensacion/services/select-list-compensa.service';\nimport { UtilsService } from 'general-library-union';\nimport { Component, EventEmitter, Output, forwardRef } from '@angular/core';\nimport { EvaluacionHojaModel } from '../../models/EvaluacionHojaModel';\nimport { PlanillaGestionModel } from '../../models/PlanillaGestionModel';\nimport { EmpleadoModel } from '../../../../modules/compensacion/models/EmpleadoModel';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { GeneralModel, ToastService } from 'general-library-union';\nimport { FaseGestionModel } from '../../models/FaseGestionModel';\nimport { FaseGestionHojaModel } from '../../../../modules/talento/models/FaseGestionHojaModel';\nimport { FaseGestionHojaPipe } from '../../pipes/fase-gestion-hoja.pipe';\nimport { EmpleadoService } from '../../../../modules/compensacion/services/empleado.service';\nimport { PerfilFuncionService } from '../../services/perfil-funcion.service';\nimport { PeriodoEvaluacionPipe } from '../../pipes/periodo-evaluacion.pipe';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { ParametrosEvaluacionPipe } from '../../pipes/parametros-evaluacion.pipe';\nimport { GestionPeriodoModel } from '../../models/GestionPeriodoModel';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperSeleccionCargoComponent } from '../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputHelperFiltroPeriodoEvaluacionComponent } from '../../../../shared/componentes/input-helper-filtro-periodo-evaluacion/input-helper-filtro-periodo-evaluacion.component';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { ClasificacionModel } from '../../../../modules/compensacion/models/ClasificacionModel';\nimport { HojaVidaService } from '../../../../modules/hojavida/services/hojavida.service';\n\n\n@Component({\n\tselector: 'app-popup-detalle-evaluacion',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => PopupDetalleEvaluacionComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n\timports: [InputTextModule,\n\t\tButtonDirective,\n\t\tRipple,\n\t\tNgIf,\n\t\tDialogModule,\n\t\tFormsModule,\n\t\tReactiveFormsModule,\n\t\tTableModule, TemplateTablaVaciaComponent,\n\t\tPrimeTemplate,\n\t\tTranslateModule,\n\t\tInputHelperSeleccionZonaCentroComponent,\n\t\tInputHelperUnidadComponent,\n\t\tInputHelperSeleccionCargoComponent,\n\t\tCalendarModule,\n\t\tDropdownModule,\n\t\tConfirmPopupModule,\n\t\tInputNumberModule,\n\t\tDatePipe,\n\t\tInputHelperFiltroPeriodoEvaluacionComponent,\n\t\tInputHelperEmpleadoBotonComponent],\n\ttemplateUrl: './popup-detalle-evaluacion.component.html',\n\tstyleUrl: './popup-detalle-evaluacion.component.scss'\n})\nexport class PopupDetalleEvaluacionComponent {\n\tpublic evaluacionHojaDTO: EvaluacionHojaModel = new EvaluacionHojaModel();\n\tpublic puedeEditar: boolean;\n\tpublic mostrarBotonGuardar: boolean;\n\tpublic periodo: boolean;\n\tpublic planSucesion: boolean;\n\tpublic empleadoDTO: EmpleadoModel = new EmpleadoModel();\n\tpublic planillaGestionDTO: PlanillaGestionModel = new PlanillaGestionModel();\n\tpublic bloquearFechas: boolean;\n\tpublic filtroBean: EvaluacionHojaModel = new EvaluacionHojaModel();\n\tlistaEmpresaCargo: any[];\n\tlistaUnidadEmpresa: any[];\n\tlistaEmpresa: any[]=[];\n\tlistaRoles: any[]=[]\n\tvisible: boolean;\n\tlistaGestionHerramientas: any;\n\tpublic rangoFechas: Date[] | undefined = [];\n\t@Output() public setTerminar = new EventEmitter();\n\t@Output() public regla = new EventEmitter();\n\n\tconstructor(private generalSvc: GeneralService, private notificacionBusService: ToastService, private faseGesHojaCons: FaseGestionHojaPipe, private utilsService: UtilsService, private empleadoSvc: EmpleadoService,\n\t\tprivate perfilFuncionSvc: PerfilFuncionService, private selectListCompensa: SelectListCompensa, private periodoEvaluacionCons: PeriodoEvaluacionPipe, private saraAplicacionService: SaraAplicacionService, private parametrosEvaluacionCons: ParametrosEvaluacionPipe,\n\t\tprivate selectListEvaluacionesService: SelectListEvaluacionesService, private hojaVidaSvc: HojaVidaService,\n\t) { }\n\n\tpublic isMostrarEmpleado(): boolean {\n\t\tif (this.evaluacionHojaDTO == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.evaluacionHojaDTO.noPersona == null || Constantes.CONSTANTE_NO == (this.evaluacionHojaDTO.noPersona);\n\t}\n\n\tpublic terminar(): void {\n\t\ttry {\n\t\t\t\n\t\t\tif (!this.isMostrarEmpleado()) {\n\t\t\t\tthis.crearFases();\n\t\t\t}\n\t\t\tlet map : any;\n\t\t\tmap.llave =  this.evaluacionHojaDTO.llave;\n\t\t\tmap.filtroBean = this.filtroBean\n\t\t\tthis.setTerminar.emit(map);\n\t\t\tif(this.planSucesion){\n\t\t\t\tthis.regla.emit(\"DETALLE_CANDIDATOS_PLAN\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tprivate async crearFases(): Promise<void> {\n\t\t// PlanillaGestionDTO \n\t\tlet planillaGestionDTO = new PlanillaGestionModel();\n\t\tplanillaGestionDTO.tipo = (\"E\");\n\t\tplanillaGestionDTO.gestionPeriodo = (this.evaluacionHojaDTO.llaveherramienta);\n\t\t// List<PlanillaGestionDTO> \n\t\tlet lista = await this.generalSvc.queryForList(new GeneralModel('PlanillaGestionDTO', null, false, planillaGestionDTO)).toPromise();\n\t\tif (lista == null || lista.length == 0) {\n\t\t\tthis.notificacionBusService.showWarning(\"Se debe configurar un tipo de evaluador para la herramienta\");\n\t\t\treturn;\n\t\t}\n\t\tplanillaGestionDTO = lista[0];\n\t\t// FaseGestionDTO \n\t\tlet faseGestionDTO = new FaseGestionModel();\n\t\tfaseGestionDTO.gestionPeriodo = (this.evaluacionHojaDTO.llaveherramienta);\n\t\tlet listadoFases = await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO', null, false, faseGestionDTO)).toPromise();\n\t\t// FaseGestionHojaDTO \n\t\tlet faseGestionHojaDTO: FaseGestionHojaModel = new FaseGestionHojaModel();\n\t\tfor (const dto of listadoFases) {\n\t\t\tfaseGestionHojaDTO = new FaseGestionHojaModel();\n\t\t\tfaseGestionHojaDTO.llaveFase = (dto.llave);\n\t\t\tfaseGestionHojaDTO.cedulaResponsable = (0);\n\t\t\tfaseGestionHojaDTO.estado = (this.faseGesHojaCons.PROGRAMADA);\n\t\t\tfaseGestionHojaDTO.llave = (this.utilsService.generarLlave());\n\t\t\tfaseGestionHojaDTO.llaveGestionHoja = (this.evaluacionHojaDTO.llave);\n\t\t\tfaseGestionHojaDTO.fechaAplicado = (new Date());\n\t\t\tfaseGestionHojaDTO.fechaInicial = (this.evaluacionHojaDTO.fechaInicial);\n\t\t\tfaseGestionHojaDTO.fechaFinal = (this.evaluacionHojaDTO.fechaFinal);\n\t\t\tfaseGestionHojaDTO.llavetipoEvaluador = (planillaGestionDTO.llavePlanillaGestion);\n\t\t\tfaseGestionHojaDTO = await this.generalSvc.crearRegistro(new GeneralModel('FaseGestionHojaDTO', null, false, faseGestionHojaDTO)).toPromise();\n\t\t}\n\t}\n\tpublic async setNuevoEvaluado(hojavidaDTO): Promise<void> {\n\t\tif (hojavidaDTO != null) {\n\t\t\tthis.evaluacionHojaDTO.identificacion = (hojavidaDTO.identifica);\n\t\t\tthis.evaluacionHojaDTO.documento = (hojavidaDTO.documento);\n\t\t\tthis.evaluacionHojaDTO.nombreevaluado =  (this.empleadoSvc.getNombreCompleto(hojavidaDTO));\n\t\t\ttry {\n\t\t\t\t// SelectListEvaluaciones listas = getBean(SelectListEvaluaciones.class);\n\t\t\t\t// EmpleadoDTO \n\t\t\t\tlet eml: EmpleadoModel = await this.empleadoSvc.obtenerPorCedulaActivoSinEmpresa(hojavidaDTO.identifica)\n\t\t\t\tif (eml != null) {\n\t\t\t\t\tthis.evaluacionHojaDTO.empresa = (eml.empresa);\n\t\t\t\t\tthis.evaluacionHojaDTO.unidad = (eml.unidadOcupa);\n\t\t\t\t\tthis.evaluacionHojaDTO.cargo = (eml.cargoOcupa);\n\t\t\t\t\tthis.evaluacionHojaDTO.contrato = (eml.contrato);\n\t\t\t\t\tthis.evaluacionHojaDTO.clasificacion = (eml.clasificacion);\n\t\t\t\t\tlet llave = await this.perfilFuncionSvc.traerLlavePerfil(eml.cargo, eml.unidadOcupa, eml.empresa, eml.contrato, null, eml.clasificacion).toPromise();\n\t\t\t\t\tthis.evaluacionHojaDTO.perfilFuncion = (llave);\n\t\t\t\t\tthis.listaEmpresaCargo = await this.selectListCompensa.selectListEmpresaCargo(eml.empresa);\n\t\t\t\t\tthis.listaUnidadEmpresa = await this.selectListCompensa.selectListUnidadUnaEmpresa(eml.empresa);\n\t\t\t\t\tthis.listaEmpresa = await this.selectListCompensa.getListaEmpresa();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.evaluacionHojaDTO.contrato = 0;\n\t\t\t\t\tthis.evaluacionHojaDTO.empresa = (null);\n\t\t\t\t\tthis.evaluacionHojaDTO.unidad = (null);\n\t\t\t\t\tthis.evaluacionHojaDTO.cargo = (null);\n\t\t\t\t\tthis.evaluacionHojaDTO.clasificacion = (null);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic validar(): boolean {\n\t\tlet valida = true;\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.llaveherramienta);\n\t\tif (this.isMostrarEmpleado()) {\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.identificacion);\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.unidad);\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.cargo);\n\t\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.clasificacion);\n\t\t}\n\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.fechaInicial);\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.fechaFinal);\n\n\t\tif (this.evaluacionHojaDTO.fechaInicial != null && this.evaluacionHojaDTO.fechaFinal != null) {\n\t\t\t// valida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.fechaInicial, evaluacionHojaDTO.getFechaFinal(), \"form_popupDetalleEvaluacion:fecha1\");\n\t\t}\n\n\t\tif (this.evaluacionHojaDTO.llaveherramienta != null) {\n\t\t\t// PlanillaGestionDTO\n\t\t\tlet planillaGestionDTO = new PlanillaGestionModel();\n\t\t\tplanillaGestionDTO.tipo = (\"E\");\n\t\t\tplanillaGestionDTO.gestionPeriodo = (this.evaluacionHojaDTO.llaveherramienta);\n\n\t\t}\n\n\t\tif (this.planillaGestionDTO != null) {\n\t\t\tif (valida && this.periodoEvaluacionCons.ABIERTO != (this.planillaGestionDTO.tipoEvaluador)) {\n\t\t\t\t// valida &= Validador.validarFechasRangos(evaluacionHojaDTO.getFechaInicial(), evaluacionHojaDTO.getFechaFinal(), planillaGestionDTO.getFechaInicial(), planillaGestionDTO.getFechaFinal(),\"form_popupDetalleEvaluacion:fecha1\")\n\t\t\t}\n\t\t}\n\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.empresa);\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.periodo);\n\n\t\tvalida = valida && this.utilsService.validarCampoObligatorio(this.evaluacionHojaDTO.factor);\n\t\treturn valida;\n\t}\n\n\tpublic async guardarEvaluado() {\n\t\ttry {\n\t\t\tif (!this.validar()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.isMostrarEmpleado()) {\n\t\t\t\tthis.evaluacionHojaDTO.identificacion = (0);\n\t\t\t\tthis.evaluacionHojaDTO.contrato = (0);\n\t\t\t\tthis.evaluacionHojaDTO.cargo = (Constantes.PUNTO);\n\t\t\t\tthis.evaluacionHojaDTO.unidad = (Constantes.PUNTO);\n\t\t\t\tthis.evaluacionHojaDTO.clasificacion = (Constantes.PUNTO);\n\n\t\t\t}\n\t\t\tif (this.evaluacionHojaDTO.llave == null) {\n\t\t\t\tthis.evaluacionHojaDTO.organizacion = ((await this.saraAplicacionService.getEmpresa()).organizacion);\n\t\t\t\tthis.evaluacionHojaDTO.llavePlanilla = (Constantes.PUNTO);\n\t\t\t\tthis.evaluacionHojaDTO.llave = (this.utilsService.generarLlave());\n\t\t\t\tthis.evaluacionHojaDTO.estado = (this.parametrosEvaluacionCons.ESTADO_PROCESO);\n\t\t\t\tthis.evaluacionHojaDTO = await this.generalSvc.crearRegistro(new GeneralModel('EvaluacionHojaDTO', null, false, this.evaluacionHojaDTO)).toPromise();\n\t\t\t\tthis.notificacionBusService.showInfo(Constantes.MENSAJE_GUARDAR);\n\t\t\t\tthis.terminar();\n\t\t\t} else {\n\t\t\t\tthis.generalSvc.update(new GeneralModel('EvaluacionHojaDTO', null, false, this.evaluacionHojaDTO));\n\t\t\t\tthis.ocultarPopup();\n\t\t\t\tthis.notificacionBusService.showInfo(Constantes.MENSAJE_ACTUALIZAR);\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e);;\n\t\t}\n\t\treturn;\n\t}\n\n\teliminarEvaluado(){\n\t\t\n\t}\n\n\tpublic async buscar(destino: string, evaluacionHojaDTO: EvaluacionHojaModel, puedeEditar: boolean, mostrarBotonGuardar: boolean, periodo: boolean): Promise<void> {\n\t\t// this.destino = (destino);\n\t\tthis.evaluacionHojaDTO = evaluacionHojaDTO;\n\t\tthis.puedeEditar = puedeEditar;\n\t\tthis.mostrarBotonGuardar = mostrarBotonGuardar;\n\t\tthis.periodo = periodo;\n\t\tif (this.empleadoDTO != null) {\n\t\t\tthis.evaluacionHojaDTO.identificacion = (this.empleadoDTO.cedula);\n\t\t\tthis.evaluacionHojaDTO.nombreevaluado = (this.empleadoSvc.getNombreCompleto(this.empleadoDTO));\n\t\t\tthis.evaluacionHojaDTO.unidad = (this.empleadoDTO.unidad);\n\t\t\tthis.evaluacionHojaDTO.cargo = (this.empleadoDTO.cargo);\n\t\t\tthis.evaluacionHojaDTO.empresa = (this.empleadoDTO.empresa);\n\t\t}\n\t\tif (this.evaluacionHojaDTO.llave != null) {\n\t\t\tthis.cargarListas();\n\t\t\tif (evaluacionHojaDTO.planillaPeriodo != null) {\n\t\t\t\t// PlanillaGestionDTO \n\t\t\t\tlet planillaGestionFiltro = new PlanillaGestionModel();\n\t\t\t\tplanillaGestionFiltro.llavePlanillaGestion = (evaluacionHojaDTO.planillaPeriodo);\n\t\t\t\tthis.planillaGestionDTO = await this.generalSvc.queryForObject(new GeneralModel('PlanillaGestionDTO', null, false, planillaGestionFiltro)).toPromise();\n\t\t\t}\n\n\t\t}\n\t\tthis.mostrarPopup();\n\t}\n\n\tpublic async buscar2(destino: string, evaluacionHojaDTO: EvaluacionHojaModel, planSucesion: boolean) {\n\t\tthis.planSucesion = planSucesion;\n\t\tthis.buscar(destino, evaluacionHojaDTO, true, true, false);\n\t}\n\n\tpublic async cambiarHerramienta(changeEvent) {\n\t\ttry {\n\t\t\t// GestionPeriodoDTO \n\t\t\tlet gestionPeriodoDTO = new GestionPeriodoModel();\n\t\t\tif (changeEvent.value != null) {\n\t\t\t\tgestionPeriodoDTO.llaveGestionPeriodo = (changeEvent.value);\n\t\t\t\tgestionPeriodoDTO = await this.generalSvc.queryForObject(new GeneralModel('GestionPeriodoDTO', null, false, gestionPeriodoDTO)).toPromise();\n\t\t\t}\n\t\t\tthis.evaluacionHojaDTO.noPersona = (gestionPeriodoDTO.noPersona);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\t// public String verPopupPeriodo(){\n\t// \ttry {\n\t// \t\tif(evaluacionHojaDTO.getLlaveherramienta() != null){\n\t// \t\t\tPlanillaGestionDTO planillaGestionDTO = new PlanillaGestionDTO();\n\t// \t\t\tplanillaGestionDTO.setGestionPeriodo(evaluacionHojaDTO.getLlaveherramienta());\n\t// \t\t\tplanillaGestionDTO.setTipo(\"R\");\n\t// \t\t\tgetBean(PopupFiltroPeriodoEvaluacionBean.class).buscar(\"#{popupDetalleEvaluacionBean.popupPeriodo}\", planillaGestionDTO);\n\t// \t\t}\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// \treturn null;\n\t// }\n\n\tpublic setPopupPeriodo(planillaGestion: PlanillaGestionModel) {\n\t\ttry {\n\t\t\tthis.planillaGestionDTO = planillaGestion;\n\t\t\tthis.evaluacionHojaDTO.planillaPeriodo = (this.planillaGestionDTO.llavePlanillaGestion);\n\t\t\tthis.evaluacionHojaDTO.nombrePlanillaPeriodo = (this.planillaGestionDTO.descripcion);\n\t\t\tif (this.periodoEvaluacionCons.CERRADO == (this.planillaGestionDTO.tipoEvaluador) || this.periodoEvaluacionCons.CONTROLFECHA == (this.planillaGestionDTO.tipoEvaluador)) {\n\t\t\t\tthis.evaluacionHojaDTO.fechaInicial = (this.planillaGestionDTO.fechaInicial);\n\t\t\t\tthis.evaluacionHojaDTO.fechaFinal = (this.planillaGestionDTO.fechaFinal);\n\t\t\t} else {\n\t\t\t\tthis.evaluacionHojaDTO.fechaInicial = (null);\n\t\t\t\tthis.evaluacionHojaDTO.fechaFinal = (null);\n\t\t\t}\n\t\t\tthis.bloquearFechas = this.periodoEvaluacionCons.CERRADO == (this.planillaGestionDTO.tipoEvaluador);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tocultarPopup() {\n\t\tthis.visible = false;\n\t}\n\tmostrarPopup() {\n\t\tthis.visible = true;\n\t}\n\n\tpublic async cargarListas() {\n\t\tif (this.evaluacionHojaDTO != null && this.evaluacionHojaDTO.empresa != null) {\n\t\t\t// SelectListEvaluaciones listas = getBean(SelectListEvaluaciones.class);\n\t\t\t// listas.selectListEmpresaCargo(evaluacionHojaDTO.getEmpresa());\n\t\t\t// listas.selectListUnidadUnaEmpresa(evaluacionHojaDTO.getEmpresa());\n\t\t\t// listas.getListaEmpresa();\n\t\t}\n\t\tthis.listaRoles = (await this.selectListCompensa.getListaRoles(new ClasificacionModel()));\n\t\tthis.listaGestionHerramientas = (await this.selectListEvaluacionesService.getListaGestionHerramientas()).map((data) => ({ value: data.codigo, label: data.nombre }));\n\t}\n\n\tsetRangoFechas() {\n\t\tthis.rangoFechas.push(new Date(this.evaluacionHojaDTO.fechaInicial));\n\t\tthis.rangoFechas.push(new Date(this.evaluacionHojaDTO.fechaFinal));\n\t}\n\n\tgetRangoFechas() {\n\t\tthis.evaluacionHojaDTO.fechaInicial = this.rangoFechas[0];\n\t\tthis.evaluacionHojaDTO.fechaFinal = this.rangoFechas[1];\n\t}\n\n\n\n}\n","<p-dialog header=\"{{'evaluado' | translate}}\" [(visible)]=\"visible\" [style]=\"{width: '42vw'}\" (onHide)=\"ocultarPopup()\"\n    [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"p-fluid grid\">\n        <!-- HERRAMIENTA -->\n        @if(periodo){\n        <div class=\"field col-8 md:col-8 lg:col-8\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"herramienta\" [(ngModel)]=\"evaluacionHojaDTO.nombreherramienta\">\n                <label for=\"herramienta\">{{'herramienta' | translate}}</label>\n            </span>\n        </div>\n        }@else{\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaGestionHerramientas\"\n                    appendTo=\"body\" [autoZIndex]=\"false\"\n                    [(ngModel)]=\"evaluacionHojaDTO.llaveherramienta\" optionLabel=\"label\"\n                    (change)=\"cambiarHerramienta($event)\" optionValue=\"value\"\n                    [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"herramienta\">{{'herramienta' | translate}}</label>\n            </span>\n        </div>\n        }\n        <!-- PERIODO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <app-input-helper-filtro-periodo-evaluacion [readonly]=\"false\"\n                    [label]=\"evaluacionHojaDTO.nombrePlanillaPeriodo\" (onSelected)=\"setPopupPeriodo($event)\"\n                    [nombreInput]=\"('periodo' | translate)+''\"></app-input-helper-filtro-periodo-evaluacion>\n            </span>\n        </div>\n\n        <!-- FECHAS -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"rangoFechas\" selectionMode=\"range\" [readonlyInput]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\" (change)=\"getRangoFechas()\"/>\n                <label htmlFor=\"periodo\">{{('periodo') | translate}}*</label>\n            </span>\n        </div>\n\n\n        @if(isMostrarEmpleado()){\n        <!-- EVALUADO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <app-input-helper-empleado-boton [nombreInput]=\"'Identificación del Evaluado'\"\n                    [label]=\"this.evaluacionHojaDTO.documento != null ? this.evaluacionHojaDTO.documento + ':' + evaluacionHojaDTO.nombreevaluado : ''\"\n                    [(ngModel)]=\"this.filtroBean.nombreevaluado\" (onSelected)=\"setNuevoEvaluado($event)\">\n                </app-input-helper-empleado-boton>\n            </span>\n        </div>\n        }\n\n        <!-- EMPRESA -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaEmpresa\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [(ngModel)]=\"evaluacionHojaDTO.empresa\" optionLabel=\"label\" (change)=\"cargarListas()\"\n                    optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"empresa\">{{'empresa' | translate}}</label>\n            </span>\n        </div>\n\n        @if(isMostrarEmpleado()){\n        <!-- UNIDAD ORGANIZACIONAL -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaUnidadEmpresa\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [(ngModel)]=\"evaluacionHojaDTO.unidad\" optionLabel=\"label\" (change)=\"cargarListas()\"\n                    optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"unidadorganizacional\">{{'unidadorganizacional' | translate}}*</label>\n            </span>\n        </div>\n        }\n\n        @if(isMostrarEmpleado()){\n        <!-- CARGO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaEmpresaCargo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [(ngModel)]=\"evaluacionHojaDTO.cargo\" optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"cargo\">{{'cargo' | translate}}*</label>\n            </span>\n        </div>\n        }\n\n        @if(isMostrarEmpleado()){\n        <!-- ROL -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaRoles\" appendTo=\"body\" [autoZIndex]=\"false\"\n                    [(ngModel)]=\"evaluacionHojaDTO.clasificacion\" optionLabel=\"label\"\n                    optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"cargo\">{{'cargo' | translate}}*</label>\n            </span>\n        </div>\n        }\n\n        <!-- PORCENTAJE HERRAMIENTA -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"porcentajeherramienta\" autocomplete=\"[false]\" [(ngModel)]=\"evaluacionHojaDTO.factor\">\n                <label for=\"porcentajeherramienta\">{{'porcentajeherramienta' | translate}}</label>\n            </span>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end align-content-center\">\n        <button pButton pRipple class=\"m-2 p-button p-button-raised\" (click)=\"guardarEvaluado()\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_guardar' | translate}}\"></button>\n        <button pButton pRipple class=\"m-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"mostrarBotonGuardar\"\n            label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminarEvaluado()\"></button>\n    </div>\n\n\n\n</p-dialog>","\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { FaseGestionHojaModel } from '../models/FaseGestionHojaModel';\nimport { EvaluacionHojaModel } from '../models/EvaluacionHojaModel';\nimport { VistaPlantaOcupoModel } from '../models/VistaPlantaOcupoModel';\nimport { FaseGestionModel } from '../models/FaseGestionModel';\nimport { RequisitoModel } from '../models/RequisitoModel';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PeriodoEvaluacionService {\n\n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  enviarCorreo(listaDestinatarios: FaseGestionHojaModel[],login: string): Observable<any>{\n    let form = new  FormData;\n    form.append('listaDestinatarios',JSON.stringify(listaDestinatarios));\n    form.append('login',login);\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/periodoEvaluacion/enviarCorreo`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  programarEvaluaciones(lista: FaseGestionHojaModel[],faseGestionHojaDTO:FaseGestionHojaModel,evaluacionHojaDTO: EvaluacionHojaModel): Observable<any>{\n    let form = new  FormData;\n    form.append('lista',JSON.stringify(lista));\n    form.append('faseGestionHojaDTO',JSON.stringify(faseGestionHojaDTO));\n    form.append('evaluacionHojaDTO',JSON.stringify(evaluacionHojaDTO));\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/periodoEvaluacion/programarEvaluaciones`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerListaEvaluadores(faseGestionHojaDTO:FaseGestionHojaModel,evaluacionHojaDTO: EvaluacionHojaModel): Observable<any>{\n    let form = new  FormData;\n    form.append('faseGestionHojaDTO',JSON.stringify(faseGestionHojaDTO));\n    form.append('evaluacionHojaDTO',JSON.stringify(evaluacionHojaDTO));\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/periodoEvaluacion/obtenerListaEvaluadores`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  programarMasivo(llaveHerramienta:string,periodo:string,tipoPlantilla:string,evaluador:string,lista: FaseGestionHojaModel[],usuario: string,\n    filtro: VistaPlantaOcupoModel, llaveOrganizacion: number,listaFaseGestionDTO: FaseGestionModel[],multiple:boolean,notificar:boolean): Observable<any[]>{\n    let form = new  FormData;\n    form.append('llaveHerramienta',llaveHerramienta);\n    form.append('periodo',periodo);\n    form.append('tipoPlantilla',tipoPlantilla);\n    form.append('evaluador',evaluador);\n    form.append('lista',JSON.stringify(lista));\n    form.append('usuario',usuario);\n    form.append('filtro',JSON.stringify(filtro));\n    form.append('llaveOrganizacion',(llaveOrganizacion.toString()));\n    form.append('listaFaseGestionDTO',JSON.stringify(listaFaseGestionDTO));\n    form.append('multiple',JSON.stringify(multiple));\n    form.append('notificar',JSON.stringify(notificar));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/periodoEvaluacion/programarMasivo`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  traerFases(vplantaOcupoDTO:VistaPlantaOcupoModel,periodo:string,evaluador:string,tipoRol:string,tipoPlantilla:string,inicial: Date,listaCondicion: RequisitoModel[],multiple:boolean): Observable<any[]>{\n    let form = new  FormData;\n    form.append('vplantaOcupoDTO',JSON.stringify(vplantaOcupoDTO));\n    form.append('periodo',periodo);\n    form.append('tipoPlantilla',tipoPlantilla);\n    form.append('tipoRol',tipoRol);\n    form.append('evaluador',evaluador);\n    form.append('inicial',inicial.toDateString());\n    form.append('listaCondicion',JSON.stringify(listaCondicion));\n    form.append('multiple',JSON.stringify(multiple));\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/periodoEvaluacion/programarMasivo`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { FaseGestionHojaModel } from './../../models/FaseGestionHojaModel';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { EvaluacionHojaModel } from '../../models/EvaluacionHojaModel';\nimport { SelectListEvaluacionesService } from '../../services/select-list-evaluaciones.service';\nimport { FechaUtilsService, ToastService, UtilsService } from 'general-library-union';\nimport { PeriodoEvaluacionService } from '../../services/periodo-evaluacion.service';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperSeleccionCargoComponent } from '../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@Component({\n\tselector: 'app-popup-programar-masivo',\n\tstandalone: true,\n\timports: [DatePipe,DialogModule, ReactiveFormsModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule,InputTextModule,\n\t\tCheckboxModule,\n\t\tButtonDirective,\n\t\tRipple,\n\t\tNgIf,\n\t\tDialogModule,\n\t\tFormsModule,\n\t\tReactiveFormsModule,\n\t\tTableModule, TemplateTablaVaciaComponent,\n\t\tPrimeTemplate,\n\t\tTranslateModule,\n\t\tInputHelperSeleccionZonaCentroComponent,\n\t\tInputHelperUnidadComponent,\n\t\tInputHelperSeleccionCargoComponent,\n\t\tCalendarModule,\n\t\tDropdownModule,\n\t\tConfirmPopupModule,\n\t\tInputNumberModule,\n\t\tDatePipe,],\n\ttemplateUrl: './popup-programar-masivo.component.html',\n\tstyleUrl: './popup-programar-masivo.component.scss'\n})\nexport class PopupProgramarMasivoComponent {\n\n\t@Output() destino: EventEmitter<any> = new EventEmitter<any>();\n\tpublic evaluacionHojaDTO: EvaluacionHojaModel = new EvaluacionHojaModel();\n\tpublic listaFase: any[] = [];\n\tpublic faseGestionHojaDTO: FaseGestionHojaModel = new FaseGestionHojaModel();\n\t// public IPeriodoEvaluacionSvc periodoEvaluacionSvc;\n\tpublic mostrarTabla: boolean;\n\tpublic seleccionado: boolean;\n\tpublic listaPaginador: any[];\n\tvisible: boolean;\n\tclickGuardar: boolean;\n\tconstructor(private selectListEvaluacion: SelectListEvaluacionesService, private notificationBusService: ToastService, private periodoEvaluacionSvc: PeriodoEvaluacionService, public utilsService: UtilsService,\n\t\tprivate fechaUtils: FechaUtilsService, private generalPipe: GeneralPipe, private datePipe: DatePipe,\n\t) { }\n\n\tpublic async init(destino: String, evaluacionHoja: EvaluacionHojaModel): Promise<void> {\n\t\ttry {\n\t\t\t// setDestino(destino);\n\t\t\tthis.mostrarPopup();\n\t\t\tthis.mostrarTabla = false;\n\t\t\tthis.seleccionado = false;\n\t\t\tthis.faseGestionHojaDTO = new FaseGestionHojaModel();\n\t\t\tthis.evaluacionHojaDTO = evaluacionHoja;\n\t\t\tthis.listaFase = await this.selectListEvaluacion.getListaFaseFiltro(evaluacionHoja.llaveherramienta);\n\t\t\tif (this.listaFase != null && this.listaFase.length == 2) {\n\t\t\t\tthis.faseGestionHojaDTO.llaveFase = (this.listaFase[0].value.toString());\n\t\t\t}\n\t\t\tthis.faseGestionHojaDTO.fechaInicial = new Date(this.evaluacionHojaDTO.fechaInicial);\n\t\t\tthis.faseGestionHojaDTO.fechaFinal = new Date(this.evaluacionHojaDTO.fechaFinal);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic async programar(): Promise<string> {\n\t\ttry {\n\t\t\t// List<FaseGestionHojaDTO> \n\t\t\tlet lista: FaseGestionHojaModel[] = await this.obtenerListaSeleccionados();\n\t\t\tif (lista.length == 0) {\n\t\t\t\tthis.notificationBusService.showWarning(\"Debe seleccionar un registro\");\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlista = await this.periodoEvaluacionSvc.programarEvaluaciones(lista, this.faseGestionHojaDTO, this.evaluacionHojaDTO).toPromise();\n\t\t\tthis.notificationBusService.showInfo(\"Se ha ejecutado el proceso correctamente\");\n\t\t\tthis.aplicarDestino();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate aplicarDestino() {\n\t\t// fc.getApplication().createValueBinding(getDestino()).setValue(fc, evaluacionHojaDTO);\n\t\tthis.destino.emit(this.evaluacionHojaDTO);\n\t\tthis.ocultarPopup();\n\t}\n\n\tprivate async obtenerListaSeleccionados(): Promise<FaseGestionHojaModel[]> {\n\t\t// List<FaseGestionHojaDTO> \n\t\tlet retorno = [];\n\t\tfor (let sw of this.listaPaginador) {\n\t\t\tif (!sw.check) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tretorno.push(sw);\n\t\t}\n\t\treturn retorno;\n\t}\n\n\tpublic seleccionarTodos(): String {\n\t\tfor (let sw of this.listaPaginador) {\n\t\t\tsw.check = (!this.seleccionado);\n\t\t}\n\t\tthis.seleccionado = !this.seleccionado;\n\t\treturn null;\n\t}\n\n\tpublic async cargarEvaluadores(): Promise<string> {\n\t\ttry {\n\t\t\tif (this.validar() && this.validarFechas(this.faseGestionHojaDTO.fechaInicial, this.faseGestionHojaDTO.fechaFinal)) {\n\t\t\t\tthis.clickGuardar = false;\n\t\t\t\tthis.listaPaginador = await this.periodoEvaluacionSvc.obtenerListaEvaluadores(this.faseGestionHojaDTO, this.evaluacionHojaDTO).toPromise();\n\t\t\t\tthis.mostrarTabla = true;\n\t\t\t} else if (!this.validarFechas(this.faseGestionHojaDTO.fechaInicial, this.faseGestionHojaDTO.fechaFinal)) {\n\t\t\t\tthis.notificationBusService.showWarning(\"La fecha \" + this.datePipe.transform(this.faseGestionHojaDTO.fechaInicial, \"dd/MM/yyyy\") + \" debe ser menor a la fecha \"\n\t\t\t\t\t+ this.datePipe.transform(this.faseGestionHojaDTO.fechaFinal, \"dd/MM/yyyy\"));\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate validar(): boolean {\n\t\tlet validador: boolean = true;\n\t\tthis.clickGuardar = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.faseGestionHojaDTO.llaveFase);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.faseGestionHojaDTO.fechaInicial);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.faseGestionHojaDTO.fechaFinal);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.faseGestionHojaDTO.fechaLimite);\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.faseGestionHojaDTO.fechaInicial);\n\t\treturn validador;\n\t}\n\n\tmostrarPopup() {\n\t\tthis.visible = true\n\t}\n\tocultarPopup() {\n\t\tthis.visible = false;\n\t}\n\n\tvalidarFechas(fechaInicial: Date, fechaFinal: Date): boolean {\n\t\tconst fechaI = new Date(fechaInicial);\n\t\tconst fechaF = new Date(fechaFinal);\n\n\t\tif (fechaI > fechaF) {\n\t\t\treturn false\n\t\t}\n\t\treturn true;\n\t}\n}\n\n\n","<p-dialog header=\"{{'programar' | translate}}\" [(visible)]=\"visible\" (onShow)=\"mostrarPopup()\"\n    (onHide)=\"ocultarPopup()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\"\n    [style]=\"{ width: '60vw'}\">\n    <div class=\"p-fluid grid\">\n        <!-- FASE -->\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaFase\" [(ngModel)]=\"faseGestionHojaDTO.llaveFase\" optionLabel=\"label\"\n                     optionValue=\"key\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"codigo\">{{'lineacosto' | translate}}</label>\n            </span>\n        </div>\n        <!-- PERIODO -->\n        <div class=\"field col-6 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"faseGestionHojaDTO.fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" \n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(faseGestionHojaDTO.fechaInicial) && (clickGuardar)\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(faseGestionHojaDTO.fechaInicial) && (clickGuardar)\">\n                </p-calendar>\n                <label htmlFor=\"actualizacion_fecha\">{{'fecha' | translate}} *</label>\n            </span>\n        </div>\n        <div class=\"field col-6 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"faseGestionHojaDTO.fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" \n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(faseGestionHojaDTO.fechaFinal) && (clickGuardar)\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(faseGestionHojaDTO.fechaFinal) && (clickGuardar)\">\n                </p-calendar>\n                <label htmlFor=\"actualizacion_fecha\">{{'fecha' | translate}} *</label>\n            </span>\n        </div>\n        <!-- FECHA LIMITE -->\n        <div class=\"field col-6 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"faseGestionHojaDTO.fechaLimite\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" \n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(faseGestionHojaDTO.fechaLimite) && (clickGuardar)\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(faseGestionHojaDTO.fechaLimite) && (clickGuardar)\">\n                </p-calendar>\n                <label htmlFor=\"actualizacion_fecha\">{{'fecha' | translate}} *</label>\n            </span>\n        </div>\n    </div>\n@if(mostrarTabla){\n    <p-table #tablaGeneral [value]=\"listaPaginador\" responsiveLayout=\"scroll\" responsiveLayout=\"scroll\"\n    scrollDirection=\"both\" [rows]=\"10\" [paginator]=\"listaPaginador.length > 10\"\n    [lazy]=\"true\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\"\n    [totalRecords]=\"listaPaginador.length\" [lazy]=\"false\" [showCurrentPageReport]=\"true\"\n    [tableStyle]=\"{'min-width': '110rem'}\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n    [showCurrentPageReport]=\"true\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th style=\"width:15%;\" alignFrozen=\"left\" pFrozenColumn>{{'evaluador' | translate}}</th>\n            <th style=\"width:5%\">{{'tipoevaluador' | translate}}</th>\n            <th style=\"width:10%\">{{'cargo' | translate}}</th>\n            <th style=\"width:10%\">{{'clasificacion' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-beane>\n        <tr>\n            <td style=\"width:15%\" pFrozenColumn>\n                <p-checkbox class=\"mr-3\" [(ngModel)]=\"beane.check\" [binary]=\"true\" inputId=\"binary\">\n                </p-checkbox>\n                {{beane.tipoNombreEvaluador}}\n            </td>\n            <td style=\"width:5%\" [pSelectableRow]=\"beane\">\n                {{beane.nombreEstado}}\n            </td>\n            <td style=\"width:10%\" [pSelectableRow]=\"beane\">\n                {{beane.cargoPK}} - {{beane.nombreCargo}}\n            </td>\n            <td style=\"width:10%\" [pSelectableRow]=\"beane\">\n                {{beane.clasificacionPK}} - {{beane.nombreClasificacion}}\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n}\n\n<div class=\"flex justify-content-end align-content-center\">\n    <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"cargarEvaluadores()\" *ngIf=\"!mostrarTabla\"\n                icon=\"glyphicons glyphicons glyphicons-group\" label=\"{{'evaluador' | translate}}es\"></button>\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"programar()\"  *ngIf=\"mostrarTabla\"\n                icon=\"glyphicons glyphicons-calendar\" label=\"{{'programar' | translate}}\"></button>\n</div>\n\n    </p-dialog>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { EvaluacionHojaModel } from '../models/EvaluacionHojaModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EvaluacionHojaService {\n\n  \n  listProcedure(objetoFiltro: GeneralModel) {\n    throw new Error('Method not implemented.');\n  }\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  avanceEvaluacionPeriodo( general: EvaluacionHojaModel ) : Observable<any>{\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionhoja/avanceEvaluacionPeriodo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  \n\n  cerrarEvaluacion(llavePeriodo: string,loginAcceso: string): Observable<void>{\n    let form = new  FormData;\n    form.append('llavePeriodo',llavePeriodo);\n    form.append('loginAcceso',loginAcceso);\n    return this.httpClient.post<void>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionhoja/cerrarEvaluacion`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  obtenerListadoEvaluacionesConFases(evaluacionHoja: EvaluacionHojaModel, periodo: boolean): Observable<EvaluacionHojaModel[]>{\n    let form = new  FormData;\n    form.append('evaluacionHoja',JSON.stringify(evaluacionHoja));\n    form.append('periodo',JSON.stringify(periodo));\n    return this.httpClient.post<EvaluacionHojaModel[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/evaluacionhoja/obtenerListadoEvaluacionesConFases`, form).pipe(\n      catchError(this.handleError)\n    );\n  }\n}\n","import { DetalleEvaluadorComponent } from './../detalle-evaluador/detalle-evaluador.component';\nimport { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { EvaluacionHojaModel } from '../../../models/EvaluacionHojaModel';\nimport { FaseGestionHojaModel } from '../../../models/FaseGestionHojaModel';\nimport { MetaEvaluacionModel } from '../../../models/MetaEvaluacionModel';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FaseGestionHojaPipe } from '../../../pipes/fase-gestion-hoja.pipe';\nimport { EvaluacionHojaService } from '../../../services/evaluacion-hoja.service';\nimport { CabeceraHojaVidaComponent } from '../../../../../shared/componentes/cabecera-hoja-vida/cabecera-hoja-vida.component';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { DocumentoSoporteService } from '../../../../../modules/sarageneral/services/documento-soporte.service';\nimport { FaseGestionHojaContComponent } from '../../evaluacion/fase-gestion-hoja-cont/fase-gestion-hoja-cont.component';\nimport { PeriodoEvaluacionService } from '../../../services/periodo-evaluacion.service';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { DetalleDimensionComponent } from '../detalle-dimension/detalle-dimension.component';\nimport { PopupRecomendacionesGestionComponent } from '../../../popups/popup-recomendaciones-gestion/popup-recomendaciones-gestion.component';\nimport { PopupConsultaDocumentoSoporteComponent } from '../../../popups/popup-consulta-documento-soporte/popup-consulta-documento-soporte.component';\nimport { HojaVidaModel } from '../../../../../modules/hojavida/models/HojaVidaModel';\nimport { DatePipe, NgFor, NgIf } from '@angular/common';\nimport { DetalleHerramientasEncabezadoComponent } from '../detalle-herramientas-encabezado/detalle-herramientas-encabezado.component';\nimport { TabViewModule } from 'primeng/tabview';\nimport { EvaluacionService } from '../../../services/evaluacion.service';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\nimport { Ripple } from 'primeng/ripple';\nimport { SafeHTMLPipe } from '../../../../../shared/pipes/safe-html.pipe';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonDirective } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { MenubarModule } from 'primeng/menubar';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { PopupDetalleEvaluacionComponent } from '../../../popups/popup-detalle-evaluacion/popup-detalle-evaluacion.component';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { PopupProgramarMasivoComponent } from '../../../popups/popup-programar-masivo/popup-programar-masivo.component';\n\n@Component({\n\tselector: 'app-detalle-herramientas',\n\tstandalone: true,\n\timports: [CabeceraHojaVidaComponent, DetalleDimensionComponent, PopupRecomendacionesGestionComponent, PopupConsultaDocumentoSoporteComponent, NgIf, NgFor, DetalleHerramientasEncabezadoComponent, CheckboxModule, SplitButtonModule, PopupDetalleEvaluacionComponent,\n\t\tTabViewModule, TranslateModule, TableModule, TemplateTablaVaciaComponent, DatePipe, BreadcrumbModule, Ripple, PrimeTemplate, SafeHTMLPipe, FormsModule, FaseGestionHojaContComponent, DetalleEvaluadorComponent, ButtonDirective, ParametrosEvaluacionPipe, ConfirmPopupModule, MenubarModule, SplitButtonModule,ProgressBarModule\n\t\t,PopupProgramarMasivoComponent],\n\tproviders: [ParametrosEvaluacionPipe,DatePipe],\n\ttemplateUrl: './detalle-herramientas.component.html',\n\tstyleUrl: './detalle-herramientas.component.scss'\n})\nexport class DetalleHerramientasComponent {\n\tpublic renderEliminarHerramienta: boolean;\n\tpublic detalleHerramienta: EvaluacionHojaModel = new EvaluacionHojaModel();\n\tpublic faseGestionHojaDTO: FaseGestionHojaModel;\n\tpublic paginador: FaseGestionHojaModel[] = [];\n\tpublic paginator = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t};\n\tpublic paginadorDimension: MetaEvaluacionModel[] = [];\n\tpublic paginatorDimension = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t};\n\tpublic paginadorRecomendacion: MetaEvaluacionModel[] = [];\n\tpublic paginatorRecomendacion = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t};\n\tpublic llaveEvaluacionHoja: string;\n\tpublic llaveHojaGestion: string;\n\tpublic navegar: string;\n\tpublic mapaDefinicion: Map<String, String> = new Map<String, String>();\n\tpublic mapaEstados: Map<String, String> = new Map<String, String>();\n\tpublic mostrarArchivo: boolean;\n\tpublic selectedTab: number;\n\t//\tpublic OutputChart outputChart;\n\tpublic filtroBean: EvaluacionHojaModel;\n\tpublic periodo: boolean;\n\tpublic puestoTrabajoDTO: PuestoTrabajoModel;\n\tpublic fases: MenuItem[] = []; // BreadcrumbMenuModel\n\t@ViewChild('cabeceraHojaVida') cabeceraHojaVidaEmpleadoBean: CabeceraHojaVidaComponent;\n\t@ViewChild('faseGestionHojaCont') faseGestionHojaContComponent: FaseGestionHojaContComponent;\n\t@ViewChild('detalleDimension') detalleDimension: DetalleDimensionComponent;\n\t@ViewChild('popupRecomendacionGestion') popupRecomendacionesGestionBean: PopupRecomendacionesGestionComponent;\n\t@ViewChild('popupConsultaDocSoporte') popupConsultaDocumentoSoporteBean: PopupConsultaDocumentoSoporteComponent;\n\t@ViewChild('detalleEvaluador') detalleEvaluador: DetalleEvaluadorComponent;\n\t@ViewChild('popupDetalleEvaluacion') popupDetalleEvaluacion: PopupDetalleEvaluacionComponent;\n\t@ViewChild('popupProgramarMasivo') popupProgramarMasivo: PopupProgramarMasivoComponent;\n\t\n\t@Output() public setVistaVisualizar = new EventEmitter();\n\t@Output() public setRegresarAction = new EventEmitter();\n\tpublic listaPaginadorDimension: MetaEvaluacionModel[] = [];\n\tpublic listaGestionHojaEvaluaciones: FaseGestionHojaModel[] = [];\n\tpublic listaFases: FaseGestionHojaModel[] = [];\n\tvistaVisualizar: string;\n\tloading: boolean;\n\tpublic hojaVida: HojaVidaModel = new HojaVidaModel();\n\tpublic items: MenuItem[];\n\tpublic menu: MenuItem[] = []\n\n\tconstructor(private authService: AuthService, private saraAplicationSvc: SaraAplicacionService, private controlFuncionService: CargarControlFuncionalidadService,\n\t\tprivate utilsService: UtilsService, private generalSvc: GeneralService, private notificationBusService: ToastService, private confirmationService: ConfirmationService,\n\t\tprivate translateService: TranslateService, private faseGesHojaCons: FaseGestionHojaPipe, private evaluacionHojaSvc: EvaluacionHojaService, private ParametrosEvaluacionCons: ParametrosEvaluacionPipe,\n\t\tprivate documentoSoporteSvc: DocumentoSoporteService, private periodoEvaluacionSvc: PeriodoEvaluacionService, private evaluacionSvc: EvaluacionService, private generalPipe: GeneralPipe\n\t) { }\n\n\tpublic async cargarDetalleHerramienta(): Promise<void> {\n\t\ttry {\n\t\t\tthis.detalleHerramienta = new EvaluacionHojaModel();\n\t\t\tthis.detalleHerramienta.llave = (this.llaveEvaluacionHoja);\n\t\t\tthis.detalleHerramienta = await this.generalSvc.queryForObject(new GeneralModel('EvaluacionHojaDTO', null, false, this.detalleHerramienta)).toPromise();\n\t\t\tthis.hojaVida.contrato = (this.detalleHerramienta.identificacion);\n\t\t\tthis.hojaVida.documento = (this.detalleHerramienta.documento);\n\t\t\tthis.hojaVida.nombreCompleto = (this.getNombreCompletoEvaluado());\n\t\t\tthis.hojaVida.nombrefoto = (this.detalleHerramienta.nombreFoto);\n\t\t\tawait this.setLoading(true);\n\t\t\tawait this.utilsService.sleep(100);\n\t\t\tlet cantidad: number = await this.documentoSoporteSvc.cantidadListaDocumentoSoporte(this.ParametrosEvaluacionCons.TABLAGESTIONPERIODO, this.detalleHerramienta.llaveherramienta, this.detalleHerramienta.clasificacion, \"H\", null, null).toPromise();\n\t\t\tif (cantidad == 0) {\n\t\t\t\tthis.mostrarArchivo = false;\n\t\t\t} else {\n\t\t\t\tthis.mostrarArchivo = true;\n\t\t\t}\n\t\t\tawait this.cargarBreadFases();\n\t\t\tthis.cargarBotones();\n\t\t\tthis.getItems();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\n\t}\n\n\tcargarBotones() {\n\t\tthis.items = [\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('cerrar'),\n\t\t\t\ticon: ImagenesCons.bin,\n\t\t\t\tvisible: (this.detalleHerramienta.estado != 'C' && this.verificarControl('pereva:cerrar')),\n\t\t\t\tcommand: () => {\n\t\t\t\t\tthis.cerrar();\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('modificar'),\n\t\t\t\ticon: ImagenesCons.pencil,\n\t\t\t\tvisible: (this.detalleHerramienta.estado != 'C' && this.verificarControl('pereva:cerrar')),\n\t\t\t\tcommand: () => {\n\t\t\t\t\tthis.modificarHerramienta();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('abrir'),\n\t\t\t\ticon: ImagenesCons.book_open,\n\t\t\t\tvisible: (this.detalleHerramienta.estado == 'C' && this.verificarControl('pereva:cerrar')),\n\t\t\t\tcommand: () => {\n\t\t\t\t\tthis.abrir();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: this.translateService.instant('link_archivo'),\n\t\t\t\ticon: ImagenesCons.file,\n\t\t\t\tvisible: (this.mostrarArchivo && this.verificarControl('pereva:archivo')),\n\t\t\t\tcommand: () => {\n\t\t\t\t\tthis.combinarArchivo();\n\t\t\t\t}\n\t\t\t},\n\n\t\t];\n\t}\n\n\tasync load(event) {\n\t\ttry {\n\t\t\tif (this.detalleHerramienta == null) {\n\t\t\t\tthis.detalleHerramienta = new EvaluacionHojaModel();\n\t\t\t\tthis.detalleHerramienta.llave = this.llaveEvaluacionHoja;\n\t\t\t}\n\t\t\tevent.rows ? event.rows : 10;\n\t\t\tevent.first ? event.first : 0;\n\t\t\tthis.paginador = await this.evaluacionSvc.obtenerGestionHojaEvaluaciones(this.detalleHerramienta.llave, (event.first ? event.first : 0), (event.rows ? event.rows : 10), null);\n\t\t\tthis.paginator.totalRecords = await this.evaluacionSvc.cantidadGestionHojaEvaluacion(this.detalleHerramienta.llave, null).toPromise()\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\n\tasync loadDimension(event) {\n\t\ttry {\n\t\t\tlet filtro: MetaEvaluacionModel = new MetaEvaluacionModel();\n\t\t\tfiltro.tipo = 'E';\n\t\t\tfiltro.llaveGestionHoja = this.llaveEvaluacionHoja;\n\t\t\tfiltro.paginacionRegistroFinal = (event.rows ? event.rows : 10);\n\t\t\tfiltro.paginacionRegistroInicial = (event.first ? event.first : 0);\n\t\t\tthis.paginadorDimension = await this.generalSvc.queryForList(new GeneralModel('MetaEvaluacionDTO', 'MetaGestionHoja.obtenerMetasGestionHerramientas', false, filtro)).toPromise();\n\t\t\tthis.paginatorDimension.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('MetaEvaluacionDTO', 'MetaGestionHoja.contarMetasGestionHerramientas', false, filtro)).toPromise();\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\tasync loadRecomendacion(event): Promise<void> {\n\t\ttry {\n\t\t\tlet filtro: MetaEvaluacionModel = new MetaEvaluacionModel();\n\t\t\tfiltro.tipo = 'G';\n\t\t\tfiltro.llaveGestionHoja = this.llaveEvaluacionHoja;\n\t\t\tfiltro.paginacionRegistroFinal = (event.rows ? event.rows : 10);\n\t\t\tfiltro.paginacionRegistroInicial = (event.first ? event.first : 0);\n\t\t\tthis.paginadorRecomendacion = await this.generalSvc.queryForList(new GeneralModel('MetaEvaluacionDTO', 'MetaGestionHoja.obtenerMetasGestionHerramientas', false, filtro)).toPromise();\n\t\t\tthis.paginatorRecomendacion.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('MetaEvaluacionDTO', 'MetaGestionHoja.contarMetasGestionHerramientas', false, filtro)).toPromise();\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t}\n\n\n\n\n\tpublic async cargarBreadFases(): Promise<void> {\n\t\ttry {\n\t\t\tlet isFuncional: boolean = (this.authService.getTokenKey('isCliente') === \"true\");\n\t\t\tif (isFuncional) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.listaFases = await this.evaluacionSvc.obtenerGestionHojaEvaluaciones(this.detalleHerramienta.llave, null, null, null);\n\t\t\tthis.fases = [];\n\t\t\tthis.listaFases.forEach(async (dto) => {\n\t\t\t\tlet act: any = null;\n\t\t\t\tif (this.faseGesHojaCons.PROGRAMADA == (dto.estado)) {\n\t\t\t\t\tact = { label: dto.nombreFase, title: dto.llaveTabla, styleClass: 'G', command: (event) => { this.cargarFase(event) } };\n\t\t\t\t\tthis.fases.push(act);\n\t\t\t\t} else if (this.faseGesHojaCons.EVALUACION == (dto.estado)) {\n\t\t\t\t\tact = { label: dto.nombreFase, title: dto.llaveTabla, styleClass: 'C', command: (event) => { this.cargarFase(event) } };\n\t\t\t\t\tthis.fases.push(act);\n\t\t\t\t} else if (this.faseGesHojaCons.APLICADA == (dto.estado)) {\n\t\t\t\t\tact = { label: dto.nombreFase, title: dto.llaveTabla, styleClass: 'O', command: (event) => { this.cargarFase(event) } };\n\t\t\t\t\tthis.fases.push(act);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic async cargarFase(event): Promise<void> {\n\t\ttry {\n\t\t\tthis.vistaVisualizar = 'evaluacion';\n\t\t\tawait this.utilsService.sleep(200);\n\t\t\tlet llaveFaseGesHoja = event.item.title;\n\t\t\tthis.faseGestionHojaContComponent.setTraerFaseEvaluacion(llaveFaseGesHoja, \"listadoHerramientas\");\n\t\t\tif (this.faseGestionHojaContComponent.paginasEvaluacionActual == null) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.faseGestionHojaContComponent.origen = (\"listadoHerramientas\");\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\t//\tpublic void crearGrafico() {\n\t//\t\tif(listaPaginadorDimension!=null){\n\t//\t\t\tint cantidad = listaPaginadorDimension.size();\n\t//\t\t\tdouble[] arregloDato = new double[cantidad];\n\t//\t\t\tString[] arregloLabel = new String[cantidad];\n\t//\t\t\tMetaEvaluacionDTO metaEvaluacionDTO;\n\t//\t\t\tfor (int i = 0; i < cantidad; i++) {\n\t//\t\t\t\tmetaEvaluacionDTO = (MetaEvaluacionDTO) listaPaginadorDimension.get(i);\n\t//\t\t\t\tarregloDato[i] = metaEvaluacionDTO.getPuntaje().doubleValue();\n\t//\t\t\t\tarregloLabel[i] = StringUtils.capitalize(metaEvaluacionDTO.getDescripcionTipoCalificacion());\n\t//\t\t\t}\n\t//\t\t\toutputChart = new OutputChart();\n\t//\t\t\toutputChart.setChartTitle(\"Dimension\");\n\t//\t\t\toutputChart.setType(\"bar\");\n\t//\t\t\toutputChart.setData(new double[][] { arregloDato });\n\t//\t\t\toutputChart.setXaxisLabels(arregloLabel);\n\t//\t\t\toutputChart.setLabels(new String[] { \"Serie 1\" });\n\t//\t\t\toutputChart.setHorizontal(true);\n\t//\t\t\toutputChart.setXaxisTitle(\"Valor\");\n\t//\t\t\toutputChart.setYaxisTitle(ConstantesGenerales.PUNTO);\n\t//\t\t\toutputChart.setWidth(\"450\");\n\t//\t\t\toutputChart.setHeight(\"300\");\n\t//\t\t\toutputChart.setDisabled(true);\n\t//\t\t\toutputChart.setLegendPlacement(\"none\");\n\t//\t\t\toutputChart.setStyle(\"valor_campo\");\n\t//\t\t\t\n\t//\t\t\tList<Color> colores = new ArrayList<Color>();\n\t//\t\t\tcolores.add(new Color(13457152));\n\t//\t\t\toutputChart.setColors(colores);\n\t//\t\t}\n\t//\t}\n\n\tpublic enviarEmail(): string {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: 'Desea Notificar  ',\n\t\t\tacceptLabel: 'Si',\n\t\t\theader: 'Confirmar',\n\t\t\taccept: () => {\n\t\t\t\tthis.setCorreoConfirmar(true);\n\t\t\t},\n\t\t});\n\t\treturn null;\n\t}\n\n\tpublic async setCorreoConfirmar(confirma: boolean): Promise<void> {\n\t\tif (!confirma) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\t// List<FaseGestionHojaDTO> \n\t\t\tlet listaDestinatario: FaseGestionHojaModel[] = [];\n\n\t\t\tlet lista = this.paginador;\n\t\t\tfor (const unaFaseHoja of lista) {\n\t\t\t\tif (!unaFaseHoja.check) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlistaDestinatario.push(unaFaseHoja);\n\t\t\t}\n\n\t\t\tif (listaDestinatario.length == 0) {\n\t\t\t\tthis.notificationBusService.showWarning(\"No presenta marcacion seleccionada\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// List<MensajeProceso> \n\t\t\tlet listaMensaje: any[] = await this.periodoEvaluacionSvc.enviarCorreo(listaDestinatario, this.authService.getTokenKey('login')).toPromise();\n\n\t\t\tif (listaMensaje.length == 0) {\n\t\t\t\tthis.notificationBusService.showInfo(\"Proceso de notificaci\" + Constantes.O_TIDLE_MIN + \"n ha finalizado\");\n\t\t\t} else {\n\t\t\t\t// getBean(PopupMensajeProcesoBean.class).mostrarReporte(listaMensaje, \"Evaluaciones Programas correctamente\", \"No fue posible enviar la notificaci\" + ConstantesGenerales.O_TIDLE_MIN + \"n a los siguientes colaboradores: \", null);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic verDimension(se): string {\n\t\t// MetaEvaluacionDTO \n\t\tlet metaEvaluacionDTO = se.data;\n\t\tthis.vistaVisualizar = 'detalleDimension';\n\t\tthis.detalleDimension.setMetaEvaluacionDTO(metaEvaluacionDTO);\n\t\tthis.detalleDimension.cargarTabla();\n\t\treturn null;\n\t}\n\n\tpublic verRecomendacion(se): string {\n\t\tlet metaEvaluacionDTO: MetaEvaluacionModel = se.data;\n\t\tthis.popupRecomendacionesGestionBean.init(\"#{listadoEvaluadores.volver}\", metaEvaluacionDTO, this.detalleHerramienta.llaveherramienta);\n\t\treturn null;\n\t}\n\n\tpublic nuevaRecomendacion(): string {\n\t\tlet metaEvaluacionDTO = new MetaEvaluacionModel();\n\t\tmetaEvaluacionDTO.llaveGestionHoja = (this.llaveEvaluacionHoja);\n\t\tthis.popupRecomendacionesGestionBean.init(\"#{listadoEvaluadores.volver}\", metaEvaluacionDTO, this.detalleHerramienta.llaveherramienta);\n\t\treturn null;\n\t}\n\n\tpublic cerrar(): string {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: 'Efectuar cierre de la herramienta de Gestion',\n\t\t\tacceptLabel: 'Si',\n\t\t\theader: 'Confirmar',\n\t\t\taccept: () => {\n\t\t\t\tthis.setConfirmarCerrar(true);\n\t\t\t},\n\t\t});\n\t\treturn null;\n\t}\n\n\tpublic async setConfirmarCerrar(confirma: boolean): Promise<void> {\n\t\tif (!confirma) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tthis.evaluacionHojaSvc.cerrarEvaluacion(this.detalleHerramienta.llave, this.authService.getTokenKey('login')).toPromise();\n\t\t\tthis.notificationBusService.showInfo(\"Se ejecuto el proceso correctamente\");\n\t\t\t// EvaluacionHojaDTO \n\t\t\tlet dto = new EvaluacionHojaModel();\n\t\t\tdto.llave = (this.llaveEvaluacionHoja);\n\t\t\tthis.detalleHerramienta = await this.generalSvc.queryForObject(new GeneralModel('EvaluacionHojaDTO', null, false, dto)).toPromise();\n\t\t\t//\t\t\tcrearGrafico();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic async abrir(): Promise<string> {\n\t\ttry {\n\t\t\tthis.detalleHerramienta.estado = (this.ParametrosEvaluacionCons.ESTADO_PROCESO);\n\t\t\tawait this.generalSvc.update(new GeneralModel('EvaluacionHojaDTO', null, false, this.detalleHerramienta)).toPromise();\n\t\t\tthis.notificationBusService.showInfo(\"Se ejecuto el proceso correctamente\");\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\n\n\tpublic combinarArchivo(): string {\n\t\tthis.popupConsultaDocumentoSoporteBean.init(\"#{listadoEvaluadores.volver}\", this.ParametrosEvaluacionCons.TABLAGESTIONPERIODO, this.detalleHerramienta.llaveherramienta, this.llaveEvaluacionHoja,\n\t\t\tthis.detalleHerramienta.clasificacion, \"H\", \"detalleHerramientas\", null, null)\n\t\treturn null;\n\t}\n\n\tpublic setVolver(obj: any): void {\n\t\tthis.cargarBreadFases();\n\t\t// actualizaAjax(\"areaAplicacion\");\n\t}\n\teliminarEvaluador() {\n\t\tthis.confirmationService.confirm({\n\t\t\ttarget: event.target,\n\t\t\tmessage: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n\t\t\tacceptLabel: 'Si',\n\t\t\taccept: () => {\n\t\t\t\tthis.setEliminarEvaluador();\n\t\t\t},\n\t\t\treject: () => {\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic async setEliminarEvaluador(): Promise<string> {\n\t\ttry {\n\t\t\tawait this.generalSvc.delete(new GeneralModel('EvaluacionHojaDTO', null, false, this.detalleHerramienta)).toPromise();\n\t\t\tthis.notificationBusService.showInfo(\"Registro eliminado correctamente\");\n\t\t\treturn Constantes.REGLA_REGRESAR;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic async verEvaluador(se): Promise<string> {\n\t\ttry {\n\t\t\tthis.vistaVisualizar = (\"detalleEvaluador\");\n\t\t\tawait this.utilsService.sleep(10);\n\t\t\t// FaseGestionHojaDTO\n\t\t\tlet dto: FaseGestionHojaModel = se.data;\n\t\t\tthis.detalleEvaluador.llaveEvaluacionHoja = this.llaveEvaluacionHoja;\n\t\t\tthis.detalleEvaluador.puestoTrabajoDTO = this.puestoTrabajoDTO;\n\t\t\tthis.detalleEvaluador.filtroBean = this.filtroBean;\n\t\t\tthis.detalleEvaluador.periodo = this.periodo;\n\t\t\tawait this.detalleEvaluador.buscar('volver', dto, true, false, this.detalleHerramienta.llaveherramienta);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic async verNuevoEvaluador(): Promise<string> {\n\t\ttry {\n\t\t\tthis.vistaVisualizar = (\"detalleEvaluador\");\n\t\t\tthis.faseGestionHojaDTO = new FaseGestionHojaModel();\n\t\t\tthis.faseGestionHojaDTO.llave = (this.utilsService.generarLlave());\n\t\t\tthis.faseGestionHojaDTO.llaveGestionHoja = (this.detalleHerramienta.llave);\n\t\t\tthis.faseGestionHojaDTO.fechaInicial = (this.detalleHerramienta.fechaInicial);\n\t\t\tthis.faseGestionHojaDTO.fechaFinal = (this.detalleHerramienta.fechaFinal);\n\t\t\tthis.faseGestionHojaDTO.fechaAsignacion = (new Date());\n\t\t\tthis.vistaVisualizar = 'detalleEvaluador';\n\t\t\tawait this.utilsService.sleep(20);\n\t\t\tthis.detalleEvaluador.buscar('volver', this.faseGestionHojaDTO, true, true, this.detalleHerramienta.llaveherramienta);\n\t\t\t// getBean(DetalleEvaluador.class).buscar(\"#{listadoEvaluadores.volver}\", (FaseGestionHojaDTO) ClonUtil.getClon(faseGestionHojaDTO), true, true, detalleHerramienta.getLlaveherramienta());\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic programarMasivo(): string {\n\t\tthis.popupProgramarMasivo.init('volver',this.detalleHerramienta);\n\t\treturn null;\n\t}\n\n\t// public String verPopupUnidad() {\n\t// \ttry {\n\t// \t\tgetBean(PopupUnidad.class).buscar(\"#{listadoHerramientasBean.unidad}\", getCredencial().getNumeroEmpresa(), false);\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// \treturn null;\n\t// }\n\n\tpublic setUnidad(unidadOrganizacionalDTO: UnidadOrganizacionalModel): void {\n\t\tif (unidadOrganizacionalDTO.unidad != null) {\n\t\t\tthis.detalleHerramienta.unidad = (unidadOrganizacionalDTO.unidad);\n\t\t\tthis.detalleHerramienta.nombreunidad = (unidadOrganizacionalDTO.nombreUnidad);\n\t\t}\n\t}\n\n\t// public String verPopupCargo() {\n\t// \ttry {\n\t// \t\tgetBean(PopupCargo.class).buscar(\"#{listadoHerramientasBean.cargo}\", getCredencial().getNumeroEmpresa());\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// \treturn null;\n\t// }\n\n\tpublic setCargo(cargoDTO: CargoModel): void {\n\t\ttry {\n\t\t\tthis.detalleHerramienta.nombrecargo = (cargoDTO.descripcion);\n\t\t\tthis.detalleHerramienta.cargo = (cargoDTO.cargo);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic modificarHerramienta(): string {\n\t\ttry {\n\t\t\t// getBean(PopupDetalleEvaluacionBean.class).buscar(\"#{listadoEvaluadores.cargar}\", detalleHerramienta, true, true, false);\n\t\t\tthis.popupDetalleEvaluacion.buscar('cargar', this.detalleHerramienta, true, true, false);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic setCargar(obj): void {\n\t\ttry {\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic traerListado(): void {\n\n\t}\n\n\tpublic regresarAction(): string {\n\t\ttry {\n\t\t\tlet url = window.location.href\n\t\t\tif (url.endsWith(\"listadoHerramientas\")) {\n\t\t\t\tthis.setVistaVisualizar.emit(null);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (url.endsWith(\"periodoEvaluaciones\")) {\n\t\t\t\tthis.setVistaVisualizar.emit(null);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (\"detallePuestoOtra\" == (this.navegar)) {\n\t\t\t\t// navegar(\"regresarHerramientas\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// navegar(\"regresarEvaluacion\");\n\t\t\t}\n\n\t\t\tif (\"detallePuestoOtra\" == (this.navegar)) {\n\t\t\t\tthis.setRegresarAction.emit({ filtroBean: this.filtroBean, tipoPresenta: this.ParametrosEvaluacionCons.TIPOPRESENTA_PERIODO, navegacion: 'detallePuestoOtra', puestoTrabajoDTO: this.puestoTrabajoDTO });\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.setRegresarAction.emit({ filtroBean: this.filtroBean, tipoPresenta: this.ParametrosEvaluacionCons.TIPOPRESENTA_PERIODO, navegacion: 'detalleEvaluacion', puestoTrabajoDTO: this.puestoTrabajoDTO });\n\t\t\t}\n\n\t\t\t// DetalleOtroPuestoTrabajoBean detalleOtroPuestoTrabajoBean = getBean(DetalleOtroPuestoTrabajoBean.class);\n\t\t\t// detalleOtroPuestoTrabajoBean.setPuestoEncabezadoDTO(puestoTrabajoDTO);\n\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tterminar(evento) {\n\t\tconsole.log(evento);\n\t\tthis.setLlaveEvaluacionHoja(evento.llave);\n\t\tthis.cargarDetalleHerramienta();\n\t\tthis.traerListado();\n\t\tthis.setFiltroBean(evento.filtroBean);\n\t}\n\n\t/*-----------------------------------\n\t * Get's y Set's \n\t *-----------------------------------\n\t */\n\n\tpublic isRenderEliminarHerramienta(): boolean {\n\t\tif (this.paginador != null && this.paginador.length > 0) {\n\t\t\tthis.renderEliminarHerramienta = false;\n\t\t} else {\n\t\t\tthis.renderEliminarHerramienta = true;\n\t\t}\n\n\t\treturn this.renderEliminarHerramienta;\n\t}\n\n\n\tpublic getNombreCompletoEvaluado(): string {\n\t\tlet nombre = Constantes.ESPACIO_NULO;\n\t\tif (this.detalleHerramienta.nombreevaluado != null || !this.utilsService.isBlank(this.detalleHerramienta.nombreevaluado)) {\n\t\t\tnombre = this.detalleHerramienta.nombreevaluado;\n\t\t}\n\t\tif (this.detalleHerramienta.primerapellidoevaluado != null || !this.utilsService.isBlank(this.detalleHerramienta.primerapellidoevaluado)) {\n\t\t\tnombre = nombre + Constantes.ESPACIO_BLANCO + this.detalleHerramienta.primerapellidoevaluado;\n\t\t}\n\t\tif (this.detalleHerramienta.segundoapellidoevaluado != null || !this.utilsService.isBlank(this.detalleHerramienta.segundoapellidoevaluado)) {\n\t\t\tnombre = nombre + Constantes.ESPACIO_BLANCO + this.detalleHerramienta.segundoapellidoevaluado;\n\t\t}\n\t\treturn this.utilsService.capitalizeFully(nombre);\n\t}\n\n\tpublic getItems(): void {\n\t\ttry {\n\t\t\tthis.menu = []\n\t\t\tthis.menu = [{label: this.translateService.instant('link_nuevo'), visible: this.detalleHerramienta.estado != 'C' && this.verificarControl('pereva:nuevoeval'), command: (event) => {this.verNuevoEvaluador()}},\n\t\t\t{ label: this.translateService.instant('programar'), visible: this.detalleHerramienta.estado != 'C' && this.verificarControl('pereva:programarmasivo'), command: (event) => { this.programarMasivo() } },\n\t\t\t{ label: this.translateService.instant('link_eliminar'), visible: this.isRenderEliminarHerramienta() && this.verificarControl('pereva:nuevoeval'), command: (event) => { this.eliminarEvaluador() } },\n\t\t\t{ label: this.translateService.instant('link_notificar'), visible: this.detalleHerramienta.estado != 'C' && this.verificarControl('pereva:nuevoeval'), command: (event) => { this.enviarEmail() } },\n\t\t\t]\n\t\t\tconsole.log('isRenderEliminarHerramienta', this.isRenderEliminarHerramienta());\n\t\t} catch (error) {\n\t\t\tconsole.log('error',error);\n\t\t}\n\t}\n\n\tpublic setFiltroBean(filtroBean) {\n\t\tthis.filtroBean = filtroBean\n\t}\n\n\tpublic setLlaveEvaluacionHoja(llaveEvaluacionHoja) {\n\t\tthis.llaveEvaluacionHoja = llaveEvaluacionHoja\n\t}\n\n\tpublic setPeriodo(periodo) {\n\t\tthis.periodo = periodo;\n\t}\n\n\tpublic setNavegar(navegar) {\n\t\tthis.navegar = navegar;\n\t}\n\n\tpublic setPuestoTrabajoDTO(puestoTrabajoDTO) {\n\t\tthis.puestoTrabajoDTO = puestoTrabajoDTO\n\t}\n\n\tpublic setLoading(loading: boolean) {\n\t\tthis.loading = loading\n\t}\n\n\tpublic setNavegacion(event) {\n\t\tthis.vistaVisualizar = null;\n\t}\n\n\tpublic verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t}\n\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n@if(!loading){\n    <p-progressBar mode=\"indeterminate\"\n    [style]=\"{ height: '6px' }\"></p-progressBar>\n}\n<div id=\"detalleHeramienta\" *ngIf=\"loading\">\n    <!-- <app-cabecera-hoja-vida #cabeceraHojaVida [hojaVida]=\"hojaVida\"></app-cabecera-hoja-vida> -->\n    <div *ngIf=\"vistaVisualizar == null\">\n        <div class=\"flex justify-content-between align-item-center\">\n            <h1>{{'listado' | translate}} {{'herramientas' | translate}}</h1>\n            <button pButton label=\"{{'link_regresar'|translate}}\" class=\"p-button-text font-semibold\" type=\"button\"\n                icon=\"pi pi-chevron-left\" (click)=\"regresarAction()\"></button>\n        </div>\n\n        <div class=\"mb-2\" *ngIf=\"vistaVisualizar == null\">\n            <p-menubar class=\"menu-accion-sara mb-2\" [model]=\"items\" />\n        </div>\n        <app-detalle-herramientas-encabezado [detalleHerramienta]=\"detalleHerramienta\"></app-detalle-herramientas-encabezado>\n        <p-tabView>\n            <p-tabPanel header=\"{{'evaluador' | translate}}es\">\n                <div class=\"mb-2\">\n                    <p-breadcrumb class=\"max-w-full mb-3\" [model]=\"this.fases\"></p-breadcrumb>\n                </div>\n                <div class=\"flex justify-content-end align-item-center mb-2\">\n                    <p-splitButton label=\"Acciones Evaluadores\" icon=\"glyphicons glyphicons-list\"\n                    [model]=\"menu\"></p-splitButton>\n                </div>\n                \n                <p-table [value]=\"paginador\" styleClass=\"p-datatable-striped\"\n                [rows]=\"paginator.rows\" [lazy]=\"true\" scrollDirection=\"both\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\" [tableStyle]=\"{ 'min-width': '50rem' }\"\n                [paginator]=\"paginator.totalRecords > paginator.rows\"\n                [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n                scrollDirection=\"horizontal\" (onRowSelect)=\"verEvaluador($event)\"\n                selectionMode=\"single\" responsiveLayout=\"scroll\"  (onLazyLoad)=\"load($event)\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\n                <ng-template pTemplate=\"header\">\n                        <tr>\n                            <th style=\"width:20%;\" alignFrozen=\"left\" pFrozenColumn><span class=\"ml-5\">{{'evaluador' | translate}}</span></th>\n                            <th style=\"width:20%;\">{{'fase' | translate}}</th>\n                            <th style=\"width:20%;\">{{'aplica' | translate}}</th>\n                            <th style=\"width:20%;\">{{'estado' | translate}}</th>\n                            <th style=\"width:20%;\">{{'tipoevaluador' | translate}}</th>\n                            <th style=\"width:20%;\">{{'peso' | translate}}</th>\n                            <th style=\"width:20%;\">{{'periodo' | translate}}</th>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-beane>\n                        <tr>\n                            <td style=\"width:20%;\" [pSelectableRow]=\"beane\" pFrozenColumn>\n                                <p-checkbox class=\"mr=2 ml-2\" [(ngModel)]=\"beane.check\" [binary]=\"true\" inputId=\"binary\"\n                                    *ngIf=\"beane.estado != 'C'\">\n                                </p-checkbox>\n                                {{beane.nombreCompletoResponsable}}\n                            </td>\n                            <td style=\"width:20%;\" [pSelectableRow]=\"beane\">\n                                {{beane.nombreFase}}\n                            </td>\n                            <td style=\"width:20%;\" [pSelectableRow]=\"beane\">\n                                {{beane.fechaAplicado | date:'yyyy/MM/dd'}}\n                            </td>\n                            <td style=\"width:20%;\" [pSelectableRow]=\"beane\">\n                                {{beane.nombreEstado}}\n                            </td>\n                            <td style=\"width:20%;\" [pSelectableRow]=\"beane\">\n                                {{beane.tipoNombreEvaluador}}\n                            </td>\n                            <td style=\"width:20%;\" [pSelectableRow]=\"beane\">\n                                {{beane.peso}}\n                            </td>\n                            <td style=\"width:20%;\" [pSelectableRow]=\"beane\">\n                                {{beane.periodo}}\n                            </td>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                </p-table>\n            </p-tabPanel>\n            <p-tabPanel header=\"{{'dimension' | translate}}\">\n\n                <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginadorDimension\"\n                    [rows]=\"paginatorDimension.rows\" [totalRecords]=\"paginatorDimension.totalRecords\"\n                    [paginator]=\"paginatorDimension.totalRecords > paginatorDimension.rows\"\n                    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\"\n                    [scrollable]=\"true\" [lazy]=\"true\" (onLazyLoad)=\"loadDimension($event)\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                    (onRowSelect)=\"verDimension($event)\">\n                    <ng-template pTemplate=\"header\">\n                        <tr>\n                            <th class=\"w-6rem\">{{'dimension' | translate}}</th>\n                            <th class=\"w-6rem\">{{'obtenido' | translate}}</th>\n                            <th class=\"w-6rem\">{{'calificacion' | translate}}</th>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-beane>\n                        <tr [pSelectableRow]=\"beane\">\n                            <td class=\"w-6rem\">\n                                {{beane.descripcionTipoCalificacion}}\n                            </td>\n                            <td class=\"w-6rem\">\n                                {{beane.puntaje}}\n                            </td>\n                            <td class=\"w-6rem\">\n                                {{beane.valorCalifica}}\n                            </td>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                </p-table>\n\n            </p-tabPanel>\n            <p-tabPanel header=\"{{'recomendacion' | translate}}\">\n\n                <div class=\"flex justify-content-end align-items-center mb-3\">\n                    <button pButton pRipple icon=\"pi pi-plus\" class=\"p-element p-ripple p-button-secondary\"\n                        label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevaRecomendacion()\">\n                    </button>\n\n                </div>\n\n\n                <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginadorRecomendacion\"\n                    [rows]=\"paginatorRecomendacion.rows\" [totalRecords]=\"paginatorRecomendacion.totalRecords\"\n                    [paginator]=\"paginatorRecomendacion.totalRecords > paginatorRecomendacion.rows\"\n                    [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\"\n                    [scrollable]=\"true\" [lazy]=\"true\" (onLazyLoad)=\"loadRecomendacion($event)\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                    (onRowSelect)=\"verRecomendacion($event)\">\n                    <ng-template pTemplate=\"header\">\n                        <tr>\n                            <th class=\"w-6rem\">{{'dimension' | translate}}</th>\n                            <th class=\"w-6rem\">{{'tipo' | translate}}</th>\n                            <th class=\"w-6rem\">{{'tema' | translate}}</th>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-beane>\n                        <tr [pSelectableRow]=\"beane\">\n                            <td class=\"w-6rem\">\n                                {{beane.descripcionTipoCalificacion}}\n                            </td>\n                            <td class=\"w-6rem\">\n                                {{beane.tipoRecomendacion | parametrosEvaluacionPipe:'listadefin'}}\n                            </td>\n                            <td class=\"w-6rem\">\n                                {{beane.tema}}\n                            </td>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                </p-table>\n\n            </p-tabPanel>\n        </p-tabView>\n    </div>\n    <div *ngIf=\"vistaVisualizar == 'detalleEvaluador'\">\n        <div class=\"flex justify-content-between align-item-center\">\n            <h1>{{'listado' | translate}} {{'herramientas' | translate}}</h1>\n            <button pButton label=\"{{'link_regresar'|translate}}\" class=\"p-button-text font-semibold\" type=\"button\"\n                icon=\"pi pi-chevron-left\" (click)=\"setNavegacion(null)\"></button>\n        </div>\n        <!-- <div class=\"mb-2\">\n            <p-menubar class=\"menu-accion-sara mb-2\" [model]=\"items\" />\n        </div> -->\n        <div class=\"mb-4\">\n            <app-detalle-herramientas-encabezado [detalleHerramienta]=\"detalleHerramienta\"></app-detalle-herramientas-encabezado>\n        </div>\n\n        <app-detalle-evaluador #detalleEvaluador></app-detalle-evaluador>\n    </div>\n    <div *ngIf=\"vistaVisualizar == 'evaluacion'\">\n        <app-fase-gestion-hoja-cont #faseGestionHojaCont\n            (regresar)=\"setNavegacion($event)\"></app-fase-gestion-hoja-cont>\n    </div>\n    <app-popup-detalle-evaluacion #popupDetalleEvaluacion (setTerminar)=\"terminar($event)\"></app-popup-detalle-evaluacion>\n    <app-popup-recomendaciones-gestion #popupRecomendacionGestion></app-popup-recomendaciones-gestion>\n    <app-popup-programar-masivo #popupProgramarMasivo></app-popup-programar-masivo>\n</div>\n","import { TableModule } from 'primeng/table';\nimport { SaraAplicacionService } from './../../../../../shared/servicios/sara-aplicacion.service';\nimport { Component, EventEmitter, Output, ViewChild } from '@angular/core';\nimport { FaseGestionModel } from '../../../models/FaseGestionModel';\nimport { VistaPlantaOcupoModel } from '../../../models/VistaPlantaOcupoModel';\nimport { EvaluacionHojaModel } from '../../../models/EvaluacionHojaModel';\nimport { FaseGestionHojaModel } from '../../../models/FaseGestionHojaModel';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { PeriodoEvaluacionPipe } from '../../../pipes/periodo-evaluacion.pipe';\nimport { AuthService, FechaUtilsService, FiltroGeneralComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { RequisitoConsPipe } from './../../../../../shared/pipes/RequisitoCons.pipe';\nimport { PlanillaGestionModel } from '../../../models/PlanillaGestionModel';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { EmpleadoModel } from '../../../../../modules/compensacion/models/EmpleadoModel';\nimport { PeriodoEvaluacionService } from '../../../services/periodo-evaluacion.service';\nimport { RequisitoModel } from '../../../models/RequisitoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { PanelModule } from 'primeng/panel';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { NgIf } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputHelperCondicionDerechoComponent } from '../../../../../shared/componentes/input-helper-condicion-derecho/input-helper-condicion-derecho.component';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@Component({\n\tselector: 'app-programar-periodo-evaluacion',\n\tstandalone: true,\n\timports: [CheckboxModule,TableModule,FiltroGeneralComponent, FieldsetModule, InputHelperCondicionDerechoComponent, CalendarModule, Ripple, TranslateModule, Ripple, ButtonModule, ButtonDirective, PanelModule, DropdownModule, NgIf, InputTextModule, TranslateModule, FormsModule],\n\ttemplateUrl: './programar-periodo-evaluacion.component.html',\n\tstyleUrl: './programar-periodo-evaluacion.component.scss'\n})\nexport class ProgramarPeriodoEvaluacionComponent {\n\n\tpublic esListaTipoEvaluador: boolean;\n\tpublic cerrado: boolean;\n\tpublic todo: boolean = true;\n\tpublic horaInicial: any;\n\tpublic rangoFecha: any;\n\tpublic listaTipoEvaluador: any[] = [];\n\tpublic listaRol: any[] = [];\n\tpublic listaTitular: any[] = [];\n\tpublic horas: any[] = [];\n\tpublic minutos: any[] = [];\n\tpublic jornadas: any[] = [];\n\tpublic listaSubalterno: any[] = [];\n\tpublic listaNotificar: any[] = [];\n\n\n\tpublic etapa: string;\n\tpublic evaluador: string;\n\tpublic llavePeriodo: string = '';\n\tpublic tipoPlantilla: string;\n\tpublic tipoRol: string;\n\tpublic filtro: VistaPlantaOcupoModel = new VistaPlantaOcupoModel();\n\tpublic evaluacionHojaDTO: EvaluacionHojaModel;\n\tpublic totalFiltro: number;\n\tpublic listaResultado: FaseGestionHojaModel[] = [];\n\tpublic listaPaginador: FaseGestionHojaModel[] = [];\n\tpublic multiple: boolean;\n\tpublic bloqueaTipoActor: boolean;\n\tpublic listaFaseGestionDTO: FaseGestionModel[] = [];\n\tpublic notificarCorreo: string;\n\tprivate cedulaEvaluador: number;\n\tpublic nombreEvaluador: string;\n\tpublic listaTipoPuestoS: any[] = [];\n\tpublic nombreTabla: string = 'GESTIONHOJA'\n\tpublic tipoRegistro: string = 'NOAPLICA';\n\tpublic filtroEmpresa: boolean;\n\tpublic filters: any[] = [];\n\tpublic listaformato: any[] = [];\n\tpublic listaTipoCambio: any[] = [];\n\tpublic boleanogeneral: boolean;\n\t@Output() regresarVista: EventEmitter<any> = new EventEmitter<any>();\n\t@ViewChild('condicionDerecho') condicionDerecho: InputHelperCondicionDerechoComponent;\n\t@ViewChild('filtroGeneral') filtroGeneral: InputHelperCondicionDerechoComponent;\n\n\n\tconstructor(private generalPipe: GeneralPipe, private saraAplicacionService: SaraAplicacionService, private authService: AuthService, private notificacionBusService: ToastService, private selectListEvaluaciones: SelectListEvaluacionesService, private periodoEvaluacionCons: PeriodoEvaluacionPipe, private fechaUtils: FechaUtilsService,\n\t\tprivate generalSvc: GeneralService, private parametrosEvaluacionCons: ParametrosEvaluacionPipe, private periodoEvaluacionSvc: PeriodoEvaluacionService, private utilsService: UtilsService, private requisitoCons: RequisitoConsPipe) { }\n\n\tpublic async inicializar(faseGestionDTO: FaseGestionModel) {\n\t\tthis.totalFiltro = 0;\n\t\tthis.horaInicial;\n\t\tthis.listaTipoEvaluador = await this.selectListEvaluaciones.getListaTipoEvaluadorFiltro(this.filtro.gestionPeriodo, \"E\");\n\t\tthis.listaTipoPuestoS = (await this.selectListEvaluaciones.getListaTipoPuestoS());\n\t\tconsole.log('this.listaTipoPuestoS', this.listaTipoPuestoS);\n\n\t\tthis.listaSubalterno = (this.periodoEvaluacionCons.TIPOSUBALTERNO).map((data) => ({ value: data.codigo, label: data.nombre }));\n\t\tthis.listaNotificar = (this.periodoEvaluacionCons.NOTIFICARCORREO).map((data) => ({ value: data.codigo, label: data.nombre }));\n\t\tthis.listaRol = (this.periodoEvaluacionCons.TIPOROL).map((data) => ({ value: data.codigo, label: data.nombre }));;\n\t\tthis.listaTitular = (this.periodoEvaluacionCons.TIPOEVALUADO).map((data) => ({ value: data.codigo, label: data.nombre }));;\n\t\tthis.horas = [];\n\t\tthis.minutos = [];\n\t\tthis.jornadas = [];\n\t\t//this.horas = (this.fechaUtils.HORAS12);\n\t\t//this.minutos = (FechaUtils.MINUTOS_SEGUNDOS);\n\t\t//this.jornadas = (FechaUtils.AM_PM);\n\n\t\tif (this.listaTipoEvaluador.length == 2) {\n\t\t\tthis.esListaTipoEvaluador = false;\n\t\t\tthis.setEvaluador(this.listaTipoEvaluador[1].value);\n\t\t} else {\n\t\t\tthis.esListaTipoEvaluador = true;\n\t\t}\n\t\tthis.filtro.titular = (this.periodoEvaluacionCons.QUIENOCUPA);\n\t\tthis.tipoRol = this.periodoEvaluacionCons.EVALUADOR;\n\t\tthis.etapa = \"filtro\";\n\t\tthis.bloqueaTipoActor = false;\n\t\tthis.buscarFases(faseGestionDTO);\n\t\t//getBean(CondicionDerechoBean.class).soloCaptura(this.requisitoCons.TABLA_GESTIONHOJA,\"form_programarperiodoevaluacion\");\n\n\t}\n\n\tprivate async buscarFases(faseGestion: FaseGestionModel) {\n\t\ttry {\n\t\t\t//FaseGestionDTO \n\t\t\tlet faseGestionDTO = new FaseGestionModel();\n\t\t\tif (faseGestion.llave != null) {\n\t\t\t\tfaseGestionDTO = faseGestion;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfaseGestionDTO.gestionPeriodo = (this.filtro.gestionPeriodo);\n\t\t\t\tfaseGestionDTO.llaveactor = (faseGestion.llaveactor);\n\t\t\t\tfaseGestionDTO.actores = (faseGestion.actores);\n\t\t\t\tthis.listaFaseGestionDTO = await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO', null, false, faseGestionDTO)).toPromise();\n\t\t\t\tif (this.listaFaseGestionDTO.length == 1) {\n\t\t\t\t\tfaseGestionDTO = this.listaFaseGestionDTO[0];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (faseGestionDTO.llave != null) {\n\t\t\t\tthis.multiple = false;\n\t\t\t\tthis.filtro.fase = (faseGestionDTO.llave);\n\t\t\t\tthis.filtro.nombreFase = (faseGestionDTO.descripcion);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.multiple = true;\n\t\t\t}\n\t\t\tif (faseGestion.llaveactor == null) {\n\t\t\t\tfaseGestion.actores = (null);\n\t\t\t\tfaseGestion.llave = (null);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t//PlanillaGestionDTO \n\t\t\t\tlet comodin = new PlanillaGestionModel();\n\t\t\t\tcomodin.llavePlanillaGestion = (faseGestion.llaveactor);\n\t\t\t\tcomodin = await this.generalSvc.queryForObject(new GeneralModel('PlanillaGestionDTO', null, false, comodin)).toPromise();\n\t\t\t\tif (comodin == null || \"O\" == (comodin.tipoEvaluador)) {\n\t\t\t\t\tfaseGestion.actores = (null);\n\t\t\t\t\tfaseGestion.llave = (null);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.defineAccionActor(faseGestion.actores);\n\t\t\tthis.evaluador = faseGestion.llaveactor;\n\t\t}\n\t\tcatch (e) {\n\t\t}\n\t}\n\n\tprivate defineAccionActor(accionActor: string) {\n\t\tthis.bloqueaTipoActor = false;\n\t\tif (accionActor == null) {\n\t\t\tthis.tipoRol = null;\n\t\t\treturn;\n\t\t}\n\t\tif (accionActor == (this.parametrosEvaluacionCons.AUTOEVALUACION_ACTOR_AVALA)) {\n\t\t\tthis.tipoRol = this.periodoEvaluacionCons.AUTORIZADOR;\n\t\t\tthis.bloqueaTipoActor = true;\n\t\t}\n\t\tif (accionActor == (this.parametrosEvaluacionCons.ACTOR)) {\n\t\t\tthis.tipoRol = this.periodoEvaluacionCons.EVALUADOR;\n\t\t\tthis.bloqueaTipoActor = true;\n\t\t}\n\t\tif (accionActor == (this.parametrosEvaluacionCons.EVALUA_ACTOR_EVALUADO_AVALA)) {\n\t\t\tthis.tipoRol = this.periodoEvaluacionCons.AUTORIZAEVALUADO;\n\t\t\tthis.bloqueaTipoActor = true;\n\t\t}\n\t}\n\n\tpublic isUnidad(): boolean {\n\t\treturn this.filtro.empresa != null;\n\t}\n\n\t// public String verPopupEvaluador(){\n\t// \tgetBean(PopupEmpleado.class).buscar(\"#{programarPeriodoEvaluacionBean.responsable}\");\n\t// \treturn null;\n\t// }\n\n\tpublic setResponsable(empleadoDTO: EmpleadoModel) {\n\t\tthis.cedulaEvaluador = empleadoDTO.cedula;\n\t\tthis.nombreEvaluador = empleadoDTO.getNombreCompleto();\n\t}\n\n\tpublic limpiar() {\n\t\tthis.cedulaEvaluador = null;\n\t\tthis.nombreEvaluador = null;\n\t\treturn null;\n\t}\n\n\tpublic async traerEvaluados() {\n\t\ttry {\n\t\t\tthis.cedulaEvaluador = null;\n\t\t\tthis.nombreEvaluador = null;\n\t\t\tthis.listaPaginador = [];\n\t\t\tif (this.filtro.fechaLimite != null) {\n\t\t\t\tthis.filtro.fechaLimite  //(this.fechaUtils.horaminuto12Fecha(this.filtro.fechaLimite, this.horaInicial));\n\t\t\t}\n\t\t\tif (!this.validar()) {\n\t\t\t\tif (this.filtroEmpresa) {\n\t\t\t\t\tthis.notificacionBusService.showError(\"Filtro de colaboradores debe selecionar una empresa\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.notificacionBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS)\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet listaCondicion: RequisitoModel[] = []//getBean(CondicionDerechoBean.class).getListaSinAlmacenar();\n\t\t\tthis.listaPaginador = await this.periodoEvaluacionSvc.traerFases(this.filtro, this.llavePeriodo, this.evaluador, this.tipoRol, this.tipoPlantilla, this.filtro.fechaInicial, listaCondicion, this.multiple).toPromise();\n\t\t\tthis.listaResultado = this.listaPaginador;\n\t\t\tif (this.listaPaginador.length == 0) {\n\t\t\t\tthis.notificacionBusService.showInfo(\"No se encontraron registros relacionados\");\n\t\t\t\tthis.totalFiltro = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.totalFiltro = this.listaPaginador.length;\n\t\t\t\tthis.notificarCorreo = null;\n\t\t\t\tthis.etapa = \"aplicar\";\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\n\t\t}\n\t}\n\n\tprivate filtrarEvaluador() {\n\t\ttry {\n\t\t\tif (this.cedulaEvaluador == null) {\n\t\t\t\tthis.listaPaginador = this.listaResultado;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t//List<FaseGestionHojaDTO>\n\t\t\tlet lista = this.listaResultado;\n\t\t\tthis.listaPaginador = [];\n\t\t\tfor (let unaPersona of lista) {\n\t\t\t\tif (unaPersona.cedula != (this.cedulaEvaluador) && unaPersona.cedulaResponsable != (this.cedulaEvaluador)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis.listaPaginador.push(unaPersona);\n\t\t\t}\n\n\t\t} catch (e) {\n\n\t\t}\n\t\treturn;\n\t}\n\n\tprivate validar() {\n\t\tlet v = true;\n\t\tthis.filtroEmpresa = false;\n\t\tif (this.multiple) {\n\t\t\tlet selecciono: boolean = false;\n\t\t\tfor (let unaFase of this.listaFaseGestionDTO) {\n\t\t\t\tif (unaFase.check) {\n\t\t\t\t\tselecciono = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!selecciono) {\n\t\t\t\tv = v && this.utilsService.validarCampoObligatorio(this.filtro.fase);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tv = v && this.utilsService.validarCampoObligatorio(this.filtro.fase);\n\n\t\t}\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.filtro.titular);\n\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.evaluador);\n\t\tv = v && this.utilsService.validarCampoObligatorio(this.tipoRol);\n\n\t\tlet selecciono = false;\n\t\t//let lista = getBean(CondicionDerechoBean.class).getListaSinAlmacenar();\n\t\tlet lista = this.condicionDerecho.ventana;\n\t\tfor (let requisitoDTO of lista) {\n\t\t\tif (this.requisitoCons.UNIDAD_MULTI == (requisitoDTO.campo) || this.requisitoCons.CARGO_MULTI == (requisitoDTO.campo) || this.requisitoCons.CARGO == (requisitoDTO.campo) || this.requisitoCons.UNIDAD == (requisitoDTO.campo) || this.requisitoCons.UNIDAD_RELACION == (requisitoDTO.campo) || this.requisitoCons.EMPRESA == (requisitoDTO.campo)) {\n\t\t\t\tselecciono = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!selecciono) {\n\t\t\tthis.filtroEmpresa = true\n\t\t\tv = false;\n\t\t}\n\n\n\n\t\treturn v;\n\t}\n\n\tpublic async aplicar() {\n\t\ttry {\n\t\t\tlet validar = this.utilsService.validarCampoObligatorio(this.notificarCorreo);\n\t\t\tif (!validar) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlet lista: any[] = await this.periodoEvaluacionSvc.programarMasivo(this.filtro.gestionPeriodo, this.llavePeriodo, this.tipoPlantilla, this.evaluador, this.listaPaginador, this.authService.getTokenKey('usuario'), this.filtro, (await this.saraAplicacionService.getEmpresa()).organizacion, this.listaFaseGestionDTO, this.multiple, 'S' == (this.notificarCorreo)).toPromise();\n\t\t\tthis.todo = false;\n\t\t\tthis.etapa = \"final\";\n\n\t\t\tif (lista == null || lista.length == 0) {\n\t\t\t\tthis.notificacionBusService.showInfo(\"Las evaluaciones fueron programadas correctamente\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\t//getBean(PopupMensajeProcesoBean.class).mostrarReporte(lista, \"Evaluaciones Programas correctamente\", \"No fue posible enviar la notificaci\" + Constantes.O_TIDLE_MIN + \"n a los siguientes colaboradores: \", null);\n\t\t\t}\n\t\t\tthis.traerEvaluados();\n\t\t} catch (e) {\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic seleccionarTodo() {\n\t\tif (this.listaPaginador == null) {\n\t\t\treturn null;\n\t\t}\n\t\tthis.todo = !this.todo;\n\t\tfor (let uno of this.listaPaginador) {\n\t\t\tuno.check = (!this.todo);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic regresar() {\n\t\tif (!this.isEtapaFiltro()) {\n\t\t\tthis.etapa = \"filtro\";\n\t\t\tthis.totalFiltro = 0;\n\t\t\treturn null;\n\t\t}\n\t\tthis.totalFiltro = 0;\n\t\tthis.regresarVista.emit({ filtro: this.evaluacionHojaDTO, tipoPresenta: this.parametrosEvaluacionCons.TIPOPRESENTA_PERIODO })\n\t\t// ListadoHerramientasBean listadoHerramientasBean = (ListadoHerramientasBean) FacesUtils.getBean(\"listadoHerramientasBean\");\n\t\t// listadoHerramientasBean.setFiltroBean(evaluacionHojaDTO);\n\t\t// listadoHerramientasBean.setTipoPresenta(ParametrosEvaluacionCons.TIPOPRESENTA_PERIODO);\n\t\t// listadoHerramientasBean.cargarMenuLateral();\n\t\t// listadoHerramientasBean.setVistaVisualizar(null);\n\t\treturn null;\n\t}\n\n\n\tpublic isAutorizador(): boolean {\n\t\treturn \"A\" == (this.tipoRol);\n\t}\n\n\tpublic isEtapaFiltro() {\n\t\treturn \"filtro\" == (this.etapa);\n\t}\n\n\tpublic setEvaluador(evaluador: string) {\n\t\tthis.evaluador = evaluador;\n\t}\n\tpublic isMultiple(): boolean {\n\t\treturn this.multiple;\n\t}\n\tpublic isEtapaAplicar(): boolean {\n\t\treturn 'aplicar' == this.etapa;\n\t}\n\n\n\n}\n","<div id=\"form_programarperiodoevaluacion\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mt-3 mb-3\">\n        <h1>{{'periodo' | translate}} {{'evaluacion' | translate}}</h1>\n        <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold\"></button>\n    </div>\n    <p-panel header=\"Filtro\" [toggleable]=\"true\">\n            @if(isMultiple()){\n                <div>\n                <p-table #tablaGeneral [value]=\"listaFaseGestionDTO\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\"\n                [rows]=\"10\" [paginator]=\"listaFaseGestionDTO.length > 10\"\n                [totalRecords]=\" listaFaseGestionDTO.length\" [lazy]=\"false\" [showCurrentPageReport]=\"true\"\n                scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\n    \n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th style=\"width: 0%;\">\n                        </th>\n                        <th style=\"width: 5%;\">\n                            {{'identificacion' | translate}}\n                        </th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-unaFase>\n                    <tr [pSelectableRow]=\"unaFase\">\n                        <td style=\"width: 0%;\">\n                            <p-checkbox class=\"mr-2\" type=\"checkbox\" [binary]=\"true\" [(ngModel)]=\"unaFase.check\">\n                            </p-checkbox>\n                        </td>\n                        <td style=\"width: 0%;\">\n                            {{unaFase.descripcion}}\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n                    <tr class=\"p-3 font-medium emptymessage\">\n                        <td colspan=\"8\">\n                            {{'mensajetablavacia' | translate}}\n                        </td>\n                    </tr>\n                </ng-template>\n            </p-table>\n            </div>\n            }\n            \n\n        <div class=\"p-fluid grid ancho\">\n            <!-- FASE -->\n            @if(!isMultiple()){\n            <div class=\"col-12 md:col-12 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"fase\" [(ngModel)]=\"filtro.nombreFase\" [disabled]=\"true\">\n                    <label for=\"fase\">{{'fase' | translate}} *</label>\n\n                </span>\n            </div>\n            }\n            <!-- TIPO ACTORES -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\" style=\"min-width:100%; max-width:18rem\">\n                    <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"this.listaRol\" id=\"id_tipoactores\"\n                        optionLabel=\"label\" [(ngModel)]=\"tipoRol\" [disabled]=\"(!isEtapaFiltro()) || bloqueaTipoActor\"\n                        [autoDisplayFirst]=\"false\" optionValue=\"value\">\n                    </p-dropdown>\n                    <label for=\"tipoactores\">{{'tipoactores' | translate}} *</label>\n                </span>\n            </div>\n            <!-- ACTORES -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\" style=\"min-width:100%; max-width:18rem\">\n                    <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"this.listaTipoEvaluador\" id=\"id_actores\"\n                        optionLabel=\"label\" [(ngModel)]=\"evaluador\" [autoDisplayFirst]=\"false\" optionValue=\"value\">\n                    </p-dropdown>\n                    <label for=\"actores\">{{'actores' | translate}} *</label>\n                </span>\n            </div>\n            <!-- TIPO SUBALTERNOS -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\" style=\"min-width:100%; max-width:18rem\">\n                    <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"this.listaSubalterno\"\n                        id=\"id_tiposubalternos\" optionLabel=\"label\" [(ngModel)]=\"filtro.sinSubalternos\"\n                        [autoDisplayFirst]=\"false\" optionValue=\"value\">\n                    </p-dropdown>\n                    <label for=\"tiposubalternos\">{{'tiposubalternos' | translate}}</label>\n                </span>\n            </div>\n            <!-- EVALUADO -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\" style=\"min-width:100%; max-width:18rem\">\n\n                    <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"this.listaTitular\" id=\"id_evaluado\"\n                        optionLabel=\"label\" [(ngModel)]=\"filtro.titular\" [autoDisplayFirst]=\"false\" optionValue=\"value\">\n                    </p-dropdown>\n                    <label for=\"evaluado\">{{'evaluado' | translate}}</label>\n                </span>\n            </div>\n            <!-- CLASE PUESTO -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\" style=\"min-width:100%; max-width:18rem\">\n                    <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"this.listaTipoPuestoS\" id=\"id_clasepuesto\"\n                        optionLabel=\"label\" [(ngModel)]=\"filtro.clasePuesto\" [autoDisplayFirst]=\"false\"\n                        optionValue=\"value\">\n                    </p-dropdown>\n                    <label for=\"clasepuesto\">{{'clasepuesto' | translate}}</label>\n                </span>\n            </div>\n            <!-- PERIODO -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"rangoFecha\" selectionMode=\"range\" [readonlyInput]=\"true\" />\n                    <label for=\"periodo\">{{'periodo' | translate}}</label>\n                </span>\n            </div>\n            <!-- FECHA LIMITE -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-calendar inputId=\"calendar-12h\" [(ngModel)]=\"horaInicial\" [showTime]=\"true\" [hourFormat]=\"'12'\" />\n                    <label for=\"fechalimite\">{{'fechalimite' | translate}}</label>\n                </span>\n            </div>\n            <!-- TOTAL FILTRO -->\n            <div class=\"col-12 md:col-3 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"totalfiltro\" [(ngModel)]=\"totalFiltro\" [disabled]=\"true\">\n                    <label for=\"totalfiltro\">{{'totalfiltro' | translate}}</label>\n\n                </span>\n            </div>\n        </div>\n        @if(!isEtapaAplicar()){\n        <p-fieldset class=\"mt-0\">\n            <ng-template pTemplate=\"header\">\n                <div>\n                    <span class=\"glyphicons glyphicons-notes\" style=\"color:var(--color-400)\"></span>\n                    <span>{{'condicionderecho' | translate}}</span>\n                </div>\n            </ng-template>\n            <app-input-helper-condicion-derecho #condicionDerecho [nombreTabla]=\"nombreTabla\"\n                [tipoRegistro]=\"tipoRegistro\">\n            </app-input-helper-condicion-derecho>\n        </p-fieldset>\n        }\n        <div class=\"flex justify-content-end mt-2\">\n            <!--FILTRAR-->\n            <button pButton pRipple class=\"p-button-outlined\" *ngIf=\"isEtapaFiltro()\"\n                icon=\"glyphicons glyphicons-filter\" [label]=\"('filtrar' | translate)\" (click)=\"traerEvaluados()\">\n            </button>\n        </div>\n\n    </p-panel>\n\n    @if(!isEtapaFiltro()){\n        <div>\n            <app-filtro-general [filtros]=\"filters\">\n\n                \n            </app-filtro-general>\n\n            <p-table #tablaGeneral [value]=\"listaPaginador\" styleClass=\"p-datatable-striped\" [scrollable]=\"true\"\n                [rows]=\"10\" [paginator]=\"listaPaginador.length > 10\"\n                [totalRecords]=\"listaPaginador.length\" [lazy]=\"false\" [showCurrentPageReport]=\"true\"\n                scrollDirection=\"both\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\n\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th style=\"width: 0%;\">\n                            <p-checkbox class=\"mr-2\" type=\"checkbox\" [(ngModel)]=\"boleanogeneral\" [binary]=\"true\"\n                                (onChange)=\"seleccionarTodo()\"></p-checkbox>\n                        </th>\n                        <th style=\"width: 5%;\">\n                            {{'identificacion' | translate}}\n                        </th>\n                        <th style=\"width: 10%;\">{{'contrato' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'evaluado' | translate}}</th>\n                        @if(!isAutorizador()){\n                            <th style=\"width: 10%;\">{{'evaluador' | translate}}</th>\n                        }@else{\n                            <th style=\"width: 10%;\">{{'autorizador' | translate}}</th>\n                        }\n                        <th style=\"width: 10%;\">{{'cargo' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'nombrecargo' | translate}}</th>\n                        <th style=\"width: 15%;\">{{'nombreunidad' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-planta>\n                    <tr [pSelectableRow]=\"planta\">\n                        <td style=\"width: 0%;\">\n                            @if(!planta.programada){\n                                <p-checkbox class=\"mr-2\" type=\"checkbox\" \n                                [binary]=\"true\" [(ngModel)]=\"planta.check\">\n                            </p-checkbox>\n                            }\n                        </td>\n                        <td style=\"width: 5%;\">\n                            {{planta.documento}}\n                        </td>\n                        <td style=\"width: 10%;\">\n                            {{planta.nombreCompletoEvaluado}}\n                        </td>\n                        @if(!isAutorizador()){\n                            <td style=\"width: 10%;\">\n                                {{planta.nombreCompletoResponsable}}\n                            </td>\n                        }@else{\n                            <td style=\"width: 10%;\">\n                                {{planta.nombreCompletoResponsable}}\n                            </td>\n                        }\n                        <td style=\"width: 10%;\">\n                            {{planta.cargoPK}}\n                        </td>\n                        <td style=\"width: 15%;\">\n                            {{planta.nombreCargo}}\n                        </td>\n                        <td style=\"width: 15%;\">\n                            {{planta.nombreUnidad}}\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n                    <tr class=\"p-3 font-medium emptymessage\">\n                        <td colspan=\"8\">\n                            {{'mensajetablavacia' | translate}}\n                        </td>\n                    </tr>\n                </ng-template>\n            </p-table>\n        </div>\n    }\n     \n\n\n\n</div>","import { NgIf } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FiltroGeneralComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\n\n@Component({\n  selector: 'app-popup-tipo-actores',\n  standalone: true,\n  imports: [InputTextModule,\n    ButtonDirective,\n    Ripple,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    FiltroGeneralComponent,\n    NgIf],\n  templateUrl: './popup-tipo-actores.component.html',\n  styleUrl: './popup-tipo-actores.component.scss'\n})\nexport class PopupTipoActoresComponent {\n  @Input() listadoHerramientasBean \n\n}\n","<p-dialog header=\"{{'fase' | translate}}\" [(visible)]=\"listadoHerramientasBean.mostrarPopup\" appendTo=\"body\" [modal]=\"true\"\n    [contentStyle]=\"{width: '800px', 'overflow-y': 'scroll'}\">\n\n    @if(listadoHerramientasBean.verActores){\n        <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listadoHerramientasBean.listaTipoActores\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n        [scrollable]=\"true\" [rows]=\"10\" [paginator]=\"listadoHerramientasBean.listaFasesHerramienta.length > 10\"\n        [totalRecords]=\"listadoHerramientasBean.listaFasesHerramienta.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\"\n        (onRowSelect)=\"listadoHerramientasBean.seleccionarActor($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{\"actor\" | translate}}</th>\n                <th>{{\"evaluador\" | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-campo>\n            <tr [pSelectableRow]=\"campo\">\n                <td>{{campo.descripcion}}</td>\n                <td>{{campo.descripcion}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n    }@else{\n        <p-table #tablaGeneral dataKey=\"llaveTabla\" [value]=\"listadoHerramientasBean.listaFasesHerramienta\" selectionMode=\"single\" responsiveLayout=\"scroll\"\n        [scrollable]=\"true\" [rows]=\"10\" [paginator]=\"listadoHerramientasBean.listaFasesHerramienta.length > 10\"\n        [totalRecords]=\"listadoHerramientasBean.listaFasesHerramienta.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\"\n        (onRowSelect)=\"listadoHerramientasBean.seleccionarActor($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{\"fase\" | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-campo>\n            <tr [pSelectableRow]=\"campo\">\n                <td>{{campo.descripcion}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n    }\n\n   \n</p-dialog>","export class CargueProgramacionEvaluacionDTO {\n\n\tidentificacion: number;\n\ttipoEvaluador: string;\n\tidentificacionEvaluador: number;\n\tfechaaplicacion: Date;\n\tfechaInicial: Date;\n\tidentificacionAutoriza: number;\n\tfechalimite: Date;\n\tfechaFinal: Date;\n\tpeso: number;\n\tmensaje: string;\n\t\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from \"@angular/core\";\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { CargueProgramacionEvaluacionDTO } from '../models/CargueProgramacionEvaluacionModel';\nimport { GestionPeriodoModel } from '../models/GestionPeriodoModel';\nimport { PlanillaGestionModel } from '../models/PlanillaGestionModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CargarProgramacionEvaluacionService {\n\n  \n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService,private utilsService: UtilsService) {\n      this.handleError = this.handleError.bind(this);\n    }\n  \n    private handleError(error: HttpErrorResponse) {\n      if (error.status === 500) {\n        //Llamado a interceptor\n        this.errorInterceptor.showError(JSON.stringify(error.error));\n        // A client-side or network error occurred. Handle it accordingly.\n        console.error('An error occurred:', error.error);\n      } else {\n        // The backend returned an unsuccessful response code.\n        // The response body may contain clues as to what went wrong.\n        console.error(\n          `Backend returned code ${error.status}, body was: `, error.error);\n      }\n      // Return an observable with a user-facing error message.\n      return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n  \n  \n    cargarArchivo(selectedFile: File,separador: string): Observable<any> {\n      const formData = new FormData();\n      formData.append('file', selectedFile, selectedFile.name);\n      formData.append('separador', separador);\n      return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/CargarProgramacionEvaluacion/cargarArchivo`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n    evaluarDatosArchivo(listaCargeProgramacionEvaluacionDTO: CargueProgramacionEvaluacionDTO[],gestionPeriodoDTO: GestionPeriodoModel,planillaGestionDTO:PlanillaGestionModel,numeroEmpresa:number,fase:string): Observable<any[]> {\n      const formData = new FormData();\n      formData.append(\"listaCargeProgramacionEvaluacionDTO\",JSON.stringify(listaCargeProgramacionEvaluacionDTO));\n      formData.append(\"gestionPeriodoDTO\",JSON.stringify(gestionPeriodoDTO));\n      formData.append(\"planillaGestionDTO\",JSON.stringify(planillaGestionDTO));\n      formData.append(\"numeroEmpresa\",numeroEmpresa.toString());\n      formData.append(\"fase\",fase);\n      return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/talento/CargarProgramacionEvaluacion/evaluarDatosArchivo`, formData).pipe(\n        catchError(this.handleError)\n      );\n    }\n  \n}\n","import { Component } from '@angular/core';\nimport { GestionPeriodoModel } from '../../models/GestionPeriodoModel';\nimport { PlanillaGestionModel } from '../../models/PlanillaGestionModel';\nimport { CargueProgramacionEvaluacionDTO } from '../../models/CargueProgramacionEvaluacionModel';\nimport { SelectListEvaluacionesService } from '../../services/select-list-evaluaciones.service';\nimport { AuthService, TemplateTablaVaciaComponent, ToastService, UtilsService } from 'general-library-union';\nimport { SeparadorArchivoPlanoPipe } from '../../../compensacion/pipes/separadorArchivoPlano.pipe';\nimport { CargarProgramacionEvaluacionService } from '../../services/cargar-programacion-evaluacion.service';\nimport { DialogModule } from 'primeng/dialog';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { AccordionModule } from 'primeng/accordion';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\n\n@Component({\n  selector: 'app-popup-cargar-programacion-evaluacion',\n  standalone: true,\n  imports: [TemplateTablaVaciaComponent,TableModule,DialogModule,ButtonDirective, Ripple, DropdownModule, FormsModule, InputTextModule, FileUploadModule, AccordionModule, NgIf, PrimeTemplate, TableModule, TranslateModule, DatePipe],\n  templateUrl: './popup-cargar-programacion-evaluacion.component.html',\n  styleUrl: './popup-cargar-programacion-evaluacion.component.scss'\n})\nexport class PopupCargarProgramacionEvaluacionComponent {\n\n\tpublic mostrarbtnCargarDatos: boolean;\n\tpublic descarga: boolean;\n\n\tpublic separador: string;\n\n\t//private DataInputStream entrada;\n\n\tpublic cargeProgramacionEvaluacionDTO: CargueProgramacionEvaluacionDTO = new CargueProgramacionEvaluacionDTO();\n\tprivate gestionPeriodoDTO: GestionPeriodoModel = new GestionPeriodoModel();\n\tpublic planillaGestionDTO: PlanillaGestionModel = new PlanillaGestionModel();\n\n\tpublic listaCargeProgramacionEvaluacionDTO: CargueProgramacionEvaluacionDTO[] = [];\n\tpublic listaFase: any[];\n\n\tpublic fase: string;\n\tpublic fileName: string ='';\n\tpublic visible: boolean;\n\tvalidando: boolean;\n\tclickGuardar\n\n\tconstructor(private selectListEvaluaciones: SelectListEvaluacionesService,private notificationBusService: ToastService, public utilsService : UtilsService, public separadorArchivoPlanoCons: SeparadorArchivoPlanoPipe,private authService: AuthService,\n\t\tprivate cargarProgramacionEvaluacionService: CargarProgramacionEvaluacionService, private generalPipe: GeneralPipe\n\t){}\n\n  public inicializar(gestionPeriodoDTO: GestionPeriodoModel,planillaGestionDTO: PlanillaGestionModel,lista: CargueProgramacionEvaluacionDTO[]) {\n\t\tthis.gestionPeriodoDTO = (gestionPeriodoDTO);\n\t\tthis.planillaGestionDTO = (planillaGestionDTO);\n\t\tthis.listaCargeProgramacionEvaluacionDTO = (lista);\n\t\tthis.fileName ='';\n\t\tthis.mostrarPopup();\n\t\tthis.cargarListas();\n\t}\n\tmostrarPopup(){\n\t\tthis.visible = true;\n\t}\n\tocultarPopup(){\n\t\tthis.visible = false;\n\t}\n\n\tpublic async cargarListas() {\n\t\tthis.listaFase = await this.selectListEvaluaciones.getListaFaseFiltro(this.gestionPeriodoDTO.llaveGestionPeriodo);\n\t\tthis.separador = \",\";\n\n\t}\n\n\n\tpublic async cargarArchivo(event,fupload): Promise<void> {\n\ttry {\n      let file: File = event.currentFiles[0];\n\t  this.fileName = file.name;\n      this.listaCargeProgramacionEvaluacionDTO = await this.cargarProgramacionEvaluacionService.cargarArchivo(file,this.separador).toPromise();\n\t  this.notificationBusService.showSuccess('Se cargó el documento con éxito');\n\t  fupload.clear();\n\t  this.mostrarbtnCargarDatos = true;\n\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t\tthis.mostrarbtnCargarDatos = false;\n\t\t\treturn;\n\t\t}\n\t}\n\n\tprivate validar(): boolean {\n\t\tlet validador = true;\n\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.fase);\n\t\treturn validador;\n\t}\n\n\tpublic async cargarDatosEvaluacion() {\n\t\ttry {\n\t\t\tif (this.validar()) {\n\t\t\t\tthis.validando = false\n\t\t\t\tthis.listaCargeProgramacionEvaluacionDTO = await this.cargarProgramacionEvaluacionService.evaluarDatosArchivo(this.listaCargeProgramacionEvaluacionDTO, this.gestionPeriodoDTO, this.planillaGestionDTO,\n\t\t\t\t\t\tparseInt(this.authService.getTokenKey('numeroEmpresa')), this.fase).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(\"Se realizo el proceso\");\n\t\t\t\tthis.descarga = false;\n\t\t\t}else{\n\t\t\t\tthis.validando = true;\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t//error(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic recargarArchivo() {\n\t\ttry {\n\t\t\tthis.listaCargeProgramacionEvaluacionDTO = [];\n\t\t\tthis.fileName = ''\n//\t\t\tfileProgress = 0;\n\t\t} catch (e) {\n\t\t\t//error(e);\n\t\t}\n\t\treturn null;\n\t}\n\n}\n","<p-dialog [header]=\"'Cargar'\" [(visible)]=\"visible\" [style]=\"{width: '48vw'}\" (onHide)=\"ocultarPopup()\" [modal]=\"true\"\n  [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"mt-2\">\n        <!-- <h5><i class=\"glyphicons glyphicons-file\"></i>{{gestionPeriodo.descripcion}}</h5> -->\n    </div>\n    <div class=\"p-fluid p-formgrid grid mt-1\">\n        @if(listaCargeProgramacionEvaluacionDTO.length <= 0 ){\n        <!-- NOMBRE ARCHIVO -->\n        <div class=\"col-12 md:col-4\" id=\"btn-cargar-popup\">\n            <div [class]=\"'p-inputgroup' \">\n                <span class=\"p-float-label nomostrar\" style=\"display: flex;\">\n                    <input pInputText #inputText [readonly]=\"true\" [value]=\"fileName\" disabled />\n                    <label htmlFor=\"detalle\">{{'nombrearchivo' | translate}} *</label>\n                    <p-fileUpload #fubauto mode=\"basic\" [customUpload]=\"true\" accept=\".txt\" chooseLabel=\"\" chooseLabel=\"\" uploadLabel=\"\"\n                        (onSelect)=\"cargarArchivo($event, fubauto)\" required chooseIcon=\"pi pi-paperclip\"></p-fileUpload>\n                </span>\n            </div>\n        </div>\n        \n        <!-- SEPARADOR -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"columna\" [options]=\"separadorArchivoPlanoCons.SEPARADOR_ARCHIVOPLANO\"\n                    optionValue=\"codigo\" [(ngModel)]=\"separador\" optionLabel=\"nombre\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                <label htmlFor=\"columna\">{{'separador' | translate}} *</label>\n            </span>\n        </div>\n    }\n        <!-- FASE -->\n         @if(listaCargeProgramacionEvaluacionDTO.length > 0){\n            <div class=\"field col-12 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"columna\" [options]=\"listaFase\"\n                    [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(fase) && validando)\"\n                    [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(fase) && validando)\"\n                    optionValue=\"key\" [(ngModel)]=\"fase\" optionLabel=\"label\"\n                    [autoDisplayFirst]=\"false\"></p-dropdown>\n                    <label htmlFor=\"columna\">{{'fase' | translate}} *</label>\n                </span>\n            </div>\n         }\n        \n    </div>\n    @if(listaCargeProgramacionEvaluacionDTO.length > 0){\n    <div class=\"flex justify-content-end mb-2\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n            label=\"{{'guardar' | translate}}\" (click)=\"cargarDatosEvaluacion()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-outlined\" icon=\"glyphicons glyphicons-refresh\"\n            label=\"{{'recargararchivo' | translate}}\" (click)=\"recargarArchivo()\">\n        </button>\n    </div>\n}\n<p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"listaCargeProgramacionEvaluacionDTO\" [rows]=\"10\"\n[totalRecords]=\"listaCargeProgramacionEvaluacionDTO.length\"\n[paginator]=\"listaCargeProgramacionEvaluacionDTO.length > 10\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n[showCurrentPageReport]=\"true\" [scrollable]=\"true\" [lazy]=\"false\"\ncurrentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n<ng-template pTemplate=\"header\">\n   <tr>\n       <th class=\"w-6rem\">{{'identificacon' | translate}}</th>\n       <th class=\"w-6rem\">{{'tipoevaluador' | translate}}</th>\n       <th class=\"w-6rem\">{{'identificacionevaluador' | translate}}</th>\n       <th class=\"w-6rem\">{{'fechaaplicacion' | translate}}</th>\n       <th class=\"w-6rem\">{{'fechainicial' | translate}}</th>\n       <th class=\"w-6rem\">{{'fechafinal' | translate}}</th>\n       <th class=\"w-6rem\">{{'identificacionautoriza' | translate}}</th>\n       <th class=\"w-6rem\">{{'fechalimite' | translate}}</th>\n       <th class=\"w-6rem\">{{'peso' | translate}}</th>\n       <th class=\"w-6rem\">{{'mensaje' | translate}}</th>\n   </tr>\n</ng-template>\n<ng-template pTemplate=\"body\" let-cargue let-editing=\"editing\" let-ri=\"rowIndex\">\n   <tr >\n       <td class=\"w-6rem\">{{cargue.identificacion}}</td>\n       <td class=\"w-6rem\">{{cargue.tipoEvaluador}}</td>\n       <td class=\"w-6rem\">{{cargue.identificacionEvaluador}}</td>\n       <td class=\"w-6rem\">{{cargue.fechaaplicacion | date:'dd/MM/yyyy'}}</td>\n       <td class=\"w-6rem\">{{cargue.fechaInicial | date:'dd/MM/yyyy'}}</td>\n       <td class=\"w-6rem\">{{cargue.fechaFinal | date:'dd/MM/yyyy'}}</td>\n       <td class=\"w-6rem\">{{cargue.identificacionAutoriza | date:'dd/MM/yyyy'}}</td>\n       <td class=\"w-6rem\">{{cargue.fechalimite | date:'dd/MM/yyyy'}}</td>\n       <td class=\"w-6rem\">{{cargue.peso}}</td>\n       <td class=\"w-6rem\">{{cargue.mensaje}}</td>\n   </tr>\n</ng-template>\n<ng-template pTemplate=\"emptymessage\">\n    <tr>\n        <td colspan=\"100\"> \n            <app-template-tabla-vacia></app-template-tabla-vacia>\n        </td>\n    </tr>\n</ng-template>\n</p-table>\n</p-dialog>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { ParametrosEvaluacionPipe } from '../../../pipes/parametros-evaluacion.pipe';\nimport { EvaluacionHojaModel } from '../../../models/EvaluacionHojaModel';\nimport { FaseGestionHojaModel } from '../../../models/FaseGestionHojaModel';\nimport { EmpleadoModel } from '../../../../../modules/compensacion/models/EmpleadoModel';\nimport { ConfirmationService, MenuItem, PrimeTemplate, SelectItem } from 'primeng/api';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { FaseGestionModel } from '../../../models/FaseGestionModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, GeneralService, TemplateTablaVaciaComponent,MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { HojaVidaModel } from '../../../../../modules/hojavida/models/HojaVidaModel';\nimport { GestionPeriodoModel } from '../../../models/GestionPeriodoModel';\nimport { PlanillaGestionModel } from '../../../models/PlanillaGestionModel';\nimport { VistaPlantaOcupoModel } from '../../../models/VistaPlantaOcupoModel';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { MenubarModule } from 'primeng/menubar';\nimport { NgFor, NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { PopupDatosRequerimientoComponent } from '../../../popups/popup-datos-requerimiento/popup-datos-requerimiento.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FaseGestionHojaPipe } from '../../../pipes/fase-gestion-hoja.pipe';\nimport { EvaluacionHojaService } from '../../../services/evaluacion-hoja.service';\nimport { DetalleHerramientasComponent } from '../detalle-herramientas/detalle-herramientas.component';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperCargoComponent } from '../../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { FaseGestionHojaContComponent } from '../../evaluacion/fase-gestion-hoja-cont/fase-gestion-hoja-cont.component';\nimport { PopupDetalleEvaluacionComponent } from '../../../popups/popup-detalle-evaluacion/popup-detalle-evaluacion.component';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { ProgramarPeriodoEvaluacionComponent } from '../../periodoEvaluacion/programar-periodo-evaluacion/programar-periodo-evaluacion.component';\nimport { PopupTipoActoresComponent } from '../../../popups/popup-tipo-actores/popup-tipo-actores.component';\nimport { PopupCargarProgramacionEvaluacionComponent } from '../../../popups/popup-cargar-programacion-evaluacion/popup-cargar-programacion-evaluacion.component';\n\n@Component({\n\tselector: 'app-listado-herramientas',\n\ttemplateUrl: './listado-herramientas.component.html',\n\tstyleUrls: ['./listado-herramientas.component.scss'],\n\tstandalone: true,\n\tproviders: [TemplateTablaVaciaComponent,ToastService, ParametrosEvaluacionPipe],\n\timports: [ProgressBarModule, PopupDetalleEvaluacionComponent, MenubarModule, NgIf, FormsModule, ReactiveFormsModule, InputTextModule, ButtonDirective, Ripple, TableModule, PrimeTemplate, PopupDatosRequerimientoComponent, TranslateModule, CalendarModule, CheckboxModule,\n\t\tFormsModule, RadioButtonModule, NgFor, FiltroGeneralComponent, InputHelperUnidadComponent, InputHelperCargoComponent, DropdownModule, ButtonDirective, TableModule, PrimeTemplate, InputHelperEmpleadoBotonComponent,\n\t\tParametrosEvaluacionPipe, DetalleHerramientasComponent, FaseGestionHojaContComponent,ProgramarPeriodoEvaluacionComponent,PopupTipoActoresComponent,PopupCargarProgramacionEvaluacionComponent, TemplateTablaVaciaComponent]\n})\nexport class ListadoHerramientasComponent implements OnInit {\n\n\tpublic mostrarEvaluador: boolean;\n\tpublic mostrarPopup: boolean;\n\tpublic mostrarPopupHojaVida: boolean;\n\tpublic verActores: boolean;\n\tpublic idEmpleado: number;\n\tpublic empleadoDTO: EmpleadoModel;\n\tpublic dato: EvaluacionHojaModel;\n\tpublic filtroBean: EvaluacionHojaModel = new EvaluacionHojaModel();\n\tpublic filtro: FaseGestionHojaModel = new FaseGestionHojaModel();\n\tpublic listado: any[] = [];\n\tpublic paginator = {\n\t\trows: 10,\n\t\ttotalRecords: 0,\n\t};\n\tpublic nombreCompleto: string;\n\tpublic navegacion: string;\n\tpublic seleccionado: boolean;\n\tpublic filtrar: boolean;\n\tpublic mostrarAvance: boolean;\n\tpublic menuLateral: MenuItem[] = [];\n\tpublic paginador: any[];\n\tpublic listaSeleccionada: EvaluacionHojaModel[] = [];\n\tpublic puestoTrabajoDTO: PuestoTrabajoModel;\n\tpublic listaTipoActores: FaseGestionModel[];\n\tpublic listaFasesHerramienta: FaseGestionModel[] = [];\n\tpublic avance: number;\n\tpublic mapaEstados: any[] = [];\n\tpublic mapaActores;\n\n\n\n\tpublic listaTipoPresenta: any[];\n\tpublic tipoPresenta: string;\n\n\tpublic rutaArchivo: string;\n\tpublic cedulaSesion: number;\n\tprivate regla: string;\n\tvistaVisualizar: string;\n\t@ViewChild('detalleHerammientas') detalleHerammientas: DetalleHerramientasComponent;\n\t@ViewChild('filtroComponent') filtroComponent: FiltroGeneralComponent;\n\t@ViewChild('detallePopup') detallePopup: PopupDetalleEvaluacionComponent;\n\t@ViewChild('popupDetalleEvaluacion') popupDetalleEvaluacion: PopupDetalleEvaluacionComponent;\n\t@ViewChild('detalleProgramar') programarPeriodoEvaluacion: ProgramarPeriodoEvaluacionComponent;\n\t@ViewChild('popupCargarProgramacionEvaluacion') popupCargarProgramacionEvaluacion: PopupCargarProgramacionEvaluacionComponent;\n\t@Output() regresarVista: EventEmitter<any> = new EventEmitter<any>();\n\n\n\tlistaGestionHerramientas: any[] = [];\n\tlistaEmpresa: any[] = []\n\tfilters: any;\n\tboleanogeneral: boolean;\n\n\n\n\tconstructor(public parametrosEvaluacionCons: ParametrosEvaluacionPipe, private authService: AuthService, private saraAplicationSvc: SaraAplicacionService,private menuService: MenuService,\n\t\tprivate utilsService: UtilsService, private generalSvc: GeneralService, private notificationBusService: ToastService, private confirmationService: ConfirmationService,\n\t\tpublic translateService: TranslateService, private faseGesHojaCons: FaseGestionHojaPipe, private evaluacionHojaSvc: EvaluacionHojaService,\n\t\tprivate controlFuncionService: CargarControlFuncionalidadService, private selectListEvaluacionesSvc: SelectListEvaluacionesService, private parametrosEvaluacionPipe: ParametrosEvaluacionPipe,\n\t) {\n\t\tthis.filters = [\n\t\t\t{\n\t\t\t\tfield: 'llaveherramienta',\n\t\t\t\theader: this.translateService.instant('herramienta'),\n\t\t\t\tvalues: (key) => this.listaGestionHerramientas.filter(data => data.codigo == key)[0]?.nombre,\n\t\t\t\tmatchMode: 'equal',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfield: 'fechaInicial',\n\t\t\t\theader: this.translateService.instant('rango') + ' ' + this.translateService.instant('fechas'),\n\t\t\t\tmatchMode: 'equal',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfield: 'nombreevaluado',\n\t\t\t\theader: this.translateService.instant('empleado'),\n\t\t\t\tmatchMode: 'contains',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfield: 'empresa',\n\t\t\t\theader: this.translateService.instant('empresa'),\n\t\t\t\tvalues: (key) => this.listaEmpresa.filter(data => data.key == key)[0]?.label,\n\t\t\t\tmatchMode: 'equal',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfield: 'nombreunidad',\n\t\t\t\theader: this.translateService.instant('nombreUnidad'),\n\t\t\t\tmatchMode: 'contains',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfield: 'nombrecargo',\n\t\t\t\theader: this.translateService.instant('nombreCargo'),\n\t\t\t\tmatchMode: 'contains',\n\t\t\t},\n\n\t\t];\n\n\t}\n\n\tasync inicializar(){\n\t\tlet url = window.location.href\n\t\tif(url.includes('listadoHerramientas')){\n\t\t\tthis.menuService.setBreadcrumb([{ label: this.translateService.instant('listadoherramientas')}]);\n\t\t}\n\t\tthis.tipoPresenta = this.parametrosEvaluacionCons.TIPOPRESENTA_RESUMEN;\n\t\tthis.filtroBean = new EvaluacionHojaModel();\n\t\tthis.filtro = new FaseGestionHojaModel();\n\t\tthis.mostrarEvaluador = false;\n\t\tthis.mostrarPopup = false;\n\t\tthis.mostrarPopupHojaVida = false;\n\t\tthis.filtrar = false;\n\t\t// this.mapaEstados = this.parametrosEvaluacionCons.MAPAESTADOS.map((item) => ({item.codigo,item.nombre}));\n\t\tthis.mapaActores = this.parametrosEvaluacionCons.LISTA_ACTORES;\n\t\tthis.listaTipoPresenta = this.parametrosEvaluacionCons.LISTA_TIPOPRESENTACION;\n\t\tthis.listaGestionHerramientas = await this.selectListEvaluacionesSvc.getListaGestionHerramientas()\n\t\tthis.listaEmpresa = await this.selectListEvaluacionesSvc.listaEmpresa();\n\t\tthis.cedulaSesion = null;\n\t\tif (this.authService.getTokenKey('isCliente')) {\n\t\t\tthis.cedulaSesion = await this.saraAplicationSvc.getCedula();\n\t\t}\n\t}\n\n\tasync ngOnInit(): Promise<void> {\n\t\tthis.inicializar();\n\t}\n\n\tpublic async load(event?): Promise<void> {\n\t\t// if (event != undefined || event != null ) {\n\t\t\tthis.filtroBean.paginacionRegistroFinal = event?.rows ? event?.rows : 10;\n\t\t\tthis.filtroBean.paginacionRegistroInicial = event?.first ? event?.first : 0;\n\t\t\tif (event?.fechaInicial?.value != null) {\n\t\t\t\tthis.filtroBean.fechaInicial = event?.fechaInicial?.value[0];\n\t\t\t\tthis.filtroBean.fechaFinal = event?.fechaInicial?.value[1];\n\t\t\t}\n\t\t\tthis.filtroBean.llaveherramienta = event?.llaveherramienta?.value ? event?.llaveherramienta?.value : this.filtroBean.llaveherramienta;\n\t\t\tthis.filtroBean.nombreevaluado = event?.nombreevaluado?.value ? event?.nombreevaluado?.value : this.filtroBean.nombreevaluado;\n\t\t\tthis.filtroBean.identificacion = event?.nombreevaluado?.value ? this.filtroBean.identificacion : this.filtroBean.identificacion;\n\t\t\tthis.filtroBean.documento = event?.nombreevaluado?.value ? this.filtroBean.documento : this.filtroBean.documento;\n\t\t\tthis.filtroBean.unidad = event?.nombreunidad?.value ? this.filtroBean.unidad : this.filtroBean.unidad;\n\t\t\tthis.filtroBean.nombreunidad = event?.nombreunidad?.value ? this.filtroBean.nombreunidad : this.filtroBean.nombreunidad;\n\t\t\tthis.filtroBean.nombrecargo = event?.nombrecargo?.value ? this.filtroBean.nombrecargo : this.filtroBean.nombrecargo;\n\t\t\tthis.filtroBean.cargo = event?.nombrecargo?.value ? this.filtroBean.cargo : this.filtroBean.cargo;\n\t\t\ttry {\n\t\t\t\tthis.colocarFiltro();\n\t\t\t\tif (this.filtrar) {\n\t\t\t\t\tthis.paginator.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('EvaluacionHojaDTO', null, false, this.filtroBean)).toPromise();\n\t\t\t\t\tthis.listado = await this.evaluacionHojaSvc.obtenerListadoEvaluacionesConFases(this.filtroBean, this.tipoPresenta != this.parametrosEvaluacionCons.TIPOPRESENTA_FILTRO).toPromise();\n\t\t\t\t} else {\n\t\t\t\t\tthis.listado = [];\n\t\t\t\t\tthis.paginator.totalRecords = 0;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error)\n\t\t\t}\n\t\t// }\n\t\t// else {\n\t\t// \tthis.filtroComponent.limpiarFiltros()\n\t\t// \tthis.filtroBean = new EvaluacionHojaModel();\n\t\t// \tthis.listado = [];\n\t\t// \tthis.paginator.totalRecords = 10;\n\t\t// }\n\t}\n\n\tprivate colocarFiltro(): void {\n\t\tthis.filtrar = false;\n\t\tif (this.empleadoDTO != null) {\n\t\t\tthis.filtroBean.identificacion = (this.empleadoDTO.cedula);\n\t\t}\n\t\telse {\n\t\t\tthis.filtroBean.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\tif (this.parametrosEvaluacionCons.TIPOPRESENTA_RESUMEN == (this.tipoPresenta)) {\n\t\t\t\tif (this.utilsService.isNotBlank(this.filtroBean.llaveherramienta) && (this.filtroBean.fechaInicial != null || this.filtroBean.fechaFinal != null)) {\n\t\t\t\t\tthis.filtrar = true;\n\t\t\t\t}\n\t\t\t\tthis.filtroBean.cedulaActor = (this.cedulaSesion);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.utilsService.isNotBlank(this.filtroBean.llaveherramienta)) {\n\t\t\t\tthis.filtrar = true;\n\t\t\t}\n\t\t\tif (this.filtroBean.fechaInicial != null) {\n\t\t\t\tthis.filtrar = true;\n\t\t\t}\n\t\t\tif (this.filtroBean.fechaFinal != null) {\n\t\t\t\tthis.filtrar = true;\n\t\t\t}\n\t\t\tif (this.utilsService.isNotBlank(this.filtroBean.documento)) {\n\t\t\t\tthis.filtrar = true;\n\t\t\t}\n\t\t\tif (this.filtroBean.empresa != null) {\n\t\t\t\tthis.filtrar = true;\n\t\t\t}\n\t\t\tif (this.utilsService.isNotBlank(this.filtroBean.unidad)) {\n\t\t\t\tthis.filtrar = true;\n\t\t\t}\n\t\t\tif (this.utilsService.isNotBlank(this.filtroBean.cargo)) {\n\t\t\t\tthis.filtrar = true;\n\t\t\t}\n\t\t}\n\t}\n\n\n\tpublic async iniciaConPeriodo(evaluacion: EvaluacionHojaModel): Promise<void> {\n\t\tthis.filtroBean = evaluacion;\n\t\tthis.tipoPresenta = this.parametrosEvaluacionCons.TIPOPRESENTA_PERIODO;\n\t\tthis.cargarMenuLateral();\n\t\tawait this.load(null);\n\t\tthis.calcularAvance();\n\t\tthis.cargarListaFases();\n\t\t}\n\n\tpublic buscarUnaEvaluacion(): void {\n\t\tif (this.utilsService.isNotBlank(this.filtroBean.llaveherramienta) &&\n\t\t\t(this.filtroBean.fechaInicial != null || this.filtroBean.fechaFinal != null)) {\n\t\t\tthis.cargarListaFases();\n\t\t\tthis.calcularAvance();\n\t\t}\n\t}\n\n\tpublic inicioUnicaEvaluacion(): void {\n\t\tthis.filtroBean = new EvaluacionHojaModel();\n\t\tthis.filtro = new FaseGestionHojaModel();\n\t\tthis.mostrarEvaluador = false;\n\t\tthis.mostrarPopup = false;\n\t\tthis.mostrarPopupHojaVida = false;\n\t\tthis.listado = [];\n\t\tthis.filtrar = false;\n\t\tthis.filtroComponent.limpiarFiltros()\n\t}\n\n\tpublic verHerramientaFiltro(): void {\n\t\tif (this.parametrosEvaluacionCons.TIPOPRESENTA_FILTRO == (this.tipoPresenta)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.tipoPresenta = this.parametrosEvaluacionCons.TIPOPRESENTA_FILTRO;\n\t\tthis.inicioUnicaEvaluacion();\n\t}\n\tpublic verHerramientaResumen(): void {\n\t\tif (this.parametrosEvaluacionCons.TIPOPRESENTA_RESUMEN == (this.tipoPresenta)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.tipoPresenta = this.parametrosEvaluacionCons.TIPOPRESENTA_RESUMEN;\n\t\tthis.inicioUnicaEvaluacion();\n\t}\n\n\tpublic async calcularAvance(): Promise<void> {\n\t\ttry {\n\t\t\tif (this.parametrosEvaluacionCons.TIPOPRESENTA_RESUMEN == (this.tipoPresenta)) {\n\t\t\t\tif (this.utilsService.isNotBlank(this.filtroBean.llaveherramienta) &&\n\t\t\t\t\t(this.filtroBean.fechaInicial != null || this.filtroBean.fechaFinal != null)) {\n\t\t\t\t\tthis.filtroBean.organizacion = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\t\tthis.filtroBean.cedulaActor = (this.cedulaSesion);\n\t\t\t\t\tthis.avance = await this.evaluacionHojaSvc.avanceEvaluacionPeriodo(this.filtroBean).toPromise();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.parametrosEvaluacionCons.TIPOPRESENTA_PERIODO == (this.tipoPresenta)) {\n\t\t\t\tthis.avance = await this.evaluacionHojaSvc.avanceEvaluacionPeriodo(this.filtroBean).toPromise();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic async verAction(se): Promise<string> {\n\t\ttry {\n\t\t\tthis.dato = se.data;\n\t\t\tthis.filtro = new FaseGestionHojaModel();\n\t\t\tthis.filtro.llaveGestionHoja = (this.dato.llave);\n\t\t\tawait this.setVistaVisualizar(\"detalle\");\n\t\t\tawait this.utilsService.sleep(20);\n\t\t\t// this.detalleHerammientas.init();\n\t\t\tawait this.detalleHerammientas.setLlaveEvaluacionHoja(this.dato.llave);\n\t\t\tawait this.detalleHerammientas.cargarDetalleHerramienta();\n\t\t\tawait this.detalleHerammientas.traerListado();\n\t\t\tawait this.detalleHerammientas.setFiltroBean(this.filtroBean);\n\t\t\tawait this.detalleHerammientas.setPeriodo(this.parametrosEvaluacionCons.TIPOPRESENTA_FILTRO != (this.tipoPresenta));\n\t\t\tif (\"detallePuestoOtra\" == (this.navegacion)) {\n\t\t\t\tawait this.detalleHerammientas.setNavegar(\"detallePuestoOtra\");\n\t\t\t}\n\t\t\tawait this.detalleHerammientas.setPuestoTrabajoDTO(this.puestoTrabajoDTO);\n\t\t\tthis.detalleHerammientas.setLoading(true)\n\t\t\tthis.cargarMenuLateral();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic async cargarMenuLateral() {\n\t\tthis.menuLateral = [];\n\t\tlet control: boolean = this.verificarControl(\"pereva:programar\") && this.isMostrarEmpleado();\n\t\tthis.menuLateral.push({ label: this.translateService.instant(\"link_programar\"), visible: control, icon: ImagenesCons.clock, command: async (event) => { await this.programar(); this.utilsService.resizeWindowIFrame() } });\n\t\tthis.menuLateral.push({ label: this.translateService.instant(\"link_cargar\"), visible: this.isMostrarEmpleado(), icon: ImagenesCons.show_big_thumbnails, command: async (event) => { await this.cargar(); this.utilsService.resizeWindowIFrame() } });\n\t\tthis.menuLateral.push({ label: this.translateService.instant(\"link_enviar\") + Constantes.ESPACIO_BLANCO + this.translateService.instant(\"reporte\"), visible: this.isMostrarEmpleado(), icon: ImagenesCons.message_flag, command: async (event) => { await this.enviarReporte(); this.utilsService.resizeWindowIFrame() } });\n\t\tif ((await this.validarMultiple())) {\n\t\t\tthis.menuLateral.push({ label: this.translateService.instant(\"link_programarmultiple\"), visible: control, icon: ImagenesCons.show_big_thumbnails, command: async (event) => { await this.programarMultiple(); this.utilsService.resizeWindowIFrame() } });\n\t\t}\n\t\t// menuLateral.adicionarAccionRegresar(\"listadoHerramientasBean.regresar\", true, ImagenesCons.hand_left);\n\n\t}\n\n\tpublic async validarMultiple(): Promise<boolean> {\n\t\tlet faseGestionDTO = new FaseGestionModel();\n\t\tfaseGestionDTO.gestionPeriodo = (this.filtroBean.llaveherramienta);\n\t\ttry {\n\t\t\tthis.listaTipoActores = await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO', 'FaseGestion.consultarFaseGestionActores', false, faseGestionDTO)).toPromise();\n\t\t\tif (this.listaTipoActores.length != 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tcatch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic combo(event): void {\n\t\tlet empresa = parseInt(event.data);\n\t\tlet filtro = new EvaluacionHojaModel();\n\t\tfiltro.empresa = (empresa);\n\t\tthis.calcularAvance();\n\t}\n\n\tpublic regresarAction() {\n\t\ttry {\n\t\t\tif (this.empleadoDTO != null) {\n\t\t\t\treturn \"regresarEmpleado\";\n\t\t\t}\n\t\t\tif (this.regla != null) {\n\t\t\t\treturn this.regla;\n\t\t\t}\n\t\t\t// navegar(Constantes.REGLA_REGRESAR);\n\t\t\tthis.cargarMenuLateral();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic cerrarEvaluador(): string {\n\t\ttry {\n\t\t\tthis.mostrarEvaluador = false;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic setCargar(obj) {\n\t\ttry {\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic verPopup(): String {\n\t\ttry {\n\t\t\tlet evaluacionHojaDTO = new EvaluacionHojaModel();\n\t\t\tif (this.parametrosEvaluacionCons.TIPOPRESENTA_FILTRO != (this.tipoPresenta)) {\n\t\t\t\tevaluacionHojaDTO.nombreherramienta = (this.filtroBean.nombreherramienta);\n\t\t\t\tevaluacionHojaDTO.llaveherramienta = (this.filtroBean.llaveherramienta);\n\t\t\t\tevaluacionHojaDTO.llavePlanilla = (this.filtroBean.planillaPeriodo);\n\t\t\t\tevaluacionHojaDTO.nombrePlanillaPeriodo = (this.filtroBean.nombrePlanillaPeriodo);\n\t\t\t\tevaluacionHojaDTO.fechaInicial = (this.filtroBean.fechaInicial);\n\t\t\t\tevaluacionHojaDTO.fechaFinal = (this.filtroBean.fechaFinal);\n\t\t\t\tevaluacionHojaDTO.noPersona = (this.filtroBean.noPersona);\n\t\t\t\tevaluacionHojaDTO.planillaPeriodo = (this.filtroBean.planillaPeriodo);\n\t\t\t}\n\t\t\tthis.popupDetalleEvaluacion.empleadoDTO = this.empleadoDTO;\n\t\t\tthis.popupDetalleEvaluacion.filtroBean = (this.filtroBean);\n\t\t\tthis.popupDetalleEvaluacion.buscar(\"#{listadoHerramientasBean.cargar}\", evaluacionHojaDTO, true, true, this.parametrosEvaluacionPipe.TIPOPRESENTA_FILTRO != (this.tipoPresenta));\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic cerrarPopup() {\n\t\ttry {\n\t\t\tthis.filtroBean = new EvaluacionHojaModel();\n\t\t\tthis.mostrarPopup = false;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic verPopupHojaVidaEvaluado(): string {\n\t\ttry {\n\t\t\tthis.mostrarPopup = false;\n\t\t\tthis.mostrarEvaluador = false;\n\t\t\t// getBean(PopupHojaVida.class).buscar(\"#{listadoHerramientasBean.nuevoEvaluador}\");\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic verPopupHojaVidaEvaluadoFiltrar(): string {\n\t\ttry {\n\t\t\tthis.mostrarPopup = false;\n\t\t\tthis.mostrarEvaluador = false;\n\t\t\t// getBean(PopupHojaVida.class).buscar(\"#{listadoHerramientasBean.nuevoEvaluador}\");\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic setNuevoEvaluador(hojavidaDTO: HojaVidaModel): void {\n\t\tthis.filtroBean.identificacion = (hojavidaDTO.identifica);\n\t\tthis.filtroBean.documento = (hojavidaDTO.documento);\n\t\tthis.filtroBean.nombreevaluado = (hojavidaDTO.nombreCompleto);\n\t\tthis.mostrarEvaluador = true\n\t\tthis.calcularAvance();\n\t}\n\n\tpublic limpiar(): void {\n\t\tthis.filtroBean.identificacion = (null);\n\t\tthis.filtroBean.documento = (null);\n\t\tthis.filtroBean.nombreevaluado = (null);\n\t\tthis.filtroBean.empresa = (null);\n\t\tthis.filtroBean.unidad = (null);\n\t\tthis.filtroBean.nombreunidad = (null);\n\t\tthis.filtroBean.cargo = (null);\n\t\tthis.filtroBean.nombrecargo = (null);\n\t\tif (this.parametrosEvaluacionCons.TIPOPRESENTA_FILTRO == (this.tipoPresenta)) {\n\t\t\tthis.filtroBean.fechaInicial = (null);\n\t\t\tthis.filtroBean.fechaFinal = (null);\n\t\t\tthis.filtroBean.llaveherramienta = (null);\n\t\t}\n\t\tthis.mostrarAvance = false;\n\t\tthis.calcularAvance();\n\t}\n\n\tpublic confirmar(): void {\n\t}\n\n\tpublic isMostraBotonGuardar(): boolean {\n\t\treturn this.filtro.llaveGestionHoja == null;\n\t}\n\n\tpublic async cargar(): Promise<string> {\n\t\ttry {\n\t\t\tlet gestionPeriodoDTO = new GestionPeriodoModel();\n\t\t\tgestionPeriodoDTO.llaveGestionPeriodo = (this.filtroBean.llaveherramienta);\n\t\t\tgestionPeriodoDTO = await this.generalSvc.queryForObject(new GeneralModel('GestionPeriodoDTO', null, false, gestionPeriodoDTO)).toPromise();\n\n\t\t\tlet planillaGestionDTO = new PlanillaGestionModel();\n\t\t\tplanillaGestionDTO.llavePlanillaGestion = (this.filtroBean.planillaPeriodo);\n\t\t\tplanillaGestionDTO = await this.generalSvc.queryForObject(new GeneralModel('PlanillaGestionDTO', null, false, planillaGestionDTO)).toPromise();\n\t\t\tthis.popupCargarProgramacionEvaluacion.inicializar(gestionPeriodoDTO,planillaGestionDTO,[]);\n\t\t\t// getBean(PopupCargarProgramacionEvaluacionBean.class).inicializar(gestionPeriodoDTO, planillaGestionDTO, new ArrayList<CargueProgramacionEvaluacionDTO>());\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tpublic regresar(): string {\n\t\tlet url = window.location.href\n\t\tif (url.endsWith(\"periodoEvaluaciones\")) {\n\t\t\tthis.regresarVista.emit(null);\n\t\t\t// getBean(PeriodoEvaluacionesBean.class).setVistaVisualizar(null);\n\t\t\treturn null;\n\t\t}\n\t\tif (\"detallePuestoOtra\" == (this.navegacion)) {\n\t\t\t// getBean(DetalleOtroPuestoTrabajoBean.class).setVistaVisualizar(null);\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.navegacion != null && this.navegacion != (Constantes.ESPACIO_NULO)) {\n\t\t\t// navegar(navegacion);\n\t\t\t// DetalleOtroPuestoTrabajoBean detalleOtroPuestoTrabajoBean = getBean(DetalleOtroPuestoTrabajoBean.class);\n\t\t\t// detalleOtroPuestoTrabajoBean.setPuestoEncabezadoDTO(getPuestoTrabajoDTO());\n\t\t\t// detalleOtroPuestoTrabajoBean.inicioPuestoTrabajo(getPuestoTrabajoDTO(), null);\n\t\t}\n\t\telse {\n\t\t\t// navegar(\"regresarPeriodo\");\n\t\t}\n\t\treturn null;\n\t}\n\n\tpublic programar(): void {\n\t\tif (this.listaFasesHerramienta.length == 1) {\n\t\t\tthis.ejecutaPrograma(this.listaFasesHerramienta[0]);\n\t\t\treturn;\n\t\t}\n\t\tthis.verActores = false;\n\t\tthis.mostrarPopup = true;\n\t}\n\n\tpublic programarMultiple(): void {\n\t\tif (this.listaTipoActores.length == 1) {\n\t\t\tthis.ejecutaPrograma(this.listaTipoActores[0]);\n\t\t\treturn;\n\t\t}\n\t\tthis.verActores = true;\n\t\tthis.mostrarPopup = true;\n\t}\n\t\n\tpublic seleccionarActor(se): void {\n\t\tlet actorDTO = se.data;\n\t\tthis.mostrarPopup = false;\n\t\tthis.ejecutaPrograma(actorDTO);\n\t}\n\tpublic async ejecutaPrograma(faseGestion: FaseGestionModel): Promise<void> {\n\t\ttry {\n\t\t\tthis.setVistaVisualizar(\"detalleProgramar\");\n\t\t\tawait this.utilsService.sleep(20);\n\t\t\tlet faseGestionDTO = (faseGestion);\n\t\t\t// ProgramarPeriodoEvaluacionBean programarPeriodoEvaluacionBean = (ProgramarPeriodoEvaluacionBean) FacesUtils.getBean(\"programarPeriodoEvaluacionBean\");\n\t\t\tlet filtro = new VistaPlantaOcupoModel();\n\t\t\tfiltro.gestionPeriodo = (this.filtroBean.llaveherramienta);\n\t\t\tfiltro.nombreGestionPeriodo = (this.filtroBean.nombreherramienta);\n\t\t\tconsole.log('this.filtroBean.planillaPeriodo',this.filtroBean.planillaPeriodo);\n\t\t\t\n\t\t\tthis.programarPeriodoEvaluacion.llavePeriodo = this.filtroBean.planillaPeriodo;\n\t\t\tthis.programarPeriodoEvaluacion.tipoPlantilla = this.filtroBean.tipoPlanilla;\n\t\t\tfiltro.nombrePlantillaGestion = (this.filtroBean.nombrePlanillaPeriodo);\n\t\t\tfiltro.fechaInicial = (this.filtroBean.fechaInicial);\n\t\t\tfiltro.fechaFinal = (this.filtroBean.fechaFinal);\n\t\t\tfiltro.tipoEvaluadorPalnilla =(this.filtroBean.tipoPlanilla);\n\t\t\tthis.programarPeriodoEvaluacion.filtro = (filtro);\n\t\t\tthis.programarPeriodoEvaluacion.evaluacionHojaDTO = (this.filtroBean);\n\t\t\tthis.programarPeriodoEvaluacion.inicializar(faseGestionDTO);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\t// public String verPopupUnidad() {\n\t// \ttry {\n\t// \t\tgetBean(PopupUnidad.class).buscar(\"#{listadoHerramientasBean.unidad}\", getCredencial().getNumeroEmpresa(), false);\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// \treturn null;\n\t// }\n\n\tpublic setUnidad(unidadOrganizacionalDTO: UnidadOrganizacionalModel): void {\n\t\tif (unidadOrganizacionalDTO.unidad != null) {\n\t\t\tthis.filtroBean.unidad = (unidadOrganizacionalDTO.unidad);\n\t\t\tthis.filtroBean.nombreunidad = (unidadOrganizacionalDTO.nombreUnidad);\n\t\t}\n\t\tthis.calcularAvance();\n\t}\n\n\t// public verPopupCargo(): String {\n\t// \ttry {\n\t// \t\tgetBean(PopupCargo.class).buscar(\"#{listadoHerramientasBean.cargo}\", getCredencial().getNumeroEmpresa());\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// \treturn null;\n\t// }\n\n\tpublic setCargo(cargoDTO: CargoModel): void {\n\t\ttry {\n\t\t\tthis.filtroBean.nombrecargo = (cargoDTO.descripcion);\n\t\t\tthis.filtroBean.cargo = (cargoDTO.cargo);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\n\n\n\t/**\n\t * Este metodo se encarga de seleccionar o no todos los registros que se\n\t * estan mostrando en la pantalla para poder eliminarlos\n\t * \n\t * @return\n\t */\n\tpublic seleccionarTodos(): void {\n\t\tfor (let sw of this.listado) {\n\t\t\tsw.check = (!this.seleccionado);\n\t\t}\n\t\tthis.seleccionado = !this.seleccionado;\n\t\treturn null;\n\t}\n\n\tpublic enviarReporte(): string {\n\t\tthis.cargarListaSeleccionada();\n\t\tif (this.listaSeleccionada.length == 0) {\n\t\t\tthis.notificationBusService.showWarning(\"Debe seleccionar un registro\");\n\t\t} else {\n\t\t\tthis.confirmationService.confirm({\n\t\t\t\ttarget: event.target,\n\t\t\t\tmessage: this.translateService.instant(\"desea\") + Constantes.ESPACIO_BLANCO + this.translateService.instant(\"generar\") + Constantes.ESPACIO_BLANCO + this.translateService.instant(\"los\")\n\t\t\t\t\t+ Constantes.ESPACIO_BLANCO + this.translateService.instant(\"reporte\") + this.translateService.instant(\"s\") + Constantes.ESPACIO_BLANCO + this.translateService.instant(\"seleccionado\")\n\t\t\t\t\t+ this.translateService.instant(\"s\"),\n\t\t\t\tacceptLabel: 'Si',\n\t\t\t\theader: 'Confirmar',\n\t\t\t\taccept: () => {\n\t\t\t\t\tthis.setRespuesta(true);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tpublic cargarListaSeleccionada(): void {\n\t\tthis.listaSeleccionada = [];\n\t\tfor (let item of this.listado) {\n\t\t\tif (item.check) {\n\t\t\t\tthis.listaSeleccionada.push(item);\n\t\t\t}\n\t\t}\n\t}\n\n\n\tpublic setRespuesta(respuesta: boolean): void {\n\t\ttry {\n\t\t\tif (respuesta) {\n\t\t\t\tlet mensaje;\n\t\t\t\t// let mensaje = documentoSoporteSvc.enviarCorreo(getDataSource(), listaSeleccionada, getCredencial().getLogin(), getCredencial().getLlaveEmpresa(), getCredencial().getLlaveOrganizacion());\n\t\t\t\tthis.notificationBusService.showInfo(\"Se generaron los reportes y se enviaron por correo correctamente. \" + mensaje);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic async cargarListaFases(): Promise<void> {\n\t\ttry {\n\t\t\tif (this.utilsService.isNotBlank(this.filtroBean.llaveherramienta)) {\n\t\t\t\tlet faseGestionDTO = new FaseGestionModel();\n\t\t\t\tfaseGestionDTO.gestionPeriodo = (this.filtroBean.llaveherramienta);\n\t\t\t\tthis.listaFasesHerramienta = await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO', null, false, faseGestionDTO)).toPromise();\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n\tpublic verEvaluacion(llave): void {\n\t\tthis.setVistaVisualizar(\"evaluacion\");\n\t\t// FaseGestionHojaBean bean = getBean(FaseGestionHojaBean.class);\n\t\t// bean.setTraerFaseEvaluacion(llave, \"periodoevaluaciones\");\n\t\t// bean.setOrigen(\"periodoevaluaciones\");\n\t}\n\n\tpublic getCelda(fila: EvaluacionHojaModel, columna: FaseGestionModel): FaseGestionHojaModel {\n\t\tif (fila?.listaFasesGestionHoja == null) {\n\t\t\treturn null;\n\t\t}\n\t\tlet dto = fila?.listaFasesGestionHoja[columna.llave];\n\t\tif (dto == null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn dto;\n\t}\n\n\tpublic mostrarAutoYJefe(fila: EvaluacionHojaModel, columna: FaseGestionModel): boolean {\n\t\tlet dto = this.getCelda(fila, columna);\n\t\tif (dto == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.faseGesHojaCons.APLICADA == (dto.estado);\n\t}\n\n\tpublic mostrarAutoJefe(fila: EvaluacionHojaModel, columna: FaseGestionModel): boolean {\n\t\tlet dto = this.getCelda(fila, columna);\n\t\tif (dto == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.faseGesHojaCons.APLICADA == (dto.estado) || this.faseGesHojaCons.PORAUTORIZAR == (dto.estado);\n\t}\n\n\tpublic noMostrarAutoJefe(fila: EvaluacionHojaModel, columna: FaseGestionModel): boolean {\n\t\tlet dto = this.getCelda(fila, columna);\n\t\tif (dto == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.faseGesHojaCons.APLICADA != (dto.estado) && this.faseGesHojaCons.PORAUTORIZAR != (dto.estado);\n\t}\n\n\t// public combinarArchivo(): void {\n\t// \ttry {\n\t// \t\tFacesContext fc = FacesContext.getCurrentInstance();\n\t// \t\tString llave = fc.getExternalContext().getRequestParameterMap().get(\"llaveDocumento\");\n\t// \t\tString llaveBase = fc.getExternalContext().getRequestParameterMap().get(\"llaveEvaluacionHoja\");\n\t// \t\tDocumentoSoporteDTO dto = new DocumentoSoporteDTO();\n\t// \t\tdto.setLlaveTabla(llave);\n\t// \t\tdto = generalSvc.queryForObject(getDataSource(), dto);\n\t// \t\tif (dto == null) {\n\t// \t\t\tinfo(\"No existe documento soporte con la llave \" + llave);\n\t// \t\t}\n\t// \t\tString archivoResultado = evaluacionSvc.combinarArchivo(getDataSource(), llaveBase, dto.getPlanillaReporte(), getCredencial().getNumeroEmpresa(),\n\t// \t\t\tgetCredencial().getLlaveEmpresa(), dto.getRutaArchivo());\n\t// \t\tFile archi = new File(archivoResultado);\n\n\t// \t\tString rutaAnexo = propiedadesAplicativoSvc.cargarPropiedadAplicacion(this.getDataSource(), Constantes.APLICACION_SARA, PropiedadesAplicativoDTO.XRUTA_ANEXOSHOJAVIDA);\n\n\t// \t\tString nombreArchivo = archi.getName().replace(\"tmpUnion\", \"\");\n\t// \t\tString archivoDestino = rutaAnexo + Constantes.BARRA_INCLINADA_DERECHA + nombreArchivo;\n\t// \t\tArchivoUtil.copiarArchivo(archivoResultado, archivoDestino, false);\n\n\t// \t\tString llaveGestionHoja = llaveBase;\n\t// \t\tif (\"F\".equals(dto.getAplicaReporte())) {\n\t// \t\t\tFaseGestionHojaDTO faseGestionHojaDTO = new FaseGestionHojaDTO();\n\t// \t\t\tfaseGestionHojaDTO.setLlave(llaveBase);\n\t// \t\t\tfaseGestionHojaDTO = generalSvc.queryForObject(getDataSource(), faseGestionHojaDTO);\n\t// \t\t\tif (faseGestionHojaDTO == null) {\n\t// \t\t\t\treturn;\n\t// \t\t\t}\n\t// \t\t\tllaveGestionHoja = faseGestionHojaDTO.getLlaveGestionHoja();\n\t// \t\t}\n\n\t// \t\tArchivoDTO anexoHojaVida = new ArchivoDTO();\n\t// \t\tanexoHojaVida.setTipoActo(ParametrosEvaluacionCons.GESTION_HERRAMIENTA);\n\t// \t\tanexoHojaVida.setLlaveActoAdmon(llaveGestionHoja);\n\t// \t\tanexoHojaVida.setDescripcion(dto.getDescripcion());\n\t// \t\tEvaluacionHojaDTO evaluacionHojaDTO = new EvaluacionHojaDTO();\n\t// \t\tevaluacionHojaDTO.setLlave(llaveGestionHoja);\n\t// \t\tevaluacionHojaDTO = generalSvc.queryForObject(getDataSource(), evaluacionHojaDTO);\n\n\t// \t\tanexoHojaVida.setIdentifica(evaluacionHojaDTO.getIdentificacion());\n\t// \t\tanexoHojaVida.setArchivoorigen(nombreArchivo);\n\t// \t\tanexoHojaVida = documentoSoporteSvc.insertarAnexo(getDataSource(), anexoHojaVida);\n\t// \t\tsetVistaVisualizar(\"reporteListadoHerramientas\");\n\t// \t\tsetRutaArchivo(archivoResultado);\n\t// \t\t//\t\t\tVisualizadorPDFBean vs = new VisualizadorPDFBean(archivoResultado, regla, Constantes.NO_STRING);\n\t// \t\t//\t\t\tvs.setRutaTemporal(archivoResultado);\n\n\t// \t} catch (Exception e) {\n\t// \t\terror(e);\n\t// \t}\n\t// }\n\n\tsetRegla(evento) {\n\t\tthis.regla = evento\n\t}\n\n\tpublic async setVistaVisualizar(evento: string) {\n\t\tthis.vistaVisualizar = evento\n\t\tawait this.utilsService.sleep(20);\n\t}\n\n\tpublic regresarListado(): void {\n\t\tthis.setVistaVisualizar(null);\n\t}\n\n\tpublic verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t}\n\n\tpublic isMostrarEmpleado(): boolean {\n\t\tif (this.filtroBean == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.filtroBean.noPersona == null || Constantes.CONSTANTE_NO == (this.filtroBean.noPersona);\n\t}\n\n\tpublic isCliente() {\n\t\treturn this.authService.getTokenKey('isCliente') == 'true'\n\t}\n\n\tdatosModificable(ausencia: EvaluacionHojaModel) {\n\t\tlet contador: number = 0;\n\t\tthis.listado.forEach(element => {\n\t\t\tif (!element.check) {\n\t\t\t\tcontador = contador + 1;\n\t\t\t}\n\t\t});\n\t\tthis.boleanogeneral = contador == 0 ? true : false;\n\t}\n\n\thandleEnterKey(event: any) {\n\t\tevent?.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t}\n\n\tcapitalizarTexto(texto: string): string {\n\t\treturn texto.charAt(0).toUpperCase() + texto.slice(1);\n\t}\n\n\tcambioCheckGeneral(event) {\n\t\tif (event) {\n\t\t\tthis.listado.forEach((element) => {\n\t\t\t\telement.check = true;\n\t\t\t});\n\t\t} else {\n\t\t\tthis.listado.forEach((element) => {\n\t\t\t\telement.check = false;\n\t\t\t});\n\t\t}\n\t}\n\n\tasync regresarDetalleProgramar(event){\n\t\tthis.setVistaVisualizar(null);\n\t\tawait this.utilsService.sleep(20);\n\t\tthis.filtroBean = (event['filtro']);\n\t\tthis.tipoPresenta = (event['tipoPresenta']);\n\t\tawait this.cargarMenuLateral();\n\t\t\n\t}\n\t\n}\n","<div *ngIf=\"vistaVisualizar == null\">\n    @if(tipoPresenta == 'periodo'){\n        <div class=\"flex align-items-center justify-content-between mb-2\">\n            <h4 class=\"text-xl mb-0\">{{'listado' | translate}} {{'herramientas' | translate}}</h4>\n            <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n                class=\"p-button-text font-semibold\"></button>      \n        </div>\n    }@else{\n        <h1>{{'listado' | translate}} {{'herramientas' | translate}}</h1>\n    }\n    \n    <div *ngIf=\"tipoPresenta != 'periodo' && !isCliente()\" class=\"flex flex-wrap gap-3 mb-3\">\n        <div *ngFor=\"let item of listaTipoPresenta\" class=\"field-checkbox\" class=\"flex align-items-center\">\n            <p-radioButton [inputId]=\"item.codigo\" name=\"category\" [value]=\"item.codigo\" [(ngModel)]=\"tipoPresenta\"\n                (click)=\"inicioUnicaEvaluacion()\" />\n            <label [for]=\"item.codigo\" class=\"ml-2\">\n                {{ item.nombre }}\n            </label>\n        </div>\n    </div>\n    <p-menubar [model]=\"menuLateral\" *ngIf=\"tipoPresenta == 'periodo'\" class=\"menu-accion-sara\" />\n    @if(tipoPresenta != 'filtro'){\n    <div class=\"card mt-2\">\n        <div class=\"flex align-items-center justify-content-between\">\n                <div style=\"width: 100%;\">\n                    <p-progressBar [value]=\"avance\" [style]=\"{ height: '15px'}\">\n                        <ng-template pTemplate=\"content\" let-value>\n                            <span>{{'avance'|translate}} {{value}}% </span>\n                        </ng-template>\n                    </p-progressBar>\n                </div>\n            <div class=\"flex align-items-center justify-content-end ml-2\">\n                <span class=\"glyphicons glyphicons-brush\" pTooltip=\"Elaboracion\" tooltipPosition=\"top\" placeholder=\"Top\"\n                    style=\"font-size:20px; color:#1E8449;\"></span>\n                <span class=\"glyphicons glyphicons-certificate\" pTooltip=\"Aplicada\" tooltipPosition=\"top\"\n                    placeholder=\"Top\" style=\"font-size:20px; color:#8B0000;\"></span>\n                <span class=\"glyphicons glyphicons-mouse-left-click\" pTooltip=\"Por autorizar\" tooltipPosition=\"top\"\n                    placeholder=\"Top\" style=\"font-size:20px; color:#CA6F1E;\"></span>\n            </div>\n        </div>\n    </div>\n    }\n\n    <div [class]=\"(verificarControl('pereva:nuevaprog') && tipoPresenta != 'resumen') ? 'flex align-items-center justify-content-between mb-2' : 'mb-2'\">\n        <app-filtro-general #filtroComponent [filtros]=\"filters\" (metodoRegresar)=\"load($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex mt-3\" *ngIf=\"tipoPresenta == 'resumen'\">\n                        <!-- HERRAMIENTA -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [autoDisplayFirst]=\"false\" id=\"listaHerramientaUnica\" [showClear]=\"true\"\n                                    [(ngModel)]=\"filtroBean.llaveherramienta\" [options]=\"this.listaGestionHerramientas\"\n                                    formControlName=\"llaveherramienta\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                                    (onChange)=\"buscarUnaEvaluacion()\">\n                                </p-dropdown>\n                                <label for=\"listaHerramientaUnica\">{{'herramienta' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- RANGO FECHAS -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-calendar selectionMode=\"range\" dateFormat=\"dd/mm/yy\" [readonlyInput]=\"true\"\n                                    formControlName=\"fechaInicial\"\n                                    (onChange)=\"buscarUnaEvaluacion()\"></p-calendar>\n                                <label for=\"periodo\">{{'periodo' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n\n                    <div class=\"flex mt-3\" *ngIf=\"tipoPresenta == 'filtro'\">\n                        <!-- HERRAMIENTA -->\n                        <div class=\"mr-3 w-full\" *ngIf=\"tipoPresenta == 'filtro'\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [autoDisplayFirst]=\"false\" id=\"listaHerramientaUnica\" [showClear]=\"true\"\n                                    [(ngModel)]=\"filtroBean.llaveherramienta\" [options]=\"this.listaGestionHerramientas\"\n                                    formControlName=\"llaveherramienta\" optionLabel=\"nombre\" optionValue=\"codigo\">\n                                </p-dropdown>\n                                <label for=\"listaHerramientaUnica\">{{'herramienta' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- RANGO FECHAS -->\n                        <div class=\"mr-3 w-full\" *ngIf=\"tipoPresenta == 'filtro'\">\n                            <span class=\"p-float-label\">\n                                <p-calendar selectionMode=\"range\" dateFormat=\"dd/mm/yy\" [readonlyInput]=\"true\"\n                                    formControlName=\"fechaInicial\"></p-calendar>\n                                <label for=\"periodo\">{{'periodo' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n\n                    <div class=\"flex mt-3\">\n                        <!-- NOMBRE EVALUADO -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-empleado-boton formControlName=\"nombreevaluado\"\n                                    [nombreInput]=\"'Identificación del Evaluado'\"\n                                    [label]=\"this.filtroBean.nombreevaluado != null ? this.filtroBean.nombreevaluado : ''\"\n                                    [(ngModel)]=\"this.filtroBean.nombreevaluado\"\n                                    (onSelected)=\"setNuevoEvaluador($event)\">\n                                </app-input-helper-empleado-boton>\n                            </span>\n                        </div>\n                        <!-- EMPRESA -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [autoDisplayFirst]=\"false\" id=\"cargo\" [options]=\"this.listaEmpresa\"\n                                    [(ngModel)]=\"filtroBean.empresa\" [showClear]=\"true\" formControlName=\"empresa\"\n                                    optionLabel=\"label\" optionValue=\"key\">\n                                </p-dropdown>\n                                <label for=\"cadenaConsecutivo\">{{'empresa' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n\n                    <div class=\"flex mt-3\">\n                        <!-- UNIDAD ORGANIZACIONAL -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-unidad formControlName=\"nombreunidad\" [readonly]=\"false\"\n                                    [label]=\"filtroBean.nombreunidad == null ? '' : filtroBean.nombreunidad\"\n                                    (onSelected)=\"setUnidad($event)\" [(ngModel)]=\"this.filtroBean.nombreunidad\"\n                                    [header]=\"this.translateService.instant('unidad' | translate) +'*'\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                                </app-input-helper-unidad>\n                            </span>\n                        </div>\n                        <!-- CARGO -->\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-cargo formControlName=\"nombrecargo\" [nombreInput]=\"'Cargo'\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" [(ngModel)]=\"this.filtroBean.nombrecargo\"\n                                    [label]=\"filtroBean.nombrecargo ? filtroBean.nombrecargo : ''\" [mostrarX]=\"false\"\n                                    (onSelected)=\"setCargo($event)\"></app-input-helper-cargo>\n                            </span>\n                        </div>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n\n        @if(verificarControl('pereva:nuevaprog') && tipoPresenta != 'resumen'){\n        <button pButton pRipple class=\"p-element p-component p-button-secondary \" icon=\"pi pi-plus\"\n            label=\"{{'link_nuevo' | translate}}\" (click)=\"verPopup()\"></button>\n        }\n    </div>\n    <p-table #tablaGeneral [value]=\"listado\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [lazy]=\"true\" scrollDirection=\"both\"\n        styleClass=\"p-datatable-striped\" [scrollable]=\"true\" [tableStyle]=\"{ 'min-width': '90rem' }\"\n        (onLazyLoad)=\"load($event)\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        (onRowSelect)=\"verAction($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"min-width: 5rem;\" *ngIf=\"tipoPresenta == 'periodo' && isMostrarEmpleado()\">\n                    <p-checkbox class=\"mr-3\" [(ngModel)]=\"boleanogeneral\" type=\"checkbox\"\n                        [disabled]=\"listado.length == 0\" [binary]=\"true\"\n                        (onChange)=\"cambioCheckGeneral(boleanogeneral)\"></p-checkbox>\n                </th>\n                <th style=\"min-width: 10rem;\" *ngIf=\"isMostrarEmpleado()\">{{'identificacion' | translate}}</th>\n                <th style=\"min-width: 10rem;\" *ngIf=\"isMostrarEmpleado()\">{{'nombre' | translate}} {{'evaluado' | translate}}</th>\n                <th style=\"min-width: 10rem;\" *ngIf=\"tipoPresenta == 'filtro'\">{{'herramienta' | translate}}</th>\n                <th style=\"min-width: 10rem;\" *ngIf=\"tipoPresenta == 'filtro'\">{{'unidadorganizacional' | translate}}</th>\n                <th style=\"min-width: 10rem;\" *ngIf=\"tipoPresenta != 'periodo'\">{{'periodo' | translate}}</th>\n                <th style=\"min-width: 10rem;\">{{'estado' | translate}}</th>\n                <th style=\"min-width: 10rem;\"  *ngFor=\"let columna of listaFasesHerramienta\">{{ capitalizarTexto(columna.descripcion)}}</th>\n\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr>\n                <td style=\"min-width: 5rem;\" *ngIf=\"tipoPresenta == 'periodo' && isMostrarEmpleado()\">\n                    <p-checkbox class=\"ml-1 mr-3\" (click)=\"datosModificable(bean)\" type=\"checkbox\" [binary]=\"true\"\n                        [(ngModel)]=\"bean.check\"></p-checkbox>\n                </td>\n                <td [pSelectableRow]=\"bean\" style=\"min-width: 10rem;\" *ngIf=\"isMostrarEmpleado()\">\n                    {{ (bean.documento)}}\n                </td>\n                <td [pSelectableRow]=\"bean\" style=\"min-width: 10rem;\" *ngIf=\"isMostrarEmpleado()\">\n                    {{bean.nombreCompletoEvaluado}}\n                </td>\n                <td [pSelectableRow]=\"bean\" style=\"min-width: 10rem;\" *ngIf=\"tipoPresenta == 'filtro'\">\n                    {{bean.nombreherramienta}}\n                </td>\n                <td [pSelectableRow]=\"bean\" style=\"min-width: 10rem;\" *ngIf=\"tipoPresenta == 'filtro'\">\n                    {{bean.nombreunidad + '-' + bean.nombrecargo}}\n                </td>\n                <td [pSelectableRow]=\"bean\" style=\"min-width: 10rem;\" *ngIf=\"tipoPresenta != 'periodo'\">\n                    {{bean.periodo}}\n                </td>\n                <td [pSelectableRow]=\"bean\" style=\"min-width: 10rem;\">\n                    {{ bean.estado | parametrosEvaluacionPipe:'mapaEstados'}}\n                </td>\n                <td [pSelectableRow]=\"bean\" style=\"min-width: 10rem;\" *ngFor=\"let columna of listaFasesHerramienta\">\n                    {{getCelda(bean, columna)?.tipoNombreEvaluador}}\n                    <ng-container *ngIf=\"getCelda(bean, columna)?.tipoNombreEvaluador\">\n                        <div class=\"grid grid-cols-3 items-center\">\n                            <!-- Texto -->\n                            <span class=\"valor_campo_none\">{{ getCelda(bean, columna)?.tipoNombreEvaluador }}</span>\n                \n                            <!-- Iconos / Acciones -->\n                            <ng-container *ngIf=\"getCelda(bean, columna)?.estado === 'C'\">\n                                <button pButton type=\"button\" icon=\"glyphicons glyphicons-certificate\" class=\"p-button-rounded p-button-text\"\n                                    [style]=\"{ fontSize: '20px', color: '#8B0000' }\"\n                                    [disabled]=\"isCliente()\"\n                                    (click)=\"verEvaluacion(getCelda(bean, columna)?.llave)\"></button>\n                            </ng-container>\n                \n                            <ng-container *ngIf=\"getCelda(bean, columna)?.estado === 'L'\">\n                                <button pButton type=\"button\" icon=\"glyphicons glyphicons-mouse-left-click\" class=\"p-button-rounded p-button-text\"\n                                    [style]=\"{ fontSize: '20px', color: '#CA6F1E' }\"\n                                    [disabled]=\"isCliente()\"\n                                    (click)=\"verEvaluacion(getCelda(bean, columna)?.llave)\"></button>\n                            </ng-container>\n                \n                            <ng-container *ngIf=\"getCelda(bean, columna)?.estado === 'E'\">\n                                <button pButton *ngIf=\"!isCliente()\" pButton type=\"button\" icon=\"glyphicons glyphicons-brush\"\n                                    class=\"p-button-rounded p-button-text\" [style]=\"{ fontSize: '20px', color: '#1E8449' }\"\n                                    title=\"Diligenciar\" (click)=\"verEvaluacion(getCelda(bean, columna)?.llave)\"></button>\n                \n                                <button *ngIf=\"isCliente() && getCelda(bean, columna)?.check\"\n                                    pButton type=\"button\" icon=\"glyphicons glyphicons-brush\" class=\"p-button-rounded p-button-text\"\n                                    [style]=\"{ fontSize: '20px', color: '#1E8449' }\" title=\"Diligenciar\"\n                                    (click)=\"verEvaluacion(getCelda(bean, columna)?.llave)\"></button>\n                \n                                <button *ngIf=\"isCliente() && !getCelda(bean, columna)?.check\"\n                                    pButton type=\"button\" icon=\"glyphicons glyphicons-brush\" class=\"p-button-rounded p-button-text\"\n                                    [style]=\"{ fontSize: '20px', color: '#8B0000' }\" disabled=\"true\"\n                                    (click)=\"verEvaluacion(getCelda(bean, columna)?.llave)\"></button>\n                            </ng-container>\n                        </div>\n                    </ng-container>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n\n</div>\n<div *ngIf=\"vistaVisualizar == 'detalle'\">\n    <app-detalle-herramientas #detalleHerammientas\n        (setVistaVisualizar)=\"setVistaVisualizar($event)\"></app-detalle-herramientas>\n</div>\n@if(vistaVisualizar =='detalleProgramar'){\n    <app-programar-periodo-evaluacion #detalleProgramar (regresarVista)=\"regresarDetalleProgramar($event)\"></app-programar-periodo-evaluacion>\n}\n<app-popup-tipo-actores [listadoHerramientasBean]=\"this\"></app-popup-tipo-actores>\n<app-popup-detalle-evaluacion #popupDetalleEvaluacion (regla)=\"setRegla($event)\"></app-popup-detalle-evaluacion>\n<app-popup-cargar-programacion-evaluacion #popupCargarProgramacionEvaluacion></app-popup-cargar-programacion-evaluacion>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { SaraAplicacionService } from '../../../../../../shared/servicios/sara-aplicacion.service';\nimport { Constantes } from '../../../../../../shared/constantes/Constantes';\nimport { CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { UnidadUsuarioModel } from '../../../../../compensacion/models/UnidadUsuarioModel';\nimport { DimensionModel } from '../../../../models/DimensionModel';\nimport { MetaFaseGestionModel } from '../../../..//models/MetaFaseGestionModel';\nimport { PlanillaGestionModel } from '../../../..//models/PlanillaGestionModel';\nimport { PuntajeUnidadModel } from '../../../..//models/PuntajeUnidadModel';\nimport { PeriodoEvaluacionPipe } from '../../../..//pipes/periodo-evaluacion.pipe';\nimport { ImagenesCons } from '../../../../../../shared/constantes/ImagenesCons';\nimport { PopupPeriodoEvaluacionComponent } from '../../popup-periodo-evaluacion/popup-periodo-evaluacion.component';\nimport { PeriodoMetaFaseGestionComponent } from '../../periodo-meta-fase-gestion/periodo-meta-fase-gestion.component';\nimport { SelectListEvaluacionesService } from '../../../..//services/select-list-evaluaciones.service';\nimport { UnidadOrganizacionalModel } from '../../../..//models/UnidadOrganizacionalModel';\nimport { CargoModel } from '../../../..//models/CargoModel';\nimport { PuntajeUnidadComponent } from '../../puntaje-unidad/puntaje-unidad.component';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { ListadoFiltroCompentenciaComponent } from '../../filtro-competencia/listado-filtro-compentencia/listado-filtro-compentencia.component';\nimport { EvaluacionHojaModel } from '../../../..//models/EvaluacionHojaModel';\nimport { ListadoFaseGestionHojaComponent } from '../../../evaluacion/listado-fase-gestion-hoja/listado-fase-gestion-hoja.component';\nimport { CargarArchivoRespuestaComponent } from '../../cargar-archivo-respuesta/cargar-archivo-respuesta.component';\nimport { GestionPeriodoModel } from '../../../..//models/GestionPeriodoModel';\nimport { PeriodoEvaluacionPipe as PeriodoEvaluacionPipe_1 } from '../../../../pipes/periodo-evaluacion.pipe';\nimport { InputHelperCargoComponent } from '../../../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { InputHelperUnidadComponent } from '../../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TabViewModule } from 'primeng/tabview';\nimport { MenubarModule } from 'primeng/menubar';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ListadoHerramientasComponent } from '../../../herramientas/listado-herramientas/listado-herramientas.component';\n\n@Component({\n    selector: 'app-lista-planilla-gestion',\n    templateUrl: './lista-planilla-gestion.component.html',\n    styleUrls: ['./lista-planilla-gestion.component.scss'],\n    standalone: true,\n    imports: [ListadoHerramientasComponent,ConfirmPopupModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, MenubarModule, TabViewModule, FormsModule, InputTextModule, DropdownModule, CalendarModule, ReactiveFormsModule, InputHelperUnidadComponent, InputHelperCargoComponent, PeriodoMetaFaseGestionComponent, PuntajeUnidadComponent, ListadoFiltroCompentenciaComponent, ListadoFaseGestionHojaComponent, CargarArchivoRespuestaComponent, PopupPeriodoEvaluacionComponent, DatePipe, TranslateModule, PeriodoEvaluacionPipe_1,\n      FiltroGeneralComponent\n    ]\n})\nexport class ListaPlanillaGestionComponent implements OnInit {\n  planillaGestionDTO: PlanillaGestionModel = new PlanillaGestionModel();\n  filtroObjetivosEspecificos: MetaFaseGestionModel = new MetaFaseGestionModel;\n  unidadFiltro: UnidadUsuarioModel = new UnidadUsuarioModel();\n  filtro: PlanillaGestionModel = new PlanillaGestionModel();\n  ver: boolean;\n  contenidoPagina: boolean;\n  listaFaseProgramacion: PuntajeUnidadModel[] = [];\n  menuTipo: MenuItem[] = [];\n  menuLateral: MenuItem[] = [];\n  opcionTipo: string;\n  faseProgramar: PuntajeUnidadModel;\n  nuevaCompetencia: MetaFaseGestionModel;\n  listCompetencias: any[];\n  paginador: PlanillaGestionModel[] = [];\n  paginadorEspecificos: PlanillaGestionModel[] = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  paginatorEspecificos = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  paginadorMetaFaseGestion: MetaFaseGestionModel[] = [];\n  paginatorMetaFaseGestion = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  dataModelMetaFaseGestionEspecifico: MetaFaseGestionModel[] = [];\n  paginatorMetaFaseGestionEspecifico = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  paginadorPuntajeUnidad: PuntajeUnidadModel[] = [];\n  paginatorPuntajeUnidad = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  paginadorCompetencias: MetaFaseGestionModel[] = [];\n  paginatorCompetencias = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  vistaVisualizar: string;\n  listaFases: any[];\n  listaProceso: any[];\n  listaEvaluador: any[];\n  renderPrincipal: string;\n\n  @ViewChild('popupPeriodoEvaluacion') popupPeriodoEvaluacion: PopupPeriodoEvaluacionComponent;\n  @ViewChild('periodoMetaFaseGestion') periodoMetaFaseGestion: PeriodoMetaFaseGestionComponent;\n  @ViewChild('periodoMetaFaseGestionEspecifico') periodoMetaFaseGestionEspecifico: PeriodoMetaFaseGestionComponent;\n  @ViewChild('puntajeUnidad') puntajeUnidad: PuntajeUnidadComponent;\n  @ViewChild('filtroCompetencia') filtroCompetencia: ListadoFiltroCompentenciaComponent;\n  @ViewChild('listadoFaseGHoja') listadoFaseGHoja: ListadoFaseGestionHojaComponent;\n  @ViewChild('listadoHerramientas') listadoHerramientas: ListadoHerramientasComponent;\n  @ViewChild('cargarArchivo') cargarArchivo: CargarArchivoRespuestaComponent;\n  @Output() regresarVista : EventEmitter<any> = new EventEmitter<any>();\n  \n\n  \n  \n\n\n  tareaActualNombre: string;\n  titulo: string;\n  listaEmpresas: any[];\n  filters: any[]= [];\n  nuevoVista: boolean;\n  validando: boolean;\n  validaCompetencia: boolean;\n  competenciaNueva: boolean;\n  gestionPeriodoDTO: GestionPeriodoModel;\n\n  constructor(private generalSvc: GeneralService, private saraAplicationSvc: SaraAplicacionService, public utilsService: UtilsService, public translateSvc: TranslateService, public periodoEvaluacionPipe: PeriodoEvaluacionPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService, private selectListEvaluaciones: SelectListEvaluacionesService,public translateService : TranslateService,private notificationBusService: ToastService, private confirmationService: ConfirmationService,\n    private generalPipe: GeneralPipe, private sanitizer: DomSanitizer\n  ) { \n    this.cargarFiltros();\n  }\n\n  async ngOnInit(): Promise<void> {\n\n  }\n\n\n  async inicializar(){\n    this.listaEvaluador = (this.periodoEvaluacionPipe.TIPOEVALUADOR);\n    this.unidadFiltro = null;\n    this.faseProgramar = new PuntajeUnidadModel();\n    this.nuevaCompetencia = new MetaFaseGestionModel();\n    this.nuevaCompetencia.origen = \"C\";\n    this.listCompetencias = [];\n    let dimensionDTO: DimensionModel = new DimensionModel();\n    try {\n      this.listCompetencias = (await this.generalSvc.queryForList(new GeneralModel('DimensionDTO', null, false, dimensionDTO)).toPromise()).map((data) => ({key: data.dimension, label: data.descripcionTipoDimension + Constantes.DOS_PUNTOS + data.descripcion}))\n      this.listaEmpresas = await this.selectListEvaluaciones.listaEmpresa();\n    } catch (e1) {\n      console.log(e1);\n    }\n  }\n\n  cargarFiltros(){\n    this.filters = [\n      {\n        field: 'empresa',\n        header: this.translateService.instant('empresa'),\n        values: (value) => this.transform(value, 'empresa'),\n        matchMode: 'equal',\n      },\n      {\n        field:  'cargo',\n        header: this.translateService.instant('cargo'),\n        values: (value) => value ? this.filtroObjetivosEspecificos.cargoNombre: '',\n        matchMode: 'equal',\n      },\n      {\n        field: 'faseGestion',\n        header: this.translateService.instant('fase'),\n        values: (value) => this.transform(value, 'faseGestion'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'procesoGestion',\n        header: this.translateService.instant('proceso') + this.translateService.instant('gestion'),\n        values: (value) => this.transform(value, 'procesoGestion'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'descripcion',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'equal',\n      },\n     \n    ];\n  }\n\n  async load(event) {\n    this.filtro.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10;\n    this.filtro.paginacionRegistroInicial = event?.first != null ? event?.first : 0;\n    this.paginador = await this.generalSvc.queryForList(new GeneralModel('PlanillaGestionDTO', null, false, this.filtro)).toPromise();\n    this.paginator.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('PlanillaGestionDTO', null, false, this.filtro)).toPromise();\n  }\n\n  async loadMetaFaseGestionEspecifico(event) {\n    let dto: MetaFaseGestionModel = new MetaFaseGestionModel\n    dto.planillaGestion = this.planillaGestionDTO.llavePlanillaGestion;\n    dto.origen = 'E'\n    if (this.saraAplicationSvc.isAutoServicioPortal()) {\n      dto.unidadCliente = this.filtroObjetivosEspecificos.unidadOrganizacional;\n    } else {\n      dto.unidadOrganizacional = this.filtroObjetivosEspecificos.unidadOrganizacional;\n    }\n    dto.faseGestion = this.filtroObjetivosEspecificos.faseGestion;\n    dto.procesoGestion = this.filtroObjetivosEspecificos.procesoGestion;\n    dto.empresa = event?.empresa?.value ?  event?.empresa?.value: null;\n    dto.cargo =   event?.cargo?.value ?  this.filtroObjetivosEspecificos.cargo: null;\n    dto.cargoNombre = event?.cargo?.value ?  this.filtroObjetivosEspecificos.cargoNombre: null;\n    dto.unidadOrganizacional = event?.unidadOrganizacional?.value ?  this.filtroObjetivosEspecificos.unidadOrganizacional: null;\n    dto.unidadOrganizacionalNombre = event?.unidadOrganizacional?.value ?  this.filtroObjetivosEspecificos.unidadOrganizacionalNombre: null;\n    if (this.filtroObjetivosEspecificos.objetivoGeneral) {\n      dto.objetivoGeneral = Constantes.PORCENTAJE + this.filtroObjetivosEspecificos.objetivoGeneral + Constantes.PORCENTAJE;\n    }\n    dto.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10;\n    dto.paginacionRegistroInicial = event?.first != null ? event?.first : 0;\n    this.dataModelMetaFaseGestionEspecifico = await this.generalSvc.queryForList(new GeneralModel('MetaFaseGestionDTO', null, false, dto)).toPromise();\n    this.paginatorMetaFaseGestionEspecifico.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('MetaFaseGestionDTO', null, false, dto)).toPromise();\n  }\n\n  async verObjetivoEspecifico(event){\n    let dto : MetaFaseGestionModel = event.data;\n    this.setVistaVisualizar('definicionMeta');\n    await this.utilsService.sleep(20);\n    await this.periodoMetaFaseGestionEspecifico.init(dto,this.planillaGestionDTO,this.unidadFiltro);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  public async nuevoObjetivoEspecifico(){\n\t\tlet nuevo = new MetaFaseGestionModel();\n\t\tnuevo.origen = (\"E\");\n\t\tif ( this.saraAplicationSvc.isAutoServicioPortal()) {\n\t\t\tnuevo.empresa = (this.unidadFiltro.empresa);\n\t\t\tnuevo.unidadOrganizacional = (this.unidadFiltro.unidad);\n\t\t\tnuevo.unidadOrganizacionalNombre = (this.unidadFiltro.nombreUnidad);\n\t\t}\n    await this.setVistaVisualizar(\"definicionMeta\");\n    await this.utilsService.sleep(10);\n\t\tawait this.periodoMetaFaseGestionEspecifico.init(nuevo, this.planillaGestionDTO, this.unidadFiltro);\n    this.utilsService.resizeWindowIFrame()\n\t\treturn null;\n\t}\n\n async loadPuntajeUnidad(event){\n    let filtroPuntajeUnidad: PuntajeUnidadModel = new PuntajeUnidadModel();\n    filtroPuntajeUnidad.origen = (\"PU\");\n\t\tfiltroPuntajeUnidad.planillaGestion = (this.planillaGestionDTO.llavePlanillaGestion);\n\t\t\t\tif (this.saraAplicationSvc.isAutoServicioPortal()) {\n\t\t\t\t\tfiltroPuntajeUnidad.empresa = (this.unidadFiltro.empresa);\n\t\t\t\t\tfiltroPuntajeUnidad.unidad = (this.unidadFiltro.unidad);\n//\t\t\t\t\tfiltroPuntajeUnidad.setLogin(getCredencial().getLoginUsuario());\n//\t\t\t\t\tfiltroPuntajeUnidad.setRol(getCredencial().getLlaveRol());\n\t\t\t\t}\n        filtroPuntajeUnidad.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10;\n        filtroPuntajeUnidad.paginacionRegistroInicial = event?.first != null ? event?.first : 0;\n        this.paginadorPuntajeUnidad = await this.generalSvc.queryForList(new GeneralModel('PuntajeUnidadDTO',null,false,filtroPuntajeUnidad)).toPromise()\n        this.paginatorPuntajeUnidad.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('PuntajeUnidadDTO',null,false,filtroPuntajeUnidad)).toPromise()\n  }\n\n async verPuntajeUnidad(event){\n    this.vistaVisualizar = 'puntajeUnidad';\n    await this.utilsService.sleep(10);\n    this.puntajeUnidad.inicializar(event.data,this.planillaGestionDTO.llavePlanillaGestion,false);\n  }\n\n  async nuevoPuntajeUnidad(){\n    this.vistaVisualizar = 'puntajeUnidad';\n    await this.utilsService.sleep(10);\n    this.puntajeUnidad.inicializar(new PuntajeUnidadModel(),this.planillaGestionDTO.llavePlanillaGestion,true);\n  }\n\n  \n\n\n  loadEspecificos(event) { }\n\n  async loadMetaFaseGestion(event) {\n    let objeto: MetaFaseGestionModel = new MetaFaseGestionModel();\n    objeto.planillaGestion = this.planillaGestionDTO.llavePlanillaGestion;\n    objeto.origen = \"M\";\n    this.paginadorMetaFaseGestion = await this.generalSvc.queryForList(new GeneralModel('MetaFaseGestionDTO', null, false, objeto)).toPromise();\n    this.paginatorMetaFaseGestion.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('MetaFaseGestionDTO', null, false, objeto)).toPromise();\n\n  }\n\n  public async verObjetivo(evento): Promise<void> {\n    this.vistaVisualizar = (\"definicionMeta\");\n    await this.utilsService.sleep(10);\n    let dto: MetaFaseGestionModel = evento.data;\n    await this.periodoMetaFaseGestion.init(dto, this.planillaGestionDTO, this.unidadFiltro);\n    return;\n  }\n\n  async loadCompetencias(event){\n    let filtroCompetencias =  new MetaFaseGestionModel();\n    filtroCompetencias.origen = ('C');\n    filtroCompetencias.planillaGestion = this.planillaGestionDTO.llavePlanillaGestion;\n    filtroCompetencias.paginacionRegistroFinal = event?.rows != null ? event?.rows : 10;\n    filtroCompetencias.paginacionRegistroInicial = event?.first != null ? event?.first : 0;\n    this.paginadorCompetencias = await this.generalSvc.queryForList(new GeneralModel('MetaFaseGestionDTO',null,false,filtroCompetencias)).toPromise();\n    this.paginatorCompetencias.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('MetaFaseGestionDTO',null,false,filtroCompetencias)).toPromise();\n  }\n\n  nuevoCompetencia(){\n    this.competenciaNueva = true;\n  }\n  cancelarNuevaCompetencia(){\n    this.competenciaNueva = false;\n    this.nuevaCompetencia = new MetaFaseGestionModel();\n    this.nuevaCompetencia.origen = 'C';\n  }\n\n  public async guardarCompetencia(): Promise<void>{\n\t\ttry{\n      if(this.validarCompetencia()){\n        this.validaCompetencia =false;\n\t\t\t\tthis.nuevaCompetencia.planillaGestion = (this.planillaGestionDTO.llavePlanillaGestion);\n\t\t\t\tthis.nuevaCompetencia = await  this.generalSvc.crearRegistro(new GeneralModel('MetaFaseGestionDTO',null,false,this.nuevaCompetencia)).toPromise();\n        this.loadCompetencias(null);\n        this.notificationBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n\t\t\t\tthis.nuevaCompetencia = new MetaFaseGestionModel();\n        this.nuevaCompetencia.origen = (\"C\");\n        this.competenciaNueva = false;\n\t\t\t}\n\t\t\t\n\t\t}catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n  public async validarCompetencia(): Promise<boolean>{\n\t\tlet valido = true;\n    this.validaCompetencia = true;\n\t\ttry {\n\t\t\tvalido = valido && this.utilsService.validarCampoObligatorio(this.nuevaCompetencia.competencia);\n\t\t\t// MetaFaseGestionDTO\n\t\t\tlet filtro = new MetaFaseGestionModel();\n\t\t\tfiltro.planillaGestion = (this.planillaGestionDTO.llavePlanillaGestion);\n\t\t\tfiltro.competencia = (this.nuevaCompetencia.competencia);\n\t\t\tlet existe: number = await this.generalSvc.cantidadRegistros(new GeneralModel('MetaFaseGestionDTO',null,false,filtro)).toPromise();\n\t\t\tif (existe > 0){\n\t\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_YA_EXISTE);\n\t\t\t\tvalido = false;\n\t\t\t}\n\t\t}catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn valido;\n\t}\n\t\n\tpublic async competenciaVer(event): Promise<void>{\n    let competenciaVer: MetaFaseGestionModel = event.data;\n\t\tcompetenciaVer.planillaGestion = (this.planillaGestionDTO.llavePlanillaGestion);\n    this.setVistaVisualizar('verCompetencia');\n    await this.utilsService.sleep(10);\n    this.filtroCompetencia.init(competenciaVer);\n\t\treturn null;\n\t}\n\t\n\tpublic eliminarCompetencia(event,data): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.setConfirmaEliminarCompetencia(data);\n      },\n      reject: () => {\n      }\n    });\n\t}\n\t\n\tpublic async setConfirmaEliminarCompetencia(data): Promise<void>{\n\t\t\ttry{\n\t\t\t\tawait this.generalSvc.delete(new GeneralModel('MetaFaseGestionDTO',null,false,data)).toPromise();\n\t\t\t\tthis.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n        this.loadCompetencias(null);\n\t\t\t}catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\t\n\n  verInformacion(planillaGestionDTO2: PlanillaGestionModel, unidadFiltro: UnidadUsuarioModel, titulo: string, gestionPeriodoDTO: GestionPeriodoModel) {\n    this.gestionPeriodoDTO = gestionPeriodoDTO;\n    this.utilsService.resizeWindowIFrame();\n    this.inicializar();\n    this.setFiltro(planillaGestionDTO2);\n    this.load(null);\n    this.setVer(false);\n    this.titulo = titulo;\n    this.titulo = this.capitalizarTexto(titulo.toLowerCase());\n    // traerListado();\n    this.cargarDatoInicial();\n    this.traerListadoFase();\n    this.unidadFiltro = unidadFiltro;\n    if (this.saraAplicationSvc.isAutoServicioPortal()) {\n      this.filtroObjetivosEspecificos.empresa = (unidadFiltro.empresa);\n      this.filtroObjetivosEspecificos.unidadOrganizacional = (unidadFiltro.unidad);\n      this.filtroObjetivosEspecificos.unidadOrganizacionalNombre = (unidadFiltro.nombreUnidad);\n    }\n  }\n\n  private async traerListadoFase(): Promise<void> {\n    try {\n      let comodin = new PuntajeUnidadModel;\n      comodin.origen = (\"FG\");\n      comodin.planillaGestion = (this.planillaGestionDTO.llavePlanillaGestion);\n      this.listaFaseProgramacion = await this.generalSvc.queryForList(new GeneralModel('PuntajeUnidadDTO', null, false, comodin)).toPromise();\n    } catch (e) {\n      console.log(e);\n    }\n\n  }\n\n  nuevaFase(){\n    this.nuevoVista = true;\n    this.faseProgramar = new PuntajeUnidadModel();\n  }\n\n  cancelarNuevo(){\n    this.nuevoVista = false;\n    this.validando = false;\n    this.faseProgramar = new PuntajeUnidadModel();\n  }\n\n  public async adicionaFase(): Promise<void> {\n\t\ttry {\n\t\t\tlet valido = true;\n      this.validando = true;\n\t\t\tvalido  = valido && this.utilsService.validarCampoObligatorio(this.faseProgramar.empresa);\n\t\t\tvalido  = valido && this.utilsService.validarCampoObligatorio(this.faseProgramar.faseGestion);\n\t\t\tvalido  = valido && this.utilsService.validarCampoObligatorio(this.faseProgramar.programacion);\n\t\t\tvalido  = valido && this.utilsService.validarCampoObligatorio(this.faseProgramar.limite);\n\t\t\tif ( !valido ) {\n        this.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.faseProgramar.limite <= this.faseProgramar.programacion ) {\n\t\t\t\tthis.notificationBusService.showWarning(\"Fechas no validas\");\n\t\t\t\treturn;\n\t\t\t}\n      this.validando = false;\n\t\t\tthis.faseProgramar.origen = (\"FG\");\n\t\t\tthis.faseProgramar.planillaGestion = (this.planillaGestionDTO.llavePlanillaGestion);\n\t\t\tthis.faseProgramar.puntaje = (0);\n\t\t\tthis.faseProgramar.unidad = (\".\");\n\t\t\tthis.faseProgramar = await this.generalSvc.crearRegistro(new GeneralModel('PuntajeUnidadDTO',null,false,this.faseProgramar)).toPromise();\n      this.notificationBusService.showSuccess(this.generalPipe.MENSAJE_ADICIONAR)\n      this.nuevoVista = false;\n\t\t\tthis.listaFaseProgramacion.push(this.faseProgramar);\n\t\t\tthis.faseProgramar = new PuntajeUnidadModel();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n  eliminarFase(event,data){\n    this.confirmationService.confirm({\n      target: event.target,\n      acceptLabel: Constantes.SI_STRING,\n      message: this.generalPipe.MENSAJE_ELIMINAR_CONFIRMAR,\n      accept: () => {\n        this.setEliminaFase(data);\n      },\n      reject: () => {\n      }\n    });\n  }\n\n\tpublic setEliminaFase(event): void {\n\t\ttry {\n\t\t\tlet faseBorrar = event;\n\t\t\tthis.generalSvc.delete(new GeneralModel('PuntajeUnidadDTO',null,false,faseBorrar)).toPromise();\n      this.listaFaseProgramacion = this.listaFaseProgramacion.filter(fase => fase !== faseBorrar);\n      this.notificationBusService.showInfo(this.generalPipe.MENSAJE_ELIMINAR);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\t\n\t\t\n\t}\n\n  cargarDatoInicial() {\n    this.menuTipo = [];\n    this.menuTipo.push({ label: this.translateSvc.instant('basica'), command: async (event) => { await this.seleccionarTipo('tabBasico', this.translateSvc.instant('basica')); this.utilsService.resizeWindowIFrame() }, id: 'tabBasico' });\n    if (!this.saraAplicationSvc.isAutoServicioPortal()) {\n      this.menuTipo.push({ label: this.translateSvc.instant('programacion') + ' ' + this.translateSvc.instant('fase'), command: async (event) => { await this.seleccionarTipo('tabProgramacion', this.translateSvc.instant('programacion') + ' ' + this.translateSvc.instant('fase')); this.utilsService.resizeWindowIFrame() }, id: 'tabProgramacion' });\n      this.menuTipo.push({ label: this.translateSvc.instant('objetivo') + ' ' + this.translateSvc.instant('fase'), command: async (event) => { await this.seleccionarTipo('tabFase', this.translateSvc.instant('objetivo') + ' ' + this.translateSvc.instant('fase')); this.utilsService.resizeWindowIFrame() }, id: 'tabFase' });\n      this.menuTipo.push({ label: this.translateSvc.instant('competencias'), command: async (event) => { await this.seleccionarTipo('tabCompentencia', this.translateSvc.instant('competencias')); this.utilsService.resizeWindowIFrame() }, id: 'tabCompentencia' });\n    }\n    this.menuTipo.push({ label: this.translateSvc.instant('objetivo_especifico'), command: async (event) => { await this.seleccionarTipo('tabObjetivoEspecifico', this.translateSvc.instant('objetivo_especifico')); this.utilsService.resizeWindowIFrame() }, id: 'tabObjetivoEspecifico' });\n    this.menuTipo.push({ label: this.translateSvc.instant('puntajeunidad'), command: async (event) => { await this.seleccionarTipo('tabPuntajeUnidad', this.translateSvc.instant('puntajeunidad')); this.utilsService.resizeWindowIFrame() }, id: 'tabPuntajeUnidad' });\n\n    this.tareaActualNombre = this.menuTipo[0].label;\n    this.opcionTipo = this.menuTipo[0].id;\n  }\n\n  seleccionarTipo(parametro: string, tareaActualNombre: string) {\n    this.opcionTipo = parametro;\n    this.tareaActualNombre = tareaActualNombre;\n  }\n\n  public setFiltro(filtro: PlanillaGestionModel): void {\n    this.filtro = filtro;\n  }\n  public setVer(ver: boolean): void {\n    this.ver = ver;\n  }\n\n\n  verDetalle(event) {\n    try {\n      this.planillaGestionDTO = event.data;\n      this.popupPeriodoEvaluacion.setPlanillaGestionDTO(this.planillaGestionDTO);\n      this.planillaGestionDTO.fechaInicial = new Date(this.planillaGestionDTO.fechaInicial);\n      this.planillaGestionDTO.fechaFinal = new Date(this.planillaGestionDTO.fechaFinal);\n      this.popupPeriodoEvaluacion.setNuevo(false);\n      this.popupPeriodoEvaluacion.setMostrar(true);\n      this.vistaVisualizar = null;\n      this.cargarListas();\n      this.cargarMenuLateral();\n      this.ver = true;\n    } catch (error) {\n      console.log(error)\n    }\n  }\n\n  private cargarMenuLateral(): void {\n    this.menuLateral = [];\n    if (!this.saraAplicationSvc.isAutoServicioPortal()) {\n      this.menuLateral.push({ label: this.translateSvc.instant(\"link_evaluacion\"), id: \"Evaluaciones\", command: async (event) => { await this.verGestionHojaVida(); this.utilsService.resizeWindowIFrame() }, visible: true, icon: ImagenesCons.list_alt });\n      this.menuLateral.push({ label: this.translateSvc.instant(\"programacion\"), id: \"programacion\", command: async (event) => { await this.verListadoFacesGestion(); this.utilsService.resizeWindowIFrame() }, visible: true, icon: ImagenesCons.paragraph });\n      this.menuLateral.push({ label: this.translateSvc.instant(\"fase\"), id: \"fase\", command: async (event) => { await this.verPopupListaPeriodoEvaluacionesBean(); this.utilsService.resizeWindowIFrame() }, visible: true, icon: ImagenesCons.log_book });\n      this.menuLateral.push({ label: this.translateSvc.instant(\"link_cargar\"), id: \"link_cargar\", command: async (event) => { await this.cargar(); this.utilsService.resizeWindowIFrame() }, visible: true, icon: ImagenesCons.disk_open });\n    }\n\n  }\n\n  public async cargar(){\n    this.setRenderPrincipal('cargarRespuesta');\n    await this.utilsService.sleep(10);\n    this.cargarArchivo.inicializar('periodoevaluaciones',this.gestionPeriodoDTO,[]);\n  }\n\n  setRenderPrincipal(event){\n    this.renderPrincipal = event;\n  }\n\n  verListadoFacesGestion(){\n    this.contenidoPagina = true;\n    this.popupPeriodoEvaluacion.verListadoFacesGestion();\n  }\n\n  verPopupListaPeriodoEvaluacionesBean(){\n    this.popupPeriodoEvaluacion.verPopupListaPeriodoEvaluacionesBean();\n  }\n\n  public async verGestionHojaVida(){\n\t\ttry {\n      this.setVistaVisualizar(\"detalleEvaluador\");\n      this.contenidoPagina = true;\n      await this.utilsService.sleep(20);\n\t\t\tlet evaluacionHojaDTO = new EvaluacionHojaModel();\n\t\t\tevaluacionHojaDTO.planillaPeriodo = (this.planillaGestionDTO.llavePlanillaGestion);\n\t\t\tevaluacionHojaDTO.llaveherramienta =(this.planillaGestionDTO.gestionPeriodo);\n\t\t\tevaluacionHojaDTO.nombrePlanillaPeriodo =(this.planillaGestionDTO.descripcion);\n\t\t\tevaluacionHojaDTO.nombreherramienta =(this.filtro.nombreGestionPeriodo);\n\t\t\tevaluacionHojaDTO.fechaInicial =(this.planillaGestionDTO.fechaInicial);\n\t\t\tevaluacionHojaDTO.fechaFinal = (this.planillaGestionDTO.fechaFinal);\n\t\t\tevaluacionHojaDTO.tipoPlanilla = (this.planillaGestionDTO.tipoEvaluador);\n\t\t\tevaluacionHojaDTO.noPersona = (this.planillaGestionDTO.noPersona);\n      await this.listadoHerramientas.iniciaConPeriodo(evaluacionHojaDTO);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n  public async cargarListas(event?): Promise<void> {\n    let fases = await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO', null, false, { gestionPeriodo: this.planillaGestionDTO.gestionPeriodo })).toPromise()\n    this.listaFases = (await this.generalSvc.queryForList(new GeneralModel('FaseGestionDTO', null, false, { gestionPeriodo: this.planillaGestionDTO.gestionPeriodo })).toPromise()).map((data) => ({key:data.llave, label:data.descripcion}));\n    let planilla = new PlanillaGestionModel();\n    planilla.gestionPeriodo = (this.planillaGestionDTO.gestionPeriodo);\n    planilla.tipoEvaluador = (\"M\");\n    planilla.tipo = 'B';\n    this.listaProceso = (await this.generalSvc.queryForList(new GeneralModel('PlanillaGestionDTO', null, false, planilla)).toPromise()).map(data => ({value: data.llavePlanillaGestion, label: data.descripcion}));\n  }\n\n  public isMostrarFechas(): boolean {\n    return this.periodoEvaluacionPipe.ABIERTO != (this.planillaGestionDTO.tipoEvaluador);\n  }\n\n  public nuevo() {\n    try {\n      this.planillaGestionDTO = new PlanillaGestionModel();\n      this.planillaGestionDTO.gestionPeriodo = (this.filtro.gestionPeriodo);\n      this.popupPeriodoEvaluacion.inicializar(this.planillaGestionDTO, true, \"#{listaPlanillaGestionBean.recargaListado}\");\n    } catch (e) {\n      console.log(e);\n    }\n    return null;\n  }\n\n  isNuevo() {\n\n  }\n\n\n  public setUnidad(unidad: UnidadOrganizacionalModel): void {\n\t\ttry {\n\t\t\tthis.filtroObjetivosEspecificos.empresa = (unidad.empresa);\n\t\t\tthis.filtroObjetivosEspecificos.unidadOrganizacional = (unidad.unidad);\n\t\t\tthis.filtroObjetivosEspecificos.unidadOrganizacionalNombre = (unidad.nombreUnidad);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n  public setCargo(cargo: CargoModel): void {\n\t\ttry {\n\t\t\tthis.filtroObjetivosEspecificos.empresa = (cargo.empresa);\n\t\t\tthis.filtroObjetivosEspecificos.cargo = (cargo.cargo);\n\t\t\tthis.filtroObjetivosEspecificos.cargoNombre = (cargo.descripcion);\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t}\n\n  public cambioEmpresa(vce): void{\n\t\ttry{\n\t\t\tthis.filtroObjetivosEspecificos.unidadOrganizacional =(null);\n\t\t\tthis.filtroObjetivosEspecificos.unidadOrganizacionalNombre =(null);\n\t\t\tthis.filtroObjetivosEspecificos.cargo =(null);\n\t\t\tthis.filtroObjetivosEspecificos.cargoNombre = (null);\n\t\t}catch(e){\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\t\t\n\t}\n\n  public async nuevoObjetivo(): Promise<string> {\n    let nuevo = new MetaFaseGestionModel();\n    nuevo.origen = (\"M\");\n    if (this.saraAplicationSvc.isAutoServicioPortal()) {\n      nuevo.empresa = (this.unidadFiltro.empresa);\n      nuevo.unidadOrganizacional = (this.unidadFiltro.unidad);\n      nuevo.unidadOrganizacionalNombre = (this.unidadFiltro.nombreUnidad);\n    }\n    this.setVistaVisualizar(\"definicionMeta\");\n    await this.utilsService.sleep(20);\n    this.periodoMetaFaseGestion.init(nuevo, this.planillaGestionDTO, this.unidadFiltro);\n    this.utilsService.resizeWindowIFrame();\n    return null;\n  }\n\n  public regresar() {\n    if(this.ver){\n      this.ver = false;\n    }else{\n      this.regresarVista.emit(false);\n    }\n\n    \n    return null;\n  }\n\n  async setVistaVisualizar(event) {\n    this.vistaVisualizar = event;\n    this.contenidoPagina = false;\n    await this.utilsService.sleep(20);\n  }\n  setContenido(event){\n    this.contenidoPagina = event;\n  }\n\n  handleEnterKey(event) {\n\t\tevent.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n\t}\n\n  capitalizarTexto(texto: string): string {\n    return texto.charAt(0).toUpperCase() + texto.slice(1);\n  }\n\n  transform(value?: any, ...args: any[]): any {\n    let result = value;\n    if (args[0] == 'empresa') { this.listaEmpresas?.forEach(data => { if (data.key === value) { result = data.label } }); }\n    if (args[0] == 'faseGestion') { this.listaFases?.forEach(data => { if (data.key === value) { result = data.label } }); }\n    if (args[0] == 'procesoGestion') { this.listaProceso?.forEach(data => { if (data.key === value) { result = data.label } }); }\n    return result;\n}\n\nsanitizeHtml(html: string) {\n  const invalidImagePattern = /data:image\\/jpeg;base64,\\{\\{.*?\\}\\}/g;\n  const sanitizedHtml = html.replace(invalidImagePattern, '');\n  return this.sanitizer.bypassSecurityTrustHtml(sanitizedHtml);\n}\npublic getTitulo(){\n  return this.utilsService.capitalizeFully(this.titulo);\n}\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div *ngIf=\"!contenidoPagina\">\n    <div *ngIf=\"!ver\">\n        <div class=\"flex align-items-center justify-content-between align-items-center mt-3 mb-3\">\n            <h1>{{'periodo' | translate}} {{'evaluacion' | translate}}</h1>\n            <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n                class=\"p-button-text font-semibold\"></button>\n        </div>\n        <div class=\"card\">\n            <div class=\"flex align-items-center justify-content-between align-items-center mt-3\">\n                <h5><i class=\"glyphicons glyphicons-book\"></i>{{getTitulo()}}</h5>\n                <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\" icon=\"pi pi-plus\"\n                    class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n            </div>\n            <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginador\" [rows]=\"paginator.rows\"\n                [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n                [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\"\n                [scrollable]=\"true\" [lazy]=\"false\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                (onRowSelect)=\"verDetalle($event)\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th class=\"w-6rem\">{{'periodo' | translate}}</th>\n                        <th class=\"w-6rem\">{{'descripcion' | translate}}</th>\n                        <th class=\"w-6rem\">{{'inicial' | translate}}</th>\n                        <th class=\"w-6rem\">{{'fecha' | translate}} {{'final' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-planilla let-editing=\"editing\" let-ri=\"rowIndex\">\n                    <tr [pSelectableRow]=\"planilla\">\n                        <td class=\"w-6rem\">{{planilla.tipoEvaluador | periodoEvaluacion:'tipoEvaluador'}}</td>\n                        <td class=\"w-6rem\">{{planilla.descripcion}}</td>\n                        <td class=\"w-6rem\">{{planilla.fechaInicial | date:('formatofecha'| translate)}}</td>\n                        <td class=\"w-6rem\">{{planilla.fechaFinal | date:('formatofecha'| translate)}}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n    </div>\n    <div *ngIf=\"ver\">\n        <div *ngIf=\"renderPrincipal == null\">\n        <div class=\"flex align-items-center justify-content-between align-items-center mt-3 mb-3\">\n            <h1>{{'periodo' | translate}} {{'evaluacion' | translate}}</h1>\n            <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n                class=\"p-button-text font-semibold\"></button>\n        </div>\n        <p-menubar [model]=\"menuLateral\" class=\"menu-accion-sara\"></p-menubar>\n        \n            <div class=\"mt-3\">\n                <div class=\"card\">\n                    <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{getTitulo()}}</h5>\n                    <p-tabView (onChange)=\"setVistaVisualizar(null)\">\n                        <!-- BASICA -->\n                        <p-tabPanel [header]=\"translateSvc.instant('basica')\">\n                            <div class=\"p-fluid p-formgrid grid mt-1\">\n                                <div class=\"field col-12 md:col-6 lg:col-6\">\n                                    <span class=\"p-float-label\">\n                                        <input pInputText type=\"text\" id=\"descripcion\"\n                                            [(ngModel)]=\"popupPeriodoEvaluacion.planillaGestionDTO.descripcion\"\n                                            maxlength=\"20\"\n                                            [class]=\"popupPeriodoEvaluacion.clickGuardar && !popupPeriodoEvaluacion.utilsService.validarCampoObligatorio(popupPeriodoEvaluacion.planillaGestionDTO.descripcion) ? 'ng-invalid ng-dirty' : ''\" />\n                                        <label htmlFor=\"descripcion\">{{('descripcion') | translate}} *</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-12 md:col-6 lg:col-6\"\n                                    *ngIf=\"!popupPeriodoEvaluacion.yaHayAbierto\">\n                                    <span class=\"p-float-label\">\n                                        <p-dropdown id=\"columna\" [options]=\"listaEvaluador\" optionValue=\"codigo\"\n                                            (change)=\"popupPeriodoEvaluacion.cambiarPeriodo($event)\"\n                                            [class]=\"popupPeriodoEvaluacion.clickGuardar && !popupPeriodoEvaluacion.utilsService.validarCampoObligatorio(popupPeriodoEvaluacion.planillaGestionDTO.tipoEvaluador) ? 'ng-invalid ng-dirty' : ''\"\n                                            [(ngModel)]=\"popupPeriodoEvaluacion.planillaGestionDTO.tipoEvaluador\"\n                                            optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                                        <label htmlFor=\"columna\">{{'periodo' | translate}} *</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-12 md:col-3 lg:col-6\"\n                                    *ngIf=\"popupPeriodoEvaluacion.isMostrarFechas()\">\n                                    <span class=\"p-float-label\">\n                                        <p-calendar [(ngModel)]=\"popupPeriodoEvaluacion.planillaGestionDTO.fechaInicial\"\n                                            dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\"\n                                            [autoZIndex]=\"false\">\n                                        </p-calendar>\n                                        <label htmlFor=\"id_enganche\">{{'fechainicial' | translate}} *</label>\n                                    </span>\n                                </div>\n                                <div class=\"field col-12 md:col-3 lg:col-6\"\n                                    *ngIf=\"popupPeriodoEvaluacion.isMostrarFechas()\">\n                                    <span class=\"p-float-label\">\n                                        <p-calendar [(ngModel)]=\"popupPeriodoEvaluacion.planillaGestionDTO.fechaFinal\"\n                                            dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\"\n                                            [autoZIndex]=\"false\">\n                                        </p-calendar>\n                                        <label htmlFor=\"id_enganche\">{{'fechafinal' | translate}} *</label>\n                                    </span>\n                                </div>\n                            </div>\n                            <div class=\"flex justify-content-end\">\n                                <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n                                    *ngIf=\"popupPeriodoEvaluacion.nuevo && (controlFuncionalidad.getControlFuncionalidad('pereva:crearNuevo'))\"\n                                    icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n                                    (click)=\"popupPeriodoEvaluacion.actualizar()\">\n                                </button>\n                                <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n                                    *ngIf=\"!popupPeriodoEvaluacion.nuevo && (controlFuncionalidad.getControlFuncionalidad('pereva:crearNuevo'))\"\n                                    icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n                                    (click)=\"popupPeriodoEvaluacion.actualizar()\">\n                                </button>\n                                <button pButton pRipple class=\"ml-2 p-button-outlined\"\n                                    *ngIf=\"!popupPeriodoEvaluacion.nuevo && controlFuncionalidad.getControlFuncionalidad('pereva:eliminar')\"\n                                    icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n                                    (click)=\"popupPeriodoEvaluacion.eliminar($event)\">\n                                </button>\n                            </div>\n\n                        </p-tabPanel>\n                        <!-- PROGRAMACION FASE -->\n                        <p-tabPanel [header]=\"this.translateSvc.instant('programacion') + ' ' + this.translateSvc.instant('fase')\">\n                            @if(vistaVisualizar == null){\n                            <div class=\"flex align-items-center justify-content-end align-items-center \">\n                                <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevaFase()\"\n                                    icon=\"pi pi-plus\"\n                                    class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n                            </div>\n                            <p-table [value]=\"listaFaseProgramacion\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n                                [paginator]=\"listaFaseProgramacion.length > 10\"\n                                [totalRecords]=\"listaFaseProgramacion.length\" [lazy]=\"false\"\n                                [showCurrentPageReport]=\"true\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\n                                editMode=\"row\" responsiveLayout=\"scroll\"\n                                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                [rowsPerPageOptions]=\"[10, 20, 30]\" dataKey=\"llaveTabla\" [showCurrentPageReport]=\"true\">\n                                <ng-template pTemplate=\"header\">\n                                    <tr>\n                                        <th style=\"width:30%\">{{'empresa' | translate}}</th>\n                                        <th style=\"width:30%\">{{'fase' | translate}}</th>\n                                        <th style=\"width:20%\">{{'programacion' | translate}}</th>\n                                        <th style=\"width:20%\"> {{'limite' | translate}}</th>\n                                        <th> </th>\n                                    </tr>\n                                    <tr class=\" TablaNuevoRegistro\" *ngIf=\"nuevoVista\">\n                                        <td style=\"width:30%\">\n                                            <p-dropdown [options]=\"listaEmpresas\" optionValue=\"key\" optionLabel=\"label\"\n                                                [autoDisplayFirst]=\"false\"\n                                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(faseProgramar.empresa) && validando)\"\n                                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(faseProgramar.empresa) && validando)\"\n                                                [(ngModel)]=\"faseProgramar.empresa\" appendTo=\"body\"\n                                                [autoZIndex]=\"false\">\n                                            </p-dropdown>\n                                        </td>\n                                        <td style=\"width:30%\">\n                                            <p-dropdown [options]=\"listaFases\" optionValue=\"key\" optionLabel=\"label\"\n                                                [autoDisplayFirst]=\"false\"\n                                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(faseProgramar.faseGestion) && validando)\"\n                                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(faseProgramar.faseGestion) && validando)\"\n                                                [(ngModel)]=\"faseProgramar.faseGestion\" appendTo=\"body\"\n                                                [autoZIndex]=\"false\">\n                                            </p-dropdown>\n                                        </td>\n                                        <td style=\"max-width:20%\">\n\n                                            <p-calendar [(ngModel)]=\"faseProgramar.programacion\" dateFormat=\"dd/mm/yy\"\n                                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(faseProgramar.programacion) && validando)\"\n                                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(faseProgramar.programacion) && validando)\"\n                                                [showIcon]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\">\n                                            </p-calendar>\n\n\n                                        </td>\n                                        <td style=\"max-width: 22rem;min-width: 20rem;\">\n                                            <p-calendar [(ngModel)]=\"faseProgramar.limite\" dateFormat=\"dd/mm/yy\"\n                                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(faseProgramar.limite) && validando)\"\n                                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(faseProgramar.limite) && validando)\"\n                                                [showIcon]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\">\n                                            </p-calendar>\n                                        </td>\n                                        <td>\n                                            <div class=\"flex justify-content-end align-items-center\">\n                                                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                    (click)=\"adicionaFase()\"\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>\n                                                <button pButton pRipple type=\"button\" (click)=\"cancelarNuevo()\"\n                                                    icon=\"pi pi-times\"\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>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                                <ng-template pTemplate=\"body\" let-fasePrograma let-editing=\"editing\" let-ri=\"rowIndex\">\n                                    <tr [pEditableRow]=\"fasePrograma\">\n                                        <td style=\"width:20%\">\n                                            {{transform(fasePrograma.empresa,'empresa')}}\n                                        </td>\n                                        <td style=\"width:20%\">\n                                            {{transform(fasePrograma.faseGestion,'faseGestion')}}\n                                        </td>\n                                        <td style=\"width:30%\">\n                                            {{fasePrograma.programacion | date:('formatofecha'| translate)}}\n                                        </td>\n                                        <td style=\"width:20%\">\n                                            {{fasePrograma.limite | date:('formatofecha'| translate) }}\n                                        </td>\n                                        <td>\n                                            <div class=\"flex justify-content-end align-items-center\">\n                                                <!-- ELIMINAR -->\n                                                <button *ngIf=\"!editing\" pButton pRipple type=\"button\"\n                                                    pDeleteEditableRow icon=\"pi pi-trash\"\n                                                    (click)=\"eliminarFase($event,fasePrograma)\"\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>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                            </p-table>\n                            }\n\n                        </p-tabPanel>\n                        <!-- OBJETIVO FASE -->\n                        <p-tabPanel [header]=\"this.translateSvc.instant('objetivo') + ' ' + this.translateSvc.instant('fase')\">\n                            @if(vistaVisualizar == null){\n                            <div class=\"flex align-items-center justify-content-end align-items-center \">\n                                <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoObjetivo()\"\n                                    icon=\"pi pi-plus\"\n                                    class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n                            </div>\n                            <p-table [value]=\"paginadorMetaFaseGestion\" styleClass=\"p-datatable-striped\"\n                                [rows]=\"paginatorMetaFaseGestion.rows\" selectionMode=\"single\"\n                                [paginator]=\"paginatorMetaFaseGestion.totalRecords > paginatorMetaFaseGestion.rows\"\n                                [totalRecords]=\"paginatorMetaFaseGestion.totalRecords\" [lazy]=\"true\"\n                                [showCurrentPageReport]=\"true\" scrollDirection=\"both\" scrollDirection=\"horizontal\"\n                                responsiveLayout=\"scroll\" (onRowSelect)=\"verObjetivo($event)\"\n                                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                (onLazyLoad)=\"loadMetaFaseGestion($event)\" [rowsPerPageOptions]=\"[10, 20, 30]\"\n                                dataKey=\"variable\" [showCurrentPageReport]=\"true\">\n                                <ng-template pTemplate=\"header\">\n                                    <tr>\n                                        <th style=\"width:30%\">{{'tema' | translate}}</th>\n                                        <th style=\"width:30%\">{{'fase' | translate}}</th>\n                                        <th style=\"width:30%\">{{'proceso' | translate}} {{'gestion' | translate}}</th>\n                                        <th style=\"width:10%\"> </th>\n                                    </tr>\n                                </ng-template>\n                                <ng-template pTemplate=\"body\" let-objetivo let-editing=\"editing\" let-ri=\"rowIndex\">\n                                    <tr [pSelectableRow]=\"objetivo\">\n                                        <td style=\"width:30%\">\n                                            {{objetivo.tema}}\n                                        </td>\n                                        <td style=\"width:30%\">\n                                            {{objetivo.descripcionFase}}\n                                        </td>\n                                        <td style=\"width:30%\">\n                                            {{objetivo.descripcionProcesoGestion}}\n                                        </td>\n                                        <td style=\"width:10%\">\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                            </p-table>\n                            }\n                            @if(vistaVisualizar == 'definicionMeta'){\n                                <app-periodo-meta-fase-gestion #periodoMetaFaseGestion (regresar)=\"setVistaVisualizar($event)\">\n                                </app-periodo-meta-fase-gestion>\n                            }\n                        </p-tabPanel>\n                        <!-- OBJETIVO ESPECIFICO -->\n                        <p-tabPanel [header]=\"this.translateSvc.instant('objetivo_especifico')\">\n                            @if(vistaVisualizar == null){\n                            <div class=\"flex align-items-center justify-content-between align-items-center \">\n                                <app-filtro-general #filtro [filtros]=\"filters\" (metodoRegresar)=\"loadMetaFaseGestionEspecifico($event)\">\n                                    <ng-template let-form>\n                                        <ng-container [formGroup]=\"form\">\n                                            <div class=\"flex mt-3\">\n                                                <!-- FASE -->\n                                                <div class=\"mr-3 w-full\">\n                                                    <span class=\"p-float-label\">\n                                                        <p-dropdown [autoDisplayFirst]=\"false\" id=\"empresa\" [showClear]=\"true\"\n                                                            [options]=\"this.listaFases\" formControlName=\"faseGestion\" optionLabel=\"label\"\n                                                            [(ngModel)]=\"filtroObjetivosEspecificos.faseGestion\"\n                                                            optionValue=\"key\" (onChange)=\"cargarListas($event)\">\n                                                        </p-dropdown>\n                                                        <label for=\"empresa\">{{'fase' | translate}}</label>\n                                                    </span>\n                                                </div>\n                                                <!-- PROCESO GESTION -->\n                                                <div class=\"w-full\">\n                                                    <span class=\"p-float-label\">\n                                                        <p-dropdown [autoDisplayFirst]=\"false\" id=\"estado\" [options]=\"this.listaProceso\"\n                                                            [(ngModel)]=\"filtroObjetivosEspecificos.procesoGestion\"\n                                                            [showClear]=\"true\" formControlName=\"procesoGestion\" optionLabel=\"label\" optionValue=\"value\">\n                                                        </p-dropdown>\n                                                        <label for=\"tipoPeriodo\">{{'proceso' | translate}} {{'gestion' | translate}}</label>\n                                                    </span>\n                                                </div>\n                                            </div>\n                                            <!-- EMPRESA -->\n                                            <div class=\"flex mt-3\">\n                                                <div class=\"mr-3 w-full\">\n                                                    <span class=\"p-float-label\">\n                                                        <p-dropdown [autoDisplayFirst]=\"false\" id=\"empresa\" (keydown.enter)=\"handleEnterKey($event)\"\n                                                            [options]=\"this.listaEmpresas\" formControlName=\"empresa\" [showClear]=\"true\"\n                                                            (change)=\"cambioEmpresa($event)\" optionLabel=\"label\" optionValue=\"key\"\n                                                            [(ngModel)]=\"filtroObjetivosEspecificos.empresa\">\n                                                        </p-dropdown>\n                                                        <label for=\"empresa\">{{'empresa' | translate}}</label>\n                                                    </span>\n                                                </div>\n                                                <div class=\"w-full\">\n                                                    <span class=\"p-float-label\">\n                                                        <input pInputText autofocus [(ngModel)]=\"filtroObjetivosEspecificos.objetivoGeneral\" type=\"text\" id=\"descripcion\" formControlName=\"descripcion\" autocomplete=\"off\" />\n                                                        <label for=\"descripcion\">{{'descripcion' | translate}}</label>\n                                                    </span>\n                                                </div>\n                                            </div>\n                                            <div class=\"flex mt-3\" *ngIf=\"filtroObjetivosEspecificos.empresa != null\">\n                                                <div class=\"mr-3 w-full\">\n                                                    <app-input-helper-unidad\n                                                        [readonly]=\"filtroObjetivosEspecificos.empresa == null\"\n                                                        [empresa]=\"filtroObjetivosEspecificos.empresa\"\n                                                        [label]=\"filtroObjetivosEspecificos.unidadOrganizacionalNombre ? filtroObjetivosEspecificos.unidadOrganizacionalNombre : ''\"\n                                                        required (onSelected)=\"setUnidad($event)\"\n                                                        [header]=\"this.translateService.instant('unidad' | translate) + ' '\"\n                                                        (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                                                    </app-input-helper-unidad>\n                                                </div>\n                                                <div class=\" w-full\">\n                                                    <app-input-helper-cargo [nombreInput]=\"'Cargo'\"\n                                                        (keydown.enter)=\"handleEnterKey($event)\" formControlName=\"cargo\"\n                                                        (keydown.enter)=\"handleEnterKey($event)\"\n                                                        [empresa]=\"filtroObjetivosEspecificos.empresa\"\n                                                        [label]=\"filtroObjetivosEspecificos.cargoNombre ? filtroObjetivosEspecificos.cargoNombre : ''\"\n                                                        (onSelected)=\"setCargo($event)\"></app-input-helper-cargo>\n                                                </div>\n                                            </div>\n                                            <!-- <div class=\"flex mt-3\">\n                                                    <div class=\" w-full\">\n                                                        <span class=\"p-float-label\">\n                                                            <app-input-helper-seleccion-zona-economica (onSelected)=\"setPopupZona($event) \" [(ngModel)]=\"this.filtroTodos.nombreZonaEconomica\" \n                                                                [label]=\"this.filtroTodos.nombreZonaEconomica ? this.filtroTodos.nombreZonaEconomica : ''\" (keydown.enter)=\"handleEnterKey($event)\"\n                                                                formControlName=\"nombreZonaEconomica\"></app-input-helper-seleccion-zona-economica>\n                                                        </span>\n                                                    </div>\n                                                </div> -->\n\n                                        </ng-container>\n                                    </ng-template>\n                                </app-filtro-general>\n                                <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoObjetivoEspecifico()\"\n                                    icon=\"pi pi-plus\"\n                                    class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n                            </div>\n\n                            <p-table #tablaGeneral id=\"tabla_lista_generacion_vacaciones\"\n                                [value]=\"dataModelMetaFaseGestionEspecifico\" responsiveLayout=\"scroll\"\n                                [paginator]=\"paginatorMetaFaseGestionEspecifico.totalRecords > 10\" [scrollable]=\"true\"\n                                selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n                                [rows]=\"10\" [totalRecords]=\"paginatorMetaFaseGestionEspecifico.totalRecords\"\n                                [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n                                (onLazyLoad)=\"loadMetaFaseGestionEspecifico($event)\"\n                                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\"\n                                (onRowSelect)=\"verObjetivoEspecifico($event)\" dataKey=\"llaveTabla\">\n                                <ng-template pTemplate=\"header\">\n                                    <tr>\n                                        <th class=\"w-12rem\">{{'fase' | translate}}</th>\n                                        <th class=\"w-12rem\">{{'proceso' | translate}} {{'gestion' | translate}}</th>\n                                        <th class=\"w-24rem\">{{'' | translate}}</th>\n                                        <th class=\"w-12rem\">{{'descripcion' | translate}}</th>\n                                    </tr>\n                                </ng-template>\n                                <ng-template pTemplate=\"body\" let-objetivoEsp>\n                                    <tr>\n                                        <td class=\"w-12rem\" [pSelectableRow]=\"objetivoEsp\">\n                                            {{objetivoEsp.descripcionFase}}\n                                        </td>\n                                        <td class=\"w-12rem\" [pSelectableRow]=\"objetivoEsp\">\n                                            {{objetivoEsp.descripcionProcesoGestion}}\n                                        </td>\n                                        <td class=\"w-12rem\" [pSelectableRow]=\"objetivoEsp\">\n                                            <div columns=\"1\" style=\"text-align: left;\">\n                                                <span class=\"font-semibold\">{{'empresa' | translate}}:\n                                                </span>{{objetivoEsp.nombreEmpresa}}\n                                                <br>\n                                                <span class=\"font-semibold\">{{'cargo' | translate}}: </span>\n                                                {{objetivoEsp.cargoNombre}}\n                                                <br>\n                                                <span class=\"font-semibold\">{{'unidad' | translate}}: </span>\n                                                {{objetivoEsp.unidadOrganizacionalNombre}}\n                                            </div>\n                                        </td>\n                                        <td class=\"w-24rem\" [pSelectableRow]=\"objetivoEsp\">\n                                            <div [innerHTML]=\"sanitizeHtml(objetivoEsp.objetivoGeneral)\"></div>\n                                        </td>\n                                    </tr>\n                                </ng-template>\n                                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                            </p-table>\n                        }\n                        @if(vistaVisualizar == 'definicionMeta'){\n                            <app-periodo-meta-fase-gestion #periodoMetaFaseGestionEspecifico (regresar)=\"setVistaVisualizar($event)\">\n                            </app-periodo-meta-fase-gestion>\n                        }\n                        </p-tabPanel>\n                        <!-- PUNTAJE UNIDAD -->\n                        <p-tabPanel [header]=\"this.translateSvc.instant('puntajeunidad')\">\n                            @if(vistaVisualizar == null){\n                                <div class=\"flex align-items-center justify-content-end align-items-center \">\n                                    <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoPuntajeUnidad()\"\n                                        icon=\"pi pi-plus\"\n                                        class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n                                </div>\n                                <p-table #tablaGeneral id=\"loadPuntajeUnidad\" [value]=\"paginadorPuntajeUnidad\"\n                                    responsiveLayout=\"scroll\" [paginator]=\"paginatorPuntajeUnidad.totalRecords > 10\"\n                                    [scrollable]=\"true\" selectionMode=\"single\" scrollDirection=\"horizontal\"\n                                    styleClass=\"p-datatable-striped\" [rows]=\"10\"\n                                    [totalRecords]=\"paginatorPuntajeUnidad.totalRecords\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                                    [showCurrentPageReport]=\"true\" (onLazyLoad)=\"loadPuntajeUnidad($event)\"\n                                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\"\n                                    (onRowSelect)=\"verPuntajeUnidad($event)\" dataKey=\"llaveTabla\">\n                                    <ng-template pTemplate=\"header\">\n                                        <tr>\n                                            <th class=\"w-12rem\">{{'empresa' | translate}}</th>\n                                            <th class=\"w-24rem\">{{'unidad' | translate}}</th>\n                                            <th class=\"w-12rem\">{{'puntaje' | translate}}</th>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"body\" let-puntajeUnidad>\n                                        <tr>\n                                            <td class=\"w-12rem\" [pSelectableRow]=\"puntajeUnidad\">\n                                                {{puntajeUnidad.nombreEmpresa}}\n                                            </td>\n                                            <td class=\"w-12rem\" [pSelectableRow]=\"puntajeUnidad\">\n                                                {{puntajeUnidad.nombreUnidad}}\n                                            </td>\n                                            <td class=\"w-12rem\" [pSelectableRow]=\"puntajeUnidad\">\n                                                {{puntajeUnidad.puntaje}}\n                                            </td>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                </p-table>\n                             } \n                             @if(vistaVisualizar == 'puntajeUnidad') {\n                                <app-puntaje-unidad #puntajeUnidad (regresar)=\"setVistaVisualizar($event)\"></app-puntaje-unidad>\n                             }\n                        \n                        </p-tabPanel>\n                        <!-- COMPETENCIA -->\n                        <p-tabPanel [header]=\"this.translateSvc.instant('competencias')\">\n                            @if(vistaVisualizar == null){\n                                <div class=\"flex align-items-center justify-content-end align-items-center \">\n                                    <button pButton label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoCompetencia()\"\n                                        icon=\"pi pi-plus\"\n                                        class=\"p-ripple p-element p-button p-component p-button-secondary mb-2\"></button>\n                                </div>\n                                <p-table [value]=\"paginadorCompetencias\" styleClass=\"p-datatable-striped\" [rows]=\"10\"\n                                    [paginator]=\"paginatorCompetencias.totalRecords > 10\"\n                                    (onRowSelect)=\"competenciaVer($event)\"\n                                    [totalRecords]=\"paginatorCompetencias.totalRecords\" [lazy]=\"true\"\n                                    (onLazyLoad)=\"loadCompetencias($event)\" [showCurrentPageReport]=\"true\"\n                                    scrollDirection=\"both\" scrollDirection=\"horizontal\" editMode=\"row\"\n                                    responsiveLayout=\"scroll\" selectionMode=\"single\"\n                                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n                                    [rowsPerPageOptions]=\"[10, 20, 30]\" dataKey=\"llaveTabla\" [showCurrentPageReport]=\"true\">\n                                    <ng-template pTemplate=\"header\">\n                                        <tr>\n                                            <th style=\"width:45%\">{{'descripcion' | translate}}</th>\n                                            <th style=\"width:45%\">{{'tipo' | translate}} {{'competencia' | translate}}</th>\n                                            <th style=\"width:10%\"> </th>\n                                        </tr>\n                                        <tr class=\" TablaNuevoRegistro\" *ngIf=\"competenciaNueva\">\n                                            <td style=\"width:45%\">\n                                                <p-dropdown [options]=\"listCompetencias\" optionValue=\"key\"\n                                                    optionLabel=\"label\" [autoDisplayFirst]=\"false\"\n                                                    [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(nuevaCompetencia.competencia) && validaCompetencia)\"\n                                                    [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(nuevaCompetencia.competencia) && validaCompetencia)\"\n                                                    [(ngModel)]=\"nuevaCompetencia.competencia\" appendTo=\"body\"\n                                                    [autoZIndex]=\"false\">\n                                                </p-dropdown>\n                                            </td>\n                                            <td style=\"width:45%\">\n                                            </td>\n                                            <td style=\"width:10%\">\n                                                <div class=\"flex justify-content-end align-items-center\">\n                                                    <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                                        (click)=\"guardarCompetencia()\"\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>\n                                                    <button pButton pRipple type=\"button\"\n                                                        (click)=\"cancelarNuevaCompetencia()\" icon=\"pi pi-times\"\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>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"body\" let-competencia let-editing=\"editing\" let-ri=\"rowIndex\">\n                                        <tr>\n                                            <td style=\"width:45%\" [pSelectableRow]=\"competencia\">\n                                                {{competencia.nombreCompetencia}}\n                                            </td>\n                                            <td style=\"width:45%\" [pSelectableRow]=\"competencia\">\n                                                {{competencia.tipoCompetencia}}\n                                            </td>\n                                            <td style=\"width:10%\">\n                                                <div class=\"flex justify-content-end align-items-center\">\n                                                    <!-- ELIMINAR -->\n                                                    <button *ngIf=\"!editing\" pButton pRipple type=\"button\"\n                                                        pDeleteEditableRow icon=\"pi pi-trash\"\n                                                        (click)=\"eliminarCompetencia($event,competencia)\"\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>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                    </ng-template>\n                                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                                </p-table>\n                            }\n                            @if(vistaVisualizar == 'verCompetencia'){\n                                <app-listado-filtro-compentencia #filtroCompetencia (regresar)=\"setVistaVisualizar($event)\">\n                                </app-listado-filtro-compentencia>\n                            }\n                        </p-tabPanel>\n\n                    </p-tabView>\n                </div>\n            </div>\n\n            <!-- <div *ngIf=\"opcionTipo === 'tabFase'\">\n                    <table>\n                        <thead>\n                            <tr>\n                                <th>{{ basicBundleBase.tema }}</th>\n                                <th>{{ basicBundleBase.fase }}</th>\n                                <th>{{ basicBundleBase.proceso }} {{ basicBundleBase.gestion }}</th>\n                            </tr>\n                        </thead>\n                        <tbody>\n                            <tr *ngFor=\"let objetivo of listaPlanillaGestionBean.paginadorMetaFaseGestion\"\n                                (click)=\"verObjetivo(objetivo)\">\n                                <td>{{ objetivo.tema }}</td>\n                                <td>{{ objetivo.descripcionFase }}</td>\n                                <td>{{ objetivo.descripcionProcesoGestion }}</td>\n                            </tr>\n                        </tbody>\n                    </table>\n                    <button (click)=\"nuevoObjetivo()\">{{ basicBundleBase.link_nuevo }}</button>\n                </div> -->\n\n            <!-- Repeat similar structures for other tabs -->\n\n            <!-- <div *ngIf=\"opcionTipo === 'tabProgramacion'\">\n                    <app-programacion-fase-evaluacion></app-programacion-fase-evaluacion>\n                </div> -->\n        </div>\n        <div *ngIf=\"renderPrincipal == 'listadoFaseGestionHoja'\">\n            <app-listado-fase-gestion-hoja #listadoFaseGHoja></app-listado-fase-gestion-hoja>\n        </div>\n        <div *ngIf=\"renderPrincipal == 'cargarRespuesta'\">\n            <app-cargar-archivo-respuesta #cargarArchivo\n                (regresar)=\"setRenderPrincipal($event)\"></app-cargar-archivo-respuesta>\n        </div>\n    </div>\n</div>\n<div *ngIf=\"vistaVisualizar == 'detalleEvaluador'\">\n    <app-listado-herramientas #listadoHerramientas\n        (regresarVista)=\"setVistaVisualizar($event)\"></app-listado-herramientas>\n</div>\n\n<app-popup-periodo-evaluacion #popupPeriodoEvaluacion (setContenido)=\"setContenido($event)\">\n</app-popup-periodo-evaluacion>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, GeneralService, UtilsService } from 'general-library-union';\nimport { GestionPeriodoModel } from '../../../models/GestionPeriodoModel';\nimport { PlanillaGestionModel } from '../../../models/PlanillaGestionModel';\nimport { UnidadUsuarioModel } from '../../../../compensacion/models/UnidadUsuarioModel';\nimport { ListaPlanillaGestionComponent } from '../lista-planilla-gestion/lista-planilla-gestion/lista-planilla-gestion.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgIf } from '@angular/common'; \nimport { Constantes } from '../../../../../shared/constantes/Constantes';\n\n@Component({\n    selector: 'app-periodo-evaluaciones',\n    templateUrl: './periodo-evaluaciones.page.html',\n    styleUrls: ['./periodo-evaluaciones.page.scss'],\n    standalone: true,\n    imports: [NgIf, FormsModule, ReactiveFormsModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, ListaPlanillaGestionComponent, TranslateModule, FiltroGeneralComponent]\n})\nexport class PeriodoEvaluacionesPage implements OnInit {\n\n  public vistaVisualizar: string;\n  public paginador: GestionPeriodoModel[] = [];\n  public gestionPeriodoDTO: GestionPeriodoModel = new GestionPeriodoModel();\n  public unidadFiltro: UnidadUsuarioModel = new UnidadUsuarioModel();\n  public paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  public mostrar: boolean;\n  @ViewChild('tablaGeneral') tablaGeneral : Table;\n  @ViewChild('listaPlanillaGestion') listaPlanillaGestion : ListaPlanillaGestionComponent;\n  filters: any[];\n\n  constructor(private generalSvc: GeneralService,private saraAplicationSvc: SaraAplicacionService, private authService: AuthService, private utilsService: UtilsService,private translateService: TranslateService) { }\n\n  ngOnInit(): void {\n    this.filters = [\n      {\n        field: 'filtro',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n     ];\n     this.load(null);\n  }\n  async load(event?) {\n    try {\n      let objeto= {\n        descripcion: event?.filters?.filtro?.value ? Constantes.PORCENTAJE+event?.filters?.filtro?.value+Constantes.PORCENTAJE : null,\n        rolUsuario: this.authService.getTokenKey('aliasRol'),\n        empresaFiltro: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n        organizacionFiltro: this.authService.getTokenKey('numeroEmpresa'),\n      }\n      this.paginador = await this.generalSvc.queryForList(new GeneralModel('GestionPeriodoDTO','GestionPeriodo.consultarGestionPeriodoRolListaHerramientas',false,objeto)).toPromise();\n      this.paginator.totalRecords = await this.generalSvc.cantidadRegistros(new GeneralModel('GestionPeriodoDTO','GestionPeriodo.cantidadGestionPeriodoRolListaHerramientas',false,objeto)).toPromise();\n    } catch (error) {\n      console.trace(error)\n    }\n  }\n\n  aplicarFiltro(event){\n    if(event['filtro'] != null){\n      this.tablaGeneral.filterGlobal(event.filtro.value,'contains');\n    }else{\n      this.tablaGeneral.clear();\n    }\n    \n  }\n\n  public async verFases(evento): Promise<void>{\n\t\ttry {\n\t\t\tthis.gestionPeriodoDTO = evento.data;\n\t\t\tlet planillaGestionDTO = new PlanillaGestionModel();\n\t\t\tplanillaGestionDTO.gestionPeriodo = (this.gestionPeriodoDTO.llaveGestionPeriodo);\n\t\t\tplanillaGestionDTO.nombreGestionPeriodo = (this.gestionPeriodoDTO.descripcion);\n\t\t\tplanillaGestionDTO.tipo = (\"R\");\n      this.mostrar = true;\n      await this.utilsService.sleep(20);\n\t\t\tawait this.listaPlanillaGestion.verInformacion(planillaGestionDTO, this.unidadFiltro,this.gestionPeriodoDTO.descripcion,this.gestionPeriodoDTO);\n\t\t\t\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn ;\n\t}\n\n  setMostrar(event){\n    this.mostrar = event\n  }\n\n}\n","<div *ngIf=\"vistaVisualizar == null\">\n    <div *ngIf=\"!mostrar\">\n        <h1>{{'periodo' | translate}} {{'evaluacion' | translate}}</h1>\n        <div class=\"mb-2\">\n            <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"aplicarFiltro($event)\">\n                <ng-template let-form>\n                    <ng-container [formGroup]=\"form\">\n                        <div class=\"field\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" id=\"id_filtro\" formControlName=\"filtro\"\n                                    autocomplete=\"off\" />\n                                <label for=\"id_filtro\">{{'descripcion' | translate}}</label>\n                            </span>\n                        </div>\n                    </ng-container>\n                </ng-template>\n            </app-filtro-general>\n        </div>\n        <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginador\" [rows]=\"paginator.rows\"\n            [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n            [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\"\n            [scrollable]=\"true\" [lazy]=\"false\" [globalFilterFields]=\"['descripcion']\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" (onRowSelect)=\"verFases($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th class=\"w-6rem\">{{'herramienta'| translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-gestionperiodo let-editing=\"editing\" let-ri=\"rowIndex\">\n                <tr [pSelectableRow]=\"gestionperiodo\">\n                    <td class=\"w-6rem\">\n                        {{gestionperiodo.descripcion}}\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n    <div *ngIf=\"mostrar\" class=\"mb-1\">\n        <app-lista-planilla-gestion #listaPlanillaGestion\n            (regresarVista)=\"setMostrar($event)\"></app-lista-planilla-gestion>\n    </div>\n\n\n</div>\n\n\n<div *ngIf=\"vistaVisualizar == 'listadoFaseGestionHoja'\"></div>\n<div *ngIf=\"vistaVisualizar == 'cargarRespuesta'\"></div>\n<div *ngIf=\"vistaVisualizar == 'detalleEvaluador'\"></div>","import { UnionModel } from 'general-library-union'\nimport { HojaVidaModel } from '../../hojavida/models/HojaVidaModel';\n\nexport class DiaEventoModel extends UnionModel {\n\n\tevento:  string;\n\tfechaDia:  Date;\n\ttema:  string;\n\torigen:  string;\n\ttemaNombre:  string;\n\tinstructorEnt:  number;\n\tinstructorNombre:  string;\n\tubicacionFisica:  string;\n\tubicacionFisicaNombre:  string;\n\thorario:  string;\n\thoras:  number;\n\ttemaOtro:  string;\n\tunidad:  string;\n\trequerimiento:  string;\n\tresponsable:  number;\n\tnombreResponsable:  string;\n\tcantidad:  number;\n\tadicionadoDos:  string;\n\tfechaAdicionadoDos:  Date;\n\testado:  string;\n\trequeriomientoTexto:  string;\n\tnombreActividad:  string;\n\tnombreCurso:  string;\n\tubicacion:  string;\n\tfechafinal:  Date;\n\tfechainicial:  Date;\n\thoraTexto:  string;\n\tnombreSemana:  string;\n\tempresa:  number;\n\tvalorx:  string;\n\tdiaSemanaTexto:  string;\n\tnuevo:  boolean;\n\tfechaHasta:  Date;\n\tobservacion:  string;\n\tcentrocosto:  string;\n\tdescripcionCentroCosto:  string;\n\tzonaeconomica:  string;\n\tdescripcionZonaEconomica:  string;\n\tgrupoTalento:  string;\n\tnombreGrupoTalento:  string;\n\treserva:  number;\n\tnombreReserva:  string;\n\tdescripcionUnidad:  string;\n\tnombreEmpresa:  string;\n\tinstructorNombreExt:  string;\n\ttipoInstructor:  string;\n\tlogin:  string;\n\tcurso:  string;\n\tdescripcionEvento:  string;\n\ttipo:  string;\n\tlistaDiaEventosInterno: DiaEventoModel[];\n\thojaVidaDTO: HojaVidaModel;\n\thoraInicia: string;\n\thoraTermina: string;\n\taliasRol: string;\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ArchivoModel } from '../../hojavida/models/ArchivoModel';\n\n\n@Injectable({\n    providedIn: 'root'\n  })\nexport class ReservaSalonesService {\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n       }\n    \n      private handleError(error: HttpErrorResponse) {\n    \n        if (!error.error.traza) {\n          error.error.traza = error.error.mensaje;\n        }\n    \n        if (error.status === 500) {\n          //Llamado a interceptor\n          this.errorInterceptor.showError(JSON.stringify(error.error));\n          console.error('An error occurred:', error.error);\n        } else {\n          console.error(\n            `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n      }\n\n\n      enviarcorreosalones(objeto): Observable<any> {\n        return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/reservasalones/enviarcorreosalones`, objeto)\n        .pipe(\n          catchError(this.handleError)\n        );\n      }\n\n\n      realizarReserva(objeto): Observable<any> {\n        return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/reservasalones/realizarReserva`, objeto)\n        .pipe(\n          catchError(this.handleError)\n        );\n      }\n\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DiaEventoModel } from '../../../models/DiaEventoModel';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { NgIf, DatePipe, NgFor, JsonPipe } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { AccordionModule } from 'primeng/accordion';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DialogModule } from 'primeng/dialog';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { EmpleadoModel } from '../../../../../../app/modules/compensacion/models/EmpleadoModel';\nimport { EmpleadoService } from '../../../../../../app/modules/compensacion/services/empleado.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, GeneralService, ToastService, UtilsService, } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { HojaVidaModel } from '../../../../../../app/modules/hojavida/models/HojaVidaModel';\nimport { UnidadOrganizacionalModel } from '../../../../../../app/modules/talento/models/UnidadOrganizacionalModel';\nimport { UbicacionFisicaModel } from '../../../../../../app/modules/compensacion/models/UbicacionFisicaModel';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputHelperEmpleadosComponent } from '../../../../../shared/componentes/input-helper-empleados/input-helper-empleados.component';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { ReservaSalonesService } from '../../../services/reserva-salones.service';\n\n@Component({\n  selector: 'app-popup-reserva-salones',\n  templateUrl: './popup-reserva-salones.component.html',\n  styleUrls: ['./popup-reserva-salones.component.scss'],\n  standalone: true,\n  imports: [\n    ConfirmPopupModule,\n    DialogModule,\n    FieldsetModule,\n    PrimeTemplate,\n    FormsModule,\n    ReactiveFormsModule,\n    DropdownModule,\n    NgIf,\n    NgFor,\n    InputHelperEmpleadoBotonComponent,\n    InputNumberModule,\n    InputTextModule,\n    InputTextareaModule,\n    ButtonDirective,\n    Ripple,\n    AccordionModule,\n    TableModule, TemplateTablaVaciaComponent,\n    CalendarModule,\n    DatePipe,\n    TranslateModule,\n    InputNumberModule,\n    InputHelperHojaVidaComponent,\n    InputHelperEmpleadosComponent,\n    JsonPipe\n\n\n  ],\n})\nexport class PopupReservaSalonesComponent implements OnInit {\n\n  @ViewChild(InputHelperHojaVidaComponent) inputhelperhoja2: InputHelperHojaVidaComponent;\n  //variables componente\n  @Output() regresar = new EventEmitter()\n  //@Input() diaEventoDTOInit: DiaEventoModel\n  public label2: string;\n  public horas: number;\n  public diaEventoDTO: DiaEventoModel = new DiaEventoModel();\n  public readonly EstadoSolicitud: string = Constantes.CONSTANTE_SI;\n  public readonly estadoReservado: string = 'R';\n  public listaCantidad;\n  public mustrapopupmanreserva: boolean = false;\n  public nuevo: boolean;\n  public obtenerdescripcionEstado: string;\n  public nombrecompletoo: string = '';\n  mapa = new Map<number, string>();\n  opciones: { label: string, value: number }[] = [];\n  //horas2: number | null = null;\n  clickGuardar: boolean = false;\n  public SaraAplicacionCedulaG;\n  nombrec;\n  booleanoempleado: boolean;\n  booleanoresponsa: boolean = false;\n  public limpiabooleano: boolean = false;\n  puedeModificar: boolean;\n  mostrarEliminar: boolean;\n  antesHoy: boolean;\n   public popmuestrareserva : boolean = false;\n\n  constructor(\n    private empleadoSvc: EmpleadoService,\n    private authService: AuthService,\n    private saraAplicacionService: SaraAplicacionService,\n    private generalsvc: GeneralService,\n    private notificacionesBusService: ToastService,\n    public translateService: TranslateService,\n    private us: UtilsService,\n    private generalPipe: GeneralPipe,\n    private reservaSalonesService: ReservaSalonesService,\n    private confirmationService: ConfirmationService,\n    public controlFuncionService: CargarControlFuncionalidadService,\n    private utilsvc: UtilsService\n\n  ) { }\n\n  async ngOnInit() {\n    this.cargacedula();\n  }\n\n  async cargacedula() {\n    this.SaraAplicacionCedulaG = await this.saraAplicacionService.getCedula();\n  }\n  async buscar(diaEventoDTO: DiaEventoModel, nuevaReserva: boolean) {    \n    let empleado: EmpleadoModel = new EmpleadoModel();\n    this.horas = null;\n    this.diaEventoDTO = diaEventoDTO;\n    if (this.diaEventoDTO.llaveTabla == null) {\n      let saraAplicacionCedula = await this.saraAplicacionService.getCedula();\n      //empleado = await this.empleadoSvc.obtenerPorCedulaActivo({empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),cedula: saraAplicacionCedula,}).toPromise();\n       empleado = await this.empleadoSvc.obtenerPorCedulaActivo({ empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), cedula: this.diaEventoDTO.responsable ? this.diaEventoDTO.responsable : saraAplicacionCedula}).toPromise();\n      if (empleado != null) {\n        this.diaEventoDTO.responsable = empleado.cedula;\n        this.diaEventoDTO.zonaeconomica = empleado.zonaEconomica;\n        this.diaEventoDTO.descripcionZonaEconomica = empleado.zonaEconomicaNombre;\n        this.diaEventoDTO.centrocosto = empleado.centroCosto;\n        this.diaEventoDTO.descripcionCentroCosto = empleado.centroCostoNombre;\n      }\n    }\n    this.listaCantidad = [];\n    let hora = this.diaEventoDTO.horaTexto;\n    let inicio: number = -1;\n    let hInicio: number | null = null;\n\n    if (hora == null || hora.length == 0) {\n      inicio = 1;\n    } else {\n      inicio = parseInt(hora.split(':')[0]);\n    }\n\n    if (this.diaEventoDTO.llaveTabla != null) {\n      let fecha: string = this.diaEventoDTO.fechaDia.getHours() + ':';\n      inicio = parseInt(fecha.split(':')[0]);\n      hInicio = inicio;\n      if (this.diaEventoDTO.fechaDia.getMinutes() == 30) {\n        hInicio += 0.5;\n      }\n    }\n\n    if (hora && hora.split(':')[1] !== '30') {\n      let horaTexto: string = `${Constantes.ESPACIO_NULO}${inicio}:30`;\n      horaTexto = horaTexto.padStart(5, '0');\n      this.listaCantidad.push(\n        inicio,\n        horaTexto + (inicio <= 11 ? ' AM' : ' PM')\n      );\n    }\n\n    for (let i = inicio + 1; i !== 22; i++) {\n      let horaTexto: string = `${Constantes.ESPACIO_NULO}${i}:00`;\n      horaTexto = horaTexto.padStart(5, '0');\n      this.listaCantidad.push(i, horaTexto + (i <= 11 ? ' AM' : ' PM'));\n\n      horaTexto = `${Constantes.ESPACIO_NULO}${i}:30`;\n      horaTexto = horaTexto.padStart(5, '0');\n      this.listaCantidad.push(i + 0.5, horaTexto + (i <= 11 ? ' AM' : ' PM'));\n    }\n\n    for (let i = 0; i < this.listaCantidad.length; i += 2) {\n      const key = this.listaCantidad[i] as number;\n      const value = this.listaCantidad[i + 1] as string;\n      this.mapa.set(key, value);\n    }\n\n    this.opciones = Array.from(this.mapa, ([key, value]) => ({ label: value, value: key }));\n\n\n    if (this.diaEventoDTO.responsable != null) {\n      let hoja = new HojaVidaModel();\n      hoja.identifica = this.diaEventoDTO.responsable;      \n      let filtro: GeneralModel = new GeneralModel('HojaVidaDTO',null,false,hoja,);\n      let temporaobjet = await this.generalsvc.queryForObject(filtro).toPromise();            \n       this.setFuncionario(temporaobjet);\n      await this.utilsvc.sleep(1500);            \n      this.nombrecompletoo = await this.getNombreCompleto(temporaobjet);                \n    }\n    this.nuevo = nuevaReserva;    \n    if (!this.nuevo) {\n      if ((this.diaEventoDTO.horas + hInicio).toString().includes(\".\")) {\n        this.horas = this.diaEventoDTO.horas + hInicio;\n    } else {\n        this.horas = Number((this.diaEventoDTO.horas + hInicio) + \".0\");\n    }\n    }\n   \n    this.verificaBotones();\n    if (this.nuevo && this.antesHoy && !this.isFuncional()) {\n      this.notificacionesBusService.showError('No posible crear reserva, fecha inferior a hoy');\n      this.mustrapopupmanreserva = false;\n      return;\n    }\n    this.mustrapopupmanreserva = true;\n    this.mostrarPopup();\n    this.obtenerdescripcionEstado = this.descripcionEstado();\n    this.popmuestrareserva = await this.isMostrarPopupEmpleado();\n  }\n\n  public isMostrarPopupEmpleado(): boolean {\n    return !(this.estadoReservado.toLowerCase().trim() === this.diaEventoDTO.estado.toLowerCase().trim()) && this.isFuncional();\n  }\n\n  async verificaBotones() {\n    this.mostrarEliminar = true;\n    this.puedeModificar = true;\n    this.antesHoy = false;\n    let hoy = (new Date());\n    this.antesHoy = hoy.getTime() > this.diaEventoDTO.fechaDia.getTime();\n    if (this.nuevo) {\n      this.mostrarEliminar = false;\n      return;\n    }\n    if (this.isFuncional() && this.isGuardar()) {\n      return;\n    }\n    if (this.antesHoy) {\n      this.mostrarEliminar = false;\n      this.puedeModificar = false;\n      return;\n    }\n    if (this.verificarControl(\"reservaeval:reservado\")) {\n      this.mostrarEliminar = this.mostrarEliminar && this.estadoReservado.toLowerCase() === this.diaEventoDTO.estado.toLowerCase();\n    }\n    else {\n      this.mostrarEliminar = this.mostrarEliminar && this.EstadoSolicitud.toLowerCase() === this.diaEventoDTO.estado.toLowerCase();\n    }\n    this.mostrarEliminar = this.mostrarEliminar && await this.saraAplicacionService.getCedula() === this.diaEventoDTO.responsable;\n    this.puedeModificar = this.mostrarEliminar && this.verificarControl(\"reservaeval:cambiardatos\");\n  }\n\n\n  public verificarControl(control) {\n    return this.controlFuncionService.getControlFuncionalidad(control);\n  }\n\n\n  isFuncional(): boolean {\n    return this.authService.getTokenKey('tipoLogin') == 'U';\n  }\n\n  async setFuncionario(hojaVidaDTO: HojaVidaModel) {        \n    if (hojaVidaDTO != null ) {\n      //let saraAplicacionCedula = await this.saraAplicacionService.getCedula();\n      let empleado = await this.empleadoSvc.obtenerPorCedulaActivo({empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),cedula: hojaVidaDTO.identifica,}).toPromise();      \n      if (empleado != null) {\n        this.inputhelperhoja2.validaboleano(false)\n        this.diaEventoDTO.responsable = empleado.cedula;\n        this.diaEventoDTO.zonaeconomica = empleado.zonaEconomica;\n        this.diaEventoDTO.descripcionZonaEconomica = empleado.zonaEconomicaNombre;\n        this.diaEventoDTO.centrocosto = empleado.centroCosto;\n        this.diaEventoDTO.descripcionCentroCosto = empleado.centroCostoNombre;\n        this.diaEventoDTO.responsable = hojaVidaDTO.identifica;\n        this.diaEventoDTO.hojaVidaDTO = hojaVidaDTO;\n        this.diaEventoDTO.empresa = empleado.empresa;\n        this.diaEventoDTO.nombreEmpresa = empleado.nombreEmpresa;\n        if (\n          empleado.unidadFuncion != null &&\n          empleado.unidadFuncion !== Constantes.PUNTO\n        ) {\n          this.diaEventoDTO.unidad = empleado.unidadFuncion;\n        } else {\n          this.diaEventoDTO.unidad = empleado.unidad;\n        }\n        if (this.diaEventoDTO.unidad != null) {\n          let unidad = new UnidadOrganizacionalModel();\n          unidad.unidad = this.diaEventoDTO.unidad;\n          unidad.empresa = empleado.empresa;\n          let filtro: GeneralModel = new GeneralModel('UnidadOrganizacionalDTO', null, null, unidad,);\n\n          unidad = await this.generalsvc.queryForObject(filtro).toPromise();\n          this.diaEventoDTO.descripcionUnidad = unidad.nombreUnidad;\n        }\n      }\n      else {\n        this.notificacionesBusService.showWarning('La cedula seleccionada no tiene contratos activos');\n        this.inputhelperhoja2.validaboleano(true)\n      }\n    }\n    \n    \n  }\n\n  mostrarPopup() { }\n\n  puedeModificarmetodo(): boolean {\n    const condicion1: boolean = (this.estadoReservado != this.diaEventoDTO.estado) && this.SaraAplicacionCedulaG == this.diaEventoDTO.reserva;\n    return condicion1 || this.nuevo;\n  }\n\n  descripcionEstado() {\n    if (!this.isGuardar()) {\n      return '-';\n    } else if (\n      this.diaEventoDTO &&\n      this.diaEventoDTO.estado &&\n      this.diaEventoDTO.estado ===\n      this.EstadoSolicitud\n    ) {\n      return 'Solicitud';\n    } else {\n      return 'Reservado';\n    }\n  }\n\n\n  validar(diaEventoDTO: DiaEventoModel): boolean {\n    let validador: boolean = true;\n    validador = validador && this.us.validarCampoObligatorio(diaEventoDTO.temaOtro);\n    validador = validador && this.us.validarCampoObligatorio(diaEventoDTO.requerimiento);\n    validador = validador && this.us.validarCampoObligatorio(diaEventoDTO.cantidad);\n    validador = validador && this.us.validarCampoObligatorio(diaEventoDTO.responsable);\n    validador = validador && this.us.validarCampoObligatorio(diaEventoDTO.zonaeconomica);\n    validador = validador && this.us.validarCampoObligatorio(diaEventoDTO.reserva);\n    validador = validador && this.us.validarCampoObligatorio(diaEventoDTO.nombreEmpresa);\n    \n\n    \n    diaEventoDTO.reserva ? this.booleanoempleado = false : this.booleanoempleado = true;\n    diaEventoDTO.responsable ? this.booleanoresponsa = false : this.booleanoresponsa = true;\n    return validador;\n  }\n\n  guardarAction() {\n    if (!this.validar(this.diaEventoDTO)) {\n      this.notificacionesBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      this.clickGuardar = true;\n      return;\n    }\n    this.enviarMail();\n  }\n  async enviarMail() {\n    let rutaPlantillas = 'ruta_plantillas';\n    let horasTermina = this.horas;\n    let fechaHoraInicia: Date = this.diaEventoDTO.fechaDia;\n    let horasInicia = fechaHoraInicia.getHours();\n    if (fechaHoraInicia.getMinutes() === 30) {\n      horasInicia += 0.5;\n    }\n    this.diaEventoDTO.horas = horasTermina - horasInicia;\n    let fechaHoraInicial: Date = new Date(this.diaEventoDTO.fechaDia.getTime());\n    fechaHoraInicial.setHours(fechaHoraInicial.getHours() + Math.floor(this.diaEventoDTO.horas));\n    if (this.diaEventoDTO.horas % 1 === 0.5) {\n      fechaHoraInicial.setMinutes(fechaHoraInicial.getMinutes() + 30);\n    }\n    fechaHoraInicial.setSeconds(0);\n    this.diaEventoDTO.fechaHasta = fechaHoraInicial;\n    let saraAplicacionCedula = await this.saraAplicacionService.getCedula();\n    let objetof = {\n      evento: this.diaEventoDTO,\n      cedula: saraAplicacionCedula,\n      nuevo: this.nuevo\n    }\n    this.diaEventoDTO = await this.reservaSalonesService.realizarReserva(objetof).toPromise();\n    if (!this.nuevo) {\n      //info(\"Registro actualizado correctamente.\");\n      this.notificacionesBusService.showSuccess('Registro actualizado correctamente');\n    } else {\n      //info(\"Registro guardado correctamente.\");\n      this.notificacionesBusService.showSuccess('Registro guardado correctamente.');\n    }\n    this.ocultarPopup();\n    if (!this.diaEventoDTO.hojaVidaDTO?.email) {\n      return;\n    }\n    if (!this.diaEventoDTO.reserva) {\n      return;\n    }\n    let mapaParametros: Map<string, string> = new Map<string, string>();\n    let ubicacionFisicaDTO: UbicacionFisicaModel = new UbicacionFisicaModel();\n    ubicacionFisicaDTO.ubicacionFisica = this.diaEventoDTO.ubicacionFisica;\n    let filtro: GeneralModel = new GeneralModel('UbicacionFisicaDTO', null, null, ubicacionFisicaDTO,);\n    ubicacionFisicaDTO = await this.generalsvc.queryForObject(filtro).toPromise()\n    let hojaVidaDTO: HojaVidaModel = new HojaVidaModel();\n    hojaVidaDTO.identifica = this.diaEventoDTO.reserva;\n    let filtro2: GeneralModel = new GeneralModel('HojaVidaDTO', null, null, hojaVidaDTO,);\n    hojaVidaDTO = await this.generalsvc.queryForObject(filtro2).toPromise()\n    if (!hojaVidaDTO || !hojaVidaDTO.email) {\n      return;\n\n    }\n    let solicitante: HojaVidaModel = new HojaVidaModel();\n    solicitante.identifica = this.diaEventoDTO.responsable;\n    let filtro3: GeneralModel = new GeneralModel('HojaVidaDTO', null, null, solicitante);\n    solicitante = await this.generalsvc.queryForObject(filtro3).toPromise()\n    \n    this.nombrecompletoo = this.getNombreCompleto(solicitante);\n    if (!solicitante) {\n      return;\n    }\n    let plantilla: string = \"\";\n    let asunto: string = \"\";\n    if (this.estadoReservado === this.diaEventoDTO.estado) {\n      //plantilla = ReservaSalonesCons.PLANTILLA__RESERVA_MODIFICADA;\n      plantilla = 'notificacionReservaModificadaSalon.html';\n      //asunto = ReservaSalonesCons.ASUNTO_RESERVA_MODIFICADA;\n      asunto = 'Reserva Modificada Sal\\u00F3n';\n    } else {\n      plantilla = 'notificacionSolicitudReservaSalon.html';\n      asunto = 'ReservaSalonesCons.ASUNTO_SOLICITUD_RESERVA';\n    }\n    const minutosFin: string = this.esHoraEnPunto(horasTermina) ? \":00\" : \":30\";\n    const minutosInicio: string = this.esHoraEnPunto(horasInicia) ? \":00\" : \":30\";\n    let horaFin: string = this.conversorHoraMilitar(horasTermina);\n    horaFin = horaFin.slice(0, -3) + minutosFin + horaFin.slice(-3);\n    let horaInicio: string = this.conversorHoraMilitar(horasInicia);\n    horaInicio = horaInicio.slice(0, -3) + minutosInicio + horaInicio.slice(-3);\n    horaInicio = horasInicia.toString();\n    horaInicio = horaInicio.slice(0, -3) + minutosInicio + horaInicio.slice(-3);\n    mapaParametros[\"nombres\"] = this.diaEventoDTO.nombreReserva;\n    mapaParametros[\"nombreSalon\"] = ubicacionFisicaDTO.descripcion;\n    mapaParametros[\"numeroAsistentes\"] = this.diaEventoDTO.cantidad + \"\";\n    mapaParametros[\"tema\"] = this.diaEventoDTO.temaOtro;\n    mapaParametros[\"dia\"] = this.diaEventoDTO;\n    mapaParametros[\"horaInicio\"] = horaInicio;\n    mapaParametros[\"horaFin\"] = horaFin;\n    mapaParametros[\"nombreSolicita\"] = this.nombrecompletoo;\n    let objet = {\n      nombres: this.diaEventoDTO.nombreReserva,\n      nombreSalon: ubicacionFisicaDTO.descripcion,\n      numeroAsistentes: this.diaEventoDTO.cantidad + \"\",\n      tema: this.diaEventoDTO.temaOtro,\n      dia: this.diaEventoDTO,\n      horaInicio: horaInicio,\n      horaFin: horaFin,\n      nombreSolicita: this.nombrecompletoo,\n      plantilla: rutaPlantillas + plantilla,\n      correodestino: hojaVidaDTO.email,\n      asunto: asunto\n    }\n    await this.reservaSalonesService.enviarcorreosalones(objet).toPromise();\n  }\n\n  reservarAction() {\n    this.correoReserva();\n  }\n  async correoReserva() {\n    let rutaPlantillas = 'ruta_plantillas';\n    this.diaEventoDTO.estado = this.estadoReservado;\n    let horasTermina = this.horas;\n    let fechaHoraInicia: Date = (this.diaEventoDTO.fechaDia);\n    let horasInicia: number = fechaHoraInicia.getHours();\n    // diaEventoDTO.setHoras(new BigDecimal(horasTermina - horasInicia));\n    this.diaEventoDTO.hojaVidaDTO.nacimiento = new Date(this.diaEventoDTO.hojaVidaDTO.nacimiento);\n    this.diaEventoDTO.hojaVidaDTO.fechaAdicionado = new Date(this.diaEventoDTO.hojaVidaDTO.fechaAdicionado);\n    this.diaEventoDTO.hojaVidaDTO.fechaModificado = new Date(this.diaEventoDTO.hojaVidaDTO.fechaModificado);\n    let filtro1: GeneralModel = new GeneralModel('DiaEventoDTO', null, null, this.diaEventoDTO);\n    await this.generalsvc.update(filtro1).toPromise();\n    let ubicacionFisicaDTO: UbicacionFisicaModel = new UbicacionFisicaModel();\n    ubicacionFisicaDTO.ubicacionFisica = this.diaEventoDTO.ubicacionFisica;\n    let filtro2: GeneralModel = new GeneralModel('UbicacionFisicaDTO', null, null, ubicacionFisicaDTO);\n    ubicacionFisicaDTO = await this.generalsvc.queryForObject(filtro2).toPromise();\n    // this.volver();\n    let mapaParametros: Map<string, string> = new Map<string, string>();\n    if (!this.diaEventoDTO.reserva) {\n      return;\n    }\n    let hojaVidaDTO: HojaVidaModel = new HojaVidaModel();\n    hojaVidaDTO.identifica = this.diaEventoDTO.responsable;\n    let filtro3: GeneralModel = new GeneralModel('HojaVidaDTO', null, null, hojaVidaDTO);\n    hojaVidaDTO = await this.generalsvc.queryForObject(filtro3).toPromise();\n    if (!hojaVidaDTO || !hojaVidaDTO.email) {\n      return;\n    }\n    const minutosFin = this.esHoraEnPunto(horasTermina) ? \":00\" : \":30\";\n    const minutosInicio = this.esHoraEnPunto(parseFloat(`${fechaHoraInicia.getHours()}.${fechaHoraInicia.getMinutes()}`)) ? \":00\" : \":30\";\n    let horaFin: string = this.conversorHoraMilitar(horasTermina);\n    horaFin = horaFin.slice(0, -3) + minutosFin + horaFin.slice(-3);\n    let horaInicio: string = this.conversorHoraMilitar(horasInicia);\n    horaInicio = horaInicio.slice(0, -3) + minutosInicio + horaInicio.slice(-3);\n    horaInicio = horasInicia.toString();\n    horaInicio = horaInicio.slice(0, -3) + minutosInicio + horaInicio.slice(-3);\n    mapaParametros['nombres'] = this.diaEventoDTO.nombreReserva;\n    mapaParametros['nombreSalon'] = ubicacionFisicaDTO.descripcion;\n    mapaParametros['numeroAsistentes'] = this.diaEventoDTO.cantidad.toString();\n    mapaParametros['tema'] = this.diaEventoDTO.temaOtro;\n    mapaParametros['dia'] = this.diaEventoDTO.fechaDia;\n    mapaParametros['horaInicio'] = horaInicio;\n    mapaParametros['horaFin'] = horaFin;\n    mapaParametros['nombreSolicita'] = hojaVidaDTO.nombreCompleto;\n    // Envío de correo\n    let objet = {\n      nombres: this.diaEventoDTO.nombreReserva,\n      nombreSalon: ubicacionFisicaDTO.descripcion,\n      numeroAsistentes: this.diaEventoDTO.cantidad + \"\",\n      tema: this.diaEventoDTO.temaOtro,\n      dia: this.diaEventoDTO,\n      horaInicio: horaInicio,\n      horaFin: horaFin,\n      nombreSolicita: this.nombrecompletoo,\n      plantilla: rutaPlantillas + 'notificacionReservaRealizadaSalon.html',\n      correodestino: hojaVidaDTO.email,\n      asunto: ' Reserva Realizada Sal\\u00F3n'\n    }\n    await this.reservaSalonesService.enviarcorreosalones(objet).toPromise();\n    this.notificacionesBusService.showSuccess('Registro actualizado correctamente');\n    this.ocultarPopup();\n  }\n\n  getNombreCompleto(hojaVida: HojaVidaModel) {\n    \n    if (hojaVida.segundoapelli != null || hojaVida.segundoapelli != undefined) {\n      if (hojaVida.primerapellid != null || hojaVida.primerapellid != undefined) {\n        if (hojaVida.nombres != null || hojaVida.nombres != undefined) {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ' + hojaVida.segundoapelli + ' ' + hojaVida.nombres;\n        } else {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ' + hojaVida.segundoapelli + ' ';\n        }\n      } else {\n        hojaVida.nombreCompleto = ' ' + hojaVida.segundoapelli + ' ' + hojaVida.nombres;\n      }\n    } else {\n      if (hojaVida.primerapellid != null || hojaVida.primerapellid != undefined) {\n        if (hojaVida.nombres != null || hojaVida.nombres != undefined) {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ' + hojaVida.nombres;\n        } else {\n          hojaVida.nombreCompleto = hojaVida.primerapellid + ' ';\n        }\n      } else {\n        hojaVida.nombreCompleto = ' ';\n      }\n    }\n    return hojaVida.nombreCompleto\n  }\n  confirmarEliminar() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      icon: 'confirmar',\n      accept: () => {\n        this.correoEliminar()\n      }\n    })\n  }\n\n  async correoEliminar() {\n    let rutaPlantillas = 'ruta_plantillas';\n    this.diaEventoDTO.hojaVidaDTO.nacimiento = new Date(this.diaEventoDTO.hojaVidaDTO.nacimiento);\n    this.diaEventoDTO.hojaVidaDTO.fechaAdicionado = new Date(this.diaEventoDTO.hojaVidaDTO.fechaAdicionado);\n    this.diaEventoDTO.hojaVidaDTO.fechaModificado = new Date(this.diaEventoDTO.hojaVidaDTO.fechaModificado);\n    let filtro: GeneralModel = new GeneralModel('DiaEventoDTO', null, null, this.diaEventoDTO,);\n    await this.generalsvc.delete(filtro).toPromise();\n    this.diaEventoDTO.estado = this.estadoReservado;\n    let horasTermina = this.horas;\n    let fechaHoraInicia = this.diaEventoDTO.fechaDia;\n    let horasInicia = fechaHoraInicia.getHours();\n    this.diaEventoDTO.horas = horasTermina - horasInicia;\n    await this.generalsvc.update(filtro).toPromise();\n    let ubicacionFisicaDTO = new UbicacionFisicaModel();\n    ubicacionFisicaDTO.ubicacionFisica = this.diaEventoDTO.ubicacionFisica;\n\n    let filtro2: GeneralModel = new GeneralModel(\n      'UbicacionFisicaDTO',\n      null,\n      null,\n      ubicacionFisicaDTO,\n    );\n\n    ubicacionFisicaDTO = await this.generalsvc.queryForObject(filtro2).toPromise();\n    this.notificacionesBusService.showSuccess(\n      'Registro eliminado correctamente',\n    );\n    this.ocultarPopup();\n    let mapaParametros;\n    let saraAplicacionCedula = await this.saraAplicacionService.getCedula();\n\n    if (\n      this.diaEventoDTO.reserva == null ||\n      saraAplicacionCedula == this.diaEventoDTO.reserva\n    ) {\n      return;\n    }\n    let hojaVidaDTO = new HojaVidaModel();\n    hojaVidaDTO.identifica = this.diaEventoDTO.reserva;\n    let filtro3: GeneralModel = new GeneralModel('HojaVidaDTO', null, null, hojaVidaDTO);\n    hojaVidaDTO = await this.generalsvc.queryForObject(filtro3).toPromise();\n    if (hojaVidaDTO == null || hojaVidaDTO.email == null) {\n      return;\n    }\n    const minutosFin: string = this.esHoraEnPunto(horasTermina) ? \":00\" : \":30\";\n    const minutosInicio: string = this.esHoraEnPunto(horasInicia) ? \":00\" : \":30\";\n    let horaFin: string = this.conversorHoraMilitar(horasTermina);\n    horaFin = horaFin.slice(0, -3) + minutosFin + horaFin.slice(-3);\n    let horaInicio: string = this.conversorHoraMilitar(horasInicia);\n    horaInicio = horaInicio.slice(0, -3) + minutosInicio + horaInicio.slice(-3);\n    horaInicio = horasInicia.toString();\n    horaInicio = horaInicio.slice(0, -3) + minutosInicio + horaInicio.slice(-3);\n    mapaParametros[\"nombres\"] = this.diaEventoDTO.nombreReserva;\n    mapaParametros[\"nombreSalon\"] = ubicacionFisicaDTO.descripcion;\n    mapaParametros[\"tema\"] = this.diaEventoDTO.temaOtro;\n    mapaParametros[\"dia\"] = this.diaEventoDTO;\n    mapaParametros[\"horaInicio\"] = horaInicio;\n    mapaParametros[\"horaFin\"] = horaFin;\n    mapaParametros[\"nombreSolicita\"] = this.nombrecompletoo;\n    let objet = {\n      nombres: this.diaEventoDTO.nombreReserva,\n      nombreSalon: ubicacionFisicaDTO.descripcion,\n      numeroAsistentes: this.diaEventoDTO.cantidad + \"\",\n      tema: this.diaEventoDTO.temaOtro,\n      dia: this.diaEventoDTO,\n      horaInicio: horaInicio,\n      horaFin: horaFin,\n      nombreSolicita: this.nombrecompletoo,\n      plantilla: rutaPlantillas + 'notificacionReservaEliminadaSalon.html',\n      correodestino: hojaVidaDTO.email,\n      asunto: 'Reserva Eliminada Sal\\u00F3n'\n    }\n    await this.reservaSalonesService.enviarcorreosalones(objet).toPromise();\n  }\n\n  esHoraEnPunto(bd: number): boolean {\n    return bd % 1 === 0;\n  }\n  conversorHoraMilitar(horas: number): string {\n    return horas.toString().padStart(2, '0') + ':00';\n  }\n\n  isGuardar() {\n    return true;\n  }\n\n  ocultarPopup() {\n\n    this.regresar.emit();\n  }\n\n  async onSelectHojaV(hojaVidaDTO: HojaVidaModel) {\n\n    if (hojaVidaDTO != null && this.diaEventoDTO != null) {\n      let saraAplicacionCedula = await this.saraAplicacionService.getCedula();\n      let empleado = await this.empleadoSvc.obtenerPorCedulaActivo({ empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')), cedula: hojaVidaDTO.identifica, }).toPromise();\n      if (empleado != null) {\n        this.nombrecompletoo = this.getNombreCompleto(hojaVidaDTO);\n        this.inputhelperhoja2.validaboleano(false)\n        this.diaEventoDTO.responsable = empleado.cedula;\n        this.diaEventoDTO.zonaeconomica = empleado.zonaEconomica;\n        this.diaEventoDTO.descripcionZonaEconomica = empleado.zonaEconomicaNombre;\n        this.diaEventoDTO.centrocosto = empleado.centroCosto;\n        this.diaEventoDTO.descripcionCentroCosto = empleado.centroCostoNombre;\n        this.diaEventoDTO.responsable = hojaVidaDTO.identifica;\n        this.diaEventoDTO.hojaVidaDTO = hojaVidaDTO;\n        this.diaEventoDTO.empresa = empleado.empresa;\n        this.diaEventoDTO.nombreEmpresa = empleado.nombreEmpresa;\n\n        if (empleado.unidadFuncion && empleado.unidadFuncion.trim() !== '' && empleado.unidadFuncion !== Constantes.PUNTO) {\n          this.diaEventoDTO.unidad = empleado.unidadFuncion;\n        } else {\n          this.diaEventoDTO.unidad = empleado.unidad;\n        }\n        if (this.diaEventoDTO.unidad && this.diaEventoDTO.unidad.trim() !== '') {\n          let unidad: UnidadOrganizacionalModel = new UnidadOrganizacionalModel();\n          unidad.unidad = this.diaEventoDTO.unidad;\n          unidad.empresa = empleado.empresa;\n          let filtro: GeneralModel = new GeneralModel('UnidadOrganizacionalDTO', null, null, unidad);\n          unidad = await this.generalsvc.queryForObject(filtro).toPromise();\n          this.diaEventoDTO.descripcionUnidad = unidad.nombreUnidad;\n        }\n      }\n      else {\n        this.notificacionesBusService.showWarning('La cedula seleccionada no tiene contratos activos');\n        this.diaEventoDTO.nombreEmpresa = null\n        this.diaEventoDTO.unidad = null\n        this.diaEventoDTO.zonaeconomica = null\n        this.diaEventoDTO.centrocosto = null\n        this.inputhelperhoja2.validaboleano(true)\n      }\n    }\n  }\n\n  cargarPersona(hojaVidaDTO: HojaVidaModel) {\n    if (this.diaEventoDTO != null) {\n      this.diaEventoDTO.reserva = hojaVidaDTO.identifica;\n      this.diaEventoDTO.nombreReserva = hojaVidaDTO.nombreCompleto;\n    }\n  }\n\n  isMostrarReservar(): boolean {\n    if (this.nuevo) {\n      return false;\n    }\n    return this.isGuardar() && (this.diaEventoDTO != null &&\n      this.diaEventoDTO.estado != null &&\n      this.diaEventoDTO.estado == (this.EstadoSolicitud));\n  }\n\n  get unidadDescripcion(): string {\n    return `${this.diaEventoDTO.unidad ? this.diaEventoDTO.unidad + ' - ' : ''}  ${this.diaEventoDTO.descripcionUnidad ? this.diaEventoDTO.descripcionUnidad : ''}`;\n  }\n  get zonaecoDescripcion(): string {\n    \n    return `${this.diaEventoDTO.zonaeconomica ? this.diaEventoDTO.zonaeconomica + ' - ' : ''}  ${this.diaEventoDTO.descripcionZonaEconomica ? this.diaEventoDTO.descripcionZonaEconomica : ''}`;\n  }\n  get ccostoDescripcion(): string {\n    return `${this.diaEventoDTO.centrocosto ? this.diaEventoDTO.centrocosto + ' - ' : ''}  ${this.diaEventoDTO.descripcionCentroCosto ? this.diaEventoDTO.descripcionCentroCosto : ''}`;\n  }\n  public listaComandos(comando: string) {\n    return !this.controlFuncionService.getControlFuncionalidad(comando);\n  }\n\n\n}\n\n","<p-dialog id=\"input-helper-cargar-archivo\" header=\"{{'reservarsalones' | translate }}\"\n    [(visible)]=\"mustrapopupmanreserva\" appendTo=\"body\" [modal]=\"true\" (onHide)=\"ocultarPopup()\"\n    [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '65vw' }\">\n\n    <p-confirmPopup></p-confirmPopup>\n\n\n    <div class=\"p-fluid p-formgrid grid\">\n\n        <!-- Estado -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"descripcionPlanilla\" [disabled]=\"true\" [(ngModel)]=\"obtenerdescripcionEstado\">\n                <label htmlFor=\"descripcionPlanilla\">{{'estado' | translate}} </label>\n            </span>\n        </div>\n\n        <!-- Dia -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"descripcionPlanilla\" [disabled]=\"true\" [(ngModel)]=\"diaEventoDTO.nombreSemana\">\n                <label htmlFor=\"descripcionPlanilla\">{{'dia' | translate}} </label>\n            </span>\n        </div>\n\n        <!-- Fecha -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar dateFormat=\"dd/mm/yy\" [disabled]=\"true\" [(ngModel)]=\"diaEventoDTO.fechaDia\"\n                    [showIcon]=\"true\" appendTo=\"body\"></p-calendar>\n                <label htmlFor=\"id_enganche\">{{'fecha' | translate}}</label>\n            </span>\n        </div>\n        <!-- Tema -->\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n                <textarea pInputText type=\"text\" [(ngModel)]=\"diaEventoDTO.temaOtro\" [class.ng-dirty]=\"clickGuardar\"\n                    [required]=\"true\" style=\"height: 42px !important;  min-height: 42px;\"\n                    class=\"w-full min-h-60 max-h-60\"></textarea>\n                <label htmlFor=\"id_observacion\">{{'tema' | translate}} *</label>\n            </span>\n        </div>\n\n        <!-- Hora Inicio -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar dateFormat=\"dd/mm/yy\" [timeOnly]='true' [showTime]=\"true\" [disabled]=\"true\"\n                    [(ngModel)]=\"diaEventoDTO.fechaDia\" [showIcon]=\"true\" appendTo=\"body\"></p-calendar>\n                <label htmlFor=\"id_enganche\">{{'horainicio' | translate}} *</label>\n            </span>\n        </div>\n\n        <!-- Hora Termina -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown id=\"dato\" [autoDisplayFirst]=\"false\" optionLabel=\"label\" optionValue=\"value\" appendTo=\"body\"\n                [class.ng-dirty]=\"clickGuardar\" [required]=\"true\"  [autoZIndex]=\"false\" [options]=\"this.opciones\" [(ngModel)]=\"this.horas\"></p-dropdown>\n                <label htmlFor=\"id_enganche\">{{'horatermina' | translate}} *</label>\n            </span>\n        </div>\n        <!-- Numero Asitente -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-inputNumber type=\"number\" [class.ng-dirty]=\"clickGuardar\" [required]=\"true\" maxlength=\"5\"\n                    [(ngModel)]=\"diaEventoDTO.cantidad\"></p-inputNumber>\n                <label htmlFor=\"id_enganche\">{{'numeroasistentes' | translate}} *</label>\n            </span>\n        </div>\n        <!-- Solicitante -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <app-input-helper-hoja-vida [readonly]=\"false\"\n                [readonly]=\"!popmuestrareserva\"   [label]=\"diaEventoDTO.responsable ? diaEventoDTO.responsable +' '+ nombrecompletoo: nombrecompletoo\"\n                    [limpiabooleano]=\"limpiabooleano\" [booleano]=\"booleanoresponsa\"\n                    [header]=\"translateService.instant('solicitante')+' *' \"\n                    (onSelected)=\"onSelectHojaV($event)\"></app-input-helper-hoja-vida>\n            </span>\n        </div>\n\n        <!-- REsponsable de REservacion -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <app-input-helper-empleados [header]=\"translateService.instant('responsable_reserva')+' *'\"\n                    [booleano]=\"booleanoempleado\" [class.ng-dirty]=\"clickGuardar\" [readonly]=\"false\"\n                    [label]=\"diaEventoDTO.nombreReserva ? diaEventoDTO.nombreReserva: '' \" (onSelected)=\"cargarPersona($event)\">\n                </app-input-helper-empleados>\n            </span>\n        </div>\n\n        <!-- Empresa -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"descripcionPlanilla\" [class.ng-dirty]=\"clickGuardar\" [required]=\"true\"\n                    [(ngModel)]=\"diaEventoDTO.nombreEmpresa\" [disabled]=\"true\">\n                <label htmlFor=\"descripcionPlanilla\">{{'empresa' | translate}} * </label>\n            </span>\n        </div>\n\n\n        <!-- Unidad -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"descripcionPlanilla\" [(ngModel)]=\"unidadDescripcion\" [disabled]=\"true\">\n                <label htmlFor=\"descripcionPlanilla\">{{'unidad' | translate}} * </label>\n            </span>\n        </div>\n\n        \n        <!-- <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"descripcionPlanilla\" [(ngModel)]=\"diaEventoDTO.unidad\" [disabled]=\"true\">\n                <label htmlFor=\"descripcionPlanilla\">{{'unidad' | translate}} * </label>\n            </span>\n        </div> -->\n\n        <!-- zonaeconomica -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"descripcionPlanilla\" [class.ng-dirty]=\"clickGuardar\" [required]=\"true\"\n                    [(ngModel)]=\"zonaecoDescripcion\" [disabled]=\"true\">\n                <label htmlFor=\"descripcionPlanilla\">{{'zonaeconomica' | translate}} * </label>\n            </span>\n        </div>\n\n\n        <!-- centrocosto -->\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"descripcionPlanilla\" [(ngModel)]=\"ccostoDescripcion\" [disabled]=\"true\">\n                <label htmlFor=\"descripcionPlanilla\">{{'centrocosto' | translate}} * </label>\n            </span>\n        </div>\n\n\n        <!-- Reqerimiento -->\n        <div  *ngIf=\"!controlFuncionService.getControlFuncionalidad('reservaeval:reservado')\" class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n                <textarea pInputText type=\"text\" [(ngModel)]=\"diaEventoDTO.requerimiento\"\n                    [class.ng-dirty]=\"clickGuardar\" [required]=\"true\"\n                    style=\"height: 42px !important;  min-height: 42px;\" class=\"w-full min-h-60 max-h-60\"></textarea>\n                <label htmlFor=\"id_observacion\">{{'requerimiento' | translate}} *</label>\n            </span>\n        </div>\n\n\n        <!-- Observacion -->\n        <div *ngIf=\"!controlFuncionService.getControlFuncionalidad('reservaeval:reservado')\" class=\"field col-12 md:col-12 lg:col-12\">\n            <span class=\"p-float-label\">\n                <textarea pInputText type=\"text\" [(ngModel)]=\"diaEventoDTO.observacion\"\n                    style=\"height: 42px !important;  min-height: 42px;\" class=\"w-full min-h-60 max-h-60\"></textarea>\n                <label htmlFor=\"id_observacion\">{{'observacion' | translate}}</label>\n            </span>\n        </div>\n    </div>\n\n    <div class=\"flex justify-content-end col-12 p-10\">\n        <!-- *ngIf=\"puedeModificarmetodo()\" -->\n        <button *ngIf=\"isMostrarReservar()\" pButton pRipple class=\"ml-2 p-button p-button-outlined background-100\"\n            label=\"{{'link_reservar' | translate}}\"   icon=\"glyphicons glyphicons-copy\" (click)=\"reservarAction()\">\n        </button>\n\n        <button *ngIf=\"puedeModificar\" pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n            (click)=\"guardarAction()\"></button>\n\n        <!-- <button *ngIf=\"puedeModificar\" pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n            (click)=\"guardarAction()\"></button> -->\n\n\n\n\n        <button *ngIf=\"mostrarEliminar  && controlFuncionService.getControlFuncionalidad('reservaeval:eliminar')\" pButton pRipple class=\"ml-2  p-button-outlined\"\n            label=\"{{'link_eliminar' | translate}}\" icon=\"glyphicons glyphicons-bin\" (click)=\"confirmarEliminar()\">\n        </button>\n\n    </div>\n\n\n\n\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { UbicacionFisicaModel } from '../../../../compensacion/models/UbicacionFisicaModel';\nimport { DiaEventoModel } from '../../../models/DiaEventoModel';\nimport {AuthService,CargarControlFuncionalidadService,FiltroGeneralComponent,GeneralModel,GeneralService,MenuService,ToastService, UtilsService,} from 'general-library-union';\nimport { UbicacionFisicaPipe } from '../../../../../../app/modules/compensacion/pipes/ubicacionFisica.pipe';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { DatePipe, JsonPipe, NgClass, NgIf, NgStyle } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { CalendarModule } from 'primeng/calendar';\nimport { PopupReservaSalonesComponent } from '../popup-reserva-salones/popup-reserva-salones.component';\n\n@Component({\n  selector: 'app-mantenimiento-reserva-salones',\n  templateUrl: './mantenimiento-reserva-salones.component.html',\n  styleUrls: ['./mantenimiento-reserva-salones.component.scss'],\n  standalone: true,\n  imports: [\n    ConfirmPopupModule,\n    FormsModule,\n    ReactiveFormsModule,\n    InputTextModule,\n    ButtonDirective,\n    Ripple,\n    CalendarModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    NgIf,\n    DropdownModule,\n    TranslateModule,\n    FiltroGeneralComponent,\n    FieldsetModule,\n    DatePipe,\n    PopupReservaSalonesComponent,\n    NgStyle,\n    NgClass,\n    JsonPipe,\n  ],\n  providers: [ConfirmationService],\n})\nexport class MantenimientoReservaSalonesComponent implements OnInit {\n  @ViewChild(PopupReservaSalonesComponent) popupReservaSalonesComponent: PopupReservaSalonesComponent;\n\n  //public basicBundleBase: UbicacionFisicaModel;\n  @Output() regresar1 = new EventEmitter()\n\n  // Variables temporales declaradas\n  public mostrarPanelGeneral: boolean;\n  public fechaConqueSeTrabaja: Date;\n  public fechaInicial: Date;\n  public fechaFinal: Date;\n  public fLunes: Date;\n  public fMartes: Date;\n  public fMiercoles: Date;\n  public fJueves: Date;\n  public fViernes: Date;\n  public fSabado: Date;\n  public fDomingo: Date;\n  public listaDiaEventos: DiaEventoModel[];\n  public tabset: number;\n  public parametroBusqueda: String;\n  public ubicacionFisicaDTO: UbicacionFisicaModel = new UbicacionFisicaModel();\n  public basicBundleBase;\n  public mostrardetalle: boolean;\n  public nuevo: boolean;\n  public dtoEvento: DiaEventoModel = new DiaEventoModel();\n  public diaSemana: string;\n  public fechaSemana = new Date();\n  public objetoSeleccionado: UbicacionFisicaModel = new UbicacionFisicaModel();\n  public paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  @Input() dataenviar: UbicacionFisicaModel;\n  mustrapopupmanreserva: boolean;\n  public colordetexto: string = '#58ACFA';\n  diaEventoDTOInit: DiaEventoModel;\n  constructor(\n    private generalService: GeneralService,\n    private notificacionesBusService: ToastService,\n    private ubicacionfisicapipe: UbicacionFisicaPipe,\n    private authService: AuthService,\n    private menuService: MenuService,\n    private translateService: TranslateService,\n    public controlFuncionService: CargarControlFuncionalidadService,\n    private utilsService: UtilsService\n\n  ) { }\n  async ngOnInit() {\n\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('lista') +' '+ this.translateService.instant('reservarsalones'), command: (event) => this.regresar() },\n    { label: this.translateService.instant('mantenimiento') +' ' + this.translateService.instant('reservarsalones') }]);\n    this.objetoSeleccionado = this.dataenviar;\n    this.ubicacionFisicaDTO = this.dataenviar;\n    this.basicBundleBase = this.dataenviar;\n    this.buscarini();\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame();\n  }\n  rowTipo() {\n    this.cargarFechaInicialFechaFinal();\n  }\n\n  buscarini() {\n    this.cargarFechaInicialFechaFinal();\n  }\n\n  async cargarFechaInicialFechaFinal() {\n    if (!this.fechaConqueSeTrabaja) {\n      this.fechaConqueSeTrabaja = new Date();\n    }\n    const fechaInicial = new Date(this.fechaConqueSeTrabaja);\n    const fechaFinal = new Date(this.fechaConqueSeTrabaja);\n    let diaSemanaInicial = fechaInicial.getDay() - 1;\n    let diaSemanaFinal = 7 - fechaInicial.getDay();\n    if (diaSemanaInicial < 0) {\n      diaSemanaInicial = 6; // Domingo\n    }\n    fechaInicial.setDate(fechaInicial.getDate() - diaSemanaInicial);\n    fechaFinal.setDate(fechaFinal.getDate() + diaSemanaFinal);\n    this.fechaInicial = fechaInicial;\n    this.fechaFinal = fechaFinal;\n    this.fechaInicial.setHours(0, 0, 0);\n    this.fechaFinal.setHours(23, 59, 59);\n    this.cargarFechasDiasSemana();\n   \n      let dto: DiaEventoModel = new DiaEventoModel();\n      dto.fechainicial = new Date(this.fechaInicial);\n      dto.fechafinal = new Date(this.fechaFinal);\n      dto.ubicacion = this.ubicacionFisicaDTO.ubicacionFisica;\n      this.listaDiaEventos = [];\n      let objetoFiltro: GeneralModel = new GeneralModel(\n        'DiaEventoDTO',\n        'DiaEvento.consultarDiaEventoReservaSalon',\n        false,\n        dto,\n      );\n      let le = await this.generalService.queryForList(objetoFiltro).toPromise();\n      //this.reservaSvc.consultarDiaEventoReservaSalon(dto).subscribe(le => {\n      const numeroDia = [1, 2, 3, 4, 5, 6, 0];\n      const textoDia = [\n        'Lunes',\n        'Martes',\n        'Miércoles',\n        'Jueves',\n        'Viernes',\n        'Sábado',\n        'Domingo',\n      ];\n\n      for (let hora = 7; hora < 21; hora++) {\n        let listaDiaEventosInterno: DiaEventoModel[] = [];\n        let horaTexto = `${hora}:00`.padStart(5, '0');\n        for (let dsemana = 0; dsemana < numeroDia.length; dsemana++) {\n          let valorDto = this.listaHoraSemana(hora, '00', numeroDia[dsemana], le,);\n          if (!valorDto) {\n            valorDto = new DiaEventoModel();\n            valorDto.valorx = '----';\n            valorDto.nuevo = true;\n            valorDto.horaTexto = horaTexto;\n          } else {\n            valorDto.valorx = valorDto.temaOtro;\n          }\n          valorDto.diaSemanaTexto = textoDia[dsemana];\n          listaDiaEventosInterno.push(valorDto);\n        }\n        let dtoFinal = new DiaEventoModel();\n        dtoFinal.listaDiaEventosInterno = listaDiaEventosInterno;\n        dtoFinal.horaTexto = horaTexto;\n        this.listaDiaEventos.push(dtoFinal);\n        listaDiaEventosInterno = [];\n        horaTexto = `${hora}:30`.padStart(5, '0');\n        for (let dsemana = 0; dsemana < numeroDia.length; dsemana++) {\n          let valorDto = this.listaHoraSemana(hora, '30', numeroDia[dsemana], le,);\n          if (!valorDto) {\n            valorDto = new DiaEventoModel();\n            valorDto.valorx = '----';\n            valorDto.nuevo = true;\n            valorDto.horaTexto = horaTexto;\n          } else {\n            valorDto.valorx = valorDto.temaOtro;\n          }\n          valorDto.diaSemanaTexto = textoDia[dsemana];\n          listaDiaEventosInterno.push(valorDto);\n        }\n        dtoFinal = new DiaEventoModel();\n        dtoFinal.listaDiaEventosInterno = listaDiaEventosInterno;\n        dtoFinal.horaTexto = horaTexto;\n        this.listaDiaEventos.push(dtoFinal);\n      }\n      await this.utilsService.sleep(100)\n      this.utilsService.resizeWindowIFrame();\n  }\n\n  public getColorTexto(dato: string): string {\n    if (dato == 'R') {\n      return '#FAAC58';\n    } else if (dato == 'S') {\n      return '#58ACFA';\n    } else {\n      return Constantes.ESPACIO_NULO;\n    }\n  }\n\n\n  public listaHoraSemana(hora: number, minutos: string, diaSemana: number, lista: DiaEventoModel[]): DiaEventoModel | null {\n    if (lista.length > 0) {\n      for (let dto of lista) {\n        dto.fechaDia = new Date(dto.fechaDia)\n        dto.fechaHasta = new Date(dto.fechaHasta)\n        let hc = new Date(dto.fechaDia);\n        if (hc.getDay() === diaSemana) {\n          let horaTabla = parseInt(`${hora}${minutos}`, 10);\n          let horaFecha: number;\n          let horaHasta: number;\n          if (dto.fechaDia.getMinutes() === 0) {\n            horaFecha = parseInt(`${dto.fechaDia.getHours()}00`, 10);\n          } else {\n            horaFecha = parseInt(`${dto.fechaDia.getHours()}${dto.fechaDia.getMinutes()}`, 10);\n          }\n\n          if (dto.fechaHasta.getMinutes() === 0) {\n            horaHasta = parseInt(`${dto.fechaHasta.getHours()}00`, 10);\n          } else {\n            horaHasta = parseInt(`${dto.fechaHasta.getHours()}${dto.fechaHasta.getMinutes()}`, 10);\n          }\n          if (horaFecha === horaTabla) {\n            return dto;\n          } else {\n            if (horaTabla >= horaFecha && horaTabla <= horaHasta) {\n              return dto;\n            }\n          }\n        }\n      }\n    }\n\n    return null;\n  }\n\n\n  cargarFechasDiasSemana() {\n    const copiaFecha = new Date(this.fechaInicial.getTime());\n    this.fLunes = new Date(copiaFecha);\n    copiaFecha.setDate(copiaFecha.getDate() + 1);\n    this.fMartes = new Date(copiaFecha);\n    copiaFecha.setDate(copiaFecha.getDate() + 1);\n    this.fMiercoles = new Date(copiaFecha);\n    copiaFecha.setDate(copiaFecha.getDate() + 1);\n    this.fJueves = new Date(copiaFecha);\n    copiaFecha.setDate(copiaFecha.getDate() + 1);\n    this.fViernes = new Date(copiaFecha);\n    copiaFecha.setDate(copiaFecha.getDate() + 1);\n    this.fSabado = new Date(copiaFecha);\n    copiaFecha.setDate(copiaFecha.getDate() + 1);\n    this.fDomingo = new Date(copiaFecha);\n  }\n\n  async seleccionarFechaHorario(Sábado, fSabado, bean) {\n\n    this.diaSemana = Sábado;\n    this.dtoEvento = { ...bean };\n    \n    \n    try {\n      if (\n        this.ubicacionFisicaDTO.estado === this.ubicacionfisicapipe.INACTIVO &&\n        this.dtoEvento.llaveTabla == null\n      ) {\n        //  this.warning(\"No se puede realizar una nueva reservación, el salón se encuentra inactivo\");\n        this.notificacionesBusService.showWarning('No se puede realizar una nueva reservación, el salón se encuentra inactivo');\n\n        return;\n      }\n\n      this.nuevo = false;\n\n      if (\n        !this.dtoEvento.llaveTabla ||\n        this.dtoEvento.llaveTabla.trim().length === 0\n      ) {\n        this.nuevo = true;\n        this.dtoEvento.unidad = null;\n        this.dtoEvento.ubicacionFisica =\n          this.ubicacionFisicaDTO.ubicacionFisica;\n        const [horaStr, minutosStr] = this.dtoEvento.horaTexto.split(':');\n        const hora = parseInt(horaStr, 10);\n        const minutos = parseInt(minutosStr, 10);\n        this.fechaSemana.setHours(hora);\n        this.fechaSemana.setMinutes(minutos);\n        this.dtoEvento.fechaDia = new Date(this.fechaSemana);\n        this.dtoEvento.empresa = parseInt(\n          this.authService.getTokenKey('numeroEmpresa'),\n        );\n        //this.dtoEvento.estado = Constantes.CONSTANTE_SI;\n        \n         if ( await this.controlFuncionService.getControlFuncionalidad(\"reservaeval:reservado\")) {\n        // if ( this.verificarControl(\"reservaeval:reservado\")) {\n          this.dtoEvento.estado = ('R');\n        }\n        else {\n          this.dtoEvento.estado = ('S');\n        }\n        this.dtoEvento.evento = Constantes.PUNTO;\n        this.dtoEvento.tema = Constantes.PUNTO;\n        this.dtoEvento.adicionado = this.authService.getTokenKey('usuario');\n        this.dtoEvento.instructorEnt = 0;\n      } else {\n        const d = this.dtoEvento.fechaDia;\n        if (d) {\n          this.dtoEvento.horaTexto = `${d.getHours()}:${d.getMinutes()}`;\n        }\n      }\n      this.dtoEvento.nombreSemana = this.diaSemana;\n      let dia = fSabado.getDate();\n      let mes = fSabado.getMonth();\n      let anio = fSabado.getFullYear();\n      // Obtener hora, minutos y segundos del dato2\n      let horas = this.dtoEvento.fechaDia.getHours();\n      let minutos = this.dtoEvento.fechaDia.getMinutes();\n      let segundos = this.dtoEvento.fechaDia.getSeconds();\n      // Crear un nuevo Date combinando el día del dato1 y la hora del dato2\n      let nuevoDato = new Date(anio, mes, dia, horas, minutos, segundos);\n      // Mostrar el resultado\n      this.dtoEvento.fechaDia = nuevoDato;\n      //this.getBean(PopupReservaSalonesBean).buscar(\"#{reservaSalonesBean.recargar}\", ClonUtil.getClon(this.dtoEvento), nuevo);\n      //SE deja sin destino temporalemtene ?\n      this.mustrapopupmanreserva = true;\n      this.diaEventoDTOInit = this.dtoEvento\n\n      const sleep = (m) => new Promise((r) => setTimeout(r, m));\n      await sleep(50);\n      this.popupReservaSalonesComponent.buscar(this.dtoEvento, this.nuevo);\n    } catch (e) {\n      //  this.error(e);\n    }\n  }\n\n\n  async verificarControl(control) {\n    let resultaa = await this.controlFuncionService.getControlFuncionalidad(control);\n    return resultaa;\n  }\n\n  regresar() {\n    this.regresar1.emit()\n  }\n  regresapopip() {\n    this.mustrapopupmanreserva = false;\n    this.buscarini();\n  }\n}\n","<div>\n  <div class=\"flex align-items-center justify-content-between align-items-center mb-3\">\n  <h1  class=\"mb-1\">{{'reservarsalones' | translate}} </h1>\n  \n  <button pButton pRipple (click)=\"regresar()\" [label]=\"'regresar' | translate\" icon=\"pi pi-chevron-left\" \n      class=\"p-button-text font-semibold flex-shrink-0 ml-4\" ></button>\n</div>\n\n<div class=\"card\" >\n  <div class=\"mt-2\">\n    <h5><i class=\"glyphicons glyphicons-file\"></i>{{'detalle' | translate}}</h5>\n</div>\n<div class=\"p-fluid p-formgrid grid\" >\n  \n\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"id_descripcion\" [(ngModel)]=\"basicBundleBase.descripcion\"\n                    [disabled]=\"true\">\n                <label htmlFor=\"id_formatoSele\">{{'descripcion' | translate}} </label>\n            </span>\n        </div>\n\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"id_descripcion\" [(ngModel)]=\"basicBundleBase.capacidad\"\n                    [disabled]=\"true\">\n                <label htmlFor=\"id_formatoSele\">{{'Cupos' | translate}} </label>\n            </span>\n        </div>\n\n        <div class=\"field col-12 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"fechaConqueSeTrabaja\" dateFormat=\"dd/mm/yy\"\n                (onSelect)=\"rowTipo()\" [showIcon]=\"true\" appendTo=\"body\" autoZIndex=\"false\" >\n                </p-calendar>\n                <label htmlFor=\"id_legaliza\">{{'fecha' | translate}}</label>\n            </span>\n        </div>\n\n      </div>\n\n\n\n\n    \n  </div>\n\n\n    <div>\n\n<div class=\"flex justify-content-end align-items-center mb-3\">\n  <div class=\"flex\">\n\n    <div class=\"flex align-items-center mr-3\">\n      <div class=\"surface-900\tp-1 mr-2 border-circle border-none\"></div>\n      <p class=\"text-sm\t\">Disponible</p>\n    </div>\n\n    <div class=\"flex align-items-center mr-3\">\n      <div class=\"bg-blue-500 p-1 mr-2 border-circle border-none\"></div>\n      <p class=\"text-sm\t\">Solicitado</p>\n    </div>\n\n    <div class=\"flex align-items-center\">\n      <div class=\"bg-orange-500 p-1 mr-2 border-circle border-none\" ></div>\n      <p class=\"text-sm\t\">Resevado</p>\n    </div>\n\n    \n\n  \n\n  </div>\n</div>\n\n        <p-table #tablaGeneral class=\"mt-4\" [value]=\"listaDiaEventos\" [scrollable]=\"true\"  responsiveLayout=\"scroll\"\n        styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > 10\"\n        [totalRecords]=\"paginator.totalRecords\" selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n            <!-- HORA -->\n            <ng-template pTemplate=\"header\">\n                <tr>\n                  <th>{{ 'hora' | translate }}</th>\n                  <th>\n                    <div>{{ 'lunes' | translate }} {{ fLunes | date:'d' }}</div>\n                  </th>\n                  <th>\n                    <div>{{ 'martes' | translate }} {{ fMartes | date:'d'  }}</div>\n                  </th>\n                  <th>\n                    <div>{{ 'miercoles' | translate }} {{ fMiercoles | date:'d' }}</div>\n                  </th>\n                  <th>\n                    <div>{{ 'jueves' | translate }} {{ fJueves | date:'d' }}</div>\n                  </th>\n                  <th>\n                    <div>{{ 'viernes' | translate }} {{ fViernes | date:'d' }}</div>\n                  </th>\n                  <th>\n                    <div>{{ 'sabado' | translate }} {{ fSabado | date:'d' }}</div>\n                  </th>\n                  <th>\n                    <div>{{ 'domingo' | translate }} {{ fDomingo | date:'d' }}</div>\n                  </th>\n                </tr>\n              </ng-template>\n              <ng-template pTemplate=\"body\" let-varPrincipal>\n                <tr>\n                  <td>{{ varPrincipal.horaTexto }}</td>\n                  <td>\n                    <p-table [value]=\"varPrincipal.listaDiaEventosInterno\">\n                      <ng-template pTemplate=\"body\" let-bean>\n                        <tr *ngIf=\"bean.diaSemanaTexto === 'Lunes'\">\n                            <td>\n                              <a (click)=\"seleccionarFechaHorario('Lunes', fLunes, bean)\" [style.color]=\"bean.valorx != '----' ? this.getColorTexto(bean.estado): '----'\">{{ bean.valorx }}</a>\n                            </td>\n                        </tr>\n                      </ng-template>\n                    </p-table>\n                  </td>\n                  <td>\n                    <p-table [value]=\"varPrincipal.listaDiaEventosInterno\">\n                      <ng-template pTemplate=\"body\" let-bean>\n                        <tr *ngIf=\"bean.diaSemanaTexto === 'Martes'\">\n                          <td >\n                            <a (click)=\"seleccionarFechaHorario('Martes', fMartes, bean)\" [style.color]=\"bean.valorx != '----' ? this.getColorTexto(bean.estado): '----'\">{{ bean.valorx }}</a>\n                          </td>\n                        </tr>\n                      </ng-template>\n                    </p-table>\n                  </td>\n                  <td>\n                    <p-table [value]=\"varPrincipal.listaDiaEventosInterno\">\n                      <ng-template pTemplate=\"body\" let-bean>\n                        <tr *ngIf=\"bean.diaSemanaTexto === 'Miércoles'\">\n                          <td >\n                            <a (click)=\"seleccionarFechaHorario('Miércoles', fMiercoles, bean)\" [style.color]=\"bean.valorx != '----' ? this.getColorTexto(bean.estado): '----'\">{{ bean.valorx }}</a>\n                          </td>\n                        </tr>\n                      </ng-template>\n                    </p-table>\n                  </td>\n                  <td>\n                    <p-table [value]=\"varPrincipal.listaDiaEventosInterno\">\n                      <ng-template pTemplate=\"body\" let-bean>\n                        <tr *ngIf=\"bean.diaSemanaTexto === 'Jueves'\">\n                          <td>\n                            <a (click)=\"seleccionarFechaHorario('Jueves', fJueves, bean)\" [style.color]=\"bean.valorx != '----' ? this.getColorTexto(bean.estado): '----'\">{{ bean.valorx }}</a>\n                          </td>\n                        </tr>\n                      </ng-template>\n                    </p-table>\n                  </td>\n                  <td>\n                    <p-table [value]=\"varPrincipal.listaDiaEventosInterno\">\n                      <ng-template pTemplate=\"body\" let-bean>\n                        <tr *ngIf=\"bean.diaSemanaTexto === 'Viernes'\">\n                          <td>\n                            <a (click)=\"seleccionarFechaHorario('Viernes', fViernes, bean)\" [style.color]=\"bean.valorx != '----' ? this.getColorTexto(bean.estado): '----'\">{{ bean.valorx }}</a>\n                          </td>\n                        </tr>\n                      </ng-template>\n                    </p-table>\n                  </td>\n                  <td>\n                    <p-table [value]=\"varPrincipal.listaDiaEventosInterno\">\n                      <ng-template pTemplate=\"body\" let-bean>\n                        <tr *ngIf=\"bean.diaSemanaTexto === 'Sábado'\">\n                          <td>\n                            <a (click)=\"seleccionarFechaHorario('Sábado', fSabado, bean)\" [style.color]=\"bean.valorx != '----' ? this.getColorTexto(bean.estado): '----'\">{{ bean.valorx }}</a>\n                          </td>\n                        </tr>\n                      </ng-template>\n                    </p-table>\n                  </td>\n                  <td>\n                    <p-table [value]=\"varPrincipal.listaDiaEventosInterno\">\n                      <ng-template pTemplate=\"body\" let-bean>\n                        <tr *ngIf=\"bean.diaSemanaTexto === 'Domingo'\">\n                          <td>\n                            <a (click)=\"seleccionarFechaHorario('Domingo', fDomingo, bean)\" [style.color]=\"bean.valorx != '----' ? this.getColorTexto(bean.estado): '----'\">{{ bean.valorx }}</a>\n                          </td>\n                        </tr>\n                      </ng-template>\n                    </p-table>\n                  </td>\n                </tr>\n              </ng-template>\n            </p-table>\n\n\n    </div>\n\n</div>\n\n<div *ngIf=\"mustrapopupmanreserva\" >\n  <app-popup-reserva-salones (regresar)=\"regresapopip()\"  ></app-popup-reserva-salones>\n</div>\n","import { Component, OnInit, Output, ViewChild, output } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FiltroGeneralComponent, GeneralModel, GeneralService, MenuService, UtilsService } from 'general-library-union';\nimport { UbicacionFisicaModel } from '../../../../../../app/modules/compensacion/models/UbicacionFisicaModel';\nimport { MantenimientoReservaSalonesComponent } from '../mantenimiento-reserva-salones/mantenimiento-reserva-salones.component';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\n\n@Component({\n  selector: 'app-lista-reserva-salones',\n  templateUrl: './lista-reserva-salones.component.html',\n  styleUrls: ['./lista-reserva-salones.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, FormsModule, ReactiveFormsModule, InputTextModule, ButtonDirective, Ripple, CalendarModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, DropdownModule, TranslateModule, FiltroGeneralComponent, FieldsetModule, MantenimientoReservaSalonesComponent],\n  providers: [ConfirmationService]\n\n})\nexport class ListaReservaSalonesComponent implements OnInit {\n\n  @ViewChild('mantenimiento') mantenimientoReservaSalones: MantenimientoReservaSalonesComponent;\n\n  public objetoSeleccionado: UbicacionFisicaModel = new UbicacionFisicaModel;\n  filters = [];\n  public abrirmantenimiento: boolean = false;\n  public paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  public listasalones;\n  filtroBean: UbicacionFisicaModel = new UbicacionFisicaModel();\n  @Output() dataenviar: UbicacionFisicaModel;\n  constructor(\n    private translateService: TranslateService,\n    private generalService: GeneralService,\n    private confirmationService: ConfirmationService,\n    private menuService: MenuService,\n    private utilsService: UtilsService\n\n\n  ) { }\n\n  async ngOnInit() {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('lista') +' ' + this.translateService.instant('reservarsalones') }]);\n\n    this.filters = [\n      {\n        field: 'parametroBusqueda',\n        header: this.translateService.instant('descripcion'),\n        matchMode: 'contains',\n      },\n    ];\n    \n    let even = {};\n    this.cargarListaFiltros(even);\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame();\n\n\n  }\n\n\n  async cargarListaFiltros(event) {\n    this.colocarFiltro(event);\n    this.cargartablasalones();\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame();\n\n  }\n\n  async cargartablasalones() {\n    let objetoFiltro: GeneralModel = new GeneralModel('UbicacionFisicaDTO', null, false, this.filtroBean);\n    this.listasalones = await this.generalService.queryForList(objetoFiltro).toPromise();\n    this.paginator.totalRecords = this.listasalones.length;\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame();\n  }\n  async colocarFiltro(event) {\n    this.filtroBean = new UbicacionFisicaModel();\n    if (event['parametroBusqueda'] != null) {\n      this.filtroBean.descripcion = event['parametroBusqueda'] ? '%' + event['parametroBusqueda']['value'] + '%' : null;\n    } else {\n      this.filtroBean.descripcion = (null);\n    }\n    this.filtroBean.origen = (\"C\");\n    this.filtroBean.tipo = (\"I\");\n    this.filtroBean.estado = (\"A\");\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame();\n  }\n  async verAction() {\n    this.dataenviar = this.objetoSeleccionado;\n    this.abrirmantenimiento = true;\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame();\n\n    //this.MantenimientoReservaSalones.buscarini();\n  }\n\n\n  async regresar1() {\n    this.abrirmantenimiento = false;\n    this.objetoSeleccionado = null;\n    await this.utilsService.sleep(100)\n    this.utilsService.resizeWindowIFrame();\n\n    this.ngOnInit();\n  }\n\n\n\n}\n","<div *ngIf=\"!abrirmantenimiento\">\n    <p-confirmPopup [showTransitionOptions]=\"'10ms'\" [hideTransitionOptions]=\"'10ms'\"></p-confirmPopup>\n    <h1 class=\"mb-3 mt-0\">{{'reservarsalones' | translate}} </h1>\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex mt-3\">\n                        <!-- filtro descripcion-->\n                        <span class=\"p-float-label\">\n                            <input pInputText type=\"text\" id=\"descripcion\" autocomplete=\"off\"  formControlName=\"parametroBusqueda\"  />\n                            <label for=\"id_responsable\">{{'descripcion' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n\n        <!-- <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n            label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevoregistro()\">\n        </button> -->\n\n    </div>\n\n    <!-- fin filtro G-->\n    <div>\n    <p-table #tablaGeneral class=\"mt-4\" [value]=\"listasalones\" [scrollable]=\"true\"  responsiveLayout=\"scroll\"\n        styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > 10\"\n        [totalRecords]=\"paginator.totalRecords\" selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\" (onRowSelect)=\"verAction()\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [(selection)]=\"objetoSeleccionado\">\n\n        <ng-template pTemplate=\"header\">\n            <tr> \n                <th style=\"max-width: 80%\">{{'descripcion' | translate}}</th>\n                <th style=\"max-width: 20%\">{{'capacidad' | translate}}</th>\n        \n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-capacita>\n            <tr [pSelectableRow]=\"capacita\">\n             <td style=\"max-width: 80%\">{{capacita.descripcion}}</td>\n             <td style=\"max-width: 20%\">{{capacita.capacidad}}</td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>\n    </p-table>\n\n</div>\n\n</div>\n\n\n<div *ngIf=\"abrirmantenimiento\" >  \n    <app-mantenimiento-reserva-salones #mantenimiento (regresar1)=\"regresar1()\" [dataenviar]=\"dataenviar\"></app-mantenimiento-reserva-salones>\n</div>\n\n\n","import { UnionModel } from 'general-library-union'\n\nexport class MomentoEventoHorarioModel extends UnionModel {\n\t\n\tevento: string;\n\tmomentoEvento: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\thorario: string;\n\tubicacionFisica: string;\n\tgrupo: string;\n\tdescripcionUbicacionFis: string;\n\tdescripcionGrupo: string;\n\tdescripcionTema: string;\n\ttema: string;\n\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { throwError } from 'rxjs';\nimport { PlanInversionModel } from '../../saludocupacional/models/PlanInversionModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PlanInversionService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService,\n    private utilsService: UtilsService, private generalPipe: GeneralPipe) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async afectarPlanInversion(planInversion: string, login: string) {\n\n    let validador: boolean = false;\n\n    if (planInversion == null) {\n      return;\n    }\n\n    let planInversionDTO = new PlanInversionModel();\n    planInversionDTO.planInversion = planInversion;\n    planInversionDTO.loginAcceso = login;\n\n    let objetoPlan = new GeneralModel(\"PlanInversion.procedimientoPlanInversion\", null, false, planInversion);\n    const dato = await this.generalService.procedure(objetoPlan).toPromise();\n\n    await dato.then((objeto) => { if (objeto.mensaje == 'ok') { validador = true; } })\n      .catch((error) => { console.log('Error:  ', error); validador = false; });\n  }\n}\n","import { HttpClient, HttpErrorResponse, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { EventoModel } from '../../capacitacion/models/EventoModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { TipoEventoModel } from '../../capacitacion/models/TipoEventoModel';\nimport { FiltroEmpleadoFamiliaModel } from '../models/FiltroEmpleadoFamiliaModel';\nimport { AsistenteEventoModel } from '../../capacitacion/models/AsistenteEventoModel';\nimport { EvaluacionEventoModel } from '../../capacitacion/models/EvaluacionEventoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class EventoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async obtenerNumeroEvento(evento: EventoModel): Promise<number> {\n\n    let filtroAreaTalento = new GeneralModel('EventoDTO', \"Evento.obtenerNumeroEvento\", false, evento);\n    let variable = await this.generalService.queryForObject(filtroAreaTalento).toPromise();\n    if (variable != null) {\n      return new Promise((res, rej) => { res(variable + 1); });\n    }\n\n    return new Promise((res, rej) => { res(1); });\n  }\n\n  eliminarPublicacionesEventos(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/registro/eliminarPublicacionesEventos`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  crearCalendario(eventoModel: EventoModel): Observable<any> {\n\n    let formData = new FormData();\n    formData.append(\"evento\", JSON.stringify(eventoModel));\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/beneficio/crearCalendario`;\n    const req = new HttpRequest('POST', url, formData, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async procedimientoEventoCosto(llaveEvento: string, usuario: string,): Promise<boolean> {\n\n    let validador: boolean = false;\n\n    let eventoDTO = new EventoModel();\n    eventoDTO.llaveTabla = llaveEvento;\n    eventoDTO.usuario = usuario;\n\n    const dato = this.generalService.procedure(new GeneralModel('EventoDTO', 'Evento.procedimientoEvento', false, eventoDTO)).toPromise();\n\n    await dato.then((objeto) => {\n      if (objeto.mensaje == 'ok') {\n        validador = true;\n      }\n    })\n      .catch((error) => { console.log('Error:  ', error); validador = false; });\n    return validador;\n  }\n\n  enviarCorreoInvitacion(eventoModel: EventoModel, listadoCamposWhere: any[], listaSeleccionados: FiltroEmpleadoFamiliaModel[],\n    tipoEventoPaginador: TipoEventoModel) {\n\n\n    const data = {\n      eventoModel: eventoModel,\n      listadoCamposWhereModel: listadoCamposWhere,\n      listaSeleccionadosModel: listaSeleccionados,\n      tipoEventoPaginadorModel: tipoEventoPaginador\n    };\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/evento/enviarCorreoInvitacion`;\n    const req = new HttpRequest('POST', url, data, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError));\n  }\n\n  cambiarEstadoEventoBienestar(eventoModel: EventoModel, asistenteEventoModel: AsistenteEventoModel, listadoAsistenteModel: AsistenteEventoModel[],\n    estadoAsistente: String, notificarCorreo: String) {\n\n    const data = {\n      eventoModel: eventoModel,\n      asistenteEventoModel: asistenteEventoModel,\n      listadoAsistenteModel: listadoAsistenteModel,\n      estadoAsistenteModel: estadoAsistente,\n      notificarCorreoModel: notificarCorreo\n    };\n\n    const url = `${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/evento/cambiarEstadoEventoBienestar`;\n    const req = new HttpRequest('POST', url, data, {\n      reportProgress: true,\n    });\n\n    return this.httpClient.request(req).pipe(\n      catchError(this.handleError));\n  }\n\n\n  getImprimirReporteClasificacion(eventoModel: EventoModel, evaluacionEventoModel: EvaluacionEventoModel,): Observable<Blob> {\n\n    const data = {\n      eventoModel: eventoModel,\n      evaluacionEventoModel: evaluacionEventoModel,\n    };\n\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/evento/getImprimirReporteClasificacion`, data, {\n      responseType: 'blob'\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { AsistenteEventoModel } from '../models/AsistenteEventoModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { EventoModel } from '../models/EventoModel';\nimport { EvaluacionEventoModel } from '../models/EvaluacionEventoModel';\nimport { OrigenDatosPipe } from '../../../shared/pipes/origen-datos.pipe';\nimport { EventoPipe } from '../../../shared/pipes/evento.pipe';\nimport { RegistroAutorizacionModel } from '../../talento/models/RegistroAutorizacionModel';\nimport { CapacitacionEvaluacionModel } from '../../talento/models/CapacitacionEvaluacionModel';\nimport { GrupoTalentoModel } from '../models/GrupoTalentoModel';\nimport { GeneralPipe } from '../../../shared/pipes/general.pipe';\nimport { PlanInversionService } from './plan-inversion.service';\nimport { EventoService } from '../../bienestar/services/evento.service';\nimport { PlanillaModel } from '../../compensacion/models/PlanillaModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AsistenteEventoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService,\n    private utilsService: UtilsService, private eventoPipe: EventoPipe, private origenDatosPipe: OrigenDatosPipe, private generalPipe: GeneralPipe,\n    private planInversionService: PlanInversionService, private eventoService: EventoService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  crearPlanInversion(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/crearPlanInversion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  eliminarPlanInversion(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/eliminarPlanInversion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  validarManejoTemas(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/validarManejoTemas`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async cantidadCuposDisponiblesEvento(llaveEvento: string, momentoEvento: string): Promise<number> {\n\n    let asistenteEvento = new AsistenteEventoModel();\n    asistenteEvento.evento = llaveEvento;\n    asistenteEvento.momentoEvento = momentoEvento;\n\n    let filtroAsistente = new GeneralModel('AsistenteEventoDTO', \"AsistenteEvento.cantidadCuposDisponiblesEvento\", false, asistenteEvento);\n    return await this.generalService.cantidadRegistros(filtroAsistente).toPromise();\n\n  }\n\n  guardarEventoAsistente(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/guardarEventoAsistente`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  enviarcorreo(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/enviarcorreo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  inscribir(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/inscribir`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cambiarestado(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/cambiarestado`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  evaluarcontrolasistente(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/evaluarcontrolasistente`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async actualizarSancionParticipante(sancionado: AsistenteEventoModel) {\n\n    let filtro = new GeneralModel('AsistenteEventoDTO', \"AsistenteEvento.actualizarSancionAsistenteEvento\", false, sancionado);\n    await this.generalService.update(filtro).toPromise();\n  }\n  enviarDiplomas(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/enviarDiplomas`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  listaInstructorEntidad(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/listaInstructorEntidad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  programarDias(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/programarDias`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  programar(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/programar`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarInstructores(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/cargarInstructores`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  programarinstructor(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/programarinstructor`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  enviarcorreoevalua(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/enviarcorreoevalua`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cargarCamposEvaluacionsvc(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/cargarCamposEvaluacionsvc`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  actulizartabevento(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/actulizartabevento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  cargarListaInstructores(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/cargarListaInstructores`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cargalistafactorestabla(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/cargalistafactorestabla`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  guardarGenerar(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/guardarGenerar`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  imprimirDiplomas(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/imprimirDiplomas`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  descargaReporteDiploma(evento: EventoModel,lista: AsistenteEventoModel[], planilla: PlanillaModel): Observable<Blob>{\n    let formData = new FormData();\n    formData.append('evento',JSON.stringify(evento));\n    formData.append('lista',JSON.stringify(lista));\n    formData.append('planilla',JSON.stringify(planilla));\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/descargaReporteDiploma`, formData,{\n      responseType: 'blob'\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  inscribirNecesidad(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/inscribirNecesidad`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  importarCalificacion(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/importarCalificacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n\n  getImprimirReporteEvaluacion(instructor, origen, eventoModel: EventoModel, evaluacionEventoModel: EvaluacionEventoModel,): Observable<Blob> {\n\n    const data = {\n      instructor: instructor,\n      origen: origen,\n      eventoModel: eventoModel,\n      evaluacionEventoModel: evaluacionEventoModel,\n    };\n\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/getImprimirReporteEvaluacion`, data, {\n      responseType: 'blob'\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  consultarEventoAsc(general: EventoModel): Observable<EventoModel[]> {\n    return this.httpClient.post<EventoModel[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/consultarEventoAsc`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  descargaReporte(eventoModel: EventoModel): Observable<Blob> {\n\n    const data = {\n      eventoModel: eventoModel,\n    };\n\n    return this.httpClient.post(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/descargaReporte`, data, {\n      responseType: 'blob'\n    }).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cerrarEvento(general: EventoModel): Observable<EventoModel[]> {\n    return this.httpClient.post<EventoModel[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/cerrarEvento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async autorizar(asistenteEventoDTO: AsistenteEventoModel, autorizaciones: RegistroAutorizacionModel[]): Promise<AsistenteEventoModel> {\n\n    if (!(asistenteEventoDTO.estado == this.eventoPipe.ACEPTADOASIS)) {\n      return asistenteEventoDTO;\n    }\n\n    let capacitacionEvaluacionDTO = new CapacitacionEvaluacionModel();\n    capacitacionEvaluacionDTO.curso = asistenteEventoDTO.curso.toString();\n    capacitacionEvaluacionDTO.estado = this.origenDatosPipe.PROGRAMADO;\n    capacitacionEvaluacionDTO.cedula = asistenteEventoDTO.cedula;\n\n    let objetoCapacitacion = new GeneralModel('CapacitacionEvaluacionDTO', null, false, capacitacionEvaluacionDTO);\n    let necesidades: CapacitacionEvaluacionModel[] = await this.generalService.queryForList(objetoCapacitacion).toPromise();\n\n    if (necesidades != null && necesidades.length > 0) {\n      for (let element of necesidades) {\n        element.estado = this.origenDatosPipe.EJECUTADO;\n        let objetoElemento = new GeneralModel('CapacitacionEvaluacionDTO', null, false, element);\n        await this.generalService.update(objetoElemento).toPromise();\n      }\n    }\n    return asistenteEventoDTO;\n  }\n\n  enviarEmailAutorizacion(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/AsistenteEvento/enviarEmailAutorizacion`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  getnombreAsistente(dato: AsistenteEventoModel): string {\n    if (dato.nombreAsistente == null || dato.nombreAsistente != undefined) {\n      if (dato.segundoApellido != null || dato.segundoApellido != undefined) {\n        if (dato.primerApellido != null || dato.primerApellido != undefined) {\n          if (dato.nombres != null || dato.nombres != undefined) {\n            dato.nombreAsistente = dato.primerApellido + ' ' + dato.segundoApellido + ' ' + dato.nombres;\n          } else {\n            dato.nombreAsistente = dato.primerApellido + ' ' + dato.segundoApellido + ' ';\n          }\n        } else {\n          dato.nombreAsistente = ' ' + dato.segundoApellido + ' ' + dato.nombres;\n        }\n      } else {\n        if (dato.primerApellido != null || dato.primerApellido != undefined) {\n          if (dato.nombres != null || dato.nombres != undefined) {\n            dato.nombreAsistente = dato.primerApellido + ' ' + dato.nombres;\n          } else {\n            dato.nombreAsistente = dato.primerApellido + ' ';\n          }\n        } else {\n          dato.nombreAsistente = ' ';\n        }\n      }\n    }\n    return dato.nombreAsistente.toString();\n  }\n\n  async validarCupoGrupoEvento(grupoTalento: string, cantidadAInscribir: number): Promise<boolean> {\n\n    let cupoGrupo: number = 0;\n    let cupoUsado: number = cantidadAInscribir;\n\n    if (grupoTalento) {\n      let grupo = new GrupoTalentoModel();\n      grupo.llave = grupoTalento;\n      let objetoGrupo = new GeneralModel('GrupoTalentoDTO', null, false, grupo);\n      grupo = await this.generalService.queryForObject(objetoGrupo).toPromise();\n\n      cupoGrupo = grupo != null && grupo.cupo != null ? grupo.cupo : 0;\n\n      let dto = new AsistenteEventoModel();\n      dto.grupoTalento = grupoTalento;\n      dto.sinSolicitante = this.generalPipe.SI;\n      let objetoCantidad = new GeneralModel('AsistenteEventoDTO', null, false, dto);\n      cupoUsado = cupoUsado + await this.generalService.cantidadRegistros(objetoCantidad).toPromise();\n\n      if (cupoUsado > cupoGrupo) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  actualizarPlanInversion(asistenteEventoDTO: AsistenteEventoModel, usuario: string) {\n\n    let ejecutar = false;\n\n    if (!(this.eventoPipe.INSCRITOSASIS == asistenteEventoDTO.estadoAnterior)) {\n      if (asistenteEventoDTO.planInversionAntes != null && !(asistenteEventoDTO.planInversionAntes == asistenteEventoDTO.planInversion)) {\n        this.planInversionService.afectarPlanInversion(asistenteEventoDTO.planInversionAntes.toString(), usuario);\n      }\n\n      ejecutar = true;\n    }\n    else if (!(this.eventoPipe.INSCRITOSASIS == asistenteEventoDTO.estado)) {\n      ejecutar = true;\n    }\n    if (ejecutar) {\n      this.eventoService.procedimientoEventoCosto(asistenteEventoDTO.evento.toString(), usuario);\n    }\n  }\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { throwError } from 'rxjs';\nimport { AsistenteEventoModel } from '../models/AsistenteEventoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DiaEventoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService,\n    private utilsService: UtilsService,) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  async validarEventoAsistenteCapacitacionCruceDias(asistenteEvento: AsistenteEventoModel): Promise<boolean> {\n    let objetoFiltroAsistente = new GeneralModel('AsistenteEventoDTO', \"DiaEvento.cantidadDiasCruceEventoCapacitacion\", false, asistenteEvento);\n    return (await this.generalService.queryForObject(objetoFiltroAsistente).toPromise()) < 1;\n  }\n\n}\n","import { NgIf, TitleCasePipe } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { FiltroEmpleadoModel } from '../../../bienestar/models/FiltroEmpleadoModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, cargarmapasGlobal, GeneralModel, ToastService } from 'general-library-union';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { EventoModel } from '../../models/EventoModel';\nimport { EmpleadoService } from '../../../compensacion/services/empleado.service';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { PuestoTrabajoModel } from '../../../talento/models/PuestoTrabajoModel';\nimport { EmpleadoModel } from '../../../compensacion/models/EmpleadoModel';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { TipoEventoModel } from '../../models/TipoEventoModel';\nimport { EventoPipe } from '../../../../shared/pipes/evento.pipe';\nimport { AsistenteEventoService } from '../../services/asistente-evento.service';\nimport { AsistenteEventoModel } from '../../models/AsistenteEventoModel';\nimport { BienestarPipe } from '../../../bienestar/pipes/bienestar.pipe';\nimport { DiaEventoService } from '../../services/dia-evento.service';\nimport { PuestoTrabajoService } from '../../../talento/services/puesto-trabajo.service';\n\n@Component({\n  selector: 'app-input-helper-inscribir-evento-por-unidad',\n  standalone: true,\n  imports: [DialogModule,\n    FormsModule,\n    DropdownModule,\n    NgIf,\n    ButtonDirective,\n    Ripple,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    InputHelperUnidadComponent,\n    TitleCasePipe,\n    CheckboxModule,],\n  templateUrl: './input-helper-inscribir-evento-por-unidad.component.html',\n  styleUrl: './input-helper-inscribir-evento-por-unidad.component.scss'\n})\nexport class InputHelperInscribirEventoPorUnidadComponent implements OnInit {\n\n  @Output()\n  regresar: EventEmitter<any> = new EventEmitter();\n\n  @Input()\n  showDialog: boolean = false;\n\n  empleadoDTO: FiltroEmpleadoModel;\n  listadoInscribir: FiltroEmpleadoModel[];\n  seleccionar: boolean = true;\n  seleccionarTodo: boolean = false;\n  eventoDTO: EventoModel;\n  grupo: string;\n  tipoOpcion: null;\n  listaUnidadCliente: any[];\n  listaSeleccionados: FiltroEmpleadoModel[];\n  listadoAsistentes: any[];\n  correosSolicitante: AsistenteEventoModel[];\n  correosAutorizador: AsistenteEventoModel[];\n\n  constructor(public translateService: TranslateService, private generalService: GeneralService, private authService: AuthService,\n    private empleadoService: EmpleadoService, private saraAplicacionServices: SaraAplicacionService, private bienestarPipe: BienestarPipe,\n    private toastService: ToastService, private generalPipe: GeneralPipe, private cargarMapas: cargarmapasGlobal,\n    private eventoPipe: EventoPipe, private asistenteEventoService: AsistenteEventoService, private diaEventoService: DiaEventoService,\n    private puestoTrabajoService: PuestoTrabajoService\n  ) { }\n\n  ngOnInit(): void {\n    this.listadoInscribir = [];\n    this.listaUnidadCliente = [];\n    this.correosSolicitante = [];\n    this.correosAutorizador = [];\n\n    this.empleadoDTO = new FiltroEmpleadoModel();\n  }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n  async buscar(eventoDTO: EventoModel, grupo: string) {\n\n    this.empleadoDTO = new FiltroEmpleadoModel();\n    let mapa: Map<string, String> = new Map<string, String>();\n    this.eventoDTO = eventoDTO;\n    this.grupo = grupo;\n    this.tipoOpcion = null;\n\n    if (this.isCliente()) {\n\n      let empleado: EmpleadoModel = await this.empleadoService.obtenerPorCedulaActivo(\n        {\n          empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n          cedula: await this.saraAplicacionServices.getCedula()\n        }\n      ).toPromise();\n\n      if (empleado == null) {\n        this.toastService.showWarning(\"No existe un contrato relacionado\");\n        return;\n      }\n\n      let filtroPuesto = new PuestoTrabajoModel();\n      filtroPuesto.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      filtroPuesto.contratoOcupa = empleado.contrato;\n      filtroPuesto.puestoAtraer = \"Activos\";\n\n      let objFiltroPuesto = new GeneralModel('PuestoTrabajoDTO', null, false, filtroPuesto);\n      let listaPuesto: PuestoTrabajoModel[] = await this.generalService.queryForList(objFiltroPuesto).toPromise();\n\n      if (listaPuesto.length == 0) {\n        this.toastService.showWarning(\"No existe un puesto de trabajo relacionado\");\n        return;\n      }\n\n      this.listaUnidadCliente = this.puestoTrabajoService.cargarListadoUnidadCliente(listaPuesto);\n\n      if (this.listaUnidadCliente.length == 0) {\n        this.toastService.showWarning(\"No es responsable o facilitador de ninguna unidad\");\n        return;\n      }\n    }\n\n    this.cargarListado();\n  }\n\n  async cargarListado() {\n\n    this.seleccionarTodo = false;\n    this.seleccionar = true;\n\n    if (this.empleadoDTO.unidad) {\n\n      this.empleadoDTO.empleadoActivo = 'A';\n      let objetoFiltro: GeneralModel = new GeneralModel('FiltroEmpleadoDTO', null, false, this.empleadoDTO);\n      this.listadoInscribir = await this.generalService.queryForList(objetoFiltro).toPromise();\n    }\n  }\n\n  cargarUnidad(event) {\n\n    this.empleadoDTO.unidad = event.unidad;\n    this.empleadoDTO.nombreUnidad = event.nombreUnidad;\n    this.cargarListado();\n\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  async selecciona(): Promise<boolean> {\n\n    this.listaSeleccionados = [];\n\n    if (this.listadoInscribir.length > 0) {\n      for (let ser of this.listadoInscribir) {\n        if (ser.check) {\n          this.listaSeleccionados.push(ser);\n        }\n      }\n    }\n    return this.listaSeleccionados.length > 0;\n  }\n\n  cambiarEstadoCheck() {\n\n    if (this.seleccionar) {\n      this.seleccionar = false;\n      for (let per of this.listadoInscribir) {\n        per.check = true;\n      }\n    } else {\n      this.seleccionar = true;\n      for (let per of this.listadoInscribir) {\n        per.check = false;\n      }\n    }\n    return null;\n\n  }\n\n  estadoCheck(dato: any) {\n\n    let isvalidar = false;\n\n    for (let per of this.listadoInscribir) {\n      if (!per.check) {\n        isvalidar = true;\n        break;\n      }\n    }\n\n    if (isvalidar) {\n      this.seleccionar = true;\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionar = false;\n      this.seleccionarTodo = true;\n    }\n\n  }\n\n  cargarAsistenteUnidad() {\n    this.cargarListado();\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  async inscribir() {\n\n    try {\n\n      let verGrupo = false;\n\n      if (!this.empleadoDTO.unidad) {\n        this.toastService.showWarning(\"Seleccione una unidad\");\n        return;\n      }\n\n      if (!await this.selecciona()) {\n        this.toastService.showWarning(\"Debe seleccionar al menos un registro...\");\n        return;\n      }\n\n      let guardados = 0;\n      let errores = 0;\n      let repetido = 0;\n      let mensajeValidacionCruce = \"\";\n\n      const cantidad = this.listaSeleccionados.length;\n\n      const tipoEventoDTO = new TipoEventoModel();\n      tipoEventoDTO.llave = this.eventoDTO.tipoEvento;\n\n      let objFiltroTipo = new GeneralModel('TipoEventoDTO', null, false, tipoEventoDTO);\n      const tipoEventoResult = await this.generalService.queryForObject(objFiltroTipo).toPromise();\n\n      if (tipoEventoResult && tipoEventoResult.tipoParticipante === this.eventoPipe.GRUPAL) {\n        verGrupo = true;\n      }\n\n      if (verGrupo) {\n        await this.asistenteEventoService.validarCupoGrupoEvento(this.grupo, this.listaSeleccionados.length);\n      } else {\n        if (this.eventoDTO.cupoMaximo !== null && this.eventoDTO.cupoMaximo - (this.listaSeleccionados.length + cantidad) < 0) {\n          this.toastService.showWarning(\"Se ha excedido el cupo máximo de participantes\");\n          return;\n        }\n      }\n\n      const filtro = new AsistenteEventoModel();\n      filtro.evento = this.eventoDTO.llaveTabla;\n      filtro.sinSolicitante = this.generalPipe.SI;\n\n      let objFiltro = new GeneralModel('AsistenteEventoDTO', null, false, filtro);\n      this.listadoAsistentes = await this.generalService.queryForList(objFiltro).toPromise();\n\n      let registroPadre = new AsistenteEventoModel();\n      registroPadre.evento = this.eventoDTO.llaveTabla;\n      registroPadre.estado = this.eventoPipe.REGISTROPADRE;\n      registroPadre.cedula = 0;\n      registroPadre.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      registroPadre.solicita = await this.saraAplicacionServices.getCedula();\n\n      let objRegistroPadre = new GeneralModel('AsistenteEventoDTO', null, false, registroPadre);\n      const cantidadRegistros = await this.generalService.cantidadRegistros(objRegistroPadre).toPromise();\n \n      if (cantidadRegistros !== 0) {\n        registroPadre = await this.generalService.queryForObject(objRegistroPadre).toPromise();\n      } else {\n        registroPadre = await this.generalService.crearRegistro(objRegistroPadre).toPromise();\n      }\n\n      let selecionados = false;\n\n      for (const unEmpleado of this.listaSeleccionados) {\n\n        let shouldContinue = false;\n\n        if (this.listadoAsistentes && this.listadoAsistentes.length > 0) {\n          for (const asistente of this.listadoAsistentes) {\n            if (asistente.cedula && unEmpleado && unEmpleado.hojaVida && asistente.cedula === unEmpleado.hojaVida) {\n              shouldContinue = true;\n              repetido++;\n              break;\n            }\n          }\n        }\n\n        if (shouldContinue) {\n          continue; // Salta al siguiente ciclo del bucle exterior\n        }\n\n        selecionados = true;\n        const asistenteEventoDTO = new AsistenteEventoModel();\n        asistenteEventoDTO.evento = this.eventoDTO.llaveTabla;\n        asistenteEventoDTO.contrato = unEmpleado.contrato;\n        asistenteEventoDTO.cedula = unEmpleado.hojaVida;\n        asistenteEventoDTO.unidad = unEmpleado.unidad;\n        asistenteEventoDTO.planInversion = this.eventoDTO.planInversion;\n        asistenteEventoDTO.cargo = unEmpleado.cargo;\n        asistenteEventoDTO.empresa = unEmpleado.empresa;\n        asistenteEventoDTO.estado = this.eventoPipe.INSCRITOSASIS;\n        asistenteEventoDTO.inscripcion = new Date();\n        asistenteEventoDTO.grupoTalento = this.grupo;\n        asistenteEventoDTO.origenOrganizacion = this.bienestarPipe.INTERNO;\n        asistenteEventoDTO.depende = registroPadre.llaveTabla;\n\n        if (!this.validarEventoAsistenteCruce(asistenteEventoDTO)) {\n          mensajeValidacionCruce = mensajeValidacionCruce ? `${mensajeValidacionCruce}, ` : \"\";\n          mensajeValidacionCruce += asistenteEventoDTO.cedula;\n          continue;\n        }\n\n        try {\n          const autorizacionResult = await this.asistenteEventoService.autorizar(asistenteEventoDTO, null);\n          if (!autorizacionResult.autoriza || autorizacionResult.autoriza === 0) {\n            this.correosSolicitante.push(autorizacionResult);\n          } else {\n            this.correosAutorizador.push(autorizacionResult);\n          }\n\n          let objAutorizacion = new GeneralModel('AsistenteEventoDTO', null, false, asistenteEventoDTO);\n          const creado = await this.generalService.crearRegistro(objAutorizacion).toPromise();\n\n          if (!this.listadoAsistentes) {\n            this.listadoAsistentes = [];\n          }\n          this.listadoAsistentes.push(creado);\n          guardados++;\n        } catch (error) {\n          console.error(error);\n          errores++;\n        }\n\n      }\n\n      if (!selecionados) {\n        this.toastService.showWarning(\"No se presentaron inscripciones nuevas\");\n        return;\n      }\n\n      await this.enviarInscripciones();\n\n      let mensaje = \"Se inscribió a \" + guardados + \" empleado(s)\";\n\n      if (errores > 0) {\n        mensaje += \", no se pudieron inscribir a \" + errores;\n      }\n      if (repetido > 0) {\n        mensaje += \", ya existían inscritos \" + repetido;\n      }\n      if (mensajeValidacionCruce) {\n        mensaje += `. La programación se cruza con otro evento en el que se encuentran inscritos los participantes con cédulas: ${mensajeValidacionCruce}`;\n      }\n\n      this.toastService.showInfo(mensaje);\n\n      \n      this.ocultar();\n    } catch (error) {\n      console.error(error);\n    }\n\n  }\n\n  validarEventoAsistenteCruce(asistenteEventoDTO: AsistenteEventoModel) {\n    //Si es nuevo registro, modulo capacitacion y tipo interno. Valida que la programación del evento a inscribirse no se cruce con otro evento en el cual ya se encuentre inscrito. \n    if (this.eventoPipe.CAPACITACION == this.eventoDTO.origen\n      && this.bienestarPipe.INTERNO == asistenteEventoDTO.origenOrganizacion\n      && !this.diaEventoService.validarEventoAsistenteCapacitacionCruceDias(asistenteEventoDTO)) {\n      return false;\n    }\n    return true;\n  }\n\n  async enviarInscripciones() {\n\n    try {\n\n      if (this.correosSolicitante != null && this.correosSolicitante.length > 0) {\n        for (let asistenteEventoDTO of this.correosSolicitante) {\n\n          let objeto = {\n            asistenteEvento: asistenteEventoDTO,\n            cedula: asistenteEventoDTO.cedula,\n            evento: this.eventoDTO,\n            plantilla: \"notificacionAutorizacionAsistente.html\"\n          }\n\n          await this.asistenteEventoService.enviarEmailAutorizacion(objeto).toPromise();\n        }\n      }\n\n      if (this.correosAutorizador != null && this.correosAutorizador.length > 0) {\n\n        for (let asistenteEventoDTO of this.correosAutorizador) {\n\n\n          let objeto = {\n            asistenteEvento: asistenteEventoDTO,\n            cedula: asistenteEventoDTO.autoriza,\n            evento: this.eventoDTO,\n            plantilla: \"autorizacionAsistente.html\"\n          }\n\n          await this.asistenteEventoService.enviarEmailAutorizacion(objeto).toPromise();\n        }\n      }\n\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n}\n","<p-dialog header=\"{{ 'inscribir' | translate }}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"\n    (onHide)=\"ocultar()\" [breakpoints]=\"{'1366px': '75vw', '1024px': '75vw', '960px': '75vw', '640px': '100vw'}\" [style]=\"{ width: '40vw' }\">\n\n    <div class=\"mb-5 mt-3 card\">\n\n        <div class=\"mt-2\">\n            <h5><i class=\"glyphicons glyphicons-book\"></i>{{'detalle' | translate}}</h5>\n        </div>\n\n        <!-- campos -->\n        <div class=\"p-fluid p-formgrid grid\">\n\n            @if(isCliente()){\n            <!-- Unidad -->\n            <div class=\"field col-12 md:col-6 lg:col-12\">\n\n                <span class=\"p-float-label\">\n                    <p-dropdown [options]=\"listaUnidadCliente\" optionLabel=\"label\" [required]=\"true\" optionValue=\"key\"\n                        [autoDisplayFirst]=\"false\" [(ngModel)]=\"empleadoDTO.unidad\" appendTo=\"body\"\n                        (onChange)=\"cargarAsistenteUnidad()\">\n                    </p-dropdown>\n                    <label for=\"unidad\">{{'unidad' | translate}}</label>\n                </span>\n            </div>\n            }\n\n            @if(!isCliente()){\n            <!-- Unidad  -->\n            <div class=\"field col-12 md:col-6 lg:col-12\">\n\n                <app-input-helper-unidad [readonly]=\"false\"\n                    [label]=\"empleadoDTO.nombreUnidad == null ? '' : empleadoDTO.nombreUnidad.toString()\"\n                    (onSelected)=\"cargarUnidad($event)\" [(ngModel)]=\"empleadoDTO.nombreUnidad\"\n                    [header]=\"this.translateService.instant('unidad' | translate)\"\n                    (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                </app-input-helper-unidad>\n\n            </div>\n            }\n\n        </div>\n    </div>\n\n    <p-table #tablaGeneral id=\"tabla_listado_Inscritos\" [value]=\"listadoInscribir\" responsiveLayout=\"scroll\" [rows]=\"10\"\n        scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [paginator]=\"listadoInscribir.length > 10\"\n        [scrollable]=\"true\" [totalRecords]=\"listadoInscribir.length\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"max-width:50px;\" *ngIf=\"listadoInscribir.length > 0\">\n                    <p-checkbox class=\"ml-1\" [(ngModel)]=\"seleccionarTodo\" (onChange)=\"cambiarEstadoCheck()\"\n                        [binary]=\"true\" (click)=\"$event.stopPropagation()\">\n                    </p-checkbox>\n                </th>\n                <th>{{'identificacion' | translate}}</th>\n                <th>{{'empleado' | translate}}</th>\n                <th>{{'unidad' | translate}}</th>\n                <th>{{'cargo' | translate}}</th>\n            </tr>\n            <th></th>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-dato>\n            <tr>\n                <td style=\"max-width:50px\">\n                    <div class=\"field-checkbox\">\n                        <p-checkbox class=\"ml-1\" [(ngModel)]=\"dato.check\" [binary]=\"true\" (onChange)=\"estadoCheck(dato)\"\n                            (click)=\"$event.stopPropagation()\">\n                        </p-checkbox>\n                    </div>\n                </td>\n                <td>{{dato.hojaVida}}</td>\n                <td>{{dato.nombre}}</td>\n                <td>{{dato.nombreUnidad | titlecase}}</td>\n                <td>{{dato.cargo}} {{dato.nombreCargo | titlecase}}</td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n\n    <div class=\"flex justify-content-end mt-4 mb-3\">\n        <!--Inscribir-->\n        <button pButton pRipple class=\"p-button p-button-raised\" icon=\"glyphicons glyphicons-pen\"\n            label=\"{{'inscribir' | translate}}\" (click)=\"inscribir()\">\n        </button>\n\n    </div>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class TemaAsistenteModel extends UnionModel {\n\n\tasistenteEvento: String;\n\ttemaInstructor: String;\n\tfecha: Date;\n\tobservacion: String;\n\testado: String;\n\tdescripcionTemaInstructor: String;\t\n\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputHelperEmpleadoComponent } from '../../../../../../../../shared/componentes/input-helper-empleado/input-helper-empleado.component';\nimport { Constantes } from '../../../../../../../../shared/constantes/Constantes';\nimport { EventoPipe } from '../../../../../../../../shared/pipes/evento.pipe';\nimport { GeneralPipe } from '../../../../../../../../shared/pipes/general.pipe';\nimport { ListaConstantesPipe } from '../../../../../../../../shared/pipes/listaConstantes.pipe';\nimport { AuthService, GeneralModel, GeneralService, ParametrosGeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { BienestarPipe } from '../../../../../../../bienestar/pipes/bienestar.pipe';\nimport { AsistenteEventoModel } from '../../../../../../../capacitacion/models/AsistenteEventoModel';\nimport { EventoModel } from '../../../../../../../capacitacion/models/EventoModel';\nimport { TemaAsistenteModel } from '../../../../../../../capacitacion/models/TemaAsistenteModel';\nimport { AsistenteEventoService } from '../../../../../../../capacitacion/services/asistente-evento.service';\nimport { EmpresaModel } from '../../../../../../../hojavida/models/EmpresaModel';\nimport { PlanInversionModel } from '../../../../../../../saludocupacional/models/PlanInversionModel';\nimport { EventoPipe as EventoPipe_1 } from '../../../../../../../../shared/pipes/evento.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { AccordionModule } from 'primeng/accordion';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { NgIf, DatePipe, CommonModule } from '@angular/common';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { GrupoTalentoModel } from '../../../../../../../../modules/capacitacion/models/GrupoTalentoModel';\nimport { TipoEventoModel } from '../../../../../../../../modules/capacitacion/models/TipoEventoModel';\nimport { firstValueFrom } from 'rxjs';\n\n@Component({\n  selector: 'app-popup-asistente',\n  templateUrl: './popup-asistente.component.html',\n  styleUrls: ['./popup-asistente.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule,\n    DialogModule,\n    FieldsetModule,\n    PrimeTemplate,\n    FormsModule,\n    ReactiveFormsModule,\n    DropdownModule,\n    NgIf,\n    InputHelperEmpleadoBotonComponent,\n    InputNumberModule,\n    InputTextModule,\n    InputTextareaModule,\n    ButtonDirective,\n    Ripple,\n    AccordionModule,\n    TableModule, TemplateTablaVaciaComponent,\n    CalendarModule,\n    DatePipe,\n    TranslateModule,\n    EventoPipe_1, \n    CommonModule]\n})\nexport class PopupAsistenteComponent implements OnInit {\n\n  @ViewChild(InputHelperEmpleadoComponent) popUpEmpleado: InputHelperEmpleadoComponent;\n\n  public listaTemas;\n  clickGuardar: boolean = false;\n  public paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  @Input() isMostrarPopup: boolean;\n  @Input() enviadata: AsistenteEventoModel;\n  @Input() datoscrear: EventoModel;\n  @Input() isOcultarNuevo = false;\n  @Output() public regresar = new EventEmitter;\n  public formulario: FormGroup;\n  public textolabel: string = null;\n  public mostrarEditar: boolean;\n  public nombreCompleto: String;\n  public mostrarCamposIngresoDatos: boolean;\n  public mostrarGrupo: boolean = true;\n  public validacampo: boolean = false;\n\n  //listas dropdawn\n  listaOrigenAsistente\n  listaestados\n  listaPlanInversion\n  manejaTemas: boolean;\n  vistaVisualizar: string;\n  public nuevoregistro: TemaAsistenteModel;\n  public listaTemasAsistente;\n  public listaEstadoTemaAsis;\n  selecciontemporal: TemaAsistenteModel = new TemaAsistenteModel();\n  copiaSeleccion: TemaAsistenteModel;\n  estadoInscrito: boolean = false;\n  grupos: any[];\n  tipoEventoDTO: TipoEventoModel;\n\n\n\n  constructor(\n    private bienestarpipe: BienestarPipe,\n    private formBuilder: FormBuilder,\n    private eventopipe: EventoPipe,\n    private generalService: GeneralService,\n    private authService: AuthService,\n    private notificacionesBusService: ToastService,\n    private generalPipe: GeneralPipe,\n    private asistenteEventoService: AsistenteEventoService,\n    private confirmationService: ConfirmationService,\n    private cargarMapas: cargarmapasGlobal,\n    private us: UtilsService,\n    private listapipe: ListaConstantesPipe\n  ) { }\n\n  ngOnInit(): void {\n\n    this.tipoEventoDTO = new TipoEventoModel();\n    this.listaEstadoTemaAsis = this.eventopipe.MAPAESTADOTEMAASISTENTE;\n    this.nuevoregistro = new TemaAsistenteModel();\n    this.cargar();\n    this.cargarGrupo();\n    this.validarAsistente();\n    this.validarCamposMostrar(this.enviadata.origenOrganizacion);\n    this.validaevento();\n    if (this.enviadata.llaveTabla != null) {\n      this.mostrarEditar = true;\n    } else {\n      this.mostrarEditar = false;\n    }\n    this.listaOrigenAsistente = this.bienestarpipe.listaExternoInterno;\n    this.listaestados = this.eventopipe.LISTA_ESTADOASISTENTE;\n    this.cargalista();\n    this.crearFormulario();\n    this.cargartablaTema();\n    this.cambiaorigen();\n    this.consultarTipoEvento();\n  }\n\n  async cargarGrupo() {\n\n    let grupoTalento = new GrupoTalentoModel();\n    grupoTalento.evento = this.datoscrear.llaveTabla;\n    this.grupos = await this.cargarMapas.cargarSelectItemString('llave', 'descripcion', new GeneralModel('GrupoTalentoDTO', null, false, grupoTalento));\n  }\n\n  async consultarTipoEvento() {\n    this.tipoEventoDTO = new TipoEventoModel();\n    this.tipoEventoDTO.llave = this.datoscrear.tipoEvento;\n\n    let filtroTipoEvento = new GeneralModel('TipoEventoDTO', null, false, this.tipoEventoDTO);\n    this.tipoEventoDTO = await firstValueFrom(this.generalService.queryForObject(filtroTipoEvento));\n  }\n\n  cambiaestado() {\n    if (this.formulario.get('estado').value == 'I') {\n      this.estadoInscrito = false;\n    } else {\n      this.estadoInscrito = true;\n    }\n\n  }\n  cambiaorigen() {\n    if (this.formulario.get('origenOrganizacion').value == 'E') {\n      this.mostrarCamposIngresoDatos = true;\n    } else {\n      this.mostrarCamposIngresoDatos = false;\n    }\n  }\n\n  validarCamposMostrar(origen: String) {\n    if (origen == null || origen.toString() == (this.bienestarpipe.INTERNO)) {\n      this.mostrarCamposIngresoDatos = false;\n      return;\n    } else {\n      this.mostrarCamposIngresoDatos = true;\n      this.enviadata.unidad = (Constantes.PUNTO);\n      this.enviadata.cargo = (Constantes.PUNTO);\n    }\n  }\n\n\n  //Tema\n  async cargar() {\n    this.listaTemasAsistente = await this.cargarMapas.cargarSelectItemString('temaInstructorEntidad', 'nombreTema', new GeneralModel('TemaInstructorDTO', null, false, { curso: this.enviadata.curso }));\n  }\n\n  async cargartablaTema() {\n    let obj: TemaAsistenteModel = new TemaAsistenteModel();\n    obj.asistenteEvento = this.enviadata.llaveTabla\n    let filtroBean = new GeneralModel('TemaAsistenteDTO', null, false, obj);\n    this.listaTemas = await this.generalService.queryForList(filtroBean).toPromise();\n    this.paginator.totalRecords = this.listaTemas.length;\n  }\n\n\n  async editarRegistro(seleccion: TemaAsistenteModel) {\n    let filtro: GeneralModel = new GeneralModel('TemaAsistenteDTO', null, null, seleccion);\n    let actu = await this.generalService.update(filtro).toPromise();\n\n    if (actu) {\n      this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n    }\n  }\n\n  async onRowEditcrear(seleccion: TemaAsistenteModel) {\n    if (!this.validar()) {\n      this.notificacionesBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      this.clickGuardar = true;\n      return;\n    }\n    seleccion.asistenteEvento = this.enviadata.llaveTabla;\n    let filtro: GeneralModel = new GeneralModel('TemaAsistenteDTO', null, null, seleccion);\n    let actu = await this.generalService.crearRegistro(filtro).toPromise();\n\n    if (actu) {\n      this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n      this.cargartablaTema();\n      this.cancelarnuevo();\n\n    }\n  }\n\n  validar(): boolean {\n    let validador: boolean = true;\n    validador = validador && this.us.validarCampoObligatorio(this.nuevoregistro.temaInstructor)\n    validador = validador && this.us.validarCampoObligatorio(this.nuevoregistro.estado)\n    return validador;\n  }\n\n\n\n\n  confirmaEliminaCampo2(event: Event, seleccion: TemaAsistenteModel) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      header: 'Confirmar',\n      key: 'delete2',\n      accept: () => {\n        this.eliminartabla(seleccion);\n      }\n    }\n    )\n  }\n\n\n  async eliminartabla(seleccion: TemaAsistenteModel) {\n    let filtro: GeneralModel = new GeneralModel('TemaAsistenteDTO', null, null, seleccion);\n    let actu = await this.generalService.delete(filtro).toPromise();\n    if (actu) {\n      this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n      this.cargartablaTema();\n    }\n  }\n\n\n\n\n\n  cancelarnuevo() {\n    this.vistaVisualizar = ' '\n  }\n\n  nuevotema() {\n    this.nuevoregistro = new TemaAsistenteModel();\n    this.vistaVisualizar = 'nuevo'\n  }\n\n\n  VereditarRegistro(seleccion: TemaAsistenteModel) {\n\n    if (seleccion.fecha != null) {\n      seleccion.fecha = new Date(seleccion.fecha)\n    } else {\n      seleccion.fecha = null;\n    }\n\n    this.copiaSeleccion = Object.assign({}, seleccion);\n  }\n\n  cancelareditar(seleccion: TemaAsistenteModel) {\n    seleccion = Object.assign({}, this.copiaSeleccion);\n    this.cargartablaTema();\n  }\n\n\n  esInscripcion() {\n    return this.enviadata != null && this.enviadata.estado != null\n      && (this.enviadata.estado == (this.listapipe.INSCRIPCION))\n  }\n\n\n  //apartado 2\n  async validarAsistente() {\n    let filtro: ParametrosGeneralModel = new ParametrosGeneralModel(null, null, null, { eventoDTO: this.datoscrear, asistenteeventoDTO: this.enviadata }, null);\n    let validaa = await this.asistenteEventoService.evaluarcontrolasistente(filtro).toPromise();\n    this.textolabel = validaa.mensaje;\n  }\n\n  async validaevento() {\n    let objParametros4: ParametrosGeneralModel = new ParametrosGeneralModel('EventoDTO', null, null, { eventoDTO: this.datoscrear }, null);\n\n    let evento = await this.asistenteEventoService.validarManejoTemas(objParametros4).toPromise();\n    if (evento.valida == \"true\") {\n      this.manejaTemas = true;\n    } else {\n      this.manejaTemas = false;\n\n    }\n  }\n\n  async cargalista() {\n    let mapa: Map<string, String> = new Map<string, String>();\n    let filtroplan: PlanInversionModel = new PlanInversionModel();\n    //cambiar a tipo dinamico\n    filtroplan.origen = 'C'\n    filtroplan.usuarioRol = this.authService.getTokenKey('aliasRol');\n    filtroplan.usuarioLogin = this.authService.getTokenKey('usuario');\n\n    let filtro: GeneralModel = new GeneralModel('PlanInversionDTO', null, null, filtroplan);\n\n    this.listaPlanInversion = await this.generalService.queryForList(filtro).toPromise();\n    this.listaPlanInversion.forEach((item) => {\n      mapa.set(item.planInversion, item.descripcion);\n    });\n    this.listaPlanInversion = Array.from(mapa, ([key, label]) => ({ key, label }));\n  }\n\n  async crearFormulario() {\n    this.formulario = this.formBuilder.group({\n      ausencia: new FormControl(this.enviadata.ausencia),\n      cargo: new FormControl(this.enviadata.cargo),\n      cedula: new FormControl(this.enviadata.cedula),\n      contrato: new FormControl(this.enviadata.contrato),\n      costo: new FormControl(this.enviadata.costo),\n      costoIncurre: new FormControl(this.enviadata.costoIncurre),\n      curso: new FormControl(this.enviadata.curso),\n      descripcion: new FormControl(this.enviadata.descripcion),\n      documento: new FormControl(this.enviadata.documento),\n      documentoAsistente: new FormControl(this.enviadata.documentoAsistente),\n      documentoIdentifica: new FormControl(this.enviadata.documentoIdentifica),\n      identificacion: new FormControl(this.enviadata.identificacion),\n      email: new FormControl(this.enviadata.email, [Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$')]),\n      estado: new FormControl(this.enviadata.estado),\n      evento: new FormControl(this.enviadata.evento),\n      fechaFinal: new FormControl(this.enviadata.fechaFinal),\n      fechaInicial: new FormControl(this.enviadata.fechaInicial),\n      filaAsistente: new FormControl(this.enviadata.filaAsistente),\n      filaNecesidad: new FormControl(this.enviadata.filaNecesidad),\n      identifica: new FormControl(this.enviadata.identifica),\n      inscripcion: new FormControl(this.enviadata.inscripcion),\n      intensidad: new FormControl(this.enviadata.intensidad),\n      llaveTabla: new FormControl(this.enviadata.llaveTabla),\n      nombreCurso: new FormControl(this.enviadata.nombreCurso),\n      nombres: new FormControl(this.enviadata.nombres),\n      nombreAsistente: new FormControl(this.enviadata.nombreAsistente),\n      origenOrganizacion: new FormControl(this.enviadata.origenOrganizacion, Validators.required,),\n      planInversion: new FormControl(this.enviadata.planInversion),\n      primerApellido: new FormControl(this.enviadata.primerApellido),\n      primerApellidoAsistente: new FormControl(this.enviadata.primerApellidoAsistente),\n      puntaje: new FormControl(this.enviadata.puntaje),\n      segundoApellido: new FormControl(this.enviadata.segundoApellido),\n      segundoApellidoAsistente: new FormControl(this.enviadata.segundoApellidoAsistente),\n      tipoVinculacion: new FormControl(this.enviadata.tipoVinculacion),\n      unidad: new FormControl(this.enviadata.unidad),\n      nombreCargo: new FormControl(this.enviadata.nombreCargo),\n      nombreEmpresa: new FormControl(this.enviadata.nombreEmpresa),\n      nombresAsistente: new FormControl(this.enviadata.nombresAsistente),\n      empresa: new FormControl(this.enviadata.empresa),\n      nombreUnidad: new FormControl(this.enviadata.nombreUnidad),\n      grupoTalento: new FormControl(this.enviadata.grupoTalento),\n      estadoAnterior: new FormControl(this.enviadata.estadoAnterior),\n      planInversionAntes: new FormControl(this.enviadata.planInversionAntes),\n    })\n  }\n\n\n  async verPopupHojaVida(evento) {\n\n    this.formulario.get('contrato').setValue(evento.contrato);\n    this.formulario.get('cedula').setValue(evento.cedula);\n    if (evento.documento != null) {\n      this.formulario.get('identificacion').setValue(evento.documento);\n      this.formulario.get('documentoIdentifica').setValue(evento.documento);\n    } else {\n      this.formulario.get('identificacion').setValue(evento.cedula);\n      this.formulario.get('documentoIdentifica').setValue(evento.cedula);\n    }\n    this.formulario.get('nombres').setValue(this.nombrecomple(evento));\n    this.formulario.get('unidad').setValue(evento.unidad);\n    this.formulario.get('nombreUnidad').setValue(evento.unidadNombreTitular);\n    this.formulario.get('nombreAsistente').setValue(this.nombrecomple(evento));\n    this.formulario.get('cargo').setValue(evento.cargo);\n    this.formulario.get('empresa').setValue(evento.empresa);\n    this.formulario.get('nombreCargo').setValue(evento.cargoNombreTitular);\n    if (this.formulario.get('empresa').value != null) {\n      let empresaDTO: EmpresaModel = new EmpresaModel();\n      empresaDTO.empresa = this.formulario.get('empresa').value;\n      let filtro: GeneralModel = new GeneralModel('EmpresaDTO', null, null, empresaDTO);\n      empresaDTO = await this.generalService.queryForObject(filtro).toPromise();\n      this.formulario.get('nombreEmpresa').setValue(empresaDTO.nombre);\n    }\n  }\n\n\n\n  nombrecomple(evento) {\n    if (evento.nombreCompleto == null) {\n      if (evento.segundoApellido != null) {\n        if (evento.primerApellido != null) {\n          if (evento.nombres != null) {\n            evento.nombreCompleto = evento.primerApellido + Constantes.ESPACIO_BLANCO + evento.segundoApellido + Constantes.ESPACIO_BLANCO + evento.nombres;\n          } else {\n            evento.nombreCompleto = evento.primerApellido + Constantes.ESPACIO_BLANCO + evento.segundoApellido + Constantes.ESPACIO_BLANCO;\n          }\n        } else {\n          evento.nombreCompleto = Constantes.ESPACIO_BLANCO + evento.segundoApellido + Constantes.ESPACIO_BLANCO + evento.nombres;\n        }\n      } else {\n        if (evento.primerApellido != null) {\n          if (evento.nombres != null) {\n            evento.nombreCompleto = evento.primerApellido + Constantes.ESPACIO_BLANCO + evento.nombres;\n          } else {\n            evento.nombreCompleto = evento.primerApellido + Constantes.ESPACIO_BLANCO;\n          }\n        } else {\n          evento.nombreCompleto = Constantes.ESPACIO_BLANCO;\n        }\n      }\n    }\n    return evento.nombreCompleto;\n\n  }\n  evaluarControlAsistente() { }\n\n  validarAsistenteExiste() {\n    return;\n  }\n\n  async actualizarRegistro() {\n\n    this.formulario.controls[\"estado\"].setValidators(Validators.required);\n    this.formulario.controls[\"estado\"].updateValueAndValidity();\n\n    if (this.formulario.get('origenOrganizacion').value == 'I') {\n      this.formulario.controls[\"cedula\"].setValidators(Validators.required);\n      this.formulario.controls[\"cedula\"].updateValueAndValidity();\n      this.formulario.controls[\"documentoAsistente\"].clearValidators();\n      this.formulario.controls[\"documentoAsistente\"].updateValueAndValidity();\n      this.formulario.controls[\"primerApellidoAsistente\"].clearValidators();\n      this.formulario.controls[\"primerApellidoAsistente\"].updateValueAndValidity();\n      this.formulario.controls[\"nombresAsistente\"].clearValidators();\n      this.formulario.controls[\"nombresAsistente\"].updateValueAndValidity();\n    } else {\n      this.formulario.controls[\"documentoAsistente\"].setValidators(Validators.required);\n      this.formulario.controls[\"documentoAsistente\"].updateValueAndValidity();\n      this.formulario.controls[\"primerApellidoAsistente\"].setValidators(Validators.required);\n      this.formulario.controls[\"primerApellidoAsistente\"].updateValueAndValidity();\n      this.formulario.controls[\"nombresAsistente\"].setValidators(Validators.required);\n      this.formulario.controls[\"nombresAsistente\"].updateValueAndValidity();\n      this.formulario.controls[\"cedula\"].clearValidators();\n      this.formulario.controls[\"cedula\"].updateValueAndValidity();\n    }\n\n    if (this.formulario.valid) {\n      this.validacampo = false;\n      if (!this.mostrarEditar) {\n        let objParametros4: ParametrosGeneralModel = new ParametrosGeneralModel('AsistenteEventoDTO', null, null, { asistenteEventoDTO: this.formulario.getRawValue(), eventoDTO: this.datoscrear, nuevo: \"true\" }, null);\n        let crear4 = await this.asistenteEventoService.crearPlanInversion(objParametros4).toPromise();\n        this.formulario.get('evento').setValue(this.enviadata.llaveTabla);\n        this.enviadata = crear4.asistente;\n        this.enviadata.llaveTabla = crear4.asistente.llaveTabla;\n        if (crear4.mensaje.length > 10) {\n          this.notificacionesBusService.showError(crear4.mensaje);\n          return;\n        }\n        if (crear4) {\n          this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n\n          if (this.isOcultarNuevo) {\n            this.ocultar();\n            return;\n          }\n          //this.datoscrear = crear4;\n          this.ngOnInit();\n        }\n      }\n      else {\n        let objParametros4: ParametrosGeneralModel = new ParametrosGeneralModel('AsistenteEventoDTO', null, null, { asistenteEventoDTO: this.formulario.getRawValue(), eventoDTO: this.datoscrear, nuevo: \"false\" }, null);\n        let crear4 = await this.asistenteEventoService.crearPlanInversion(objParametros4).toPromise();\n        //this.enviadata = crear4;\n        if (crear4) {\n          this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n          //+this.ngOnInit();\n\n        }\n\n      }\n\n\n    } else {\n      if (this.formulario.get(\"cedula\").value == null) {\n        //this.notificacionesBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n        this.validacampo = true;\n        //return;\n      }\n      this.notificacionesBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      Object.keys(this.formulario.controls).forEach((key) => {\n        if (this.formulario.get(key).errors) {  \n          this.formulario.get(key).markAsDirty();\n        }\n      });\n    }\n  }\n\n\n  confirmaEliminacion(event: Event) {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      header: 'Confirmar',\n      key: 'delete1',\n\n      accept: () => {\n\n        if (this.listaTemas.length >= 1) {\n          this.notificacionesBusService.showWarning(this.generalPipe.MENSAJE_ELIMINAR_NO_ASOCIADO);\n\n        } else {\n          this.eliminarregistro();\n        }\n\n\n      }\n    }\n    )\n  }\n\n\n  async eliminarregistro() {\n\n    let objParametros4: ParametrosGeneralModel = new ParametrosGeneralModel('AsistenteEventoDTO', null, null, { asistenteEventoDTO: this.formulario.getRawValue() }, null);\n    let elimina = await this.asistenteEventoService.eliminarPlanInversion(objParametros4).toPromise();\n\n    if (elimina.mensaje.length > 10) {\n      this.notificacionesBusService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n      this.ocultar();\n    }\n\n  }\n  ocultar() {\n    this.regresar.emit(false);\n    this.isMostrarPopup = false;\n\n\n  }\n\n  isMostrarGrupo() {\n    return this.tipoEventoDTO != null && this.tipoEventoDTO.tipoParticipante != null && this.tipoEventoDTO.tipoParticipante == this.bienestarpipe.PORGRUPOS\n  }\n\n  get email() {\n    return this.formulario.get('email');\n  }\n}\n","<p-confirmPopup key='delete1'></p-confirmPopup>\n<p-confirmPopup key='delete2'></p-confirmPopup>\n\n<p-dialog id=\"input-helper-cargar-archivo\" header=\"{{'asistente' | translate}} \" [(visible)]=\"isMostrarPopup\"\n  appendTo=\"body\" [modal]=\"true\" (onHide)=\"ocultar()\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\"\n  [style]=\"{ width: '65vw' }\">\n\n  <p-fieldset class=\"fieltsintitulo mb-3\">\n\n    <ng-template pTemplate=\"header\">\n      <div>\n        <span class=\"glyphicons glyphicons-notes\" style=\"color:var(--color-400)\"></span>\n        <span>{{'asistente' | translate}}</span>\n      </div>\n    </ng-template>\n\n    <form [formGroup]=\"formulario\">\n\n      <div class=\"p-fluid grid\">\n\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listaOrigenAsistente\" id=\"reporteExterno\" formControlName=\"origenOrganizacion\"\n              [autoDisplayFirst]=\"false\" [disabled]=\"mostrarEditar\" (onChange)=\"cambiaorigen()\" optionLabel=\"nombre\"\n              optionValue=\"codigo\">\n            </p-dropdown>\n            <label htmlFor=\"reporteExterno\">{{'origen' | translate }}*</label>\n          </span>\n        </div>\n\n        <!--CONTRATO-->\n        <div *ngIf=\"!mostrarCamposIngresoDatos\" class=\"col-12 md:col-4 lg:col-4 responsivetablet\">\n          <app-input-helper-empleado-boton #inputEmpleado (onSelected)=\"verPopupHojaVida($event)\"\n            [nombreInput]=\"'asistente' | translate\" [mostrarX]=\"false\" [booleano]=\"validacampo\"\n            [label]=\"this.formulario.get('nombres').value != null ? this.formulario.get('documentoIdentifica').value + ' - ' + this.formulario.get('nombres').value :  ''\">\n          </app-input-helper-empleado-boton>\n        </div>\n\n        <!-- DOCUMENTO  -->\n        <div *ngIf=\"mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-inputNumber id=\"ancho\" formControlName=\"documentoAsistente\" maxlength=\"20\"\n              [required]=\"this.formulario.get('origenOrganizacion').value == 'E'\">\n            </p-inputNumber>\n            <label htmlFor=\"ancho\">{{'documento' | translate}} * </label>\n          </span>\n        </div>\n\n        <!-- nombres asistente -->\n        <div *ngIf=\"mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"nombresAsistente\"\n              [required]=\"this.formulario.get('origenOrganizacion').value == 'E'\">\n            <label htmlFor=\"formato\">{{'nombres' | translate}} *</label>\n          </span>\n        </div>\n\n        <!-- primer apellido  -->\n        <div *ngIf=\"mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"primerApellidoAsistente\"\n              [required]=\"this.formulario.get('origenOrganizacion').value == 'E'\">\n            <label htmlFor=\"formato\">{{'primerapellido' | translate}} *</label>\n          </span>\n        </div>\n\n        <!-- segundo apellido asistente -->\n        <div *ngIf=\"mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"segundoApellidoAsistente\">\n            <label htmlFor=\"formato\">{{'segundoapellido' | translate}}</label>\n          </span>\n        </div>\n\n        <!-- email -->\n        <div *ngIf=\"mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"email\">\n            <label htmlFor=\"formato\">{{'email' | translate}}</label>\n          </span>\n          <!-- Validación Email-->\n          <div class=\"validacion\" *ngIf=\"email?.invalid && (email?.dirty || email?.touched)\">\n            <small *ngIf=\"email?.errors?.['pattern']\">{{ 'correonovalido' | translate }}</small>\n          </div>\n        </div>\n\n        <!-- tipodevinculacion -->\n        <div *ngIf=\"mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"tipoVinculacion\">\n            <label htmlFor=\"formato\">{{'tipodevinculacion' | translate}}</label>\n          </span>\n        </div>\n\n        <!-- Unidad -->\n        <div *ngIf=\"!mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" [readonly]=\"true\" formControlName=\"nombreUnidad\">\n            <label htmlFor=\"formato\">{{'unidad' | translate}}</label>\n          </span>\n        </div>\n\n        <!-- Tipo de Vinculación -->\n        <div *ngIf=\"!mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" [readonly]=\"true\" formControlName=\"nombreEmpresa\">\n            <label htmlFor=\"formato\">{{'empresa' | translate}}</label>\n          </span>\n        </div>\n\n\n        <!-- Cargo -->\n        <div *ngIf=\"!mostrarCamposIngresoDatos\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" [disabled]=\"true\" formControlName=\"nombreCargo\">\n            <label htmlFor=\"formato\">{{'cargo' | translate}}</label>\n          </span>\n        </div>\n\n        <!-- Estado -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listaestados\" id=\"reporteExterno\" formControlName=\"estado\" [autoDisplayFirst]=\"false\"\n              (onChange)=\"cambiaestado()\" optionLabel=\"nombre\" optionValue=\"codigo\">\n            </p-dropdown>\n            <label htmlFor=\"reporteExterno\">{{'estado' | translate }}*</label>\n          </span>\n        </div>\n\n        <!-- Grupo -->\n        @if(isMostrarGrupo()){\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-dropdown [options]=\"grupos\" id=\"grupo\" formControlName=\"grupoTalento\" [autoDisplayFirst]=\"false\"\n              optionLabel=\"label\" optionValue=\"key\" required>\n            </p-dropdown>\n            <label htmlFor=\"reporteExterno\">{{'grupo' | translate }}*</label>\n          </span>\n        </div>\n        }\n\n        <!-- planInversion -->\n        <div *ngIf=\"mostrarGrupo\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-dropdown [options]=\"listaPlanInversion\" id=\"reporteExterno\" formControlName=\"planInversion\"\n              [autoDisplayFirst]=\"false\" [showClear]=\"true\" optionLabel=\"label\" optionValue=\"key\">\n            </p-dropdown>\n            <label htmlFor=\"reporteExterno\">{{'planinversion' | translate }}</label>\n          </span>\n        </div>\n\n        <!-- costoincurre  -->\n        <div *ngIf=\"!esInscripcion() && estadoInscrito\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-inputNumber id=\"ancho\" formControlName=\"costoIncurre\" maxlength=\"16\">\n            </p-inputNumber>\n            <label htmlFor=\"ancho\">{{'costoincurre' | translate}} </label>\n          </span>\n        </div>\n\n\n        <!-- costo  -->\n        <div *ngIf=\"!esInscripcion() && estadoInscrito\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <p-inputNumber id=\"ancho\" formControlName=\"costo\" maxlength=\"20\">\n            </p-inputNumber>\n            <label htmlFor=\"ancho\">{{'costo' | translate}} </label>\n          </span>\n        </div>\n\n\n        <!-- ausencia  -->\n        <div *ngIf=\"!esInscripcion() && estadoInscrito\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"ausencia\" maxlength=\"16\">\n            <label htmlFor=\"ancho\">{{'ausencia' | translate}} </label>\n          </span>\n        </div>\n\n        <!-- puntaje  -->\n        <div *ngIf=\"!esInscripcion() && estadoInscrito\" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"puntaje\" maxlength=\"16\">\n            <label htmlFor=\"ancho\">{{'puntaje' | translate}} </label>\n          </span>\n        </div>\n\n        <!-- puntaje  -->\n        <div *ngIf=\"enviadata.mensaje != null \" class=\"field col-12 md:col-6 lg:col-4\">\n          <span class=\"p-float-label\">\n            <input pInputText id=\"formato\" formControlName=\"mensaje\" maxlength=\"16\">\n            <label htmlFor=\"ancho\">{{'puntaje' | translate}} </label>\n          </span>\n        </div>\n\n        <!-- Texto Area paragrafo-->\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n          <span class=\"p-float-label\">\n            <textarea pInputTextarea style=\"height: 100px; width: 50%;min-height: 100px; width: 100%;max-height: 50px;\"\n              id=\"formato\" formControlName=\"descripcion\" rows=\"10\" cols=\"35\"\n              class=\"min-w-full p-inputtextarea p-inputtext p-component p-element max-w-max\"></textarea>\n            <label htmlFor=\"formato\">{{'observacion' | translate}} </label>\n          </span>\n        </div>\n\n        <div *ngIf=\"textolabel != null\" class=\"cardInstrucciones mb-3 w-full background-85\">\n\n          <div class=\"flex align-items-center\">\n            <div class=\"icono bg-white\">\n              <i class=\"pi pi-bell\"></i>\n            </div>\n            <div class=\"contenedor\">\n              <label>{{this.textolabel}}</label>\n            </div>\n          </div>\n\n        </div>\n      </div>\n    </form>\n\n    <!-- Botones del Pop UP guardar y actualizar -->\n    <div class=\"flex justify-content-end\">\n      <button pButton pRipple class=\"ml-2  p-button p-button-raised\" icon=\"glyphicons glyphicons-floppy-save\"\n        label=\"{{'link_guardar' | translate}}\" (click)=\"actualizarRegistro()\" *ngIf=\"!mostrarEditar\"></button>\n      <button pButton pRipple class=\"ml-2  p-button p-button-raised\" icon=\"glyphicons glyphicons-refresh\"\n        label=\"{{'link_actualizar' | translate}}\" (click)=\"actualizarRegistro()\" *ngIf=\"mostrarEditar\"></button>\n      <button pButton pRipple class=\"ml-2  p-button-outlined\" icon=\"glyphicons glyphicons-bin\"\n        label=\"{{'link_eliminar' | translate}}\" (click)=\"confirmaEliminacion($event)\" *ngIf=\"mostrarEditar\"></button>\n    </div>\n  </p-fieldset>\n\n  <p-accordion>\n    <p-accordionTab *ngIf=\"mostrarEditar && manejaTemas\">\n\n      <ng-template pTemplate=\"header\"><i class=\"glyphicons glyphicons-notes\"></i>{{'tema' | translate}}</ng-template>\n\n      <div>\n        <div class=\"flex justify-content-end align-items-center mb-2\">\n          <button pButton pRipple class=\"m-2 p-button p-button-secondary\" icon=\"pi pi-plus\" (click)=\"nuevotema()\"\n            label=\"{{'link_nuevo' | translate}}\">\n          </button>\n        </div>\n\n        <p-table #tablaGeneral class=\"mt-4\" [value]=\"listaTemas\" [scrollable]=\"true\" responsiveLayout=\"scroll\"\n          styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\" [paginator]=\"paginator.totalRecords > 10\"\n          [totalRecords]=\"paginator.totalRecords\" selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n          [showCurrentPageReport]=\"true\" editMode=\"row\"\n          currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" dataKey=\"llaveTabla\">\n\n          <ng-template pTemplate=\"header\">\n            <tr>\n\n              <th style=\"width: 30%\">{{'tema' | translate}}</th>\n              <th style=\"width: 20%\">{{'fecha' | translate}}</th>\n              <th style=\"width: 25%\">{{'estado' | translate}}</th>\n              <th style=\"width: 25%\">{{'observacion' | translate}}</th>\n              <th></th>\n\n            </tr>\n\n            <tr class=\"TablaNuevoRegistro\" *ngIf=\"(vistaVisualizar == 'nuevo')\">\n              <td style=\"width: 30%\">\n\n                <p-dropdown inputId=\"tipoReprogramacion\" [options]=\"listaTemasAsistente\" appendTo=\"body\"\n                  [class.ng-dirty]=\"clickGuardar\" [required]=\"true\" #idcodigo=\"ngModel\" optionLabel=\"label\"\n                  optionValue=\"key\" [(ngModel)]=\"nuevoregistro.temaInstructor\" required (click)=\"null\"\n                  [autoDisplayFirst]=\"false\"></p-dropdown>\n              </td>\n\n              <td style=\"width: 20%\">\n                <p-calendar id=\"id_fechaInicial\" type=\"text\" appendTo=\"body\" [(ngModel)]=\"nuevoregistro.fecha\"\n                  dateFormat=\"dd/mm/yy\">\n                </p-calendar>\n              </td>\n\n              <td style=\"width: 25%\">\n                <p-dropdown inputId=\"tipoReprogramacion\" [options]=\"listaEstadoTemaAsis\" appendTo=\"body\"\n                  [class.ng-dirty]=\"clickGuardar\" [required]=\"true\" #idcodigo=\"ngModel\" optionLabel=\"nombre\"\n                  optionValue=\"codigo\" [(ngModel)]=\"nuevoregistro.estado\" required (click)=\"null\"\n                  [autoDisplayFirst]=\"false\"></p-dropdown>\n              </td>\n\n\n              <td style=\"width: 25%\">\n                <input pInputText id=\"descripcion\" [(ngModel)]=\"nuevoregistro.observacion\" maxlength=\"100\">\n              </td>\n\n              <!-- BOTONES NUEVO REGISTRO -->\n              <td class=\"flex justify-content-end\">\n                <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                  class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"\n                  (click)=\"onRowEditcrear(nuevoregistro)\"></button>\n                <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarnuevo()\"\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>\n              </td>\n\n            </tr>\n          </ng-template>\n\n          <ng-template pTemplate=\"body\" let-seleccion let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr [pEditableRow]=\"seleccion\">\n\n              <td style=\"width: 30%\">\n                <p-cellEditor style=\"width: 100%\">\n                  <ng-template pTemplate=\"input\">\n\n                    <p-dropdown inputId=\"tipoReprogramacion\" [options]=\"listaTemasAsistente\" appendTo=\"body\"\n                      #idcodigo=\"ngModel\" optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"seleccion.temaInstructor\"\n                      required (click)=\"null\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                  </ng-template>\n                  <ng-template pTemplate=\"output\">\n                    {{seleccion.descripcionTemaInstructor}}\n                  </ng-template>\n                </p-cellEditor>\n              </td>\n\n\n              <td style=\"width: 20%\">\n                <p-cellEditor style=\"width:100%\">\n                  <ng-template pTemplate=\"input\">\n\n                    <p-calendar id=\"id_fechaInicial\" type=\"text\" appendTo=\"body\" autoZIndex=\"false\"\n                      [(ngModel)]=\"seleccion.fecha\" dateFormat=\"dd/mm/yy\">\n                    </p-calendar>\n\n                  </ng-template>\n                  <ng-template pTemplate=\"output\">\n                    {{seleccion.fecha | date: 'dd/MM/yyyy'}}\n                  </ng-template>\n                </p-cellEditor>\n              </td>\n\n              <td style=\"width: 20%\">\n                <p-cellEditor style=\"width:100%\">\n                  <ng-template pTemplate=\"input\">\n                    <p-dropdown inputId=\"tipoReprogramacion\" [options]=\"listaEstadoTemaAsis\" appendTo=\"body\"\n                      #idcodigo=\"ngModel\" optionLabel=\"nombre\" optionValue=\"codigo\" [(ngModel)]=\"seleccion.estado\"\n                      required (click)=\"null\" [autoDisplayFirst]=\"false\"></p-dropdown>\n                  </ng-template>\n                  <ng-template pTemplate=\"output\">\n                    {{seleccion.estado | evento:'listaEstadotemaasistente'}}\n                  </ng-template>\n                </p-cellEditor>\n              </td>\n\n              <td style=\"width: 20%\">\n                <p-cellEditor style=\"width:100%\">\n                  <ng-template pTemplate=\"input\">\n                    <input pInputText id=\"descripcion\" [(ngModel)]=\"seleccion.observacion\" maxlength=\"100\">\n                  </ng-template>\n                  <ng-template pTemplate=\"output\">\n                    {{seleccion.observacion}}\n                  </ng-template>\n                </p-cellEditor>\n              </td>\n\n              <td class=\"flex justify-content-end\">\n                <div class=\"flex\">\n\n                  <!-- CHECK GUARDAR -->\n                  <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                    (click)=\"editarRegistro(seleccion)\"\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>\n                  <!-- CANCELAR -->\n                  <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n                    (click)=\"cancelareditar(seleccion)\"\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>\n                  <!-- EDITAR -->\n                  <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                    icon=\"glyphicons glyphicons-pencil\" (click)=\"VereditarRegistro(seleccion)\"\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>\n                  <!-- ELIMINAR -->\n                  <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                    (click)=\"confirmaEliminaCampo2($event,seleccion)\"\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>\n                </div>\n              </td>\n            </tr>\n          </ng-template>\n\n          <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>\n        </p-table>\n      </div>\n\n\n    </p-accordionTab>\n  </p-accordion>\n\n</p-dialog>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { AuthService, CargarControlFuncionalidadService, cargarmapasGlobal, FormulariodinamicoComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EventoModel } from '../../../models/EventoModel';\nimport { EventoPipe } from '../../../../../shared/pipes/evento.pipe';\nimport { FiltroEmpleadoModel } from '../../../../bienestar/models/FiltroEmpleadoModel';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextareaModule } from 'primeng/inputtextarea';\nimport { MomentoEventoHorarioModel } from '../../../../bienestar/models/MomentoEventoHorarioModel';\nimport { DiaEventoModel } from '../../../models/DiaEventoModel';\nimport { InputHelperInscribirEventoPorUnidadComponent } from '../../../popups/input-helper-inscribir-evento-por-unidad/input-helper-inscribir-evento-por-unidad.component';\nimport { AsistenteEventoModel } from '../../../models/AsistenteEventoModel';\nimport { EmpleadoService } from '../../../../compensacion/services/empleado.service';\nimport { BienestarPipe } from '../../../../bienestar/pipes/bienestar.pipe';\nimport { DiaEventoService } from '../../../services/dia-evento.service';\nimport { AsistenteEventoService } from '../../../services/asistente-evento.service';\nimport { PopupAsistenteComponent } from '../../control-eventos-capacitacion/pages-control-eventos/Asistentes/registro/popup-asistente/popup-asistente.component';\nimport { firstValueFrom } from 'rxjs';\nimport { PuestoTrabajoService } from '../../../../talento/services/puesto-trabajo.service';\n\n@Component({\n  selector: 'app-detalle-evento-cursos-publicacion',\n  standalone: true,\n  imports: [NgIf,\n    ButtonDirective,\n    Ripple,\n    FormsModule,\n    ReactiveFormsModule,\n    DropdownModule,\n    InputTextModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    DatePipe,\n    TranslateModule,\n    GeneralPipe,\n    FormulariodinamicoComponent,\n    CalendarModule,\n    InputTextareaModule,\n    PopupAsistenteComponent,\n    InputHelperInscribirEventoPorUnidadComponent],\n  templateUrl: './detalle-evento-cursos-publicacion.component.html',\n  styleUrl: './detalle-evento-cursos-publicacion.component.scss'\n})\nexport class DetalleEventoCursosPublicacionComponent implements OnInit {\n\n  @ViewChild(InputHelperInscribirEventoPorUnidadComponent) inputHelperInscribirEventoPorUnidadComponent: InputHelperInscribirEventoPorUnidadComponent;\n  @ViewChild(PopupAsistenteComponent) popupAsistenteComponent: PopupAsistenteComponent;\n\n  @Output() regresarInscripcion: EventEmitter<any> = new EventEmitter();\n\n  origen: string;\n  destino: string;\n  empleadoDTO: EmpleadoModel;\n  eventoModel: EventoModel;\n  grupo: string;\n  descripcionGrupo: string;\n  estados: { codigo: string; nombre: string; }[];\n  cursosMap: any[];\n  listaEmpresa: any[];\n  eventoDTO: EventoModel;\n  tienePermiso: boolean;\n  tienePermisoUnidad: boolean = false;\n  listaMomentoEventoHorario: MomentoEventoHorarioModel[];\n  filtroMomentoEvento: MomentoEventoHorarioModel;\n  filtroTemas: DiaEventoModel;\n  listaTemas: DiaEventoModel[];\n  isMostrarEvento: boolean;\n  isMostrarEventoUnidad: boolean;\n  asistenteEventoDTO: AsistenteEventoModel;\n  plantilla: string;\n  cedula: number;\n  mostrarBotonInscribirseUnidad: boolean;\n\n  constructor(private generalService: GeneralService, private toastService: ToastService, private saraAplicacionServices: SaraAplicacionService,\n    private menuService: MenuService, private authService: AuthService, private cargarMapas: cargarmapasGlobal,\n    private eventoPipe: EventoPipe, public controlFuncionService: CargarControlFuncionalidadService, public utilsService: UtilsService,\n    private empleadoSvc: EmpleadoService, private bienestarPipe: BienestarPipe, private diaEventoService: DiaEventoService,\n    private asistenteEventoService: AsistenteEventoService, private generalPipe: GeneralPipe, private puestoTrabajoService: PuestoTrabajoService\n  ) { }\n\n  ngOnInit(): void {\n\n    this.mostrarBotonInscribirseUnidad = false;\n    this.eventoDTO = new EventoModel();\n    this.filtroMomentoEvento = new MomentoEventoHorarioModel();\n    this.filtroTemas = new DiaEventoModel();\n    this.listaMomentoEventoHorario = [];\n    this.listaTemas = [];\n    this.cursosMap = [];\n    this.isMostrarEvento = false;\n    this.isMostrarEventoUnidad = false;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cargarMigadePan() {\n\n    if ('listado_evento_inscripcion' == this.destino) {\n      let label: any = 'Mantenimiento Cursos Publicados';\n      this.menuService.setBreadcrumb([\n        { label: 'Listado Cursos Publicados', command: (event) => this.regresarInscripcion.emit() },\n        { label: label }\n      ]);\n    }\n  }\n\n  async cargarInscripcionCurso(itemEvento: EventoModel, origen: string, destino: string, grupo: string, descripcionGrupo: string) {\n    this.destino = destino;\n    this.grupo = grupo;\n    this.descripcionGrupo = descripcionGrupo;\n    this.eventoModel = itemEvento;\n    this.cargarMigadePan();\n    await this.cargar(itemEvento, origen);\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargar(itemEvento: EventoModel, origen: string,) {\n\n    this.origen = origen;\n    this.cargarListas();\n\n    let nuevo = new EventoModel();\n    nuevo.llaveTabla = itemEvento.llaveTabla;\n    nuevo.cliente = 0;\n    nuevo.organizacion = (await this.saraAplicacionServices.getEmpresa()).organizacion;\n\n    this.tienePermiso = false;\n\n    let objetoFiltroEvento = new GeneralModel('EventoDTO', null, false, nuevo);\n    this.eventoDTO = await this.generalService.queryForObject(objetoFiltroEvento).toPromise();\n\n    this.eventoDTO.inicioPublicacion = this.eventoDTO.inicioPublicacion ? new Date(this.eventoDTO.inicioPublicacion) : null;\n    this.eventoDTO.finalPublicacion = this.eventoDTO.finalPublicacion ? new Date(this.eventoDTO.finalPublicacion) : null;\n\n    await this.cargarListadoEventoHorario();\n    await this.cargarListadoDiaEvento();\n\n    if (this.eventoPipe.CAPACITACION.toLowerCase() == this.origen.toLowerCase()) {\n      this.tienePermiso = this.validarControlFuncionalidad(\"evecap:inscribirse\") != null;\n    } else if (this.eventoPipe.SALUDOCUPACIONAL.toLowerCase() == this.origen.toLowerCase()) {\n      this.tienePermiso = this.validarControlFuncionalidad(\"evesal:inscribirse\") != null;\n    } else if (this.eventoPipe.BIENESTAR.toLowerCase() == this.origen.toLowerCase()) {\n      this.tienePermiso = this.validarControlFuncionalidad(\"evebie:inscribirse\") != null;\n    }\n\n    if (this.tienePermiso && this.isCliente()) {\n      if (this.eventoDTO.filtro != null || this.eventoDTO.filtroHoja != null) {\n        let filtroBase: string = this.eventoDTO.filtro;\n        if (this.eventoDTO.filtroHoja != null) {\n          filtroBase = (filtroBase == null ? \"\" : filtroBase + \" and \") + this.eventoDTO.filtroHoja;\n        }\n\n        let filtroEmpleado = new FiltroEmpleadoModel();\n        filtroEmpleado.filtro = filtroBase;\n        filtroEmpleado.hojaVida = await this.saraAplicacionServices.getCedula();\n\n        let objetoFiltroEmpleado = new GeneralModel('FiltroEmpleadoDTO', null, false, filtroEmpleado);\n        let cantidad = await this.generalService.cantidadRegistros(objetoFiltroEmpleado).toPromise();\n        if (cantidad == 0) {\n          this.tienePermiso = false;\n        }\n      }\n    }\n\n    this.tienePermisoUnidad = this.validarControlFuncionalidad(\"evecap:inscribirseunidad\");\n\n    if (this.tienePermisoUnidad) {\n\n      if (!this.isCliente()) {\n        this.mostrarBotonInscribirseUnidad = true;\n        return;\n      }\n\n      var empleado: EmpleadoModel = await firstValueFrom(this.empleadoSvc.obtenerPorCedulaActivo({\n        empresa:\n          parseInt(this.authService.getTokenKey('numeroEmpresa')), cedula: await this.saraAplicacionServices.getCedula()\n      }));\n\n      let filtroPuesto = new PuestoTrabajoModel();\n      filtroPuesto.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      filtroPuesto.contratoOcupa = empleado.contrato;\n      filtroPuesto.puestoAtraer = \"Activos\";\n\n      let filtroPuestoDB = new GeneralModel('PuestoTrabajoDTO', null, false, filtroPuesto);\n      let listaPuesto = await firstValueFrom(this.generalService.queryForList(filtroPuestoDB));\n\n      if (listaPuesto.length == 0) {\n        this.tienePermisoUnidad = false;\n        return;\n      }\n\n      let listaUnidadCliente = this.puestoTrabajoService.cargarListadoUnidadCliente(listaPuesto);\n\n      if (listaUnidadCliente.length == 0) {\n        this.tienePermisoUnidad = false;\n        return;\n      }\n\n      this.mostrarBotonInscribirseUnidad = true;\n    }\n\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarListadoDiaEvento() {\n\n    this.filtroTemas.evento = this.eventoDTO.llaveTabla;\n\n    let objetoFiltro: GeneralModel = new GeneralModel('DiaEventoDTO', \"DiaEvento.consultarTemasProgramacion\", false, this.filtroTemas);\n    this.listaTemas = await this.generalService.queryForList(objetoFiltro).toPromise();\n\n  }\n\n  async cargarListadoEventoHorario() {\n\n    this.filtroMomentoEvento.evento = this.eventoDTO.llaveTabla;\n    this.filtroMomentoEvento.grupo = this.grupo;\n\n    let objetoFiltro: GeneralModel = new GeneralModel('MomentoEventoHorarioDTO', null, false, this.filtroMomentoEvento);\n    this.listaMomentoEventoHorario = await this.generalService.queryForList(objetoFiltro).toPromise();\n  }\n\n  async cargarListas() {\n\n    //Estados\n    this.estados = this.eventoPipe.LISTA_ESTADOEVENTO;\n\n    //Cursos\n    this.cursosMap = await this.cargarMapas.cargarSelectItemString('curso', 'descripcion', new GeneralModel('CursoDTO', null, false, { origen: this.origen }));\n\n    //Empresa\n    this.listaEmpresa = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, { organizacion: (await this.saraAplicacionServices.getEmpresa()).organizacion }));\n\n  }\n\n  getCursoLabel(key: string): string {\n    const curso = this.cursosMap.find(item => item.key === key);\n    return curso ? curso.label : '';\n  }\n\n  validarControlFuncionalidad(valor: string): boolean {\n    return this.controlFuncionService.getControlFuncionalidad(valor);\n  }\n\n  regresarListadoInscripcionEvento() {\n    this.regresarInscripcion.emit({});\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  async registrarAsistente() {\n\n    if (!this.isCliente()) {\n      this.isMostrarEvento = true;\n      this.asistenteEventoDTO = new AsistenteEventoModel();\n      return null;\n    }\n\n    this.asistenteEventoDTO = new AsistenteEventoModel();\n\n    if (this.empleadoDTO != null) {\n      this.inscribirEmpleado(this.empleadoDTO, true);\n      return null;\n    }\n    let usuario = new EmpleadoModel();\n    usuario.cedula = await this.saraAplicacionServices.getCedula();\n    usuario.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n    let aux: EmpleadoModel = await this.empleadoSvc.obtenerPorCedulaActivo({\n      empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      cedula: await this.saraAplicacionServices.getCedula()\n    }).toPromise();\n\n    if (aux != null) {\n      usuario = aux;\n    }\n\n    if (await this.inscribirEmpleado(usuario, false)) {\n      this.toastService.showSuccess(\"Se realizó la inscripción\");\n    }\n  }\n\n  async inscribirEmpleado(empleadoDTO: EmpleadoModel, retornarAsistente: boolean): Promise<boolean> {\n\n    this.asistenteEventoDTO = new AsistenteEventoModel();\n    this.asistenteEventoDTO.evento = this.eventoDTO.llaveTabla;\n    this.asistenteEventoDTO.cedula = empleadoDTO.cedula;\n\n    let objetoAsistente = new GeneralModel('AsistenteEventoDTO', null, false, this.asistenteEventoDTO);\n    let lista: AsistenteEventoModel[] = await this.generalService.queryForList(objetoAsistente).toPromise();\n    if (lista != null && lista.length > 0) {\n      this.toastService.showWarning(\"Ud. ya esta inscrito en este curso\");\n      return false;\n    }\n\n    this.asistenteEventoDTO.inscripcion = new Date();\n    this.asistenteEventoDTO.empresa = empleadoDTO.empresa;\n    this.asistenteEventoDTO.estado = this.eventoPipe.INSCRITOSASIS;\n    this.asistenteEventoDTO.planInversion = this.eventoDTO.planInversion;\n    this.asistenteEventoDTO.unidad = empleadoDTO.unidad;\n    this.asistenteEventoDTO.cargo = empleadoDTO.cargo;\n    this.asistenteEventoDTO.grupoTalento = this.grupo;\n    this.asistenteEventoDTO.contrato = empleadoDTO.contrato;\n    this.asistenteEventoDTO.origenOrganizacion = this.bienestarPipe.INTERNO;\n\n    //Si es nuevo registro, modulo capacitacion y tipo interno. Valida que la programación del evento a inscribirse no se cruce con otro evento en el cual ya se encuentre inscrito. \n    if (this.eventoPipe.CAPACITACION == this.eventoDTO.origen && this.bienestarPipe.INTERNO == this.asistenteEventoDTO.origenOrganizacion\n      && !(await this.diaEventoService.validarEventoAsistenteCapacitacionCruceDias(this.asistenteEventoDTO))) {\n      this.toastService.showWarning(\"La programación se cruza con otro evento en el que se encuentra inscrito.\");\n      return false;\n    }\n\n    this.asistenteEventoDTO = await this.asistenteEventoService.autorizar(this.asistenteEventoDTO, null);\n\n    if (this.asistenteEventoDTO.autoriza == null || this.asistenteEventoDTO.autoriza == 0) {\n      this.plantilla = \"notificacionAutorizacionAsistente.html\";\n      this.cedula = this.asistenteEventoDTO.cedula;\n    } else {\n      this.plantilla = \"autorizacionAsistente.html\";\n      this.cedula = this.asistenteEventoDTO.autoriza;\n    }\n\n    await this.enviarMail();\n    let objetoAsistenteEvento = new GeneralModel('AsistenteEventoDTO', null, false, this.asistenteEventoDTO);\n    this.asistenteEventoDTO = await this.generalService.crearRegistro(objetoAsistenteEvento).toPromise();\n    //this.aplicarDestino(retornarAsistente ? asistenteEventoDTO : eventoDTO);\n    return true;\n  }\n\n  async enviarMail() {\n\n    let objeto = {\n      asistenteEvento: this.asistenteEventoDTO,\n      cedula: this.cedula,\n      evento: this.eventoDTO,\n      plantilla: this.plantilla\n    }\n\n    await this.asistenteEventoService.enviarEmailAutorizacion(objeto).toPromise();\n  }\n\n  regresarEventoCapacitacion() {\n    this.isMostrarEvento = false;\n  }\n\n  regresaPopup() {\n    this.isMostrarEvento = false;\n  }\n\n  async registrarAsistentesUnidad() {\n\n    this.isMostrarEventoUnidad = true;\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n\n    this.inputHelperInscribirEventoPorUnidadComponent.buscar(this.eventoDTO, this.grupo);\n\n  }\n\n  regresarEventoUnidadCapacitacion() {\n    this.isMostrarEventoUnidad = false;\n  }\n\n\n}\n","<div id=\"id_detalle_beneficiario\">\n\n    <div class=\"flex justify-content-between align-items-start align-items-center mb-2\">\n\n        <h4 class=\"mb-0 text-xl\">{{'detalle' | translate}} {{'Cursos' | translate}}</h4>\n\n        <button pButton pRipple (click)=\"regresarListadoInscripcionEvento()\" label=\"Regresar\" icon=\"pi pi-chevron-left\"\n            class=\"p-button-text font-semibold flex-shrink-0 ml-4\"\n            *ngIf=\"'listado_evento_inscripcion' == this.destino\"></button>\n    </div>\n\n    <div class=\"card\">\n\n        <div class=\"mt-2\">\n            <h5><i class=\"glyphicons glyphicons-file\"></i>{{'evento' | translate}}</h5>\n        </div>\n\n        <!-- campos -->\n        <div class=\"p-fluid p-formgrid grid\">\n\n            <!-- Curso -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText [ngModel]=\"getCursoLabel(eventoDTO.curso)\" [disabled]=\"true\">\n                    <label>{{'areasbienestar' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Número -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText [ngModel]=\"eventoDTO.numero\" [disabled]=\"true\">\n                    <label>{{'numero' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Estado -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-dropdown inputId=\"id_estado\" [options]=\"estados\" optionLabel=\"nombre\" [disabled]=\"true\"\n                        optionValue=\"codigo\" [autoDisplayFirst]=\"false\" [ngModel]=\"eventoDTO.estado\">\n                    </p-dropdown>\n                    <label for=\"id_pariente\">{{'estado' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Cupo -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText [ngModel]=\"eventoDTO.cupoMaximo\" [disabled]=\"true\">\n                    <label>{{'cupo' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Ubicación Geografica -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText [ngModel]=\"eventoDTO.nombreUbicacionGeografica\" [disabled]=\"true\">\n                    <label>{{'ubicaciongeografica' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Coordinador-->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText [ngModel]=\"eventoDTO.nombreCoordinador\" [disabled]=\"true\">\n                    <label>{{'coordinador' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Inicial Publicación  -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-calendar [ngModel]=\"eventoDTO.inicioPublicacion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                        [disabled]=\"true\"></p-calendar>\n                    <label>{{'fechainicialdepublicacion' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Final Publicación  -->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <p-calendar [ngModel]=\"eventoDTO.finalPublicacion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                        [disabled]=\"true\"></p-calendar>\n                    <label>{{'fechafinalpublicacion' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Empresa -->\n            <div class=\"field col-12 md:col-6 lg:col-6\">\n                <span class=\"p-float-label\">\n                    <p-dropdown [options]=\"listaEmpresa\" optionLabel=\"label\" optionValue=\"key\"\n                        [autoDisplayFirst]=\"false\" [ngModel]=\"eventoDTO.empresa\" [disabled]=\"true\"></p-dropdown>\n                    <label>{{'empresa' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Dirigido A-->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText [ngModel]=\"eventoDTO.dirigidoA\" [disabled]=\"true\">\n                    <label>{{'dirigidoa' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Grupo-->\n            <div class=\"field col-12 md:col-6 lg:col-3\">\n                <span class=\"p-float-label\">\n                    <input pInputText [ngModel]=\"descripcionGrupo\" [disabled]=\"true\">\n                    <label>{{'grupo' | translate}}</label>\n                </span>\n            </div>\n\n            <!-- Observación -->\n            <div class=\"field col-12 md:col-12\">\n                <span class=\"p-float-label\">\n                    <textarea pInputTextarea class=\"min-h-150 max-h-150 w-full\" rows=\"4\" cols=\"40\"\n                        [ngModel]=\"eventoDTO.observacion\" [disabled]=\"true\"></textarea>\n                    <label>{{'observacion' | translate}}</label>\n                </span>\n            </div>\n        </div>\n    </div>\n\n    <!-- Tabla Dia Evento-->\n    <div>\n        <p-table #tablaGeneralDiaEvento id=\"tabla_listado_dia_evento\" [value]=\"listaTemas\" responsiveLayout=\"scroll\"\n            [rows]=\"10\" [paginator]=\"listaTemas.length > 10\" [totalRecords]=\"listaTemas.length\"\n            scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n            dataKey=\"llaveTabla\">\n\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{'tema' | translate}}</th>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"body\" let-item>\n                <tr>\n                    <td>{{item.temaNombre}}</td>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n\n    <!-- Tabla Momento Evento-->\n    <div class=\"mt-5\">\n        <p-table #tablaGeneralMomentoEvento id=\"tabla_listado_momento_evento\" [value]=\"listaMomentoEventoHorario\"\n            responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listaMomentoEventoHorario.length > 10\"\n            [totalRecords]=\"listaMomentoEventoHorario.length\" scrollDirection=\"horizontal\"\n            styleClass=\"p-datatable-striped\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [showCurrentPageReport]=\"true\"\n            dataKey=\"llaveTabla\">\n\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{'fechainicial' | translate}}</th>\n                    <th>{{'fechafinal' | translate}}</th>\n                    <th>{{'horario' | translate}}</th>\n                    <th>{{'salon' | translate}}</th>\n                    <th>{{'tema' | translate}}</th>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"body\" let-item>\n                <tr>\n                    <td>{{item.fechaInicial | date: 'dd/MM/yyyy'}}</td>\n                    <td>{{item.fechaFinal | date: 'dd/MM/yyyy'}}</td>\n                    <td>{{item.horario}}</td>\n                    <td>{{item.descripcionUbicacionFis}}</td>\n                    <td>{{item.descripcionTema}}</td>\n                </tr>\n            </ng-template>\n\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n    <!--botones-->\n    <div class=\"flex justify-content-end mt-4 mb-4\">\n\n        <!--INSCRIBIR-->\n        @if(tienePermiso){\n        <button pButton pRipple class=\" p-button-raised \" icon=\"glyphicons glyphicons-pen\"\n            label=\"{{'link_inscribirse' | translate}}\" (click)=\"registrarAsistente()\">\n        </button>\n        }\n\n        <!--INSCRIBIR UNIDAD-->\n        @if(mostrarBotonInscribirseUnidad){\n        <button pButton pRipple class=\"p-button-outlined ml-2\" icon=\"glyphicons glyphicons-list-alt\"\n            label=\"{{'inscribirseunidad' | translate}}\" (click)=\"registrarAsistentesUnidad()\">\n        </button>\n        }\n    </div>\n</div>\n\n<div *ngIf=\"isMostrarEvento\">\n    <app-popup-asistente [isMostrarPopup]=\"isMostrarEvento\" [enviadata]=\"this.asistenteEventoDTO\" [datoscrear]=\"this.eventoDTO\"\n       [isOcultarNuevo]=\"true\" (regresar)=\"regresaPopup()\"> </app-popup-asistente>\n</div>\n\n<!-- @if(isMostrarEvento){\n<app-input-helper-asistente-evento (regresar)=\"regresarEventoCapacitacion()\"\n    [showDialog]=\"isMostrarEvento\"></app-input-helper-asistente-evento>\n} -->\n\n@if(isMostrarEventoUnidad){\n<app-input-helper-inscribir-evento-por-unidad (regresar)=\"regresarEventoUnidadCapacitacion()\"\n    [showDialog]=\"isMostrarEventoUnidad\"></app-input-helper-inscribir-evento-por-unidad>\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\nimport { GrupoTalentoModel } from '../models/GrupoTalentoModel';\nimport { PuestoTrabajoModel } from '../../talento/models/PuestoTrabajoModel';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { FiltroEmpleadoModel } from '../../bienestar/models/FiltroEmpleadoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PublicacionWebCursoService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService,\n    private generalService: GeneralService,\n  ) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  listaActividades(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/publicacionWebCurso/listaActividades`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  listaActividadesPorFecha(general: any): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/publicacionWebCurso/listaActividadesPorFecha`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  async consultarPublicacionCursos(filtro: GrupoTalentoModel, cedula: number): Promise<GrupoTalentoModel[]> {\n\n    let cantidad = 0;\n\n    if (cedula != null) {\n      let puestoTrabajoDTO = new PuestoTrabajoModel();\n      puestoTrabajoDTO.cedulaOcupa = cedula;\n      puestoTrabajoDTO.responsableUnidad = \"S\";\n      puestoTrabajoDTO.puestoAtraer = \"Activos\";\n\n      let objetoPuesto = new GeneralModel('PuestoTrabajoDTO', null, false, puestoTrabajoDTO);\n      cantidad = await this.generalService.cantidadRegistros(objetoPuesto).toPromise();\n    }\n\n    let objetoGrupoTalento = new GeneralModel('GrupoTalentoDTO', \"GrupoTalento.consultarPublicacionCursos\", false, filtro);\n    let lista: GrupoTalentoModel[] = await this.generalService.queryForList(objetoGrupoTalento).toPromise();\n    if (cantidad != 0 || cedula == null || lista.length == 0) {\n      return lista;\n    }\n\n    let filtroEmpleado = new FiltroEmpleadoModel();\n\n    let listaResultado: GrupoTalentoModel[] = [];\n\n    for (let unGrupo of lista) {\n\n      if (unGrupo.filtroEmpleado == null && unGrupo.filtroHoja == null) {\n        listaResultado.push(unGrupo);\n        continue;\n      }\n      let filtroBase: string = unGrupo.filtroEmpleado;\n\n      if (filtroBase == null) {\n        filtroBase = unGrupo.filtroHoja;\n      }\n      else if (unGrupo.filtroHoja != null) {\n        filtroBase = filtroBase + \" and \" + unGrupo.filtroHoja;\n      }\n\n      filtroEmpleado = new FiltroEmpleadoModel();\n      filtroEmpleado.hojaVida = cedula;\n      filtroEmpleado.filtro = filtroBase;\n\n      let objetoFiltroEmpleado = new GeneralModel('FiltroEmpleadoDTO', null, false, filtroEmpleado);\n      cantidad = await this.generalService.cantidadRegistros(objetoFiltroEmpleado).toPromise();\n      \n      if (cantidad != 0) {\n        listaResultado.push(unGrupo);\n      }\n    }\n    return listaResultado;\n  }\n\n}\n","import { NgIf, CommonModule } from '@angular/common';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AuthService, MenuService, UtilsService } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { GrupoTalentoModel } from '../../../models/GrupoTalentoModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { EventoPipe } from '../../../../../shared/pipes/evento.pipe';\nimport { PublicacionWebCursoService } from '../../../services/publicacionWebCurso.service';\nimport { DetalleEventoCursosPublicacionComponent } from '../detalle-evento-cursos-publicacion/detalle-evento-cursos-publicacion.component';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { EventoModel } from '../../../models/EventoModel';\n\n@Component({\n  selector: 'app-listado-inscripcion-cursos-publicacion',\n  standalone: true,\n  imports: [NgIf,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    ButtonDirective,\n    Ripple,\n    TranslateModule,\n    CommonModule,\n    DetalleEventoCursosPublicacionComponent],\n  templateUrl: './listado-inscripcion-cursos-publicacion.component.html',\n  styleUrl: './listado-inscripcion-cursos-publicacion.component.scss'\n})\nexport class ListadoInscripcionCursosPublicacionComponent implements OnInit {\n\n  @ViewChild(DetalleEventoCursosPublicacionComponent) detalleEventoCursosPublicacionComponent: DetalleEventoCursosPublicacionComponent;\n\n  visualizar: string;\n  listaPublicacionCursos: any[];\n  filtro: GrupoTalentoModel;\n  empleadoDTO: EmpleadoModel;\n\n  constructor(private saraAplicacionServices: SaraAplicacionService, private menuService: MenuService,\n    public utilsService: UtilsService, private authService: AuthService, private generalPipe: GeneralPipe,\n    private eventoPipe: EventoPipe, private publicacionWebCursoService: PublicacionWebCursoService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n\n    this.visualizar = '';\n    this.listaPublicacionCursos = [];\n    this.cargarMigadePan();\n    await this.traerCursos();\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n\n  }\n\n  cargarMigadePan() {\n    this.menuService.setBreadcrumb([{ label: 'Listado Cursos Publicados' }]);\n  }\n\n  async traerCursos() {\n\n    let cedula = null;\n\n    if (this.isCliente()) {\n      cedula = await this.saraAplicacionServices.getCedula();\n    }\n\n    this.filtro = new GrupoTalentoModel();\n    this.filtro.fechaInicial = new Date();\n    this.filtro.origen = this.eventoPipe.CAPACITACION;\n    this.filtro.organizacion = (await this.saraAplicacionServices.getEmpresa()).organizacion;\n    this.filtro.cupoDisponible = this.generalPipe.SI;\n\n    this.listaPublicacionCursos = await this.publicacionWebCursoService.consultarPublicacionCursos(this.filtro, cedula);\n\n    for (let grupoTalentoDTO of this.listaPublicacionCursos) {\n      grupoTalentoDTO.fechaTexto = this.formatearFechas(new Date(grupoTalentoDTO.inicioPublicacion), new Date(grupoTalentoDTO.finalPublicacion));\n    }\n  }\n\n  formatearFechas(fechaInicio: Date, fechaFinal: Date): string {\n\n    const meses = [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"];\n\n    const diaInicio = fechaInicio.getDate();\n    const mesInicio = meses[fechaInicio.getMonth()];\n    const anioInicio = fechaInicio.getFullYear();\n\n    const diaFinal = fechaFinal.getDate();\n    const mesFinal = meses[fechaFinal.getMonth()];\n    const anioFinal = fechaFinal.getFullYear();\n\n    const fechaInicioFormateada = `${diaInicio} de ${mesInicio} del ${anioInicio}`;\n    const fechaFinalFormateada = `${diaFinal} de ${mesFinal} del ${anioFinal}`;\n\n    return `${fechaInicioFormateada} al ${fechaFinalFormateada}`;\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  async cargar(item) {\n\n    let eventoDTO = new EventoModel();\n    eventoDTO.llaveTabla = item.evento;\n\n    this.visualizar = 'detalle';\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n\n    this.detalleEventoCursosPublicacionComponent.cargarInscripcionCurso(eventoDTO, this.eventoPipe.CAPACITACION, 'listado_evento_inscripcion', item.llave, item.descripcion);\n  }\n\n  async regresarDetalleInscripcion() {\n    this.ngOnInit()\n  }\n\n}\n","<div id=\"id_listado_cursos_publicados\">\n\n    @if(visualizar == ''){\n    \n    @if(!isCliente()){\n    <h1 class=\"mb-3\">{{'listadocursospublicados' | translate}}</h1>\n    }\n\n    <p-table #tablaGeneral id=\"tabla_listado_convocatoria_evento\" [value]=\"listaPublicacionCursos\"\n        responsiveLayout=\"scroll\" [rows]=\"10\" [paginator]=\"listaPublicacionCursos.length > 10\"\n        [totalRecords]=\"listaPublicacionCursos.length\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        styleClass=\"p-datatable-gridlines\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        dataKey=\"llave\" rowGroupMode=\"subheader\" groupRowsBy=\"llave\" [scrollable]=\"true\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th class=\"font-semibold\">{{'curso' | translate}}</th>\n                <th></th>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"groupheader\" let-i>\n            <th class=\"background-100 color-600 headerTablaBorde p-2 text-left font-medium\">\n                <span class=\"p-2 mt-2\">{{i.nombreCurso | titlecase }}</span>\n            </th>\n            <th class=\"background-100 color-600 headerTablaBorde p-2\"></th>\n\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-item let-i=\"index\">\n            <tr>\n                <td td class=\"block initial\">\n                    <div>\n                        <span class=\"font-semibold mb-2 ml-1\">{{ \"fechainscripcion\" | translate }}:</span>\n                        {{item.fechaTexto}}\n                    </div>\n\n                    <div>\n                        <span class=\"font-semibold mb-2 ml-1\">{{ \"grupo\" | translate }}:</span>\n                        {{item.descripcion}}\n                    </div>\n\n                    <div>\n                        <span class=\"font-semibold mb-2 ml-1\"> {{ \"intensidadhoraria\" | translate }}:</span>\n                        {{item.intensidad}}\n                    </div>\n\n                    <div>\n                        @if(item.objetivo){\n                        <span class=\"font-semibold mb-2 ml-1\"> {{ \"objetivo\" | translate }}:</span>\n                        {{item.objetivo}}\n                        }\n                    </div>\n                </td>\n                <td>\n                    <div class=\"flex justify-content-end\">\n                        <button style=\"min-width: 200px;\" pButton pRipple type=\"button\" (click)=\"cargar(item)\"\n                            label=\"{{'vercurso' | translate}}\" icon=\"\" class=\"p-button-outlined font-semibold\"></button>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n    }\n\n    @if( visualizar == 'detalle'){\n    <app-detalle-evento-cursos-publicacion\n        (regresarInscripcion)=\"regresarDetalleInscripcion()\"></app-detalle-evento-cursos-publicacion>\n    }\n</div>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { RequerimientoPersonalPipe } from '../../pipes/requerimiento-personal.pipe';\nimport { SelectListTalento } from '../../services/select-list-talento.service';\nimport { PuestoTrabajoModel } from '../../models/PuestoTrabajoModel';\nimport { RequerimientoPersonalModel } from '../../models/RequerimientoPersonalModel';\nimport { AuthService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { UnidadOrganizacionalModel } from '../../models/UnidadOrganizacionalModel';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { EmpleadoModel } from '../../../compensacion/models/EmpleadoModel';\nimport { PuestoTrabajoService } from '../../services/puesto-trabajo.service';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { EncriptadoBasicoService } from '../../../../shared/servicios/encriptado-basico.service';\nimport { CargoModel } from '../../models/CargoModel';\nimport { PopupMotivoRequerimientoComponent } from '../popup-motivo-requerimiento/popup-motivo-requerimiento.component';\nimport { EmpresaModel } from '../../../compensacion/models/EmpresaModel';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { InputHelperCargoComponent } from '../../../../shared/componentes/input-helper-cargo/input-helper-cargo.component';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\n\n@Component({\n  selector: 'app-popup-nuevo-requerimiento-personal',\n  templateUrl: './popup-nuevo-requerimiento-personal.component.html',\n  styleUrls: ['./popup-nuevo-requerimiento-personal.component.scss'],\n  standalone: true,\n  imports: [DialogModule, NgIf, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, FormsModule, ReactiveFormsModule, DropdownModule, InputHelperUnidadComponent, InputHelperCargoComponent, InputHelperEmpleadoBotonComponent, ButtonDirective, PopupMotivoRequerimientoComponent, TranslateModule]\n})\nexport class PopupNuevoRequerimientoPersonalComponent implements OnInit {\n\n  filtrar: boolean;\n  mostrarPopup: boolean;\n  expande: boolean;\n  verAcciones: boolean;\n  verDatos: boolean;\n  linkPopup = [];\n  puestoTrabajoDTO: PuestoTrabajoModel = new PuestoTrabajoModel();\n  requerimientoPersonalDTO: RequerimientoPersonalModel = new RequerimientoPersonalModel();\n  filtro: PuestoTrabajoModel = new PuestoTrabajoModel();\n  datos: PuestoTrabajoModel = new PuestoTrabajoModel();\n  listaPuestos: PuestoTrabajoModel[] = [];\n  continuar: boolean;\n  listaEmpresa = [];\n  rutaFoto: any;\n  nombreAccion: string;\n  verFiltro: boolean;\n  formulario: FormGroup;\n  @ViewChild(PopupMotivoRequerimientoComponent) popupMotivoRequerimiento: PopupMotivoRequerimientoComponent;\n  @Output() setVistaVisualizar: EventEmitter<any> = new EventEmitter();\n  @Output() requerimientoPM: EventEmitter<any> = new EventEmitter();\n\n  constructor(private reqPersonalPipe: RequerimientoPersonalPipe, private selectListTalento: SelectListTalento, public authService: AuthService,\n    private generalSvc: GeneralService, private formBuilder: FormBuilder, public translateService: TranslateService, private notificationBusService: ToastService,\n    private puestoTrabajoSvc: PuestoTrabajoService, private cargarArchivo: CargarArchivosService, private encriptadoBasico: EncriptadoBasicoService, private utilService: UtilsService) { }\n\n  async ngOnInit(): Promise<void> { }\n\n  public async inicializar() {\n    this.expande = true;\n    this.verAcciones = true;\n    this.verDatos = false;\n    this.linkPopup = this.reqPersonalPipe.LISTAESTADOPOPUP;\n    this.puestoTrabajoDTO = new PuestoTrabajoModel();\n    this.requerimientoPersonalDTO = new RequerimientoPersonalModel();\n    this.filtro = new PuestoTrabajoModel();\n    this.datos = new PuestoTrabajoModel();\n    this.listaPuestos = [];\n    this.continuar = false;\n    this.listaEmpresa = await this.selectListTalento.getListaEmpresa();\n    try {\n      // this.rutaFoto  = this.getPropiedadAplicativo(PropiedadesAplicativoDTO.XRUTA_FOTO);\n      if (this.authService.getTokenKey('isCliente')) {\n        //modificar por consultar puesto trabajo\n        let unidadFiltro = new UnidadOrganizacionalModel();\n        unidadFiltro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        unidadFiltro.estado = Constantes.CONSTANTE_SI;\n        unidadFiltro.login = this.authService.getTokenKey('nombreRol');\n        unidadFiltro.aliasRol = this.authService.getTokenKey('aliasRol');\n        unidadFiltro.filtroSucursalGes = Constantes.CONSTANTE_SI;\n        let lista: UnidadOrganizacionalModel[] = await this.generalSvc.queryForList(new GeneralModel('UnidadOrganizacionalDTO', null, false, unidadFiltro)).toPromise();\n        let listaUnidadesJefe = [];\n        for (const dto of lista) {\n          listaUnidadesJefe.push({ key: dto.unidad, label: dto.nombreUnidad })\n        }\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n\n  public async seleccionar(evento) {\n    try {\n      this.expande = true;\n      this.verAcciones = false;\n      let accion: string = evento?.data?.nombre;\n      this.nombreAccion = accion;\n      this.filtrar = false;\n      if (this.reqPersonalPipe.BUSCARNUESVOPTDES == accion || this.reqPersonalPipe.BUSCARNUMEROIDENTDES == accion) {\n        this.requerimientoPersonalDTO.tipo = 'PT';\n      }\n      if (this.reqPersonalPipe.BUSCARNUESVOPTDES == accion || this.reqPersonalPipe.INCLUIRDATOSDES == accion) {\n        this.verFiltro = true;\n        if (accion == this.reqPersonalPipe.INCLUIRDATOSDES) {\n          this.filtrar = true;\n          this.requerimientoPersonalDTO.tipo = 'CE';\n        } else {\n          this.filtrar = false;\n        }\n      } else if (this.reqPersonalPipe.BUSCARNUMEROIDENTDES == accion) {\n        this.verFiltro = false;\n      }\n      this.puestoTrabajoDTO = new PuestoTrabajoModel();\n      this.listaPuestos = [];\n      await this.cargarFormulario();\n      this.verDatos = true;\n    } catch (error) {\n      console.log(error);\n    }\n  }\n\n  cargarFormulario() {\n    this.formulario = this.formBuilder.group({\n      llaveTabla: new FormControl((this.puestoTrabajoDTO?.llaveTabla) ? this.puestoTrabajoDTO?.llaveTabla : null),\n      empresa: new FormControl((this.puestoTrabajoDTO?.llaveTabla) ? this.puestoTrabajoDTO?.llaveTabla : null,),\n      unidad: new FormControl((this.puestoTrabajoDTO?.unidad) ? this.puestoTrabajoDTO?.unidad : null,),\n      nombreUnidad: new FormControl((this.puestoTrabajoDTO?.nombreUnidad) ? this.puestoTrabajoDTO?.nombreUnidad : null),\n      cargo: new FormControl((this.puestoTrabajoDTO?.cargo) ? this.puestoTrabajoDTO?.cargo : null),\n      nombreCargo: new FormControl((this.puestoTrabajoDTO?.nombreCargo) ? this.puestoTrabajoDTO?.nombreCargo : null),\n      cedulaUltimoOcupo: new FormControl((this.puestoTrabajoDTO?.cedulaUltimoOcupo) ? this.puestoTrabajoDTO?.cedulaUltimoOcupo : null),\n      nombreCompleto: new FormControl((this.puestoTrabajoDTO?.nombreCompleto) ? this.puestoTrabajoDTO?.nombreCompleto : null),\n      contratoOcupa: new FormControl((this.puestoTrabajoDTO?.contratoOcupa) ? this.puestoTrabajoDTO?.contratoOcupa : null),\n    });\n  }\n\n  onSelectCargo(event) {\n    this.formulario.get('cargo').setValue(event.cargo);\n    this.formulario.get('nombreCargo').setValue(event.descripcion);\n  }\n\n  cargarUnidad(event) {\n    this.formulario.get('unidad').setValue(event.unidad);\n    this.formulario.get('nombreUnidad').setValue(event.nombreUnidad);\n  }\n\n  async onSelectEmpleado(evento: EmpleadoModel) {\n    this.formulario.get('nombreCompleto').setValue(evento.nombreCompleto);\n    this.formulario.get('cedulaUltimoOcupo').setValue(evento.cedula);\n    this.formulario.get('contratoOcupa').setValue(evento.contrato);\n  }\n\n  cambiarAccion() {\n    this.expande = true;\n    this.verAcciones = true;\n    this.verDatos = false;\n    this.continuar = false;\n    return null;\n  }\n\n  async actionTraerPuestos() {\n    await this.validar();\n    await this.utilService.sleep(100);\n    this.continuar = false;\n    this.listaPuestos = []\n    if (!this.formulario.valid) {\n      Object.keys(this.formulario.controls).forEach((key) => {\n        if (this.formulario.get(key).errors) {\n          this.formulario.get(key).markAsDirty();\n        }\n      });\n      this.notificationBusService.showError('Faltan campos obligatorios');\n      return null;\n    }\n    if (this.formulario.get('empresa').value != null && this.formulario.get('empresa').value != 0) {\n      this.filtro.empresa = this.formulario.get('empresa').value;\n    }\n    if (this.formulario.get('unidad').value != null && this.formulario.get('unidad').value != Constantes.ESPACIO_NULO) {\n      this.filtro.unidad = this.formulario.get('unidad').value;\n    }\n    if (this.formulario.get('cargo').value != null && this.formulario.get('cargo').value != Constantes.ESPACIO_NULO) {\n      this.filtro.cargo = this.formulario.get('cargo').value;\n    }\n    if (this.formulario.get('cedulaUltimoOcupo').value != null && this.formulario.get('cedulaUltimoOcupo').value != 0) {\n      this.filtro.contratoOcupa = this.formulario.get('cedulaUltimoOcupo').value;\n    } else {\n      this.filtro.contratoOcupa = null;\n    }\n    this.filtro.tipoEstados = \"TODOS\";\n    this.listaPuestos = await this.puestoTrabajoSvc.consultarListaPuestoTrabajo(this.filtro);\n    if (this.listaPuestos.length == 0) {\n      this.notificationBusService.showWarning('No existen registros');\n    } else {\n      let caminoFoto: string;\n      for (const unPuesto of this.listaPuestos) {\n        caminoFoto = null;\n        if (unPuesto.cedulaOcupa != null) {\n          if (unPuesto.caminoFotoOcupa != null && unPuesto.caminoFotoOcupa != Constantes.ESPACIO_BLANCO) {\n\n            let propiedad = 'ruta_fotos';\n            let aplicacion = this.authService.getTokenKey('aplicacion');\n            try {\n              this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(unPuesto.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n                const reader = new FileReader();\n                reader.onload = () => {\n                  const dataUrl = reader.result as string;\n                  const base64 = dataUrl.split(',')[1];\n                  unPuesto.caminoFotoTemporal = 'data:image/png;base64,' + base64\n                };\n                reader.readAsDataURL(blob)\n              });\n            } catch (error) {\n              unPuesto.caminoFotoTemporal = null;\n            }\n          }\n        }\n\n      }\n    }\n  }\n\n  async validar() {\n    Object.keys(this.formulario.controls).forEach((key) => {\n      if (this.formulario.get(key).errors) {\n        this.formulario.get(key).clearAsyncValidators();\n      }\n    });\n    this.formulario.get('empresa').addValidators([Validators.required]);\n    if (this.verFiltro) {\n      this.formulario.get('nombreUnidad').addValidators([Validators.required]);\n      this.formulario.get('nombreCargo').addValidators([Validators.required]);\n    } else {\n      this.formulario.get('nombreCompleto').addValidators([Validators.required]);\n    }\n    Object.keys(this.formulario.controls).forEach((key) => {\n      this.formulario.get(key).updateValueAndValidity();\n    });\n  }\n\n  blobToBase64(blob: Blob) {\n    let retorno: string = '';\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      retorno = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n    return retorno;\n  }\n\n  seleccionarPuesto(event) {\n    this.datos = event.data;\n    if (event.data != null) {\n      this.cambiarEstadoSeleccion(event.data.llave);\n      this.continuar = true\n    }\n  }\n\n  cambiarEstadoSeleccion(llave) {\n    for (const pt of this.listaPuestos) {\n      pt.check = (pt.llave == llave);\n    }\n  }\n\n  async llevarDatos() {\n    try {\n      this.validar();\n      if (!this.formulario.valid) {\n        Object.keys(this.formulario.controls).forEach((key) => {\n          if (this.formulario.get(key).errors) {\n            this.formulario.get(key).markAsDirty();\n          }\n        });\n        this.notificationBusService.showError('Faltan campos obligatorios');\n        return null;\n      }\n      let cargoDTO: CargoModel = await this.obtenerCargo();\n      this.utilService.sleep(10);\n      await this.popupMotivoRequerimiento.buscar(this.reqPersonalPipe.POPUPMOTIVOREQUERIMIENTO, this.requerimientoPersonalDTO.tipo, cargoDTO.clasificacion, cargoDTO.empresa);\n      this.mostrarPopup = false;\n    } catch (error) {\n\n    }\n  }\n\n  async colocarDatos(motivo) {\n    try {\n      this.setVistaVisualizar.emit('requerimientoPM');\n      if (this.filtrar && this.formulario.value != null) {\n        this.requerimientoPersonalDTO.motivoRequerimiento = motivo.motivo;\n        this.requerimientoPersonalDTO.nombreMotivoRequerimiento = motivo.descripcion;\n        this.requerimientoPersonalDTO.unidad = this.formulario.get('unidad').value;\n        this.requerimientoPersonalDTO.cargo = this.formulario.get('cargo').value;\n        this.requerimientoPersonalDTO.empresa = this.formulario.get('empresa').value;\n        let cargo: CargoModel = await this.obtenerCargo();\n        this.requerimientoPersonalDTO.clasificacionFiltro = cargo.clasificacion;\n        let empresa: EmpresaModel = new EmpresaModel();\n        empresa.empresa = this.formulario.get('empresa').value;\n        empresa = await this.generalSvc.queryForObject(new GeneralModel('EmpresaDTO', null, false, empresa)).toPromise();\n        this.requerimientoPersonalDTO.nombreEmpresa = empresa.nombre;\n        this.requerimientoPM.emit({ destino: 'nuevoRequerimiento', requerimientoPM: this.requerimientoPersonalDTO });\n        return;\n      } else if (this.datos != null) {\n        this.requerimientoPM.emit({ destino: 'gestionRequerimientoPuesto', dato: this.datos, motivo: motivo });\n      }\n      this.mostrarPopup = false;\n    } catch (error) {\n\n    }\n  }\n\n  private async obtenerCargo() {\n    let cargoDTO = new CargoModel();\n    cargoDTO.cargo = this.datos.cargo == null ? this.formulario.get('cargo').value : this.datos.cargo;\n    cargoDTO.empresa = this.datos.empresa == null ? this.formulario.get('empresa').value : this.datos.empresa;\n    cargoDTO = await this.generalSvc.queryForObject(new GeneralModel('CargoDTO', null, false, cargoDTO)).toPromise();\n    return cargoDTO;\n  }\n\n  setMostrarPopup(boolean: boolean) {\n    this.mostrarPopup = boolean;\n  }\n\n\n  handleEnterKey(event: any) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n\n}\n","<p-dialog header=\"{{'nuevorequerimientopersonal' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '50vw'}\"\n    (onHide)=\"setMostrarPopup(false)\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div *ngIf=\"verAcciones\">\n        <p-table #tablaGeneral id=\"tabla_lista_sucursal\" [value]=\"linkPopup\" responsiveLayout=\"scroll\"\n            [scrollable]=\"true\" selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n            [lazy]=\"false\" dataKey=\"key\" (onRowSelect)=\"seleccionar($event)\">\n            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th>{{'tipo' | translate}}</th>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-campo>\n                <tr [pSelectableRow]=\"campo\">\n                    <td>\n                        {{campo.nombre}}\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        </p-table>\n    </div>\n    <div *ngIf=\"verDatos\">\n        <h5>{{nombreAccion}}</h5>\n        <div class=\"field col-12 md:col-12 lg:col-12\">\n            <div class=\"Inputgroup\">\n                <div class=\"p-fluid p-formgrid grid\" [formGroup]=\"formulario\">\n\n                    <!-- EMPRESA -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown id=\"tipoActividad\" [options]=\"listaEmpresa\" formControlName=\"empresa\"\n                                optionValue=\"key\" optionLabel=\"label\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                [autoZIndex]=\"false\"></p-dropdown>\n                            <label htmlFor=\"tipoActividad\">{{'empresa' | translate}}*</label>\n                        </span>\n                    </div>\n\n                    <!-- UNIDAD-->\n                    <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"verFiltro\">\n                        <span class=\"p-float-label\">\n                            <app-input-helper-unidad formControlName=\"nombreUnidad\" [readonly]=\"false\"\n                                [empresa]=\"this.formulario.get('empresa').value\"\n                                [label]=\"this.formulario.get('nombreUnidad').value == null ? '' : this.formulario.get('nombreUnidad').value\"\n                                [booleano]=\"!this.formulario.get('nombreUnidad').valid\"\n                                (onSelected)=\"cargarUnidad($event)\"\n                                [header]=\"this.translateService.instant('unidad' | translate) +'*'\"\n                                (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                            </app-input-helper-unidad>\n                        </span>\n                    </div>\n\n                    <!-- CARGO -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\"\n                        *ngIf=\"verFiltro && this.authService.getTokenKey('isCliente')\">\n                        <span class=\"p-float-label\">\n                            <app-input-helper-cargo [booleano]=\"!this.formulario.get('cargo').valid\"\n                                formControlName=\"nombreCargo\" [nombreInput]=\"''\" [nombreInput]=\"'Cargo'\"\n                                (keydown.enter)=\"handleEnterKey($event)\"\n                                [label]=\"this.formulario.get('nombreCargo').value ? this.formulario.get('nombreCargo').value : ''\"\n                                [mostrarX]=\"false\" (onSelected)=\"onSelectCargo($event)\"></app-input-helper-cargo>\n                        </span>\n                    </div>\n\n                    <!-- Persona -->\n                    <div class=\"field col-12 md:col-4 lg:col-4\" *ngIf=\"!verFiltro\">\n                        <span class=\"p-float-label\">\n                            <app-input-helper-empleado-boton formControlName=\"nombreCompleto\" [booleano]=\"!this.formulario.get('nombreCompleto').valid\"\n                                (keydown.enter)=\"handleEnterKey($event)\" [nombreInput]=\"'identificacion' | translate\"\n                                [label]=\"this.formulario.get('nombreCompleto').value == null ? '' : this.formulario.get('nombreCompleto').value\"\n                                (onSelected)=\"onSelectEmpleado($event)\">\n                            </app-input-helper-empleado-boton>\n                        </span>\n                    </div>\n\n                </div>\n                <div\n                    [class]=\"listaPuestos.length != 0 ? 'flex justify-content-end align-items-center mb-2' : 'flex justify-content-end align-items-center mb-1'\">\n                    <button pButton class=\"ml-2 p-button-outlined\" label=\"cambiar\" (click)=\"cambiarAccion()\"><span\n                            class=\"glyphicons glyphicons-history\" aria-hidden=\"true\"></span>\n                    </button>\n                    <button pButton class=\"p-button-raised ml-2\" *ngIf=\"!filtrar\" label=\"{{'link_filtrar'| translate}}\"\n                        (click)=\"actionTraerPuestos()\"><span class=\"glyphicons glyphicons-search\"\n                            aria-hidden=\"true\"></span> </button>\n                    <button class=\"p-element p-ripple p-button-secondary ml-2\" *ngIf=\"continuar || filtrar\" pButton\n                        label=\"{{'link_continuar'| translate}}\" (click)=\"llevarDatos()\"> <span\n                            class=\"glyphicons glyphicons-floppy-save\" aria-hidden=\"true\"></span></button>\n                </div>\n            </div>\n        </div>\n        <div *ngIf=\"listaPuestos.length != 0\">\n            <p-table #tablaGeneral id=\"tabla_lista_sucursal\" [value]=\"listaPuestos\" responsiveLayout=\"scroll\"\n                [scrollable]=\"true\" selectionMode=\"single\" scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\"\n                [lazy]=\"false\" dataKey=\"llave\" (onRowSelect)=\"seleccionarPuesto($event)\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th class=\"w-6rem\">{{'nombre' | translate}}</th>\n                        <th class=\"w-6rem\">{{'' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-puesto>\n                    <tr [pSelectableRow]=\"puesto\">\n                        <td class=\"w-6rem\">\n                            {{puesto?.nombreCompleto}}\n                        </td>\n                        <td class=\"w-6rem\">\n                            <div class=\"justify-content-between align-items-center mr-3\" style=\"width: 20%;\">\n                                <img [src]=\"puesto?.caminoFotoTemporal\" alt=\"Foto\" class=\"us-foto-perfil avatar-image\"\n                                    *ngIf=\"puesto?.caminoFotoTemporal\">\n                                <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"us-foto-perfil avatar-image\"\n                                    *ngIf=\"!puesto?.caminoFotoTemporal\">\n                            </div>\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n    </div>\n</p-dialog>\n<app-popup-motivo-requerimiento (aplicarDestino)=\"colocarDatos($event)\"\n    (regresar)=\"setMostrarPopup($event)\"></app-popup-motivo-requerimiento>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AuthService, CargarControlFuncionalidadService, cargarmapasGlobal, FiltroGeneralComponent, GeneralModel, GeneralService, MenuService, PuntoProcesoCompComponent, UtilsService } from 'general-library-union';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { RequerimientoPersonalPipe } from '../../../pipes/requerimiento-personal.pipe';\nimport { RequerimientoPmPage } from '../../planta-personal/requerimiento-pm/requerimiento-pm.page';\nimport { PopupNuevoRequerimientoPersonalComponent } from '../../../popups/popup-nuevo-requerimiento-personal/popup-nuevo-requerimiento-personal.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\n\n\n@Component({\n  selector: 'app-listado-requerimiento-personal-con',\n  templateUrl: './listado-requerimiento-personal-con.component.html',\n  styleUrls: ['./listado-requerimiento-personal-con.component.scss'],\n  standalone: true,\n  imports: [NgIf, FormsModule, ReactiveFormsModule, DropdownModule, InputHelperEmpleadoBotonComponent, InputTextModule, CheckboxModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, RequerimientoPmPage, PopupNuevoRequerimientoPersonalComponent, DatePipe, TranslateModule, RequerimientoPersonalPipe,\n    FiltroGeneralComponent, PuntoProcesoCompComponent\n  ]\n})\nexport class ListadoRequerimientoPersonalConComponent implements OnInit {\n\n  vistaVisualizar: string;\n  listaRequerimientoPersonal: RequerimientoPersonalModel[] = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  nombreEmpleado;\n  identificacion;\n  filters = [];\n  listaEmpresas: any[] = [];\n  listaCargo: any[] = [];\n  listaUnidad: any[] = [];\n  listaMotivoReque: any[];\n  listaEstado: any[];\n  objEmpresa\n  objCargo\n  objUnidad\n  objEstado\n  objMotivoVacante\n  empresa: number;\n  filtroUnidad: UnidadOrganizacionalModel = new UnidadOrganizacionalModel();\n  filtroBean: RequerimientoPersonalModel = new RequerimientoPersonalModel();\n  TODOS: number = null\n  activos\n\n\n  @ViewChild(RequerimientoPmPage) requerimientoPmPage: RequerimientoPmPage;\n  @ViewChild(PopupNuevoRequerimientoPersonalComponent) nuevoRequerimientoPersonal: PopupNuevoRequerimientoPersonalComponent;\n\n  constructor(private authService: AuthService, private controlFuncionService: CargarControlFuncionalidadService, private generalService: GeneralService, private translateService: TranslateService, private selectEvaluaciones: SelectListEvaluacionesService,\n    private cargarMapas: cargarmapasGlobal, public requerimientoPersonalPipe: RequerimientoPersonalPipe, private utilsService: UtilsService, private menuService: MenuService,\n    private saraAplicacionServices: SaraAplicacionService,) {\n    this.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    if (this.verificarControl('reqper:filtroEmpresa')) {\n      this.filtroUnidad.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\n    }\n  }\n\n  ngOnInit(): void {\n\n    this.menuService.setBreadcrumb([{ label: 'Listado Requerimiento' }]);\n    this.cargar();\n  }\n\n  async cargar() {\n    await this.cargarFiltros();\n    await this.cargarListados();\n  }\n  async cargarListados() {\n    this.listaEstado = await this.requerimientoPersonalPipe.LISTAESTADOREQUERIMIENTO.sort(this.selectEvaluaciones.compararPorNombre);\n    //this.listaEmpresas = await this.selectEvaluaciones.listaEmpresa();\n\n    this.listaEmpresas = await this.cargarMapas.cargarSelectItemString('empresa', 'nombre', new GeneralModel('EmpresaDTO', null, false, { organizacion: parseInt(this.authService.getTokenKey('llaveEmpresa')) }));\n    this.listaMotivoReque = await this.selectEvaluaciones.listaMotivoReque();\n\n    this.objEmpresa = await this.listaEmpresas.reduce((obj, element) => {\n      obj[element.key] = element.label;\n      return obj;\n    });\n\n    this.objEstado = await this.requerimientoPersonalPipe.LISTAESTADOREQUERIMIENTO?.reduce((obj, element) => {\n      obj[element.codigo] = element.nombre;\n      return obj;\n    });\n    this.objMotivoVacante = await this.listaMotivoReque?.reduce((obj, element) => {\n      obj[element.codigo] = element.nombre;\n      return obj;\n    });\n  }\n\n  async cargarFiltros() {\n\n    this.filters = [\n      {\n        field: 'empresa',\n        header: this.translateService.instant('empresa'),\n        values: (value) => this.listaEmpresas?.filter(data => data.key == value)[0].label,\n        matchMode: 'equal',\n      },\n      {\n        field: 'cargo',\n        header: this.translateService.instant('cargo'),\n        values: (value) => this.listaCargo.filter(data => data.codigo == value)[0].nombre,\n        matchMode: 'equal',\n      },\n      {\n        field: 'unidad',\n        header: this.translateService.instant('unidad'),\n        values: (value) => this.listaUnidad.filter(data => data.codigo == value)[0].nombre,\n        matchMode: 'equal',\n      },\n      {\n        field: 'motivoRequerimiento',\n        header: this.translateService.instant('motivo') + ' ' + this.translateService.instant('vacante'),\n        values: (value) => this.listaMotivoReque.filter(data => data.codigo == value)[0].nombre,\n        matchMode: 'equal',\n      },\n      {\n        field: 'cadenaConsecutivo',\n        header: this.translateService.instant('cadenaconsecutivo'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'documentoRequerimientoSolicita',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'nombreCompleto',\n        header: this.translateService.instant('nombrecompleto'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'activo',\n        header: this.translateService.instant('activo'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (value) => this.requerimientoPersonalPipe.LISTAESTADOREQUERIMIENTO.filter(data => data.codigo == value)[0].nombre,\n        matchMode: 'equal',\n      },\n    ];\n  }\n\n  cargarListas(event) {\n    if (this.TODOS != event.value) {\n      this.filtroUnidad.empresa = event.value;\n      this.empresa = event.value;\n      this.cargarListaCargo();\n      this.cargarListaUnidad();\n    } else {\n      this.filtroUnidad.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      this.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      this.listaCargo = [];\n      this.listaUnidad = [];\n    }\n\n  }\n\n  async cargarListaUnidad() {\n    this.filtroUnidad.aliasRol = this.authService.getTokenKey('aliasRol');\n    this.filtroUnidad.login = this.authService.getTokenKey('usuario');\n    this.listaUnidad = await this.selectEvaluaciones.getListaUnidadOrganizacional(this.filtroUnidad);\n    this.objUnidad = await this.listaUnidad?.reduce((obj, element) => {\n      obj[element.codigo] = element.nombre;\n      return obj;\n    });\n  }\n\n  async cargarListaCargo() {\n    this.listaCargo = await this.selectEvaluaciones.getListaCargoActivoSinSeleccione(this.empresa);\n    this.objCargo = await this.listaCargo?.reduce((obj, element) => {\n      obj[element.codigo] = element.nombre;\n      return obj;\n    });\n  }\n\n  async loadRequerimientoP(event) {\n    \n    //Tiempo de espera para cargar el iframe completo en el portal \n    await this.utilsService.sleep(100);\n    this.utilsService.resizeWindowIFrame();\n\n    if (event.empresa?.value == this.TODOS) {\n      this.listaCargo = [];\n      this.listaUnidad = [];\n      this.filtroUnidad.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      this.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    }\n\n    if(this.isCliente()){\n       this.filtroBean.requerimientoSolicita =  await this.saraAplicacionServices.getCedula();\n\n    }else{\n\n      if(!event.nombreCompleto?.value){\n        this.filtroBean.requerimientoSolicita = null;\n      }\n      this.filtroBean.organizacion = (await this.saraAplicacionServices.getEmpresa()).organizacion;\n    }\n\n    let objeto = {\n      paginacionRegistroInicial: event?.first != null ? event?.first : 0,\n      paginacionRegistroFinal: event?.rows != null ? event?.rows : 10,\n      empresa: this.empresa,\n      consultarActivos: this.activos ? 'S' : 'E',\n      filtroSucursalGes: 'S',\n      usuarioRol: this.authService.getTokenKey('aliasRol'),\n      usuarioLogin: this.authService.getTokenKey('usuario'),\n      cargo: event.cargo?.value ? event.cargo?.value : null,\n      unidad: event.unidad?.value ? event.unidad?.value : null,\n      estado: event.estado?.value ? event.estado?.value : null,\n      documentoRequerimientoSolicita: event.documentoRequerimientoSolicita?.value ? event.documentoRequerimientoSolicita?.value : null,\n      motivoRequerimiento: event.motivoRequerimiento?.value ? event.motivoRequerimiento?.value : null,\n      cadenaConsecutivo: event.cadenaConsecutivo?.value ? event.cadenaConsecutivo?.value : null,\n      nombreCompleto: event.nombreCompleto?.value ? event.nombreCompleto?.value : null,\n      requerimientoSolicita: this.filtroBean.requerimientoSolicita,\n      organizacion: this.filtroBean.organizacion,\n    }\n\n    this.listaRequerimientoPersonal = await this.generalService.queryForList(new GeneralModel('RequerimientoPersonalDTO', null, false, objeto)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('RequerimientoPersonalDTO', null, false, objeto)).toPromise();\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  async verAction(event) {\n    this.vistaVisualizar = 'requerimientoPM';\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(1000);\n    await this.requerimientoPmPage?.verRequerimiento(event.data.llaveTabla);\n  }\n\n\n\n  public verificarControl(control) {\n    return this.controlFuncionService.getControlFuncionalidad(control);\n  }\n\n  async onSelectEmpleado(evento: EmpleadoModel) {\n    this.filtroBean.requerimientoSolicita = evento.cedula;\n    this.filtroBean.documentoRequerimientoSolicita = evento.documento;\n    this.filtroBean.nombreCompleto = evento.nombreCompleto;\n  }\n\n\n  public async nuevo() {\n    try {\n      await this.nuevoRequerimientoPersonal.setMostrarPopup(true);\n      await this.nuevoRequerimientoPersonal.inicializar();\n    } catch (error) {\n\n    }\n  }\n\n  public setVistaVisualizar(event: any) {\n    this.vistaVisualizar = event;\n  }\n\n\n  public async setRequerimientoPM(event) {\n    await this.utilsService.sleep(100);\n    if (event?.destino != null || event?.destino != '') {\n      if (event?.destino == 'nuevoRequerimiento') {\n        await this.requerimientoPmPage.nuevoRequerimiento(event?.requerimientoPM);\n        return;\n      }\n      if (event?.destino == 'gestionRequerimientoPuesto') {\n\n        await this.requerimientoPmPage.gestionRequerimientoPuesto(event?.dato, event?.motivo);\n      }\n\n    } else {\n      return\n    }\n  }\n\n}\n","<div *ngIf=\"vistaVisualizar == null\">\n@if(!isCliente()){\n    <h1>{{'requerimiento'|translate}} {{'personal'|translate}}</h1>\n}\n<div class=\"flex justify-content-between align-items-center mb-3\" >\n    <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"loadRequerimientoP($event)\">\n        <ng-template let-form>\n            <ng-container [formGroup]=\"form\">\n                <div class=\"flex mt-3\">\n                    <!-- EMPRESA -->\n                    <div class=\"mr-3 w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [autoDisplayFirst]=\"false\" id=\"empresa\" [showClear]=\"true\"\n                                [options]=\"this.listaEmpresas\" formControlName=\"empresa\" optionLabel=\"label\"\n                                optionValue=\"key\" (onChange)=\"cargarListas($event)\">\n                            </p-dropdown>\n                            <label for=\"empresa\">{{'empresa' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- ESTADO -->\n                    <div class=\"w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [autoDisplayFirst]=\"false\" id=\"estado\" [options]=\"this.listaEstado\"\n                                [showClear]=\"true\" formControlName=\"estado\" optionLabel=\"nombre\" optionValue=\"codigo\">\n                            </p-dropdown>\n                            <label for=\"estado\">{{'estado' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n\n                <div class=\"flex mt-3\">\n                    <!-- SOLICITADO -->\n                    <div class=\"mr-3 w-full\">\n                        <span class=\"p-float-label\">\n                            <app-input-helper-empleado-boton formControlName=\"nombreCompleto\" [nombreInput]=\"'Solicitado'\"\n                                [label]=\"this.filtroBean.nombreCompleto != null ? this.filtroBean.nombreCompleto : ''\"\n                                [(ngModel)]=\"this.filtroBean.nombreCompleto\" (onSelected)=\"onSelectEmpleado($event)\">\n                            </app-input-helper-empleado-boton>\n                        </span>\n                    </div>\n                    <!-- IDENTIFICACION -->\n                    <div class=\"w-full\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"documentoRequerimientoSolicita\"\n                                formControlName=\"documentoRequerimientoSolicita\" autocomplete=\"off\" />\n                            <label for=\"documentoRequerimientoSolicita\">{{'identificacion' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n\n                <div class=\"flex mt-3\">\n                    <!-- CARGO -->\n                    <div class=\"mr-3 w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [autoDisplayFirst]=\"false\" id=\"cargo\" [options]=\"this.listaCargo\"\n                                [showClear]=\"true\" formControlName=\"cargo\" optionLabel=\"nombre\" optionValue=\"codigo\">\n                            </p-dropdown>\n                            <label for=\"cargo\">{{'cargo' | translate}}</label>\n                        </span>\n                    </div>\n                      <!-- CONSECUTIVO -->\n                      <div class=\"w-full\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"cadenaConsecutivo\"\n                                formControlName=\"cadenaConsecutivo\" autocomplete=\"off\" />\n                            <label for=\"cadenaConsecutivo\">{{'consecutivo' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n                <div class=\"flex mt-3\">\n                    <!-- UNIDAD ORGANIZACIONAL -->\n                    <div class=\"w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [autoDisplayFirst]=\"false\" id=\"unidad\" [options]=\"this.listaUnidad\"\n                                [showClear]=\"true\" ormControlName=\"unidad\" optionLabel=\"nombre\" optionValue=\"codigo\">\n                            </p-dropdown>\n                            <label for=\"unidad\">{{'unidad' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n                <div class=\"flex mt-3\">\n                    <!-- MOTIVO VACANTE -->\n                    <div class=\"w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [autoDisplayFirst]=\"false\" id=\"motivoRequerimiento\" [showClear]=\"true\"\n                                [virtualScroll]=\"true\" [virtualScrollItemSize]=\"38\" [options]=\"this.listaMotivoReque\"\n                                formControlName=\"motivoRequerimiento\" optionLabel=\"nombre\" optionValue=\"codigo\">\n                            </p-dropdown>\n                            <label for=\"motivoRequerimiento\">{{'motivo' | translate}} {{'vacante' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n                <div class=\"flex mt-3\">\n                    <div class=\"mb-2 w-full flex\">\n                        <p-checkbox class=\"mr-1\" formControlName=\"activos\" [(ngModel)]=\"activos\" [binary]=\"true\">\n                        </p-checkbox>\n                        <label>{{'activo' | translate}}</label>\n                        \n                    </div>\n                </div>\n\n            </ng-container>\n        </ng-template>\n    </app-filtro-general>\n    <div class=\"flex justify-content-between align-items-center\">\n    <button pButton pRipple icon=\"pi pi-plus\" class=\"p-element p-ripple p-button-secondary\"\n        label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevo()\">\n    </button>\n    <app-punto-proceso-comp [key]=\"'listadoRequerimientoPersonalBean'\" [componente]=\"this\"></app-punto-proceso-comp>\n</div>\n</div>\n<p-table #tablaGeneral id=\"tabla_lista_sucursal\" [value]=\"listaRequerimientoPersonal\" responsiveLayout=\"scroll\"\n    [paginator]=\"paginator.totalRecords > paginator.rows\" [scrollable]=\"true\" selectionMode=\"single\"\n    scrollDirection=\"horizontal\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\"\n    [totalRecords]=\"paginator.totalRecords\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\"\n    (onLazyLoad)=\"loadRequerimientoP($event)\" dataKey=\"llaveTabla\" (onRowSelect)=\"verAction($event)\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th class=\"w-6rem\">{{'empresa' | translate}}</th>\n            <th class=\"w-6rem\">{{'unidad' | translate}}</th>\n            <th class=\"w-6rem\">{{'cargo' | translate}}</th>\n            <th class=\"w-6rem\">{{'fecha' | translate}} {{'solicitud' | translate}}</th>\n            <th class=\"w-6rem\">{{'motivo' | translate}} {{'vacante' | translate}}</th>\n            <th class=\"w-6rem\">{{'consecutivo' | translate}}</th>\n            <th class=\"w-6rem\">{{'estado' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-requerimientoPersonalVar let-editing=\"editing\" let-ri=\"rowIndex\">\n        <tr [pSelectableRow]=\"requerimientoPersonalVar\">\n            <td class=\"w-6rem\">\n                {{requerimientoPersonalVar.nombreEmpresa}}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPersonalVar.nombreUnidad}}\n            </td>\n            <td class=\"w-6rem\">\n                {{ (requerimientoPersonalVar.nombreNuevoCargo == '.' || requerimientoPersonalVar.nombreNuevoCargo ==\n                null ) ? requerimientoPersonalVar.nombreCargo : requerimientoPersonalVar.nombreNuevoCargo }}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPersonalVar.solicitud | date:'yyyy/MM/dd'}}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPersonalVar.nombreMotivoRequerimiento}}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPersonalVar.cadenaConsecutivo}}\n            </td>\n            <td class=\"w-6rem\">\n                {{requerimientoPersonalVar.estado | requerimientoPipe:'listadoRequerimiento'}}\n            </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>\n\n</div>\n<div *ngIf=\"vistaVisualizar == 'requerimientoPM'\">\n        <app-requerimiento-pm (setVistaVisualizar)=\"setVistaVisualizar($event)\"></app-requerimiento-pm>\n</div>\n<app-popup-nuevo-requerimiento-personal (setVistaVisualizar)=\"setVistaVisualizar($event)\" (requerimientoPM)=\"setRequerimientoPM($event)\"></app-popup-nuevo-requerimiento-personal>","import { Component, OnInit } from '@angular/core';\nimport { ListadoRequerimientoPersonalConComponent } from '../listado-requerimiento-personal-con/listado-requerimiento-personal-con.component';\n\n@Component({\n    templateUrl: './listado-requerimiento-personal.page.html',\n    styleUrls: ['./listado-requerimiento-personal.page.scss'],\n    standalone: true,\n    imports: [ListadoRequerimientoPersonalConComponent]\n})\nexport class ListadoRequerimientoPersonalPage implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<app-listado-requerimiento-personal-con></app-listado-requerimiento-personal-con>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'app-requerimiento-perfil',\n    templateUrl: './requerimiento-perfil.component.html',\n    styleUrls: ['./requerimiento-perfil.component.scss'],\n    standalone: true\n})\nexport class RequerimientoPerfilComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>requerimiento-perfil works!</p>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'app-requerimiento-puesto',\n    templateUrl: './requerimiento-puesto.component.html',\n    styleUrls: ['./requerimiento-puesto.component.scss'],\n    standalone: true\n})\nexport class RequerimientoPuestoComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>requerimiento-puesto works!</p>\n","import { SelectListEvaluacionesService } from './../../../services/select-list-evaluaciones.service';\nimport { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { AuthService, GeneralModel, ParametrosGeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { motivoRequerimientoService } from '../../../services/motivoRequerimiento.service';\nimport { MotivoRequerimientoModel } from '../../../models/MotivoRequerimientoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { PopupUnidadOrganizacionalComponent } from '../popup-unidad-organizacional/popup-unidad-organizacional.component';\nimport { UnidadOrganizacionalService } from '../../../services/unidadorganizacional.service';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { FormularioProcesoModel } from '../../../models/FormularioProcesoModel';\n\n@Component({\n\tselector: 'app-popup-nuevo-cargo',\n\ttemplateUrl: './popup-nuevo-cargo.component.html',\n\tstyleUrls: ['./popup-nuevo-cargo.component.scss'],\n\tstandalone: true,\n\tproviders: [GeneralPipe],\n\timports: [DialogModule, DropdownModule, FormsModule, NgIf, ButtonDirective, TranslateModule]\n})\nexport class PopupNuevoCargoComponent implements OnInit {\n\n\tseleccionado: boolean;\n\ttipoRequerimientoPortal\n\tvalor: string;\n\tvalorAntiguo: string;\n\tlistaMotivoRequerimientoItem\n\trequerimientoPersonalNuevoCargoDTO: RequerimientoPersonalModel = new RequerimientoPersonalModel();\n\tmostrarPopup: boolean;\n\tlistaTipoPuestoN: any[] = [];\n\tlistaSiNo: any[];\n\tlistaUnidadesBase: UnidadOrganizacionalModel[] = [];\n\tlistaEmpresa: any[];\n\tlistaUnidad: any[];\n\tlistaCargo: any[];\n\tlistaClasificacion: any[];\n\tdestino: string;\n\ttipoNuevoCargo: string;\n\tmostrarClasificacion: boolean;\n\tempresa: string;\n\tcargo: string;\n\t@Output() nuevoCargo: EventEmitter<any> = new EventEmitter();\n\tclickGuardar: boolean;\n\n\tconstructor(private authService: AuthService, public generalPipe: GeneralPipe, private motivoRequerimientoService: motivoRequerimientoService, private unidadOrganizacionalSvc: UnidadOrganizacionalService,\n\t\tprivate saraAplicacionService: SaraAplicacionService, public utilsService: UtilsService, private notificationBusService: ToastService,private selectListEvaluacionesService : SelectListEvaluacionesService,private generalSvc: GeneralService,\n\t) { }\n\n\tasync ngOnInit(): Promise<void> {\n\t\tthis.listaTipoPuestoN = await this.selectListEvaluacionesService.getListaTipoPuestoN();\n\t\tthis.listaSiNo = this.generalPipe.LISTA_SINO;\n\t}\n\n\tasync inicializar(destino,unidad, tipoRequerimientoPortal: string) {\n\t\tthis.destino = destino;\n\t\tthis.valor = null;\n\t\tif (this.authService.getTokenKey('isCliente') == 'false') {\n\t\t\tthis.listaCargo = await this.selectListEvaluacionesService.getListaCargoActivoSinSeleccione(parseInt(this.authService.getTokenKey('numeroEmpresa')));\n\t\t\tthis.seleccionado = true\n\t\t\tthis.tipoRequerimientoPortal = tipoRequerimientoPortal;\n\t\t\tif ('CE' == tipoRequerimientoPortal?.toUpperCase()) {\n\t\t\t\tthis.valor = 'N';\n\t\t\t} else if ('CN' == tipoRequerimientoPortal?.toUpperCase()) {\n\t\t\t\tthis.valor = 'S';\n\t\t\t}\n\t\t} else {\n\t\t\tthis.seleccionado = false;\n\t\t\tthis.valor = null;\n\t\t\tthis.tipoRequerimientoPortal = null;\n\t\t}\n\t\tif (unidad != null) {\n\t\t\tthis.requerimientoPersonalNuevoCargoDTO.nombreUnidad = unidad.nombreUnidad;\n\t\t\tthis.requerimientoPersonalNuevoCargoDTO.empresa = unidad.empresa;\n\t\t\tthis.requerimientoPersonalNuevoCargoDTO.unidad = unidad.unidad;\n\t\t\tthis.requerimientoPersonalNuevoCargoDTO.nombreEmpresa = unidad.nombreEmpresa;\n\t\t\tthis.mostrarPopup = true;\n\t\t}\n\t\tawait this.utilsService.resizeWindowIFrame();\n\t\t// this.listaTipoPuestoN = await this.motivoRequerimientoService.traerListaPuesto().toPromise()\n\t}\n\n\n\tpublic async inicializarCliente(tipoRequerimientoPortal: string, destino: string): Promise<void> {\n\t\ttry {\n\t\t\tthis.destino = destino;\n\t\t\tthis.listaUnidadesBase = await this.unidadOrganizacionalSvc.traerUnidadResponsable(await (this.saraAplicacionService.getCedula())).toPromise();\n\t\t\tthis.listaEmpresa = [];\n\t\t\tthis.listaUnidad = [];\n\t\t\tlet mapaEmpresa = new Map<number, number>();\n\t\t\tfor (let unaUnidad of this.listaUnidadesBase) {\n\t\t\t\tif (mapaEmpresa.get(unaUnidad.empresa) == null) {\n\t\t\t\t\tmapaEmpresa.set(unaUnidad.empresa, unaUnidad.empresa);\n\t\t\t\t\tthis.listaEmpresa.push({ key: unaUnidad.empresa, label: unaUnidad.nombreEmpresa });\n\t\t\t\t}\n\t\t\t}\n\t\t\t// UnidadOrganizacionalDTO\n\t\t\tlet unidad = new UnidadOrganizacionalModel();\n\t\t\tif (this.listaUnidadesBase.length == 1) {\n\t\t\t\tunidad = this.listaUnidadesBase[0];\n\t\t\t}\n\t\t\tthis.inicializar(destino,unidad, tipoRequerimientoPortal);\n\t\t\tif (this.listaEmpresa.length == 1) {\n\t\t\t\t// seleccionaEmpresa(new Integer(listaEmpresa.get(0).getValue().toString()));\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t} \n\n\tpublic async cambioMotivoRequerimiento(event:any): Promise<void> {\n\t\t\ttry {\n\t\t\t\tString \n\t\t\t\tlet motivo = this.requerimientoPersonalNuevoCargoDTO.motivoRequerimiento;\n\t\t\t\tthis.mostrarClasificacion = true;\n\t\t\t\t// FormularioProcesoDTO \n\t\t\t\tlet formulario = new FormularioProcesoModel();\n\t\t\t\tformulario.motivoRequiere = (motivo);\n\t\t\t\tformulario.tipoRequiere = (this.isNuevoCargo() ? 'CN' : 'CE');\n\t\t\t\tformulario.origen = (\"FO\");\n\t\t\t\tlet clasificaciones: FormularioProcesoModel[] = await this.generalSvc.queryForList(new GeneralModel('FormularioProcesoDTO',null,false,formulario)).toPromise();\n\t\t\t\tthis.listaClasificacion = [];\n\t\t\t\tfor (let dto of clasificaciones) {\n\t\t\t\t\tif (this.utilsService.isBlank(dto.clasificacion)) {\n\t\t\t\t\t\tthis.listaClasificacion.push({codigo:'.',nombre:'Todos'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.listaClasificacion.push({codigo:dto.clasificacion,nombre:dto.descripcionClasificacion});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\n\tasync cambioCrearCargo() {\n\t\ttry {\n\t\t\tthis.seleccionado = true;\n\t\t\tlet motivos: MotivoRequerimientoModel[] = []\n\t\t\tif ('S' == this.valor) {\n\t\t\t\tmotivos = await this.motivoRequerimientoService.consultarMotivosRequerimientoSegunTipo(new MotivoRequerimientoModel(), 'CN').toPromise();\n\t\t\t} else {\n\t\t\t\tmotivos = await this.motivoRequerimientoService.consultarMotivosRequerimientoSegunTipo(new MotivoRequerimientoModel(), 'CE').toPromise();\n\t\t\t}\n\t\t\tthis.listaMotivoRequerimientoItem = motivos.map((element) => ({codigo: element.motivo, nombre: element.descripcion}));\n\t\t\tthis.valorAntiguo = this.valor;\n\t\t} catch (error) {\n\n\t\t}\n\t}\n\n\tpublic async cambioCargo(event: any): Promise<void> {\n\t\ttry {\n\t\t\tconst newValue = event.target.value;\n\t\t\tif (newValue === null || newValue === undefined || this.cargo === newValue) {\n\t\t\t\tthis.seleccionado = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\tlet valor = newValue;\n\t\t\t\t// List < MotivoRequerimientoDTO > \n\t\t\t\tlet motivos: MotivoRequerimientoModel[] = [];\n\n\t\t\t\tif (Constantes.CONSTANTE_SI.toUpperCase() == (valor.toUpperCase())) {\n\t\t\t\t\t// MotivoRequerimientoDTO \n\t\t\t\t\tlet comodin = new MotivoRequerimientoModel();\n\t\t\t\t\tcomodin.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\t\tmotivos = await this.motivoRequerimientoService.consultarMotivosRequerimientoSegunTipo(comodin, 'CN').toPromise();\n\t\t\t\t} else {\n\t\t\t\t\t// CargoDTO \n\t\t\t\t\tlet cargo = new CargoModel();\n\t\t\t\t\tcargo.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n\t\t\t\t\tcargo.cargo = (valor);\n\t\t\t\t\tcargo = await this.generalSvc.queryForObject(new GeneralModel('CargoDTO',null,false,cargo)).toPromise();\n\n\t\t\t\t\t// MotivoRequerimientoDTO \n\t\t\t\t\tlet filtro = new MotivoRequerimientoModel();\n\t\t\t\t\tfiltro.clasificacion = (cargo.clasificacion);\n\t\t\t\t\tfiltro.empresa = (cargo.empresa);\n\n\t\t\t\t\tthis.requerimientoPersonalNuevoCargoDTO.clasificacionFiltro = (cargo.clasificacion);\n\n\t\t\t\t\tmotivos = await this.motivoRequerimientoService.consultarMotivosRequerimientoSegunTipo(filtro, 'CE').toPromise();\n\t\t\t\t}\n\t\t\t\tthis.listaMotivoRequerimientoItem = motivos.map((motivo) => ({codigo: motivo.motivo,nombre: this.selectListEvaluacionesService.capitalizarTexto(motivo.descripcion)}));\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tcambioEmpresa(event: any): void {\n\t\tconst newValue = event.target.value;\n\t\t\n\t\tif (newValue === null || newValue === undefined || newValue === this.empresa) {\n\t\t  return;\n\t\t}\n\t\t\n\t\tthis.seleccionaEmpresa(parseInt(newValue));\n\t\tthis.empresa = newValue;\n\t}\n\tprivate async seleccionaEmpresa(numeroEmpresa: number): Promise<void> {\n\t\tthis.listaUnidad = [];\n\t\tlet mapaUnidad: Map<String, String>  = new Map<String, String>();\n\t\tfor (let unaUnidad of this.listaUnidadesBase) {\n\t\t\tif ( unaUnidad.empresa !=(numeroEmpresa)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( mapaUnidad.get(unaUnidad.unidad) == null ) {\n\t\t\t\tmapaUnidad.set(unaUnidad.unidad, unaUnidad.unidad);\n\t\t\t\tthis.listaUnidad.push({codigo: unaUnidad.unidad, nombre:unaUnidad.nombreUnidad});\n\t\t\t}\n\t\t}\n\t\tthis.listaCargo = await this.selectListEvaluacionesService.getListaCargoActivoSinSeleccione(numeroEmpresa);\n\t\tthis.listaMotivoRequerimientoItem = [];\n\t\ttry {\n\t\t\t//List<MotivoRequerimientoDTO>\n\t\t\tlet motivos: MotivoRequerimientoModel[] = [];\n\t\t\t// MotivoRequerimientoDTO \n\t\t\tlet comodinMotivo: MotivoRequerimientoModel = new MotivoRequerimientoModel();\n\t\t\tcomodinMotivo.empresa = (numeroEmpresa);\n\t\t\tif (Constantes.CONSTANTE_SI.toUpperCase() ==  (this.valor.toUpperCase())) {\n\t\t\t\tmotivos =  await this.motivoRequerimientoService.consultarMotivosRequerimientoSegunTipo(comodinMotivo, 'CN').toPromise();\n\t\t\t} else {\n\t\t\t\tmotivos = await this.motivoRequerimientoService.consultarMotivosRequerimientoSegunTipo(comodinMotivo, 'CE').toPromise();\n\t\t\t}\n\t\t\tthis.listaMotivoRequerimientoItem = motivos.map((motivo) => ({codigo: motivo.motivo,nombre: this.selectListEvaluacionesService.capitalizarTexto(motivo.descripcion)}));\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\n\n\t}\n\t\n\tprivate validarNuevoCargo(): boolean {\n\t\tlet validar = true;\n\t\tthis.clickGuardar = true;\n\t\tif (this.authService.getTokenKey('isCliente')) {\n\t\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.requerimientoPersonalNuevoCargoDTO.empresa);\n\t\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.requerimientoPersonalNuevoCargoDTO.unidad);\n\t\t}\n\t\tif (!this.isNuevoCargo()) {\n\t\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.requerimientoPersonalNuevoCargoDTO.cargo);\n\t\t} else {\n\t\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.requerimientoPersonalNuevoCargoDTO.clasificacionFiltro);\n\t\t}\n\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.requerimientoPersonalNuevoCargoDTO.tipoPuesto);\n\t\tvalidar = validar && this.utilsService.validarCampoObligatorio(this.requerimientoPersonalNuevoCargoDTO.motivoRequerimiento);\n\t\treturn validar;\n\t}\n\n\tpublic continuar(): String {\n\t\ttry {\n\t\t\tif (!this.validarNuevoCargo()) {\n\t\t\t\tthis.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tthis.clickGuardar = false;\n\t\t\tthis.requerimientoPersonalNuevoCargoDTO.tipoPuestoAutomatico = (Constantes.CONSTANTE_NO);\n\t\t\tif (Constantes.CONSTANTE_SI.toUpperCase() == (this.valor.toUpperCase())) {\n\t\t\t\tthis.requerimientoPersonalNuevoCargoDTO.cargo = (Constantes.PUNTO);\n\t\t\t\tthis.tipoNuevoCargo = 'CN'; //NUEVO CARGO\n\t\t\t} else {\n\t\t\t\tthis.tipoNuevoCargo = 'CE'; //CARGO EXISTENTE\n\t\t\t}\n\t\t\tthis.mostrarPopup=false;\n\t\t\tthis.nuevoCargo.emit({tipoRequerimiento: this.tipoNuevoCargo, unidad:this.requerimientoPersonalNuevoCargoDTO.unidad,\n\t\t\t\tempresa: this.requerimientoPersonalNuevoCargoDTO.empresa, cargo: this.requerimientoPersonalNuevoCargoDTO.cargo,\n\t\t\t\ttipoPuesto: this.requerimientoPersonalNuevoCargoDTO.tipoPuesto,\n\t\t\t\tmotivo: this.requerimientoPersonalNuevoCargoDTO.motivoRequerimiento,\n\t\t\t\ttipoRequerimientoPortal: this.tipoRequerimientoPortal,\n\t\t\t\tclasificacion: this.requerimientoPersonalNuevoCargoDTO.clasificacionFiltro,\n\t\t\t\tdestino: this.destino})\n\t\t\treturn null;\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t\treturn null;\n\t}\n\n\n\tisCliente():boolean{\n\t\tlet boleano =  this.authService.getTokenKey('isCliente') === 'true';\n\t\treturn boleano;\n\t}\n\tpublic isNuevoCargo(): boolean {\n\t\treturn this.valor != null && Constantes.CONSTANTE_SI.toUpperCase() == (this.valor?.toUpperCase());\n\t}\n\n\tpublic isMostrarMotivoVacante(): boolean {\n\t\treturn Constantes.CONSTANTE_SI.toUpperCase() == (this.valor?.toUpperCase())\n\t\t\t|| (Constantes.CONSTANTE_NO.toUpperCase() == (this.valor?.toUpperCase()) && this.requerimientoPersonalNuevoCargoDTO?.cargo != null);\n\t}\n\n\tocultarPopup(){\n\t\tthis.requerimientoPersonalNuevoCargoDTO = new RequerimientoPersonalModel();\n\t}\n\n}\n","@if(destino == 'plantaPer'){\n<p-dialog id='popupunidadesvigentesplanta' header=\"{{requerimientoPersonalNuevoCargoDTO.nombreUnidad}}\" (onHide)=\"ocultarPopup()\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'960px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\"\n    [modal]=\"true\">\n    <div class=\"Inputgroup\">\n\n        <div class=\"p-fluid grid field col-12 md:col-12 lg:col-12\">\n\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"tipocambioemp\" [options]=\"this.listaSiNo\" optionValue=\"codigo\" [(ngModel)]=\"valor\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\"\n                        (onChange)=\"cambioCrearCargo()\" optionLabel=\"nombre\" [showClear]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">Desea crear un nuevo cargo?</label>\n                </span>\n            </div>\n\n            @if(seleccionado){\n            @if(isCliente()){\n            <!-- EMPRESA -->\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"empresa\" [options]=\"this.listaEmpresa\" optionValue=\"codigo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.empresa\" (onChange)=\"cambioEmpresa($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.empresa) && clickGuardar && isCliente()\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.empresa) && clickGuardar && isCliente()\"\n                        optionLabel=\"nombre\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"empresa\">{{'empresa'| translate}}</label>\n                </span>\n            </div>\n            <!-- UNIDAD -->\n            }\n            @if(isCliente()){\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"unidad\" [options]=\"this.listaUnidad\" optionValue=\"codigo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.unidad\" optionLabel=\"nombre\" [showClear]=\"true\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.unidad) && clickGuardar && isCliente()\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.unidad) && clickGuardar && isCliente()\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"unidad\">{{'unidad'| translate}}</label>\n                </span>\n            </div>\n            }\n            <!-- CARGO -->\n            @if(!isNuevoCargo() && valor != undefined){\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\"> \n                    <p-dropdown id=\"cargo\" [options]=\"this.listaCargo\" optionValue=\"codigo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.cargo\" (onChange)=\"cambioCargo($event)\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.cargo) && clickGuardar && !isNuevoCargo()\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.cargo) && clickGuardar && !isNuevoCargo()\"\n                        optionLabel=\"nombre\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"cargo\">{{'cargo'| translate}}</label>\n                </span>\n            </div>\n            }\n            @if(valor){\n            <!-- CLASE EMPLEADO -->\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"clase\" [options]=\"this.listaTipoPuestoN\" optionValue=\"value\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.tipoPuesto\" optionLabel=\"label\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.tipoPuesto) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.tipoPuesto) && clickGuardar\"\n                        [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"clase\">{{'clase' | translate}} {{'empleado' | translate}} *</label>\n                </span>\n            </div>\n            }\n\n\n            <!-- MOTIVO VACANTE -->\n            @if(isMostrarMotivoVacante()){\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"tipocambioemp\" [options]=\"this.listaMotivoRequerimientoItem\" optionValue=\"codigo\"\n                        [disabled]=\"requerimientoPersonalNuevoCargoDTO.tipoPuestoAutomatico != null\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.motivoRequerimiento\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.motivoRequerimiento) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.motivoRequerimiento) && clickGuardar\"\n                        (onChange)=\"cambioMotivoRequerimiento($event)\" optionLabel=\"nombre\" [showClear]=\"true\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'motivo' | translate}} {{'vacante' | translate}} *</label>\n                </span>\n            </div>\n            }\n\n            <!-- CLASIFICACION -->\n            @if(isNuevoCargo() && cambioMotivoRequerimiento){\n            <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"seleccionado\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"tipocambioemp\" [options]=\"this.listaClasificacion\" optionValue=\"codigo\"\n                        [disabled]=\"requerimientoPersonalNuevoCargoDTO.tipoPuestoAutomatico != null\" [virtualScroll]=\"true\" [virtualScrollItemSize]=\"40\"\n                        [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.motivoRequerimiento) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(requerimientoPersonalNuevoCargoDTO.motivoRequerimiento) && clickGuardar\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.motivoRequerimiento\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        optionLabel=\"nombre\" [showClear]=\"true\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'clasificacion' | translate}} *</label>\n                </span>\n            </div>\n            }\n            }\n        </div>\n    </div>\n    <div class=\"flex justify-content-end align-items-center mb-3\" *ngIf=\"seleccionado\">\n        <button class=\" p-button-outlined ml-2\"  pButton label=\"{{'continuar'|translate}}\" (click)=\"continuar()\"></button>\n    </div>\n</p-dialog>\n}@if(destino == 'uiReqPer'){\n\n    <div class=\"Inputgroup\">\n\n        <div class=\"p-fluid grid field col-12 md:col-12 lg:col-12\">\n\n            <div class=\"field col-12 md:col-12 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"tipocambioemp\" [options]=\"this.listaSiNo\" optionValue=\"codigo\" [(ngModel)]=\"valor\"\n                        (onChange)=\"cambioCrearCargo()\" optionLabel=\"nombre\" [showClear]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">Desea crear un nuevo cargo?</label>\n                </span>\n            </div>\n\n            @if(seleccionado){\n            @if(isCliente()){\n            <!-- EMPRESA -->\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"empresa\" [options]=\"this.listaEmpresa\" optionValue=\"codigo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.empresa\" (onChange)=\"cambioEmpresa($event)\"\n                        optionLabel=\"nombre\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"empresa\">{{'empresa'| translate}}</label>\n                </span>\n            </div>\n            <!-- UNIDAD -->\n            }\n            @if(isCliente()){\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"unidad\" [options]=\"this.listaUnidad\" optionValue=\"codigo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.unidad\" optionLabel=\"nombre\" [showClear]=\"true\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"unidad\">{{'unidad'| translate}}</label>\n                </span>\n            </div>\n            }\n            <!-- CARGO -->\n            @if(!isNuevoCargo() && valor != undefined){\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\"> \n                    <p-dropdown id=\"cargo\" [options]=\"this.listaCargo\" optionValue=\"codigo\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.cargo\" (onChange)=\"cambioCargo($event)\"\n                        optionLabel=\"nombre\" [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"cargo\">{{'cargo'| translate}}</label>\n                </span>\n            </div>\n            }\n            @if(valor){\n            <!-- CLASE EMPLEADO -->\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"clase\" [options]=\"this.listaTipoPuestoN\" optionValue=\"value\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.tipoPuesto\" optionLabel=\"label\"\n                        [showClear]=\"true\" [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"clase\">{{'clase' | translate}} {{'empleado' | translate}}</label>\n                </span>\n            </div>\n            }\n\n\n            <!-- MOTIVO VACANTE -->\n            @if(isMostrarMotivoVacante()){\n            <div class=\"field col-4 md:col-4 lg:col-4\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"tipocambioemp\" [options]=\"this.listaMotivoRequerimientoItem\" optionValue=\"codigo\"\n                        [disabled]=\"requerimientoPersonalNuevoCargoDTO.tipoPuestoAutomatico != null\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.motivoRequerimiento\"\n                        (onChange)=\"cambioMotivoRequerimiento($event)\" optionLabel=\"nombre\" [showClear]=\"true\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'motivo' | translate}} {{'vacante' | translate}}</label>\n                </span>\n            </div>\n            }\n\n            <!-- CLASIFICACION -->\n            @if(isNuevoCargo() && cambioMotivoRequerimiento){\n            <div class=\"field col-4 md:col-4 lg:col-4\" *ngIf=\"seleccionado\">\n                <span class=\"p-float-label\">\n                    <p-dropdown id=\"tipocambioemp\" [options]=\"this.listaClasificacion\" optionValue=\"codigo\"\n                        [disabled]=\"requerimientoPersonalNuevoCargoDTO.tipoPuestoAutomatico != null\"\n                        [(ngModel)]=\"requerimientoPersonalNuevoCargoDTO.clasificacionFiltro\" appendTo=\"body\" [autoZIndex]=\"false\"\n                        optionLabel=\"nombre\" [showClear]=\"true\"\n                        [autoDisplayFirst]=\"false\">\n                    </p-dropdown>\n                    <label for=\"descripcion\">{{'clasificacion' | translate}}</label>\n                </span>\n            </div>\n            }\n            }\n        </div>\n    </div>\n    <div class=\"flex justify-content-end align-items-center mb-3\" *ngIf=\"seleccionado\">\n        <button class=\" p-button-raides ml-2\"  pButton label=\"{{'continuar' | translate}}\" (click)=\"continuar()\"></button>\n    </div>\n\n}","import { EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { Component, ElementRef, forwardRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR,FormsModule ,ReactiveFormsModule} from '@angular/forms';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { AuthService,FiltroGeneralComponent,GeneralModel } from 'general-library-union';\nimport { FormularioModel } from '../../../../app/modules/hojavida/models/FormularioModel';\nimport { TranslateModule ,TranslateService} from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n@Component({\n    selector: 'app-input-helper-tipo',\n    templateUrl: './input-helper-tipo.component.html',\n    styleUrls: ['./input-helper-tipo.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => InputHelperTipoComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n        FormsModule,\n        ReactiveFormsModule\n    ],\n})\nexport class InputHelperTipoComponent implements ControlValueAccessor,  OnInit{\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() cantidadConsulta: string = '';\n\n  @Input() consulta: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  listaTipo: any[];\n\n  @Input() showDialog: boolean = false;\n\n  onChange: Function = () => {};\n  onCambio: Function = () => { }\n  descripcionFiltro;\n  onTouched: Function = () => {};\n  filters = [];\n  paginator={rows:10, totalRecords:0};\n  @Input() filtroForm: boolean = false;\n\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    public translateService: TranslateService) {}\n  \n  ngOnInit(): void {\n    this.showDialog = false;\n    let event = {};\n    this.loadData(event);\n    this.filters = [\n      {\n        field: 'nombre',\n        header:  this.translateService.instant('nombre'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n  dataSelected= new FormularioModel();\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {}\n\n  openDataTable() {\n    this.showDialog = true;\n  }\n\n  onRowSelect() {\n    this.showDialog = false;\n    this.value = this.dataSelected.llaveTabla;\n    this.label = `${this.dataSelected.nombre}`;\n    this.onChange(this.value);\n    this.onSelected.emit(this.dataSelected);\n  }\n\n  deleteSelection(){\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onCambio(this.value);\n    this.onSelected.emit({});\n  }\n\n  async loadData(event) {\n    try {\n      let objeto = {\n        paginacionRegistroInicial: event.first,\n        paginacionRegistroFinal: event.rows,\n        nombre: event.filters?.nombre?.value\n      }\n\n      let general = new GeneralModel('FormularioDTO',this.consulta ? this.consulta:'Formulario.consultarFormulario' , false, objeto);\n\n      this.generalService.queryForList(general).subscribe(data => {\n        this.listaTipo = data;\n\n        let general = new GeneralModel('FormularioDTO', this.cantidadConsulta ? this.cantidadConsulta : 'Formulario.cantidadRegistrosFormulario', false, objeto);\n        this.generalService.cantidadRegistros(general).subscribe((data) => {\n          this.paginator.totalRecords = data;\n        });\n      });\n    } catch (err) {\n      console.error('Error en loadData', err);\n    }\n  }\n  \n}\n","<div #field class=\"p-inputgroup\">\n  <span class=\"p-float-label\">\n    <input pInputText #inputText [readonly]=\"true\" [value]=\"label\" />\n    <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only unico\">\n      <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n    </button>\n    <label>{{'Tipo' | translate}}</label>\n    <button  class=\"p-button-icon-only clear unico\" pButton pRipple [disabled]=\"readonly\"\n      (click)=\"deleteSelection()\">\n      <span class=\"glyphicons glyphicons-remove\"></span>\n    </button>\n  </span>\n  \n</div>\n\n\n<p-dialog header=\"{{'Tipo' | translate}}\" [(visible)]=\"showDialog\" appendTo=\"body\" [modal]=\"true\"  [draggable]=\"true\"\n  [breakpoints]=\"{ '2000px': '40vw','1500px': '45vw','960px': '75vw','800px': '80vw', '700px': '100vw' }\"\n  [style]=\"{ width: '50vw' }\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n      <!-- Filtro-->\n      <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n          <ng-template let-form>\n              <ng-container [formGroup]=\"form\">\n                  <div class=\"field\">\n                      <span class=\"p-float-label\">\n                          <input pInputText autofocus type=\"text\" id=\"nombre\" formControlName=\"nombre\"\n                              autocomplete=\"off\" />\n                          <label for=\"nombre\">{{'nombre' | translate}}</label>\n                      </span>\n                  </div>\n              </ng-container>\n          </ng-template>\n      </app-filtro-general>\n  </div>\n  <p-table\n    #tablaGeneral\n    dataKey=\"llaveTabla\"\n    [value]=\"listaTipo\"\n    selectionMode=\"single\"\n    responsiveLayout=\"scroll\"\n    [scrollable]=\"true\"\n    [lazy]=\"true\"\n    [rows]=\"paginator.rows\"\n    [paginator]=\"paginator.totalRecords > paginator.rows\"\n    [totalRecords]=\"paginator.totalRecords\"\n    [showCurrentPageReport]=\"true\"\n    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    styleClass=\"p-datatable-striped input-helper-datatable\"\n    [(selection)]=\"dataSelected\"\n    (onRowSelect)=\"onRowSelect()\"\n    (onLazyLoad)=\"loadData($event)\">\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{ \"nombre\" | translate }}</th>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-fomulario>\n      <tr [pSelectableRow]=\"fomulario\">\n        <td>{{ fomulario.nombre }}</td>\n      </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n</p-dialog>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, MenuService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { CapacitacionEvaluacionModel } from '../../../../talento/models/CapacitacionEvaluacionModel';\nimport { CompensacionPipe } from '../../../../compensacion/pipes/compensacion.pipe';\nimport { TipoEventoModel } from '../../../../capacitacion/models/TipoEventoModel';\nimport { InputHelperTipoComponent } from '../../../../../shared/componentes/input-helper-tipo/input-helper-tipo.component';\nimport { InputHelperNecesidadComponent } from '../../../../../shared/componentes/input-helper-necesidad/input-helper-necesidad.component';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DetalleNecesidadCapacitacionComponent } from '../../necesidadcapacitacion/detallenecesidadcapacitacion/detalle-necesidad-capacitacion.component';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputHelperTipoComponent as InputHelperTipoComponent_1 } from '../../../../../shared/componentes/input-helper-tipo/input-helper-tipo.component';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\n\n@Component({\n  selector: 'app-listado-necesidad-capacitacion',\n  templateUrl: './listado-necesidad-capacitacion.component.html',\n  styleUrls: ['./listado-necesidad-capacitacion.component.scss'],\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, InputHelperTipoComponent_1, InputHelperHojaVidaComponent,\n    InputTextModule, CalendarModule, DropdownModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate,\n    NgIf, InputHelperNecesidadComponent, DatePipe, TranslateModule, CompensacionPipe, FiltroGeneralComponent,\n    DetalleNecesidadCapacitacionComponent, InputHelperNecesidadComponent],\n  providers: [\n    DatePipe  // Añade DatePipe aquí\n  ],\n})\nexport class ListadoNecesidadCapacitacionComponent implements OnInit {\n\n  @ViewChild('formulario') formulario: InputHelperTipoComponent;\n  @ViewChild('detalleNecesidadCompt') detalleNecesidadCapacitacionComponent: DetalleNecesidadCapacitacionComponent;\n  @ViewChild('formulario') responsble: InputHelperHojaVidaComponent;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @ViewChild(InputHelperNecesidadComponent) inputHelperNecesidadComponent: InputHelperNecesidadComponent;\n\n  public vistaVisualizar: string;\n  public listaCapacitacionEvaluacion: CapacitacionEvaluacionModel[] = [];\n  public capacitacionEvaluacionSeleccionado: CapacitacionEvaluacionModel;\n  totalRecords: number;\n  filters = [];\n  filtrolistah: CapacitacionEvaluacionModel;\n  public listaTipoEvento: TipoEventoModel[] = [];\n  public listaTipoE = [];\n  filtro: CapacitacionEvaluacionModel;\n  visualizar: string;\n  mostrarNecesidad: boolean = false;\n  seleccionado: any;\n  tipoSeleccionado: any = null;\n  filtroRegresar: FiltroGeneralComponent;\n  listaEstado: { codigo: string; nombre: string; }[];\n  origen: string;\n  public paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(private menuService: MenuService,\n    private generalService: GeneralService,\n    private utilsService: UtilsService,\n    public translateService: TranslateService,\n    private compensacionpipe: CompensacionPipe,\n    private authService: AuthService,\n    private saraAplicacionServices: SaraAplicacionService,\n    private generalPipe: GeneralPipe\n  ) { }\n\n\n  async ngOnInit(): Promise<void> {\n    this.visualizar = '';\n    this.filtrolistah = new CapacitacionEvaluacionModel();\n    this.filtro = new CapacitacionEvaluacionModel();\n    this.vistaVisualizar = 'general';\n    this.listaEstado = this.compensacionpipe.LISTA_ESTADOS;\n    this.menuService.setBreadcrumb([{ label: 'Listado Necesidad Capacitación' }]);\n    this.ListaTipoEvento();\n    this.cargarListas();\n    this.cargarListadoCursos({ first: 0, rows: this.paginator.rows, filters: {} });\n\n    this.filters = [{\n      field: 'formulario',\n      header: this.translateService.instant('Tipo Capacitacion'),\n      values: (key) => this.formulario.label,\n      matchMode: 'equal',\n    },\n    {\n      field: 'nombreCompleto',\n      header: this.translateService.instant('Nombre Funcionario'),\n      matchMode: 'contains'\n    },\n    {\n      field: 'dirigido',\n      header: this.translateService.instant('Dirigido a'),\n      matchMode: 'contains',\n    },\n    {\n      field: 'descripcion',\n      header: this.translateService.instant('descripcion'),\n      matchMode: 'contains',\n    },\n    {\n      field: 'fechaSolicitud',\n      header: this.translateService.instant('Fecha Solicitud'),\n      matchMode: 'contains',\n      formatDate: true,\n    },\n    {\n      field: 'tipoEvento',\n      header: this.translateService.instant('Categoria'),\n      values: (key) => this.listaTipoEvento.filter(data => data.llave == key)[0].descripcion,\n      matchMode: 'contains',\n    },\n    {\n      field: 'estado',\n      header: this.translateService.instant('estado'),\n      values: (value) => this.compensacionpipe.transform(value, 'listaEstados'),\n      matchMode: 'equals',\n    },\n    ];\n  }\n\n  cargarListaFiltros(event) {\n\n    this.cargarListadoCursos(event);\n  }\n\n  async cargarListadoCursos(event) {\n\n    this.filtro.padreHijo = this.generalPipe.PADRE;\n    this.filtro.organizacion = (await this.saraAplicacionServices.getEmpresa()).organizacion;\n\n    this.filtro.estado = event['estado'] ? event['estado']['value'] : null;\n    this.filtro.fechaSolicitud = event['fechaSolicitud'] ? new Date(event['fechaSolicitud']['value']) : null;\n    this.filtro.categoria = event['categoria'] ? event['categoria']['value'] : null;\n    this.filtro.formulario = event['formulario'] ? event['formulario']['value'] : null;\n    this.filtro.descripcion = event['descripcion'] ? + '%' + event['descripcion']['value'] + '%' : null;\n    this.filtro.dirigido = event['dirigido'] ? + '%' + event['dirigido']['value'] + '%': null;\n    this.filtro.tipoEvento = event['tipoEvento'] ? event['tipoEvento']['value'] : null;\n\n    if (this.isCliente()) {\n      this.filtro.cedulaResponde = await this.saraAplicacionServices.getCedula();\n    } else {\n      this.filtro.login = this.authService.getTokenKey('usuario');\n      this.filtro.rol = this.authService.getTokenKey('aliasRol');\n    }\n    let filtro: GeneralModel = new GeneralModel('CapacitacionEvaluacionDTO', null, null, this.filtro);\n    this.generalService.queryForList(filtro).subscribe(async (data) => {\n      this.listaCapacitacionEvaluacion = data.filter(item => item.descripcionFormulario != null);\n      this.totalRecords = this.listaCapacitacionEvaluacion.length;\n      await this.utilsService.sleep(500);\n      this.utilsService.resizeWindowIFrame();\n    });\n  }\n\n  ListaTipoEvento() {\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    this.generalService.queryForList({\n      nombreConsulta: null,\n      nombreDTO: 'TipoEventoDTO',\n      seguridad: false,\n      objeto: {\n\n      },\n    }).subscribe((data: Array<any>) => { // Ensure 'data' is of type Array<any>\n      this.listaTipoEvento = data;\n      this.listaTipoEvento.forEach((item: any) => { // Ensure 'item' is of type any\n        mapaRetorna.set(item.llave, item.descripcion); // Ensure you're working with primitive types\n      });\n      this.listaTipoE = Array.from(mapaRetorna, ([key, label]) => ({ key, label }));\n    });\n  }\n\n  async verAction(event) {\n\n    this.visualizar = 'detalle';\n\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(50);\n    this.seleccionado = null;\n    this.detalleNecesidadCapacitacionComponent.nuevoDatoProgramacion('C', event.data, false);\n\n  }\n\n  cargarListas() {\n    this.generalService.queryForList(new GeneralModel('TipoEventoDTO', null, false, {})).subscribe(data => {\n      this.listaTipoEvento = data;\n    })\n  }\n\n  nuevaProgramacion() {\n    this.mostrarNecesidad = true;\n  }\n\n  async onSelectNencesidadNuevo(event) {\n    this.mostrarNecesidad = false;\n    this.visualizar = 'detalle';\n    const sleep = (m) => new Promise((r) => setTimeout(r, m));\n    await sleep(20);\n    this.seleccionado = null;\n    this.detalleNecesidadCapacitacionComponent.nuevoDatoProgramacion(this.origen, event, true);\n  }\n\n\n  public setVistaVisualizar(evento) {\n    this.vistaVisualizar = evento;\n  }\n\n  regresarNecesidad() {\n    this.mostrarNecesidad = false;\n  }\n\n  async regresarTarea(event) {\n\n    this.visualizar = '';\n    this.tipoSeleccionado = null;\n    await this.utilsService.sleep(100);\n    this.cargarMigadePan();\n    let filtroTabla = {}\n    this.cargarListadoCursos(filtroTabla);\n\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cargarMigadePan() {\n    this.menuService.setBreadcrumb([{ label: 'Listado Necesidad Capacitación' }]);\n  }\n\n  isCliente(): boolean {\n    if (this.authService.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n  filtrarEnter(event) {\n    if (event.key === 'Enter') {\n      this.filtroItem.aplicarFiltros();\n    }\n  }\n}\n","<div *ngIf=\"visualizar == ''\">\n  <h1>{{'listado' | translate}} {{'necesidad' | translate}} {{'capacitacion' | translate}} </h1>\n  <div class=\"flex justify-content-between align-items-center mt-2 mb-3\">\n    <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n      <ng-template let-form>\n        <ng-container [formGroup]=\"form\">\n          <div class=\"flex\">\n            <div class=\"field mr-2 w-full\">\n              <app-input-helper-tipo #formulario formControlName=\"formulario\">\n              </app-input-helper-tipo>\n            </div>\n            <div class=\"field w-full\">\n              <app-input-helper-hoja-vida [header]=\"this.translateService.instant('Nombre Funcionario')\"\n                formControlName=\"nombreCompleto\">\n              </app-input-helper-hoja-vida>\n            </div>\n          </div>\n          <div class=\"flex\">\n            <div class=\"field mr-2 w-full\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" id=\"dirigido\" formControlName=\"dirigido\" (keydown)=\"filtrarEnter($event)\"\n                  (keydown.enter)=\"handleEnterKey($event)\" />\n                <label for=\"dirigido\">{{'Dirigido a' | translate}}</label>\n              </span>\n            </div>\n            <div class=\"field w-full\">\n              <span class=\"p-float-label\">\n                <input pInputText autofocus type=\"text\" id=\"descripcion\" formControlName=\"descripcion\" (keydown)=\"filtrarEnter($event)\"\n                (keydown.enter)=\"handleEnterKey($event)\"/>\n                <label for=\"descripcion\">{{'descripcion' | translate}}</label>\n              </span>\n            </div>\n          </div>\n\n          <div class=\"flex\">\n            <div class=\"field mr-2 w-full\">\n              <span class=\"p-float-label\">\n                <p-calendar [showIcon]=\"true\" dateFormat=\"dd/mm/yy\" formControlName=\"fechaSolicitud\">\n                </p-calendar>\n                <label for=\"fechasolicitud\">{{'Fecha Solicitud' | translate}}</label>\n              </span>\n            </div>\n            <div class=\"field w-full\">\n              <span class=\"p-float-label\">\n                <p-dropdown inputId=\"categoria\" [options]=\"listaTipoEvento\" [autoDisplayFirst]=\"false\" optionLabel=\"descripcion\"\n                     optionValue=\"llave\" formControlName=\"tipoEvento\"></p-dropdown>\n                <label htmlFor=\"categoria\">{{'categoria' | translate}} </label>\n              </span>\n            </div>\n          </div>\n\n          <div class=\"field\">\n            <span class=\"p-float-label\">\n              <p-dropdown inputId=\"estado\" [options]=\"listaEstado\" [autoDisplayFirst]=\"false\" formControlName=\"estado\"\n                [showClear]=\"true\" optionLabel=\"nombre\" optionValue=\"codigo\">\n              </p-dropdown>\n              <label for=\"estado\">{{'estado' | translate}}</label>\n            </span>\n          </div>\n          <!-- MENU DE ACTIVACION DE CAMPOS -->\n          <!-- <div class=\"mt-3 align-items-center justify-content-center\">\n          <div class=\"mb-2 w-full flex\">\n            <button pButton pRipple class=\"m-2 p-button p-button-rounded p-button-secondary\"\n              icon=\"glyphicons glyphicons-justify\" (click)=\"cargarPopupFiltro()\">\n            </button>\n          </div>\n        </div> -->\n        </ng-container>\n      </ng-template>\n    </app-filtro-general>\n    <button pButton pRipple class=\"m-2 p-button p-button-secondary\" icon=\"pi pi-plus\"\n      label=\"{{'link_nuevo' | translate}}\" (click)=\"nuevaProgramacion()\">\n    </button>\n  </div>\n  <p-table #tablaGeneral class=\"mt-4\" [value]=\"listaCapacitacionEvaluacion\" [scrollable]=\"true\"\n    responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\" [paginator]=\"totalRecords > 10\"\n    [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 50]\" dataKey=\"llaveTabla\" (onRowSelect)=\"verAction($event)\" >\n    <ng-template pTemplate=\"header\">\n      <tr>\n        <th>{{ 'tipo' | translate }}</th>\n        <th>{{ 'Fecha Inicial' | translate }}</th>\n        <th>{{ 'descripcion' | translate }}</th>\n        <th>{{ 'fuente' | translate }}</th>\n        <th>{{ 'destino' | translate }}</th>\n        <th>{{ 'estado' | translate }}</th>\n      </tr>\n    </ng-template>\n\n    <ng-template pTemplate=\"body\" let-cursos>\n      <tr [pSelectableRow]=\"cursos\">\n        <td>{{ cursos.descripcionFormulario }}</td>\n        <td>{{ cursos.fechaSolicitud | date : ('formatofecha' | translate) }}</td>\n          @if(!cursos.cursoNombre){\n          <td>{{cursos.descripcion}} </td>\n          }\n          @if(cursos.cursoNombre){\n          <td>{{cursos.cursoNombre}} </td>\n          }\n        <td>{{ cursos.fuenteNecesidadDescripcion }}</td>\n        <td>\n          <div class=\"mb-2\"><label class=\"font-bold\">Nombre: </label>{{ cursos.empleadoNombre }}</div>\n          <div class=\"mb-2\"><label class=\"font-bold\">Empresa: </label>{{ cursos.empresaNombre }}</div>\n          <div class=\"mb-2\"> <label class=\"font-bold\">Unidad: </label>{{ cursos.unidadNombre }}</div>\n        </td>\n        <td>{{ cursos.estado | compensacionPipe: 'listaEstados' }}</td>\n      </tr>\n    </ng-template>\n\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>  </p-table>\n\n</div>\n<div *ngIf=\"mostrarNecesidad\">\n  <app-input-helper-necesidad (onSelected)=\"onSelectNencesidadNuevo($event)\" (regresar)=\"regresarNecesidad()\"\n    [showDialog]=\"mostrarNecesidad\"></app-input-helper-necesidad>\n</div>\n\n<div *ngIf=\"visualizar == 'detalle'\">\n  <app-detalle-necesidad-capacitacion  #detalleNecesidadCompt (regresar)=\"regresarTarea($event)\" \n  ></app-detalle-necesidad-capacitacion>\n</div>\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { GeneralService } from '../../../shared/servicios/general.service';\nimport { ErrorIntecertorService, GeneralModel } from 'general-library-union';\nimport { PublicacionModel } from '../../../modules/sarageneral/models/PublicacionModel';\nimport { throwError } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PublicacionService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private generalService: GeneralService,) { }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  async consultarUltimaPublicacionTabla(llaveBase: string, tabla: string, llaveDestino: string, tablaDestino: string, numeroDestino: number): Promise<any[]> {\n\n    let publicacionDTO = new PublicacionModel();\n    publicacionDTO.tabla = tabla;\n    publicacionDTO.llaveBase = llaveBase;\n    publicacionDTO.llaveDestino = llaveDestino;\n    publicacionDTO.numeroDestino = numeroDestino;\n    publicacionDTO.tablaDestino = tablaDestino;\n\n    let filtroAsistente = new GeneralModel('PublicacionDTO', \"Publicacion.consultarUltimaPublicacionTabla\", false, publicacionDTO);\n    return await this.generalService.queryForList(filtroAsistente).toPromise();\n\n  }\n}\n","import { UnionModel } from 'general-library-union'\nimport { ActoCambioEmpleadoModel } from '../../actos/models/ActoCambioEmpleadoModel';\n\nexport class PersonaModel extends UnionModel {\n\n\thojaVida: number;\n\tempresa: number;\n\tcontrato: number;\n\ttipo: string;\n\ttipoHorario: string;\n\ttipoSitio: string;\n\tsitio: string;\n\ttipoLiquidacion: string;\n\tpin: string;\n\testado: string;\n\tgrupo: string;\n\ttipoVinculacion: string;\n\t\n\t//Transient\n\tnombresPersona: string;\n\tnombreEmpresa: string;\n\tnombres: string;\n\tpais: string;\n\tlogin: string;\n\tcodigoTurno: string;\n\tcodigoSitio: string;\n\tcodigoLiquidacion: string;\n\tcodigoGrupo: string;\n\tcodigoEstacion: string;\n\ttipoFiltro: string;\n\tcedulaCredencial: number;\n\tfechaTermina: Date;\n\tfechaDesde: Date;\n\tfechaIngreso: Date;\n\tfechaRetiro: Date;\n\tnumeroHuellas: number;\n\tplantilla: any[]; \n\tnumeroDedo: number;\n\tnombreFoto: string;\n\tdocumento: string;\n\tmanejaReloj: string;\n\ttipoLabor: string;\n\testacionTrabajo: string;\n\tnombreEstacionTrabajo: string;\n\tnombreTipoLabor:string\n\tnombreSitio: string;\n\tlistaTraslado: ActoCambioEmpleadoModel[]=[]\n\tbuscador: string;\n\tcargo: string;\n\tnombreCargo: string;\n\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class TipoLiquidacionTiempoModel extends UnionModel {\n\n\tdescripcion: string;\n\tactivo: string;\n\tcodigo: string;\n\tempresa: number;\n\torganizacion: number;\n\tprimerDia: string;\n\tmarcacion: number;\n\thoraEntrada: number;\n\tsalidaEntrada: number;\n\tmanejaReloj: string;\n\tmodo: string;\n\tnombreModo: string;\n\tausencia: string;\n\tautorizacion: string;\n\tprocesoLiquidacion: string;\n\tfuenteReceso: string;\n\tmarcaPermiso: string;\n\tmarcaLibre: string;\n\thorasEntreTurnos: number;\n\ttipoDistribucion: string;\n\t\n}","import { UnionModel } from 'general-library-union'\nimport { DiaHorarioModel } from './DiaHorarioModel';\n\nexport class JornadaModel extends UnionModel {\n\n\tpersona: string;\n\ttipo: string;\n\ttipoHorario: string;\n\tdesde: Date;\n\thasta: Date;\n\thoraInicial: Date;\n\thoraFinal: Date;\n\tsitio: string;\n\tserie: string;\n\tdepende: string;\n\tentradaPrograma: Date;\n\tsalidaPrograma: Date;\n\tdiasSemana: string;\n\tfestivo: string;\n\tcircuito: string;\n\tdiasLibre: number;\n\tdiasLaboral: number;\n\ttipoHorario2: string;\n\ttipoHorario3: string;\n\ttipoHorario4: string;\n\tlaborados: number;\n\tsitio2: string;\n\tsitio3: string;\n\tsitio4: string;\n\tentradaReloj: Date;\n\tsalidaReloj: Date;\n\tjornada: string;\n\tjornadaAjuste: string;\n\t\n\tmarcacionSemana: string;\n\thorasAntes: number;\n\thorasDespues: number;\n\thorasProgramadas: number;\n\thorasLibre: number;\n\tentradaLiquida: Date;\n\tsalidaLiquida: Date;\n\testado: string;\n\tautorizado: string;\n\testadoSolicitud: string;\n\tjornadaOrigen: string;\n\tjornadaCompensa: string;\n\tnombreSitio: string;\n\ttotalHoras: number;\n\tpaisEmpresa: string;\n\tnombresPersona: string;\n\thojaVidaPersona: number;\n\tdocumentoPersona:string\n\tlistaHorarios: DiaHorarioModel[];\n\tnombreHorario: string;\n\thorarioCadena: string;\n\tentradaRelojDesc: Date;\n\tentradaLiquidaDesc: Date;\n\tlogin: string;\n\tcontrato: number;\n\tcedula: number;\n\tempresa: number;\n\ttipoAusencia: string;\n\tnombrePersonaOrigen: string;\n\ttipoHorarioTipo: string;\n\trangoInicial: Date;\n\trangoFinal: Date;\n\tregistroProceso: string;\n\treglaProgramacion: string;\n\thijasProgramadas: number;\n\thijasInconsistencia: number;\n\tnombreGrupo: string;\n\tjornadaAusencia: string;\n\tfechaLiquida: Date;\n\tsinJornadaAusencia: string;\n\tllaveAntes: string;\n\tmensaje: string;\n\testadoSeleccion: string;\n\tcolor: string;\n\tcolorDestino: string;\n\ttipoJornadaNombre: string;\n\ttipoJornadaAjusteNombre:string\n\ttipoJornadaTipo: string;\n\ttipoLabor: string;\n\testacionTrabajo: string;\n\testacionTrabajoNombre: string\n\teventoJornada: string;\n}\n","import { UnionModel } from 'general-library-union'\n\nexport class RegistroProcesoModel extends UnionModel {\n\n\tllave: string;\n\torigen: string;\n\tempresa: number;\n\tperiodo: string;\n\tusuario: string;\n\tdatoBase: string;\n\tpublicacionWeb: string;\n\tnombrePublicacion: string;\n\tdescripcionTipo: string;\n\tdescripcionEntidad: string;\n\tnombreSucursal: string; \n\tnombreVincula: string;\n\ttiposervicio: string;\n\tentidad: string;\n\tsucursal: number;\n\tvinculacion: number;\n\trutaArchivo: string;\n\tasunto: string;\n\tfecha: Date;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n\testado: string;\n\tprocesoLiquidacion: string;\n\tmensaje: string;\n\thilo: string;\n\tllaveAplicacion: string;\n\tpaso: string;\n\tbusqueda: string;\n\ttipoInicializacion: string;\n\tconcepto: number;\n\tvariable: string;\n\tliquidacion: string;\n\tdescripcionConcepto: string;\n\tdescripcionVariable: string;\n\tdescripcionLiquidacion: string;\n\tvariableFecha: string;\n\tdescripcionVariableFecha: string;\n\tsustitucion: string;\n\ttipoLiquida: string;\n\tubicacionGeo: string;\n\tsitio: string;\n\tnombreSitio: string;\n\t/* campos no persistentes */\n\tfiltroEstado: string;\n\tfiltroProceso: string;\n\tfiltrofecha: string;\n\tdescripcionProceso: string;\n}","import { UnionModel } from 'general-library-union'\n\nexport class HoraLibreJornadaModel extends UnionModel {\n\n\t\n\tjornada: String;\n\ttipoReceso: String;\n\ttipoHora: String;\n\thoraInicio: Date;\n\thoraFin: Date;\n\thorasTotal: number;\n\tdiaHorario: String;\n\t\n\t//Transient\n\tnombreReceso: String;\n\t\n}","import { UnionModel } from 'general-library-union'\n\nexport class TipoHorarioModel extends UnionModel {\n\n\tdescripcion: string;\n\ttipo: string;\n\tfestivo: string;\n\tcodigo: string;\n\torganizacion: number;\n\tempresa: number;\n\thorario: string;\n\tmodo: string;\n\ttipoAusencia: string;\n\tnombreModo: string;\n\tformula: number;\n\torigenAusencia: string;\n\ttipoFiltro: string;\n\t\n}","\nimport { ListaModel } from '../../sarageneral/models/ListaModel';\n\nexport class SitioModel extends ListaModel{\n\n\tdescripcion: string;\n\tsitioGoogle: string;\n\tempresa: number;\n\torganizacion: number;\n\texterno: string;\n\tdireccion: string;\n\tcodigo: string;\n\trolAcceso: string; \n\tmodo: string;\n\tnombreModo: string;\n\tlogin: string;\n\tresponsable: number;\n\tnombreResponsable: string;\n\tnombreZonaEconomica: string;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tunidad: string;\n\tnombreCentro: string;\n\tnombreUnidad: string;\n\n\n\n\t\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class ConceptoTipoLiquidaModel extends UnionModel {\n\n\ttipoLiquida: string;\n\ttipo: string;\n\ttipoDia: string;\n\tperiodo: string;\n\tdesde: number;\n\thasta: number;\n\tproceso: number;\n\torden: number;\n\tconceptoTiempo: string;\n\tconceptoCambio: string;\n\tjornada: string;\n\tdestino: string;\n\ttipoEvento: string;\n\ttipoHorario: string;\n\tmomento: string;\n\tautorizacion: string;\n\thoraAutoriza: number;\n\thoraJornada: number;\n\tdescripcionConceptoTiempo: string;\t\n\tformula: number;\n\n}","import { UnionModel } from 'general-library-union'\n\nexport class DiaHorarioModel extends UnionModel {\n\n\ttipoHorario: String;\n\tdiaSemana: String;\n\thoraInicial: Date;\n\thoraFinal: Date;\n\tjornada: String;\n\thoras: number;\n\tdescripcionDiaSemana: String;\n\torden: number;\n\t\t\n}","export class DiaHorarioWrapper {\n\n    tipoHorario: string;\n    sitio: string;\n    descripcionTipoHorario: string;\n    descripcionSitio: string;\n    laborados: number;\n    orden: number;\n    primerRegistro: boolean;\n\n    public diaHorario() {\n        this.primerRegistro = true\n    }\n\n    public diaHorarioWrapper() {\n        this.primerRegistro = this.orden == 1;\n    }\n\n\n\n}","import { UnionModel } from 'general-library-union'\n\n\nexport class SitioTurnoModel extends UnionModel {\n\n\tsitio: String;\n\ttipoHorario: String;\n\tdiaSemana: String;\n\ttipo: String;\n\tcapacidad: number;\n\tcapacidadMinima: number;\n\tgrupo: String;\n\t\n\t//transient\n\tnombreTurno: String;\n\tdiferenteTipo: String;\n\n}","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\nimport { Constantes } from '../../../shared/constantes/Constantes';\n@Pipe({\n    name: 'jornadaConsPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class jornadaConsPipe implements PipeTransform {\n\n\n    INCAPACIDAD = \"I\";\n    LICENCIA = \"L\";\n    VACACION = \"V\";\n    // Tipos\n    PRIMERA_JORNADA = \"PRIMERA\";\n    ULTIMA_JORNADA = \"ULTIMA\";\n\n    // Tipos\n    TURNO_PREDEFINIDO = \"TU\";\n    DIARIA = \"DI\";\n    DIARIA_SEMANAL = \"DS\";\n    ROTACION_TURNO = \"RT\";\n    CIRCULAR = \"CI\";\n    RELOJ = \"RJ\";\n    PROGRAMACION = \"DE\";\n    CIRCULAR_TURNO = \"CT\";\n    TURNO_PREDEFINIDO_SEMANA = \"TS\";\n    TURNO_PREDEFINIDO_DESC = \"Horario Predefinido\";\n    DIARIA_DESC = \"Diaria\";\n    DIARIA_SEMANAL_DESC = \"Diaria Semanal\";\n    ROTACION_TURNO_DESC = \"Rotaci\" + Constantes.O_TIDLE_MIN + \"n Turno\";\n    CIRCULAR_DESC = \"Circular\";\n    RELOJ_DESC = \"Reloj\";\n    PROGRAMACION_DESC = \"Programacion\";\n    CIRCULAR_TURNO_DESC = \"Circular Horario Predefinido\";\n    TURNO_PREDEFINIDO_SEMANA_DESC = \"Horario Predefinido Semana\";\n\n\n    // Dias\n    LUNES = \"LUN\";\n    MARTES = \"MAR\";\n    MIERCOLES = \"MIE\";\n    JUEVES = \"JUE\";\n    VIERNES = \"VIE\";\n    SABADO = \"SAB\";\n    DOMINGO = \"DOM\";\n    LUNES_DESC = \"Lunes\";\n    MARTES_DESC = \"Martes\";\n    MIERCOLES_DESC = \"Mi\" + Constantes.E_TILDE_MIN + \"rcoles\";\n    JUEVES_DESC = \"Jueves\";\n    VIERNES_DESC = \"Viernes\";\n    SABADO_DESC = \"S\" + Constantes.A_TILDE_MIN + \"bado\";\n    DOMINGO_DESC = \"Domingo\";\n\n    // Formatos\n    FORMATO_DIARIO = \"E, MMMM yyyy\";\n    FORMATO_SEMANAL = \" MMMM yyyy\";\n    FORMATO_MENSUAL = \"MMMM yyyy\";\n    DIARIAH = \"DIA\";\n    DIARIAH_DESC = \"Diaria\";\n\n    // Tipo Jornada\n    TURNO = \"TU\";\n    SEMANA = \"SE\";\n    AUSENCIA = \"NA\";\n    TURNO_DESC = \"Turno\";\n    SEMANA_DESC = \"Semana\";\n    AUSENCIA_DESC = \"Ausencia\";\n\n\n    // Tipo Hora Libre\n    TIEMPO = \"T\";\n    HORARIO = \"H\";\n    TIEMPO_DESC = \"Tiempo\";\n    HORARIO_DESC = \"Horario\";\n\n    //Estado\n    ESTADO_PROGRAMADO = \"P\";\n    ESTADO_INCONSISTENTE = \"I\";\n    ESTADO_ANULADO = \"A\";\n    ESTADO_ANULADO_CRUCE = \"C\";\n\n    ESTADO_PROGRAMADO_DESC = \"Programado\";\n    ESTADO_INCONSISTENTE_DESC = \"Inconsistente\";\n    ESTADO_ANULADO_DESC = \"Anulado\";\n    ESTADO_ANULADO_CRUCE_DESC = \"Anulado por cruce\";\n\n    //Estado Solicitud\n    ESTADO_OFRECIDO = \"O\";\n    ESTADO_SOLICITADO = \"S\";\n    ESTADO_PENDIENTE_APROBACION = \"P\";\n    ESTADO_APROBADO = \"A\";\n\n    ESTADO_OFRECIDO_DESC = \"Ofrecido\";\n    ESTADO_SOLICITADO_DESC = \"Solicitado\";\n    ESTADO_PENDIENTE_APROBACION_DESC = \"Pendiente de aprobar\";\n    ESTADO_APROBADO_DESC = \"Aprobado\";\n\n    // Calendario\n    CLAVE_JORNADA = \"J\";\n    CLAVE_RELOJ = \"R\";\n\n    COLOR_JORNADA = \"#CEECF5\";\n    COLOR_INCAPACIDAD = \"#F0C7C4\t\";\n    COLOR_VACACIONES = \"#FFFAB8\";\n    COLOR_LICENCIA = \"#F3FFEB\";\n    COLOR_RELOJ = \"#E3B8FF\";\n\n\n    //Reglas de cruce en programacion\n    REGLA_INCONSISTENCIA = \"IN\";\n    REGLA_ANULA_NUEVO = \"CP\";\n    REGLA_ANULA_ANTIGUO = \"CU\";\n    REGLA_ANULA_NUEVO_MISMO_DIA = \"DP\";\n    REGLA_ANULA_ANTIGUO_MISMO_DIA = \"DU\";\n\n    FRANJA_TRABAJO = \"N\";\n    FRANJA_PROCESO_TEMPORAL = \"S\";\n    AUSENCIA_TIPO = \"A\";\n\n    DEFINE_GENERA_PASIVO = \"D\";\n    GENERA_PASIVO_DESCANSO = \"P\";\n    NO_GENERA_PASIVO_DESCANSO = \"R\";\n\n\n    DESC_FRANJA_TRABAJO = \"Franja de Trabajo\";\n    DESC_FRANJA_PROCESO_TEMPORAL = \"Franja de Proceso Temporal\";\n    DESC_AUSENCIA_TIPO = \"Ausencia\";\n    DESC_DEFINE_GENERA_PASIVO = \"Franja de Trabajo - Posible Pasivo Descanso\";\n    DESC_GENERA_PASIVO_DESCANSO = \"Franja de Trabajo - Genera Pasivo Descanso\";\n    DESC_NO_GENERA_PASIVO_DESCANSO = \"Franja de Trabajo - No Genera Pasivo Descanso\";\n\n    PARAMETRO_ELIMINACION_HORA_INICIAL = \"HI\";\n    PARAMETRO_ELIMINACION_HORA_FINAL = \"HF\";\n\n    SEMANAL = \"S\";\n    DIARIO = \"D\";\n    SEMANAL_DESC = \"Semanal\";\n    DIARIO_DESC = \"Diario\";\n    POR_AUTORIZAR = \"P\";\n    AUTORIZADO = \"A\";\n    NO_AUTORIZADO = \"N\";\n    POR_AUTORIZAR_DESC = \"Por Autorizar\";\n    AUTORIZADO_DESC = \"Autorizado\";\n    NO_AUTORIZADO_DESC = \"No Autorizado\";\n\n    mapaTipos = [\n        { codigo: this.TURNO_PREDEFINIDO, nombre: this.TURNO_PREDEFINIDO_DESC },\n        { codigo: this.DIARIA, nombre: this.DIARIA_DESC },\n        { codigo: this.DIARIA_SEMANAL, nombre: this.DIARIA_SEMANAL_DESC },\n        { codigo: this.ROTACION_TURNO, nombre: this.ROTACION_TURNO_DESC },\n        { codigo: this.CIRCULAR, nombre: this.CIRCULAR_DESC },\n        { codigo: this.CIRCULAR_TURNO, nombre: this.CIRCULAR_TURNO_DESC },\n        { codigo: this.TURNO_PREDEFINIDO_SEMANA, nombre: this.TURNO_PREDEFINIDO_SEMANA_DESC }\n    ]\n    mapaTiposPorDia = [\n        { codigo: this.TURNO_PREDEFINIDO, nombre: this.TURNO_PREDEFINIDO_DESC },\n    ]\n    mapaTipoEnum = [\n        { codigo: this.TURNO_PREDEFINIDO, nombre: EstadoEnum.TURNO },\n        { codigo: this.DIARIA, nombre: EstadoEnum.DIA },\n        { codigo: this.DIARIA_SEMANAL, nombre: EstadoEnum.DIA_SEMANA },\n        { codigo: this.ROTACION_TURNO, nombre: EstadoEnum.ROTACION },\n        { codigo: this.CIRCULAR, nombre: EstadoEnum.CIRCULAR },\n        { codigo: this.CIRCULAR_TURNO, nombre: EstadoEnum.CIRCULAR_TURNO },\n        { codigo: this.TURNO_PREDEFINIDO_SEMANA, nombre: EstadoEnum.TURNO_SEMANA },\n    ]\n    mapaDiasSemana = [\n        { codigo: 0, nombre: this.LUNES },\n        { codigo: 1, nombre: this.MARTES },\n        { codigo: 2, nombre: this.MIERCOLES },\n        { codigo: 3, nombre: this.JUEVES },\n        { codigo: 4, nombre: this.VIERNES },\n        { codigo: 5, nombre: this.SABADO },\n        { codigo: 6, nombre: this.DOMINGO },\n    ]\n    mapaDiaInt = [\n        { codigo: this.LUNES, nombre: 0 },\n        { codigo: this.MARTES, nombre: 1 },\n        { codigo: this.MIERCOLES, nombre: 2 },\n        { codigo: this.JUEVES, nombre: 3 },\n        { codigo: this.VIERNES, nombre: 4 },\n        { codigo: this.SABADO, nombre: 5 },\n        { codigo: this.DOMINGO, nombre: 6 },\n    ]\n    mapaSemana = [\n        { codigo: this.LUNES, nombre: this.LUNES_DESC },\n        { codigo: this.MARTES, nombre: this.MARTES_DESC },\n        { codigo: this.MIERCOLES, nombre: this.MIERCOLES_DESC },\n        { codigo: this.JUEVES, nombre: this.JUEVES_DESC },\n        { codigo: this.VIERNES, nombre: this.VIERNES_DESC },\n        { codigo: this.SABADO, nombre: this.SABADO_DESC },\n        { codigo: this.DOMINGO, nombre: this.DOMINGO_DESC },\n    ]\n    mapaTipoReceso = [\n        { codigo: this.TIEMPO, nombre: this.TIEMPO_DESC },\n        { codigo: this.HORARIO, nombre: this.HORARIO_DESC },\n    ]\n    mapaEstados = [\n        { codigo: this.ESTADO_PROGRAMADO, nombre: this.ESTADO_PROGRAMADO_DESC },\n        { codigo: this.ESTADO_INCONSISTENTE, nombre: this.ESTADO_INCONSISTENTE_DESC },\n        { codigo: this.ESTADO_ANULADO, nombre: this.ESTADO_ANULADO_DESC },\n        { codigo: this.ESTADO_ANULADO_CRUCE, nombre: this.ESTADO_ANULADO_CRUCE_DESC },\n    ]\n    MAPA_ESTADOS_SOLICITUD = [\n        { codigo: this.ESTADO_OFRECIDO, nombre: this.ESTADO_OFRECIDO_DESC },\n        { codigo: this.ESTADO_PENDIENTE_APROBACION, nombre: this.ESTADO_PENDIENTE_APROBACION_DESC },\n        { codigo: this.AUSENCIA, nombre: this.ESTADO_APROBADO_DESC },\n    ]\n    MAPA_TIPO_JORNADA = [\n        { codigo: this.SEMANA, nombre: this.SEMANA_DESC },\n        { codigo: this.TURNO, nombre: this.TURNO_DESC },\n        { codigo: this.ESTADO_APROBADO, nombre: this.AUSENCIA_DESC },\n    ]\n\n    MAPA_TIPO_SITIO_TURNO = [\n        { codigo: this.SEMANAL, nombre: this.SEMANAL_DESC },\n        { codigo: this.DIARIO, nombre: this.DIARIO_DESC },\n    ]\n\n    mapaTipoHorario = [\n        { codigo: this.HORARIO, nombre: this.HORARIO_DESC },\n        { codigo: this.AUSENCIA, nombre: this.AUSENCIA_DESC },\n    ]\n\n    mapaTipoHorarioPorDia = [\n        { codigo: this.HORARIO, nombre: this.HORARIO_DESC },\n    ]\n    COLORES_CALENDARIO = [\n        { codigo: this.CLAVE_JORNADA, nombre: this.COLOR_JORNADA },\n        { codigo: this.CLAVE_RELOJ, nombre: this.COLOR_RELOJ },\n        { codigo: this.INCAPACIDAD, nombre: this.COLOR_INCAPACIDAD },\n        { codigo: this.LICENCIA, nombre: this.COLOR_LICENCIA },\n        { codigo: this.VACACION, nombre: this.COLOR_VACACIONES },\n    ]\n    mapaTipoJornada = [\n        { codigo: this.FRANJA_TRABAJO, nombre: this.DESC_FRANJA_TRABAJO },\n        { codigo: this.FRANJA_PROCESO_TEMPORAL, nombre: this.DESC_FRANJA_PROCESO_TEMPORAL },\n        { codigo: this.AUSENCIA_TIPO, nombre: this.DESC_AUSENCIA_TIPO },\n        { codigo: this.DEFINE_GENERA_PASIVO, nombre: this.DESC_DEFINE_GENERA_PASIVO },\n        { codigo: this.GENERA_PASIVO_DESCANSO, nombre: this.DESC_GENERA_PASIVO_DESCANSO },\n        { codigo: this.NO_GENERA_PASIVO_DESCANSO, nombre: this.DESC_NO_GENERA_PASIVO_DESCANSO },\n    ]\n    MAPA_AUTORIZACION = [\n        { codigo: this.POR_AUTORIZAR, nombre: this.POR_AUTORIZAR_DESC },\n        { codigo: this.AUTORIZADO, nombre: this.AUTORIZADO_DESC },\n        { codigo: this.NO_AUTORIZADO, nombre: this.NO_AUTORIZADO_DESC },\n    ]\n\n    MAPA_POR_AUTORIZACION = [\n        { codigo: this.POR_AUTORIZAR, nombre: this.POR_AUTORIZAR_DESC },\n        { codigo: this.NO_AUTORIZADO, nombre: this.NO_AUTORIZADO_DESC },\n    ]\n\n    mapaTipoJornadaPersona =\n        [\n            { codigo: this.TURNO_PREDEFINIDO, nombre: this.TURNO_PREDEFINIDO_DESC },\n            { codigo: this.DIARIA, nombre: this.DIARIA_DESC },\n            { codigo: this.DIARIA_SEMANAL, nombre: this.DIARIA_SEMANAL_DESC },\n            { codigo: this.ROTACION_TURNO, nombre: this.ROTACION_TURNO_DESC },\n            { codigo: this.CIRCULAR, nombre: this.CIRCULAR_DESC },\n            { codigo: this.RELOJ, nombre: this.RELOJ_DESC },\n            { codigo: this.PROGRAMACION, nombre: this.PROGRAMACION_DESC },\n            { codigo: this.TURNO_PREDEFINIDO_SEMANA, nombre: this.TURNO_PREDEFINIDO_SEMANA_DESC }\n        ]\n\n\n\n\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listaTipos') { this.mapaTipos.forEach(data => { if (data.codigo === value) { result = data.nombre }  }); }\n        if (args[0] == 'listaEstados') { this.mapaEstados.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaAutorizacion') { this.MAPA_AUTORIZACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaTipoJorPersona') { this.mapaTipoJornadaPersona.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n}\nexport const EstadoEnum = {\n    TURNO: 'TURNO',\n    DIA: 'DIA',\n    DIA_SEMANA: 'DIA_SEMANA',\n    ROTACION: 'ROTACION',\n    CIRCULAR: 'CIRCULAR',\n    CIRCULAR_TURNO: 'CIRCULAR_TURNO',\n    TURNO_SEMANA: 'TURNO_SEMANA',\n} as const;","import { HttpClient, HttpRequest, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, GeneralModel, UtilsService } from 'general-library-union';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class ControlTiemposService {\n\n\n    listProcedure(objetoFiltro: GeneralModel) {\n        throw new Error('Method not implemented.');\n    }\n\n    constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService) {\n        this.handleError = this.handleError.bind(this);\n    }\n\n    private handleError(error: HttpErrorResponse) {\n        if (error.status === 500) {\n            //Llamado a interceptor\n            this.errorInterceptor.showError(JSON.stringify(error.error));\n            // A client-side or network error occurred. Handle it accordingly.\n            console.error('An error occurred:', error.error);\n        } else {\n            // The backend returned an unsuccessful response code.\n            // The response body may contain clues as to what went wrong.\n            console.error(\n                `Backend returned code ${error.status}, body was: `, error.error);\n        }\n        // Return an observable with a user-facing error message.\n        return throwError(() => new Error('Something bad happened; please try again later.'));\n    }\n\n    consultaAgendaSemana(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/consultaAgendaSemana`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    cargarSemanaPersona(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/cargarSemanaPersona`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    cargarSemana(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/cargarSemana`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n\n    guardarJornada(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/guardarJornada`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    eliminarJornada(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/eliminarJornada`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    cargarListaHorarios(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/cargarListaHorarios`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    eliminarHorario(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/eliminarHorario`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    actualizarHorario(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/actualizarHorario`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    guardarHorario(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/guardarHorario`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n    \n    crearJornadaTurno(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/crearJornadaTurno`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n    resumenConcepto(general: any): Observable<any> {\n        return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/tiempos/calendario/resumenConcepto`, general).pipe(\n            catchError(this.handleError)\n        );\n    }\n\n\n\n}","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralModel, ToastService, cargarmapasGlobal, AuthService, CargarControlFuncionalidadService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { HoraLibreJornadaModel } from '../../../controltiempos/models/HoraLibreJornadaModel';\nimport { JornadaModel } from '../../../controltiempos/models/JornadaModel';\nimport { PersonaModel } from '../../../controltiempos/models/PersonaModel';\nimport { jornadaConsPipe } from '../../../controltiempos/pipes/JornadaCons.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { CodigoBaseTiempoModel } from '../../../controltiempos/models/CodigoBaseTiempoModel';\nimport { TipoHorarioModel } from '../../../controltiempos/models/TipoHorarioModel';\nimport { PersonaConsPipe } from '../../../controltiempos/pipes/personaCons.pipe';\nimport { SitioModel } from '../../../controltiempos/models/SitioModel';\nimport { PipeJornadaPipe } from '../../../compensacion/pipes/pipe-jornada.pipe';\nimport { ControlTiemposService } from '../../../controltiempos/services/controlTiempos.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { ConceptoTipoLiquidaModel } from '../../../controltiempos/models/ConceptoTipoLiquidaModel';\nimport { DiaHorarioModel } from '../../../controltiempos/models/DiaHorarioModel';\nimport { DiaHorarioWrapper } from '../../../controltiempos/models/DiaHorarioWrapper';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { FechaUtilsService } from 'general-library-union';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { Calendar, CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { SitioTurnoModel } from '../../models/SitioTurnoModel';\n\n\n@Component({\n  selector: 'app-popup-jonada',\n  templateUrl: './popup-jonada.component.html',\n  styleUrls: ['./popup-jonada.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, DialogModule, FormsModule, InputTextModule, NgIf, DropdownModule, CalendarModule, MultiSelectModule, TooltipModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DatePipe, TranslateModule],\n  providers: [DatePipe]\n})\nexport class PopupJonadaComponent implements OnInit {\n\n\n  @Output() public regresar = new EventEmitter();\n  @Output() public seleccionar: EventEmitter<any> = new EventEmitter();\n  @ViewChild('calendar') calendar: Calendar;\n  @ViewChild('tablaGeneral') tablaGeneral: Table;\n\n  public jornada: JornadaModel;\n  public jornadaEspecifica: JornadaModel;\n  public persona: PersonaModel;\n  public horaLibre: HoraLibreJornadaModel;\n  public horaLibreEliminar: HoraLibreJornadaModel;\n  public mostrarBuscadorSitio: boolean;\n  public nuevo: boolean;\n  public mostrarTiempoLibre: boolean;\n  public clickGuardar: boolean = false;\n  public contadorHorarios;\n  public indexEliminar: number;\n  public nroLaborador: number;\n  public listaTipo = [];\n  public listaTipoHorario = [];\n  public listaTipoJornada = [];\n  public listaSiNo = [];\n  public diasSemana = [];\n  public listaTipoReceso = [];\n  public listaTipoTiempoLibre = [];\n  public listaTipoHorarioSel = [];\n  public listadoTipo = [];\n  public listaTipoHorarioSemana = [];\n  public listaJornadaCompensa = [];\n  public listaTipoLabor = [];\n  public listaEstacionTrabajo = [];\n  public listaTurnosRotacion: any[] = [];\n  public listaSitio = [];\n  public mapaAutorizado = [];\n  public dias = [];\n  public tipoHorarioString: string;\n  public label: string;\n  public modo: string;\n  public organizacion: number;\n  public resumen: boolean;\n  public autorizacion: boolean = false;\n  public mostrarPopup: boolean;\n  public horaInicial: any;\n  public horaFinal: any;\n  public newHoraLibreInicial: any;\n  public newHoraLibreFinal: any;\n  public formatoEntrada: boolean = false;\n  public formatoSalida: boolean = false;\n  public validacionSemana: boolean = false;\n  public diaHorario: DiaHorarioWrapper;\n  public vistaVisualizar: string = '';\n  public nuevoHorario: boolean = true;\n  public listaHorarioLibre: HoraLibreJornadaModel[] = [];\n  public nuevoHoraLibre = new HoraLibreJornadaModel();\n  public horasString: string = null;\n  public habilitaCampo: boolean = false;\n  public diasLaboradosTmp: number;\n  public selectedDiasLabel: string;\n  public isLoadingData: boolean = false;\n  abreviacionesDias = {\n    '1': 'Dom',\n    '2': 'Lun',\n    '3': 'Mar',\n    '4': 'Mier',\n    '5': 'Jue',\n    '6': 'Vie',\n    '7': 'Sab'\n  };\n  paginator = {\n    rows: 4,\n    totalRecords: 0,\n  };\n  public programacion: boolean;\n  public tipoHorarioInvalido: boolean = false;\n  public indexOrigen: number;\n  public origenTarea: string;\n\n  constructor(\n    private generalService: GeneralService,\n    public jornadaPipe: jornadaConsPipe,\n    private authService: AuthService,\n    private cargarMapas: cargarmapasGlobal,\n    private generalPipe: GeneralPipe,\n    private personaPipe: PersonaConsPipe,\n    public jornadapipe: PipeJornadaPipe,\n    private controlTiempoService: ControlTiemposService,\n    private toastService: ToastService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private confirmationService: ConfirmationService,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    public utilService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.jornada = new JornadaModel();\n    this.tipoHorarioString = \"\";\n    this.inicializar();\n  }\n\n  mostrar() {\n    this.mostrarPopup = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilService.calcularPosicionDialog(), 0);\n    }\n    this.utilService.resizeWindowIFrame();\n  }\n\n  async inicializar() {\n    let consultaEmpresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    this.modo = consultaEmpresa.modoCompensacion\n    this.organizacion = consultaEmpresa.organizacion;\n    this.diaHorario = new DiaHorarioWrapper();\n    this.nuevoHoraLibre = new HoraLibreJornadaModel();\n    this.vistaVisualizar = '';\n    this.contadorHorarios = 0;\n    this.label = this.jornadaPipe.HORARIO_DESC;\n    this.mapaAutorizado = this.jornadaPipe.MAPA_AUTORIZACION;\n    this.listaTipoHorarioSel = this.jornadaPipe.mapaTipoHorario;\n    this.listaTipo = this.jornadaPipe.mapaTipos;\n    this.listaTipo.sort((a, b) => a.nombre.localeCompare(b.nombre));\n    this.listaSiNo = this.generalPipe.LISTA_SELECIONAR_MAP;\n    this.listadoTipo = this.jornadaPipe.mapaTipoJornada;\n    this.listaEstacionTrabajo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'ESTAC' }));\n    this.listaTipoLabor = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'TIPLA' }));\n    this.clickGuardar = false;\n    this.habilitaCampo = false;\n    this.programacion = null;\n  }\n\n\n  async cargarListas() {\n    this.listaTipoJornada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { modoParametro: this.modo, tipo: 'TIPJO', temporal: this.jornadaPipe.FRANJA_TRABAJO }));\n\n    let mapaRetorna: Map<string, string> = new Map<string, string>();\n    if (this.origenTarea === 'sitioTurno') {\n      const sitioTurno: SitioTurnoModel = new SitioTurnoModel();\n      sitioTurno.sitio = this.jornada.sitio;\n      const consulta = await this.generalService.queryForList(new GeneralModel('SitioTurnoDTO', null, false, sitioTurno)).toPromise();\n      for (const element of consulta) {\n        const th = new TipoHorarioModel();\n        th.llaveTabla = element.tipoHorario;\n        const listaTipoHorarioTmp = await this.generalService.queryForList(new GeneralModel('TipoHorarioDTO', null, false, th)).toPromise();\n        for (const tipoHorarioDTO of listaTipoHorarioTmp) {\n          mapaRetorna.set(tipoHorarioDTO.llaveTabla, tipoHorarioDTO.descripcion);\n        }\n      }\n    } else {\n      const th = new TipoHorarioModel();\n      th.empresa = this.persona.empresa;\n      th.organizacion = this.organizacion\n      th.tipoFiltro = this.tipoHorarioString;\n      const listaTipoHorarioTmp = await this.generalService.queryForList(new GeneralModel('TipoHorarioDTO', null, false, th)).toPromise();\n      for (const tipoHorarioDTO of listaTipoHorarioTmp) {\n        if (tipoHorarioDTO.tipo == 'SE') {\n          continue;\n        }\n        mapaRetorna.set(tipoHorarioDTO.llaveTabla, tipoHorarioDTO.descripcion);\n      }\n    }\n    this.listaTipoHorario = Array.from(mapaRetorna, ([value, label]) => ({ value, label }));\n    this.mostrarBuscadorSitio = this.personaPipe.UNICO == this.persona.tipoSitio ? false : true;\n    this.diaHorario.sitio = this.persona.sitio;\n    if (this.persona.tipoSitio != null) {\n      if (this.personaPipe.MULTIPLE == this.persona.tipoSitio.trim()) {\n        this.mostrarBuscadorSitio = true;\n        this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioPersonaDTO', 'SitioSara.consultarSitioPersona', false, { persona: this.persona.llaveTabla, login: this.authService.getTokenKey('usuario') }));\n      } else if (this.personaPipe.ALTERNO == this.persona.tipoSitio) {\n        this.listaSitio = [];\n        this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioSaraDTO', null, false, { login: this.authService.getTokenKey('usuario') }));\n      }\n    }\n    this.listaTipoHorarioSemana = [];\n    if (this.origenTarea === 'sitioTurno') {\n      this.listaTipoHorarioSemana = this.listaTipoHorario;\n    } else {\n      let tipoHorarioSemana = new TipoHorarioModel();\n      tipoHorarioSemana.empresa = this.persona.empresa;\n      tipoHorarioSemana.organizacion = this.organizacion;\n      tipoHorarioSemana.tipoFiltro = this.tipoHorarioString;\n      let listaTipoHorarioSemanaTmp = await this.generalService.queryForList(new GeneralModel('TipoHorarioDTO', null, false, tipoHorarioSemana)).toPromise();\n      this.listaTipoHorarioSemana = listaTipoHorarioSemanaTmp.filter(tipoHorarioDTO => tipoHorarioDTO.tipo !== 'TU').map(tipoHorarioDTO => ({ value: tipoHorarioDTO.llaveTabla, label: tipoHorarioDTO.descripcion }));\n    }\n    this.listaJornadaCompensa = [];\n    if (this.jornadaEspecifica != null) {\n      let CodigoBaseTiempoDTO = new CodigoBaseTiempoModel();\n      CodigoBaseTiempoDTO.temporal = 'compensada';\n      CodigoBaseTiempoDTO.tipo = 'TIPJO';\n      this.listaJornadaCompensa = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, CodigoBaseTiempoDTO));\n      this.listaJornadaCompensa.sort((a, b) => a.label.localeCompare(b.label));\n    }\n  }\n\n  cargarListaDiasSemana() {\n    this.diasSemana = [];\n    this.diasSemana = this.jornadapipe.MAPASEMANA2;\n    this.diasSemana.sort((a, b) => a.codigo.localeCompare(b.codigo));\n  }\n\n  async ver(jornada: JornadaModel, jornadaEspecifica: JornadaModel, autorizacion: boolean, resumen: boolean, indexOrigen?: number, tarea?: string) {\n    this.inicializar();\n    this.indexOrigen = indexOrigen;\n    this.origenTarea = tarea;\n    this.resumen = resumen;\n    this.autorizacion = autorizacion;\n    this.jornada = Object.assign({}, jornada);\n    this.jornada.desde = new Date(this.jornada.desde);\n    this.jornada.hasta = new Date(this.jornada.hasta);\n    this.jornada.horaInicial = new Date(this.jornada.horaInicial);\n    this.jornada.horaFinal = new Date(this.jornada.horaFinal);\n    if (this.jornada.horaInicial != null && this.jornada.horaFinal != null) {\n      const horasInicial = this.jornada.horaInicial.getHours();\n      const minutosInicial = this.jornada.horaInicial.getMinutes();\n      const horasFinal = this.jornada.horaFinal.getHours();\n      const minutosFinal = this.jornada.horaFinal.getMinutes();\n      this.horaInicial = `${horasInicial < 10 ? '0' : ''}${horasInicial}:${minutosInicial < 10 ? '0' : ''}${minutosInicial}`;\n      this.horaFinal = `${horasFinal < 10 ? '0' : ''}${horasFinal}:${minutosFinal < 10 ? '0' : ''}${minutosFinal}`;\n      if (this.jornada.tipo === this.jornadaPipe.DIARIA || this.jornada.tipo === this.jornadaPipe.DIARIA_SEMANAL || this.jornada.tipo === this.jornadaPipe.CIRCULAR) {\n        let consulta = await this.fechaUtils.calcularHoras({ fechaBaseIni: this.datePipe.transform(this.jornada.horaInicial, 'yyyy-MM-dd HH:mm:ss.S'), fechaBaseFin: this.datePipe.transform(this.jornada.horaFinal, 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n        this.jornada.totalHoras = consulta;\n      }\n      this.getHorasString();\n    }\n    this.jornadaEspecifica = Object.assign({}, jornadaEspecifica);\n    if (this.jornadaEspecifica?.entradaPrograma) {\n      this.jornadaEspecifica.entradaPrograma = new Date(this.jornadaEspecifica?.entradaPrograma);\n    }\n    if (this.jornadaEspecifica?.tipoJornadaNombre) {\n      this.jornadaEspecifica.tipoJornadaNombre = this.formatearTexto(this.jornadaEspecifica?.tipoJornadaNombre)\n    }\n    this.mostrarPopup = true;\n    this.newHoraLibreFinal = null;\n    this.newHoraLibreInicial = null;\n    this.cargarListaDiasSemana();\n    this.label = this.jornadaPipe.HORARIO_DESC;\n    this.tipoHorarioString = this.jornadaPipe.HORARIO;\n    this.persona = new PersonaModel();\n    this.persona.llaveTabla = jornada.persona;\n    this.persona = await this.generalService.queryForObject(new GeneralModel('PersonaDTO', null, false, this.persona)).toPromise();\n    this.nuevo = false;\n    if (this.jornadaPipe.ROTACION_TURNO == this.jornada.tipo) {\n      this.cargarListaHorarios();\n    }\n    if (this.jornadaPipe.DIARIA_SEMANAL == this.jornada.tipo) {\n      this.cargarDiasSemana();\n    }\n    if (this.jornada.tipo == this.jornadaPipe.TURNO_PREDEFINIDO || this.jornada.tipo == this.jornadaPipe.TURNO_PREDEFINIDO_SEMANA) {\n      let tipoHorario = new TipoHorarioModel();\n      tipoHorario.llaveTabla = this.jornada.tipoHorario;\n      tipoHorario = await this.generalService.queryForObject(new GeneralModel('TipoHorarioDTO', null, false, tipoHorario)).toPromise();\n      if (tipoHorario != null && tipoHorario.tipo == this.jornadaPipe.AUSENCIA) {\n        this.label = this.jornadaPipe.AUSENCIA_DESC;\n        this.tipoHorarioString = this.jornadaPipe.AUSENCIA;\n      }\n    }\n    await this.cargarListas();\n    this.cargaHoraLibre({ first: 0, rows: 10 })\n    this.cargarListadosTiempoLibre();\n    this.contadorHorarios = this.listaTurnosRotacion.length;\n  }\n\n  async nuevoCalendario(llavePersona: string, fecha: Date, isProgramacion: boolean, indexOrigen?: number) {\n    this.indexOrigen = indexOrigen;\n    this.origenTarea = 'sitioPersona';\n    let basePersona = new PersonaModel();\n    basePersona.llaveTabla = llavePersona;\n    basePersona = await this.generalService.queryForObject(new GeneralModel('PersonaDTO', null, false, basePersona)).toPromise();\n    if (basePersona == null) {\n      this.toastService.showError('No se encontró persona');\n      return;\n    }\n    this.nuevoRegistro(basePersona, true);\n    this.jornada.desde = new Date(fecha);\n    this.jornada.hasta = new Date(fecha);\n    this.programacion = isProgramacion;\n    if (this.programacion == null) {\n      return;\n    }\n    this.horasString = null;\n    this.tipoHorarioString = this.jornadaPipe.HORARIO;\n    if (!this.programacion) {\n      this.tipoHorarioString = this.jornadaPipe.AUSENCIA;\n      const fechaActual = new Date();\n      this.jornada.horaInicial = new Date(fechaActual.setHours(0, 0, 0, 0));\n      this.jornada.horaFinal = new Date(fechaActual.setHours(23, 59, 0, 0));\n      const horasInicial = this.jornada.horaInicial.getHours();\n      const minutosInicial = this.jornada.horaInicial.getMinutes();\n      const horasFinal = this.jornada.horaFinal.getHours();\n      const minutosFinal = this.jornada.horaFinal.getMinutes();\n      this.horaInicial = `${horasInicial < 10 ? '0' : ''}${horasInicial}:${minutosInicial < 10 ? '0' : ''}${minutosInicial}`;\n      this.horaFinal = `${horasFinal < 10 ? '0' : ''}${horasFinal}:${minutosFinal < 10 ? '0' : ''}${minutosFinal}`;\n      let consulta = await this.fechaUtils.calcularHoras({ fechaBaseIni: this.datePipe.transform(this.jornada.horaInicial, 'yyyy-MM-dd HH:mm:ss.S'), fechaBaseFin: this.datePipe.transform(this.jornada.horaFinal, 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n      this.jornada.totalHoras = consulta;\n      this.getHorasString();\n    }\n    this.defineTipoHorario(this.tipoHorarioString);\n  }\n\n  async nuevoRegistro(persona: PersonaModel, resumen: boolean) {\n    this.inicializar();\n    this.resumen = resumen;\n    this.autorizacion = false;\n    this.tipoHorarioString = null;\n    this.persona = persona;\n    this.jornada = new JornadaModel();\n    this.jornadaEspecifica = new JornadaModel();\n    this.jornada.persona = persona.llaveTabla;\n    this.jornada.paisEmpresa = persona.pais;\n    this.jornada.hojaVidaPersona = persona.hojaVida;\n    this.jornada.nombresPersona = persona.nombresPersona;\n    this.jornada.tipoLabor = persona.tipoLabor;\n    this.jornada.estacionTrabajo = persona.estacionTrabajo;\n    this.horaInicial = null;\n    this.horaFinal = null;\n    if (persona.sitio != null) {\n      let sitio = new SitioModel();\n      sitio.llaveTabla = persona.sitio\n      sitio = await this.generalService.queryForObject(new GeneralModel('SitioSaraDTO', null, false, sitio)).toPromise();\n      this.setSitio(sitio);\n    }\n    if (this.isTipoFijo()) {\n      this.cargarListas();\n      this.cargarListaDiasSemana();\n    }\n    this.listaTurnosRotacion = [];\n    this.nuevo = true;\n    this.mostrarPopup = true;\n    this.dias = [];\n    this.selectedDiasLabel = null;\n  }\n\n  cargarDiasSemana() {\n    if (this.jornada.marcacionSemana != null) {\n      let dias: string = this.jornada.marcacionSemana;\n      dias = dias.replace(\"[\", \"\");\n      dias = dias.replace(\"]\", \"\");\n      let diasString: string[] = dias.split(\",\");\n      this.dias = diasString;\n      for (let index = 0; index < diasString.length; index++) {\n        this.diasSemana.forEach(data => {\n          if (data.label == this.dias[index].trim()) {\n            this.dias[index] = data.value.toString();\n          }\n        });\n        this.dias[index] = this.dias[index].trim();\n      }\n      this.selectedDiasLabel = '';\n      this.selectedDiasLabel = this.dias.map(data => this.abreviacionesDias[data]).join(', ');\n    }\n  }\n\n  async cargarListaHorarios() {\n    this.isLoadingData = true;\n    this.listaTurnosRotacion = [];\n    var respuesta = await this.controlTiempoService.cargarListaHorarios({ jornada: this.jornada }).toPromise();\n    this.listaTurnosRotacion = respuesta.list;\n    this.isLoadingData = false;\n  }\n\n  async guardarDia() {\n    if (this.jornadaEspecifica == null) {\n      return\n    }\n    await this.generalService.update(new GeneralModel('JornadaDTO', null, false, this.jornadaEspecifica)).toPromise();\n  }\n\n  padLeft(value: string, targetLength: number, padChar: string = ' '): string {\n    // La longitud del relleno necesario es la longitud objetivo menos la longitud actual de la cadena.\n    let padding = targetLength - value.length;\n    if (padding > 0) {\n      // Si es necesario rellenar, se crea una cadena de relleno y se concatena a la izquierda del valor.\n      if (value.length === 1) {\n        return 0 + value + padChar.repeat(padding - 1);\n      } else if (value.length === 2) {\n        return value + padChar.repeat(padding);\n      }\n      else {\n        return padChar.repeat(padding) + value;\n      }\n    } else {\n      // Si no es necesario rellenar, se devuelve el valor original.\n      return value;\n    }\n  }\n\n  async actualizarTotalHoras() {\n    if (this.horaInicial === null || this.horaFinal === null) {\n      return;\n    }\n    let comodinHoraInicial = '';\n    let comodinHoraFinal = '';\n    let horaInicio = '';\n    let minutoInicio = '';\n    let horaFin = '';\n    let minutoFin = '';\n    if (this.horaInicial.includes(':')) {\n      horaInicio = this.horaInicial.slice(0, 2);\n      minutoInicio = this.horaInicial.slice(3, 5);\n    } else {\n      comodinHoraInicial = this.padLeft(this.horaInicial, 4, '0');\n      horaInicio = comodinHoraInicial.slice(0, 2);\n      minutoInicio = comodinHoraInicial.slice(2, 4);\n    }\n    if (this.horaFinal.includes(':')) {\n      horaFin = this.horaFinal.slice(0, 2);\n      minutoFin = this.horaFinal.slice(3, 5);\n    } else {\n      comodinHoraFinal = this.padLeft(this.horaFinal, 4, '0');\n      horaFin = comodinHoraFinal.slice(0, 2);\n      minutoFin = comodinHoraFinal.slice(2, 4);\n    }\n    this.horaInicial = horaInicio + ':' + minutoInicio;\n    this.horaFinal = horaFin + ':' + minutoFin;\n\n    const fechaActual = new Date();\n    const [horaInicial, minutoInicial] = this.horaInicial.split(':');\n    const [horaFinal, minutoFinal] = this.horaFinal.split(':');\n    const fechaInicial = new Date(fechaActual.setHours(parseInt(horaInicial, 10), parseInt(minutoInicial, 10), 0, 0));\n    const fechaFinal = new Date(fechaActual.setHours(parseInt(horaFinal, 10), parseInt(minutoFinal, 10), 0, 0));\n    let consulta = await this.fechaUtils.calcularHoras({ fechaBaseIni: this.datePipe.transform(fechaInicial, 'yyyy-MM-dd HH:mm:ss.S'), fechaBaseFin: this.datePipe.transform(fechaFinal, 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n    this.jornada.totalHoras = consulta;\n    this.getHorasString();\n  }\n\n  async actualizarPanelHorario(dato) {\n    if (dato.value != null) {\n      let tipoHorario = new TipoHorarioModel();\n      tipoHorario.llaveTabla = dato.value;\n      tipoHorario = await this.generalService.queryForObject(new GeneralModel('TipoHorarioDTO', null, false, tipoHorario)).toPromise();\n      if (tipoHorario != null) {\n        this.jornada.horarioCadena = tipoHorario.horario;\n        this.jornada.fechaModificado = new Date();\n      }\n    } else {\n      this.jornada.horarioCadena = null;\n    }\n    this.tipoHorarioInvalido = false;\n  }\n\n  seleccionTipo(dato) {\n    let tipo: string = dato.value;\n    this.defineTipoHorario(tipo);\n  }\n\n  defineTipoHorario(tipo: string) {\n    if (tipo == this.jornadaPipe.AUSENCIA) {\n      this.jornada.tipo = this.jornadaPipe.TURNO_PREDEFINIDO;\n      this.label = 'Ausencia';\n      this.tipoHorarioString = tipo.toString();\n      this.cargarListas();\n      this.cargarListaDiasSemana();\n    } else {\n      this.label = 'Tipo de Horario';\n      this.tipoHorarioString = tipo.toString();\n      this.cargarListas();\n      this.cargarListaDiasSemana();\n      if (this.personaPipe.FIJO == this.persona.tipo || this.resumen) {\n        this.jornada.tipo = this.jornadaPipe.DIARIA;\n        this.listaTipo = [];\n        this.listaTipo.push({ codigo: this.jornadaPipe.DIARIA, nombre: this.jornadaPipe.DIARIA_DESC });\n        this.listaTipo.sort((a, b) => a.nombre.localeCompare(b.nombre));\n      }\n    }\n  }\n\n  validar(): boolean {\n    let valido: boolean = true;\n    if (this.jornadaPipe.TURNO_PREDEFINIDO === this.jornada.tipo) {\n      if (this.jornadaPipe.AUSENCIA === this.tipoHorarioString) {\n        valido = valido && this.utilService.validarCampoObligatorio(this.horaInicial);\n        valido = valido && this.utilService.validarCampoObligatorio(this.horaInicial);\n      }\n      if (this.tipoHorarioString !== this.jornadaPipe.AUSENCIA) {\n        const isValidOption = this.listaTipoHorario.some(option => option.value === this.jornada.tipoHorario);\n        this.tipoHorarioInvalido = !isValidOption;\n        if (!isValidOption) {\n          valido = false;\n        }\n        valido = valido && this.utilService.validarCampoObligatorio(this.jornada.sitio);\n      }\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.desde);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.hasta);\n    }\n    if (this.jornadaPipe.DIARIA === this.jornada.tipo) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.horaInicial);\n      valido = valido && this.utilService.validarCampoObligatorio(this.horaInicial);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.desde);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.jornada);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.sitio);\n    }\n    if (this.jornadaPipe.DIARIA_SEMANAL === this.jornada.tipo) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.horaInicial);\n      valido = valido && this.utilService.validarCampoObligatorio(this.horaFinal);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.desde);\n\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.festivo);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.hasta);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.jornada);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.sitio);\n    }\n    if (this.jornadaPipe.ROTACION_TURNO === this.jornada.tipo) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.diasLaboral);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.diasLibre);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.desde);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.hasta);\n    }\n    if (this.jornadaPipe.CIRCULAR === this.jornada.tipo) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.circuito);\n      valido = valido && this.utilService.validarCampoObligatorio(this.horaInicial);\n      valido = valido && this.utilService.validarCampoObligatorio(this.horaFinal);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.desde);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.hasta);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.jornada);\n    }\n    if (this.jornadaPipe.CIRCULAR_TURNO === this.jornada.tipo) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.circuito);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.desde);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.hasta);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.jornada);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.tipoHorario);\n    }\n    if (this.jornadaPipe.TURNO_PREDEFINIDO_SEMANA === this.jornada.tipo) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.tipoHorario);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.desde);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.hasta);\n      valido = valido && this.utilService.validarCampoObligatorio(this.jornada.sitio);\n    }\n\n    return valido;\n  }\n\n  async guardar() {\n    if (!this.validar()) {\n      this.toastService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      this.clickGuardar = true;\n      return;\n    }\n\n    this.validacionSemana = false;\n    if (this.dias == null || (this.dias != null && this.dias.length <= 0 && this.jornada.tipo == this.jornadaPipe.DIARIA_SEMANAL)) {\n      this.toastService.showError('Seleccione un día de la semana');\n      this.validacionSemana = true;\n      return;\n    }\n    if (this.dias && this.dias.length > 0) {\n      this.jornada.marcacionSemana = '[' + this.dias.join(', ') + ']';\n    } else {\n      this.jornada.marcacionSemana = null;\n    }\n    this.jornada.listaHorarios = this.listaTurnosRotacion;\n    this.jornada.laborados = this.diasLaboradosTmp ? this.diasLaboradosTmp : this.jornada.laborados;\n    this.jornada.serie = (this.jornadaPipe.DIARIA == this.jornada.tipo ? Constantes.CONSTANTE_NO : Constantes.CONSTANTE_SI);\n    if (!(await this.comprobarPermiso())) {\n      this.toastService.showError('El intervalo de tiempo entre la hora inicial y final es mayor al permitido. Revise e intente nuevamente.');\n      return;\n    }\n    if ((this.jornada.tipo === this.jornadaPipe.TURNO_PREDEFINIDO && this.tipoHorarioString === this.jornadaPipe.AUSENCIA) || (this.jornada.tipo === this.jornadaPipe.DIARIA || this.jornada.tipo === this.jornadaPipe.DIARIA_SEMANAL || this.jornada.tipo === this.jornadaPipe.CIRCULAR)) {\n      this.formatoEntrada = false;\n      this.formatoSalida = false;\n      if (!this.horaInicial.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        this.formatoEntrada = true;\n        return;\n      }\n      if (!this.horaFinal.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        this.formatoSalida = true;\n        return;\n      }\n    }\n    if (this.jornadaPipe.CIRCULAR == this.jornada.tipo) {\n      if (this.jornada.circuito != null) {\n        if (!this.validarCircuito(this.jornada.circuito)) {\n          this.toastService.showError('Formato de circuito incorrecto');\n          return;\n        }\n      }\n    }\n    this.jornada.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    if (this.horaFinal != null && this.horaFinal != null) {\n      const fechaActual = new Date();\n      const [horaInicial, minutoInicial] = this.horaInicial.split(':');\n      this.jornada.horaInicial = new Date(fechaActual.setHours(parseInt(horaInicial, 10), parseInt(minutoInicial, 10), 0, 0));\n\n      const [horaFinal, minutoFinal] = this.horaFinal.split(':');\n      this.jornada.horaFinal = new Date(fechaActual.setHours(parseInt(horaFinal, 10), parseInt(minutoFinal, 10), 0, 0));\n    }\n    var ejecucion = await this.controlTiempoService.guardarJornada({\n      jornada: this.jornada,\n      nuevo: this.nuevo\n    }).toPromise();\n    if (ejecucion.mensaje != null) {\n      this.toastService.showError(ejecucion.mensaje);\n      if (this.nuevo) {\n        this.jornada.llaveTabla = null;\n      }\n      return;\n    }\n    if (this.nuevo) {\n      this.toastService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n      this.clickGuardar = false;\n    } else {\n      this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR)\n      this.clickGuardar = false;\n    }\n    this.nuevo = false;\n    this.ocultar(true);\n  }\n\n\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async eliminarRegistro() {\n    if (this.listaHorarioLibre.length > 0 || this.listaTurnosRotacion.length > 0) {\n      this.toastService.showError('No se puede eliminar/crear el registro, tiene elementos asociados');\n      return;\n    }\n    await this.controlTiempoService.eliminarJornada({ jornada: this.jornada }).toPromise();\n    this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n    this.ocultar(true);\n  }\n\n  autorizar() {\n    this.generalService.update(new GeneralModel('JornadaDTO', 'Jornada.autorizarJornada', false, this.jornada)).subscribe((data) => {\n      if (data == 1) {\n        this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n        this.ocultar(true);\n      } else {\n        this.toastService.showError('Error en el método de actualizar recurso');\n      };\n    });\n  }\n\n  noAutorizar() {\n    this.generalService.update(new GeneralModel('JornadaDTO', 'Jornada.noAutorizarJornada', false, this.jornada)).subscribe((data) => {\n      if (data == 1) {\n        this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n        this.ocultar(true);\n      } else {\n        this.toastService.showError('Error en el método de actualizar recurso');\n      };\n    });\n  }\n\n\n  async comprobarPermiso(): Promise<boolean> {\n    if (this.persona.tipoLiquidacion == null) {\n      return null;\n    }\n    let tipoLiquidacion: string = this.persona.tipoLiquidacion;\n    if (this.jornadaPipe.AUSENCIA == this.tipoHorarioString) {\n      let concepto = new ConceptoTipoLiquidaModel();\n      concepto.tipo = 'J';\n      concepto.tipoLiquida = tipoLiquidacion;\n      concepto = await this.generalService.queryForObject(new GeneralModel('ConceptoTipoLiquidaDTO', null, false, concepto)).toPromise();\n      if (concepto != null) {\n        let jornada: string = concepto.jornada;\n        let codigoBaseTiempo = new CodigoBaseTiempoModel();\n        codigoBaseTiempo.llaveTabla = jornada;\n        codigoBaseTiempo.temporal = this.jornadaPipe.AUSENCIA_TIPO;\n        codigoBaseTiempo = await this.generalService.queryForObject(new GeneralModel('CodigoBaseTiempoDTO', null, false, codigoBaseTiempo)).toPromise();\n        if (codigoBaseTiempo != null) {\n          let diaHorario = new DiaHorarioModel();\n          diaHorario.jornada = jornada;\n          diaHorario.tipoHorario = this.jornada.tipoHorario;\n          diaHorario = await this.generalService.queryForObject(new GeneralModel('DiaHorarioDTO', null, false, diaHorario)).toPromise();\n          if (diaHorario != null) {\n            const [horaInicial, minutoInicial] = this.horaInicial.split(':');\n            const [horaFinal, minutoFinal] = this.horaFinal.split(':');\n            let diferencia: number = horaFinal - horaInicial;\n            if (diferencia <= concepto.horaJornada) {\n              let desde: Date = this.jornada.desde;\n              let hasta: Date = this.jornada.hasta;\n              if (desde.getTime() === hasta.getTime()) {\n                if (diferencia == concepto.horaJornada) {\n                  if (minutoFinal == minutoInicial) {\n                    return true;\n                  } else {\n                    return false;\n                  }\n                }\n                return true;\n              } else {\n                return false;\n              }\n            } else {\n              return false;\n            }\n          } else {\n            return true;\n          }\n        } else {\n          return true;\n        }\n      } else {\n        return true;\n      }\n    } else {\n      return true;\n    }\n  }\n\n  iniciarEdicion() {\n    this.habilitaCampo = true;\n  }\n\n  cancelarEdicion(data: any) {\n    this.habilitaCampo = false;\n  }\n\n  mostrarNuevo() {\n    this.diaHorario = new DiaHorarioWrapper();\n    this.diaHorario.sitio = this.persona.sitio;\n    this.jornada.laborados = null;\n    this.vistaVisualizar = 'nuevo';\n    this.habilitaCampo = true;\n  }\n\n  cancelarNuevo() {\n    this.diaHorario = new DiaHorarioWrapper();\n    this.vistaVisualizar = '';\n    this.habilitaCampo = false;\n  }\n\n  showEliminarHorarioConfirmDialog(event: Event, dato: DiaHorarioWrapper): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.horarioEliminar(dato);\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async horarioEliminar(horarioEliminarEvent) {\n    let arrayEnvio: any[] = [];\n    for (let i = 0; i < this.listaTurnosRotacion.length; i++) {\n      arrayEnvio.push({ ĺist: JSON.stringify(this.listaTurnosRotacion[i]) })\n    }\n    let objeto = {\n      jornada: this.jornada,\n      listaTurno: this.listaTurnosRotacion,\n      horarioEliminar: horarioEliminarEvent,\n    }\n    var eliminaHorario = await this.controlTiempoService.eliminarHorario(objeto).toPromise();\n    if (eliminaHorario.respuesta == \"Error\") {\n      this.toastService.showError('No se puede eliminar, debe haber al menos un horario configurado.');\n      return;\n    }\n    let mensajeArray = Array.isArray(eliminaHorario.respuesta) ? eliminaHorario.respuesta : [eliminaHorario.respuesta];\n    let nuevosTurnos = [].concat(...mensajeArray.map(item => item.list));\n    this.listaTurnosRotacion = nuevosTurnos;\n    this.jornada.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    eliminaHorario.jornadaEliminar.listaHorarios = this.listaTurnosRotacion;\n    this.jornada = await this.controlTiempoService.guardarJornada({\n      jornada: eliminaHorario.jornadaEliminar,\n      nuevo: false\n    }).toPromise();\n    this.jornada.desde = new Date(this.jornada.desde);\n    this.jornada.hasta = new Date(this.jornada.hasta);\n    this.jornada.horaInicial = new Date(this.jornada.horaInicial);\n    this.jornada.horaFinal = new Date(this.jornada.horaFinal);\n    this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n    this.contadorHorarios--;\n  }\n\n\n  actualizarHorario(horario) {\n    if (!this.validarDiaHorario(horario)) {\n      this.clickGuardar = true;\n      this.toastService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      return;\n    }\n    if (this.listaTurnosRotacion.length == 4) {\n      this.toastService.showError('L' + Constantes.I_TILDE_MIN + 'mite de turnos alcanzado');\n      return;\n    }\n    if (horario.orden == 1) {\n      this.jornada.laborados == horario.laborados\n    }\n\n    this.controlTiempoService.actualizarHorario({\n      dia: horario,\n      jornada: this.jornada\n    }).subscribe({\n      next: (data) => {\n        this.cargarListaHorarios();\n        this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n      },\n      error: (err) => {\n        this.toastService.showError(err.error.mensajeEtiqueta)\n      }\n    });\n    this.nuevoHorario = true;\n  }\n\n  validarDiaHorario(dato: DiaHorarioWrapper): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilService.validarCampoObligatorio(dato.tipoHorario);\n    if (this.contadorHorarios === 0) {\n      validador = validador && this.utilService.validarCampoObligatorio(this.diasLaboradosTmp);\n    }\n    return validador;\n  }\n\n  async guardarHorario(diaHorarioEvent) {\n    if (!this.validarDiaHorario(diaHorarioEvent)) {\n      this.clickGuardar = true;\n      this.toastService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      this.tablaGeneral.initRowEdit(diaHorarioEvent);\n      return;\n    }\n    if (this.listaTurnosRotacion.length == 4) {\n      this.toastService.showError('L' + Constantes.I_TILDE_MIN + 'mite de turnos alcanzado');\n      return;\n    }\n    this.jornada.laborados = this.diasLaboradosTmp;\n    var guarda = await this.controlTiempoService.guardarHorario({\n      diaHorario: diaHorarioEvent,\n      contadorHorarios: this.contadorHorarios,\n      jornada: this.jornada,\n      nuevoHorario: this.nuevoHorario\n    }).toPromise();\n    this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n    this.nuevoHorario = guarda.nuevo;\n    let mensajeArray = Array.isArray(guarda.mensaje) ? guarda.mensaje : [guarda.mensaje];\n    let nuevosTurnos = [].concat(...mensajeArray.map(item => item.list));\n    this.listaTurnosRotacion.push(...nuevosTurnos);\n    this.diaHorario = new DiaHorarioWrapper;\n    this.diaHorario.sitio = this.persona.sitio;\n    this.vistaVisualizar = '';\n    this.habilitaCampo = false;\n    ++this.contadorHorarios;\n  }\n\n  async cargaHoraLibre(event) {\n    if (this.jornada.llaveTabla == null) {\n      return;\n    }\n    let objetoFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      jornada: this.jornada.llaveTabla\n    };\n    this.listaHorarioLibre = [];\n    this.isLoadingData = true;\n    this.generalService.queryForList(new GeneralModel('HoraLibreJornadaDTO', null, false, objetoFiltro)).subscribe(data => {\n      this.listaHorarioLibre = data;\n      this.listaHorarioLibre.forEach(data => {\n        data.horaInicio = data.horaInicio ? new Date(data.horaInicio) : null;\n        data.horaFin = data.horaFin ? new Date(data.horaFin) : null;\n      });\n      this.generalService.cantidadRegistros(new GeneralModel('HoraLibreJornadaDTO', null, false, objetoFiltro)).subscribe(data => {\n        this.paginator.totalRecords = data;\n      })\n    })\n    this.isLoadingData = false;\n  }\n\n  nuevoHora() {\n    this.nuevoHoraLibre = new HoraLibreJornadaModel();\n    this.vistaVisualizar = 'nuevaHora';\n    this.habilitaCampo = true;\n    this.newHoraLibreInicial = null;\n    this.newHoraLibreFinal = null;\n  }\n\n  validarHoraLibre(dato: HoraLibreJornadaModel): boolean {\n    let validador: boolean = true;\n    validador = validador && this.utilService.validarCampoObligatorio(dato.tipoHora);\n    if (dato.tipoHora === 'H') {\n      validador = validador && this.utilService.validarCampoObligatorio(this.newHoraLibreInicial);\n      validador = validador && this.utilService.validarCampoObligatorio(this.newHoraLibreFinal);\n    }\n    if (dato.tipoHora === 'T') {\n      validador = validador && this.utilService.validarCampoObligatorio(dato.horasTotal);\n    }\n    validador = validador && this.utilService.validarCampoObligatorio(dato.tipoReceso);\n    return validador;\n  }\n\n  guardarHoraLibre(horaLibre: HoraLibreJornadaModel) {\n    if (!this.validarHoraLibre(horaLibre)) {\n      this.clickGuardar = true;\n      this.toastService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      return;\n    }\n    if (horaLibre.tipoHora == 'H') {\n      if (!this.newHoraLibreInicial.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        return;\n      }\n      if (!this.newHoraLibreFinal.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        return;\n      }\n      const fechaActual = new Date();\n      const [horaInicial, minutoInicial] = this.newHoraLibreInicial.split(':');\n      horaLibre.horaInicio = new Date(fechaActual.setHours(parseInt(horaInicial, 10), parseInt(minutoInicial, 10), 0, 0));\n      const [horaFinal, minutoFinal] = this.newHoraLibreFinal.split(':');\n      horaLibre.horaFin = new Date(fechaActual.setHours(parseInt(horaFinal, 10), parseInt(minutoFinal, 10), 0, 0));\n    }\n    horaLibre.jornada = this.jornada.llaveTabla;\n    this.generalService.crearRegistro(new GeneralModel('HoraLibreJornadaDTO', null, false, horaLibre)).subscribe({\n      next: (data) => {\n        if (data != null) {\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n          this.cargaHoraLibre({ first: 0, rows: 10 });\n        } else {\n          this.toastService.showError('Error en el método de agregar recurso');\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.toastService.showError('Error al ingresar en el servicio');\n      },\n    });\n    this.vistaVisualizar = '';\n    this.nuevoHoraLibre = new HoraLibreJornadaModel();\n    this.habilitaCampo = false;\n  }\n\n  showEliminarHorarioLibreConfirmDialog(event: Event, dato: HoraLibreJornadaModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarHoraLibre(dato);\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarHoraLibre(horaLibre) {\n    this.generalService.delete(new GeneralModel('HoraLibreJornadaDTO', null, false, horaLibre)).subscribe({\n      next: (data) => {\n        if (data == 1) {\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n          this.cargaHoraLibre({ first: 0, rows: 10 });\n        } else {\n          this.toastService.showError('Error en el método de eliminar recurso');\n        }\n      },\n      error: (err) => {\n        this.toastService.showError('No es posible eliminar el registro, verifique que el registro no esta asociado en otros procesos');\n      },\n    });\n  }\n\n  formatearTexto(input: string): string {\n    if (input) {\n      return input.toLowerCase().replace(/\\b\\w/g, (match) => match.toUpperCase());\n    }\n    return '';\n  }\n\n  validarCircuito(circuito: string): boolean {\n    return /^[LT]+$/.test(circuito);\n  }\n\n  setSitio(sitio: SitioModel) {\n    this.jornada.sitio = sitio.llaveTabla;\n    this.jornada.nombreSitio = sitio.descripcion;\n  }\n\n  public mapaTipoHoraLibre(valor): any {\n    let result;\n    this.listaTipoTiempoLibre.forEach(data => { if (data.codigo === valor) { result = data.nombre } });\n    return result;\n  }\n\n  public mapaTipoReceso(valor): any {\n    let result;\n    this.listaTipoReceso.forEach(data => { if (data.key === valor) { result = data.label } });\n    return result;\n  }\n\n  public async cargarListadosTiempoLibre() {\n    this.listaTipoTiempoLibre = this.jornadaPipe.mapaTipoReceso;\n    this.listaTipoTiempoLibre.sort((a, b) => a.nombre.localeCompare(b.nombre));\n    let filtro = new CodigoBaseTiempoModel();\n    filtro.tipo = 'TIPRE';\n    this.listaTipoReceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, filtro));\n  }\n\n  isTipoFijo(): boolean {\n    return this.personaPipe.FIJO === this.persona.tipo\n  }\n\n  public ocultar(actualiza?: boolean) {\n    this.mostrarPopup = false;\n    this.horasString = '';\n    this.seleccionPersona(this.persona);\n    this.regresar.emit({ procesoActualiza: actualiza, indexDestino: this.indexOrigen, llaveTabla: this.origenTarea === 'sitioPersona' ? this.persona.llaveTabla : this.jornada.tipoHorario });\n  }\n\n  seleccionPersona(persona) {\n    this.seleccionar.emit(persona)\n  }\n\n  public isCompensada() {\n    return this.jornadaEspecifica.tipoJornadaTipo != null && 'DPR'.includes(this.jornadaEspecifica.tipoJornadaTipo);\n  }\n\n  getHorasString() {\n    this.horasString = '';\n    if ((this.horaInicial && this.horaInicial !== 'NaN:NaN') || (this.horaFinal && this.horaFinal !== 'NaN:NaN')) {\n      this.horasString = this.horaInicial + ' - ' + this.horaFinal;\n    }\n  }\n\n  formatoHoraLibre() {\n    if (this.newHoraLibreInicial === null || this.newHoraLibreFinal === null) {\n      return;\n    }\n    let comodinHoraInicial = '';\n    let comodinHoraFinal = '';\n    let horaInicio = '';\n    let minutoInicio = '';\n    let horaFin = '';\n    let minutoFin = '';\n    if (this.newHoraLibreInicial.includes(':')) {\n      horaInicio = this.newHoraLibreInicial.slice(0, 2);\n      minutoInicio = this.newHoraLibreInicial.slice(3, 5);\n    } else {\n      comodinHoraInicial = this.padLeft(this.newHoraLibreInicial, 4, '0');\n      horaInicio = comodinHoraInicial.slice(0, 2);\n      minutoInicio = comodinHoraInicial.slice(2, 4);\n    }\n    if (this.newHoraLibreFinal.includes(':')) {\n      horaFin = this.newHoraLibreFinal.slice(0, 2);\n      minutoFin = this.newHoraLibreFinal.slice(3, 5);\n    } else {\n      comodinHoraFinal = this.padLeft(this.newHoraLibreFinal, 4, '0');\n      horaFin = comodinHoraFinal.slice(0, 2);\n      minutoFin = comodinHoraFinal.slice(2, 4);\n    }\n    this.newHoraLibreInicial = horaInicio + ':' + minutoInicio;\n    this.newHoraLibreFinal = horaFin + ':' + minutoFin;\n  }\n\n  onDiasChange() {\n    this.selectedDiasLabel = '';\n    this.selectedDiasLabel = this.dias.map(data => this.abreviacionesDias[data]).join(', ');\n  }\n\n  onFocus(event: Event) {\n    event.preventDefault();\n    this.calendar.hideOverlay();\n  }\n\n  isHabilitaActualizar(): boolean {\n    if (this.jornada.tipo == this.jornadaPipe.TURNO_PREDEFINIDO_SEMANA) {\n      if (!this.nuevo) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n}\n","<p-dialog id=\"id_popupJornada\" header=\"{{label | translate}}\" [(visible)]=\"mostrarPopup\"\n    [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '60vw'}\" (onHide)=\"ocultar()\"\n    (onShow)=\"mostrar()\" [modal]=\"true\">\n    <p-confirmPopup></p-confirmPopup>\n    <div class=\"contenedor p-fluid grid mt-1\">\n        <!-- IDENTIFICACION -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"hojaVida\" [(ngModel)]=\"jornada.hojaVidaPersona\" [disabled]=\"true\">\n                <label htmlFor=\"hojaVida\">{{'identificacion' | translate}}</label>\n            </span>\n        </div>\n        <!-- NOMBRE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"nombre\" [(ngModel)]=\"jornada.nombresPersona\" [disabled]=\"true\">\n                <label htmlFor=\"nombre\">{{'nombre' | translate}}</label>\n            </span>\n        </div>\n        <!-- ESTADO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!nuevo\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"estado\" [options]=\"mapaAutorizado\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"jornada.autorizado\" [autoDisplayFirst]=\"false\" [disabled]=\"true\">\n                </p-dropdown>\n                <label htmlFor=\"estado\">{{'estado' | translate}}</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-8\" *ngIf=\"jornadaEspecifica != null && !resumen && isCompensada()\">\n            <span class=\"p-float-label\">\n                <p-dropdown *ngIf=\"!resumen && isCompensada() \" inputId=\"jornada\" [options]=\"listaJornadaCompensa\"\n                    optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"jornadaEspecifica.jornada\"\n                    [autoDisplayFirst]=\"false\" [disabled]=\"true\">\n                </p-dropdown>\n                <label *ngIf=\"!resumen && isCompensada() \" htmlFor=\"jornada\">{{'jornada' |\n                    translate}}</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornadaEspecifica != null && !resumen && isCompensada()\">\n            <span class=\"glyphicons glyphicons-disk-saved mt-1\" style='cursor: pointer' title=\"Guardar\"\n                (click)=\"guardarDia()\"></span>\n        </div>\n        <!-- ACCION -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"programacion == null\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoH\" [options]=\"listaTipoHorarioSel\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"tipoHorarioString\" [autoDisplayFirst]=\"false\"\n                    [disabled]=\"tipoHorarioString ? true : false\" appendTo=\"body\" (onChange)=\"seleccionTipo($event)\">\n                </p-dropdown>\n                <label htmlFor=\"tipoH\">{{'accion' | translate}}</label>\n            </span>\n        </div>\n        <!-- TIPO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!!tipoHorarioString && programacion == null\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipo\" [options]=\"listaTipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"jornada.tipo\" [autoDisplayFirst]=\"false\"\n                    [disabled]=\"!nuevo || tipoHorarioString === jornadaPipe.AUSENCIA || resumen\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"tipo\">{{'tipo' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- TIPO TURNO PREDEFINIDO -->\n\n        <!-- HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoHorario\" [options]=\"listaTipoHorario\" optionLabel=\"label\" optionValue=\"value\"\n                    [(ngModel)]=\"jornada.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    (onChange)=\"actualizarPanelHorario($event)\"\n                    [class.ng-dirty]=\"tipoHorarioInvalido || !utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\"\n                    [class.ng-invalid]=\"tipoHorarioInvalido || !utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"tipoHorario\">{{label}} *</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"desdeTU\">{{'desde' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"hastaTU\">{{'hasta' | translate}} *</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo === jornadaPipe.TURNO_PREDEFINIDO &&  tipoHorarioString !== jornadaPipe.AUSENCIA && mostrarBuscadorSitio\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"sitioTUT\" [options]=\"listaSitio\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.sitio\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaSitio.length\">\n                </p-dropdown>\n                <label htmlFor=\"sitioTUT\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo === jornadaPipe.TURNO_PREDEFINIDO &&  tipoHorarioString !== jornadaPipe.AUSENCIA && !mostrarBuscadorSitio  \">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"sitioTUT\" [(ngModel)]=\"jornada.nombreSitio\" [disabled]=\"true\">\n                <label htmlFor=\"sitioTUT\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO && tipoHorarioString == jornadaPipe.AUSENCIA\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"horaInicialausenciaDS\" [(ngModel)]=\"horaInicial\"\n                    [maxlength]=\"horaInicial?.includes(':') ? 5 : 4\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\" />\n                <label htmlFor=\"horaInicialausenciaDS\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO && tipoHorarioString == jornadaPipe.AUSENCIA\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"horaFinalausenciaDS\" [(ngModel)]=\"horaFinal\"\n                    [maxlength]=\"horaFinal?.includes(':') ? 5 : 4\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\" />\n                <label htmlFor=\"horaFinalausenciaDS\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n\n        <!-- TIPO DIARIO -->\n\n        <!-- DIA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"diaDI\">{{'dia' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"minutoInicialDI\" [(ngModel)]=\"horaInicial\" (blur)=\"actualizarTotalHoras()\"\n                    [maxlength]=\"horaInicial?.includes(':') ? 5 : 4\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\" />\n                <label htmlFor=\"minutoInicialDI\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"horaFinalDI\" [(ngModel)]=\"horaFinal\" (blur)=\"actualizarTotalHoras()\"\n                    [maxlength]=\"horaFinal?.includes(':') ? 5 : 4\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\" />\n                <label htmlFor=\"horaFinalDI\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n        <!-- TOTAL HORAS -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"totalHoras\" [(ngModel)]=\"jornada.totalHoras\" [disabled]=\"true\">\n                <label htmlFor=\"totalHoras\">{{'totalhoras' | translate}}</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaDI\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaTipoJornada.length\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaDI\">{{'jornada' | translate}} *</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input *ngIf=\"!mostrarBuscadorSitio\" pInputText id=\"sitioDI\" [(ngModel)]=\"jornada.nombreSitio\"\n                    [disabled]=\"true\">\n                <p-dropdown *ngIf=\"mostrarBuscadorSitio\" inputId=\"sitioDI\" [options]=\"listaSitio\" optionLabel=\"label\"\n                    optionValue=\"key\" [(ngModel)]=\"jornada.sitio\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaSitio.length\">\n                </p-dropdown>\n                <label htmlFor=\"sitioDI\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n        <!-- TIPO HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA && !resumen\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoHorarioDia\" [options]=\"listaTipoHorario\" optionLabel=\"label\"\n                    optionValue=\"value\" [(ngModel)]=\"jornada.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaTipoHorario.length\">\n                </p-dropdown>\n                <label htmlFor=\"tipoHorarioDia\">{{'tipohorario' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- TIPO DIARIO SEMANAL -->\n\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"desdeDS\">{{'fechainicial' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoInicialDS\" [(ngModel)]=\"horaInicial\"\n                    [maxlength]=\"horaInicial?.includes(':') ? 5 : 4\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\" />\n                <label htmlFor=\"minutoInicialDS\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoFinalDS\" [(ngModel)]=\"horaFinal\"\n                    [maxlength]=\"horaFinal?.includes(':') ? 5 : 4\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\" />\n                <label htmlFor=\"minutoFinalDS\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n        <!-- TOTAL HORAS -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"paneltotalhorasdiariosemanal\" [(ngModel)]=\"jornada.totalHoras\" maxlength=\"6\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 6);\" [disabled]=\"true\">\n                <label htmlFor=\"paneltotalhorasdiariosemanal\">{{'totalhoras' | translate}}</label>\n            </span>\n        </div>\n        <!-- DIA SEMANA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-multiSelect [options]=\"diasSemana\" [(ngModel)]=\"dias\" appendTo=\"body\" [showClear]=\"true\"\n                    id=\"diaSemana\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [class]=\"validacionSemana  ? 'ng-invalid ng-dirty' : ''\" (onChange)=\"onDiasChange()\"\n                    [selectedItemsLabel]=\"selectedDiasLabel\">\n                </p-multiSelect>\n                <label htmlFor=\"diaSemanaDS\">{{'semana' | translate}} *</label>\n            </span>\n        </div>\n        <!-- FESTIVO LABORAL -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"festivoDS\" [options]=\"listaSiNo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"jornada.festivo\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.festivo) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.festivo) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"festivoDS\">{{'festivolaboral' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"hastaDS\">{{'hasta' | translate}} *</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaDS\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaTipoJornada.length\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaDS\">{{'jornada' | translate}} *</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input *ngIf=\"!mostrarBuscadorSitio\" pInputText id=\"sitioDS\" [(ngModel)]=\"jornada.nombreSitio\"\n                    [disabled]=\"true\">\n                <p-dropdown *ngIf=\"mostrarBuscadorSitio\" inputId=\"sitioDS\" [options]=\"listaSitio\" optionLabel=\"label\"\n                    optionValue=\"key\" [(ngModel)]=\"jornada.sitio\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaSitio.length\">\n                </p-dropdown>\n                <label htmlFor=\"sitioDS\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- TIPO ROTACION TURNO -->\n\n        <!-- DIAS LABORA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"diasLaboraRT\" [(ngModel)]=\"jornada.diasLaboral\" maxlength=\"10\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 10);\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.diasLaboral) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.diasLaboral) && clickGuardar\">\n                <label htmlFor=\"diasLaboraRT\">{{'dia' | translate}}s {{'laboral' | translate}} *</label>\n            </span>\n        </div>\n        <!-- DIAS LIBRES -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"diasLaboraRT\" [(ngModel)]=\"jornada.diasLibre\" maxlength=\"10\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 10);\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.diasLibre) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.diasLibre) && clickGuardar\">\n                <label htmlFor=\"diasLaboraRT\">{{'dia' | translate}}s {{'libre' | translate}}s *</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"desdeRT\">{{'fechainicial' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"hastaDS\">{{'hasta' | translate}} *</label>\n            </span>\n        </div>\n\n        <!-- TIPO CIRCULAR -->\n\n        <!-- CICLO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"cicloCI\" [(ngModel)]=\"jornada.circuito\" tooltipStyleClass=\"text-xs\"\n                    pTooltip=\"Ej: TTTL (L=Libre, T=Trabaja)\" tooltipEvent=\"focus\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.circuito) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.circuito) && clickGuardar\">\n                <label htmlFor=\"cicloCI\">{{'ciclo' | translate}} *</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"desdeCI\">{{'fechainicial' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoInicialCI\" [(ngModel)]=\"horaInicial\"\n                    [maxlength]=\"horaInicial?.includes(':') ? 5 : 4\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar || formatoEntrada\" />\n                <label htmlFor=\"minutoInicialCI\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoFinalCI\" [(ngModel)]=\"horaFinal\"\n                    [maxlength]=\"horaFinal?.includes(':') ? 5 : 4\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar || formatoSalida\" />\n                <label htmlFor=\"minutoFinalCI\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n        <!-- TOTAL HORAS -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"paneltotalcircular\" [(ngModel)]=\"jornada.totalHoras\" maxlength=\"6\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 6);\" [disabled]=\"true\">\n                <label htmlFor=\"paneltotalcircular\">{{'totalhoras' | translate}}</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"hastaCI\">{{'hasta' | translate}} *</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaCI\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaTipoJornada.length\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaCI\">{{'jornada' | translate}} *</label>\n            </span>\n        </div>\n\n        <!-- TIPO CIRCULAR TURNO -->\n\n        <!-- CICLO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"cicloCT\" [(ngModel)]=\"jornada.circuito\" tooltipStyleClass=\"text-xs\"\n                    pTooltip=\"Ej: TTTL (L=Libre, T=Trabaja)\" tooltipEvent=\"focus\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.circuito) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.circuito) && clickGuardar\">\n                <label htmlFor=\"cicloCT\">{{'ciclo' | translate}} *</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"desdeCT\">{{'fechainicial' | translate}} *</label>\n            </span>\n        </div>\n        <!-- TIPO HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoHorarioCT\" [options]=\"listaTipoHorario\" optionLabel=\"label\" optionValue=\"value\"\n                    [(ngModel)]=\"jornada.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaTipoHorario.length\" (onChange)=\"actualizarPanelHorario($event)\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"tipoHorarioCT\">{{'tipohorario' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\">\n                </p-calendar>\n                <label htmlFor=\"hastaCI\">{{'hasta' | translate}} *</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaCT\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [virtualScrollItemSize]=\"listaTipoJornada.length\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.jornada) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaCT\">{{'jornada' | translate}} *</label>\n            </span>\n        </div>\n\n        <!-- TIPO PREDEFINIDO SEMANA -->\n\n        <!-- TIPO HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO_SEMANA\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoHorarioSemana\" [options]=\"listaTipoHorarioSemana\" optionLabel=\"label\"\n                    optionValue=\"value\" [(ngModel)]=\"jornada.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\"\n                    [disabled]=\"!nuevo\">\n                </p-dropdown>\n                <label htmlFor=\"tipoHorarioSemana\">{{label}} *</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO_SEMANA\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\" [disabled]=\"!nuevo\">\n                </p-calendar>\n                <label htmlFor=\"desdeTS\">{{'desde' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO_SEMANA\">\n            <span class=\"p-float-label\">\n                <p-calendar #calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    (onFocus)=\"onFocus($event)\" [disabled]=\"!nuevo\">\n                </p-calendar>\n                <label htmlFor=\"hastaTS\">{{'hasta' | translate}} *</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo == jornadaPipe.TURNO_PREDEFINIDO_SEMANA && tipoHorarioString != jornadaPipe.AUSENCIA\">\n            <span class=\"p-float-label\">\n                <input *ngIf=\"!mostrarBuscadorSitio && tipoHorarioString != jornadaPipe.AUSENCIA\" pInputText\n                    id=\"sitioTS\" [(ngModel)]=\"jornada.nombreSitio\" [disabled]=\"true\">\n                <p-dropdown *ngIf=\"mostrarBuscadorSitio && tipoHorarioString != jornadaPipe.AUSENCIA\" inputId=\"sitioTS\"\n                    [options]=\"listaSitio\" optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"jornada.sitio\"\n                    [autoDisplayFirst]=\"false\" appendTo=\"body\" [virtualScrollItemSize]=\"listaSitio.length\">\n                </p-dropdown>\n                <label htmlFor=\"sitioTS\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo != null && tipoHorarioString != jornadaPipe.AUSENCIA && jornada.tipo !== jornadaPipe.CIRCULAR_TURNO && jornada.tipo !== jornadaPipe.TURNO_PREDEFINIDO && jornada.tipo !== jornadaPipe.TURNO_PREDEFINIDO_SEMANA && jornada.tipo !== jornadaPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"horarioS\" [(ngModel)]=\"horasString\" [disabled]=\"true\">\n                <label htmlFor=\"horario\">{{'horario' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- ESTACION TRABAJO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"(jornada.tipo === jornadaPipe.TURNO_PREDEFINIDO && tipoHorarioString !== jornadaPipe.AUSENCIA) || jornada.tipo === jornadaPipe.DIARIA || jornada.tipo === jornadaPipe.DIARIA_SEMANAL \">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"estacionTrabajoJor\" [options]=\"listaEstacionTrabajo\" optionLabel=\"label\"\n                    optionValue=\"key\" [(ngModel)]=\"jornada.estacionTrabajo\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [showClear]=\"true\">\n                </p-dropdown>\n                <label htmlFor=\"estacionTrabajoJor\">{{'estaciontrabajo' | translate}} </label>\n            </span>\n        </div>\n    </div>\n    <!-- TABLA TIPOHORARIO -->\n    <div id=\"id_tablaTipoHorario\" class=\"card p-3 mt-3 mb-3\" *ngIf=\"jornada.tipo == jornadaPipe.ROTACION_TURNO\">\n        <div class=\"flex justify-content-between mb-3 align-items-center\">\n            <h5 style=\"margin-bottom: 0px !important;\"><i class='glyphicons glyphicons-calendar'></i>{{'tipohorario' |\n                translate}}</h5>\n            <div class=\"flex justify-content-end\">\n                <!--boton crear-->\n                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                    (click)=\"mostrarNuevo()\" label=\"{{'link_nuevo' | translate}}\" [disabled]=\"habilitaCampo\"\n                    *ngIf=\"contadorHorarios < 4\">\n                </button>\n            </div>\n        </div>\n        <p-table #tablaGeneral [value]=\"listaTurnosRotacion\" dataKey='orden' [showCurrentPageReport]=\"true\"\n            editMode=\"row\" [scrollable]=\"true\" scrollDirection=\"horizontal\" [loading]=\"isLoadingData\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 10%;\">{{'orden' | translate}}</th>\n                    <th style=\"width: 35%;\">{{'dia' | translate}}s {{'trabajado' | translate}}s</th>\n                    <th style=\"width: 30%;\">{{'sitio' | translate}}</th>\n                    <th style=\"width: 15%;\">{{'trabajado' | translate}}s</th>\n                    <th></th>\n                </tr>\n                <tr *ngIf=\"vistaVisualizar == 'nuevo' \" class=\"TablaNuevoRegistro\">\n                    <td style=\"width: 10%;\"></td>\n                    <td style=\"width: 35%;\">\n                        <p-dropdown #idNuevoTipoHorario=\"ngModel\" inputId=\"tipoHorarioTablaRT\"\n                            [options]=\"listaTipoHorario\" optionLabel=\"label\" optionValue=\"value\"\n                            [(ngModel)]=\"diaHorario.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                            [class.ng-dirty]=\"!utilService.validarCampoObligatorio(diaHorario.tipoHorario) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilService.validarCampoObligatorio(diaHorario.tipoHorario) && clickGuardar\">\n                        </p-dropdown>\n                    </td>\n                    <td style=\"width: 30%;\">\n                        <p-dropdown #idNuevoSitio=\"ngModel\" inputId=\"sitioTablaRT\" [options]=\"listaSitio\"\n                            optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"diaHorario.sitio\"\n                            [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                            *ngIf=\"jornada.tipo == jornadaPipe.ROTACION_TURNO && mostrarBuscadorSitio && contadorHorarios < 4\">\n                        </p-dropdown>\n                    </td>\n                    <td style=\"width: 15%;\" *ngIf=\"contadorHorarios != 0\">\n                    <td style=\"width: 15%;\" *ngIf=\"contadorHorarios == 0\">\n                        <input #idNuevoDia=\"ngModel\" pInputText id=\"laboradosTablaRT\" [(ngModel)]=\"diasLaboradosTmp\"\n                            maxlength=\"4\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 4);\"\n                            [class.ng-dirty]=\"!utilService.validarCampoObligatorio(diaHorario.tipoHorario) && clickGuardar && contadorHorarios === 0\"\n                            [class.ng-invalid]=\"!utilService.validarCampoObligatorio(diaHorario.tipoHorario) && clickGuardar && contadorHorarios === 0\">\n                    </td>\n                    <!-- BOTONES NUEVO REGISTRO -->\n                    <td>\n                        <div class=\"flex justify-content-end\">\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only ng-star-inserted\"\n                                (click)=\"guardarHorario(diaHorario)\"></button>\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\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>\n                        </div>\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-horario let-editing=\"editing\" let-ri=\"rowIndex\">\n                <tr [pEditableRow]=\"horario\">\n                    <td style=\"width: 10%;\">\n                        {{horario.orden}}\n                    </td>\n                    <td style=\"width: 35%;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <p-dropdown inputId=\"tipoHorarioTablaRTRow\" [options]=\"listaTipoHorario\"\n                                    optionLabel=\"label\" optionValue=\"value\" [(ngModel)]=\"horario.tipoHorario\"\n                                    [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horario.tipoHorario) && clickGuardar\"\n                                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horario.tipoHorario) && clickGuardar\">\n                                </p-dropdown>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{horario.descripcionTipoHorario}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td style=\"width: 30%;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <p-dropdown inputId=\"sitioTablaRTRow\" [options]=\"listaSitio\" optionLabel=\"label\"\n                                    optionValue=\"key\" [(ngModel)]=\"horario.sitio\" [autoDisplayFirst]=\"false\"\n                                    appendTo=\"body\"\n                                    *ngIf=\"jornada.tipo == jornadaPipe.ROTACION_TURNO && mostrarBuscadorSitio\">\n                                </p-dropdown>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{horario.descripcionSitio}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td style=\"width: 15%;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <input pInputText id=\"laboradosTablaRow\" [(ngModel)]=\"horario.laborados\" maxlength=\"4\"\n                                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 4);\">\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                <span *ngIf=\"horario.primerRegistro\">{{horario.laborados}}</span>\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td>\n                        <div class=\"flex justify-content-end\">\n                            <!-- CHECK GUARDAR -->\n                            <button *ngIf=\"editing && controlFuncionalidad.getControlFuncionalidad('jorn:guardar')\"\n                                pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                                (click)=\"actualizarHorario(horario)\"\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>\n                            <!-- CANCELAR -->\n                            <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n                                (click)=\"cancelarEdicion(horario)\"\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>\n                            <!-- EDITAR -->\n                            <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                                (click)=\"iniciarEdicion()\" icon=\"glyphicons glyphicons-pencil\"\n                                class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                [disabled]=\"habilitaCampo\"></button>\n                            <!-- ELIMINAR -->\n                            <button *ngIf=\"!editing && controlFuncionalidad.getControlFuncionalidad('jorn:eliminar')\"\n                                pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                (click)=\"showEliminarHorarioConfirmDialog($event, horario)\"\n                                class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                [disabled]=\"habilitaCampo\"></button>\n                        </div>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n\n    <!-- TABLA HORAS LIBRES -->\n    <div id=\"id_tablaLibreHorario\" class=\"card p-3 mt-3 mb-3\"\n        *ngIf=\"!nuevo  && tipoHorarioString != jornadaPipe.AUSENCIA && !resumen\">\n        <div class=\"flex justify-content-between mb-3 align-items-center\">\n            <h5 style=\"margin-bottom: 0px !important;\"><i class='glyphicons glyphicons-stopwatch'></i>{{'hora' |\n                translate}}s {{'libre' | translate}}s</h5>\n            <div class=\"flex justify-content-end\">\n                <!--boton crear-->\n                <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoHora()\"\n                    label=\"{{'link_nuevo' | translate}}\" [disabled]=\"habilitaCampo\">\n                </button>\n            </div>\n        </div>\n        <p-table [value]=\"listaHorarioLibre\" dataKey=\"rowIndex\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n            [scrollable]=\"true\" scrollDirection=\"horizontal\" [rows]=\"paginator.rows\"\n            [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\"\n            (onLazyLoad)=\"cargaHoraLibre($event)\" [loading]=\"isLoadingData\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"width: 30%;\">{{'tipotiempolibre' | translate}}</th>\n                    <th style=\"width: 30%;\">{{'hora' | translate}}s</th>\n                    <th style=\"width: 30%;\">{{'tiporeceso' | translate}}</th>\n                    <th></th>\n                </tr>\n                <tr *ngIf=\"vistaVisualizar == 'nuevaHora' \" class=\"TablaNuevoRegistro\">\n                    <td style=\"width: 30%;\">\n                        <p-dropdown #idNuevoTipoLibre=\"ngModel\" inputId=\"tipoHorarioTablaRT\"\n                            [options]=\"listaTipoTiempoLibre\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                            [(ngModel)]=\"nuevoHoraLibre.tipoHora\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                            [class.ng-dirty]=\"!utilService.validarCampoObligatorio(nuevoHoraLibre.tipoHora) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilService.validarCampoObligatorio(nuevoHoraLibre.tipoHora) && clickGuardar\">\n                        </p-dropdown>\n                    </td>\n                    <td style=\"width: 30%;\" *ngIf=\"nuevoHoraLibre.tipoHora == null\"></td>\n                    <td style=\"width: 30%;\" *ngIf=\"nuevoHoraLibre.tipoHora == 'H'\">\n                        <input style=\"width: 30%\" pInputText #idNuevoHorainicio=\"ngModel\" id=\"horaInicialausenciaDS\"\n                            [(ngModel)]=\"newHoraLibreInicial\" [maxlength]=\"newHoraLibreInicial?.includes(':') ? 5 : 4\"\n                            (blur)=\"formatoHoraLibre()\"\n                            [class.ng-dirty]=\"!utilService.validarCampoObligatorio(newHoraLibreInicial) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilService.validarCampoObligatorio(newHoraLibreInicial) && clickGuardar\" />\n                        - <input style=\"width: 30%\" pInputText #idNuevoHoraFin id=\"horaInicialausenciaDS\"\n                            [(ngModel)]=\"newHoraLibreFinal\" [maxlength]=\"newHoraLibreFinal?.includes(':') ? 5 : 4\"\n                            (blur)=\"formatoHoraLibre()\"\n                            [class.ng-dirty]=\"!utilService.validarCampoObligatorio(newHoraLibreFinal) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilService.validarCampoObligatorio(newHoraLibreFinal) && clickGuardar\" />\n                    </td>\n                    <td style=\"width: 30%;\" *ngIf=\"nuevoHoraLibre.tipoHora == 'T'\">\n                        <input type=\"text\" pInputText #idNuevoHoraTotal=\"ngModel\"\n                            [(ngModel)]=\"nuevoHoraLibre.horasTotal\" maxlength=\"3\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 3);\"\n                            [class.ng-dirty]=\"!utilService.validarCampoObligatorio(nuevoHoraLibre.horasTotal) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilService.validarCampoObligatorio(nuevoHoraLibre.horasTotal) && clickGuardar\">\n                    </td>\n                    <td style=\"width: 100%;\">\n                        <p-dropdown #idNuevoTipoReceso=\"ngModel\" inputId=\"tipoHorarioTablaRT\"\n                            [options]=\"listaTipoReceso\" optionLabel=\"label\" optionValue=\"key\"\n                            [(ngModel)]=\"nuevoHoraLibre.tipoReceso\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                            [class.ng-dirty]=\"!utilService.validarCampoObligatorio(nuevoHoraLibre.tipoReceso) && clickGuardar\"\n                            [class.ng-invalid]=\"!utilService.validarCampoObligatorio(nuevoHoraLibre.tipoReceso) && clickGuardar\">\n                        </p-dropdown>\n                    </td>\n                    <!-- BOTONES NUEVO REGISTRO -->\n                    <td>\n                        <div class=\"flex justify-content-end\">\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only ng-star-inserted\"\n                                (click)=\"guardarHoraLibre(nuevoHoraLibre)\"></button>\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\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>\n                        </div>\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-horario let-editing=\"editing\" let-ri=\"rowIndex\">\n                <tr [pEditableRow]=\"horario\">\n                    <td style=\"width: 30%;\">{{mapaTipoHoraLibre(horario.tipoHora)}}</td>\n                    <td style=\"width: 30%;\" *ngIf=\"horario.tipoHora == 'H'\">{{horario.horaInicio | date:'HH:mm' }} -\n                        {{horario.horaFin | date:'HH:mm' }}</td>\n                    <td style=\"width: 30%;\" *ngIf=\"horario.tipoHora == 'T'\">{{horario.horasTotal}}</td>\n                    <td style=\"width: 30%;\">{{mapaTipoReceso(horario.tipoReceso)}}</td>\n                    <td>\n                        <div class=\"flex justify-content-end\">\n                            <!-- ELIMINAR -->\n                            <button *ngIf=\"!editing && controlFuncionalidad.getControlFuncionalidad('jorn:eliminar')\"\n                                pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                                (click)=\"showEliminarHorarioLibreConfirmDialog($event, horario)\"\n                                class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"\n                                [disabled]=\"habilitaCampo\"></button>\n                        </div>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n    <div class=\"flex justify-content-end mb-3\" *ngIf=\"jornada.tipo != null\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"nuevo && !autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:guardar')\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"!nuevo && !autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:guardar') && isHabilitaActualizar()\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\"\n            *ngIf=\"!nuevo && !autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:eliminar')\"\n            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n            (click)=\"showEliminarConfirmDialog()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:autorizar')\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_autorizar' | translate}}\" (click)=\"autorizar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:autorizar')\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_noautorizar' | translate}}\" (click)=\"noAutorizar()\">\n        </button>\n    </div>\n</p-dialog>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralModel, ToastService, cargarmapasGlobal, AuthService, CargarControlFuncionalidadService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { HoraLibreJornadaModel } from '../../../controltiempos/models/HoraLibreJornadaModel';\nimport { JornadaModel } from '../../../controltiempos/models/JornadaModel';\nimport { PersonaModel } from '../../../controltiempos/models/PersonaModel';\nimport { jornadaConsPipe } from '../../../controltiempos/pipes/JornadaCons.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { TipoHorarioModel } from '../../../controltiempos/models/TipoHorarioModel';\nimport { PersonaConsPipe } from '../../../controltiempos/pipes/personaCons.pipe';\nimport { SitioModel } from '../../../controltiempos/models/SitioModel';\nimport { PipeJornadaPipe } from '../../../compensacion/pipes/pipe-jornada.pipe';\nimport { ControlTiemposService } from '../../../controltiempos/services/controlTiempos.service';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { DiaHorarioWrapper } from '../../../controltiempos/models/DiaHorarioWrapper';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { FechaUtilsService } from 'general-library-union';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n  selector: 'app-popup-jornada-por-dia',\n  templateUrl: './popup-jornada-por-dia.component.html',\n  styleUrls: ['./popup-jornada-por-dia.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, DialogModule, NgIf, DropdownModule, FormsModule, InputTextModule, CalendarModule, MultiSelectModule, TooltipModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule],\n  providers: [DatePipe]\n})\nexport class PopupJornadaPorDiaComponent implements OnInit {\n\n  @Output() public regresar = new EventEmitter();\n  @Output() public seleccionar: EventEmitter<any> = new EventEmitter();\n\n  jornada: JornadaModel = new JornadaModel();\n  persona: PersonaModel = new PersonaModel();\n  horaInicial: any = null;\n  horaFinal: any = null;\n  horaLibreInicial: any = null;\n  horaLibreFinal: any = null;\n  newHoraLibreInicial: any;\n  newHoraLibreFinal: any;\n  mostrarBuscadorSitio: boolean;\n  nuevo: boolean;\n  mostrarTiempoLibre: boolean;\n  formatoEntrada: boolean = false;\n  formatoSalida: boolean = false;\n  validacionSemana: boolean = false;\n  autorizacion: boolean = false;\n  mostrarPopup: boolean;\n  datoObligatorio: boolean = false;\n  contadorHorarios: number = 0;\n  indexAEliminar: number = 0;\n  diaHorario: DiaHorarioWrapper = new DiaHorarioWrapper;\n  dias = [];\n  listaTipo = [];\n  listaTipoHorario = [];\n  listaTipoJornada = [];\n  listaSiNo = [];\n  diasSemana = [];\n  listaTipoReceso = [];\n  listaTipoTiempoLibre = [];\n  listaTipoHorarioSel = [];\n  listadoTipo = [];\n  listaSitio = [];\n  listaTurnosRotacion = [];\n  listaHorarioLibre: HoraLibreJornadaModel[] = [];\n  label: string = null;\n  mapaAutorizado = [];\n  mapaTiposPorDia = [];\n  tipoHorarioString: string;\n  modo: string = '';\n  organizacion: number;\n  vistaVisualizar: string = ''; ç\n  nuevoHorario: boolean = false;\n  nuevoHoraLibre = new HoraLibreJornadaModel();\n  clickGuardar: boolean = false;\n  edicionDatosOriginales: { [key: string]: any } = {};\n  paginator = {\n    rows: 4,\n    totalRecords: 0,\n  };\n  horasString: string = null;\n\n  constructor(\n    private generalService: GeneralService,\n    public jornadaConsPipe: jornadaConsPipe,\n    private authService: AuthService,\n    private cargarMapas: cargarmapasGlobal,\n    private generalPipe: GeneralPipe,\n    private personaPipe: PersonaConsPipe,\n    public jornadapipe: PipeJornadaPipe,\n    private controlTiempoService: ControlTiemposService,\n    private toastService: ToastService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private confirmationService: ConfirmationService,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    public utilService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.jornada = new JornadaModel();\n    this.inicializar();\n  }\n\n  async inicializar() {\n    let consultaEmpresa = await this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, { empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise();\n    this.modo = consultaEmpresa.modoCompensacion\n    this.organizacion = consultaEmpresa.organizacion;\n    this.diaHorario = new DiaHorarioWrapper();\n    this.listaTurnosRotacion = [];\n    this.contadorHorarios = 0;\n    this.label = this.jornadaConsPipe.HORARIO_DESC;\n    this.mapaAutorizado = this.jornadaConsPipe.MAPA_AUTORIZACION;\n    this.mapaTiposPorDia = this.jornadaConsPipe.mapaTiposPorDia;\n    this.tipoHorarioString = \"\";\n    this.listaTipoHorarioSel = this.jornadaConsPipe.mapaTipoHorario;\n    this.listaTipo = this.jornadaConsPipe.mapaTipos;\n    this.listaSiNo = this.generalPipe.LISTA_SELECIONAR_MAP;\n    this.listaTipoTiempoLibre = this.jornadaConsPipe.mapaTipoReceso;\n    this.listadoTipo = this.jornadaConsPipe.mapaTipoJornada;\n    this.clickGuardar = false;\n    try {\n      this.listaTipoJornada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'TIPJO', modoParametro: this.modo, temporal: this.jornadaConsPipe.FRANJA_TRABAJO }));\n      this.listaTipoReceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'TIPRE' }));\n    } catch (error) {\n    }\n  }\n\n  async cargarListas() {\n    try {\n      this.listaTipoHorario = [];\n      let mapaRetorna: Map<string, string> = new Map<string, string>();\n      let th = new TipoHorarioModel();\n      th.empresa = this.persona.empresa;\n      th.organizacion = this.organizacion\n      th.tipoFiltro = this.tipoHorarioString;\n      let listaTipoHorarioTmp = await this.generalService.queryForList(new GeneralModel('TipoHorarioDTO', null, false, th)).toPromise();\n      for (const tipoHorarioDTO of listaTipoHorarioTmp) {\n        if (tipoHorarioDTO.tipo != this.jornadaConsPipe.TURNO) {\n          continue;\n        }\n        mapaRetorna.set(tipoHorarioDTO.llaveTabla, tipoHorarioDTO.descripcion);\n      }\n      this.listaTipoHorario = Array.from(mapaRetorna, ([value, label]) => ({ value, label }));\n\n      this.mostrarBuscadorSitio = this.personaPipe.UNICO == this.persona.tipoSitio ? false : true;\n      this.diaHorario.sitio = this.persona.sitio;\n      if (this.persona.tipoSitio != null) {\n        if (this.personaPipe.MULTIPLE == this.persona.tipoSitio.trim()) {\n          this.mostrarBuscadorSitio = true;\n          this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioPersonaDTO', 'SitioSara.consultarSitioPersona', false, { persona: this.persona.llaveTabla, login: this.authService.getTokenKey('usuario') }));\n        } else if (this.personaPipe.ALTERNO == this.persona.tipoSitio) {\n          this.listaSitio = [];\n          this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioSaraDTO', null, false, { login: this.authService.getTokenKey('usuario') }));\n        }\n      }\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  cargarListaDiasSemana() {\n    this.diasSemana = [];\n    this.diasSemana = this.jornadapipe.MAPASEMANA3;\n    this.diasSemana.sort((a, b) => a.nombre.localeCompare(b.nombre));\n  }\n\n  async actualizarTotalHoras() {\n    if (this.horaInicial === null || this.horaFinal === null) {\n      return;\n    }\n    try {\n      const fechaActual = new Date();\n      const [horaInicial, minutoInicial] = this.horaInicial.split(':');\n      const [horaFinal, minutoFinal] = this.horaFinal.split(':');\n      const fechaInicial = new Date(fechaActual.setHours(parseInt(horaInicial, 10), parseInt(minutoInicial, 10), 0, 0));\n      const fechaFinal = new Date(fechaActual.setHours(parseInt(horaFinal, 10), parseInt(minutoFinal, 10), 0, 0));\n      let consulta = await this.fechaUtils.calcularHoras({ fechaBaseIni: this.datePipe.transform(fechaInicial, 'yyyy-MM-dd HH:mm:ss.S'), fechaBaseFin: this.datePipe.transform(fechaFinal, 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n      this.jornada.totalHoras = consulta;\n      this.getHorasString();\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  async guardar() {\n    try {\n      this.clickGuardar = false;\n      this.validacionSemana = false;\n      let mensajeObligatorio: string = 'Faltan campos obligatorios';\n      if (this.dias == null || (this.dias != null && this.dias.length <= 0 && this.jornada.tipo == this.jornadaConsPipe.DIARIA_SEMANAL)) {\n        this.toastService.showError('Seleccione un día de la semana');\n        this.validacionSemana = true;\n        return;\n      }\n      if (this.dias && this.dias.length > 0) {\n        this.jornada.marcacionSemana = '[' + this.dias.join(', ') + ']';\n      } else {\n        this.jornada.marcacionSemana = null;\n      }\n      this.jornada.listaHorarios = this.setHorario();\n      this.jornada.serie = (this.jornadaConsPipe.DIARIA == this.jornada.tipo ? Constantes.CONSTANTE_NO : Constantes.CONSTANTE_SI);\n      if (this.jornada.tipo == this.jornadaConsPipe.TURNO_PREDEFINIDO || this.jornada.tipo === this.jornadaConsPipe.ROTACION_TURNO || this.jornada.tipo === this.jornadaConsPipe.CIRCULAR) {\n        if (!this.jornada.desde && !this.jornada.hasta) {\n          this.toastService.showError(mensajeObligatorio);\n          this.clickGuardar = true;\n          return;\n        }\n      }\n      if (this.jornada.tipo === this.jornadaConsPipe.DIARIA || this.jornada.tipo === this.jornadaConsPipe.DIARIA_SEMANAL || this.jornada.tipo === this.jornadaConsPipe.CIRCULAR) {\n        this.formatoEntrada = false;\n        this.formatoSalida = false;\n        if (this.horaInicial == null || this.horaFinal == null) {\n          this.toastService.showError(mensajeObligatorio);\n          this.clickGuardar = true\n          return;\n        }\n        if (!this.horaInicial.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n          this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n          this.formatoEntrada = true;\n          return;\n        }\n        if (!this.horaFinal.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n          this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n          this.formatoSalida = true;\n          return;\n        }\n      }\n      if (this.jornada.tipo === this.jornadaConsPipe.TURNO_PREDEFINIDO) {\n        if (!this.jornada.tipoHorario) {\n          this.toastService.showError(mensajeObligatorio);\n          this.clickGuardar = true\n          return;\n        }\n      }\n      let fechaBase: Date = new Date(this.jornada.desde);\n      let fechaFinal: Date = new Date(this.jornada.hasta);\n\n      while (fechaBase.getTime() <= fechaFinal.getTime()) {\n        let jornadaTmp: JornadaModel = { ...this.jornada };\n        jornadaTmp.hasta = fechaBase;\n        jornadaTmp.desde = fechaBase;\n        jornadaTmp.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        await this.controlTiempoService.guardarJornada({\n          jornada: jornadaTmp,\n          nuevo: this.nuevo\n        }).toPromise();\n        fechaBase.setDate(fechaBase.getDate() + 1);\n      }\n      this.toastService.showSuccess(this.generalPipe.MENSAJE_GUARDAR)\n\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n    this.nuevo = false;\n    this.ocultar();\n  }\n\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async eliminarRegistro() {\n    try {\n      await this.controlTiempoService.eliminarJornada({ jornada: this.jornada }).toPromise();\n      this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n      this.ocultar();\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  async nuevoRegistro(persona: PersonaModel) {\n    this.inicializar();\n    try {\n      this.autorizacion = false;\n      this.horaInicial = null;\n      this.horaFinal = null;\n      this.persona = persona;\n      this.jornada = new JornadaModel();\n      this.jornada.persona = persona.llaveTabla;\n      this.jornada.paisEmpresa = persona.pais;\n      this.jornada.hojaVidaPersona = persona.hojaVida;\n      this.jornada.nombresPersona = persona.nombresPersona;\n      if (this.persona.sitio != null) {\n        let sitio = new SitioModel();\n        sitio.llaveTabla = this.persona.sitio\n        sitio = await this.generalService.queryForObject(new GeneralModel('SitioSaraDTO', null, false, sitio)).toPromise();\n        this.setSitio(sitio);\n      }\n      if (this.isTipoFijo()) {\n        this.tipoHorarioString = this.jornadaConsPipe.AUSENCIA;\n        this.jornada.tipo = this.jornadaConsPipe.TURNO_PREDEFINIDO;\n        this.label = 'Novedad';\n        this.cargarListas();\n        this.cargarListaDiasSemana();\n      } else {\n        this.tipoHorarioString = this.jornadaConsPipe.HORARIO_DESC;\n        this.jornada.tipo = this.jornadaConsPipe.TURNO_PREDEFINIDO;\n        this.label = 'Tipo de Horario';\n        this.cargarListas();\n        this.cargarListaDiasSemana();\n      }\n    } catch (error) {\n    }\n    this.nuevo = true;\n    this.mostrarPopup = true;\n  }\n\n  async ver(jornada: JornadaModel, autorizacion: boolean) {\n    this.inicializar();\n    this.autorizacion = autorizacion;\n    this.jornada = jornada;\n    this.horaInicial = null;\n    this.horaFinal = null;\n    this.cargarListaDiasSemana();\n    try {\n      this.label = this.jornadaConsPipe.HORARIO_DESC;\n      this.tipoHorarioString = this.jornadaConsPipe.HORARIO;\n      this.persona = new PersonaModel();\n      this.persona.llaveTabla = jornada.persona;\n      this.persona = await this.generalService.queryForObject(new GeneralModel('PersonaDTO', null, false, this.persona)).toPromise();\n      this.jornada.desde = new Date(this.jornada.desde);\n      this.jornada.hasta = new Date(this.jornada.hasta);\n      this.jornada.horaInicial = new Date(this.jornada.horaInicial);\n      this.jornada.horaFinal = new Date(this.jornada.horaFinal);\n      if (this.jornada.horaInicial != null && this.jornada.horaFinal != null) {\n        const horasInicial = this.jornada.horaInicial.getHours();\n        const minutosInicial = this.jornada.horaInicial.getMinutes();\n        const horasFinal = this.jornada.horaFinal.getHours();\n        const minutosFinal = this.jornada.horaFinal.getMinutes();\n        this.horaInicial = `${horasInicial < 10 ? '0' : ''}${horasInicial}:${minutosInicial < 10 ? '0' : ''}${minutosInicial}`;\n        this.horaFinal = `${horasFinal < 10 ? '0' : ''}${horasFinal}:${minutosFinal < 10 ? '0' : ''}${minutosFinal}`;\n        let consulta = await this.fechaUtils.calcularHoras({ fechaBaseIni: this.datePipe.transform(this.jornada.horaInicial, 'yyyy-MM-dd HH:mm:ss.S'), fechaBaseFin: this.datePipe.transform(this.jornada.horaFinal, 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n        this.jornada.totalHoras = consulta;\n        this.getHorasString();\n      }\n      this.nuevo = false;\n      if (this.jornadaConsPipe.ROTACION_TURNO == this.jornada.tipo) {\n        this.cargarListaHorarios();\n      }\n      if (this.jornadaConsPipe.DIARIA_SEMANAL == this.jornada.tipo) {\n        this.cargarDiasSemana();\n      }\n      if (this.jornada.tipo == this.jornadaConsPipe.TURNO_PREDEFINIDO) {\n        let tipoHorario = new TipoHorarioModel();\n        tipoHorario.llaveTabla = this.jornada.tipoHorario;\n        tipoHorario = await this.generalService.queryForObject(new GeneralModel('TipoHorarioDTO', null, false, tipoHorario)).toPromise();\n        if (tipoHorario != null && tipoHorario.tipo == this.jornadaConsPipe.AUSENCIA) {\n          this.label = this.jornadaConsPipe.AUSENCIA_DESC;\n          this.tipoHorarioString = this.jornadaConsPipe.AUSENCIA;\n        }\n      }\n      this.cargarListas();\n      this.cargarListadosTiempoLibre();\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n    this.mostrarPopup = true;\n  }\n\n  cargarDiasSemana() {\n    if (this.jornada.marcacionSemana != null) {\n      let dias: string = this.jornada.marcacionSemana;\n      dias = dias.replace(\"[\", \"\");\n      dias = dias.replace(\"]\", \"\");\n      let diasString: string[] = dias.split(\",\");\n      this.dias = diasString;\n      for (let index = 0; index < diasString.length; index++) {\n        for (const dia of this.diasSemana) {\n          if (dia.label == this.dias[index].trim()) {\n            this.dias[index] = dia.value.toString();\n            break;\n          }\n        }\n      }\n    }\n  }\n\n  async cargarListaHorarios() {\n    this.listaTurnosRotacion = [];\n    this.listaTurnosRotacion = await this.controlTiempoService.cargarListaHorarios({ jornada: this.jornada }).toPromise();\n  }\n\n  seleccionTipo(dato) {\n    this.label = 'Tipo de Horario';\n    this.tipoHorarioString = dato.value;\n    this.cargarListas();\n    this.cargarListaDiasSemana();\n  }\n\n  autorizar() {\n    try {\n      this.generalService.update(new GeneralModel('JornadaDTO', 'Jornada.autorizarJornada', false, this.jornada)).subscribe((data) => {\n        if (data == 1) {\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n          this.ocultar();\n        } else {\n          this.toastService.showError('Error en el método de actualizar recurso');\n        };\n      });\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  noAutorizar() {\n    try {\n      this.generalService.update(new GeneralModel('JornadaDTO', 'Jornada.noAutorizarJornada', false, this.jornada)).subscribe((data) => {\n        if (data == 1) {\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n          this.ocultar();\n        } else {\n          this.toastService.showError('Error en el método de actualizar recurso');\n        };\n      });\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n\n\n  async cargaHoraLibre(event) {\n    try {\n      let objetoFiltro = {\n        paginacionRegistroInicial: event.first,\n        paginacionRegistroFinal: event.rows,\n        jornada: this.jornada.llaveTabla\n      };\n\n      this.generalService.queryForList(new GeneralModel('HoraLibreJornadaDTO', null, false, objetoFiltro)).subscribe(data => {\n        this.listaHorarioLibre = data;\n        this.listaHorarioLibre.forEach(data => {\n          data.horaInicio = data.horaInicio ? new Date(data.horaInicio) : null;\n          data.horaFin = data.horaFin ? new Date(data.horaFin) : null;\n          if (data.horaInicio != null && data.horaFin != null) {\n            const horasInicial = data.horaInicio.getHours();\n            const minutosInicial = data.horaInicio.getMinutes();\n            const horasFinal = data.horaFin.getHours();\n            const minutosFinal = data.horaFin.getMinutes();\n            this.horaLibreInicial = `${horasInicial < 10 ? '0' : ''}${horasInicial}:${minutosInicial < 10 ? '0' : ''}${minutosInicial}`;\n            this.horaLibreFinal = `${horasFinal < 10 ? '0' : ''}${horasFinal}:${minutosFinal < 10 ? '0' : ''}${minutosFinal}`;\n          }\n        })\n        this.generalService.cantidadRegistros(new GeneralModel('HoraLibreJornadaDTO', null, false, objetoFiltro)).subscribe(data => {\n          this.paginator.totalRecords = data;\n        })\n      })\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  iniciarEdicion(data: any) {\n    this.edicionDatosOriginales[data.index] = { ...data }\n  }\n\n  cancelarEdicion(data: any) {\n    if (this.edicionDatosOriginales[data.lindex]) {\n      Object.assign(data, this.edicionDatosOriginales[data.index]);\n    }\n  }\n\n  mostrarNuevo() {\n    this.diaHorario = new DiaHorarioWrapper();\n    this.diaHorario.sitio = this.persona.sitio;\n    this.vistaVisualizar = 'nuevo'\n  }\n\n  cancelarNuevo() {\n    this.diaHorario = new DiaHorarioWrapper();\n    this.vistaVisualizar = ''\n  }\n\n  public setHorario() {\n    let listaMostrar = [];\n    for (let index = 0; index < this.listaTurnosRotacion['list']?.length; index++) {\n      if (this.listaTurnosRotacion['list'][index] != null) {\n        listaMostrar.push(this.listaTurnosRotacion['list'][index])\n      }\n    }\n    return listaMostrar;\n  }\n\n  guardarHorario(diaHorarioEvent) {\n    try {\n      if (this.listaTurnosRotacion.length == 4) {\n        this.toastService.showError('L' + Constantes.I_TILDE_MIN + 'mite de turnos alcanzado');\n        return;\n      }\n      this.controlTiempoService.guardarHorario({\n        diaHorario: diaHorarioEvent,\n        contadorHorarios: ++this.contadorHorarios,\n        jornada: this.jornada,\n        nuevoHorario: this.nuevoHorario\n      }).subscribe({\n        next: (data) => {\n          this.cargarListaHorarios();\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n          this.nuevoHorario = data.nuevo;\n          this.diaHorario = new DiaHorarioWrapper;\n          this.diaHorario.sitio = this.persona.sitio;\n        },\n        error: (err) => {\n          this.toastService.showError(err.error.mensajeEtiqueta)\n        }\n      });\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  showEliminarHorarioConfirmDialog(event: Event, dato: DiaHorarioWrapper): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.horarioEliminar(dato);\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async horarioEliminar(horarioEliminarEvent) {\n    try {\n      // listaTurnosRotacion.quitarTurno(indexAEliminar + 1);\n      // contadorHorarios--;\n      await this.controlTiempoService.eliminarHorario({\n        jornada: this.jornada,\n        listaTurno: this.listaTurnosRotacion,\n        horarioEliminar: horarioEliminarEvent,\n      }).subscribe({\n        next: (data) => {\n          if (data['mensaje'] == null) {\n            this.toastService.showError('No se puede eliminar, debe haber al menos un horario configurado.');\n            return;\n          } else {\n            this.jornada.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n            this.jornada = data['mensaje'];\n            this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n            this.contadorHorarios--;\n            this.cargarListaHorarios();\n            this.ocultar();\n          }\n        },\n        error: (err) => {\n          this.toastService.showError(err.error.mensajeEtiqueta)\n        }\n      });\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  actualizarHorario(horario) {\n    try {\n      if (this.listaTurnosRotacion.length == 4) {\n        this.toastService.showError('L' + Constantes.I_TILDE_MIN + 'mite de turnos alcanzado');\n        return;\n      }\n      if (horario.orden == 1) {\n        this.jornada.laborados == horario.laborados\n      }\n\n      this.controlTiempoService.actualizarHorario({\n        dia: horario,\n        jornada: this.jornada\n      }).subscribe({\n        next: (data) => {\n          this.cargarListaHorarios();\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n        },\n        error: (err) => {\n          this.toastService.showError(err.error.mensajeEtiqueta)\n        }\n      });\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n    this.nuevoHorario = true;\n  }\n\n  nuevoHora() {\n    this.nuevoHoraLibre = new HoraLibreJornadaModel();\n    this.vistaVisualizar = 'nuevo'\n  }\n\n  guardarHoraLibre(horaLibre) {\n    if (horaLibre.tipoHora == 'H') {\n      if (!this.newHoraLibreInicial.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        return;\n      }\n      if (!this.newHoraLibreFinal.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        return;\n      }\n      const fechaActual = new Date();\n      const [horaInicial, minutoInicial] = this.newHoraLibreInicial.split(':');\n      horaLibre.horaInicio = new Date(fechaActual.setHours(parseInt(horaInicial, 10), parseInt(minutoInicial, 10), 0, 0));\n      const [horaFinal, minutoFinal] = this.newHoraLibreFinal.split(':');\n      horaLibre.horaFin = new Date(fechaActual.setHours(parseInt(horaFinal, 10), parseInt(minutoFinal, 10), 0, 0));\n    }\n    horaLibre.jornada = this.jornada.llaveTabla;\n    this.generalService.crearRegistro(new GeneralModel('HoraLibreJornadaDTO', null, false, horaLibre)).subscribe({\n      next: (data) => {\n        if (data != null) {\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n          this.cargaHoraLibre({ first: 0, rows: 10 });\n        } else {\n          this.toastService.showError('Error en el método de agregar recurso');\n        }\n      },\n      error: (err) => {\n        var data = JSON.stringify(err.error.mensajeEtiqueta);\n        this.toastService.showError('Error al ingresar en el servicio');\n      },\n    });\n    this.vistaVisualizar = '';\n    this.nuevoHoraLibre = new HoraLibreJornadaModel();\n  }\n\n  showEliminarHorarioLibreConfirmDialog(event: Event, dato: HoraLibreJornadaModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarHoraLibre(dato);\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  eliminarHoraLibre(horaLibre) {\n    try {\n      this.generalService.delete(new GeneralModel('HoraLibreJornadaDTO', null, false, horaLibre)).subscribe({\n        next: (data) => {\n          if (data == 1) {\n            this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n            this.cargaHoraLibre({ first: 0, rows: 10 });\n          } else {\n            this.toastService.showError('Error en el método de eliminar recurso');\n          }\n        },\n        error: (err) => {\n          this.toastService.showError('No es posible eliminar el registro, verifique que el registro no esta asociado en otros procesos');\n        },\n      });\n\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n\n  public mapaTipoHoraLibre(valor): any {\n    let result;\n    this.listaTipoTiempoLibre.forEach(data => { if (data.codigo === valor) { result = data.nombre } });\n    return result;\n  }\n\n  public mapaTipoReceso(valor): any {\n    let result;\n    this.listaTipoReceso.forEach(data => { if (data.key === valor) { result = data.label } });\n    return result;\n  }\n\n  public async cargarListadosTiempoLibre() {\n    try {\n      this.listaTipoTiempoLibre = this.jornadaConsPipe.mapaTipoReceso;\n      this.listaTipoTiempoLibre.sort((a, b) => a.nombre.localeCompare(b.nombre));\n      this.listaTipoReceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'TIPRE' }));\n\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  setSitio(sitio: SitioModel) {\n    this.jornada.sitio = sitio.llaveTabla;\n    this.jornada.nombreSitio = sitio.descripcion;\n  }\n\n  isTipoFijo(): boolean {\n    return this.personaPipe.FIJO === this.persona.tipo\n  }\n\n\n  public ocultar() {\n    this.mostrarPopup = false;\n    this.seleccionPersona(this.persona);\n    this.regresar.emit();\n  }\n\n  seleccionPersona(persona) {\n    this.seleccionar.emit(persona)\n  }\n\n  validarEntrada(event: KeyboardEvent) {\n    const input = event.key;\n    const allowedChars = '0123456789:';\n    const inputValue = (event.target as HTMLInputElement).value + input;\n\n    if (inputValue.length > 5) {\n      event.preventDefault();\n    }\n\n    if (allowedChars.indexOf(input) === -1) {\n      event.preventDefault();\n    }\n\n    if (inputValue.length === 2 && inputValue.indexOf(':') === -1) {\n      event.target['value'] = inputValue + ':';\n      event.preventDefault();\n    }\n\n    if (inputValue.length === 5) {\n      const [hours, minutes] = inputValue.split(':');\n      const validHours = Number(hours) >= 0 && Number(hours) <= 24;\n      const validMinutes = Number(minutes) >= 0 && Number(minutes) <= 59;\n\n      if (!validHours || !validMinutes) {\n        event.preventDefault();\n      }\n    }\n  }\n\n  async actualizarPanelHorario(dato) {\n    if (dato.value != null) {\n      let tipoHorario = new TipoHorarioModel();\n      tipoHorario.llaveTabla = dato.value;\n      tipoHorario = await this.generalService.queryForObject(new GeneralModel('TipoHorarioDTO', null, false, tipoHorario)).toPromise();\n      if (tipoHorario != null) {\n        this.jornada.horarioCadena = tipoHorario.horario;\n        this.jornada.fechaModificado = new Date();\n      }\n    } else {\n      this.jornada.horarioCadena = null;\n    }\n  }\n\n  getHorasString() {\n    this.horasString = '';\n    if (this.horaInicial || this.horaFinal) {\n      this.horasString = this.horaInicial + ' - ' + this.horaFinal\n    }\n  }\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog id=\"id_jornadaPorDia\" header=\"{{'jornada' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '60vw'}\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"contenedor p-fluid grid mt-1\">\n        <!-- ESTADO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!nuevo\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"estado\" [options]=\"mapaAutorizado\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"jornada.autorizado\" [autoDisplayFirst]=\"false\" [disabled]=\"true\">\n                </p-dropdown>\n                <label htmlFor=\"estado\">{{'estado' | translate}}</label>\n            </span>\n        </div>\n        <!-- IDENTIFICACION -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"hojaVida\" [(ngModel)]=\"jornada.hojaVidaPersona\" [disabled]=\"true\">\n                <label htmlFor=\"hojaVida\">{{'identificacion' | translate}}</label>\n            </span>\n        </div>\n        <!-- NOMBRE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"nombre\" [(ngModel)]=\"jornada.nombresPersona\" [disabled]=\"true\">\n                <label htmlFor=\"nombre\">{{'nombre' | translate}}</label>\n            </span>\n        </div>\n        <!-- ACCION -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"tipoH\" [(ngModel)]=\"tipoHorarioString\" [disabled]=\"true\">\n                <label htmlFor=\"tipoH\">{{'accion' | translate}}</label>\n            </span>\n        </div>\n        <!-- TIPO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"estado\" [options]=\"mapaTiposPorDia\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"jornada.tipo\" [autoDisplayFirst]=\"false\" [disabled]=\"true\">\n                </p-dropdown>\n                <label htmlFor=\"tipo\">{{'tipo' | translate}}</label>\n            </span>\n        </div>\n\n\n        <!-- TIPO TURNO PREDEFINIDO -->\n\n        <!-- HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoHorario\" [options]=\"listaTipoHorario\" optionLabel=\"label\" optionValue=\"value\"\n                    [(ngModel)]=\"this.jornada.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.tipoHorario) && clickGuardar\"\n                    [disabled]=\"!nuevo\">\n                </p-dropdown>\n                <label htmlFor=\"tipoHorario\">{{label}} *</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.TURNO_PREDEFINIDO\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.desde) && clickGuardar\">\n                </p-calendar>\n                <label htmlFor=\"desdeTU\">{{'desde' | translate}} *</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.TURNO_PREDEFINIDO\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(jornada.hasta) && clickGuardar\">\n                </p-calendar>\n                <label htmlFor=\"hastaTU\">{{'hasta' | translate}} *</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"mostrarBuscadorSitio  && jornada.tipo === jornadaConsPipe.TURNO_PREDEFINIDO && tipoHorarioString !== jornadaConsPipe.AUSENCIA\">\n            <span class=\"p-float-label\">\n                <p-dropdown *ngIf=\"mostrarBuscadorSitio && tipoHorarioString != jornadaConsPipe.AUSENCIA\"\n                    inputId=\"sitioTUT\" [options]=\"listaSitio\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.sitio\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"sitioTUT\">{{'sitioo' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"!mostrarBuscadorSitio && tipoHorarioString !== jornadaConsPipe.AUSENCIA && jornada.tipo === jornadaConsPipe.TURNO_PREDEFINIDO && jornada.tipo !== jornadaConsPipe.AUSENCIA\">\n            <span class=\"p-float-label\">\n                <input *ngIf=\"!mostrarBuscadorSitio && tipoHorarioString !== jornadaConsPipe.AUSENCIA\" pInputText\n                    id=\"sitioTUT\" [(ngModel)]=\"jornada.nombreSitio\" [disabled]=\"true\">\n                <label htmlFor=\"sitioTUT\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo == jornadaConsPipe.TURNO_PREDEFINIDO && tipoHorarioString == jornadaConsPipe.AUSENCIA\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"horaInicialausenciaDS\" [(ngModel)]=\"this.horaInicial\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar\" />\n                <label htmlFor=\"horaInicialausenciaDS\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\"\n            *ngIf=\"jornada.tipo == jornadaConsPipe.TURNO_PREDEFINIDO && tipoHorarioString == jornadaConsPipe.AUSENCIA\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"horaFinalausenciaDS\" [(ngModel)]=\"this.horaFinal\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar\" />\n                <label htmlFor=\"horaFinalausenciaDS\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n\n        <!-- TIPO DIARIO -->\n\n        <!-- DIA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"diaDI\">{{'dia' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoInicialDI\" [(ngModel)]=\"this.horaInicial\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar\" />\n                <label htmlFor=\"minutoInicialDI\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"horaFinalDI\" [(ngModel)]=\"this.horaFinal\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar\" />\n                <label htmlFor=\"horaFinalDI\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n        <!-- TOTAL HORAS -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"totalHoras\" [(ngModel)]=\"jornada.totalHoras\" [disabled]=\"true\">\n                <label htmlFor=\"totalHoras\">{{'totalhoras' | translate}}</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaDI\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaDI\">{{'jornada' | translate}}</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <input *ngIf=\"!mostrarBuscadorSitio\" pInputText id=\"sitioDI\" [(ngModel)]=\"jornada.nombreSitio\"\n                    [disabled]=\"true\">\n                <p-dropdown *ngIf=\"mostrarBuscadorSitio\" inputId=\"sitioDI\" [options]=\"listaSitio\" optionLabel=\"label\"\n                    optionValue=\"key\" [(ngModel)]=\"jornada.sitio\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"sitioDI\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n        <!-- TIPO HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoHorarioDia\" [options]=\"listaTipoHorario\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"this.jornada.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"tipoHorarioDia\">{{'tipohorario' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- TIPO DIARIO SEMANAL -->\n\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"desdeDS\">{{'fechainicial' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoInicialDS\" [(ngModel)]=\"this.horaInicial\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaInicial) && clickGuardar\" />\n                <label htmlFor=\"minutoInicialDS\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoFinalDS\" [(ngModel)]=\"this.horaFinal\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(horaFinal) && clickGuardar\" />\n                <label htmlFor=\"minutoFinalDS\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n        <!-- TOTAL HORAS -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"paneltotalhorasdiariosemanal\" [(ngModel)]=\"jornada.totalHoras\" maxlength=\"6\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 6);\">\n                <label htmlFor=\"paneltotalhorasdiariosemanal\">{{'totalhoras' | translate}}</label>\n            </span>\n        </div>\n        <!-- DIA SEMANA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-multiSelect [options]=\"jornadapipe.MAPASEMANA2\" [(ngModel)]=\"dias\" appendTo=\"body\" [showClear]=\"true\"\n                    id=\"diaSemana\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(dias) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(dias) && clickGuardar\">\n                </p-multiSelect>\n                <label htmlFor=\"diaSemanaDS\">{{'semana' | translate}} *</label>\n            </span>\n        </div>\n        <!-- FESTIVO LABORAL -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"festivoDS\" [options]=\"listaSiNo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"jornada.festivo\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"festivoDS\">{{'festivolaboral' | translate}}</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"hastaDS\">{{'hasta' | translate}}</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaDS\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaDS\">{{'jornada' | translate}}</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.DIARIA_SEMANAL\">\n            <span class=\"p-float-label\">\n                <input *ngIf=\"!mostrarBuscadorSitio\" pInputText id=\"sitioDS\" [(ngModel)]=\"jornada.nombreSitio\"\n                    [disabled]=\"true\">\n                <p-dropdown *ngIf=\"mostrarBuscadorSitio\" inputId=\"sitioDS\" [options]=\"listaSitio\" optionLabel=\"label\"\n                    optionValue=\"key\" [(ngModel)]=\"jornada.sitio\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"sitioDS\">{{'sitio' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- TIPO ROTACION TURNO -->\n\n        <!-- DIAS LABORA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"diasLaboraRT\" [(ngModel)]=\"jornada.diasLaboral\" maxlength=\"10\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 10);\">\n                <label htmlFor=\"diasLaboraRT\">{{'dia' | translate}}s {{'laboral' | translate}}</label>\n            </span>\n        </div>\n        <!-- DIAS LIBRES -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"diasLaboraRT\" [(ngModel)]=\"jornada.diasLibre\" maxlength=\"10\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 10);\">\n                <label htmlFor=\"diasLaboraRT\">{{'dia' | translate}}s {{'libre' | translate}}s</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"desdeRT\">{{'fechainicial' | translate}}</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.ROTACION_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"hastaDS\">{{'hasta' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- TIPO CIRCULAR -->\n\n        <!-- CICLO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"cicloCI\" [(ngModel)]=\"jornada.circuito\" tooltipStyleClass=\"text-xs\"\n                    pTooltip=\"Ej: TTTL (L=Libre, T=Trabaja)\" tooltipEvent=\"focus\">\n                <label htmlFor=\"cicloCI\">{{'ciclo' | translate}}</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"desdeCI\">{{'fechainicial' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORA COMIENZA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoInicialCI\" [(ngModel)]=\"this.horaInicial\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class]=\"formatoEntrada  ? 'ng-invalid ng-dirty' : ''\" />\n                <label htmlFor=\"minutoInicialCI\">{{'horacomienza' | translate}} * </label>\n            </span>\n        </div>\n        <!-- HORA TERMINA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText type=\"text\" id=\"minutoFinalCI\" [(ngModel)]=\"this.horaFinal\"\n                    (keypress)=\"validarEntrada($event)\" (blur)=\"actualizarTotalHoras()\"\n                    [class]=\"formatoSalida  ? 'ng-invalid ng-dirty' : ''\" />\n                <label htmlFor=\"minutoFinalCI\">{{'horatermina' | translate}} * </label>\n            </span>\n        </div>\n        <!-- TOTAL HORAS -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"paneltotalcircular\" [(ngModel)]=\"jornada.totalHoras\" maxlength=\"6\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 6);\" [disabled]=\"true\">\n                <label htmlFor=\"paneltotalcircular\">{{'totalhoras' | translate}}</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"hastaCI\">{{'hasta' | translate}}</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaCI\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaCI\">{{'jornada' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- TIPO CIRCULAR TURNO -->\n\n        <!-- CICLO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"cicloCT\" [(ngModel)]=\"jornada.circuito\" tooltipStyleClass=\"text-xs\"\n                    pTooltip=\"Ej: TTTL (L=Libre, T=Trabaja)\" tooltipEvent=\"focus\">\n                <label htmlFor=\"cicloCT\">{{'ciclo' | translate}}</label>\n            </span>\n        </div>\n        <!-- DESDE -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.desde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"desdeCT\">{{'fechainicial' | translate}}</label>\n            </span>\n        </div>\n        <!-- TIPO HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoHorarioCT\" [options]=\"listaTipoHorario\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    (onChange)=\"actualizarPanelHorario($event)\">\n                </p-dropdown>\n                <label htmlFor=\"tipoHorarioCT\">{{'tipohorario' | translate}}</label>\n            </span>\n        </div>\n        <!-- HASTA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"jornada.hasta\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\">\n                </p-calendar>\n                <label htmlFor=\"hastaCI\">{{'hasta' | translate}}</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo == jornadaConsPipe.CIRCULAR_TURNO\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipoJornadaCT\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornada.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                </p-dropdown>\n                <label htmlFor=\"tipoJornadaCT\">{{'jornada' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORARIO -->\n        <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"jornada.tipo != null\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"horario\" [(ngModel)]=\"jornada.horarioCadena\" [disabled]=\"true\"\n                    *ngIf=\"jornada.tipo === jornadaConsPipe.TURNO_PREDEFINIDO\">\n                <input pInputText id=\"horario\" [(ngModel)]=\"horasString\" [disabled]=\"true\"\n                    *ngIf=\"jornada.tipo !== jornadaConsPipe.TURNO_PREDEFINIDO\">\n                <label htmlFor=\"horario\">{{'horario' | translate}}</label>\n            </span>\n        </div>\n    </div>\n    <!-- TABLA TIPOHORARIO -->\n    <div id=\"id_tablaHorarioRT\" class=\"card p-3 mt-3 mb-3\" *ngIf=\"jornada.tipo == jornadaConsPipe.ROTACION_TURNO\">\n        <div class=\"flex justify-content-end mb-3\">\n            <!--boton crear-->\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"mostrarNuevo()\"\n                label=\"{{'link_nuevo' | translate}}\">\n            </button>\n        </div>\n        <p-table [value]=\"setHorario()\" dataKey=\"index\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n            [scrollable]=\"true\" scrollDirection=\"horizontal\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"min-width: 10%;\">{{'orden' | translate}}</th>\n                    <th style=\"min-width: 35%;\">{{'dia' | translate}}s {{'trabajado' | translate}}s</th>\n                    <th style=\"min-width: 30%;\">{{'sitio' | translate}}</th>\n                    <th style=\"min-width: 15%;\">{{'trabajado' | translate}}s</th>\n                    <th style=\"min-width: 10%;\"></th>\n                </tr>\n                <tr *ngIf=\"vistaVisualizar == 'nuevo' \" class=\"TablaNuevoRegistro\">\n                    <td style=\"min-width: 10%;\"></td>\n                    <td style=\"min-width: 35%;\">\n                        <p-dropdown #idNuevoTipoHorario=\"ngModel\" inputId=\"tipoHorarioTablaRT\"\n                            [options]=\"listaTipoHorario\" optionLabel=\"label\" optionValue=\"value\"\n                            [(ngModel)]=\"diaHorario.tipoHorario\" [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                        </p-dropdown>\n                    </td>\n                    <td style=\"min-width: 30%;\">\n                        <p-dropdown #idNuevoSitio=\"ngModel\" inputId=\"sitioTablaRT\" [options]=\"listaSitio\"\n                            optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"diaHorario.sitio\"\n                            [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                            *ngIf=\"jornada.tipo == jornadaConsPipe.ROTACION_TURNO && mostrarBuscadorSitio\">\n                        </p-dropdown>\n                    </td>\n                    <td style=\"max-width: 25%;\">\n                        <input #idNuevoSitio=\"ngModel\" pInputText id=\"laboradosTablaRT\"\n                            [(ngModel)]=\"diaHorario.laborados\" maxlength=\"4\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 4);\"\n                            *ngIf=\"contadorHorarios == 0\">\n                    </td>\n                    <!-- BOTONES NUEVO REGISTRO -->\n                    <td style=\"max-width: 15%;\">\n                        <div class=\"flex justify-content-end\">\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                                class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only ng-star-inserted\"\n                                (click)=\"guardarHorario(diaHorario)\"></button>\n                            <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\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>\n                        </div>\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-horario let-editing=\"editing\" let-ri=\"rowIndex\">\n                <tr [pEditableRow]=\"horario\">\n                    <td style=\"min-width: 10%;\">\n                        {{horario.orden}}\n                    </td>\n                    <td style=\"min-width: 35%;\">\n                        <p-cellEditor style=\"width: 100%;\">\n                            <ng-template pTemplate=\"input\">\n                                <p-dropdown inputId=\"tipoHorarioTablaRTRow\" [options]=\"listaTipoHorario\"\n                                    optionLabel=\"label\" optionValue=\"value\" [(ngModel)]=\"jornada.tipoHorario\"\n                                    [autoDisplayFirst]=\"false\" appendTo=\"body\">\n                                </p-dropdown>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{horario.descripcionTipoHorario}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td style=\"min-width: 30%;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <p-dropdown inputId=\"sitioTablaRTRow\" [options]=\"listaSitio\" optionLabel=\"label\"\n                                    optionValue=\"key\" [(ngModel)]=\"jornada.sitio\" [autoDisplayFirst]=\"false\"\n                                    appendTo=\"body\"\n                                    *ngIf=\"jornada.tipo == jornadaConsPipe.ROTACION_TURNO && mostrarBuscadorSitio\">\n                                </p-dropdown>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{horario.descripcionSitio}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td style=\"min-width: 15%;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <input pInputText id=\"laboradosTablaRow\" [(ngModel)]=\"jornada.laborados\" maxlength=\"4\"\n                                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 4);\"\n                                    *ngIf=\"horario.primerRegistro\" [disabled]=\"!horario.primerRegistro ? true : false\">\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                <span *ngIf=\"horario.primerRegistro\">{{horario.laborados}}</span>\n                            </ng-template>\n                        </p-cellEditor>\n                    </td>\n                    <td style=\"min-width: 10%;\" class=\"flex justify-content-end\">\n                        <!-- CHECK GUARDAR -->\n                        <button *ngIf=\"editing && controlFuncionalidad.getControlFuncionalidad('jorn:guardar')\" pButton\n                            pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                            (click)=\"actualizarHorario(horario)\"\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>\n                        <!-- CANCELAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n                            (click)=\"cancelarEdicion(horario)\"\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>\n                        <!-- EDITAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                            (click)=\"iniciarEdicion(horario)\" icon=\"glyphicons glyphicons-pencil\"\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>\n                        <!-- ELIMINAR -->\n                        <button *ngIf=\"!editing && controlFuncionalidad.getControlFuncionalidad('jorn:eliminar')\"\n                            pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                            (click)=\"showEliminarHorarioConfirmDialog($event, horario)\"\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>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n\n    <div id=\"id_tablaLibreHorario\" class=\"card p-3 mt-3 mb-3\"\n        *ngIf=\"!nuevo  && tipoHorarioString != jornadaConsPipe.AUSENCIA\">\n        <div class=\"flex justify-content-end mb-3\">\n            <!--boton crear-->\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoHora()\"\n                label=\"{{'link_nuevo' | translate}}\">\n            </button>\n        </div>\n        <p-table [value]=\"listaHorarioLibre\" dataKey=\"rowIndex\" [showCurrentPageReport]=\"true\" editMode=\"row\"\n            [scrollable]=\"true\" scrollDirection=\"horizontal\" [rows]=\"paginator.rows\"\n            [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n            currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [lazy]=\"true\"\n            (onLazyLoad)=\"cargaHoraLibre($event)\">\n            <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            <ng-template pTemplate=\"header\">\n                <tr>\n                    <th style=\"min-width: 30%;\">{{'tipotiempolibre' | translate}}</th>\n                    <th style=\"min-width: 30%;\">{{'hora' | translate}}s</th>\n                    <th style=\"min-width: 30%;\">{{'tiporeceso' | translate}}</th>\n                    <th style=\"min-width: 10%;\"></th>\n                </tr>\n                <tr *ngIf=\"vistaVisualizar == 'nuevo' \" class=\"TablaNuevoRegistro\">\n                    <td style=\"min-width: 30%;\">\n                        <p-dropdown #idNuevoTipoLibre=\"ngModel\" inputId=\"tipoHorarioTablaRT\"\n                            [options]=\"listaTipoTiempoLibre\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                            [(ngModel)]=\"nuevoHoraLibre.tipoHora\" [autoDisplayFirst]=\"false\" appendTo=\"body\" required>\n                        </p-dropdown>\n                    </td>\n                    <td style=\"min-width: 30%;\" *ngIf=\"nuevoHoraLibre.tipoHora == null\"></td>\n                    <td style=\"min-width: 30%;\" *ngIf=\"nuevoHoraLibre.tipoHora == 'H'\">\n                        <input style=\"width: 30%\" pInputText #idNuevoHorainicio=\"ngModel\" id=\"horaInicialausenciaDS\"\n                            [(ngModel)]=\"newHoraLibreInicial\" (keypress)=\"validarEntrada($event)\" /> - <input\n                            style=\"width: 30%\" pInputText #idNuevoHoraFin id=\"horaInicialausenciaDS\"\n                            [(ngModel)]=\"newHoraLibreFinal\" (keypress)=\"validarEntrada($event)\" />\n                    </td>\n                    <td style=\"min-width: 30%;\" *ngIf=\"nuevoHoraLibre.tipoHora == 'T'\">\n                        <input type=\"text\" pInputText #idNuevoHoraTotal=\"ngModel\"\n                            [(ngModel)]=\"nuevoHoraLibre.horasTotal\" maxlength=\"3\"\n                            oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 3);\">\n                    </td>\n                    <td style=\"min-inline-size: 30%;\">\n                        <p-dropdown #idNuevoTipoReceso=\"ngModel\" inputId=\"tipoHorarioTablaRT\"\n                            [options]=\"listaTipoReceso\" optionLabel=\"label\" optionValue=\"key\"\n                            [(ngModel)]=\"nuevoHoraLibre.tipoReceso\" [autoDisplayFirst]=\"false\" appendTo=\"body\" required>\n                        </p-dropdown>\n                    </td>\n                    <!-- BOTONES NUEVO REGISTRO -->\n                    <td style=\"min-width: 10%;\" class=\"flex justify-content-end\">\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                            *ngIf=\"idNuevoTipoLibre.valid && idNuevoTipoReceso.valid\"\n                            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only ng-star-inserted\"\n                            (click)=\"guardarHoraLibre(nuevoHoraLibre)\"></button>\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\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>\n                    </td>\n                </tr>\n            </ng-template>\n            <ng-template pTemplate=\"body\" let-horario let-editing=\"editing\" let-ri=\"rowIndex\">\n                <tr [pEditableRow]=\"horario\">\n                    <td style=\"min-width: 30%;\">{{mapaTipoHoraLibre(horario.tipoHora)}}</td>\n                    <td style=\"min-width: 30%;\" *ngIf=\"horario.tipoHora == 'H'\">{{horaLibreInicial}} -\n                        {{horaLibreFinal}}</td>\n                    <td style=\"min-width: 30%;\" *ngIf=\"horario.tipoHora == 'T'\">{{horario.horasTotal}}</td>\n                    <td style=\"min-width: 30%;\">{{mapaTipoReceso(horario.tipoReceso)}}</td>\n                    <td style=\"min-width: 10%;\" class=\"flex justify-content-end\">\n                        <!-- ELIMINAR -->\n                        <button *ngIf=\"!editing && controlFuncionalidad.getControlFuncionalidad('jorn:eliminar')\"\n                            pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                            (click)=\"showEliminarHorarioLibreConfirmDialog($event, horario)\"\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>\n                    </td>\n                </tr>\n            </ng-template>\n        </p-table>\n    </div>\n    <div class=\"flex justify-content-end mb-3\" *ngIf=\"jornada.tipo != null\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"nuevo && !autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:guardar')\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"!nuevo && !autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:guardar')\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-outlined\"\n            *ngIf=\"!nuevo && !autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:eliminar')\"\n            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n            (click)=\"showEliminarConfirmDialog()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:autorizar')\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_autorizar' | translate}}\" (click)=\"autorizar()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"autorizacion && controlFuncionalidad.getControlFuncionalidad('jorn:autorizar')\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_noautorizar' | translate}}\" (click)=\"noAutorizar()\">\n        </button>\n    </div>\n</p-dialog>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { Constantes } from '../../../shared/constantes/Constantes';\n\n@Pipe({\n    name: 'liquidacionTiempoPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\n\nexport class liquidacionTiempoPipe implements PipeTransform {\n\n    ANCHO_GRAFICA = 8000;\n    ALTO_GRAFICA = 5000;\n\n    RANGO_HORAS = \"H\";\n    PROCESO = \"P\";\n    RECEPTOR = \"R\";\n    PASIVO_DESCANSO = \"D\";\n\n    RANGO_HORAS_DESC = \"Rango Horas\";\n    PROCESO_DESC = \"Proceso\";\n    RECEPTOR_DESC = \"Receptor\";\n    PASIVO_DESCANSO_DESC = \"Pasivo de descanso\";\n\n\n    MAPATIPOCONCEPTO = [\n        { codigo: this.RANGO_HORAS, nombre: this.RANGO_HORAS_DESC },\n        { codigo: this.PROCESO, nombre: this.PROCESO_DESC },\n        { codigo: this.RECEPTOR, nombre: this.RECEPTOR_DESC },\n        { codigo: this.PASIVO_DESCANSO, nombre: this.PASIVO_DESCANSO_DESC },\n    ]\n\n    DOMINICAL_FESTIVO = \"DF\";\n    DOMINICAL = \"DO\";\n    DIA_ENTRE_SEMANA = \"ES\";\n    NO_APLICA = \"NO\";\n\n    DOMINICAL_FESTIVO_ENTRADA = \"FE\";\n    DIA_ENTRE_SEMANA_ENTRADA = \"EE\";\n\n    DOMINICAL_DESC = \"Dominical\";\n    DOMINICAL_FESTIVO_DESC = \"Dominical - Festivo\";\n    DIA_ENTRE_SEMANA_DESC = \"Entre Semana\";\n    DOMINICAL_FESTIVO_ENTRADA_DESC = \"Dominical - Festivo (Entrada)\";\n    DIA_ENTRE_SEMANA_ENTRADA_DESC = \"Entre Semana (Entrada)\";\n    NO_APLICA_DESC = \"No Aplica\";\n\n    MAPATIPODIA = [\n        { codigo: this.DOMINICAL, nombre: this.DOMINICAL_DESC },\n        { codigo: this.DOMINICAL_FESTIVO, nombre: this.DOMINICAL_FESTIVO_DESC },\n        { codigo: this.DIA_ENTRE_SEMANA, nombre: this.DIA_ENTRE_SEMANA_DESC },\n        { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC },\n    ]\n\n    RECESOJORNADA = \"J\";\n    RECESOTURNO = \"T\";\n    AMBAS = \"A\";\n\n    RECESOJORNADA_DESC = \"Relaci\" + Constantes.O_TIDLE_MIN + \"n Jornada\";\n    RECESOTURNO_DESC = \"Seg\" + Constantes.U_TILDE_MIN + \"n Turno\";\n    AMBAS_DESC = \"Ambas\";\n\n    MAPAFUENTERECESO = [\n        { codigo: this.RECESOJORNADA, nombre: this.RECESOJORNADA_DESC },\n        { codigo: this.RECESOTURNO, nombre: this.RECESOTURNO_DESC },\n        { codigo: this.AMBAS, nombre: this.AMBAS_DESC },\n    ]\n\n    //FINAL_PROCESO = \"F\";\n    POR_JORNADA = \"J\";\n\n    //DESC_FINAL_PROCESO = \"Posterior Limite\";\n    //DESC_POR_JORNADA = \"Por Jornada\";\n\n    // MAPAMOMENTOS = [\n    //     { codigo: this.FINAL_PROCESO, nombre: this.DESC_FINAL_PROCESO },\n    //     { codigo: this.POR_JORNADA, nombre: this.DESC_POR_JORNADA },\n    // ]\n\n    // TRABAJADA = \"TA\";\n    // ENTRADA_ANTES = \"EA\";\n    // ENTRADAANTES_SALIDADESPUES = \"ES\";\n    // RETARDO = \"ED\";\n    // SALIDA_ANTES = \"SA\";\n    // SALIDA_DESPUES = \"SD\";\n    // NO_TRABAJADA = \"NT\";\n    NOPROGRAMADO = \"TN\";\n    //JORNADAPROGRAMASIN = \"JP\";\n    JORNADAPROGRAMACION = \"JC\";\n\n    //TRABAJADA_DESC = \"Trabajada Dentro Jornada\";\n    //ENTRADA_ANTES_DESC = \"Entrada Antes\";\n    //ENTRADAANTES_SALIDADESPUES_DESC = \"Entrada Antes + Salida Despues\";\n    //RETARDO_DESC = \"Retardo\";\n    //SALIDA_ANTES_DESC = \"Salida Antes\";\n    //SALIDA_DESPUES_DESC = \"Salida Despues\";\n    //NO_TRABAJADA_DESC = \"No Trabajada\";\n    NOPROGRAMADO_DESC = \"Trabajo No Programado\";\n    //JORNADAPROGRAMASIN_DESC = \"Jornada Programada Sin Licencias\";\n    JORNADAPROGRAMACION_DESC = \"Jornada Programada \";\n\n    // MAPATIPOEVENTO = [\n    //     { codigo: this.TRABAJADA, nombre: this.TRABAJADA_DESC },\n    //     { codigo: this.ENTRADA_ANTES, nombre: this.ENTRADA_ANTES_DESC },\n    //     { codigo: this.RETARDO, nombre: this.RETARDO_DESC },\n    //     { codigo: this.SALIDA_ANTES, nombre: this.SALIDA_ANTES_DESC },\n    //     { codigo: this.SALIDA_DESPUES, nombre: this.SALIDA_DESPUES_DESC },\n    //     { codigo: this.ENTRADAANTES_SALIDADESPUES, nombre: this.ENTRADAANTES_SALIDADESPUES_DESC },\n    //     { codigo: this.NO_APLICA, nombre: this.NO_APLICA_DESC },\n    //     { codigo: this.NO_TRABAJADA, nombre: this.NO_TRABAJADA_DESC },\n    //     { codigo: this.JORNADAPROGRAMASIN, nombre: this.JORNADAPROGRAMASIN_DESC },\n    //     { codigo: this.JORNADAPROGRAMACON, nombre: this.JORNADAPROGRAMACON_DESC },        \n\n    // ]\n\n\n    MAPATIPOEVENTOLIQUIDACION = [\n        { codigo: this.JORNADAPROGRAMACION, nombre: this.JORNADAPROGRAMACION_DESC },\n        { codigo: this.NOPROGRAMADO, nombre: this.NOPROGRAMADO_DESC },\n    ]\n\n\n    /*-------------------------------lista accion comprobante para descargas-----------------------------------------------------*/\n\n    JORNADA = \"JO\";\n    DIARIO = \"DI\";\n    SEMANAL = \"SE\";\n    MENSUAL = \"ME\";\n\n    JORNADA_DESC = \"Jornada\";\n    DIARIO_DESC = \"Diario\";\n    SEMANAL_DESC = \"Semanal\";\n    MENSUAL_DESC = \"Mensual\";\n\n    MAPATIPOPERIODO = [\n        { codigo: this.JORNADA, nombre: this.JORNADA_DESC },\n        { codigo: this.DIARIO, nombre: this.DIARIO_DESC },\n        { codigo: this.SEMANAL, nombre: this.SEMANAL_DESC },\n        { codigo: this.MENSUAL, nombre: this.MENSUAL_DESC },\n    ]\n\n    HISTORICO = \"H\";\n    NOMINA = \"N\";\n    INCONSISTENCIA = \"I\";\n    LIQUIDADA = \"L\";\n    AUTORIZADA = \"U\";\n    NO_AUTORIZADA = \"X\";\n\n    NOMINA_DESC = \"Nomina\";\n    INCONSISTENCIA_DESC = \"Inconsistencia\";\n    LIQUIDADA_DESC = \"Liquidada\";\n    HISTORICO_DESC = \"Hist\" + Constantes.O_TIDLE_MIN + \"rico\";\n    AUTORIZADA_DESC = \"Por Autorizar\";\n    NO_AUTORIZADA_DESC = \"No Autorizada\";\n\n    MAPAESTADOLIQUIDA = [\n        { codigo: this.NOMINA, nombre: this.NOMINA_DESC },\n        { codigo: this.INCONSISTENCIA, nombre: this.INCONSISTENCIA_DESC },\n        { codigo: this.PROCESO, nombre: this.PROCESO_DESC },\n        { codigo: this.LIQUIDADA, nombre: this.LIQUIDADA_DESC },\n        { codigo: this.HISTORICO, nombre: this.HISTORICO_DESC }\n    ]\n\n    MAPAESTADOAUTORIZADA = [\n        { codigo: this.AUTORIZADA, nombre: this.AUTORIZADA_DESC },\n        { codigo: this.NO_AUTORIZADA, nombre: this.NO_AUTORIZADA_DESC },\n    ]\n\n    VIGENTE = \"S\";\n    NOVIGENTE = \"N\";\n\n    VIGENTE_DESC = \"Vigente\";\n    NOVIGENTE_DESC = \"No Vigente\";\n\n    MAPAESTADOPROCESOLIQ = [\n        { codigo: this.VIGENTE, nombre: this.VIGENTE_DESC },\n        { codigo: this.NOVIGENTE, nombre: this.NOVIGENTE_DESC },\n    ]\n\n    PORSITIO_DESC = \"Por Sitio de trabajo\";\n    MASIVA_DESC = \"Masivo\";\n\n    MAPAPORSITIO = [\n        { codigo: this.VIGENTE, nombre: this.PORSITIO_DESC },\n        { codigo: this.NOVIGENTE, nombre: this.MASIVA_DESC }\n    ]\n\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'MAPATIPOCONCEPTO') { this.MAPATIPOCONCEPTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'MAPATIPODIA') { this.MAPATIPODIA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'MAPAFUENTERECESO') { this.MAPAFUENTERECESO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        //if (args[0] == 'MAPAMOMENTOS') { this.MAPAMOMENTOS.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        //if (args[0] == 'MAPATIPOEVENTO') { this.MAPATIPOEVENTO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'MAPATIPOEVENTOLIQUIDACION') { this.MAPATIPOEVENTOLIQUIDACION.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'MAPATIPOPERIODO') { this.MAPATIPOPERIODO.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'MAPAESTADOLIQUIDA') { this.MAPAESTADOLIQUIDA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'MAPAESTADOAUTORIZADA') { this.MAPAESTADOAUTORIZADA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'MAPAESTADOPROCESOLIQ') { this.MAPAESTADOPROCESOLIQ.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { JornadaModel } from '../../../models/JornadaModel';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PopupJonadaComponent } from '../../../popups/popup-jonada/popup-jonada.component';\nimport { PersonaConsPipe } from '../../../pipes/personaCons.pipe';\nimport { PopupJornadaPorDiaComponent } from '../../../popups/popup-jornada-por-dia/popup-jornada-por-dia.component';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { jornadaConsPipe } from '../../../pipes/JornadaCons.pipe';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { Calendar, CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n\n@Component({\n  selector: 'app-programacion-persona',\n  templateUrl: './programacion-persona.component.html',\n  styleUrls: ['./programacion-persona.component.scss'],\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, CalendarModule, ButtonDirective, Ripple, NgIf, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupJonadaComponent, PopupJornadaPorDiaComponent, DatePipe, TranslateModule, jornadaConsPipe, FiltroGeneralComponent, ButtonModule]\n})\nexport class ProgramacionPersonaComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @ViewChild('popupJornada') popupJornada: PopupJonadaComponent;\n  @ViewChild('popupJornadaPorDia') popupJornadaPorDia: PopupJornadaPorDiaComponent;\n  @ViewChild('calendar') calendar: Calendar;\n\n  jornada: JornadaModel = new JornadaModel();\n  persona: PersonaModel = new PersonaModel();\n  fechaInicio: Date;\n  registroProceso: RegistroProcesoModel;\n  listaProgramacion: JornadaModel[] = [];\n  isLoadingData: boolean = false;\n  isLoadingDataButton: boolean = false;\n  filtroPrimeraCarga: boolean = true;\n  filters = [];\n\n  constructor(\n    private personaPipe: PersonaConsPipe,\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private controlFuncionalidad: CargarControlFuncionalidadService,\n    private liquidacionTiempoPipe: liquidacionTiempoPipe,\n    private authService: AuthService,\n    private utilService: UtilsService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.inicializar();\n    await this.utilService.resizeWindowIFrame();\n  }\n\n  inicializar() {\n    this.jornada = new JornadaModel();\n    this.fechaInicio = new Date();\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n\n      }]\n  }\n\n  async cargar(personaDTO?: PersonaModel) {\n    this.inicializar();\n    this.persona = personaDTO;\n    this.colocarFiltroFecha();\n    this.loadData();\n  }\n\n  async loadData() {\n    this.isLoadingData = true;\n    this.jornada.persona = this.persona?.llaveTabla;\n    this.jornada.paisEmpresa = this.persona?.pais;\n    this.jornada.desde = this.jornada.desde ? new Date(this.jornada.desde) : null;\n    this.jornada.hasta = this.jornada.hasta ? new Date(this.jornada.hasta) : null;\n    this.listaProgramacion = await this.generalService.queryForList(new GeneralModel('JornadaDTO', 'Jornada.consultarJornadaPersona', false, this.jornada)).toPromise();\n    this.isLoadingData = false;\n  }\n\n  async colocarFiltroFecha() {\n    let filtro = new RegistroProcesoModel();\n    filtro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    filtro.estado = this.liquidacionTiempoPipe.NOMINA;\n    let lista = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', null, filtro)).toPromise();\n    if (lista != null && lista.length != 0) {\n      this.registroProceso = lista[0];\n      this.jornada.desde = new Date(this.registroProceso.fechaInicial);\n    }\n    await this.utilService.sleep(100);\n    this.filtroItem?.aplicarFiltros();\n  }\n\n  cargarListaFiltros(evento) {\n    if (evento['fechaInicial']) {\n      this.jornada.desde = evento['fechaInicial'].value;\n    }\n    if (evento['fechaFinal']) {\n      this.jornada.hasta = evento['fechaFinal'].value;\n    }\n\n    this.loadData();\n  }\n\n  async nuevaProgramacion() {\n    this.isLoadingDataButton = true;\n    await this.utilService.sleep(100);\n    this.popupJornada.nuevoRegistro(this.persona, false).then(data => {\n      this.isLoadingDataButton = false;\n    });\n  }\n\n  async nuevaProgramacionPorDia() {\n    this.isLoadingDataButton = true;\n    await this.utilService.sleep(100);\n    this.popupJornadaPorDia.nuevoRegistro(this.persona).then(data => {\n      this.isLoadingDataButton = false;\n    });\n  }\n\n  async onRowSelect(evento) {\n    let jor: JornadaModel = evento.data;\n    jor.paisEmpresa = this.persona.pais;\n    jor.hojaVidaPersona = this.persona.hojaVida;\n    jor.nombresPersona = this.persona.nombresPersona;\n    this.utilService.sleep(100);\n    this.popupJornada.ver(jor, null, false, false).then(data => { });\n  }\n\n  public horasString(data: JornadaModel): any {\n    let result: string;\n    if (data.horaFinal != null || data.horaInicial != null) {\n      const fechaInicial = new Date(data.horaInicial);\n      const fechaFinal = new Date(data.horaFinal);\n      const horaMinFinal: string = fechaFinal.getHours().toString().padStart(2, '0') + ':' + fechaFinal.getMinutes().toString().padStart(2, '0');\n      const horaMinInicial: string = fechaInicial.getHours().toString().padStart(2, '0') + ':' + fechaInicial.getMinutes().toString().padStart(2, '0');\n      result = horaMinInicial + ' - ' + horaMinFinal;\n    } else {\n      result = ''\n    }\n\n    return result;\n  }\n\n  public isMostrarBotonMasivo(): boolean {\n    return this.controlFuncionalidad.getControlFuncionalidad('jorn:nuevo') && this.personaPipe.FIJO != this.persona.tipo;\n  }\n\n  async regresarPopup() {\n    this.loadData();\n  }\n\n  onFocus(event: Event) {\n    event.preventDefault();\n    this.calendar.hideOverlay();\n  }\n\n  isTipoEspecial(programacion: any): boolean {\n    return ['TU', 'TS', 'CT'].includes(programacion.tipo);\n  }\n\n  isAusenciaEspecial(programacion: any): boolean {\n    return ['L', 'I', 'V'].includes(programacion.tipoAusencia);\n  }\n\n  isBackgroundHighlight(programacion: any): boolean {\n    return programacion.tipoHorarioTipo === 'NA';\n  }\n\n  getEstadoPadre(programacion: JornadaModel) {\n    if (programacion.estado != null && programacion.estado === 'I') {\n      return \"I\";\n    }\n    if (programacion.hijasInconsistencia != null && programacion.hijasInconsistencia > 0) {\n      return \"I\";\n    }\n    if (programacion.hijasProgramadas != null && programacion.hijasProgramadas > 0) {\n      return \"P\";\n    }\n    return programacion.estado;\n  }\n\n}\n","<div id=\"id_panelFiltroProgramacion\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!--Filtro buscar-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar #calendar formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"jornada.desde\" (onFocus)=\"onFocus($event)\"></p-calendar>\n                            <label for=\"ubicacion\">{{'fechainicial' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar #calendar formControlName=\"fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"jornada.hasta\" (onFocus)=\"onFocus($event)\"></p-calendar>\n                            <label for=\"fechafinal\">{{'fechafinal' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        <div class=\"flex justify-content-end\">\n            <!--boton crear -->\n            <p-button class=\"ml-2 loading-secondary\" icon=\"pi pi-plus\" (click)=\"nuevaProgramacion()\"\n                label=\"{{'link_nuevo' | translate}}\" [loading]=\"isLoadingDataButton\">\n            </p-button>\n            <!-- boton programar por dia -->\n            <p-button class=\"ml-2 loading-outlined\" *ngIf=\"isMostrarBotonMasivo()\"\n                icon=\"glyphicons glyphicons-synchronization\"\n                label=\"{{'programacion' | translate}} {{'por' | translate}} {{'dia' | translate}}\"\n                (click)=\"nuevaProgramacionPorDia()\" [loading]=\"isLoadingDataButton\">\n            </p-button>\n        </div>\n    </div>\n    <p-table [value]=\"listaProgramacion\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped p-0\" [rows]=\"10\"\n        [totalRecords]=\"listaProgramacion.length\" [paginator]=\"listaProgramacion.length > 10\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" selectionMode=\"single\" (onRowSelect)=\"onRowSelect($event)\"\n        scrollDirection=\"horizontal\">\n\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 20%;\">{{'tipo' | translate}}</th>\n                <th style=\"width: 10%;\">{{'desde' | translate}}</th>\n                <th style=\"width: 10%;\">{{'hasta' | translate}}</th>\n                <th style=\"width: 15%;\">{{'horario' | translate}}</th>\n                <th style=\"width: 25%;\">{{'tipohorario' | translate}}</th>\n                <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n                <th style=\"width: 10%;\">{{'autorizado' | translate}}</th>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"body\" let-programacion>\n            <tr [pSelectableRow]=\"programacion\"\n                [style]=\"isBackgroundHighlight(programacion) ? 'background-color:#F3FFEB;' : ''\">\n                <td style=\"width: 20%;\">{{ programacion.tipo | jornadaConsPipe:'listaTipos' }}</td>\n                <td style=\"width: 10%;\">{{ programacion.desde | date:'dd/MM/yyyy' }}</td>\n                <td style=\"width: 10%;\">{{ programacion.hasta | date:'dd/MM/yyyy' }}</td>\n                <td style=\"width: 15%;\">\n                    <ng-container *ngIf=\"!isTipoEspecial(programacion) || isAusenciaEspecial(programacion)\">\n                        {{ horasString(programacion) }}\n                    </ng-container>\n                    <ng-container *ngIf=\"isTipoEspecial(programacion)\">\n                        {{ programacion.horarioCadena }}\n                    </ng-container>\n                </td>\n                <td style=\"width: 25%;\">{{ programacion.nombreHorario }}</td>\n                <td style=\"width: 10%;\">{{ getEstadoPadre(programacion) | jornadaConsPipe:'listaEstados' }}</td>\n                <td style=\"width: 10%;\">{{ programacion.autorizado | jornadaConsPipe:'listaAutorizacion' }}</td>\n            </tr>\n        </ng-template>\n\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<app-popup-jonada #popupJornada (seleccionar)=\"regresarPopup()\"></app-popup-jonada>\n<app-popup-jornada-por-dia #popupJornadaPorDia (seleccionar)=\"regresarPopup()\"></app-popup-jornada-por-dia>","import { UnionModel } from 'general-library-union'\n\n\nexport class LiquidacionTiempoModel extends UnionModel {\n\n\tpersona: string;\n\tproceso: string;\n\tbase: Date;\n\tcantidadHoras:number;\n\tcantidadMinutos: number;\n\tcantidad: number;\n\tcalculo: number;\n\tcalculoHoras: number;\n\tcalculoMinutos:number;\n\tdocumentoPersona: number;\n\ttipo: string;\n\tjornadaTiempo: string;\n\tnombrePersona: string;\n\tconceptoTiempo: string;\n\ttipoLiquida: string;\n\tnombreTipoLiquida: string;\n\tnombreGrupo: string;\n\tbaseFinal: Date;\n\tdescripcionConcepto: string;\n\tvalor: number;\n\tdocumento: string;\n\tgrupo: string;\n\tnombre: string;\n\tempresa: number;\n\tperiodo: string;\n\tcontrato: number;\n\tvalor1: number;\n\testado: string;\n    pago: string;    \n    porAutorizar: string;    \n    tipoPeriodo: number;\n    login: string;\n    sitio: string;\n    nombreSitio: string;\n    baseFiltroInicial: Date;\n    baseFiltroFinal: Date;\n    seguimiento: string;\n\tnombreAprobador: string;\n    nombreAprobador2: string;\n    aprobador: number;\n    aprobador2: number;\n    estadoSeleccion: string;\t\n\t\n}","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { PersonaModel } from '../../models/PersonaModel';\nimport { TipoLiquidacionTiempoModel } from '../../models/TipoLiquidacionTiempoModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { CargarControlFuncionalidadService, FechaUtilsService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { RegistroProcesoModel } from '../../../compensacion/models/RegistroProcesoModel';\nimport { liquidacionTiempoPipe } from '../../pipes/liquidacionTiempo.pipe';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { LiquidacionTiempoModel } from '../../models/LiquidacionTiempoModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PopupSeguimientoComponent } from '../../../../shared/componentes/popup-seguimiento/popup-seguimiento.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\n\n@Component({\n    selector: 'app-popup-jornada-liquida',\n    templateUrl: './popup-jornada-liquida.component.html',\n    styleUrls: ['./popup-jornada-liquida.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, DropdownModule, FormsModule, NgIf, CheckboxModule, ButtonDirective, Ripple, PopupSeguimientoComponent, TranslateModule, ButtonModule],\n    providers: [DatePipe]\n})\nexport class PopupJornadaLiquidaComponent implements OnInit {\n\n  @Output() public regresar = new EventEmitter();\n\n  llaveProceso: string = '';\n  personaDTO: PersonaModel = new PersonaModel();\n  listaProcesoAbierto = [];\n  seguimiento: boolean = false;\n  mostrarPopupSeguimiento: boolean = false;\n  llaveSeguimiento: string = null;\n  clickGuardar: boolean = false;\n  isLoadingButton: boolean = false;  \n  mostrarPopup: boolean = false;\n\n  constructor(\n    private generalService: GeneralService,\n    private toastService: ToastService,\n    private liquidacionTiempoPipe: liquidacionTiempoPipe,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    public utilService: UtilsService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private generalPipe: GeneralPipe\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  async iniciaLiquidacion(persona?: PersonaModel) {\n    try {\n      this.personaDTO = persona;\n      this.llaveProceso = null;\n      this.seguimiento = false;\n      let tipoLiquidacionTiempo = new TipoLiquidacionTiempoModel();\n      tipoLiquidacionTiempo.llaveTabla = this.personaDTO?.tipoLiquidacion;\n      tipoLiquidacionTiempo = await this.generalService.queryForObject(new GeneralModel('TipoLiquidacionTiempoDTO', null, false, tipoLiquidacionTiempo)).toPromise();\n      if (tipoLiquidacionTiempo == null) {\n        this.toastService.showError('Tipo liquidación no existe');\n        return;\n      }\n      let filtro = new RegistroProcesoModel();\n      filtro.empresa = this.personaDTO?.empresa;\n      filtro.procesoLiquidacion = tipoLiquidacionTiempo.procesoLiquidacion;\n      let listaProceso = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', false, filtro)).toPromise();\n      let mapaRetorna: Map<string, string> = new Map<string, string>();\n      for (const unRegistroProceso of listaProceso) {\n        if (unRegistroProceso.estado === this.liquidacionTiempoPipe.NOMINA || unRegistroProceso.estado === this.liquidacionTiempoPipe.HISTORICO) {\n          continue;\n        }\n        let inicial = await this.fechaUtils.fechaTexto({ fecha: this.datePipe.transform(new Date(unRegistroProceso.fechaInicial), 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n        let final = await this.fechaUtils.fechaTexto({ fecha: this.datePipe.transform(new Date(unRegistroProceso.fechaFinal), 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n        let etiqueta: string = inicial.respuesta + ' - ' + final.respuesta;\n        mapaRetorna.set(unRegistroProceso.llave, etiqueta)\n      }\n      this.listaProcesoAbierto = Array.from(mapaRetorna, ([key, value]) => ({ key, value }));      \n      if (this.listaProcesoAbierto.length == 0) {\n        this.toastService.showError('Proceso no habilitado');\n        return;\n      }\n      this.mostrarPopup = true;\n    } catch (error) {\n    }\n  }\n\n  async liquidar() {\n    this.clickGuardar = false;\n    this.isLoadingButton = true;\n    if (this.llaveProceso == null) {\n      this.toastService.showError('Proceso no definido');\n      this.clickGuardar = true;\n      return;\n    }\n    let liquidacionTiempo = new LiquidacionTiempoModel();\n    liquidacionTiempo.llaveTabla = this.llaveProceso;\n    liquidacionTiempo.persona = this.personaDTO.llaveTabla;\n    if (this.seguimiento) {\n      liquidacionTiempo.seguimiento = this.utilService.generarLlave();\n    } else {\n      liquidacionTiempo.seguimiento = null;\n    }\n    try {\n      await this.generalService.procedure(new GeneralModel('LiquidacionTiempoDTO', 'LiquidacionTiempo.procedimientoLiquidarTiempos', false, liquidacionTiempo)).subscribe({\n        next: (data) => {\n          if (this.seguimiento) {\n            this.llaveSeguimiento = liquidacionTiempo.seguimiento;\n            this.mostrarPopupSeguimiento = true;\n          }\n          this.isLoadingButton = false;\n          this.toastService.showSuccess(this.generalPipe.MENSAJE_TERMINO_SATISFACTORIO);\n          this.ocultar();\n        },\n        error: (err) => {\n          this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta))\n          this.isLoadingButton = false;\n        }\n      });\n    } catch (error) {\n      this.isLoadingButton = false;\n    }\n  }\n\n  regresarPopUp() {\n    this.mostrarPopupSeguimiento = false;\n    this.seguimiento = false;\n  }\n\n\n  public ocultar() {\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog id=\"id_jornadaLiquida\" header=\"{{'jornada' | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '60vw'}\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"contenedor p-fluid grid mt-1\">\n        <!-- PROCESO -->\n        <div class=\"field col-12 md:col-6 lg:col-10\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"proceso\" [options]=\"listaProcesoAbierto\" optionLabel=\"value\" optionValue=\"key\"\n                    [(ngModel)]=\"llaveProceso\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilService.validarCampoObligatorio(llaveProceso) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilService.validarCampoObligatorio(llaveProceso) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"proceso\">{{'proceso' |translate}}</label>\n            </span>\n        </div>\n        <!-- SEGUIMIENTO -->\n        <div class=\"field col-12 md:col-6 lg:col-2 mt-2\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('comseg:seguimiento')\">\n            <p-checkbox class=\"mr-2 mb-2\" [(ngModel)]=\"seguimiento\" [binary]=\"true\"></p-checkbox>\n            <label> {{'seguimiento' | translate}}</label>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end\">\n        <!--BOTON LIQUIDAR -->\n        <p-button class=\"loading-raised\" icon=\"glyphicons glyphicons-restart\" (click)=\"liquidar()\"\n            label=\"{{'link_liquidar' | translate}}\" [loading]=\"isLoadingButton\">\n        </p-button>\n    </div>\n</p-dialog>\n<app-popup-seguimiento [llave]=\"llaveSeguimiento\" [mostrarPopup]=\"mostrarPopupSeguimiento\"\n    (regresar)=\"regresarPopUp()\"></app-popup-seguimiento>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { JornadaModel } from '../../../models/JornadaModel';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { jornadaConsPipe } from '../../../pipes/JornadaCons.pipe';\nimport { CodigoBaseTiempoModel } from '../../../models/CodigoBaseTiempoModel';\nimport { PopupJornadaLiquidaComponent } from '../../../popups/popup-jornada-liquida/popup-jornada-liquida.component';\nimport { AusentismoPipe } from '../../../../../shared/pipes/ausentismo.pipe';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n\n@Component({\n  selector: 'app-jornada-persona',\n  templateUrl: './jornada-persona.component.html',\n  styleUrls: ['./jornada-persona.component.scss'],\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, CalendarModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupJornadaLiquidaComponent, DatePipe, TranslateModule, AusentismoPipe, jornadaConsPipe, FiltroGeneralComponent, ButtonModule]\n})\nexport class JornadaPersonaComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @ViewChild('popupJornadaLiquida') popupJornadaLiquida: PopupJornadaLiquidaComponent;\n\n  listaJornada: JornadaModel[] = [];\n  filtroJornada: JornadaModel = new JornadaModel();\n  persona: PersonaModel = new PersonaModel();\n  listaJornadaPersona: JornadaModel[] = [];\n  fechaInicio: Date;\n  fechaFin: Date;\n  registroProceso: RegistroProcesoModel = new RegistroProcesoModel();\n  isLoadingData: boolean = false;\n  loaginButton: boolean = false;\n  listaMapAusencia = [];\n  listaTipoJoranada = [];\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private authService: AuthService,\n    private liquidacionTiempoCons: liquidacionTiempoPipe,\n    private jornadaPipe: jornadaConsPipe,\n    private cargarMapas: cargarmapasGlobal,\n    private utilService: UtilsService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.inicializar();\n    this.cargarLista();\n    await this.utilService.resizeWindowIFrame();\n  }\n\n  inicializar() {\n    this.fechaInicio = new Date();\n    this.fechaFin = new Date();\n    this.listaJornadaPersona = [];\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n\n      }]\n  }\n\n  async cargar(personaDTO?: PersonaModel) {\n    this.inicializar();\n    this.persona = personaDTO;\n    this.cargarFiltroFecha();\n    this.loadData();\n  }\n\n  async loadData() {\n    this.isLoadingData = true;\n    this.filtroJornada.persona = this.persona?.llaveTabla;\n    this.filtroJornada.serie = 'N';\n    this.filtroJornada.entradaPrograma = this.filtroJornada.entradaPrograma ? new Date(this.filtroJornada.entradaPrograma) : null;\n    this.filtroJornada.salidaPrograma = this.filtroJornada.salidaPrograma ? new Date(this.filtroJornada.salidaPrograma) : null;\n    this.filtroJornada.jornadaAusencia = 'S';\n    this.listaJornada = await this.generalService.queryForList(new GeneralModel('JornadaDTO', 'Jornada.consultarListadoJornadaPersona', false, this.filtroJornada)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('JornadaDTO', 'Jornada.contarListadoJornadaPersona', false, this.filtroJornada)).toPromise();\n    if (this.listaJornada) {\n      this.isLoadingData = false;\n    }\n  }\n\n  async cargarFiltroFecha() {\n    let registro = new RegistroProcesoModel();\n    registro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    registro.estado = this.liquidacionTiempoCons.NOMINA;\n    let lista = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', false, registro)).toPromise();\n    if (lista != null && lista.length != 0) {\n      this.registroProceso = lista[0];\n      this.filtroJornada.entradaPrograma = new Date(this.registroProceso.fechaInicial);\n    }\n    await this.utilService.sleep(100);\n    this.filtroItem?.aplicarFiltros();\n  }\n\n  async cargarListaFiltros(evento) {\n    if (evento['fechaInicial']) {\n      this.filtroJornada.entradaPrograma = evento['fechaInicial'].value;\n    }\n    if (evento['fechaFinal']) {\n      this.filtroJornada.salidaPrograma = evento['fechaFinal'].value;\n    }\n    if (!this.filtroItem.isApply) {\n      this.filtroItem.chips = [];\n      this.filtroJornada.entradaPrograma = null;\n      this.filtroJornada.salidaPrograma = null;\n    }\n    this.loadData();\n  }\n\n  async cargarLista() {\n    this.listaMapAusencia = this.jornadaPipe.COLORES_CALENDARIO;\n    this.listaTipoJoranada = [];\n    let codigoBaseTiempo = new CodigoBaseTiempoModel();\n    codigoBaseTiempo.tipo = 'TIPJO';\n    this.listaTipoJoranada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, codigoBaseTiempo));\n  }\n\n  liquidar() {\n    this.loaginButton = true;\n    this.popupJornadaLiquida.iniciaLiquidacion(this.persona).then(data => {\n      this.loaginButton = false;\n    });\n  }\n\n  public mapaAusencia(valor): any {\n    let result;\n    this.listaMapAusencia.forEach(data => { if (data.codigo === valor) { result = data.nombre } });\n    return result;\n  }\n\n  public mapaJornada(valor): any {\n    let result;\n    this.listaTipoJoranada.forEach(data => { if (data.key === valor) { result = data.label } });\n    return result;\n  }\n\n  regresarPopup() {\n    this.cargar(this.persona);\n  }\n\n\n}\n","<div id=\"id_panelJornadaPersona\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!--Filtro buscar-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"filtroJornada.entradaPrograma\"></p-calendar>\n                            <label for=\"ubicacion\">{{'fechainicial' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar formControlName=\"fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"filtroJornada.salidaPrograma\"></p-calendar>\n                            <label for=\"fechafinal\">{{'fechafinal' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        <div class=\"flex justify-content-end\">\n            <!--BOTON LIQUIDAR -->\n            <p-button class=\"loading-outlined claro\" icon=\"glyphicons glyphicons-restart\"\n                (click)=\"liquidar()\" label=\"{{'link_liquidar' | translate}}\"\n                *ngIf=\"controlFuncionalidad.getControlFuncionalidad('liqtiemp:nuevo')\" [loading]=\"loaginButton\">\n            </p-button>\n        </div>\n    </div>\n    <p-table [value]=\"listaJornada\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-gridlines\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\" [scrollable]=\"true\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th colspan=\"3\" class=\"headerTablaBorde text-center\">{{'jornada' | translate}}</th>         \n                <th colspan=\"4\" class=\"headerTablaBorde text-center\">{{'reloj' | translate}}</th>\n                <th colspan=\"2\" class=\"headerTablaBorde text-center\">{{'liquida' | translate}}</th>\n                <th colspan=\"3\" class=\"text-center\">{{'hora' | translate}}s</th>\n            </tr>\n            <tr class=\"background-100\">\n                <th class=\"background-100 color-600 \">{{'diabase' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'dia' | translate}}</th>\n                <th class=\"background-100 color-600  headerTablaBorde\">{{'horario' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'dia' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'horario' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'jornada' | translate}}</th>\n                <th class=\"background-100 color-600  headerTablaBorde\">{{'tipo' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'dia' | translate}}</th>\n                <th class=\"background-100 color-600  headerTablaBorde\">{{'horario' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'laboradas' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'antes' | translate}}</th>\n                <th class=\"background-100 color-600 \">{{'despues' | translate}}</th>\n            </tr>            \n        </ng-template>\n        <ng-template pTemplate=\"body\" let-jornada>\n            <tr>                \n                <td class=\"GrupoColor border-left\" [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.fechaLiquida |\n                    date:'dd/MM/yyyy'}}</td>\n                <td class=\"GrupoColor\" [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.entradaPrograma |\n                    date:'dd/MM/yyyy'}}</td>\n                <td  class=\"GrupoColor border-right\"[style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.entradaPrograma |\n                    date:'HH:mm'}} <span *ngIf=\"jornada.entradaPrograma != null\">-</span> {{jornada.salidaPrograma |\n                    date:'HH:mm'}}</td>                    \n                <td [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.entradaRelojDesc |\n                    date:'dd/MM/yyyy'}}</td>\n                <td [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.entradaReloj |\n                    date:'HH:mm'}} <span *ngIf=\"jornada.salidaReloj != null\">-</span> {{jornada.salidaReloj |\n                    date:'HH:mm'}}</td>\n                <td [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{mapaJornada(jornada.jornadaAjuste)}}\n                    <span *ngIf=\"jornada.tipoAusencia != null && mapaJornada(jornada.jornadaAjuste) != null\">-</span>\n                    {{jornada.tipoAusencia | ausentismoPipe:'listadoTioAusencia'}}</td>\n                <td [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.tipo |\n                    jornadaConsPipe:'listaTipoJorPersona'}}</td>\n                <td class=\"GrupoColor border-left\" [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.entradaLiquidaDesc |\n                    date:'dd/MM/yyyy'}}</td>\n                <td class=\"GrupoColor border-right\" [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.entradaLiquida |\n                    date:'HH:mm'}} <span *ngIf=\"jornada.salidaLiquida != null\">-</span> {{jornada.salidaLiquida |\n                    date:'HH:mm'}}</td>\n                <td [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.laborados}}</td>\n                <td [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.horasAntes}}</td>\n                <td [style.background-color]=\"mapaAusencia(jornada.tipoAusencia)\">{{jornada.horasDespues}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<app-popup-jornada-liquida #popupJornadaLiquida (regresar)=\"regresarPopup()\"></app-popup-jornada-liquida>","\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { LiquidacionTiempoModel } from '../../../models/LiquidacionTiempoModel';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { DatePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n    selector: 'app-conceptos-tiempo-persona',\n    templateUrl: './conceptos-tiempo-persona.component.html',\n    styleUrls: ['./conceptos-tiempo-persona.component.scss'],\n    standalone: true,\n    imports: [FormsModule, ReactiveFormsModule, CalendarModule, DropdownModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DatePipe, TranslateModule, FiltroGeneralComponent]\n})\nexport class ConceptosTiempoPersonaComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;  \n\n  persona: PersonaModel = new PersonaModel();\n  filtro: LiquidacionTiempoModel = new LiquidacionTiempoModel();\n  listaConceptos: LiquidacionTiempoModel[] = [];\n  listaConceptosTiempoPersona = [];\n  fechaFin: Date;\n  isLoadingData: boolean = false;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,    \n    private cargarMapas: cargarmapasGlobal,\n    private utilService: UtilsService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.inicalizar();\n    await this.utilService.resizeWindowIFrame();\n  }\n\n  async inicalizar() {\n    this.fechaFin = new Date();\n    this.listaConceptos = [];\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'concepto',\n        header: this.translateService.instant('concepto'),\n        values: (value) => this.transform(value, 'listaConcepto'),\n        matchMode: 'equal',\n      }]\n    this.listaConceptosTiempoPersona = [];\n    this.listaConceptosTiempoPersona = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('ConceptoTiempoDTO', null, false, {}));\n    if (this.listaConceptosTiempoPersona.length > 0) {\n      this.listaConceptosTiempoPersona.sort((a, b) => a.label.localeCompare(b.label));\n    }\n  }\n\n  transform(value: any, ...args: any[]): any {\n    let result = value\n    if (args[0] == 'listaConcepto') { this.listaConceptosTiempoPersona.forEach(data => { if (data.key === value) { result = data.label } }); };\n    return result;\n  }\n\n  async cargar(personaDTO: PersonaModel) {\n    this.inicalizar();\n    this.persona = personaDTO;\n    this.loadData();\n  }\n\n  async loadData() {\n    this.isLoadingData = true;\n    this.filtro.persona = this.persona?.llaveTabla;\n    this.filtro.base = this.filtro.base ? new Date(this.filtro.base) : null;\n    this.filtro.baseFinal = this.filtro.baseFinal ? new Date(this.filtro.baseFinal) : null;\n    this.filtro.conceptoTiempo = this.filtro.conceptoTiempo ? this.filtro.conceptoTiempo : null;\n    this.listaConceptos = await this.generalService.queryForList(new GeneralModel('LiquidacionTiempoDTO', 'LiquidacionTiempo.consultarConceptosTiempos', false, this.filtro)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('LiquidacionTiempoDTO', 'LiquidacionTiempo.contarConceptosTiempos', false, this.filtro)).toPromise();\n    if (this.listaConceptos) {\n      this.isLoadingData = false;\n    }\n  }\n\n  async cargarListaFiltros(evento) {\n\n    if (evento['fechaInicial']) {\n      this.filtro.base = evento['fechaInicial'].value;\n    }\n    if (evento['fechaFinal']) {\n      this.filtro.baseFinal = evento['fechaFinal'].value;\n    }\n    if (evento['concepto']) {\n      this.filtro.conceptoTiempo = evento['concepto'].value;\n    }\n    if (!this.filtroItem.isApply) {\n      this.filtroItem.chips = [];\n      this.filtro.base = null;\n      this.filtro.baseFinal = null;\n      this.filtro.conceptoTiempo = null;\n    }\n    this.loadData();\n  }\n\n\n}\n","<div id=\"id_panelConceptoPersona\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!--Filtro buscar-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex\">\n                        <div class=\"field mr-2 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-calendar formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                    appendTo=\"body\"></p-calendar>\n                                <label for=\"ubicacion\">{{'fechainicial' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field w-full\">\n                            <span class=\"p-float-label\">\n                                <p-calendar formControlName=\"fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                    appendTo=\"body\"></p-calendar>\n                                <label for=\"fechafinal\">{{'fechafinal' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                    <div class=\"flex\">\n                        <div class=\"field w-full\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown class=\"w-full\" [options]=\"listaConceptosTiempoPersona\" optionLabel=\"label\"\n                                    optionValue=\"key\" [autoDisplayFirst]=\"false\" formControlName=\"concepto\"\n                                    [showClear]=\"true\"></p-dropdown>\n                                <label>{{'concepto' | translate}}s</label>\n                            </span>\n                        </div>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n    <p-table [value]=\"listaConceptos\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" [scrollable]=\"true\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'desde' | translate}}</th>\n                <th>{{'hasta' | translate}}</th>\n                <th>{{'cantidad' | translate}}</th>\n                <th>{{'descripcion' | translate}}</th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-concepto>\n            <tr>\n                <td>{{concepto.base |date:'dd/MM/yyyy'}}</td>\n                <td>{{concepto.baseFinal |date:'dd/MM/yyyy'}}</td>\n                <td>{{concepto.cantidad}}</td>\n                <td>{{concepto.descripcionConcepto}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class EventoJornadaModel extends UnionModel {\n\n\n\thoraInicio: Date;\n\thoraFin: Date;\n\tdispositivoEntrada: string;\n\tdispositivoSalida: string;\n\tdescripcionDisEntrada: string;\n\tdescripcionDisSalida: string;\n\tmensaje: string;\n\testado: string;\n\ttipoMensaje: string;\n\taplicado: string;\n\tpersona: string;\n\ttipoEntrada: string;\n\ttipoSalida: string;\n\tsalidaPrograma: Date;\n\ttipoInconsis: string;\n\tregistroProceso: string;\n\tconvenio: string;\n\tjornada: string;\n\torigen: string;\n\tnoCommit: string;\n\n\t//Transient\n\tempresa: number;\n\tfechaEvento: Date;\n\tcontrato: number;\n\thojaVida: number;\n\tfechaSalida: Date;\n\tconexion: string;\n\ttipoMarcacion: string;\n\tnombreCompleto: string;\n\ttipoMedio: string;\n\tdispositivoLectura: string;\n\tproducto: string;\n\tautorizacionEspecial: string;\n\thoraInicial: number;\n\thoraFinal: number;\n\tsitio: string;\n\tlocalizaLectura: string;\n\tlocalizaEntrada: string;\n\tlocalizaSalida: string;\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, ToastService } from 'general-library-union';\nimport { PersonaModel } from '../../models/PersonaModel';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'app-popup-buscar-persona',\n    templateUrl: './popup-buscar-persona.component.html',\n    styleUrls: ['./popup-buscar-persona.component.scss'],\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => PopupBuscarPersonaComponent),\n            multi: true,\n        },\n    ],\n    standalone: true,\n    imports: [\n        NgIf,\n        InputTextModule,\n        ButtonDirective,\n        Ripple,\n        DialogModule,\n        FormsModule,\n        ReactiveFormsModule,\n        TableModule, TemplateTablaVaciaComponent,\n        PrimeTemplate,\n        TranslateModule,\n        FiltroGeneralComponent,\n    ],\n})\nexport class PopupBuscarPersonaComponent implements ControlValueAccessor, OnInit {\n\n  @Output() onSelected: EventEmitter<any> = new EventEmitter();\n\n  @Output() regresar: EventEmitter<any> = new EventEmitter();\n\n  @ViewChild('inputText') inputText: ElementRef;\n\n  @Input() value: string | number;\n\n  @Input() label: string = '';\n\n  @Input() readonly: boolean = false;\n\n  @Input() showDialog: boolean = false;\n\n  @Input() soloPopup: boolean = false;\n\n  @Input() mostrarX: boolean;\n\n  @Input() booleano: boolean;\n\n  @Input() nombreInput: string = '';\n\n  onChange: Function = () => { };\n\n  onTouched: Function = () => { };\n\n  loading: boolean;\n\n  listadoPersona: PersonaModel[] = [];\n\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(private generalService: GeneralService, private authService: AuthService, private translateService: TranslateService,\n    private toastService: ToastService) { }\n\n  public ocultar() {\n    this.showDialog = false;\n    this.regresar.emit(false);\n  }\n\n\n  writeValue(value: any): void {\n    this.value = value;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void { }\n\n\n  async ngOnInit() {\n\n    this.filters = [\n      {\n        field: 'nombreCompleto',\n        header: this.translateService.instant('nombrefuncionario'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'contains',\n      }\n    ];\n  }\n  openDataTable() {\n    this.showDialog = true;\n    if (this.booleano == null) {\n      this.booleano = false;\n    }\n  }\n\n  async cargarLista(event) {\n    try {\n      let objetoFiltro = {\n        paginacionRegistroInicial: event.first,\n        paginacionRegistroFinal: event.rows,\n        empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n        buscador: event.filters.nombreCompleto?.value ? '%' + event.filters.nombreCompleto?.value + '%' : null,\n        hojaVida: event.filters.documento?.value ? event.filters.documento?.value : null,\n      };\n      this.listadoPersona = await this.generalService.queryForList(new GeneralModel('PersonaDTO', null, false, objetoFiltro)).toPromise();\n      this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('PersonaDTO', null, false, objetoFiltro)).toPromise();\n    } catch (error) {\n\n    }\n\n  }\n\n\n  onRowSelect(event) {\n    this.showDialog = false;\n    let empleadoSeleccionado = event.data;\n    this.label = empleadoSeleccionado.nombreCompleto;\n    this.value = empleadoSeleccionado.contrato;\n    this.onChange(this.value);\n    this.onSelected.emit(empleadoSeleccionado);\n\n  }\n\n  deleteSelection() {\n    console.trace()\n    this.value = null;\n    this.label = null;\n    this.onChange(this.value)\n    this.onSelected.emit({});\n  }\n\n\n}\n","<div *ngIf=\"!soloPopup\" #field [class]=\"booleano  ? 'ng-invalid ng-dirty p-inputgroup' : 'p-inputgroup' \">\n    <span class=\"p-float-label\">\n        <input pInputText #inputText [disabled]=\"true\" [value]=\"label\" [required]=\"booleano\">\n        <button pButton pRipple [disabled]=\"readonly\" (click)=\"openDataTable()\" class=\"p-button-icon-only clear\">\n            <span class=\"glyphicons glyphicons-new-window-alt\"></span>\n        </button>\n        <button *ngIf=\"!mostrarX\" class=\"p-button-icon-only clear\" pButton pRipple [disabled]=\"readonly\"\n            (click)=\"deleteSelection()\">\n            <span class=\"glyphicons glyphicons-remove\"></span>\n        </button>\n        <label *ngIf=\"booleano\">{{nombreInput == '' ? ('empleado' | translate) : (nombreInput | translate)}} *</label>\n        <label *ngIf=\"!booleano\">{{nombreInput == '' ? ('empleado' | translate) : (nombreInput | translate)}}</label>\n    </span>\n</div>\n\n<p-dialog #dialog id='form_popupBuscarPersona' header=\"{{'persona' | translate}}\" [(visible)]=\"showDialog\"\n    (onHide)=\"ocultar()\" [modal]=\"true\" appendTo=\"body\" [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\"\n    [style]=\"{ width: '60vw'}\">\n    <div class=\"flex justify-content-between align-items-start mt-2 mb-2\">\n        <!-- Filtro-->\n        <app-filtro-general [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_nombre\" formControlName=\"nombreCompleto\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_nombre\">{{'nombre' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"id_identifica\" formControlName=\"documento\"\n                                autocomplete=\"off\" />\n                            <label for=\"id_identifica\">{{'identificacion' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"listadoPersona\" selectionMode=\"single\" [scrollable]=\"true\"\n        [tableStyle]=\"{ 'min-width': '50rem' }\" responsiveLayout=\"scroll\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        styleClass=\"p-datatable-striped input-helper-datatable\" (onRowSelect)=\"onRowSelect($event)\" [lazy]=\"true\"\n        (onLazyLoad)=\"cargarLista($event)\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"min-width: 50%;\">{{ \"cedula\" | translate }}</th>\n                <th style=\"min-width: 50%;\">{{ \"nombre\" | translate }}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-persona>\n            <tr [pSelectableRow]=\"persona\">\n                <td style=\"min-width: 50%;\">{{persona.hojaVida}}</td>\n                <td style=\"min-width: 50%;\">{{persona.nombresPersona}}</td>\n            </tr>\n        </ng-template>\n    </p-table>\n</p-dialog>","import { UnionModel } from 'general-library-union'\n\nexport class DispositivoModel extends UnionModel {\n\n\tserial: String;\n\tlicencia: String;\n\tregistro: String;\n\tdescripcion: String;\n\tserialFisico: String;\n\travalAsignado: String;\n\timpresora: String;\n\ttipoRol: String;\n\tinstancia: number;\n\tseleccionado: boolean;\n\tllaveDispoHojaVida: String;\n\tidentifica: number;\n\tproducto: String;\n\tidentificaNoAsociado: number;\n\tfiltroTipoRol: String;\n\tnombreProducto: String;\n\n\tempresa: number;\n\tzonaEconomica: string;\n\tcentroCosto: string;\n\tnombreZonaEconomica: string;\n\tnombreCentro: string;\n}","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n    name: 'eventoJornadaConsPipe',\n    standalone: true\n})\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class EventoJornadaConsPipe implements PipeTransform {\n\n    MENSAJE_OK = \"EOK\";\n    MENSAJE_SALIDA_SIN_ENTRADA = \"SSE\";\n    MENSAJE_ENTRADA_SIN_SALIDA = \"ESS\";\n    MENSAJE_CIERRE_AUTOMATICO = \"ECA\";\n    MENSAJE_ENTRADA_NO_AUTORIZADA = \"ENA\";\n    MENSAJE_MANUAL = \"MAN\";\n    MENSAJE_CRUCE =\"CRU\";\n\n    MENSAJE_OK_DESC = \"\";\n    MENSAJE_SALIDA_SIN_ENTRADA_DESC = \"Salida Sin Entrada\";\n    MENSAJE_ENTRADA_SIN_SALIDA_DESC = \"Entrada Sin Salida\";\n    MENSAJE_CIERRE_AUTOMATICO_DESC = \"Cierre Automatico\";\n    MENSAJE_ENTRADA_NO_AUTORIZADA_DESC = \"Entrada no autorizada\";\n    MENSAJE_MANUAL_DESC = \"Cierre Manual\";\n    MENSAJE_CRUCE_DESC =\"Cruce de marcaciones\";\n\n    ESTADO_ABIERTO = \"A\";\n    ESTADO_INCONSISTENCIA = \"I\";\n    ESTADO_SOLUCION_INCONSISTENCIA = \"S\";\n    ESTADO_ANULADO = \"N\";\n    ESTADO_CERRADO = \"C\";\n    ESTADO_CERRADO_SIN_JORNADA = \"E\";\n    ESTADO_SOLUCIONADO_SIN_JORNADA = \"O\";\n    ESTADO_SOLUCIONADO_CON_JORNADA = \"J\";\n\n    ESTADO_ABIERTO_DESC = \"Abierto\";\n    ESTADO_INCONSISTENCIA_DESC = \"Inconsistencia\";\n    ESTADO_SOLUCION_INCONSISTENCIA_DESC = \"Solucionado\";\n    ESTADO_ANULADO_DESC = \"Anulado\";\n    ESTADO_CERRADO_DESC = \"Cerrado\";\n    ESTADO_CERRADO_SIN_JORNADA_DESC = \"Cerrado sin Jornada\";\n    ESTADO_SOLUCIONADO_SIN_JORNADA_DESC = \"Solucionado sin Jornada\";\n    ESTADO_SOLUCIONADO_CON_JORNADA_DESC = \"Solucionado con Jornada\";\n\n    CONEXION_ONLINE = \"ONLINE\";\n    CONEXION_OFFLINE = \"OFFLINE\";\n\n    TIPOMEDIO_HUELLA = \"DIS\";\n    TIPOMEDIO_PIN = \"PIN\";\n    TIPOMEDIO_INTERFAZ = \"INT\";\n    TIPOMEDIO_AUT = \"AUT\";\n    TIPOMEDIO_REGIPORTAL = \"L\"\n\n    MARCACION_ENTRADA = \"E\";\n    MARCACION_SALIDA = \"S\";\n    MARCACION_NOAPLICA = \"N\";\n\n    ORIGEN_TIEMPOS = \"T\";\n    ORIGEN_SERVICIOS = \"S\";\n\n    ORIGEN_TIEMPOS_DESC = \"Tiempos\";\n    ORIGEN_SERVICIOS_DESC = \"Servicios\";\n\n    DESCRIPCION_MENSAJE_MANUAL = \"Manual\";\n    DESCRIPCION_TIPOMEDIO_HUELLA = \"Dispositivo\";\n    DESCRIPCION_TIPOMEDIO_INTERFAZ = \"Interfaz\";\n    DESCRIPCION_TIPOMEDIO_AUT = \"Automático\";\n    DESCRIPCION_TIPOMEDIO_REGIPORTAL = \"Registro Portal\"\n\n    ESTADOJORNADA =\n        [\n            { codigo: this.ESTADO_ABIERTO, nombre: this.ESTADO_ABIERTO_DESC },\n            { codigo: this.ESTADO_INCONSISTENCIA, nombre: this.ESTADO_INCONSISTENCIA_DESC },\n            { codigo: this.ESTADO_SOLUCION_INCONSISTENCIA, nombre: this.ESTADO_SOLUCION_INCONSISTENCIA_DESC },\n            { codigo: this.ESTADO_ANULADO, nombre: this.ESTADO_ANULADO_DESC },\n            { codigo: this.ESTADO_CERRADO, nombre: this.ESTADO_CERRADO_DESC },\n            { codigo: this.ESTADO_CERRADO_SIN_JORNADA, nombre: this.ESTADO_CERRADO_SIN_JORNADA_DESC },\n            { codigo: this.ESTADO_SOLUCIONADO_SIN_JORNADA, nombre: this.ESTADO_SOLUCIONADO_SIN_JORNADA_DESC },\n            { codigo: this.ESTADO_SOLUCIONADO_CON_JORNADA, nombre: this.ESTADO_SOLUCIONADO_CON_JORNADA_DESC },\n        ]\n\n    ESTADOMARCACION =\n        [\n            { codigo: this.ESTADO_ABIERTO, nombre: this.ESTADO_ABIERTO_DESC },\n            { codigo: this.ESTADO_INCONSISTENCIA, nombre: this.ESTADO_INCONSISTENCIA_DESC },\n            { codigo: this.ESTADO_CERRADO, nombre: this.ESTADO_CERRADO_DESC },\n            { codigo: this.ESTADO_CERRADO_SIN_JORNADA, nombre: this.ESTADO_CERRADO_SIN_JORNADA_DESC },\n        ]\n\n    ESTADOLIQUIDACION =\n        [\n            { codigo: this.ESTADO_ABIERTO, nombre: this.ESTADO_ABIERTO_DESC },\n            { codigo: this.ESTADO_CERRADO, nombre: this.ESTADO_CERRADO_DESC },\n\n        ]\n    MENSAJE =\n        [\n            { codigo: this.MENSAJE_ENTRADA_SIN_SALIDA, nombre: this.MENSAJE_ENTRADA_SIN_SALIDA_DESC },\n            { codigo: this.MENSAJE_SALIDA_SIN_ENTRADA, nombre: this.MENSAJE_SALIDA_SIN_ENTRADA_DESC },\n            { codigo: this.MENSAJE_OK, nombre: this.MENSAJE_OK_DESC },\n            { codigo: this.MENSAJE_CIERRE_AUTOMATICO, nombre: this.MENSAJE_CIERRE_AUTOMATICO_DESC },\n            { codigo: this.MENSAJE_ENTRADA_NO_AUTORIZADA, nombre: this.MENSAJE_ENTRADA_NO_AUTORIZADA_DESC },\n            { codigo: this.MENSAJE_MANUAL, nombre: this.MENSAJE_MANUAL_DESC },\n            { codigo: this.MENSAJE_CRUCE, nombre: this.MENSAJE_CRUCE_DESC },\n\n        ]\n\n    TIPOMARCACION = [\n        { codigo: this.MENSAJE_MANUAL, nombre: this.DESCRIPCION_MENSAJE_MANUAL },\n        { codigo: this.TIPOMEDIO_HUELLA, nombre: this.DESCRIPCION_TIPOMEDIO_HUELLA },\n        { codigo: this.TIPOMEDIO_INTERFAZ, nombre: this.DESCRIPCION_TIPOMEDIO_INTERFAZ },\n        { codigo: this.TIPOMEDIO_REGIPORTAL, nombre: this.DESCRIPCION_TIPOMEDIO_REGIPORTAL },\n        { codigo: this.TIPOMEDIO_AUT, nombre: this.DESCRIPCION_TIPOMEDIO_AUT },\n\n    ]\n\n    transform(value: any, ...args: any): any {\n        let result = value;\n        if (args[0] == 'listaEstado') { this.ESTADOJORNADA.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        if (args[0] == 'listaMensaje') { this.MENSAJE.forEach(data => { if (data.codigo === value) { result = data.nombre } }); }\n        return result;\n    }\n}","import { Component, EventEmitter, Output } from '@angular/core';\nimport { EventoJornadaModel } from '../../models/EventoJornadaModel';\nimport { EventoJornadaConsPipe } from '../../pipes/eventoJornadaCons.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { RegistroProcesoModel } from '../../../compensacion/models/RegistroProcesoModel';\nimport { liquidacionTiempoPipe } from '../../pipes/liquidacionTiempo.pipe';\nimport { FechaUtilsService } from 'general-library-union';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { ConfirmationService } from 'primeng/api';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { PopupBuscarPersonaComponent } from '../popup-buscar-persona/popup-buscar-persona.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DispositivoModel } from '../../models/DispositivoModel';\n\n@Component({\n  selector: 'app-popup-reloj',\n  templateUrl: './popup-reloj.component.html',\n  styleUrls: ['./popup-reloj.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, DialogModule, NgIf, FormsModule, InputTextModule, PopupBuscarPersonaComponent, DropdownModule, FieldsetModule, CalendarModule, ButtonDirective, Ripple, TranslateModule],\n  providers: [DatePipe]\n})\nexport class PopupRelojComponent {\n\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n\n  public eventoJornadaDTO: EventoJornadaModel = new EventoJornadaModel();\n  public listaDispositivos = [];\n  public labelPopup: string;\n  public mostrarP: boolean;\n  public deshabilitarCampos: boolean;\n  public bloquearEntrada: boolean;\n  public bloquearSalida: boolean;\n  public mostrarPopup: boolean = false;\n  public mostrarEliminar: boolean;\n  public fecha: Date;\n  public horaInicial: any = null;\n  public horaFinal: any = null;\n  public listaEstadoNuevo = [];\n  public listaEstado = [];\n  public listaTipoMarcacion = [];\n  public clickGuardar: boolean = false;\n  public indexOrigen: number;\n\n  constructor(\n    private generalService: GeneralService,\n    private toastService: ToastService,\n    private authService: AuthService,\n    private cargarMapas: cargarmapasGlobal,\n    private eventoJornadaPipe: EventoJornadaConsPipe,\n    private liquidaTiempoPipe: liquidacionTiempoPipe,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    private confirmationService: ConfirmationService,\n    private generalPipe: GeneralPipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    public utilService: UtilsService\n  ) { }\n\n  mostrar() {\n    this.mostrarPopup = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  async inicializar() {\n    this.eventoJornadaDTO = new EventoJornadaModel();\n    this.listaDispositivos = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('DispositivoDTO', null, false, new DispositivoModel));\n    this.listaEstadoNuevo = this.eventoJornadaPipe.ESTADOLIQUIDACION;\n    this.listaEstado = this.eventoJornadaPipe.ESTADOMARCACION;\n    this.listaTipoMarcacion = this.eventoJornadaPipe.TIPOMARCACION;\n  }\n\n  async cargar(eventoJornada: EventoJornadaModel, persona: boolean, indexDestino?: number) {\n    this.inicializar();\n    await this.utilService.sleep(100);\n    this.indexOrigen = indexDestino;\n    this.eventoJornadaDTO = Object.assign({}, eventoJornada);\n    this.eventoJornadaDTO.estado = (eventoJornada.estado == null ? this.eventoJornadaPipe.ESTADO_ABIERTO : eventoJornada.estado);\n    if (this.eventoJornadaDTO.llaveTabla == null) {\n      this.eventoJornadaDTO.tipoEntrada = this.eventoJornadaPipe.MENSAJE_MANUAL;\n      this.eventoJornadaDTO.tipoSalida = this.eventoJornadaPipe.MENSAJE_MANUAL;\n    }\n    this.eventoJornadaDTO.tipoEntrada = this.eventoJornadaDTO.tipoEntrada ? this.eventoJornadaDTO.tipoEntrada.trim() : null;\n    this.eventoJornadaDTO.tipoSalida = this.eventoJornadaDTO.tipoSalida ? this.eventoJornadaDTO.tipoSalida.trim() : null;\n    this.mostrarP = persona;\n    if (this.mostrarP) {\n      this.labelPopup = 'evento';\n    } else {\n      this.labelPopup = 'reloj';\n    }\n    this.eventoJornadaDTO.horaInicio = this.eventoJornadaDTO.horaInicio ? new Date(this.eventoJornadaDTO.horaInicio) : null;\n    this.eventoJornadaDTO.horaFin = this.eventoJornadaDTO.horaFin ? new Date(this.eventoJornadaDTO.horaFin) : null;\n    this.horaInicial = this.eventoJornadaDTO.horaInicio;\n    this.horaFinal = this.eventoJornadaDTO.horaFin;\n    this.deshabilitarCampos = false;\n    this.cargarFechaFiltro();\n    this.mostrarEliminar = true;\n    if (this.eventoJornadaDTO.horaInicio != null && this.fecha != null && this.eventoJornadaDTO.horaInicio < this.fecha) {\n      this.mostrarEliminar = false;\n    }\n    this.bloquearEntrada = false;\n    this.bloquearSalida = false;\n    if (!this.controlFuncionalidad.getControlFuncionalidad('jorn:dispositivo')) {\n      this.bloquearEntrada = 'DIS' === this.eventoJornadaDTO.tipoEntrada || 'INT' === this.eventoJornadaDTO.tipoEntrada;\n      this.bloquearSalida = 'DIS' === this.eventoJornadaDTO.tipoSalida || 'INT' === this.eventoJornadaDTO.tipoSalida;\n    }\n    this.mostrarPopup = true;\n  }\n\n  async cargarFechaFiltro() {\n    let registro = new RegistroProcesoModel();\n    registro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    registro.estado = this.liquidaTiempoPipe.NOMINA;\n    let lista = [];\n    lista = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', false, registro)).toPromise();\n    if (lista != null && lista.length != 0) {\n      let fechaConsulta = lista[0].fechaInicial;\n      this.fecha = new Date(fechaConsulta);\n    }\n  }\n\n  cambiarDatos() {\n    this.deshabilitarCampos = false;\n  }\n\n  onSelectPersona(persona) {\n    this.eventoJornadaDTO.nombreCompleto = persona.nombresPersona;\n    this.eventoJornadaDTO.persona = persona.llaveTabla;\n  }\n\n  async actualizarHoras() {\n    if (this.horaInicial != null && this.eventoJornadaDTO.horaInicio != null) {\n      this.eventoJornadaDTO.horaInicio = new Date(this.eventoJornadaDTO.horaInicio.setHours(this.horaInicial.getHours(), this.horaInicial.getMinutes(), 0, 0));\n    }\n    if (this.horaFinal.getHours() != null) {\n      if (this.horaInicial.getHours() != null) {\n        let horaFin = new Date(this.eventoJornadaDTO.horaInicio);\n        if (!this.compararHoras(this.horaInicial, this.horaFinal)) {\n          let consultaFecha = await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(this.eventoJornadaDTO.horaInicio), 'yyyy-MM-dd HH:mm:ss.S'), dias: 1 }).toPromise();\n          horaFin = new Date(consultaFecha.respuesta);\n        }\n        this.eventoJornadaDTO.horaFin = new Date(horaFin.setHours(this.horaFinal.getHours(), this.horaFinal.getMinutes(), 0, 0));\n      } else {\n        this.eventoJornadaDTO.horaFin = new Date(this.eventoJornadaDTO.horaFin.setHours(parseInt(this.horaFinal.getHours(), 10), parseInt(this.horaFinal.getMinutes(), 10), 0, 0));\n      }\n    }\n  }\n\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async eliminarRegistro() {\n    if (!this.bloquearEntrada && this.bloquearSalida) {\n      this.eventoJornadaDTO.estado = this.eventoJornadaPipe.ESTADO_ABIERTO;\n      this.eventoJornadaDTO.dispositivoEntrada = null;\n      this.eventoJornadaDTO.horaInicio = null;\n      this.horaInicial = null;\n      if ((await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoJornadaDTO)).toPromise()) <= 0) {\n        this.toastService.showError(Constantes.MENSAJE_ACTUALIZAR_NO);\n        return;\n      };\n      this.toastService.showSuccess('Se quitó el dato de entrada');\n      return;\n    }\n    if (this.bloquearEntrada && !this.bloquearSalida) {\n      this.eventoJornadaDTO.estado = this.eventoJornadaPipe.ESTADO_ABIERTO;\n      this.eventoJornadaDTO.dispositivoSalida = null;\n      this.eventoJornadaDTO.horaFin = null;\n      this.horaFinal = null;\n      if ((await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoJornadaDTO)).toPromise()) <= 0) {\n        this.toastService.showError(Constantes.MENSAJE_ACTUALIZAR_NO);\n        return;\n      };\n      this.toastService.showSuccess('Se quitó el dato de salida');\n      return;\n    }\n    if (this.bloquearEntrada && this.bloquearSalida) {\n      this.toastService.showSuccess('No es posible borrar este registro');\n      return;\n    }\n\n    if ((await this.generalService.delete(new GeneralModel('EventoJornadaDTO', null, false, this.eventoJornadaDTO)).toPromise()) <= 0) {\n      this.toastService.showWarning(Constantes.MENSAJE_ELIMINAR_NO);\n      return;\n    }\n    this.toastService.showInfo(Constantes.MENSAJE_ELIMINAR);\n    this.ocultar(true);\n  }\n\n  validar(): boolean {\n    let validacion: boolean = true;\n    if ((this.eventoJornadaDTO.horaInicio != null && this.horaInicial == null) || (this.eventoJornadaDTO.horaInicio == null && this.horaInicial != null)) {\n      validacion = false;\n    }\n    if ((this.eventoJornadaDTO.horaFin != null && this.horaFinal == null) || this.eventoJornadaDTO.horaFin == null && this.horaFinal != null) {\n      validacion = false;\n    }\n    return validacion;\n  }\n\n  isEntrada() {\n    if (this.utilService.validarCampoObligatorio(this.eventoJornadaDTO.horaInicio) || this.utilService.validarCampoObligatorio(this.horaInicial)) {\n        return false;\n    }\n    return true;\n  }\n\n  isSalida() {\n    if (this.utilService.validarCampoObligatorio(this.eventoJornadaDTO.horaFin) || this.utilService.validarCampoObligatorio(this.horaFinal)) {\n        return false;\n    }\n    return true;\n  }\n  \n\n  async guardar() {\n    if (!this.eventoJornadaDTO.horaInicio && !this.eventoJornadaDTO.horaInicial && !this.eventoJornadaDTO.horaFin && !this.horaFinal) {\n      this.toastService.showError('Debe diligenciar la entrada o la salida');\n      this.clickGuardar = true;\n      return\n    }\n    if (!this.validar()) {\n      this.toastService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      this.clickGuardar = true;\n      return;\n    }\n    let validacionCreacion: boolean;\n    this.actualizarHoras();\n    if (this.eventoJornadaDTO.horaInicio != null) {\n      if (this.eventoJornadaDTO.horaInicio > new Date()) {\n        this.toastService.showWarning('Fecha inicial no puede ser superior a ' + this.datePipe.transform(new Date(new Date()), 'yyyy-MM-dd HH:mm:ss'));\n        return;\n      }\n    }\n    if (this.eventoJornadaDTO.horaFin != null) {\n      if (this.eventoJornadaDTO.horaFin > new Date()) {\n        this.toastService.showWarning('Fecha final no puede ser superior a ' + this.datePipe.transform(new Date(new Date()), 'yyyy-MM-dd HH:mm:ss'));\n        return;\n      }\n    }\n    if (this.eventoJornadaDTO.horaInicio != null && this.eventoJornadaDTO.horaFin != null && (this.eventoJornadaDTO.estado === this.eventoJornadaPipe.ESTADO_ABIERTO || this.eventoJornadaDTO.estado === this.eventoJornadaPipe.ESTADO_INCONSISTENCIA)) {\n      this.eventoJornadaDTO.estado = this.eventoJornadaPipe.ESTADO_CERRADO;\n    }\n    if (this.eventoJornadaDTO.horaFin == null) {\n      this.eventoJornadaDTO.mensaje = this.eventoJornadaPipe.MENSAJE_SALIDA_SIN_ENTRADA;\n    } else if (this.eventoJornadaDTO.horaInicio == null) {\n      this.eventoJornadaDTO.mensaje = this.eventoJornadaPipe.MENSAJE_ENTRADA_SIN_SALIDA;\n    } else {\n      this.eventoJornadaDTO.mensaje = this.eventoJornadaPipe.MENSAJE_OK;\n    }\n    if (this.eventoJornadaDTO.llaveTabla == null) {\n      this.eventoJornadaDTO.origen = this.eventoJornadaPipe.ORIGEN_TIEMPOS;\n      await this.generalService.crearRegistro(new GeneralModel('EventoJornadaDTO', null, false, this.eventoJornadaDTO)).toPromise();\n      validacionCreacion = true;\n    } else {\n      await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoJornadaDTO)).toPromise();\n      validacionCreacion = false;\n    }\n    if (validacionCreacion) {\n      this.toastService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n    } else {\n      this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n    }\n    this.deshabilitarCampos = this.cerradoAnulado();\n    this.ocultar(true);\n  }\n\n\n  public ocultar(actualizo?: boolean) {\n    this.mostrarPopup = false;\n    this.regresar.emit({procesoActualiza: actualizo, indexDestino: this.indexOrigen, llaveTabla: this.eventoJornadaDTO.persona});\n  }\n\n\n  public cerradoAnulado(): boolean {\n    return this.eventoJornadaPipe.ESTADO_ANULADO === this.eventoJornadaDTO.estado || this.eventoJornadaPipe.ESTADO_CERRADO === this.eventoJornadaDTO.estado;\n  }\n\n  compararHoras(horaActual: any, horaComparacion: any): boolean {\n    const hora1 = horaActual.getHours();\n    const minuto1 = horaActual.getMinutes();\n    const hora2 = horaComparacion.getHours();\n    const minuto2 = horaComparacion.getMinutes();\n    if (hora1 < hora2) {\n      return true;\n    } else if (hora1 === hora2 && minuto1 < minuto2) {\n      return true;\n    }\n    return false;\n  }\n\n  validarEntrada(event: KeyboardEvent) {\n    const input = event.key;\n    const allowedChars = '0123456789:';\n    const inputValue = (event.target as HTMLInputElement).value + input;\n\n    if (inputValue.length > 5) {\n      event.preventDefault();\n    }\n\n    if (allowedChars.indexOf(input) === -1) {\n      event.preventDefault();\n    }\n\n    if (inputValue.length === 2 && inputValue.indexOf(':') === -1) {\n      event.target['value'] = inputValue + ':';\n      event.preventDefault();\n    }\n\n    if (inputValue.length === 5) {\n      const [hours, minutes] = inputValue.split(':');\n      const validHours = Number(hours) >= 0 && Number(hours) <= 24;\n      const validMinutes = Number(minutes) >= 0 && Number(minutes) <= 59;\n\n      if (!validHours || !validMinutes) {\n        event.preventDefault();\n      }\n    }\n  }\n\n\n\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog id=\"formPopupReloj\" header=\"{{labelPopup | translate}}\" [(visible)]=\"mostrarPopup\" [style]=\"{width: '60vw'}\"\n    (onHide)=\"ocultar()\" (onShow)=\"mostrar()\" [modal]=\"true\">\n    <div class=\"p-fluid grid mt-1 mb-3\">\n        <!-- NOMBRES -->\n        <div class=\"col-6 col:md-4\" *ngIf=\"!mostrarP\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"persona\" [(ngModel)]=\"eventoJornadaDTO.nombreCompleto\" [disabled]=\"true\">\n                <label htmlFor=\"persona\">{{'nombre' | translate}}s</label>\n            </span>\n        </div>\n        <!-- NOMBRES CON FILTRO -->\n        <div class=\"col-6 col:md-4\" *ngIf=\"mostrarP\">\n            <app-popup-buscar-persona [booleano]=\"true\" [nombreInput]=\"'nombre'\" [mostrarX]=\"true\"\n                [label]=\"eventoJornadaDTO.llaveTabla == null ? '' :  eventoJornadaDTO.nombreCompleto\"\n                (onSelected)=\"onSelectPersona($event)\"></app-popup-buscar-persona>\n        </div>\n        <!-- ESTADO -->\n        <div class=\"col-6 col:md-4\" *ngIf=\"eventoJornadaDTO.llaveTabla != null\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipo\" [options]=\"listaEstado\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"eventoJornadaDTO.estado\" [autoDisplayFirst]=\"false\" [disabled]=\"deshabilitarCampos\">\n                </p-dropdown>\n                <label htmlFor=\"estado\">{{'estado' | translate}}</label>\n            </span>\n        </div>\n        <!-- ESTADO NUEVO -->\n        <div class=\"col-6 col:md-4\" *ngIf=\"eventoJornadaDTO.llaveTabla == null\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"tipo\" [options]=\"listaEstadoNuevo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                    [(ngModel)]=\"eventoJornadaDTO.estado\" [autoDisplayFirst]=\"false\" [disabled]=\"deshabilitarCampos\">\n                </p-dropdown>\n                <label htmlFor=\"estado\">{{'estado' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"col-12 col:md-4\">\n            <p-fieldset class=\"fieltsintitulo\">\n                <div class=\"p-fluid grid\">\n                    <!-- LABEL ENTRADA -->\n                    <div class=\"col-6 col:md-4 mb-0\">\n                        <label htmlFor=\"entrada\" class=\"font-semibold text-gray-900 text-base ml-1\">{{'entrada'\n                            |translate}}</label>\n                    </div>\n                    <!-- LABEL SALIDA -->\n                    <div class=\"col-6 col:md-4 mb-0\">\n                        <label htmlFor=\"salida\" class=\"font-semibold text-gray-900 text-base ml-1\">{{'salida'\n                            |translate}}</label>\n                    </div>\n                    <!-- MARCACION ENTRADA -->\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"tipoEntrada\" [options]=\"listaTipoMarcacion\" optionLabel=\"nombre\"\n                                optionValue=\"codigo\" [(ngModel)]=\"eventoJornadaDTO.tipoEntrada\" [disabled]=\"true\">\n                            </p-dropdown>\n                            <label htmlFor=\"tipoEntrada\">{{'marcacion' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- MARCACION SALIDA -->\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"tipoSalida\" [options]=\"listaTipoMarcacion\" optionLabel=\"nombre\"\n                                optionValue=\"codigo\" [(ngModel)]=\"eventoJornadaDTO.tipoSalida\" [disabled]=\"true\"\n                                appendTo=\"body\">\n                            </p-dropdown>\n                            <label htmlFor=\"tipoSalida\">{{'marcacion' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- DISPOSITIVO ENTRADA -->\n                    <div class=\"col-6 col:md-4 mt-3\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"dispositivoEntradaselect\" [options]=\"listaDispositivos\"\n                                optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"eventoJornadaDTO.dispositivoEntrada\"\n                                [autoDisplayFirst]=\"false\" [disabled]=\"bloquearEntrada\">\n                            </p-dropdown>\n                            <label htmlFor=\"dispositivoEntradaselect\">{{'dispositivo' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- DISPOSITIVO SALIDA -->\n                    <div class=\"col-6 col:md-4 mt-3\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"dispositivoEntradaselect\" [options]=\"listaDispositivos\"\n                                optionLabel=\"label\" optionValue=\"key\" [(ngModel)]=\"eventoJornadaDTO.dispositivoSalida\"\n                                [autoDisplayFirst]=\"false\" appendTo=\"body\" [disabled]=\"bloquearSalida\">\n                            </p-dropdown>\n                            <label htmlFor=\"dispositivoEntradaselect\">{{'dispositivo' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA ENTRADA -->\n                    <div class=\"col-6 col:md-4 mt-3\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"eventoJornadaDTO.horaInicio\" dateFormat=\"dd/mm/yy\"\n                                [showIcon]=\"true\" appendTo=\"body\"\n                                [class.ng-dirty]=\"isSalida() && !this.utilService.validarCampoObligatorio(eventoJornadaDTO.horaInicio) && clickGuardar\"\n                                [class.ng-invalid]=\"isSalida() && !this.utilService.validarCampoObligatorio(eventoJornadaDTO.horaInicio) && clickGuardar\" \n                                [disabled]=\"deshabilitarCampos || bloquearEntrada\"></p-calendar>\n                            <label htmlFor=\"fechaIni\">{{'fecha' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA SALIDA -->\n                    <div class=\"col-6 col:md-4 mt-3\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"eventoJornadaDTO.horaFin\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [disabled]=\"deshabilitarCampos || bloquearSalida\"\n                                [class.ng-dirty]=\"isEntrada() && !this.utilService.validarCampoObligatorio(eventoJornadaDTO.horaFin) && clickGuardar\"\n                                [class.ng-invalid]=\"isEntrada() && !this.utilService.validarCampoObligatorio(eventoJornadaDTO.horaFin) && clickGuardar\" >\n                            </p-calendar>\n                            <label htmlFor=\"fechaFin\">{{'fecha' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- HORA ENTRADA -->\n                    <div class=\"col-6 col:md-4 mt-3\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"horaInicial\" [timeOnly]=\"true\" [hourFormat]=\"'24'\"\n                                inputId=\"timeonly\" dateFormat=\"HH:mm:ss\"\n                                [class.ng-dirty]=\"isSalida() && !this.utilService.validarCampoObligatorio(horaInicial) && clickGuardar\"\n                                [class.ng-invalid]=\"isSalida() && !this.utilService.validarCampoObligatorio(horaInicial) && clickGuardar\"\n                                [disabled]=\"deshabilitarCampos || bloquearEntrada\"></p-calendar>\n                            <label htmlFor=\"horaIni\">{{'hora' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- HORA SALIDA -->\n                    <div class=\"col-6 col:md-4 mt-3\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"horaFinal\" [timeOnly]=\"true\" [hourFormat]=\"'24'\" inputId=\"timeonly\"\n                                dateFormat=\"HH:mm:ss\" [disabled]=\"deshabilitarCampos || bloquearSalida\"\n                                [class.ng-dirty]=\"isEntrada() && !this.utilService.validarCampoObligatorio(horaFinal) && clickGuardar\"\n                                [class.ng-invalid]=\"isEntrada() && !this.utilService.validarCampoObligatorio(horaFinal) && clickGuardar\"></p-calendar>\n                            <label htmlFor=\"horaFin\">{{'hora' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n            </p-fieldset>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end mb-3\">\n        <!-- BOTON ACTUALIZAR -->\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"eventoJornadaDTO.llaveTabla != null && controlFuncionalidad.getControlFuncionalidad('jorn:reloj') && mostrarEliminar\"\n            icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <!-- BOTON GUARDAR -->\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"eventoJornadaDTO.llaveTabla == null && controlFuncionalidad.getControlFuncionalidad('jorn:reloj') && mostrarEliminar\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardar()\">\n        </button>\n        <!-- BOTON ELIMINAR -->\n        <button pButton pRipple class=\"ml-2 p-button-outlined\"\n            *ngIf=\"eventoJornadaDTO.llaveTabla != null && controlFuncionalidad.getControlFuncionalidad('jorn:reloj') && mostrarEliminar  && !(bloquearEntrada && bloquearSalida)\"\n            icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n            (click)=\"showEliminarConfirmDialog()\">\n        </button>\n        <!-- BORON CAMBIAR DATOS -->\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('jorn:cambiarDato') && !mostrarEliminar\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'cambiardato' | translate}}\" (click)=\"cambiarDatos()\">\n        </button>\n    </div>\n</p-dialog>","import { EventoJornadaModel } from '../../../models/EventoJornadaModel';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { PopupRelojComponent } from '../../../popups/popup-reloj/popup-reloj.component';\nimport { EventoJornadaConsPipe } from '../../../pipes/eventoJornadaCons.pipe';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { Calendar, CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n\n@Component({\n  selector: 'app-reloj-persona',\n  templateUrl: './reloj-persona.component.html',\n  styleUrls: ['./reloj-persona.component.scss'],\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, CalendarModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupRelojComponent, DatePipe, TranslateModule, EventoJornadaConsPipe, FiltroGeneralComponent, ButtonModule]\n})\nexport class RelojPersonaComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @ViewChild('popupReloj') popupReloj: PopupRelojComponent;\n  @ViewChild('calendar') calendar: Calendar;\n\n  listaReloj: EventoJornadaModel[] = [];\n  filtro: EventoJornadaModel = new EventoJornadaModel();\n  persona: PersonaModel = new PersonaModel();\n  origen: string;\n  horaInicio: Date;\n  registroProceso: RegistroProcesoModel = new RegistroProcesoModel();\n  isLoadingData: boolean = false;\n  loaginButton: boolean = false;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private authService: AuthService,\n    private liquidacionTiempoCons: liquidacionTiempoPipe,\n    private eventoJornadaPipe: EventoJornadaConsPipe,\n    private utilService: UtilsService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.inicializar();\n    await this.utilService.resizeWindowIFrame();\n  }\n\n  inicializar() {\n    this.filtro = new EventoJornadaModel();\n    this.horaInicio = new Date();\n    this.listaReloj = [];\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      }\n    ]\n  }\n\n  async cargar(personaDTO: PersonaModel, origen: string) {\n    this.inicializar();\n    this.persona = personaDTO;\n    this.origen = origen;\n    this.cargarFiltroFecha();\n    this.loadData();\n  }\n\n  async loadData() {\n    this.filtro.persona = this.persona.llaveTabla;\n    this.filtro.origen = this.origen;\n    this.filtro.horaInicio = this.filtro.horaInicio ? new Date(this.filtro.horaInicio) : null;\n    this.isLoadingData = true;\n    this.listaReloj = await this.generalService.queryForList(new GeneralModel('EventoJornadaDTO', null, false, this.filtro)).toPromise();\n    this.paginator.totalRecords = this.listaReloj.length;\n    if (this.listaReloj) {\n      this.isLoadingData = false;\n    }\n  }\n\n  async cargarFiltroFecha() {\n    let registro = new RegistroProcesoModel();\n    registro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    registro.estado = this.liquidacionTiempoCons.NOMINA;\n    let lista = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', false, registro)).toPromise();\n    if (lista != null && lista.length != 0) {\n      this.registroProceso = lista[0];\n      this.filtro.horaInicio = new Date(this.registroProceso.fechaInicial);\n    }\n    await this.utilService.sleep(100);\n    this.filtroItem?.aplicarFiltros();\n  }\n\n  async cargarListaFiltros(evento) {\n    if (evento['fechaInicial']) {\n      this.filtro.horaInicio = evento['fechaInicial'].value;\n    }\n    if (!this.filtroItem.isApply) {\n      this.filtroItem.chips = [];\n      this.filtro.horaInicio = null;\n    }\n    this.loadData();\n  }\n\n  async verHora(evento) {\n    this.isLoadingData = true;\n    await this.utilService.sleep(100);\n    let eventoJornada: EventoJornadaModel = evento.data;\n    this.popupReloj.cargar(eventoJornada, false).then(data => {\n      this.isLoadingData = false;\n    });\n  }\n\n  async nuevo() {\n    this.isLoadingData = true;\n    await this.utilService.sleep(100);\n    let eventoJornada: EventoJornadaModel = new EventoJornadaModel();\n    eventoJornada.persona = this.persona.llaveTabla;\n    eventoJornada.nombreCompleto = this.persona.nombresPersona;\n    this.popupReloj.cargar(eventoJornada, false).then(data => {\n      this.isLoadingData = false;\n    });\n  }\n\n  async regresar(evento: any) {\n    if (evento.procesoActualiza) {\n      await this.utilService.sleep(100);\n      this.filtroItem?.aplicarFiltros();\n      this.loadData();\n    }\n  }\n\n  public mapMensaje(estado: string): boolean {\n    let validacion = this.eventoJornadaPipe.MENSAJE.find(element => element.codigo == estado);\n    if (validacion) {\n      return true;\n    }\n    return false;\n  }\n\n  onFocus(event: Event) {\n    event.preventDefault();\n    this.calendar.hideOverlay();\n  }\n\n}\n","<div id=\"id_panelRelojPersona\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!--Filtro buscar-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar #calendar formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"filtro.horaInicio\"\n                                (onFocus)=\"onFocus($event)\"></p-calendar>\n                            <label for=\"fechaInicial\">{{'fechainicial' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        <div class=\"flex justify-content-end\">\n            <!--BOTON NUEVO -->\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevo()\"\n                label=\"{{'link_nuevo' | translate}}\" *ngIf=\"controlFuncionalidad.getControlFuncionalidad('jorn:reloj')\"\n                [loading]=\"loaginButton\">\n            </button>\n        </div>\n    </div>\n    <p-table [value]=\"listaReloj\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" [scrollable]=\"true\" selectionMode=\"single\" (onRowSelect)=\"verHora($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'horainicial' | translate}}</th>\n                <th>{{'horafinal' | translate}}</th>\n                <th>{{'estado' | translate}}</th>\n                <th>{{'hora' | translate}} {{'posible' | translate}} {{'salida' | translate}}</th>\n                <th>{{'mensaje' | translate}}</th>\n                <th>{{'dispositivo_entrada' | translate}}</th>\n                <th>{{'dispositivo_salida' | translate}}</th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-marcacion>\n            <tr [pSelectableRow]=\"marcacion\">\n                <td>{{marcacion.horaInicio | date:'dd/MM/yyyy HH:mm'}}</td>\n                <td>{{marcacion.horaFin | date:'dd/MM/yyyy HH:mm'}}</td>\n                <td>{{marcacion.estado | eventoJornadaConsPipe : 'listaEstado'}}</td>\n                <td *ngIf=\"marcacion.estado != 'C'\">{{marcacion.salidaPrograma | date:'dd/MM/yyyy HH:mm'}}</td>\n                <td *ngIf=\"marcacion.estado == 'C'\"></td>\n                <td>\n                    <ng-container *ngIf=\"mapMensaje(marcacion.mensaje)\">\n                        {{marcacion.mensaje | eventoJornadaConsPipe : 'listaMensaje'}}\n                    </ng-container>\n                </td>\n                <td>{{marcacion.descripcionDisEntrada}} {{marcacion.localizaEntrada}}</td>\n                <td>{{marcacion.descripcionDisSalida}} {{marcacion.localizaSalida}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<app-popup-reloj #popupReloj (regresar)=\"regresar($event)\"></app-popup-reloj>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActoCambioEmpleadoModel } from '../../../../actos/models/ActoCambioEmpleadoModel';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { UsuarioFormatoModel } from '../../../../actos/models/UsuarioFormatoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { ParametroFormatoPipe } from '../../../../../shared/pipes/parametroFormato.pipe';\nimport { SitioModel } from '../../../models/SitioModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n  selector: 'app-listado-traslado-temporal-persona',\n  templateUrl: './listado-traslado-temporal-persona.component.html',\n  styleUrls: ['./listado-traslado-temporal-persona.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, DropdownModule, FormsModule, CalendarModule, DatePipe, TranslateModule]\n})\nexport class ListadoTrasladoTemporalPersonaComponent implements OnInit {\n\n  @ViewChild('tablaGeneral') tabla: Table;\n\n  listaActos: ActoCambioEmpleadoModel[] = [];\n  nuevoRegistro: ActoCambioEmpleadoModel = new ActoCambioEmpleadoModel();\n  listaSitio = [];\n  listaFormato = [];\n  persona: PersonaModel = new PersonaModel();\n  isLoadingData: boolean = false;\n  vistaVisualizar: string = '';\n  habilitaCampo: boolean = false;\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n  clickGuardar: boolean = false;\n\n  constructor(\n    private authService: AuthService,\n    private parametrosFormatoPipe: ParametroFormatoPipe,\n    private cargarMapas: cargarmapasGlobal,\n    private generalService: GeneralService,\n    private saraappservice: SaraAplicacionService,\n    public utilService: UtilsService,\n    private confirmationService: ConfirmationService,\n    private toastService: ToastService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.inicializar();\n    await this.utilService.resizeWindowIFrame();\n  }\n\n  inicializar() {\n    this.cargarListas();\n    this.nuevoRegistro = new ActoCambioEmpleadoModel()\n  }\n\n  async cargarListas() {\n    let sitio = new SitioModel();\n    sitio.organizacion = (await this.saraappservice.getEmpresa()).organizacion\n    this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioSaraDTO', null, false, sitio));\n    let usuarioFormato = new UsuarioFormatoModel();\n    usuarioFormato.usuario = this.authService.getTokenKey('usuario');\n    usuarioFormato.accion = this.parametrosFormatoPipe.TRASLADOTEMPORALSITIO;\n    usuarioFormato.tipo = 'CE';\n    this.listaFormato = [];\n    this.listaFormato = await this.cargarMapas.cargarSelectItemConNumberString('formato', 'nombreFormato', new GeneralModel('UsuarioFormatoDTO', 'UsuarioFormato.traerFormatoElaborarAccion', false, usuarioFormato));\n  }\n\n  async cargar(personaDTO: PersonaModel) {\n    this.inicializar();\n    this.persona = personaDTO;\n    this.loadData();\n  }\n\n  async loadData() {\n    this.isLoadingData = true;\n    this.listaActos = await this.traerTrasladoTemporalTiempo(this.persona.empresa, this.persona.llaveTabla, null, null, null, false);\n    this.paginator.totalRecords = this.listaActos.length;\n    if (this.listaActos) {\n      this.listaActos.forEach(data => {\n        data.cambio = data.cambio ? new Date(data.cambio) : null;\n        data.fechafinal = data.fechafinal ? new Date(data.fechafinal) : null;\n      })\n      this.isLoadingData = false;\n    }\n  }\n\n\n  mostrarNuevo() {\n    this.vistaVisualizar = 'nuevo';\n    this.nuevoRegistro = new ActoCambioEmpleadoModel();\n    if (this.listaFormato.length > 2) {\n      this.nuevoRegistro.formato = this.listaFormato[1].toString();\n    }\n    this.habilitaCampo = true;\n  }\n\n  cancelarNuevo() {\n    this.vistaVisualizar = '';\n    this.nuevoRegistro = new ActoCambioEmpleadoModel;\n    this.habilitaCampo = false;\n  }\n\n  iniciarEdicion() {\n    this.habilitaCampo = true\n  }\n\n  async cancelarEdicion() {\n    this.habilitaCampo = false;\n    await this.loadData();\n  }\n\n  showEliminarConfirmDialog(event: Event, dato: ActoCambioEmpleadoModel): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro(dato);\n      },\n      reject: () => { }\n    });\n  }\n\n  eliminarRegistro(actoCambio: ActoCambioEmpleadoModel) {\n    if (actoCambio.llave != null) {\n      this.generalService.delete(new GeneralModel('ActoCambioEmpleadoDTO', null, false, actoCambio)).subscribe({\n        next: (data) => {\n          if (data == 1) {\n            this.toastService.showSuccess(Constantes.MENSAJE_ELIMINAR);\n            this.loadData();\n          } else {\n            this.toastService.showError('Error en el método de eliminar recurso');\n          }\n        },\n        error: (err) => {\n          var data = JSON.stringify(err.error.mensajeEtiqueta);\n          this.toastService.showError('El registro se utiliza en otros tareas, No es posible eliminarlo');\n        },\n      });\n    }\n  }\n\n  validar(dato: ActoCambioEmpleadoModel): boolean {\n    return ['formato', 'tiempoSitio', 'cambio', 'fechafinal'].every(campo => this.utilService.validarCampoObligatorio(dato[campo]));\n  }\n\n  async guardar(actoCambio: ActoCambioEmpleadoModel, nuevo: boolean) {\n    if(!this.validar(actoCambio)){\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      if(!nuevo){\n        this.tabla.initRowEdit(actoCambio);\n      }\n      return;\n    }\n    let listaTraslado = await this.traerTrasladoTemporalTiempo(this.persona.empresa, this.persona.llaveTabla, null, new Date(actoCambio.cambio), new Date(actoCambio.fechafinal), false);\n    for (const unCambio of listaTraslado) {\n      if (actoCambio.llave == null || unCambio.llave != actoCambio.llave) {\n        this.toastService.showError('Se presenta un cruce con otros registro');\n        return;\n      }\n    }\n    if (actoCambio.cambio > actoCambio.fechafinal) {\n      this.toastService.showError('Fecha inicial es mayor a la fecha final');\n      return;\n    }\n    if (nuevo) {\n      if (actoCambio.llave == null) {\n        actoCambio.llave = this.utilService.generarLlave();\n        actoCambio.persona = this.persona.llaveTabla;\n        actoCambio.hojaVida = this.persona.hojaVida;\n        actoCambio.estadoChar = 'L';\n        actoCambio.empleado = this.persona.contrato == null ? 0 : this.persona.contrato;\n        actoCambio.estadoNumero = 6;\n        actoCambio.empresa = this.persona.empresa;\n        actoCambio.cambio = new Date(actoCambio.cambio);\n        actoCambio.fechafinal = new Date(actoCambio.fechafinal);\n        this.generalService.crearRegistro(new GeneralModel('ActoCambioEmpleadoDTO', null, false, actoCambio)).subscribe({\n          next: (data) => {\n            if (data != null) {\n              this.toastService.showSuccess('Se creó el registro exitosamente');\n              this.loadData();\n            } else {\n              this.toastService.showError('Error en el método de agregar recurso');\n            }\n          },\n          error: (err) => {\n            var data = JSON.stringify(err.error.mensajeEtiqueta);\n            this.toastService.showError('Error al ingresar en el servicio');\n          },\n        });\n      }\n    } else {\n      this.generalService.update(new GeneralModel('ActoCambioEmpleadoDTO', null, false, actoCambio)).subscribe((data) => {\n        if (data == 1) {\n          this.toastService.showSuccess('Se actualizó el registro exitosamente');\n          this.loadData();\n        } else {\n          this.toastService.showError('Error en el método de actualizar recurso');\n        };\n      });\n    }\n    this.vistaVisualizar = '';\n    this.habilitaCampo = false;\n    this.nuevoRegistro = new ActoCambioEmpleadoModel();\n  }\n\n  public async traerTrasladoTemporalTiempo(empresa: number, llavePersona: string, sitio: string, fechaInicial: Date, fechaFinal: Date, recorteFecha: boolean): Promise<any[]> {\n    let listaActos = [];\n    let comodin: ActoCambioEmpleadoModel = new ActoCambioEmpleadoModel();\n    comodin.persona = llavePersona;\n    comodin.fechaFinalBusqueda = fechaFinal;\n    comodin.fechaInicioBusqueda = fechaInicial;\n    comodin.empresa = empresa;\n    comodin.tiempoSitio = sitio\n    listaActos = await this.generalService.queryForList(new GeneralModel('ActoCambioEmpleadoDTO', 'ActoCambioEmpleado.consultarTrasladoTemporal', false, comodin)).toPromise();\n    if (recorteFecha && this.listaActos) {\n      for (const actoCambio of listaActos) {\n        actoCambio.cambio = new Date(actoCambio.cambio);\n        actoCambio.fechafinal = new Date(actoCambio.fechafinal);\n        if (actoCambio.cambio < fechaInicial) {\n          actoCambio.cambio = fechaInicial\n        }\n        if (actoCambio.fechafinal > fechaFinal) {\n          actoCambio.fechafinal = fechaFinal\n        }\n      }\n    }\n    return listaActos;\n  }\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div id=\"id_listadoTrasladoTemporal\">\n    <div class=\"flex justify-content-end align-items-center mb-3\">\n        <!-- BOTON NUEVO -->\n        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"mostrarNuevo()\"\n            label=\"{{'link_nuevo' | translate}}\" [disabled]=\"habilitaCampo\" *ngIf=\"listaFormato.length > 0\">\n        </button>\n    </div>\n    <p-table [value]=\"listaActos\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" dataKey=\"llave\" editMode=\"row\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 40%;\">{{'formato' | translate}}</th>\n                <th style=\"width: 20%;\">{{'sitio' | translate}}</th>\n                <th style=\"width: 15%;\">{{'desde' | translate}}</th>\n                <th style=\"width: 15%;\">{{'hasta' | translate}}</th>\n                <th style=\"width: 10%;\"></th>\n            </tr>\n            <tr *ngIf=\"vistaVisualizar == 'nuevo' \" class=\"TablaNuevoRegistro\">\n                <td style=\"width: 40%\">\n                    <p-dropdown #idNuevoFormato=\"ngModel\" inputId=\"formato\" [options]=\"listaFormato\" optionLabel=\"label\"\n                        optionValue=\"key\" [(ngModel)]=\"nuevoRegistro.formato\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                        [class.ng-dirty]=\"!utilService.validarCampoObligatorio(nuevoRegistro.formato) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilService.validarCampoObligatorio(nuevoRegistro.formato) && clickGuardar\">\n                    </p-dropdown>\n                </td>\n                <td style=\"width: 20%\">\n                    <p-dropdown #idNuevoSitio=\"ngModel\" inputId=\"sitio\" [options]=\"listaSitio\" optionLabel=\"label\"\n                        optionValue=\"key\" [(ngModel)]=\"nuevoRegistro.tiempoSitio\" [autoDisplayFirst]=\"false\"\n                        appendTo=\"body\"\n                        [class.ng-dirty]=\"!utilService.validarCampoObligatorio(nuevoRegistro.tiempoSitio) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilService.validarCampoObligatorio(nuevoRegistro.tiempoSitio) && clickGuardar\">\n                    </p-dropdown>\n                </td>\n                <td style=\"width: 15%\">\n                    <p-calendar #idNuevoDesde=\"ngModel\" [(ngModel)]=\"nuevoRegistro.cambio\" dateFormat=\"dd/mm/yy\"\n                        [showIcon]=\"true\" appendTo=\"body\"\n                        [class.ng-dirty]=\"!utilService.validarCampoObligatorio(nuevoRegistro.cambio) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilService.validarCampoObligatorio(nuevoRegistro.cambio) && clickGuardar\"></p-calendar>\n                </td>\n                <td style=\"width: 15%\">\n                    <p-calendar #idNuevoHasta=\"ngModel\" [(ngModel)]=\"nuevoRegistro.fechafinal\" dateFormat=\"dd/mm/yy\"\n                        [showIcon]=\"true\" appendTo=\"body\"\n                        [class.ng-dirty]=\"!utilService.validarCampoObligatorio(nuevoRegistro.fechafinal) && clickGuardar\"\n                        [class.ng-invalid]=\"!utilService.validarCampoObligatorio(nuevoRegistro.fechafinal) && clickGuardar\"></p-calendar>\n                </td>\n                <!-- BOTONES NUEVO REGISTRO -->\n                <td style=\"width: 10%;\">\n                    <div class=\"flex justify-content-end\">\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-check\"\n                            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            (click)=\"guardar(nuevoRegistro, true)\"></button>\n                        <button pButton pRipple type=\"button\" icon=\"pi pi-times\" (click)=\"cancelarNuevo()\"\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>\n                    </div>\n                </td>\n            </tr>\n\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-actoTemporal let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr [pEditableRow]=\"actoTemporal\">\n                <td style=\"width: 40%\">\n                    {{actoTemporal.nombreFormato}}\n                </td>\n                <td style=\"width: 20%;\">\n                    <p-cellEditor>\n                        <ng-template pTemplate=\"input\">\n                            <p-dropdown inputId=\"sitio\" [options]=\"listaSitio\" optionLabel=\"label\" optionValue=\"key\"\n                                [(ngModel)]=\"actoTemporal.tiempoSitio\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(actoTemporal.tiempoSitio) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(actoTemporal.tiempoSitio) && clickGuardar\">\n                            </p-dropdown>\n                        </ng-template>\n                        <ng-template pTemplate=\"output\">\n                            {{actoTemporal.nombreTiempoSitio}}\n                        </ng-template>\n                    </p-cellEditor>\n                </td>\n                <td style=\"width: 15%\">\n                    <p-cellEditor>\n                        <ng-template pTemplate=\"input\">\n                            <p-calendar [(ngModel)]=\"actoTemporal.cambio\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(actoTemporal.cambio) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(actoTemporal.cambio) && clickGuardar\"></p-calendar>\n                        </ng-template>\n                        <ng-template pTemplate=\"output\">\n                            {{actoTemporal.cambio | date:'dd/MM/yyyy'}}\n                        </ng-template>\n                    </p-cellEditor>\n                </td>\n                <td style=\"width: 15%\">\n                    <p-cellEditor>\n                        <ng-template pTemplate=\"input\">\n                            <p-calendar [(ngModel)]=\"actoTemporal.fechafinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" required></p-calendar>\n                        </ng-template>\n                        <ng-template pTemplate=\"output\">\n                            {{actoTemporal.fechafinal | date:'dd/MM/yyyy'}}\n                        </ng-template>\n                    </p-cellEditor>\n                </td>\n                <!-- BOTONES -->\n                <td style=\"width: 10%;\">\n                    <div class=\"flex justify-content-end\">\n                        <!-- CHECK GUARDAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                            (click)=\"guardar(actoTemporal, false)\"\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>\n                        <!-- CANCELAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow\n                            (click)=\"cancelarEdicion()\" icon=\"pi pi-times\"\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>\n                        <!-- EDITAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                            (click)=\"iniciarEdicion()\" icon=\"glyphicons glyphicons-pencil\"\n                            class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            [disabled]=\"habilitaCampo\"></button>\n                        <!-- ELIMINAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pDeleteEditableRow icon=\"pi pi-trash\"\n                            (click)=\"showEliminarConfirmDialog($event, actoTemporal)\"\n                            class=\"p-element p-ripple p-button-rounded p-button-outlined mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            [disabled]=\"habilitaCampo\"></button>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>","import { UnionModel } from 'general-library-union'\nimport { DiaHorarioModel } from './DiaHorarioModel';\n\nexport class JornadaHisModel extends UnionModel {\n\n\tpersona: String;\n\ttipo: String;\n\ttipoHorario: String;\n\tdesde: Date;\n\thasta: Date;\n\thoraInicial: Date;\n\thoraFinal: Date;\n\tsitio: String;\n\tserie: String;\n\tdepende: String;\n\tentradaPrograma: Date;\n\tsalidaPrograma: Date;\n\tdiasSemana: String;\n\tfestivo: String;\n\tcircuito: String;\n\tdiasLibre: number;\n\tdiasLaboral: number;\n\ttipoHorario2: String;\n\ttipoHorario3: String;\n\ttipoHorario4: String;\n\tlaborados: number;\n\tsitio2: String;\n\tsitio3: String;\n\tsitio4: String;\n\tentradaReloj: Date;\n\tsalidaReloj: Date;\n\tjornada: String;\n\tjornadaAjuste: String;\n\tmarcacionSemana: String;\n\thorasAntes: number;\n\thorasDespues: number;\n\thorasProgramadas: number;\n\thorasLibre: number;\n\tentradaLiquida: Date;\n\tsalidaLiquida: Date;\n\testado: String;\n\tautorizado: String;\n\testadoSolicitud: String;\n\tjornadaOrigen: String;\n\tnombreSitio: String;\n\ttotalHoras: number;\n\tpaisEmpresa: String;\n\tnombresPersona: String;\n\thojaVidaPersona: number;\n\tlistaHorarios: DiaHorarioModel[];\n\tnombreHorario: String;\n\thorarioCadena: String;\n\tentradaRelojDesc: Date;\n\tentradaLiquidaDesc: Date;\n\tcontrato: number;\n\tcedula: number;\n\tempresa: number;\n\ttipoAusencia: String;\n\tnombrePersonaOrigen: String;\n\t tipoHorarioTipo: String;\n\trangoInicial: Date;\n\trangoFinal: Date;\n\tregistroProceso: String;\n\treglaProgramacion: String;\n\thijasProgramadas: number;\n\thijasInconsistencia: number;\n\tnombreGrupo: String;\n\tjornadaAusencia: String;\n\tfechaLiquida: Date;\n\tsinJornadaAusencia: String;\n\t\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PersonaConsPipe } from '../../../pipes/personaCons.pipe';\nimport { JornadaHisModel } from '../../../models/JornadaHisModel';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { jornadaConsPipe } from '../../../pipes/JornadaCons.pipe';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n\n@Component({\n  selector: 'app-programacion-persona-historico',\n  templateUrl: './programacion-persona-historico.component.html',\n  styleUrls: ['./programacion-persona-historico.component.scss'],\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, CalendarModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, DatePipe, TranslateModule, jornadaConsPipe, FiltroGeneralComponent]\n})\nexport class ProgramacionPersonaHistoricoComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  listaJornada: JornadaHisModel[] = [];\n  jornada: JornadaHisModel = new JornadaHisModel();\n  persona: PersonaModel = new PersonaModel();\n  fechaInicio: Date;\n  registroProceso: RegistroProcesoModel = new RegistroProcesoModel();\n  fijo: boolean;\n  isLoadingData: boolean = false;\n\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n\n  constructor(\n    private personaPipe: PersonaConsPipe,\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private controlFuncionalidad: CargarControlFuncionalidadService,\n    private authService: AuthService,\n    private liquidacionTiempoPipe: liquidacionTiempoPipe,\n    private jornadaCons: jornadaConsPipe,\n    private utilsService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.inicializar();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  inicializar() {\n    this.jornada = new JornadaHisModel();\n    this.fechaInicio = new Date();\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n\n      }];\n  }\n\n  async cargar(personaDTO: PersonaModel) {\n    this.inicializar();\n    this.persona = personaDTO;\n    if (this.personaPipe.FIJO == this.persona.tipo) {\n      this.fijo = false\n    } else {\n      this.fijo = true;\n    }\n    await this.colocarFiltroFecha();\n    this.loadData();\n    await this.utilsService.sleep(100)\n    this.filtroItem?.aplicarFiltros();\n  }\n\n  async loadData() {\n    this.isLoadingData = true;\n    this.jornada.persona = this.persona?.llaveTabla;\n    this.jornada.paisEmpresa = this.persona?.pais;\n    this.jornada.desde = this.jornada.desde ? new Date(this.jornada.desde) : null;\n    this.jornada.hasta = this.jornada.hasta ? new Date(this.jornada.hasta) : null;\n    this.isLoadingData = true;\n    this.listaJornada = [];\n    this.listaJornada = await this.generalService.queryForList(new GeneralModel('JornadaHisDTO', 'JornadaHis.consultarJornadaHis', false, this.jornada)).toPromise();\n    this.paginator.totalRecords = this.listaJornada.length;\n    if (this.listaJornada) {\n      this.isLoadingData = false;\n      this.listaJornada.forEach(data => {\n        data.desde = data.desde ? new Date(data.desde) : null;\n        data.hasta = data.hasta ? new Date(data.hasta) : null;\n      })\n    }\n  }\n\n  async colocarFiltroFecha() {\n    let filtro = new RegistroProcesoModel();\n    filtro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    filtro.estado = this.liquidacionTiempoPipe.HISTORICO;\n    let lista = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', null, filtro)).toPromise();\n    if (lista != null && lista.length != 0) {\n      this.registroProceso = lista[0];\n      this.jornada.desde = new Date(this.registroProceso.fechaInicial);\n    }\n  }\n\n  async cargarListaFiltros(evento) {\n    if (evento['fechaInicial']) {\n      this.jornada.desde = evento['fechaInicial'].value;\n    }\n    if (evento['fechaFinal']) {\n      this.jornada.hasta = evento['fechaFinal'].value;\n    }\n    if (!this.filtroItem.isApply) {\n      if (this.filtroItem.chips.length == 0) {\n        this.filtroItem.chips = [];\n        this.jornada.hasta = null;\n        this.jornada.desde = null;\n      }\n    }\n    this.loadData();\n  }\n\n  public horasString(valor): any {\n    let result;\n    this.listaJornada.forEach(data => {\n      if (data.llaveTabla === valor) {\n        if (data.horaInicial || data.horaFinal) {\n          const fechaInicial = new Date(data.horaInicial);\n          const fechaFinal = new Date(data.horaFinal);\n          const horaMinFinal: string = fechaFinal.getHours().toString().padStart(2, '0') + ':' + fechaFinal.getMinutes().toString().padStart(2, '0');\n          const horaMinInicial: string = fechaInicial.getHours().toString().padStart(2, '0') + ':' + fechaInicial.getMinutes().toString().padStart(2, '0');\n          result = horaMinInicial + ' - ' + horaMinFinal;\n        }\n      }\n    });\n    return result;\n  }\n\n  public mapEstado(estado: string): boolean {\n    let validacion = this.jornadaCons.mapaTipos.find(element => element.codigo == estado);\n    if (validacion) {\n      return true;\n    }\n    return false;\n  }\n\n}\n","<div id=\"id_panelFiltroProgramacionHistorico\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!--Filtro buscar-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"jornada.desde\"></p-calendar>\n                            <label for=\"ubicacion\">{{'fechainicial' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar formControlName=\"fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"jornada.hasta\"></p-calendar>\n                            <label for=\"fechafinal\">{{'fechafinal' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n    <p-table [value]=\"listaJornada\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" [scrollable]=\"true\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 10%;\">{{'tipo' | translate}}</th>\n                <th style=\"width: 10%;\">{{'desde' | translate}}</th>\n                <th style=\"width: 10%;\">{{'hasta' | translate}}</th>\n                <th style=\"width: 10%;\">{{'horario' | translate}}</th>\n                <th style=\"width: 40%;\">{{'tipohorario' | translate}}</th>\n                <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n                <th style=\"width: 10%;\">{{'autorizado' | translate}}</th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-programacion>\n            <tr [pSelectableRow]=\"programacion\">\n                <td style=\"width: 10%;\"\n                    [style]=\"programacion.tipoHorarioTipo === 'NA' ? 'background-color:#F3FFEB;':''\">\n                    <ng-container *ngIf=\"mapEstado(programacion.tipo)\">\n                        {{programacion.tipo | jornadaConsPipe:'listaTipos'}}\n                    </ng-container>\n                </td>\n                <td style=\"width: 10%;\"\n                    [style]=\"programacion.tipoHorarioTipo === 'NA' ? 'background-color:#F3FFEB;':''\">\n                    {{programacion.desde | date:'dd/MM/yyyy'}}</td>\n                <td style=\"width: 10%;\"\n                    [style]=\"programacion.tipoHorarioTipo === 'NA' ? 'background-color:#F3FFEB;':''\">\n                    {{programacion.hasta | date:'dd/MM/yyyy'}}</td>\n                <td style=\"width: 10%;\"\n                    [style]=\"programacion.tipoHorarioTipo === 'NA' ? 'background-color:#F3FFEB;':''\">\n                    {{programacion.horarioCadena ? programacion.horarioCadena : horasString(programacion.llaveTabla)}}\n                </td>\n                <td style=\"width: 40%;\"\n                    [style]=\"programacion.tipoHorarioTipo === 'NA' ? 'background-color:#F3FFEB;':''\">\n                    {{programacion.nombreHorario }}</td>\n                <td style=\"width: 10%;\" [style]=\"programacion.tipoHorarioTipo === 'NA' ? 'background-color:#F3FFEB;':''\">\n                    {{programacion.estado | jornadaConsPipe:'listaEstados' }}</td>\n                <td style=\"width: 10%;\" [style]=\"programacion.tipoHorarioTipo === 'NA' ? 'background-color:#F3FFEB;':''\">\n                    {{programacion.autorizado | jornadaConsPipe:'listaAutorizacion'}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class EventoJornadaHisModel extends UnionModel {\n\n\thoraInicio:  Date;\n\thoraFin:  Date;\n\tdispositivoEntrada:  String;\n\tdispositivoSalida:  String;\n\tmensaje:  String;\n\testado:  String;\n\ttipoMensaje:  String;\n\taplicado:  String;\n\tpersona:  String;\n\ttipoEntrada:  String;\n\ttipoSalida:  String;\n\tsalidaPrograma:  Date;\n\ttipoInconsis:  String;\n\tregistroProceso:  String;\n\tconvenio:  String;\n\tjornada:  String;\n\torigen:  String;\n\tempresa:  number;\n\tfechaEvento:  Date;\n\tcontrato:  number;\n\thojaVida:  number;\n\tfechaSalida:  Date;\t\n\tconexion:  String;\n\ttipoMarcacion:  String;\n\tnombreCompleto:  String;\n\ttipoMedio:  String;\n\tdispositivoLectura:  String;\n\tproducto:  String;\n\tautorizacionEspecial:  String;\n\n}","import { EventoJornadaModel } from '../../../models/EventoJornadaModel';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { EventoJornadaHisModel } from '../../../models/EventoJornadaHisModel';\nimport { EventoJornadaConsPipe } from '../../../pipes/eventoJornadaCons.pipe';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n\n\n@Component({\n  selector: 'app-reloj-persona-historico',\n  templateUrl: './reloj-persona-historico.component.html',\n  styleUrls: ['./reloj-persona-historico.component.scss'],\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, CalendarModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgIf, DatePipe, TranslateModule, EventoJornadaConsPipe, FiltroGeneralComponent]\n})\nexport class RelojPersonaHistoricoComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  jornada: EventoJornadaHisModel = new EventoJornadaHisModel();\n  listaEvento: EventoJornadaHisModel[] = [];\n  persona: PersonaModel = new PersonaModel();\n  registroProceso: RegistroProcesoModel = new RegistroProcesoModel();\n  isLoadingData: boolean = false;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private authService: AuthService,\n    private liquidacionTiempoCons: liquidacionTiempoPipe,\n    private utilsService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.inicializar();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  inicializar() {\n    this.jornada = new EventoJornadaModel();\n    this.listaEvento = [];\n    this.filters = [\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      }\n    ]\n  }\n\n  async cargar(personaDTO: PersonaModel) {\n    this.inicializar();\n    this.persona = personaDTO;\n    this.cargarFiltroFecha();\n    this.loadData();\n  }\n\n  async loadData() {\n    this.jornada.persona = this.persona.llaveTabla;\n    this.jornada.nombreCompleto = this.persona.nombresPersona;\n    this.jornada.horaInicio = this.jornada.horaInicio ? new Date(this.jornada.horaInicio) : null;\n    this.isLoadingData = true;\n    this.listaEvento = [];\n    this.listaEvento = await this.generalService.queryForList(new GeneralModel('EventoJornadaHisDTO', null, false, this.jornada)).toPromise();\n    this.paginator.totalRecords = this.listaEvento.length;\n    if (this.listaEvento) {\n      this.isLoadingData = false;\n    }\n  }\n\n  async cargarFiltroFecha() {\n    let registro = new RegistroProcesoModel();\n    registro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    registro.estado = this.liquidacionTiempoCons.HISTORICO;\n    let lista = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', false, registro)).toPromise();\n    if (lista != null && lista.length != 0) {\n      this.registroProceso = lista[0];\n      this.jornada.horaInicio = new Date(this.registroProceso.fechaInicial);\n    }\n    await this.utilsService.sleep(100)\n    this.filtroItem?.aplicarFiltros();\n  }\n\n  async cargarListaFiltros(evento) {\n    if (evento['fechaInicial']) {\n      this.jornada.horaInicio = evento['fechaInicial'].value;\n    }\n    if (!this.filtroItem.isApply) {\n      if (this.filtroItem.chips.length == 0) {\n        this.filtroItem.chips = [];\n        this.jornada.horaInicio = null;\n      }\n    }\n    this.loadData();\n  }\n\n}\n","<div id=\"id_panelFiltroRelojHistorico\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!--Filtro buscar-->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <p-calendar formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [(ngModel)]=\"jornada.horaInicio\"></p-calendar>\n                            <label for=\"fechaInicial\">{{'fechainicial' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n    <p-table [value]=\"listaEvento\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" [scrollable]=\"true\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'horainicial' | translate}}</th>\n                <th>{{'horafinal' | translate}}</th>\n                <th>{{'estado' | translate}}</th>\n                <th>{{'hora' | translate}} {{'posible' | translate}} {{'salida' | translate}}</th>\n                <th>{{'mensaje' | translate}}</th>\n            </tr>\n            <th>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-marcacion>\n            <tr [pSelectableRow]=\"marcacion\">\n                <td>{{marcacion.horaInicio | date:'dd/MM/yyyy HH:mm'}}</td>\n                <td>{{marcacion.horaFin | date:'dd/MM/yyyy HH:mm'}}</td>\n                <td>{{marcacion.estado | eventoJornadaConsPipe : 'listaEstado'}}</td>\n                <td *ngIf=\"marcacion.estado != 'C'\">{{marcacion.salidaPrograma | date:'dd/MM/yyyy HH:mm'}}</td>\n                <td *ngIf=\"marcacion.estado == 'C'\"></td>\n                <td>{{marcacion.mensaje | eventoJornadaConsPipe : 'listaMensaje'}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { SaraAplicacionService } from '../../../../../../shared/servicios/sara-aplicacion.service';\nimport { GeneralService } from '../../../../../../shared/servicios/general.service';\nimport { RegistroProcesoModel } from '../../../../../compensacion/models/RegistroProcesoModel';\nimport { AuthService, CargarControlFuncionalidadService, FechaUtilsService, FiltroGeneralComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { CodigoBaseTiempoModel } from '../../../../../controltiempos/models/CodigoBaseTiempoModel';\nimport { PopupFechaLiquidacionComponent } from '../../../../../controltiempos/popups/popup-fecha-liquidacion/popup-fecha-liquidacion.component';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { liquidacionTiempoPipe } from '../../../../../controltiempos/pipes/liquidacionTiempo.pipe';\nimport { GeneralPipe } from '../../../../../../shared/pipes/general.pipe';\nimport { DropdownModule } from 'primeng/dropdown';\n\n@Component({\n  selector: 'app-popup-liquidacion-sitio-tiempo',\n  templateUrl: './popup-liquidacion-sitio-tiempo.component.html',\n  styleUrls: ['./popup-liquidacion-sitio-tiempo.component.scss'],\n  standalone: true,\n  imports: [DialogModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DatePipe, TranslateModule, ReactiveFormsModule, FiltroGeneralComponent, CheckboxModule, InputTextModule, FormsModule, ReactiveFormsModule, liquidacionTiempoPipe, DropdownModule]\n})\nexport class PopupLiquidacionSitioTiempoComponent implements OnInit {\n\n  @ViewChild('popupFechaLiq') popupFechaLiq: PopupFechaLiquidacionComponent;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n  @Output() public setVistaVisualizar: EventEmitter<any> = new EventEmitter();\n  @Output() public envioData: EventEmitter<any> = new EventEmitter();\n  @Output() public envioDetalle: EventEmitter<any> = new EventEmitter();\n  @Output() public setMostrarPopup: EventEmitter<any> = new EventEmitter();\n\n  public modo: string;\n  public listaProceso: RegistroProcesoModel[] = [];\n  public filtro: RegistroProcesoModel;\n  public listaTipoLiquida: CodigoBaseTiempoModel[] = [];\n  public mostrarPopup: boolean = false;\n  public mostrarPopupFechaLiq: boolean = false;\n  public isLoadingData: boolean = false;\n  public nuevoProceso: boolean;\n  public activo: string = 'S';\n  public mes: number;\n  public anno: number;\n  public filters = [];\n  public sitioSelect: string;\n  public fechaActual = new Date();\n  public listaSi_No = [];\n\n  constructor(\n    private saraappservice: SaraAplicacionService,\n    private generalService: GeneralService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private utilService: UtilsService,\n    private toastService: ToastService,\n    private fechaUtilsService: FechaUtilsService,\n    private datePipe: DatePipe,\n    private translateService: TranslateService,\n    private generalPipe: GeneralPipe,\n    private authService: AuthService\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.inicializar();\n    await this.utilService.sleep(100)\n    this.filtroItem?.aplicarFiltros();\n  }\n\n  mostrar() {\n    this.mostrarPopup = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilService.calcularPosicionDialog(), 0);\n    }\n  }\n\n  cargarFiltros() {\n    this.filters = [\n      {\n        field: 'activo',\n        header: this.translateService.instant('activo'),\n        values: (value) => this.activo == 'S' ? 'Si' : 'No',\n        matchMode: 'equal',\n      },\n      {\n        field: 'anno',\n        header: this.translateService.instant('anno'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'mes',\n        header: this.translateService.instant('mes'),\n        matchMode: 'equal',\n      }\n    ]\n  }\n\n  async inicializar(sitio?: string) {\n    this.cargarFiltros();\n    this.mostrarPopup = true;\n    this.activo = 'S';\n    this.modo = (await this.saraappservice.getEmpresa()).modoCompensacion;\n    this.sitioSelect = sitio;\n    await this.traerRegistros();\n    this.anno = this.fechaActual.getFullYear();\n    this.mes = this.fechaActual.getMonth();\n    this.cargarListaTipoLiquida();\n    this.listaSi_No = this.generalPipe.LISTA_SINO;\n  }\n\n  public MapProcesoLiq(valor): any {\n    let result;\n    this.listaTipoLiquida.forEach(data => { if (data.llaveTabla === valor) { result = data.descripcion } });\n    return result;\n  }\n\n\n  public async cargarListaTipoLiquida() {\n    try {\n      let procesoLiq = new CodigoBaseTiempoModel();\n      procesoLiq.tipo = 'PROLI';\n      procesoLiq.modoParametro = this.modo;\n      procesoLiq.estado = 'S';\n      this.listaTipoLiquida = await this.generalService.queryForList(new GeneralModel('CodigoBaseTiempoDTO', null, false, procesoLiq)).toPromise();\n    } catch (error) {\n    }\n  }\n\n  async verLiquidacion(evento) {\n    let registroProceso: RegistroProcesoModel = evento.data;\n    this.isLoadingData = true;\n    this.setVistaVisualizar.emit('detalle');\n    this.envioDetalle.emit(registroProceso);\n    await this.utilService.sleep(10);\n    this.isLoadingData = false;\n    this.mostrarPopup = false;\n  }\n\n  async nuevo() {\n    this.nuevoProceso = true;\n    this.mostrarPopupFechaLiq = true;\n    this.isLoadingData = true;\n    this.envioData.emit(this.sitioSelect);\n    this.setMostrarPopup.emit('fechaLiq');\n    await this.utilService.sleep(10)\n    this.isLoadingData = false;\n    this.mostrarPopup = false;\n  }\n\n  async cambioActivo(event) {\n    this.activo = event.value;\n    if (this.activo == 'N') {\n      this.fechaActual = new Date();\n      this.anno = this.fechaActual.getFullYear();\n      this.mes = this.fechaActual.getMonth();\n    }\n  }\n\n  async traerRegistros(objetoFiltro?: any) {\n    if (this.sitioSelect == null) {\n      this.listaProceso = [];\n      return;\n    }\n    this.isLoadingData = true;\n    if (objetoFiltro == null) {\n      objetoFiltro = {\n        empresa: (await this.saraappservice.getEmpresa()).empresa,\n        sitio: this.sitioSelect\n      }\n    }\n    if (this.activo === 'S') {\n      objetoFiltro.estado = 'activos';\n      this.listaProceso = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', false, objetoFiltro)).toPromise();\n      this.isLoadingData = false;\n      return;\n    }\n    this.listaProceso = [];    \n    if (this.anno != null && this.mes != null) {\n      let mesBase = this.mes - 1;\n      let fechaInicial = await this.fechaUtilsService.obtenerFecha({ dia: 1, mes: mesBase, anno: this.anno }).toPromise();\n      let fechaFinal = await this.fechaUtilsService.ultimoDiaMes({ fechaBaseI: this.datePipe.transform(fechaInicial, 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n      objetoFiltro.fechaInicial = new Date(fechaInicial);\n      objetoFiltro.fechaFinal = new Date(fechaFinal);\n    }    \n    this.listaProceso = await this.generalService.queryForList(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechasLiquidacion', false, objetoFiltro)).toPromise();\n    this.isLoadingData = false;\n  }\n\n  async validacionFiltro(event) {\n    const anno = event?.anno?.value;\n    const mes = event?.mes?.value;\n    if (anno <= 2000 || anno >= 4000 || mes <= 0 || mes > 12) {\n      this.toastService.showError('Fecha no valida');\n      return;\n    }\n    this.activo = event?.activo?.value;    \n    if (!this.filtroItem.isApply) {\n      this.anno = null;\n      this.mes = null;\n    }\n    const chipAnno = this.filtroItem.chips.find(data => data.field === 'anno');\n    const chipMes = this.filtroItem.chips.find(data => data.field === 'mes');\n    if (this.activo === 'N' && !this.filtroItem.panel.overlayVisible) {\n      if (chipAnno && !chipMes) {\n        this.anno = null;\n        this.mes = null;\n        this.filtroItem.removeChip(chipAnno);\n      } else if (chipMes && !chipAnno) {\n        this.anno = null;\n        this.mes = null;\n        this.filtroItem.removeChip(chipMes);\n      }\n    }\n    await this.traerRegistros();\n  }\n\n  public ocultar(boleano) {\n    this.mostrarPopup = boleano;\n  }\n\n  mostrarRegresar() {\n    this.mostrarPopup = true\n    this.mostrarPopupFechaLiq = false;\n    this.nuevoProceso = false;\n  }\n\n  regresarPopup(evento) {\n    if (evento.mostrarPopup != null) {\n      this.mostrarPopup = evento.mostrarPopup;\n      this.mostrarPopupFechaLiq = evento.mostrarPopup;\n    }\n    this.setVistaVisualizar.emit(evento.regresar);\n  }\n\n\n}\n","<p-dialog id=\"id_popupLiquidacionSitioTiempos\" header=\"{{'liquidacion' | translate}}\" [(visible)]=\"mostrarPopup\"\n    [style]=\"{width: '60vw'}\" (onHide)=\"nuevoProceso ?  null : ocultar(false)\" (onShow)=\"mostrar()\" [modal]=\"true\">\n\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"validacionFiltro($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div>\n                        <div class=\"field\" style=\"width: 100% !important;\">\n                            <span class=\"p-float-label\" style=\"width: 16.5rem;\">\n                                <p-dropdown [options]=\"listaSi_No\" [autoDisplayFirst]=\"false\" formControlName=\"activo\"\n                                    [(ngModel)]=\"activo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                                    (onChange)=\"cambioActivo($event)\"></p-dropdown>\n                                <label>{{'activo' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                    <div class=\"flex\">\n                        <div class=\"field mr-2 max-w-8rem\" *ngIf=\"activo != 'S'\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [(ngModel)]=\"anno\" autocomplete=\"off\"\n                                    formControlName=\"anno\" [maxLength]=\"4\"\n                                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 4);\" />\n                                <label for=\"id_anno\">{{'anno' | translate}}</label>\n                            </span>\n                        </div>\n                        <div class=\"field max-w-8rem\" *ngIf=\"activo != 'S'\">\n                            <span class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" [(ngModel)]=\"mes\" autocomplete=\"off\"\n                                    formControlName=\"mes\" [maxLength]=\"2\"\n                                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 2);\" />\n                                <label for=\"id_mes\">{{'mes' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevo()\"\n                label=\"{{'link_nuevo' | translate}}\"\n                *ngIf=\"controlFuncionalidad.getControlFuncionalidad('liqtiemp:nuevo')\">\n            </button>\n        </div>\n    </div>\n    <p-table [value]=\"listaProceso\" responsiveLayout=\"scroll\" [scrollable]=\"true\" styleClass=\"p-datatable-striped\"\n        [rows]=\"10\" [totalRecords]=\"listaProceso.length\" [paginator]=\"listaProceso.length > 10\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" selectionMode=\"single\" (onRowSelect)=\"verLiquidacion($event)\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'fechainicial' | translate}}</th>\n                <th>{{'fecha_final' | translate}}</th>\n                <th>{{'proceso' | translate}}</th>\n                <th>{{'estado' | translate}}</th>\n                <th>{{'sitio' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\n            <tr [pSelectableRow]=\"data\">\n                <td>{{data.fechaInicial | date: 'dd/MM/yyyy'}}</td>\n                <td>{{data.fechaFinal | date: 'dd/MM/yyyy'}}</td>\n                <td>{{MapProcesoLiq(data.procesoLiquidacion)}}</td>\n                <td>{{data.estado | liquidacionTiempoPipe: 'MAPAESTADOLIQUIDA'}}</td>\n                <td>{{data.nombreSitio}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { RegistroProcesoModel } from '../../../compensacion/models/RegistroProcesoModel';\nimport { SitioModel } from '../../models/SitioModel';\nimport { AuthService, FechaUtilsService, GeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { CodigoBaseTiempoModel } from '../../models/CodigoBaseTiempoModel';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { DetalleLiquidacionTiemposComponent } from '../../pages/liquidacionTiempos/detalle-liquidacion-tiempos/detalle-liquidacion-tiempos.component';\nimport { liquidacionTiempoPipe } from '../../pipes/liquidacionTiempo.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\n\n\n@Component({\n  selector: 'app-popup-fecha-liquidacion',\n  templateUrl: './popup-fecha-liquidacion.component.html',\n  styleUrls: ['./popup-fecha-liquidacion.component.scss'],\n  standalone: true,\n  imports: [DialogModule, DropdownModule, FormsModule, NgIf, CalendarModule, ButtonDirective, Ripple, TranslateModule],\n  providers: [DatePipe]\n})\nexport class PopupFechaLiquidacionComponent implements OnInit {\n\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n  @Output() public setVistaVisualizar = new EventEmitter();\n  @Output() public anteriorPopup = new EventEmitter();\n\n  @ViewChild('detalleLiquidacionTiempo') detalleLiquidacionTiempo: DetalleLiquidacionTiemposComponent\n\n  public registroProceso: RegistroProcesoModel;\n  public fechaInicialEditable: boolean = false;\n  public mostrarSitio: boolean = false;\n  public mostrarPopup: boolean = false;\n  public clickGuardar: boolean = false;\n  public listaProcesoLiquidacion = [];\n  public listaSitio = [];\n  public vistaVisualizar: boolean\n  @Input() public destino: string;\n  @Input() public nuevoProceso: boolean;\n  @Output() public AplicarDestino: EventEmitter<any> = new EventEmitter();\n  @Output() public envioNuevo: EventEmitter<any> = new EventEmitter();\n\n\n  constructor(\n    private saraappservice: SaraAplicacionService,\n    private generalService: GeneralService,\n    private authService: AuthService,\n    private cargarMapas: cargarmapasGlobal,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    private toastService: ToastService,\n    public utilsService: UtilsService,\n    private liquidaTiempoPipe: liquidacionTiempoPipe\n  ) { }\n\n  ngOnInit(): void {\n    this.inicializar();\n  }\n\n  mostrar() {\n    this.mostrarPopup = true;\n    if (this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      setTimeout(() => this.utilsService.calcularPosicionDialog(), 0);\n    }\n  }\n  async inicializar(sitio?: string) {\n    this.registroProceso = new RegistroProcesoModel();\n    this.registroProceso.empresa = (await this.saraappservice.getEmpresa()).empresa;\n    this.registroProceso.fechaInicial = null;\n    this.registroProceso.fechaFinal = null;\n    let modo: string = (await this.saraappservice.getEmpresa()).modoCompensacion;\n    let porSitio: boolean = false;\n    let sitioTmp = new SitioModel();\n    sitioTmp.organizacion = (await this.saraappservice.getEmpresa()).organizacion;\n    sitioTmp.login = this.authService.getTokenKey('usuario');\n    if (sitio != null) {\n      porSitio = true;\n      sitioTmp.llaveTabla = sitio;\n      this.listaSitio = [];\n      this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioSaraDTO', null, false, sitioTmp));\n\n    } else {\n      this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioSaraDTO', null, false, sitioTmp));\n    }\n    let procesoLiq = new CodigoBaseTiempoModel();\n    procesoLiq.tipo = 'PROLI';\n    procesoLiq.modoParametro = modo.padEnd(32, ' ');\n    procesoLiq.estado = 'S';\n    procesoLiq.porSitio = porSitio ? 'S' : null;\n    this.listaProcesoLiquidacion = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, procesoLiq));\n    this.mostrarSitio = false;\n  }\n\n  async buscar(destino: string, sitio: string) {\n    this.mostrarPopup = true;\n    this.destino = destino;\n    await this.inicializar(sitio);\n    if (this.listaProcesoLiquidacion.length == 0) {\n      return;\n    }\n    if (this.listaProcesoLiquidacion.length == 1) {\n      this.registroProceso.procesoLiquidacion = this.listaProcesoLiquidacion[0].value.toString();\n      this.verListaSitio(this.registroProceso.procesoLiquidacion)\n    }\n  }\n\n  cambiaProceso(evento) {\n    if (evento.value == null) {\n      return;\n    }\n    this.verListaSitio(evento.value.toString());\n  }\n\n  cambiaSitio(evento) {\n    let sitio: string = evento.value.toString();\n    this.verificarFechaInicial(this.registroProceso.procesoLiquidacion, sitio);\n  }\n\n  async verListaSitio(procesoLiquida: string) {\n    this.mostrarSitio = false;\n    let codigoBase = new CodigoBaseTiempoModel();\n    codigoBase.llaveTabla = procesoLiquida;\n    codigoBase = await this.generalService.queryForObject(new GeneralModel('CodigoBaseTiempoDTO', null, false, codigoBase)).toPromise();\n    if (codigoBase == null) {\n      return;\n    }\n    this.mostrarSitio = codigoBase.porSitio === 'S' ? true : false;\n    if (this.mostrarSitio) {\n      if (this.listaSitio.length == 1) {\n        this.registroProceso.sitio = this.listaSitio[0].value.toString();\n      }\n    } else {\n      this.registroProceso.sitio = null;\n    }\n    this.verificarFechaInicial(procesoLiquida, this.registroProceso.sitio);\n  }\n\n  async verificarFechaInicial(proceso: string, sitio: string) {\n    if (proceso == null) {\n      return\n    }\n    if (this.mostrarSitio) {\n      if (sitio == null) {\n        return;\n      }\n    }\n    let verificaFechaIni = new RegistroProcesoModel();\n    verificaFechaIni.empresa = (await this.saraappservice.getEmpresa()).empresa;\n    verificaFechaIni.procesoLiquidacion = proceso;\n    if (this.mostrarSitio) {\n      verificaFechaIni.sitio = sitio;\n    }\n    let resultado = await this.generalService.queryForObject(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.consultarFechaInicialLiquidacion', false, verificaFechaIni)).toPromise();\n    if (!resultado) {\n      resultado = new RegistroProcesoModel();\n    }\n    verificaFechaIni = resultado;\n    this.fechaInicialEditable = true;\n    if (verificaFechaIni != null && verificaFechaIni.fechaFinal != null) {\n      let consultaFecha = await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(verificaFechaIni.fechaFinal), 'yyyy-MM-dd HH:mm:ss.S'), dias: 1 }).toPromise();\n      this.registroProceso.fechaInicial = new Date(consultaFecha.respuesta);\n    }\n  }\n\n  async aplicar() {\n    this.clickGuardar = false;\n    if (!this.validarCampos()) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    if (await this.validarRegistro()) {\n      this.toastService.showError('Ya existe un proceso con el mismo proceso y las mismas fechas');\n      return;\n    }\n    if (this.registroProceso.fechaInicial > this.registroProceso.fechaFinal) {\n      this.toastService.showError('La fecha inicial es mayor a la fecha final');\n      return;\n    }\n    if (this.registroProceso.llaveTabla == null) {\n      this.registroProceso.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      this.registroProceso.estado = this.liquidaTiempoPipe.PROCESO;\n      this.registroProceso.llave = this.utilsService.generarLlave();\n      this.registroProceso.origen = 'TIM';\n      await this.generalService.crearRegistro(new GeneralModel('RegistroProcesoDTO', null, false, this.registroProceso)).toPromise().then(async liquida => {\n        await this.AplicarDestino.emit('detalle');\n        await this.envioNuevo.emit(liquida);\n        this.mostrarPopup = false;\n      })\n    }\n  }\n\n  public async validarRegistro(): Promise<boolean> {\n    if (await this.generalService.cantidadRegistros(new GeneralModel('RegistroProcesoDTO', 'RegistroProceso.cantidadRegistrosCruceTiempo', false, this.registroProceso)).toPromise() > 0) {\n      return true;\n    }\n    return false;\n  }\n\n  public validarCampos() {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.registroProceso.fechaInicial);\n    validador = validador && this.utilsService.validarCampoObligatorio(this.registroProceso.fechaFinal);\n    if (this.mostrarSitio) {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.registroProceso.sitio);\n    }\n    return validador;\n  }\n\n\n  public ocultar() {\n    this.anteriorPopup.emit();\n  }\n\n  regresarPopup(evento) {\n    this.regresar.emit({procesoActualiza: evento});\n  }\n\n\n  sleep(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\n\n\n}\n","<p-dialog id=\"id_popupFechaLiquidacionBean\" header=\"{{'proceso' | translate}}\" [(visible)]=\"mostrarPopup\"\n    [style]=\"{width: '60vw'}\" (onHide)=\"ocultar()\" (onShow)=\"mostrar()\" [modal]=\"true\">\n    <div class=\"p-fluid grid mt-1 mb-3\">\n        <!-- PROCESO LIQUIDACION -->\n        <div [class]=\"!mostrarSitio  ? 'col-12 col:md-4 ': 'col-6 col:md-4'\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"procesoLiq\" [options]=\"listaProcesoLiquidacion\" optionLabel=\"label\"\n                    optionValue=\"key\" [(ngModel)]=\"registroProceso.procesoLiquidacion\" [autoDisplayFirst]=\"false\"\n                    (onChange)=\"cambiaProceso($event)\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registroProceso.procesoLiquidacion) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registroProceso.procesoLiquidacion) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"procesoLiq\">{{'procesoliquidacion' | translate}} *</label>\n            </span>\n        </div>\n        <!-- SITIO -->\n        <div class=\"col-6 col:md-4\" *ngIf=\"mostrarSitio\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"sitioBase\" [options]=\"listaSitio\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"registroProceso.sitio\" [autoDisplayFirst]=\"false\" (onChange)=\"cambiaSitio($event)\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registroProceso.sitio) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registroProceso.sitio) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"sitioBase\">{{'sitio' | translate}} *</label>\n            </span>\n        </div>\n        <!-- FECHA INICIAL -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"registroProceso.fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registroProceso.fechaInicial) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registroProceso.fechaInicial) && clickGuardar\">\n                </p-calendar>\n                <label htmlFor=\"fechaInicial\">{{'fechainicial' | translate}} *</label>\n            </span>\n        </div>\n        <!-- FECHA FINAL -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"registroProceso.fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                    appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(registroProceso.fechaFinal) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(registroProceso.fechaFinal) && clickGuardar\">\n                </p-calendar>\n                <label htmlFor=\"fechaFinal\">{{'fechafinal' | translate}} *</label>\n            </span>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end mt-2 mb-2\">\n        <!-- BOTON APLICASR -->\n        <button pButton pRipple class=\"p-button-raised font-semibold\" icon=\"glyphicons glyphicons-check\"\n            label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicar()\">\n        </button>\n    </div>\n</p-dialog>","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { CargarControlFuncionalidadService, FechaUtilsService, GeneralModel, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { DispositivoModel } from '../../models/DispositivoModel';\nimport { CodigoBaseTiempoModel } from '../../models/CodigoBaseTiempoModel';\nimport { jornadaConsPipe } from '../../pipes/JornadaCons.pipe';\nimport { EventoJornadaModel } from '../../models/EventoJornadaModel';\nimport { JornadaModel } from '../../models/JornadaModel';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { EventoJornadaConsPipe } from '../../pipes/eventoJornadaCons.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { PersonaModel } from '../../models/PersonaModel';\nimport { ControlTiemposService } from '../../services/controlTiempos.service';\nimport { ConfirmationService } from 'primeng/api';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { DialogModule } from 'primeng/dialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-popup-solucion-inconsistencia',\n    templateUrl: './popup-solucion-inconsistencia.component.html',\n    styleUrls: ['./popup-solucion-inconsistencia.component.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, DialogModule, NgIf, FormsModule, InputTextModule, FieldsetModule, CalendarModule, DropdownModule, ButtonDirective, Ripple, TranslateModule],\n    providers: [DatePipe]\n})\nexport class PopupSolucionInconsistenciaComponent implements OnInit {\n\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n\n  eventoInconsistente: EventoJornadaModel = new EventoJornadaModel();\n  jornadaInconsistente: JornadaModel = new JornadaModel();\n  noEditarHoraInicio: boolean = false;\n  noEditarHoraFin: boolean = false;\n  solucionar: boolean = false;\n  reloj: boolean = false;\n  mostrarPopup: boolean = false;\n  clickGuardar: boolean = false;\n  horaInicial: any = null;\n  horaFinal: any = null;\n  listaTipoJornada = [];\n  listaDipositivos = [];\n  mapaEstado = [];\n  mapaMensaje = [];\n  descripcionEstado: string = '';\n  descripcionMensaje: string = '';\n  descripcionDisEntrada: string = ''\n  descripcionDisSalida: string = ''\n  llaveTmp: string = null;\n\n\n  constructor(\n    private cargarMapas: cargarmapasGlobal,\n    private jornadaPipe: jornadaConsPipe,\n    private toastService: ToastService,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    private eventoJornadaPipe: EventoJornadaConsPipe,\n    private generalService: GeneralService,\n    private controlTiempoService: ControlTiemposService,\n    private confirmationService: ConfirmationService,\n    public utilsService: UtilsService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  async inicializar() {\n    this.eventoInconsistente = new EventoJornadaModel();\n    this.jornadaInconsistente = new JornadaModel();\n    this.horaInicial = null;\n    this.horaFinal = null;\n    this.noEditarHoraInicio = true;\n    this.noEditarHoraFin = true;\n    this.solucionar = false;\n    this.listaDipositivos = [];\n    this.listaTipoJornada = [];\n    this.mapaEstado = this.eventoJornadaPipe.ESTADOJORNADA;\n    this.mapaMensaje = this.eventoJornadaPipe.MENSAJE;\n    this.descripcionEstado = '';\n    this.descripcionMensaje = '';\n    this.descripcionDisEntrada = '';\n    this.descripcionDisSalida = '';\n    try {\n      let dispotivoFiltro = new DispositivoModel();\n      this.listaDipositivos = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('DispositivoDTO', null, false, dispotivoFiltro));\n      let codigoBaseTiempo = new CodigoBaseTiempoModel();\n      codigoBaseTiempo.tipo = 'TIPJO';\n      codigoBaseTiempo.temporal = this.jornadaPipe.FRANJA_TRABAJO;\n      this.listaTipoJornada = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, codigoBaseTiempo));\n      this.listaTipoJornada.sort((a, b) => a.label.localeCompare(b.label));\n      this.descripcionMapas();\n    } catch (error) {\n    }\n  }\n\n  async inicializarReloj(eventoInconsistenteDTO: EventoJornadaModel) {\n    this.inicializar();\n    this.reloj = true;\n    this.eventoInconsistente = eventoInconsistenteDTO;\n    this.llaveTmp = this.eventoInconsistente.llaveTabla;\n    if (this.eventoInconsistente.horaInicio != null) {\n      this.eventoInconsistente.horaInicio = new Date(this.eventoInconsistente.horaInicio);\n      const horasInicial = this.eventoInconsistente.horaInicio.getHours();\n      const minutosInicial = this.eventoInconsistente.horaInicio.getMinutes();\n      this.horaInicial = `${horasInicial < 10 ? '0' : ''}${horasInicial}:${minutosInicial < 10 ? '0' : ''}${minutosInicial}`;\n    }    \n    if (this.eventoInconsistente.horaFin != null) {\n      this.eventoInconsistente.horaFin = new Date(this.eventoInconsistente.horaFin);\n      const horasFinal = this.eventoInconsistente.horaFin.getHours();\n      const minutosFinal = this.eventoInconsistente.horaFin.getMinutes();\n      this.horaFinal = `${horasFinal < 10 ? '0' : ''}${horasFinal}:${minutosFinal < 10 ? '0' : ''}${minutosFinal}`;\n    }    \n    this.mostrarPopup = true;\n  }\n\n  async inicializarJornadaReloj(jornadaDTO: JornadaModel) {\n    this.inicializar();\n    this.reloj = false;\n    this.solucionar = false;\n    this.jornadaInconsistente = jornadaDTO;\n    this.llaveTmp = this.jornadaInconsistente.llaveTabla;\n    if (this.jornadaInconsistente.entradaReloj != null) {\n      this.jornadaInconsistente.entradaReloj = new Date(this.jornadaInconsistente.entradaReloj);\n      const horasInicial = this.jornadaInconsistente.entradaReloj.getHours();\n      const minutosInicial = this.jornadaInconsistente.entradaReloj.getMinutes();\n      this.horaInicial = `${horasInicial < 10 ? '0' : ''}${horasInicial}:${minutosInicial < 10 ? '0' : ''}${minutosInicial}`;\n    }\n    if (this.jornadaInconsistente.salidaReloj != null) {\n      this.jornadaInconsistente.salidaReloj = new Date(this.jornadaInconsistente.salidaReloj);\n      const horasFinal = this.jornadaInconsistente.salidaReloj.getHours();\n      const minutosFinal = this.jornadaInconsistente.salidaReloj.getMinutes();\n      this.horaFinal = `${horasFinal < 10 ? '0' : ''}${horasFinal}:${minutosFinal < 10 ? '0' : ''}${minutosFinal}`;\n    }\n    this.mostrarPopup = true;\n  }\n\n  validarCampos(): boolean {\n    var validador: boolean = true;\n    if (this.reloj) {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.eventoInconsistente.horaInicio);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.eventoInconsistente.horaFin);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.horaInicial);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.horaFinal);\n    } else {\n      validador = validador && this.utilsService.validarCampoObligatorio(this.jornadaInconsistente.jornada);\n    }\n    return validador;\n  }\n\n  async actualizarhorasReloj() {\n    try {\n      if (!this.horaInicial.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        this.clickGuardar = true;\n        return;\n      }\n      if (!this.horaFinal.match(/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/)) {\n        this.toastService.showError('Verificar que los campos hora diligenciados esten en formato hh:mm');\n        this.clickGuardar = true;\n        return;\n      }\n      if (this.eventoInconsistente.horaInicio != null) {\n        this.eventoInconsistente.horaInicio = new Date(this.eventoInconsistente.horaInicio);\n        const [horaInicial, minutoInicial] = this.horaInicial.split(':');        \n        this.eventoInconsistente.horaInicio = new Date(this.eventoInconsistente.horaInicio.setHours(parseInt(horaInicial, 10), parseInt(minutoInicial, 10), 0, 0));\n      }\n      if (this.horaFinal != null) {\n        if (this.horaInicial != null) {\n          let horaFin = new Date(this.eventoInconsistente.horaInicio);\n          if (this.horaInicial > this.horaFinal) {\n            let consultaFecha = await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(this.eventoInconsistente.horaInicio), 'yyyy-MM-dd HH:mm:ss.S'), dias: 1 }).toPromise();\n            horaFin = consultaFecha.respuesta\n          }\n          const [horaFinal, minutoFinal] = this.horaFinal.split(':');\n          this.eventoInconsistente.horaFin = new Date(horaFin.setHours(parseInt(horaFinal, 10), parseInt(minutoFinal, 10), 0, 0));          \n        } else {\n          const [horaFinal, minutoFinal] = this.horaFinal.split(':');\n          this.eventoInconsistente.horaFin = new Date(this.eventoInconsistente.horaFin.setHours(parseInt(horaFinal, 10), parseInt(minutoFinal, 10), 0, 0));\n        }\n      }\n      \n    } catch (error) {\n    }\n  }\n\n  showAnularConfirm() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.anular();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async anular() {\n    try {\n      if (this.reloj) {\n        this.eventoInconsistente.estado = this.eventoJornadaPipe.ESTADO_ANULADO;\n        await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoInconsistente)).toPromise();\n      } else {\n        await this.generalService.delete(new GeneralModel('JornadaDTO', null, false, this.jornadaInconsistente)).toPromise();\n        if (this.jornadaInconsistente.eventoJornada != null) {\n          this.eventoInconsistente = new EventoJornadaModel();\n          this.eventoInconsistente.llaveTabla = this.jornadaInconsistente.eventoJornada;\n          this.eventoInconsistente = await this.generalService.queryForObject(new GeneralModel('EventoJornadaDTO', null, false, this.eventoInconsistente)).toPromise();\n          if (this.eventoInconsistente != null) {\n            this.eventoInconsistente.estado = this.eventoJornadaPipe.ESTADO_ANULADO;\n            await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoInconsistente)).toPromise();\n          }\n        }\n      }\n      this.toastService.showInfo('Se anuló el registro exitosamente');\n      this.mostrarPopup = false;\n    } catch (error) {\n    }\n  }\n\n  async guardarSolucion() {\n    this.clickGuardar = false;\n    if (!this.validarCampos()) {\n      this.toastService.showError('Faltan campos obligatorios');\n      this.clickGuardar = true;\n      return;\n    }\n    try {\n      if (this.reloj) {\n        this.actualizarhorasReloj();\n        if (this.eventoJornadaPipe.ESTADO_INCONSISTENCIA == this.eventoInconsistente.estado) {\n          let filtroCruce = new JornadaModel();\n          filtroCruce.persona = this.eventoInconsistente.persona;\n          filtroCruce.entradaPrograma = new Date(this.eventoInconsistente.horaInicio);\n          filtroCruce.salidaPrograma = new Date(this.eventoInconsistente.horaFin);\n          let jornadasCruce: number = await this.generalService.cantidadRegistros(new GeneralModel('JornadaDTO', 'Jornada.contarJornadaCruceEvento', false, filtroCruce)).toPromise();\n          if (jornadasCruce != 0) {\n            this.eventoInconsistente.estado = this.eventoJornadaPipe.ESTADO_SOLUCION_INCONSISTENCIA\n            this.eventoInconsistente.mensaje = this.eventoJornadaPipe.MENSAJE_CRUCE;\n          } else {\n            this.eventoInconsistente.estado = this.eventoJornadaPipe.ESTADO_SOLUCIONADO_SIN_JORNADA;\n            this.eventoInconsistente.mensaje = null;\n          }\n          await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoInconsistente)).toPromise();\n          return this.finalizarGuardar();\n        }\n        if (this.eventoJornadaPipe.ESTADO_CERRADO_SIN_JORNADA == this.eventoInconsistente.estado || this.eventoJornadaPipe.ESTADO_SOLUCIONADO_SIN_JORNADA == this.eventoInconsistente.estado) {\n          this.eventoInconsistente.estado = this.eventoJornadaPipe.ESTADO_SOLUCIONADO_CON_JORNADA;\n          this.eventoInconsistente.mensaje = null;\n          await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoInconsistente)).toPromise();\n          return this.finalizarGuardar();\n        }\n\n        if (this.eventoJornadaPipe.ESTADO_ABIERTO == this.eventoInconsistente.estado) {\n          this.eventoInconsistente.estado = this.eventoJornadaPipe.ESTADO_CERRADO;\n          this.eventoInconsistente.mensaje = 'MA';\n          await this.generalService.update(new GeneralModel('EventoJornadaDTO', null, false, this.eventoInconsistente)).toPromise();\n          return this.finalizarGuardar();\n        }\n      } else {\n        this.jornadaInconsistente.llaveTabla = this.llaveTmp;\n        if (this.jornadaInconsistente.eventoJornada == null) {\n          await this.generalService.delete(new GeneralModel('JornadaDTO', null, false, this.jornadaInconsistente)).toPromise();\n          return this.finalizarGuardar();\n        }\n        let eventoJornada = new EventoJornadaModel();\n        eventoJornada.llaveTabla = this.jornadaInconsistente.eventoJornada;\n        eventoJornada = await this.generalService.queryForObject(new GeneralModel('EventoJornadaDTO', null, false, eventoJornada)).toPromise();\n        if (eventoJornada == null) {\n          await this.generalService.delete(new GeneralModel('JornadaDTO', null, false, this.jornadaInconsistente)).toPromise();\n          return this.finalizarGuardar();\n        }\n        let persona: PersonaModel = new PersonaModel();\n        persona.llaveTabla = this.jornadaInconsistente.persona;\n        persona = await this.generalService.queryForObject(new GeneralModel('PersonaDTO', null, false, persona)).toPromise();\n        if (persona == null) {\n          await this.generalService.delete(new GeneralModel('JornadaDTO', null, false, this.jornadaInconsistente)).toPromise();\n          return this.finalizarGuardar();\n        }\n        let jornadaDia = this.jornadaInconsistente;\n        jornadaDia.desde = new Date(this.jornadaInconsistente.entradaPrograma);\n        jornadaDia.hasta = jornadaDia.desde;\n        jornadaDia.horaInicial = new Date(jornadaDia.horaInicial);\n        jornadaDia.horaFinal = new Date(jornadaDia.horaFinal);\n        jornadaDia.entradaReloj = new Date(this.jornadaInconsistente.entradaPrograma);\n        jornadaDia.salidaReloj = new Date(this.jornadaInconsistente.salidaPrograma);\n        jornadaDia.entradaPrograma = new Date(this.jornadaInconsistente.entradaPrograma);\n        jornadaDia.salidaPrograma = new Date(this.jornadaInconsistente.salidaPrograma);\n        jornadaDia.jornadaAjuste = this.jornadaInconsistente.jornada;\n        jornadaDia.eventoJornada = null;\n        jornadaDia.registroProceso = null;\n        jornadaDia.controlSeguimiento = null;\n        jornadaDia.sitio = persona.sitio;\n        jornadaDia.estacionTrabajo = persona.estacionTrabajo;\n        jornadaDia.llaveTabla = null;\n        await this.controlTiempoService.guardarJornada({\n          jornada: jornadaDia,\n          nuevo: true\n        }).toPromise();\n        this.jornadaInconsistente.llaveTabla = this.llaveTmp;\n        await this.generalService.delete(new GeneralModel('JornadaDTO', null, false, this.jornadaInconsistente)).toPromise();\n        return this.finalizarGuardar();\n      }\n    } catch (error) {\n    }\n\n  }\n\n\n  solucionarInconsistencia() {\n    if (this.reloj) {\n      this.editableHoraInicio();\n    }\n    this.solucionar = true;\n  }\n\n  editableHoraInicio() {\n    if (this.eventoInconsistente.horaInicio == null) {\n      this.noEditarHoraInicio = false;\n    }\n    if (this.eventoInconsistente.horaFin == null) {\n      this.noEditarHoraFin = false;\n    }\n  }\n\n  validarEntrada(event: KeyboardEvent) {\n    const input = event.key;\n    const allowedChars = '0123456789:';\n    const inputValue = (event.target as HTMLInputElement).value + input;\n\n    if (inputValue.length > 5) {\n      event.preventDefault();\n    }\n\n    if (allowedChars.indexOf(input) === -1) {\n      event.preventDefault();\n    }\n\n    if (inputValue.length === 2 && inputValue.indexOf(':') === -1) {\n      event.target['value'] = inputValue + ':';\n      event.preventDefault();\n    }\n\n    if (inputValue.length === 5) {\n      const [hours, minutes] = inputValue.split(':');\n      const validHours = Number(hours) >= 0 && Number(hours) <= 24;\n      const validMinutes = Number(minutes) >= 0 && Number(minutes) <= 59;\n\n      if (!validHours || !validMinutes) {\n        event.preventDefault();\n      }\n    }\n  }\n\n  public ocultar() {\n    this.mostrarPopup = false;\n    this.regresar.emit();\n  }\n\n  descripcionMapas() {\n    const estadoEncontrado = this.mapaEstado.find(estado => estado.codigo === this.eventoInconsistente.estado);\n    this.descripcionEstado = estadoEncontrado.nombre;\n\n    const mensajeEncontrado = this.mapaMensaje.find(mensaje => mensaje.codigo === this.eventoInconsistente.mensaje);\n    this.descripcionMensaje = mensajeEncontrado.nombre;\n\n    const disEntradaEncontrado = this.listaDipositivos.find(dispositivo => dispositivo.key === this.eventoInconsistente.dispositivoEntrada);\n    this.descripcionDisEntrada = disEntradaEncontrado.nombre;\n\n    const disSalidaEncontrado = this.listaDipositivos.find(dispositivo => dispositivo.key === this.eventoInconsistente.dispositivoSalida);\n    this.descripcionDisSalida = disSalidaEncontrado.nombre;\n  }\n\n  private finalizarGuardar() {\n    this.toastService.showSuccess('Se solucionó la inconsistencia del registro');\n    this.mostrarPopup = false;\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<p-dialog id=\"id_popupSolucionInconsistencia\" header=\"{{'inconsistencias' | translate}}\" [(visible)]=\"mostrarPopup\"\n    [style]=\"{width: '60vw'}\" (onHide)=\"ocultar()\" [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"contenedor p-fluid grid mt-1 mb-3\" *ngIf=\"reloj\">\n        <!-- IDENTIFICACION -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"cedula\" [(ngModel)]=\"eventoInconsistente.hojaVida\" [disabled]=\"true\">\n                <label htmlFor=\"cedula\">{{'identificacion' | translate}}</label>\n            </span>\n        </div>\n        <!-- NOMBRE -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"nombre\" [(ngModel)]=\"eventoInconsistente.nombreCompleto\" [disabled]=\"true\">\n                <label htmlFor=\"nombre\">{{'nombre' | translate}}</label>\n            </span>\n        </div>\n        <!-- ESTADO -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"estado\" [(ngModel)]=\"descripcionEstado\" [disabled]=\"true\">\n                <label htmlFor=\"estado\">{{'estado' | translate}}</label>\n            </span>\n        </div>\n        <!-- MENSAJE -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"mensaje\" [(ngModel)]=\"descripcionMensaje\" [disabled]=\"true\">\n                <label htmlFor=\"mensaje\">{{'mensaje' | translate}}</label>\n            </span>\n        </div>\n        <div class=\"col-12 col:md-4\">\n            <p-fieldset class=\"fieltsintitulo\">\n                <div class=\"p-fluid grid\">\n                    <!-- LABEL ENTRADA -->\n                    <div class=\"col-6 col:md-4 mb-0\">\n                        <label htmlFor=\"entrada\" class=\"font-semibold text-gray-900 text-base ml-1\">{{'entrada'\n                            |translate}}</label>\n                    </div>\n                    <!-- LABEL SALIDA -->\n                    <div class=\"col-6 col:md-4 mb-0\">\n                        <label htmlFor=\"salida\" class=\"font-semibold text-gray-900 text-base ml-1\">{{'salida'\n                            |translate}}</label>\n                    </div>\n                    <!-- HORA INICIAL -->\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar id=\"fechaInicial\" [(ngModel)]=\"eventoInconsistente.horaInicio\"\n                                dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" [disabled]=\"noEditarHoraInicio\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(eventoInconsistente.horaInicio) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(eventoInconsistente.horaInicio) && clickGuardar\"></p-calendar>\n                            <label htmlFor=\"fechaInicial\">{{'fechainicial' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText type=\"text\" id=\"horainicial\" [(ngModel)]=\"horaInicial\"\n                                (keypress)=\"validarEntrada($event)\" [disabled]=\"noEditarHoraInicio\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(horaInicial) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(horaInicial) && clickGuardar\" />\n                            <label htmlFor=\"horainicial\">{{'horainicial' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- HORA FINAL -->\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <p-calendar id=\"fechaFinal\" [(ngModel)]=\"eventoInconsistente.horaFin\" dateFormat=\"dd/mm/yy\"\n                                [showIcon]=\"true\" appendTo=\"body\" [disabled]=\"noEditarHoraFin\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(eventoInconsistente.horaFin) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(eventoInconsistente.horaFin) && clickGuardar\"></p-calendar>\n                            <label htmlFor=\"fechaFinal\">{{'fechafinal' | translate}}</label>\n                        </span>\n                    </div>\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText type=\"text\" id=\"horafinal\" [(ngModel)]=\"horaFinal\"\n                                (keypress)=\"validarEntrada($event)\" [disabled]=\"noEditarHoraFin\"\n                                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(horaFinal) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(horaFinal) && clickGuardar\" />\n                            <label htmlFor=\"horafinal\">{{'horafinal' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- DISPOSITIVO ENTRADA -->\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"dispositivoEntrada\" [(ngModel)]=\"descripcionDisEntrada\"\n                                [disabled]=\"true\">\n                            <label htmlFor=\"dispositivoEntrada\">{{'dispositivoentrada' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- DISPOSITIVO SALIDA -->\n                    <div class=\"col-6 col:md-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"dispositivoSalida\" [(ngModel)]=\"descripcionDisSalida\"\n                                [disabled]=\"true\">\n                            <label htmlFor=\"dispositivoSalida\">{{'dispositivosalida' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n            </p-fieldset>\n        </div>\n    </div>\n    <div class=\"contenedor p-fluid grid mt-1 mb-3\" *ngIf=\"!reloj\">\n        <!-- IDENTIFICACION -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"cedula\" [(ngModel)]=\"jornadaInconsistente.hojaVidaPersona\" [disabled]=\"true\">\n                <label htmlFor=\"cedula\">{{'identificacion' | translate}}</label>\n            </span>\n        </div>\n        <!-- NOMBRE -->\n        <div class=\"col-6 col:md-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"nombre\" [(ngModel)]=\"jornadaInconsistente.nombresPersona\" [disabled]=\"true\">\n                <label htmlFor=\"nombre\">{{'nombre' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORA INICIAL -->\n        <div class=\"col-6 col:md-4 mt-3\">\n            <span class=\"p-float-label\">\n                <p-calendar id=\"id_horaInicial\" [(ngModel)]=\"jornadaInconsistente.entradaReloj\" dateFormat=\"dd/mm/yy\"\n                    [showIcon]=\"true\" appendTo=\"body\" [disabled]=\"true\" hourFormat=\"24\" [showTime]=\"true\"> </p-calendar>\n                <label htmlFor=\"id_horaInicial\">{{'horainicial' | translate}}</label>\n            </span>\n        </div>\n        <!-- HORA FINAL -->\n        <div class=\"col-6 col:md-4 mt-3\">\n            <span class=\"p-float-label\">\n                <p-calendar id=\"id_horaFinal\" [(ngModel)]=\"jornadaInconsistente.salidaReloj\" dateFormat=\"dd/mm/yy\"\n                    [showIcon]=\"true\" appendTo=\"body\" [disabled]=\"true\" hourFormat=\"24\" [showTime]=\"true\">\n                </p-calendar>\n                <label htmlFor=\"id_horaFinal\">{{'horafinal' | translate}}</label>\n            </span>\n        </div>\n        <!-- JORNADA -->\n        <div class=\"col-6 col:md-4 mt-3\" *ngIf=\"solucionar\">\n            <span class=\"p-float-label\">\n                <p-dropdown inputId=\"id_jornada\" [options]=\"listaTipoJornada\" optionLabel=\"label\" optionValue=\"key\"\n                    [(ngModel)]=\"jornadaInconsistente.jornada\" [autoDisplayFirst]=\"false\" appendTo=\"body\"\n                    [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(jornadaInconsistente.jornada) && clickGuardar\"\n                    [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(jornadaInconsistente.jornada) && clickGuardar\">\n                </p-dropdown>\n                <label htmlFor=\"id_jornada\">{{'jornada' | translate}} *</label>\n            </span>\n        </div>\n    </div>\n    <div class=\"flex justify-content-end mb-3\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('evenincon:guardar') && !solucionar\"\n            icon=\"glyphicons glyphicons-lightbulb\" label=\"{{'solucionar' | translate}}\"\n            (click)=\"solucionarInconsistencia()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button-raised\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('evenincon:guardar') && solucionar\"\n            icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\" (click)=\"guardarSolucion()\">\n        </button>\n        <button pButton pRipple class=\"ml-2 p-button p-button-outlined\"\n            *ngIf=\"controlFuncionalidad.getControlFuncionalidad('jorn:cambiarDato') && !solucionar\"\n            icon=\"glyphicons glyphicons-remove-circle\" label=\"{{'link_anular' | translate}}\"\n            (click)=\"showAnularConfirm()\">\n        </button>\n    </div>\n</p-dialog>","\nimport { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, GeneralModel, UtilsService } from 'general-library-union';\nimport { EventoJornadaModel } from '../../../models/EventoJornadaModel';\nimport { PopupSolucionInconsistenciaComponent } from '../../../popups/popup-solucion-inconsistencia/popup-solucion-inconsistencia.component';\nimport { jornadaConsPipe } from '../../../pipes/JornadaCons.pipe';\nimport { EventoJornadaConsPipe } from '../../../pipes/eventoJornadaCons.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, DatePipe } from '@angular/common';\n\n@Component({\n    selector: 'app-inconsistencia-liquidacion',\n    templateUrl: './inconsistencia-liquidacion.component.html',\n    styleUrls: ['./inconsistencia-liquidacion.component.scss'],\n    standalone: true,\n    imports: [NgIf, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupSolucionInconsistenciaComponent, DatePipe, TranslateModule, EventoJornadaConsPipe]\n})\nexport class InconsistenciaLiquidacionComponent implements OnInit {\n\n  @ViewChild('popupInconsistencia') popupInconsistencia: PopupSolucionInconsistenciaComponent;\n  @Output() listaRegresar: EventEmitter<any> = new EventEmitter();\n\n  listaInconsistencia: EventoJornadaModel[] = [];\n  filtro: EventoJornadaModel = new EventoJornadaModel();\n  isLoadingData: boolean = false;\n  mostrarPopup: boolean = false;\n  \n  constructor(\n    private authService: AuthService,\n    private generalService: GeneralService,\n    private utilService: UtilsService,\n    private jornadaPipe: jornadaConsPipe\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  async cargar(fechaIni: Date, fechaFin: Date, registroProceso: string, sitio: string) {\n    this.filtro = new EventoJornadaModel();\n    this.filtro.horaInicio = fechaIni;\n    this.filtro.horaFin = fechaFin;\n    this.filtro.registroProceso = registroProceso;\n    this.filtro.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.filtro.sitio = sitio;\n    await this.traerInconsistencia();\n  }\n\n  async traerInconsistencia() {\n    this.isLoadingData = true;\n    try {\n      this.listaInconsistencia = [];\n      this.listaInconsistencia = await this.generalService.queryForList(new GeneralModel('EventoJornadaDTO', 'EventoJornada.consultaInconsistencia', false, this.filtro)).toPromise();\n      if (this.listaInconsistencia) {\n        this.isLoadingData = false;\n        this.listaRegresar.emit(this.listaInconsistencia);\n      }\n    } catch (error) {\n    }\n  }\n\n  async verAction(event) {\n    try {\n      let eventoJornada: EventoJornadaModel = event.data;\n      if (eventoJornada.tipoInconsis == 'Reloj') {\n        let filtro: EventoJornadaModel = new EventoJornadaModel();\n        filtro.llaveTabla = eventoJornada.llaveTabla;\n        eventoJornada = await this.generalService.queryForObject(new GeneralModel('EventoJornadaDTO', null, false, filtro)).toPromise();\n        this.isLoadingData = true;\n        this.mostrarPopup = true;\n        await this.utilService.sleep(100).then(data => {\n          this.popupInconsistencia.inicializarReloj(eventoJornada).then(data => {\n            this.isLoadingData = false;\n          });\n        })\n      }\n    } catch (error) {\n\n    }\n  }\n\n  async regresaPopup(event) {\n    this.mostrarPopup = event;\n    await this.traerInconsistencia();\n  }\n\n}\n","<div id=\"id_popupInconsisteciaLiquidacion\" class=\"card p-4\"  *ngIf=\"listaInconsistencia.length > 0\">\n    <div class=\"mb-3\">\n        <h4 class=\"text-xl mb-0\">{{'inconsistencias' | translate}} {{'marcacion' | translate}}</h4>\n    </div>\n    <p-table [value]=\"listaInconsistencia\" [scrollable]=\"true\" selectionMode=\"single\"\n        [paginator]=\"listaInconsistencia.length > 10\" [rows]=\"10\"\n        [totalRecords]=\"listaInconsistencia.length\" [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" dataKey=\"llaveTabla\"\n        (onRowSelect)=\"verAction($event)\" [loading]=\"isLoadingData\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'identificacion' | translate}}</th>\n                <th>{{'nombre' | translate}}</th>\n                <th>{{'mensaje' | translate}}</th>\n                <th>{{'tipo' | translate}}</th>\n                <th>{{'horainicial' | translate}}</th>\n                <th>{{'horafinal' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-Inconliquidacion>\n            <tr [pSelectableRow]=\"Inconliquidacion\">\n                <td>{{Inconliquidacion.hojaVida}} </td>\n                <td>{{Inconliquidacion.nombreCompleto}}</td>\n                <td>{{Inconliquidacion.mensaje | eventoJornadaConsPipe : 'listaMensaje'}}</td>\n                <td>{{Inconliquidacion.tipoInconsis}}</td>\n                <td>{{Inconliquidacion.horaInicio | date : 'dd/MM/yyyy HH:mm'}}</td>\n                <td>{{Inconliquidacion.horaFin | date : 'dd/MM/yyyy HH:mm'}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<div *ngIf=\"mostrarPopup\">\n    <app-popup-solucion-inconsistencia #popupInconsistencia\n        (regresar)=\"regresaPopup($event)\"></app-popup-solucion-inconsistencia>\n</div>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { GeneralModel, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { JornadaModel } from '../../../models/JornadaModel';\nimport { jornadaConsPipe } from '../../../pipes/JornadaCons.pipe';\nimport { PopupSolucionInconsistenciaComponent } from '../../../popups/popup-solucion-inconsistencia/popup-solucion-inconsistencia.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { NgIf, DatePipe } from '@angular/common';\n@Component({\n  selector: 'app-evento-inconsistencia-programacion',\n  templateUrl: './evento-inconsistencia-programacion.component.html',\n  styleUrls: ['./evento-inconsistencia-programacion.component.scss'],\n  standalone: true,\n  imports: [NgIf, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, PopupSolucionInconsistenciaComponent, DatePipe, TranslateModule, jornadaConsPipe]\n})\nexport class EventoInconsistenciaProgramacionComponent implements OnInit {\n\n  @ViewChild('popupInconsistencia') popupInconsistencia: PopupSolucionInconsistenciaComponent;\n  @Output() listaRegresar: EventEmitter<any> = new EventEmitter();\n\n  jornada: JornadaModel = new JornadaModel();\n  listaJornada: JornadaModel[] = [];\n  isLoadingData: boolean = false;\n  mostrarPopup: boolean = false;\n\n  constructor(\n    private generalService: GeneralService,\n    public jornadaPipe: jornadaConsPipe,\n    private utilService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  async cargar(llaveProceso: string) {\n    this.jornada.registroProceso = llaveProceso;\n    await this.traerEventoInconsistencia();\n  }\n\n  async traerEventoInconsistencia() {\n    try {\n      this.isLoadingData = true;\n      this.listaJornada = [];\n      this.listaJornada = await this.generalService.queryForList(new GeneralModel('JornadaDTO', 'Jornada.consultarJornadaInconsistencia', false, this.jornada)).toPromise();\n      this.listaJornada.forEach(data => {\n        if (data.estado != null && data.estado === 'I') {\n          data.estado = 'I'\n        }\n        if (data.hijasInconsistencia != null && data.hijasInconsistencia > 0) {\n          data.estado = 'I'\n        }\n        if (data.hijasProgramadas != null && data.hijasProgramadas > 0) {\n          data.estado = 'P'\n        }\n        const isValidOption = this.jornadaPipe.mapaTipos.some(option => option.codigo === data.tipo)\n        if(!isValidOption && data.tipo !== 'RJ'){\n          data.tipo = null;\n        }\n      })\n      if (this.listaJornada) {\n        this.isLoadingData = false;\n        this.listaRegresar.emit(this.listaJornada);\n      }\n    } catch (error) {\n    }\n  }\n\n  async verAction(event) {\n    try {\n      let jornada: JornadaModel = new JornadaModel();\n      jornada = event.data;\n      if (jornada.depende != null) {\n        let consultaJornada: JornadaModel = new JornadaModel();\n        consultaJornada.llaveTabla = jornada.depende;\n        jornada = await this.generalService.queryForObject(new GeneralModel('JornadaDTO', 'Jornada.consultarJornadaPersona', false, consultaJornada)).toPromise();\n        if (jornada == null) {\n          return;\n        }\n      }\n      this.mostrarPopup = true;\n      await this.utilService.sleep(100).then(data => {\n        if (this.jornadaPipe.RELOJ == jornada.tipo) {\n          this.popupInconsistencia.inicializarJornadaReloj(jornada).then(data => { });\n        }\n      })\n    } catch (error) {\n\n    }\n  }\n\n\n  public horasString(valor): any {\n    let result;\n    this.listaJornada.forEach(data => {\n      if (data.llaveTabla === valor) {\n        if (data.horaFinal != null || data.horaInicial != null) {\n          const fechaInicial = new Date(data.horaInicial);\n          const fechaFinal = new Date(data.horaFinal);\n          const horaMinFinal: string = fechaFinal.getHours().toString().padStart(2, '0') + ':' + fechaFinal.getMinutes().toString().padStart(2, '0');\n          const horaMinInicial: string = fechaInicial.getHours().toString().padStart(2, '0') + ':' + fechaInicial.getMinutes().toString().padStart(2, '0');\n          result = (horaMinInicial ? horaMinInicial : '') + ' - ' + (horaMinFinal ? horaMinFinal : '');\n        }\n      }\n    });\n    return result;\n  }\n\n  async regresaPopup(evento) {\n    this.mostrarPopup = evento;\n    await this.traerEventoInconsistencia();\n  }\n\n}\n","<div id=\"id_popupEventoInconsistecia\" class=\"card p-4\" *ngIf=\"listaJornada.length > 0\">\n    <div class=\"mb-3\">\n        <h4 class=\"text-xl mb-0\">{{'inconsistencias' | translate}} {{'programacion' | translate}}</h4>\n    </div>\n    <p-table [value]=\"listaJornada\" [scrollable]=\"true\" selectionMode=\"single\" [paginator]=\"listaJornada.length > 10\"\n        [scrollable]=\"true\" [rows]=\"10\" [totalRecords]=\"listaJornada.length\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\" selectionMode=\"single\" (onRowSelect)=\"verAction($event)\" scrollDirection=\"horizontal\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'identificacion' | translate}}</th>\n                <th>{{'nombres' | translate}}</th>\n                <th>{{'tipo' | translate}}</th>\n                <th>{{'fecha_entrada' | translate}}</th>\n                <th>{{'fecha_salida' | translate}}</th>\n                <th>{{'horario' | translate}}</th>\n                <th>{{'nombre' | translate}}</th>\n                <th>{{'estado' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-programacion>\n            <tr [pSelectableRow]=\"programacion\">\n                <td>{{programacion.hojaVidaPersona}}</td>\n                <td>{{programacion.nombresPersona}}</td>\n                <td>\n                    <ng-container *ngIf=\"programacion.tipo !== 'RJ'\">\n                        {{programacion.tipo | jornadaConsPipe: 'listaTipos'}}\n                    </ng-container>\n                    <ng-container *ngIf=\"programacion.tipo === 'RJ'\">\n                        {{'marcacionnoautorizada' | translate}}\n                    </ng-container>\n                </td>\n                <td>{{programacion.entradaPrograma | date: 'dd/MM/yyyy HH:mm' }}</td>\n                <td>{{programacion.salidaPrograma | date: 'dd/MM/yyyy HH:mm'}}</td>\n                <td>\n                    <ng-container *ngIf=\"programacion.tipo !== 'TU'\">\n                        {{horasString(programacion.llaveTabla)}}\n                    </ng-container>\n                    <ng-container *ngIf=\"programacion.tipo === 'TU'\">\n                        {{programacion.horarioCadena}}\n                    </ng-container>\n                </td>       \n                <td>{{programacion.nombreHorario }}</td>\n                <td>\n                    <ng-container *ngIf=\"programacion.tipo !== 'RJ'\">\n                        {{programacion.estado | jornadaConsPipe: 'listaEstados'}}\n                    </ng-container>                    \n                </td>                \n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<div *ngIf=\"mostrarPopup\">\n    <app-popup-solucion-inconsistencia #popupInconsistencia\n        (regresar)=\"regresaPopup($event)\"></app-popup-solucion-inconsistencia>\n</div>","import { UnionModel } from 'general-library-union'\nimport { ListaModel } from './ListaModel';\n\n\nexport class LoginAccesoModel extends ListaModel{\n\n\tllave: string;\n\tlogin: string;\n\t/**Tipo de objeto sobre el que otorga privilegio este login acceso: \n\t * <l>\n\t * <li> TV : Tipo de Solicitud de vinculacion\n\t * <li> RF : Reporte Fuente \n\t * <li> RG : Reporte Generado\n\t * <li> DR : Diseño Reporte\n\t * <li> ZO : Zona economica\n\t * <li> UN : Unidad Organizacional\n\t * <li> HV : Seccion de Hoja de Vida\n\t * <li> GH : Seccion de Gestión de Herramientas\n\t * </l>\n\t * */\n\ttipo: string; \n\tempresa: number;\n\tunidad: string;\n\tdepende: string;\n\tzonaEconomica: string;\n\ttipoPeriodo: number;\n\tnombreZona: string;\n\tnombreUnidad: string;\n\tnombrePeriodo: string;\n\treporte: string;\n\tnombreReporte: string;\t\n\tseleccionado: boolean;\n\tusuario: string;\n\tsucursal: string; \n\tnombreSucursal: string;\n\ttipoInversion: string;\n\tnombreTipoInversion: string;\n\torigeInversion: string;\n\tllaveReferencia: string;\n\torigen: string;\n\taliasRol: string;\n\tdescripcionTipo: string;\n\tmodo: string;\n\tpuntoProceso: string;\n\torganizacion: number;\n\tcampoFiltro: string;\n\tsitio: string;\n\tnombreSitio: string;\n\tcodigoSitio: string;\n\tcodigo: string;\n\tdatoOrganizacion: string;\n\ttipoPuestoTrabajo: string;\n\tloginCopia: string;\n\taliasRolCopia: string;\n\ttipoDiferencia: string;\n\tdiferenteLogin: string;\n\tdiferenteAliasRol: string;\n\t\n\t/** La llave de la seccion de hoja de vida que puede visualizar este loginAcceso*/\n\tseccionHojaVida: string;\n\t/** La descripcion de la seccion de hoja de vida que puede visualizar este loginAcceso*/\n\tdescripcionSeccionHojaVida: string;\n\tloginAutoriza: string;\n\tfiltroCondicion: string;\n\tetapaCredito: string;\n\tclase: string;\n\t/*Para FactorPuntaje se usan tres descripciones, \n\t * luego en descripcionTipo las comprobaremos y se concatenarán.*/\n\tdescripcionGrupoFP: string;\n\tdescripcionFactorFP: string;\n\tdescripcionLineaFP: string;\n\tfactorPuntaje: string;\n\tllaveFuenteDato: string;\n\tsucursalGes: string;\n\tnombreEmpresa: string;\n\tnombreOrganizacion: string;\n\t//Variable usada para rol acceso\n\tverDetalle: boolean;\n\tcomodinBusqueda: string;\n\tnombre: string;\n\n\n\t}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { LiquidacionTiempoModel } from '../../../models/LiquidacionTiempoModel';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { LoginAccesoModel } from '../../../../sarageneral/models/LoginAccesoModel';\nimport { FiltroGeneralComponent, GeneralModel, GeneralService, StorageService, ToastService, cargarmapasGlobal } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { Calendar, CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n  selector: 'app-listado-conceptos-por-autorizar',\n  templateUrl: './listado-conceptos-por-autorizar.component.html',\n  styleUrls: ['./listado-conceptos-por-autorizar.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, FormsModule, ReactiveFormsModule, InputHelperHojaVidaComponent, DropdownModule, CalendarModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, CheckboxModule, DatePipe, TranslateModule, liquidacionTiempoPipe, FiltroGeneralComponent, InputTextModule]\n})\nexport class ListadoConceptosPorAutorizarComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @ViewChild('calendar') calendar: Calendar;\n\n  filtro: LiquidacionTiempoModel = new LiquidacionTiempoModel();\n  listaConceptos: LiquidacionTiempoModel[] = [];\n  listaConceptoTiempo = [];\n  listaEstados = [];\n  listaGrupo = [];\n  registroProceso: RegistroProcesoModel = new RegistroProcesoModel();\n  nivelAutorizacion: string;\n  cedulaAutorizado: number;\n  filters = [];\n  nombreConsulta: string = 'HojaVida.obtenerHojaVida';\n  cantidadConsulta: string = 'HojaVida.cantidadObtenerHojaVida';\n  filtroRolCliente: boolean = false;\n  columna: string = 'snombre';\n  isLoadingData: boolean = false;\n  registrosSeleccionados: LiquidacionTiempoModel[] = [];\n  seleccionarTodo: boolean = false;\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n\n\n  constructor(\n    private storageService: StorageService,\n    private generalService: GeneralService,\n    private saraappservice: SaraAplicacionService,\n    private liquidaTiemposPipe: liquidacionTiempoPipe,\n    private cargarMapas: cargarmapasGlobal,\n    public translateService: TranslateService,\n    private toastService: ToastService,\n    private confirmationService: ConfirmationService\n  ) { }\n\n  ngOnInit(): void {\n    this.cargarFiltros();\n  }\n\n  cargarFiltros() {\n    this.filtro = new LiquidacionTiempoModel();\n    this.filters = [\n      {\n        field: 'documentoPersona',\n        header: this.translateService.instant('nombrepersona'),\n        values: (value) => this.filtro.nombrePersona,\n        matchMode: 'equal',\n      },\n      {\n        field: 'concepto',\n        header: this.translateService.instant('concepto'),\n        values: (value) => this.transform(value, 'listaConcepto'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (value) => this.transform(value, 'listaEstado'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'grupo',\n        header: this.translateService.instant('grupo'),\n        values: (value) => this.transform(value, 'listaGrupo'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('fechainicial'),\n        matchMode: 'equal',\n        formatDate: true\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('fechafinal'),\n        matchMode: 'equal',\n        formatDate: true\n      }\n    ]\n  }\n\n  async inicilizar(registroProcesoDTO: RegistroProcesoModel) {\n    this.filtro = new LiquidacionTiempoModel();\n    this.registroProceso = registroProcesoDTO;\n    this.cargarFiltros();\n    this.traerNivelAutorizacion();\n    this.cargarListas();\n    this.loadData();\n    this.registrosSeleccionados = [];\n  }\n\n  async traerNivelAutorizacion() {\n    this.nivelAutorizacion = Constantes.CONSTANTE_NO;\n    if (this.registroProceso.estado !== 'L') {\n      return;\n    }\n    try {\n      let loginAcceso = new LoginAccesoModel();\n      loginAcceso.login = this.storageService.getDecodedJWT().usuario;\n      loginAcceso.tipo = 'ST';\n      loginAcceso.sitio = this.registroProceso.sitio;\n      let lista = await this.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', null, false, loginAcceso)).toPromise();\n      if (lista.length == 0) {\n        this.nivelAutorizacion = Constantes.CONSTANTE_NO;\n      }\n      if (lista[0].afecta != null) {\n        this.nivelAutorizacion = lista[0].afecta;\n      }\n      if (this.registroProceso.sitio == null) {\n        this.nivelAutorizacion = '1'\n      }\n    } catch (error) {\n    }\n  }\n\n  async cargarListas() {\n    this.cedulaAutorizado = (await this.saraappservice.getCedula());\n    this.listaEstados = this.liquidaTiemposPipe.MAPAESTADOAUTORIZADA;\n    this.listaEstados.sort((a, b) => a.nombre.localeCompare(b.nombre));\n    try {\n      this.listaGrupo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'GRUPO', modoParametro: (await this.saraappservice.getEmpresa()).modoCompensacion }));\n      this.listaGrupo.sort((a, b) => a.label.localeCompare(b.label));\n      this.listaConceptoTiempo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('ConceptoTiempoDTO', null, false, { diferente: this.liquidaTiemposPipe.RECEPTOR }));\n      this.listaConceptoTiempo.sort((a, b) => a.label.localeCompare(b.label));\n    } catch (error) {\n    }\n  }\n\n  transform(value: any, ...args: any[]): any {\n    let result = value\n    if (args[0] == 'listaEstado') { this.listaEstados.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n    if (args[0] == 'listaGrupo') { this.listaGrupo.forEach(data => { if (data.key === value) { result = data.label } }); };\n    if (args[0] == 'listaConcepto') { this.listaConceptoTiempo.forEach(data => { if (data.key === value) { result = data.label } }); };\n    return result;\n  }\n\n\n  async loadData(objetoFiltro?: any) {\n    if (objetoFiltro == null) {\n      objetoFiltro = {\n        proceso: this.registroProceso.llave,\n        porAutorizar: Constantes.CONSTANTE_SI,\n        empresa: (await this.saraappservice.getEmpresa()).empresa\n      }\n    }\n    this.isLoadingData = true;\n    this.listaConceptos = await this.generalService.queryForList(new GeneralModel('LiquidacionTiempoDTO', null, false, objetoFiltro)).toPromise();\n    this.paginator.totalRecords = this.listaConceptos.length;\n    if (this.listaConceptos) {\n      this.isLoadingData = false;\n    }\n    if (this.nivelAutorizacion == '1' || this.nivelAutorizacion == '2') {\n      this.listaConceptos.forEach(data => {\n        if (this.nivelAutorizacion == '1' && data.aprobador2 == null) {\n          data.estadoSeleccion = this.nivelAutorizacion;\n        }\n        if (this.nivelAutorizacion == '2' && data.aprobador != null) {\n          data.estadoSeleccion = this.nivelAutorizacion;\n        }\n      });\n    }\n  }\n\n  async cargarListaFiltros(event) {\n    var objeto = {\n      proceso: this.registroProceso.llave,\n      porAutorizar: Constantes.CONSTANTE_SI,\n      empresa: (await this.saraappservice.getEmpresa()).empresa,\n      documentoPersona: event.documentoPersona?.value,\n      conceptoTiempo: event.concepto?.value,\n      estado: event.estado?.value,\n      grupo: event.grupo?.value,\n      base: new Date(event.fechaInicial?.value),\n      baseFinal: new Date(event.fechaFinal?.value),\n    }\n    this.loadData(objeto);\n  }\n\n  verPopupHoja(empleado) {\n    this.filtro.documentoPersona = empleado.identifica;\n    this.filtro.nombrePersona = empleado.nombreCompleto;\n  }\n\n  onSeleccionarTodo() {\n    if (this.seleccionarTodo) {\n      this.registrosSeleccionados = [];\n      for (let per of this.listaConceptos) {\n        per.check = true;\n        this.registrosSeleccionados.push(per);\n      }\n    } else {\n      for (let per of this.listaConceptos) {\n        per.check = false;\n      }\n      this.registrosSeleccionados = [];\n    }\n  }\n\n  seleccionar(objeto, isChecked) {\n    if (isChecked) {\n      if (!this.registrosSeleccionados.includes(objeto)) {\n        this.registrosSeleccionados.push(objeto);\n      }\n    } else {\n      const index = this.registrosSeleccionados.indexOf(objeto);\n      if (index !== -1) {\n        this.registrosSeleccionados.splice(index, 1);\n      }\n    }\n    let isValidar = false;\n    for (let per of this.listaConceptos) {\n      if (!per.check) {\n        isValidar = true;\n        break;\n      }\n    }\n    if (isValidar) {\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionarTodo = true;\n    }\n  }\n\n  quitarCheck() {\n    for (let per of this.listaConceptos) {\n      per.check = false;\n      this.registrosSeleccionados = [];\n    }\n    this.seleccionarTodo = false;\n  }\n\n  showAutorizaConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.autorizar();\n      },\n      reject: () => {\n        this.quitarCheck();\n      }\n    });\n  }\n\n  async autorizar() {\n    if (this.registrosSeleccionados.length == 0) {\n      this.toastService.showError('Debe Seleccionar por lo menos un registro');\n      return;\n    }\n\n    for (const liquidacionTiempo of this.registrosSeleccionados) {\n      if (liquidacionTiempo.cantidadMinutos == null && liquidacionTiempo.cantidadHoras == null) {\n        continue;\n      }\n      liquidacionTiempo.cantidad = 0;\n      if (liquidacionTiempo.cantidadHoras != null) {\n        liquidacionTiempo.cantidad = liquidacionTiempo.cantidadHoras;\n      }\n      if (liquidacionTiempo.cantidadMinutos != null) {\n        let numero: number = liquidacionTiempo.cantidadMinutos / 60;\n        liquidacionTiempo.cantidad = numero;\n      }\n\n      if (liquidacionTiempo.calculoMinutos == null && liquidacionTiempo.calculoHoras == null) {\n        continue;\n      }\n      liquidacionTiempo.calculo = 0;\n      if (liquidacionTiempo.calculoHoras != null) {\n        liquidacionTiempo.calculo = liquidacionTiempo.calculoHoras;\n      }\n      if (liquidacionTiempo.calculoMinutos != null) {\n        let numeroMin: number = liquidacionTiempo.calculoMinutos / 60;\n        liquidacionTiempo.calculo = numeroMin;\n      }\n      if (liquidacionTiempo.cantidad < 0) {\n        this.toastService.showError('Cantidad no puede ser negativo, persona: ' + liquidacionTiempo.documentoPersona.toString());\n        return;\n      }\n      if (liquidacionTiempo.cantidad > liquidacionTiempo.calculo) {\n        this.toastService.showError('Cantidad supera al calculado, persona: ' + liquidacionTiempo.documentoPersona.toString());\n        return;\n      }\n    };\n\n    let autorizacionFinal = true;\n    if (this.nivelAutorizacion == '1' && this.registroProceso.sitio != null) {\n      let loginAcceso = new LoginAccesoModel();\n      loginAcceso.tipo = 'ST';\n      loginAcceso.sitio = this.registroProceso.sitio;\n      loginAcceso.afecta = '2';\n      loginAcceso.origen = 'U';\n      let lista = await this.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', null, false, loginAcceso)).toPromise();\n      let login = lista[0];\n      if (login != null) {\n        autorizacionFinal = false\n      }\n    }\n\n    this.registrosSeleccionados.forEach(async liquidacionTiempo => {\n      if (this.nivelAutorizacion == '2') {\n        liquidacionTiempo.aprobador2 = this.cedulaAutorizado;\n      } else {\n        liquidacionTiempo.aprobador = this.cedulaAutorizado;\n      }\n      if (autorizacionFinal) {\n        liquidacionTiempo.estado = this.liquidaTiemposPipe.LIQUIDADA;\n      }\n      await this.generalService.update(new GeneralModel('LiquidacionTiempoDTO', null, false, liquidacionTiempo)).toPromise();\n    });\n    this.toastService.showInfo(this.translateService.instant('mensaje_proceso'));\n    this.loadData();\n  }\n\n  showNoAutorizaConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.noAutorizar();\n      },\n      reject: () => {\n        this.quitarCheck();\n      }\n    });\n  }\n\n  noAutorizar() {\n    if (this.registrosSeleccionados.length == 0) {\n      this.toastService.showError('Debe Seleccionar por lo menos un registro');\n      return null;\n    }\n    this.registrosSeleccionados.forEach(async liquidacionTiempo => {\n      liquidacionTiempo.estado = this.liquidaTiemposPipe.NO_AUTORIZADA;\n      liquidacionTiempo.cantidad = 0;\n      await this.generalService.update(new GeneralModel('LiquidacionTiempoDTO', null, false, liquidacionTiempo)).toPromise();\n    })\n    this.toastService.showInfo('Se autorizo el proceso correctamente');\n    this.loadData();\n  }\n\n  public mapEstado(estado: string): boolean {\n    let validacion = this.liquidaTiemposPipe.MAPAESTADOAUTORIZADA.find(element => element.codigo == estado);\n    if (validacion) {\n      return true;\n    }\n    return false;\n  }\n\n  onFocus(event: Event) {\n    event.preventDefault();\n    this.calendar.hideOverlay();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mb-3\">\n    <!-- FILTRO -->\n    <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresar)=\"cargarListaFiltros($event)\">\n        <ng-template let-form>\n            <ng-container [formGroup]=\"form\">\n                <div class=\"flex\">\n                    <!-- NOMBRE PERSONA -->\n                    <div class=\"field mr-2 w-full\">\n                        <app-input-helper-hoja-vida #hojaVida [consulta]=\"nombreConsulta\"\n                            [cantidadConsulta]=\"cantidadConsulta\" [filtroRolCliente]=\"filtroRolCliente\"\n                            [readonly]=\"false\" [label]=\"filtro.nombrePersona ? filtro.nombrePersona : ''\"\n                            [header]=\"this.translateService.instant('nombrepersona')\" formControlName=\"documentoPersona\"\n                            [ocultarBtnLimpiar]=\"true\" (onSelected)=\"verPopupHoja($event)\">\n                        </app-input-helper-hoja-vida>\n                    </div>\n                    <!-- CONCEPTO -->\n                    <div class=\"field w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [options]=\"listaConceptoTiempo\" [autoDisplayFirst]=\"false\"\n                                formControlName=\"concepto\" optionLabel=\"label\" optionValue=\"key\"\n                                [virtualScroll]=\"true\"></p-dropdown>\n                            <label>{{'concepto' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n                <div class=\"flex\">\n                    <!-- ESTADO -->\n                    <div class=\"field mr-2 w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [options]=\"listaEstados\" [autoDisplayFirst]=\"false\" formControlName=\"estado\"\n                                optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n                            <label>{{'estado' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- TIPO TURNO -->\n                    <div class=\"field w-full\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown [options]=\"listaGrupo\" [autoDisplayFirst]=\"false\" formControlName=\"grupo\"\n                                optionLabel=\"label\" optionValue=\"key\"></p-dropdown>\n                            <label>{{'grupo' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n                <div class=\"flex\">\n                    <!-- FECHA INICIAL -->\n                    <div class=\"field mr-2 w-full\">\n                        <span class=\"p-float-label\">\n                            <p-calendar #calendar formControlName=\"fechaInicial\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" (onFocus)=\"onFocus($event)\"></p-calendar>\n                            <label for=\"ubicacion\">{{'fechainicial' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- FECHA FINAL -->\n                    <div class=\"field w-full\">\n                        <span class=\"p-float-label\">\n                            <p-calendar #calendar formControlName=\"fechaFinal\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" (onFocus)=\"onFocus($event)\"></p-calendar>\n                            <label for=\"fechafinal\">{{'fechafinal' | translate}}</label>\n                        </span>\n                    </div>\n                </div>\n            </ng-container>\n        </ng-template>\n    </app-filtro-general>\n    <div class=\"flex justify-content-end\" *ngIf=\"nivelAutorizacion !== 'N'\">\n        <!-- BOTON AUTORIZAR -->\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"pi pi-check-square\"\n            label=\"{{'link_autorizar' | translate}}\" (click)=\"showAutorizaConfirmDialog()\">\n        </button>\n        <!-- BOTON NO AUTORIZAR -->\n        <button pButton pRipple class=\"ml-2 p-button p-button-outlined claro\" icon=\"pi pi-times-circle\"\n            label=\"{{'link_noautorizar' | translate}}\" (click)=\"showNoAutorizaConfirmDialog()\">\n        </button>\n    </div>\n</div>\n<p-table [value]=\"listaConceptos\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\"\n    [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n    [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n    [loading]=\"isLoadingData\">\n    <ng-template pTemplate=\"header\">\n        <tr>\n            <th style=\"width: 3%;\" *ngIf=\"nivelAutorizacion !== 'N'\">\n                <p-checkbox [(ngModel)]=\"seleccionarTodo\" (onChange)=\"onSeleccionarTodo()\" [binary]=\"true\"\n                    (click)=\"$event.stopPropagation()\" [disabled]=\"listaConceptos.length > 0 ? false : true\">\n                </p-checkbox>\n            </th>\n            <th style=\"width: 7%;\">{{'documento' | translate}}</th>\n            <th style=\"width: 20%;\">{{'nombre' | translate}}</th>\n            <th style=\"width: 15%;\">{{'concepto' | translate}}</th>\n            <th style=\"width: 10%;\">{{'fechainicial' | translate}}</th>\n            <th style=\"width: 10%;\">{{'fechafinal' | translate}}</th>\n            <th style=\"width: 10%;\">{{'cantidad' | translate}}</th>\n            <th style=\"width: 15%;\">{{'autorizada' | translate}}</th>\n            <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n            <th style=\"width: 10%;\">{{'autorizador' | translate}}</th>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"body\" let-data>\n        <tr [pSelectableRow]=\"data\">\n            <td style=\"width: 3%;\" *ngIf=\"nivelAutorizacion !== 'N'\">\n                <p-checkbox [binary]=\"true\" (onChange)=\"seleccionar(data, $event.checked)\"\n                    (click)=\"$event.stopPropagation()\" [(ngModel)]=\"data.check\"></p-checkbox>\n            </td>\n            <td style=\"width: 7%;\">{{data.documentoPersona}}</td>\n            <td style=\"width: 20%;\">{{data.nombrePersona}}</td>\n            <td style=\"width: 15%;\">{{data.descripcionConcepto}}</td>\n            <td style=\"width: 10%;\">{{data.base | date: 'dd/MM/yyyy'}}</td>\n            <td style=\"width: 10%;\">{{data.baseFinal | date: 'dd/MM/yyyy'}}</td>\n            <td style=\"width: 10%;\">{{data.calculoHoras}} : {{data.calculoMinutos}}</td>\n            <td style=\"width: 15%;\">\n                <input pInputText style=\"width: 25%;\" type=\"text\" [(ngModel)]=\"data.cantidadHoras\" maxlength=\"2\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 2);\"> :\n                <input pInputText style=\"width: 25%;\" type=\"text\" [(ngModel)]=\"data.cantidadMinutos\" maxlength=\"2\"\n                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 2);\">\n            </td>\n            <td style=\"width: 10%;\">\n                <ng-container *ngIf=\"mapEstado(data.estado)\">\n                    {{ data.estado | liquidacionTiempoPipe:'MAPAESTADOAUTORIZADA' }}\n                </ng-container>\n            </td>\n            <td style=\"width: 10%;\">{{data.nombreAprobador}} {{data.nombreAprobador2}} </td>\n        </tr>\n    </ng-template>\n    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template></p-table>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { JornadaModel } from '../../../models/JornadaModel';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { CodigoBaseTiempoModel } from '../../../models/CodigoBaseTiempoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { FiltroGeneralComponent, GeneralModel, StorageService, ToastService } from 'general-library-union';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { LoginAccesoModel } from '../../../../sarageneral/models/LoginAccesoModel';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n  selector: 'app-listado-compensacion-tiempo',\n  templateUrl: './listado-compensacion-tiempo.component.html',\n  styleUrls: ['./listado-compensacion-tiempo.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, NgIf, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, CheckboxModule, FormsModule, DatePipe, TranslateModule, FiltroGeneralComponent, InputTextModule, ReactiveFormsModule]\n})\nexport class ListadoCompensacionTiempoComponent implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  listaJornadas: JornadaModel[] = [];\n  registroProceso: RegistroProcesoModel = new RegistroProcesoModel();\n  flanjaDisfrute: CodigoBaseTiempoModel = new CodigoBaseTiempoModel();\n  flanjaPagar: CodigoBaseTiempoModel = new CodigoBaseTiempoModel();\n  definir: boolean;\n  nivelAutorizacion: string;\n  registrosSeleccionados: any[] = [];\n  seleccionarTodo: boolean = false;\n  isLoadingData: boolean = false;\n  paginator = { rows: 10, totalRecords: 0 };\n  filtro: string;\n  filters = [];\n\n  constructor(\n    private generalService: GeneralService,\n    private toastService: ToastService,\n    private storageService: StorageService,\n    private confirmationService: ConfirmationService,\n    private liquidacionTiemposPipe: liquidacionTiempoPipe,\n    public translateService: TranslateService\n  ) { }\n\n  ngOnInit(): void {\n    this.cargarFiltros();\n  }\n\n  cargarFiltros() {\n    this.filters = [\n      {\n        field: 'filtro',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'equal',\n      }\n    ]\n  }\n\n  async iniciarProceso(registroProcesoDTO: RegistroProcesoModel) {\n    this.registroProceso = registroProcesoDTO;\n    this.registrosSeleccionados = [];\n    this.loadData();\n    this.traerNivelAutorizacion();\n  }\n\n  async loadData() {\n    this.listaJornadas = [];\n    this.listaJornadas = await this.generalService.queryForList(new GeneralModel('JornadaDTO', 'Jornada.consultarJornadaACompensar', false, { registroProceso: this.registroProceso.llave })).toPromise();\n    this.paginator.totalRecords = this.listaJornadas.length;\n    this.listaJornadas.forEach(data => {\n      data.entradaPrograma = data.entradaPrograma ? new Date(data.entradaPrograma) : null;\n      data.salidaPrograma = data.salidaPrograma ? new Date(data.salidaPrograma) : null;\n      data.entradaReloj = data.entradaReloj ? new Date(data.entradaReloj) : null;\n      data.salidaReloj = data.salidaReloj ? new Date(data.salidaReloj) : null;\n    })\n    this.listaJornadas.sort((a, b) => {\n      return new Date(a.entradaPrograma).getTime() - new Date(b.entradaPrograma).getTime();\n    });\n  }\n\n  async traerNivelAutorizacion() {\n    this.flanjaDisfrute = await this.traerFlaja('P');\n    this.flanjaPagar = await this.traerFlaja('R');\n    this.definir = false;\n    if (this.flanjaDisfrute == null || this.flanjaPagar == null) {\n      return;\n    }\n    this.nivelAutorizacion = Constantes.CONSTANTE_NO;\n    if (this.liquidacionTiemposPipe.NOMINA === this.registroProceso.estado || this.liquidacionTiemposPipe.HISTORICO === this.registroProceso.estado) {\n      return;\n    }\n\n    let loginAcceso = new LoginAccesoModel();\n    loginAcceso.login = this.storageService.getDecodedJWT().usuario;\n    loginAcceso.tipo = 'ST';\n    loginAcceso.sitio = this.registroProceso.sitio;\n    let lista = await this.generalService.queryForList(new GeneralModel('LoginAccesoSaraDTO', null, false, loginAcceso)).toPromise();\n    if (lista.length == 0) {\n      this.nivelAutorizacion = Constantes.CONSTANTE_NO;\n    }\n    if (lista[0].afecta != null) {\n      this.nivelAutorizacion = lista[0].afecta;\n    }\n    if (this.registroProceso.sitio == null) {\n      this.nivelAutorizacion = '1'\n    }\n    this.definir = this.nivelAutorizacion == '1' ? true : false;\n  }\n\n  async traerFlaja(origen: string) {\n    let comodin: CodigoBaseTiempoModel = new CodigoBaseTiempoModel();\n    comodin.tipo = 'TIPJO';\n    comodin.temporal = origen;\n    let lista = await this.generalService.queryForList(new GeneralModel('CodigoBaseTiempoDTO', null, false, comodin)).toPromise();\n    if (lista.length == 0) {\n      this.toastService.showWarning('Flanja de compensaci' + Constantes.O_TIDLE_MIN + 'n o pago no existe');\n      return null;\n    }\n    comodin = lista[0];\n    comodin.descripcion = this.capitalizarTexto(comodin.descripcion);\n    return comodin;\n  }\n\n  onSeleccionarTodo() {\n    if (this.seleccionarTodo) {\n      this.registrosSeleccionados = [];\n      for (let per of this.listaJornadas) {\n        per.check = true;\n        this.registrosSeleccionados.push(per);\n      }\n    } else {\n      for (let per of this.listaJornadas) {\n        per.check = false;\n      }\n      this.registrosSeleccionados = [];\n    }\n  }\n\n  seleccionar(objeto, isChecked) {\n    if (isChecked) {\n      if (!this.registrosSeleccionados.includes(objeto)) {\n        this.registrosSeleccionados.push(objeto);\n      }\n    } else {\n      const index = this.registrosSeleccionados.indexOf(objeto);\n      if (index !== -1) {\n        this.registrosSeleccionados.splice(index, 1);\n      }\n    }\n    let isValidar = false;\n    for (let per of this.listaJornadas) {\n      if (!per.check) {\n        isValidar = true;\n        break;\n      }\n    }\n    if (isValidar) {\n      this.seleccionarTodo = false;\n    } else {\n      this.seleccionarTodo = true;\n    }\n  }\n\n  async aplicarCompensacion(flanja: CodigoBaseTiempoModel) {\n    if (this.registrosSeleccionados.length == 0) {\n      this.toastService.showError('Debe seleccionar por lo menos un registro');\n      return null;\n    }\n    try {\n      this.registrosSeleccionados.forEach(async jornadaDTO => {\n        jornadaDTO.jornadaAjuste = flanja.llaveTabla;\n        await this.generalService.update(new GeneralModel('JornadaDTO', null, false, jornadaDTO)).toPromise();\n        if (jornadaDTO.jornadaOrigen != null) {\n          let comodin: JornadaModel = new JornadaModel();\n          comodin.llaveTabla = jornadaDTO.jornadaOrigen;\n          comodin = await this.generalService.queryForObject(new GeneralModel('JornadaDTO', null, false, comodin)).toPromise();\n          if (comodin != null) {\n            comodin.jornadaCompensa = flanja.llaveTabla;\n            await this.generalService.update(new GeneralModel('JornadaDTO', null, false, comodin)).toPromise();\n          }\n        }\n      })\n      let registroProcesoDTO: RegistroProcesoModel = new RegistroProcesoModel();\n      registroProcesoDTO.llave = this.registroProceso.llave;\n      registroProcesoDTO = await this.generalService.queryForObject(new GeneralModel('RegistroProcesoDTO', null, false, registroProcesoDTO)).toPromise();\n      if (registroProcesoDTO != null) {\n        if (registroProcesoDTO.mensaje == null) {\n          registroProcesoDTO.mensaje = 'Se requiere nuevamente liquidar'\n        } else if (!registroProcesoDTO.mensaje.includes('nuevamente')) {\n          registroProcesoDTO.mensaje = registroProcesoDTO.mensaje + '- Se requiere nuevamente liquidar';\n        }\n        registroProcesoDTO.estado = 'I';\n        await this.generalService.update(new GeneralModel('RegistroProcesoDTO', null, false, registroProcesoDTO)).toPromise();\n      }\n    } catch (error) {\n    }\n    this.loadData();\n  }\n\n\n  showConfirmDisfruteDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Autoriza ' + this.flanjaDisfrute?.descripcion + '?',\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.aplicarDisfrute();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n\n  showConfirmPagarDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: '¿Autoriza ' + this.flanjaPagar?.descripcion + '?',\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.aplicarPagar();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  aplicarDisfrute() {\n    this.aplicarCompensacion(this.flanjaDisfrute);\n  }\n\n  aplicarPagar() {\n    this.aplicarCompensacion(this.flanjaPagar);\n  }\n\n  capitalizarTexto(texto: string): string {\n    return texto.toLowerCase().replace(/(^|\\s)([a-z])/g, function (match) {\n      return match.toUpperCase();\n    });\n  }\n\n  async cargarListaFiltros(evento) {\n    let filtroPersona: string = evento?.filtro?.value;\n    if (filtroPersona == null) {\n      await this.loadData();\n      return;\n    }\n    let lista: any = [];\n    for (const unaJornada of this.listaJornadas) {\n      if (unaJornada['documentoPersona'] === filtroPersona) {\n        lista.push(unaJornada);\n        continue;\n      }\n      if (unaJornada['nombresPersona'].toUpperCase().includes(filtroPersona.toUpperCase())) {\n        lista.push(unaJornada);\n        continue;\n      }\n      this.listaJornadas = lista;\n    }\n\n  }\n}\n","<p-confirmPopup></p-confirmPopup>\n<div id=\"id_popupEventoInconsistecia\" class=\"card p-4\">\n    <h4 class=\"text-xl mb-0\">{{'compensacion' | translate}}</h4>\n    <div class=\"flex justify-content-between align-items-center mb-3 mt-3\">\n        <!-- FILTRO -->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex\">\n                        <!-- IDENTIFICACION -->\n                        <div class=\"field\">\n                            <div class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" formControlName=\"filtro\" autocomplete=\"off\"\n                                    [(ngModel)]=\"filtro\" />\n                                <label>{{'busqueda' | translate}}</label>\n                            </div>\n                        </div>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        <div class=\"flex justify-content-end\" *ngIf=\"definir\">\n            <!--BOTON DISFRUTE -->\n            <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"pi pi-check-square\"\n                (click)=\"showConfirmDisfruteDialog()\"\n                [label]=\"flanjaDisfrute?.descripcion ? flanjaDisfrute?.descripcion : translateService.instant('autorizacion')\">\n            </button>\n            <!-- BOTON PAGO -->\n            <button pButton pRipple class=\"ml-2 p-button p-button-outlined claro\" icon=\"pi pi-check-square\"\n                (click)=\"showConfirmPagarDialog()\"\n                [label]=\"flanjaPagar?.descripcion ? flanjaPagar?.descripcion : translateService.instant('autorizacion')\">\n            </button>\n        </div>\n    </div>\n    <p-table responsiveLayout=\"scroll\" [value]=\"listaJornadas\" [rows]=\"10\" [totalRecords]=\"listaJornadas.length\"\n        [paginator]=\"listaJornadas.length > 10\" [showCurrentPageReport]=\"true\" [loading]=\"isLoadingData\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\">\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 3%;\" *ngIf=\"definir\">\n                    <p-checkbox [(ngModel)]=\"seleccionarTodo\" (onChange)=\"onSeleccionarTodo()\" [binary]=\"true\"\n                        (click)=\"$event.stopPropagation()\" [disabled]=\"listaJornadas.length > 0 ? false : true\">\n                    </p-checkbox>\n                </th>\n                <th style=\"width: 3%;\">{{'identificacion' | translate}}</th>\n                <th style=\"width: 20%;\">{{'nombres' | translate}}</th>\n                <th style=\"width: 10%;\">{{'fecha_entrada' | translate}}</th>\n                <th style=\"width: 10%;\">{{'fecha_salida' | translate}}</th>\n                <th style=\"width: 10%;\">{{'fecha_entrada' | translate}}</th>\n                <th style=\"width: 10%;\">{{'fecha_salida' | translate}}</th>\n                <th style=\"width: 17%;\">{{'origen' | translate}}</th>\n                <th style=\"width: 17%;\">{{'destino' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data>\n            <tr [pSelectableRow]=\"data\">\n                <td style=\"width: 3%;\" *ngIf=\"definir\">\n                    <p-checkbox [binary]=\"true\" (onChange)=\"seleccionar(data, $event.checked)\"\n                        (click)=\"$event.stopPropagation()\" [(ngModel)]=\"data.check\"></p-checkbox>\n                </td>\n                <td style=\"width: 3%;\">{{data.documentoPersona}}</td>\n                <td style=\"width: 20%;\">{{data.nombresPersona}}</td>\n                <td style=\"width: 10%;\">{{data.entradaPrograma | date: 'dd/MM/yyyy HH:mm'}}</td>\n                <td style=\"width: 10%;\">{{data.salidaPrograma | date: 'dd/MM/yyyy HH:mm'}}</td>\n                <td style=\"width: 10%;\">{{data.entradaReloj | date: 'dd/MM/yyyy HH:mm'}}</td>\n                <td style=\"width: 10%;\">{{data.salidaReloj | date: 'dd/MM/yyyy HH:mm'}}</td>\n                <td style=\"width: 17%;\">{{data.tipoJornadaNombre}}</td>\n                <td style=\"width: 17%;\" *ngIf=\"data.jornada != data.jornadaAjuste\">{{data.tipoJornadaAjusteNombre}}</td>\n                <td style=\"width: 17%;\" *ngIf=\"data.jornada == data.jornadaAjuste\"></td>\n            </tr>\n        </ng-template>\n    </p-table>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { ConfirmationService, MenuItem, PrimeTemplate } from 'primeng/api';\nimport { RegistroProcesoModel } from '../../../../compensacion/models/RegistroProcesoModel';\nimport { liquidacionTiempoPipe } from '../../../pipes/liquidacionTiempo.pipe';\nimport { ImagenesCons } from '../../../../../shared/constantes/ImagenesCons';\nimport { CodigoBaseTiempoModel } from '../../../models/CodigoBaseTiempoModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { ControlTiemposService } from '../../../services/controlTiempos.service';\nimport { LiquidacionTiempoModel } from '../../../models/LiquidacionTiempoModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { InconsistenciaLiquidacionComponent } from '../inconsistencia-liquidacion/inconsistencia-liquidacion.component';\nimport { EventoInconsistenciaProgramacionComponent } from '../evento-inconsistencia-programacion/evento-inconsistencia-programacion.component';\nimport { ListadoConceptosPorAutorizarComponent } from '../listado-conceptos-por-autorizar/listado-conceptos-por-autorizar.component';\nimport { ListadoCompensacionTiempoComponent } from '../listado-compensacion-tiempo/listado-compensacion-tiempo.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { MenubarModule } from 'primeng/menubar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { NgIf, NgFor } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CalendarModule } from 'primeng/calendar';\nimport { TabViewModule } from 'primeng/tabview';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n  selector: 'app-detalle-liquidacion-tiempos',\n  templateUrl: './detalle-liquidacion-tiempos.component.html',\n  styleUrls: ['./detalle-liquidacion-tiempos.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, TabViewModule, CalendarModule, FormsModule, NgIf, DropdownModule, InputTextModule, MenubarModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgFor, ListadoCompensacionTiempoComponent, InconsistenciaLiquidacionComponent, EventoInconsistenciaProgramacionComponent, ListadoConceptosPorAutorizarComponent, TranslateModule, FiltroGeneralComponent, ReactiveFormsModule]\n})\nexport class DetalleLiquidacionTiemposComponent implements OnInit {\n\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n  @ViewChild('inconsistenciaLiquidacion') inconsistenciaLiquidacion: InconsistenciaLiquidacionComponent;\n  @ViewChild('eventoInconsistencia') eventoInconsistencia: EventoInconsistenciaProgramacionComponent;\n  @ViewChild('conceptosPorAutorizar') conceptosPorAutorizar: ListadoConceptosPorAutorizarComponent;\n  @ViewChild('compensacionTiempo') compensacionTiempo: ListadoCompensacionTiempoComponent;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @Input() public destino: string;\n\n  registroProceso: RegistroProcesoModel = new RegistroProcesoModel();\n  resumenConceptoTiempo:[] = [];\n  items: MenuItem[] = [];\n  liquidar: boolean = false;\n  reversar: boolean = false;\n  aplicar: boolean = false;\n  nomina: boolean = false;\n  historicos: boolean = false;\n  reversarHistoricos: boolean = false;\n  disabledDetalle: boolean = false;\n  isLoadingData: boolean = false;\n  clickGuardar: boolean = false;\n  validaOpcionMenu: string = '';\n  listaEstado = [];\n  listaProceso = [];\n  labelTarea: string = 'liquidacion';\n  hayDatosJornada: boolean = false;\n  hayDatosInconsistencia: boolean = false;\n  filtro: string;\n  filters = [];\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n\n  constructor(\n    private translateService: TranslateService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    public liquidaTiempoPipe: liquidacionTiempoPipe,\n    private confirmationService: ConfirmationService,\n    private cargarMapas: cargarmapasGlobal,\n    private saraappservice: SaraAplicacionService,\n    private controlTiempoService: ControlTiemposService,\n    private menuService: MenuService,\n    private generalService: GeneralService,\n    private toastService: ToastService,\n    private authService: AuthService,\n    private utilService: UtilsService\n  ) { }\n\n  ngOnInit(): void {\n    this.menuService.setBreadcrumb([{ label: 'Liquidación Tiempos', command: (event) => this.regresarLista() }]);\n    this.cargarFiltros();\n  }\n\n  cargarFiltros() {\n    this.filters = [\n      {\n        field: 'filtro',\n        header: this.translateService.instant('busqueda'),\n        matchMode: 'equal',\n      }\n    ]\n  }\n\n  onTabOpen(data) {\n    if (data.index == 1) {\n      this.labelTarea = 'compensacion'\n      this.cargarCompensacion();\n    } else if (data.index == 2) {\n      this.labelTarea = 'inconsistencia'\n      this.cargarInconsistencias();\n    } else if (data.index == 3) {\n      this.labelTarea = 'autorizacion'\n      this.cargarAutorizacion();\n    } else {\n      this.labelTarea = 'liquidacion'\n      this.traerResumen();\n    }\n  }\n\n  inicializar() {\n    this.cargarMenu();\n    this.cargarListas();\n    this.cargarFiltros();\n  }\n\n  async consultaRegistro(llaveRegistro: string) {\n    this.registroProceso = await this.generalService.queryForObject(new GeneralModel('RegistroProcesoDTO', null, false, { llave: llaveRegistro })).toPromise();\n    this.registroProceso.fechaInicial = this.registroProceso.fechaInicial ? new Date(this.registroProceso.fechaInicial) : null;\n    this.registroProceso.fechaFinal = this.registroProceso.fechaFinal ? new Date(this.registroProceso.fechaFinal) : null;\n  }\n\n  async cargar(registroProcesoDTO: RegistroProcesoModel, nuevo: boolean) {\n    this.registroProceso = registroProcesoDTO;\n    this.registroProceso.fechaInicial = this.registroProceso.fechaInicial ? new Date(this.registroProceso.fechaInicial) : null;\n    this.registroProceso.fechaFinal = this.registroProceso.fechaFinal ? new Date(this.registroProceso.fechaFinal) : null;\n    if (nuevo) {\n      this.disabledDetalle = false;\n      this.resumenConceptoTiempo = [];\n    } else {\n      this.disabledDetalle = true;\n      this.traerResumen();\n      this.inicializar();\n    }\n  }\n\n  async cargarListas() {\n    try {\n      this.listaEstado = this.liquidaTiempoPipe.MAPAESTADOLIQUIDA;\n      let procesoLiq: CodigoBaseTiempoModel = new CodigoBaseTiempoModel();\n      procesoLiq.tipo = 'PROLI';\n      procesoLiq.modoParametro = (await this.saraappservice.getEmpresa()).modoCompensacion;\n      procesoLiq.estado = 'S';\n      this.listaProceso = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, procesoLiq));\n    } catch (error) {\n    }\n  }\n\n  async cargarMenu() {\n    this.validar();\n    this.items = [\n      {\n        label: this.translateService.instant('liquidar'), styleClass: 'btn-descarga-masiva',\n        icon: ImagenesCons.coins,\n        visible: await this.validarControlFuncionalidad('liquidar') && this.liquidar,\n        command: (event) => { this.validaOpcionMenu = 'liquidar', this.validacionContinuar() }\n      },\n      {\n        label: this.translateService.instant('Reversar'), styleClass: 'btn-descarga-masiva',\n        icon: ImagenesCons.rotate_left,\n        visible: await this.validarControlFuncionalidad('reversar') && this.reversar,\n        command: (event) => { this.validaOpcionMenu = 'reversar', this.validacionContinuar() }\n      },\n      {\n        label: this.translateService.instant('Aplicar'), styleClass: 'btn-descarga-masiva',\n        icon: ImagenesCons.ok_sign,\n        visible: await this.validarControlFuncionalidad('liquidar') && this.aplicar,\n        command: (event) => { this.validaOpcionMenu = 'aplicar', this.validacionContinuar() }\n      },\n      {\n        label: this.translateService.instant('reversar') + ' ' + this.translateService.instant('nomina'), styleClass: 'btn-descarga-masiva',\n        icon: ImagenesCons.rotate_left,\n        visible: this.nomina && await this.validarControlFuncionalidad('reversanomi'),\n        command: (event) => { this.validaOpcionMenu = 'reversarnomina', this.validacionContinuar() }\n      },\n      {\n        label: this.translateService.instant('llevar') + ' ' + this.translateService.instant('historico'), styleClass: 'btn-descarga-masiva',\n        icon: ImagenesCons.folderlock,\n        visible: this.historicos && await this.validarControlFuncionalidad('historico'),\n        command: (event) => { this.validaOpcionMenu = 'llevarhistoricos', this.validacionContinuar() }\n      },\n      {\n        label: this.translateService.instant('reversar') + ' ' + this.translateService.instant('historico'), styleClass: 'btn-descarga-masiva',\n        icon: ImagenesCons.rotate_left,\n        visible: this.reversarHistoricos && await this.validarControlFuncionalidad('revhisto'),\n        command: (event) => { this.validaOpcionMenu = 'reversarhistoricos', this.validacionContinuar() }\n      }\n    ];\n  }\n\n  validacionContinuar() {\n    let labelMensaje: string = this.translateService.instant('confirmacioncontinuar');\n    if (this.validaOpcionMenu == 'liquidar') {\n      labelMensaje = this.translateService.instant('confirmacionliquidacion');\n    } else if (this.validaOpcionMenu == 'reversar') {\n      labelMensaje = this.translateService.instant('confirmareversionliquidacion');\n    } else if (this.validaOpcionMenu == 'aplicar') {\n      labelMensaje = this.translateService.instant('confirmacionnomina');\n    } else if (this.validaOpcionMenu == 'reversarnomina') {\n      labelMensaje = this.translateService.instant('confirmareversionnomina');\n    } else if (this.validaOpcionMenu == 'llevarhistoricos' || this.validaOpcionMenu == 'reversarhistoricos') {\n      labelMensaje = this.translateService.instant('confirmallevarhistorico');\n    }\n    this.confirmationService.confirm({\n      target: event.target,\n      message: labelMensaje,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.procedimientosAlmacena();\n      }\n    });\n  }\n  async procedimientosAlmacena() {\n    let liquidacionTiempoDTO = new LiquidacionTiempoModel();\n    liquidacionTiempoDTO.llaveTabla = this.registroProceso.llave;\n    switch (this.validaOpcionMenu) {\n      case this.validaOpcionMenu = 'liquidar':\n        const objetoFiltro = {\n          nombreDTO: 'LiquidacionTiempoDTO',\n          nombreConsulta: 'LiquidacionTiempo.procedimientoLiquidarTiempos',\n          seguridad: false,\n          objeto: liquidacionTiempoDTO,\n        };\n        await this.generalService.procedure(objetoFiltro).toPromise().then(data => {\n          this.toastService.showInfo(this.translateService.instant('liquidacionrealizada'));\n          this.traerResumen();\n        }).catch(err => {\n          this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta));\n        });\n        await this.consultaRegistro(this.registroProceso.llave);\n        break;\n      case this.validaOpcionMenu = 'inconsistenciaMarcacion':\n        break;\n      case this.validaOpcionMenu = 'inconsistenciaProgramacion':\n        break;\n      case this.validaOpcionMenu = 'reversar':\n        const objetoFiltros = {\n          nombreDTO: 'LiquidacionTiempoDTO',\n          nombreConsulta: 'LiquidacionTiempo.procedimientoReversarTiempos',\n          seguridad: false,\n          objeto: liquidacionTiempoDTO,\n        };\n        await this.generalService.procedure(objetoFiltros).toPromise().then(data => {\n          this.toastService.showInfo(this.translateService.instant('reversionrealizada'));\n          this.regresarLista();\n        }).catch(err => {\n          this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta));\n        });\n        break;\n      case this.validaOpcionMenu = 'aplicar':\n        let filtroAutoriza: LiquidacionTiempoModel = new LiquidacionTiempoModel();\n        filtroAutoriza.proceso = this.registroProceso.llave;\n        filtroAutoriza.porAutorizar = Constantes.CONSTANTE_SI;\n        filtroAutoriza.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n        let cantidad = await this.generalService.cantidadRegistros(new GeneralModel('LiquidacionTiempoDTO', null, false, filtroAutoriza)).toPromise();\n        if (cantidad != 0) {\n          + this.toastService.showWarning(this.translateService.instant('conceptossindefinir'));\n          break;\n        }\n        const objetoFiltroNomina = {\n          nombreDTO: 'LiquidacionTiempoDTO',\n          nombreConsulta: 'LiquidacionTiempo.procedimientoTiemposNomina',\n          seguridad: false,\n          objeto: liquidacionTiempoDTO,\n        };\n        await this.generalService.procedure(objetoFiltroNomina).toPromise().then(data => {\n          + this.toastService.showInfo(this.translateService.instant('liquidacionrealizada'));\n          this.traerResumen();\n        })\n          .catch(err => {\n            this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta));\n          });\n        await this.consultaRegistro(this.registroProceso.llave);\n        break;\n      case this.validaOpcionMenu = 'reversarnomina':\n        let liquidacionTiempos = new LiquidacionTiempoModel();\n        liquidacionTiempos.proceso = this.registroProceso.llave;\n        if ((await this.generalService.cantidadRegistros(new GeneralModel('LiquidacionTiempoDTO', 'LiquidacionTiempo.contarLiquidacionTiempoPorProcesoReversar', false, liquidacionTiempos)).toPromise()).valueOf() > 0) {\n          this.registroProceso.mensaje = this.translateService.instant('conceptosnomina');\n          this.toastService.showInfo(this.registroProceso.mensaje);\n          break;\n        }\n        liquidacionTiempos.estado = this.liquidaTiempoPipe.LIQUIDADA;\n        await this.generalService.update(new GeneralModel('LiquidacionTiempoDTO', 'LiquidacionTiempo.actualizarLiquidacionTiempoPorProceso', false, liquidacionTiempos)).toPromise().then(data => {\n          + this.toastService.showInfo(this.translateService.instant('reversionrealizada'));\n        }).catch(err => {\n          this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta));\n        });\n        this.registroProceso.estado = this.liquidaTiempoPipe.LIQUIDADA;\n        await this.generalService.update(new GeneralModel('RegistroProcesoDTO', null, false, this.registroProceso)).toPromise().then(data => {\n        }).catch(err => {\n          this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta));\n        });\n        await this.consultaRegistro(this.registroProceso.llave);\n        this.traerResumen();\n        break;\n      case this.validaOpcionMenu = 'llevarhistoricos':\n        let liquidacionTiempoLlevarHistoricos = new LiquidacionTiempoModel();\n        liquidacionTiempoLlevarHistoricos.proceso = liquidacionTiempoDTO.llaveTabla\n        liquidacionTiempoLlevarHistoricos.periodo = \"Historico\"\n        await this.generalService.procedure(new GeneralModel('LiquidacionTiempoDTO', 'LiquidacionTiempo.procedimientoHistoricoTiempo', false, liquidacionTiempoLlevarHistoricos)).toPromise().then(data => { }).catch(err => {\n          this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta));\n        });\n        await this.consultaRegistro(this.registroProceso.llave);\n        if (this.registroProceso.mensaje != null) {\n          this.toastService.showInfo(this.registroProceso.mensaje);\n          return;\n        }\n        + this.toastService.showInfo(this.translateService.instant('pasohistorico'));\n        this.traerResumen();\n        break;\n      case this.validaOpcionMenu = 'reversarhistoricos':\n        let liquidacionTiempoReversarHistoricos = new LiquidacionTiempoModel();\n        liquidacionTiempoReversarHistoricos.proceso = liquidacionTiempoDTO.llaveTabla\n        liquidacionTiempoReversarHistoricos.periodo = \"noHistorico\"\n        await this.generalService.procedure(new GeneralModel('LiquidacionTiempoDTO', 'LiquidacionTiempo.procedimientoHistoricoTiempo', false, liquidacionTiempoReversarHistoricos)).toPromise().then(data => { }).catch(err => {\n          this.toastService.showError(JSON.stringify(err.error.mensajeEtiqueta));\n        });\n        await this.consultaRegistro(this.registroProceso.llave);\n        if (this.registroProceso.mensaje != null) {\n          this.toastService.showInfo(this.registroProceso.mensaje);\n          return;\n        }\n        + this.toastService.showInfo(this.translateService.instant('reversionhistorico'));\n        this.traerResumen();\n        break;\n    }\n    this.cargarMenu();\n  }\n\n  async validar() {\n    if (!(this.registroProceso.estado === this.liquidaTiempoPipe.NOMINA || this.registroProceso.estado === this.liquidaTiempoPipe.HISTORICO)) {\n      this.liquidar = true;\n    } else {\n      this.liquidar = false;\n    }\n    if ((await this.validarControlFuncionalidad('reversar')) && (this.registroProceso.estado === this.liquidaTiempoPipe.PROCESO || this.registroProceso.estado === this.liquidaTiempoPipe.LIQUIDADA || this.registroProceso.estado === this.liquidaTiempoPipe.INCONSISTENCIA)) {\n      this.reversar = true;\n    } else {\n      this.reversar = false;\n    }\n    if ((await this.validarControlFuncionalidad('liquidar')) && (this.registroProceso.estado === this.liquidaTiempoPipe.LIQUIDADA)) {\n      this.aplicar = true;\n    } else {\n      this.aplicar = false;\n    }\n    if (this.registroProceso.estado === this.liquidaTiempoPipe.NOMINA) {\n      this.nomina = true;\n      this.historicos = true;\n    } else {\n      this.historicos = false;\n      this.nomina = false;\n    }\n    if (this.registroProceso.estado === this.liquidaTiempoPipe.HISTORICO) {\n      this.reversarHistoricos = true;\n    } else {\n      this.reversarHistoricos = false;\n    }\n  }\n\n  async traerResumen() {\n    this.isLoadingData = true;\n    this.resumenConceptoTiempo = [];\n    this.resumenConceptoTiempo = await this.controlTiempoService.resumenConcepto({ llaveProceso: this.registroProceso.llave }).toPromise();\n    this.paginator.totalRecords = this.resumenConceptoTiempo['listaPersona'].length;\n    if (this.resumenConceptoTiempo) {\n      this.isLoadingData = false;\n    }\n  }\n\n  async cargarInconsistencias() {\n    await this.utilService.sleep(100).then(data => {\n      this.inconsistenciaLiquidacion.cargar(new Date(this.registroProceso.fechaInicial), new Date(this.registroProceso.fechaFinal), this.registroProceso.llave, this.registroProceso.sitio).then(data => { });\n      this.eventoInconsistencia.cargar(this.registroProceso.llave).then(data => { });\n    })\n  }\n\n  async cargarAutorizacion() {\n    await this.utilService.sleep(100).then(data => {\n      this.conceptosPorAutorizar.inicilizar(this.registroProceso).then(data => { });\n    })\n  }\n\n  async cargarCompensacion() {\n    await this.utilService.sleep(100).then(data => {\n      this.compensacionTiempo.iniciarProceso(this.registroProceso).then(data => { });\n    })\n  }\n\n  async validarControlFuncionalidad(valor: string): Promise<boolean> {\n    return new Promise((res, rej) => { res(this.controlFuncionalidad.getControlFuncionalidad('liqtiemp:' + valor)) });;\n  }\n\n  public regresarLista() {\n    if (this.destino == null) {\n      this.regresar.emit();\n    } else {\n      this.regresar.emit({ regresar: 'lista', mostrarPopup: false });\n    }\n\n  }\n\n  getListaJornada(event) {\n    this.hayDatosJornada = event.length <= 0 ? false : true;\n  }\n\n  getListaInconsistencia(event) {\n    this.hayDatosInconsistencia = event.length <= 0 ? false : true;\n  }\n\n  async cargarListaFiltros(evento?) {\n    let filtroPersona: string = evento?.filtro?.value;\n    if (filtroPersona == null) {\n      await this.traerResumen();\n      return;\n    }\n    let listaPersona = [];\n    let lista: any[] = this.resumenConceptoTiempo['listaPersona'];\n    for (const unaPersona of lista) {\n      if (unaPersona['documento'] === filtroPersona.toUpperCase()) {\n        listaPersona.push(unaPersona)\n        continue;\n      }\n      if (unaPersona['nombre'].toUpperCase().includes(filtroPersona.toUpperCase())) {\n        listaPersona.push(unaPersona);\n        continue;\n      }\n    }\n    this.resumenConceptoTiempo['listaPersona'] = listaPersona;\n    this.paginator.totalRecords = this.resumenConceptoTiempo['listaPersona'].length;\n  }\n\n  public isInconsistencias(): boolean {\n    return this.liquidaTiempoPipe.INCONSISTENCIA === this.registroProceso.estado;\n  }\n\n  public mostrarMenubar(): boolean {\n    return this.items.some(item => item.visible);\n  }\n\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mb-2\">\n    <h1 class=\"mb-2\">{{'liquidacion' | translate}}</h1>\n    <button pButton pRipple (click)=\"regresarLista()\" label=\"{{'regresar' | translate}}\" icon=\"pi pi-chevron-left\"\n        class=\"p-button-text font-semibold flex-shrink-0\"></button>\n</div>\n<div class=\"Inputgroup-borde mt-0\">\n    <p-tabView class=\"mb-0\" (onChange)=\"onTabOpen($event)\">\n        <p-tabPanel header=\"{{'liquidacion' | translate}}\">\n            <div class=\"card p-4\">\n                <h5><i class='glyphicons glyphicons-notes'></i>{{'liquidacion' | translate}}</h5>\n                <div class=\"contenedor\">\n                    <div class=\"Inputgroup\">\n                        <div class=\"p-fluid grid mt-2\">\n                            <!-- FECHA INICIAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechaini\" [(ngModel)]=\"registroProceso.fechaInicial\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechaini\">{{'fechainicial' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- FECHA FINAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechafinal\" [(ngModel)]=\"registroProceso.fechaFinal\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechafinal\">{{'fecha_final' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ESTADO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"disabledDetalle\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaEstado\" id=\"estado_id\"\n                                        [(ngModel)]=\"registroProceso.estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                                        [disabled]=\"true\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"estado_id\">{{'estado' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- SITIO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"!!registroProceso.nombreSitio\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"id_nombre\"\n                                        [(ngModel)]=\"registroProceso.nombreSitio\" autocomplete=\"off\" disabled />\n                                    <label htmlFor=\"id_sitio\">{{'sitio' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- PROCESO -->\n                            <div\n                                [class]=\"!!registroProceso.nombreSitio ? 'field col-12 md:col-6 lg:col-4' : 'field col-12 md:col-6 lg:col-6'\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaProceso\" id=\"procesoliqui\"\n                                        [(ngModel)]=\"registroProceso.procesoLiquidacion\" optionLabel=\"label\"\n                                        optionValue=\"key\" [disabled]=\"disabledDetalle\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"procesoliqui\">{{'procesoliquidacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- MENSAJE -->\n                            <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"registroProceso.mensaje != null\">\n                                <span class=\"p-float-label\">\n                                    <textarea pInputText id=\"formulaTotal\" [(ngModel)]=\"registroProceso.mensaje\"\n                                        class=\"w-full min-h-50 max-h-150 border-2 border-color-500\"\n                                        [disabled]=\"true\"></textarea>\n                                    <label class=\"color-500\" htmlFor=\"mensaje\">{{'mensaje' |\n                                        translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <!-- Menu Superior -->\n            @if(mostrarMenubar()){\n            <p-menubar [model]=\"items\" class=\"menu-accion-sara flex\"></p-menubar>\n            }\n            <div class=\"mt-3\">\n                <h4>{{'resumen' | translate }} {{'por' | translate }} {{'persona' | translate }}</h4>\n            </div>\n            <div class=\"flex justify-content-between align-items-center mb-3\">\n                <!-- FILTRO -->\n                <app-filtro-general #filtroItem [filtros]=\"filters\"\n                    (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n                    <ng-template let-form>\n                        <ng-container [formGroup]=\"form\">\n                            <div class=\"flex\">\n                                <!-- IDENTIFICACION -->\n                                <div class=\"field\">\n                                    <div class=\"p-float-label\">\n                                        <input pInputText autofocus type=\"text\" formControlName=\"filtro\"\n                                            autocomplete=\"off\" [(ngModel)]=\"filtro\" />\n                                        <label>{{'busqueda' | translate}}</label>\n                                    </div>\n                                </div>\n                            </div>\n                        </ng-container>\n                    </ng-template>\n                </app-filtro-general>\n            </div>\n            <div id=\"id_tablaLiquidacion\" class=\"mt-3\">\n                <p-table [value]=\"resumenConceptoTiempo['listaPersona']\" responsiveLayout=\"scroll\"\n                    styleClass=\"p-datatable-gridlines\" [tableStyle]=\"{ 'text-align': 'center' }\"\n                    [showCurrentPageReport]=\"true\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n                    [paginator]=\"paginator.totalRecords > paginator.rows\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n                    [scrollable]=\"true\" scrollHeight=\"flex\">\n                    <ng-template pTemplate=\"header\">\n                        <tr>\n                            <th class=\"headerTablaBorde\" style=\"width:400px\" pFrozenColumn>\n                                {{'identificacion' | translate }}</th>\n                            <th class=\"headerTablaBorde\" style=\"width:400px\" pFrozenColumn>\n                                {{'nombre' | translate }}\n                            </th>\n                            <th *ngFor=\"let columna of resumenConceptoTiempo['listaConceptoTiempo']\"\n                                class=\"text-center\">\n                                {{columna.descripcionConcepto }}</th>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-persona>\n                        <tr>\n                            <td class=\"GrupoColor border-left\" style=\"max-width: 150px; min-width: 150px;\"\n                                pFrozenColumn>\n                                {{ persona.documento }}\n                            </td>\n                            <td class=\"GrupoColor border-right\" style=\"max-width: 250px; min-width: 250px;\"\n                                pFrozenColumn>\n                                {{ persona.nombre }}\n                            </td>\n                            <td style=\"min-width: 250px; text-align: center;\"\n                                *ngFor=\"let columna of resumenConceptoTiempo['listaConceptoTiempo']\">\n                                <ng-container\n                                    *ngIf=\"!persona.mapaConceptoNoAutorizar[columna.conceptoTiempo] && !persona.mapaConceptoPorAutorizar[columna.conceptoTiempo]\">\n                                    {{ persona.mapaConcepto[columna.conceptoTiempo] }}\n                                </ng-container>\n                                <ng-container\n                                    *ngIf=\"persona.mapaConceptoNoAutorizar[columna.conceptoTiempo] || persona.mapaConceptoPorAutorizar[columna.conceptoTiempo]\">\n                                    <div>\n                                        <ng-container *ngIf=\"persona.mapaConceptoPorAutorizar[columna.conceptoTiempo]\">\n                                            <span class=\"glyphicons glyphicons-pen\" title=\"Por autorizar\"></span>\n                                            {{ persona.mapaConceptoPorAutorizar[columna.conceptoTiempo] }}\n                                        </ng-container>\n                                    </div>\n                                    <div>\n                                        <ng-container *ngIf=\"persona.mapaConceptoNoAutorizar[columna.conceptoTiempo]\">\n                                            <span class=\"glyphicons glyphicons-thumbs-down\"\n                                                title=\"No autorizadas\"></span>\n                                            {{ persona.mapaConceptoNoAutorizar[columna.conceptoTiempo] }}\n                                        </ng-container>\n                                    </div>\n                                    <div>\n                                        <ng-container *ngIf=\"persona.mapaConceptoAutorizada[columna.conceptoTiempo]\">\n                                            <span class=\"glyphicons glyphicons-thumbs-up\" title=\"Autorizadas\"></span>\n                                            {{ persona.mapaConceptoAutorizada[columna.conceptoTiempo] }}\n                                        </ng-container>\n                                    </div>\n                                    <div>\n                                        <ng-container\n                                            *ngIf=\"(persona.mapaConceptoPorAutorizar[columna.conceptoTiempo] && persona.mapaConceptoNoAutorizar[columna.conceptoTiempo]) || (persona.mapaConceptoPorAutorizar[columna.conceptoTiempo] && persona.mapaConceptoAutorizada[columna.conceptoTiempo]) || (persona.mapaConceptoNoAutorizar[columna.conceptoTiempo] && persona.mapaConceptoAutorizada[columna.conceptoTiempo])\">\n                                            <span class=\"glyphicons glyphicons-calculator\" title=\"Total\"></span>\n                                            {{ persona.mapaConcepto[columna.conceptoTiempo] }}\n                                        </ng-container>\n                                    </div>\n                                </ng-container>\n                            </td>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                </p-table>\n            </div>\n        </p-tabPanel>\n        <p-tabPanel header=\"{{'compensacion' | translate}}\">\n            <div class=\"card p-4\">\n                <h5><i class='glyphicons glyphicons-notes'></i>{{'detalle' | translate}} {{'liquidacion' |\n                    translate}}</h5>\n                <div class=\"contenedor\">\n                    <div class=\"Inputgroup\">\n                        <div class=\" p-fluid grid mt-2\">\n                            <!-- FECHA INICIAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechaini\" [(ngModel)]=\"registroProceso.fechaInicial\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechaini\">{{'fechainicial' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- FECHA FINAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechafinal\" [(ngModel)]=\"registroProceso.fechaFinal\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechafinal\">{{'fecha_final' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ESTADO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"disabledDetalle\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaEstado\" id=\"estado_id\"\n                                        [(ngModel)]=\"registroProceso.estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                                        [disabled]=\"true\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"estado_id\">{{'estado' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- SITIO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"!!registroProceso.nombreSitio\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"id_nombre\"\n                                        [(ngModel)]=\"registroProceso.nombreSitio\" autocomplete=\"off\" disabled />\n                                    <label htmlFor=\"id_sitio\">{{'sitio' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- PROCESO -->\n                            <div\n                                [class]=\"!!registroProceso.nombreSitio ? 'field col-12 md:col-6 lg:col-4' : 'field col-12 md:col-6 lg:col-6'\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaProceso\" id=\"procesoliqui\"\n                                        [(ngModel)]=\"registroProceso.procesoLiquidacion\" optionLabel=\"label\"\n                                        optionValue=\"key\" [disabled]=\"disabledDetalle\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"procesoliqui\">{{'procesoliquidacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- MENSAJE -->\n                            <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"registroProceso.mensaje != null\">\n                                <span class=\"p-float-label\">\n                                    <textarea pInputText id=\"mensaje\" [(ngModel)]=\"registroProceso.mensaje\"\n                                        class=\"w-full min-h-50 max-h-150 border-2 border-color-500\"\n                                        [disabled]=\"true\"></textarea>\n                                    <label class=\"color-500\" htmlFor=\"mensaje\">{{'mensaje' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div id=\"id_tablaCompensacion\" *ngIf=\"labelTarea == 'compensacion'\">\n                <app-listado-compensacion-tiempo #compensacionTiempo></app-listado-compensacion-tiempo>\n            </div>\n        </p-tabPanel>\n        <p-tabPanel header=\"{{'inconsistencia' | translate}}\"\n            *ngIf=\"registroProceso.estado !== liquidaTiempoPipe.NOMINA && registroProceso.estado !== liquidaTiempoPipe.HISTORICO\">\n            <div class=\"card p-4\">\n                <h5><i class='glyphicons glyphicons-notes'></i>{{'detalle' | translate}} {{'liquidacion' |\n                    translate}}</h5>\n                <div class=\"contenedor\">\n                    <div class=\"Inputgroup\">\n                        <div class=\"p-fluid grid mt-2\">\n                            <!-- FECHA INICIAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechaini\" [(ngModel)]=\"registroProceso.fechaInicial\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechaini\">{{'fechainicial' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- FECHA FINAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechafinal\" [(ngModel)]=\"registroProceso.fechaFinal\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechafinal\">{{'fecha_final' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ESTADO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"disabledDetalle\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaEstado\" id=\"estado_id\"\n                                        [(ngModel)]=\"registroProceso.estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                                        [disabled]=\"true\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"estado_id\">{{'estado' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- SITIO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"!!registroProceso.nombreSitio\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"id_nombre\"\n                                        [(ngModel)]=\"registroProceso.nombreSitio\" autocomplete=\"off\" disabled />\n                                    <label htmlFor=\"id_sitio\">{{'sitio' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- PROCESO -->\n                            <div\n                                [class]=\"!!registroProceso.nombreSitio ? 'field col-12 md:col-6 lg:col-4' : 'field col-12 md:col-6 lg:col-6'\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaProceso\" id=\"procesoliqui\"\n                                        [(ngModel)]=\"registroProceso.procesoLiquidacion\" optionLabel=\"label\"\n                                        optionValue=\"key\" [disabled]=\"disabledDetalle\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"procesoliqui\">{{'procesoliquidacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- MENSAJE -->\n                            <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"registroProceso.mensaje != null\">\n                                <span class=\"p-float-label\">\n                                    <textarea pInputText id=\"mensaje\" [(ngModel)]=\"registroProceso.mensaje\"\n                                        class=\"w-full min-h-50 max-h-150 border-2 border-color-500\"\n                                        [disabled]=\"true\"></textarea>\n                                    <label class=\"color-500\" htmlFor=\"mensaje\">{{'mensaje' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div id=\"id_tablaInconsistencias\" *ngIf=\"labelTarea == 'inconsistencia' && isInconsistencias()\">\n                <div id=\"id_componentInconsistencia\" class=\"mb-3\">\n                    <app-inconsistencia-liquidacion #inconsistenciaLiquidacion\n                        (listaRegresar)=\"getListaInconsistencia($event)\"></app-inconsistencia-liquidacion>\n                </div>\n                <div id=\" id_componentEventInconsistencia\">\n                    <app-evento-inconsistencia-programacion #eventoInconsistencia\n                        (listaRegresar)=\"getListaJornada($event)\"></app-evento-inconsistencia-programacion>\n                </div>\n            </div>\n            <div *ngIf=\"!hayDatosJornada && !hayDatosInconsistencia\">\n                <div class=\"centrar-contenedor-imagen-sin-datos mt-3\">\n                    <img src=\"/assets/images/no-info.webp\" alt=\"No se encontrados datos\" height=\"30%\" width=\"30%\">\n                </div>\n            </div>\n        </p-tabPanel>\n        <p-tabPanel header=\"{{'autorizacion' | translate}}\"\n            *ngIf=\"registroProceso.estado !== liquidaTiempoPipe.NOMINA && registroProceso.estado !== liquidaTiempoPipe.HISTORICO\">\n            <div class=\"card p-4\">\n                <h5><i class='glyphicons glyphicons-notes'></i>{{'detalle' | translate}} {{'liquidacion' |\n                    translate}}</h5>\n                <div class=\"contenedor\">\n                    <div class=\"Inputgroup\">\n                        <div class=\"p-fluid grid mt-2\">\n                            <!-- FECHA INICIAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechaini\" [(ngModel)]=\"registroProceso.fechaInicial\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechaini\">{{'fechainicial' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- FECHA FINAL -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"fechafinal\" [(ngModel)]=\"registroProceso.fechaFinal\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"disabledDetalle\"\n                                        [showIcon]=\"true\"></p-calendar>\n                                    <label htmlFor=\"fechafinal\">{{'fecha_final' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ESTADO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"disabledDetalle\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaEstado\" id=\"estado_id\"\n                                        [(ngModel)]=\"registroProceso.estado\" optionValue=\"codigo\" optionLabel=\"nombre\"\n                                        [disabled]=\"true\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"estado_id\">{{'estado' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- SITIO -->\n                            <div class=\"field col-12 md:col-6 lg:col-2\" *ngIf=\"!!registroProceso.nombreSitio\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText autofocus type=\"text\" id=\"id_nombre\"\n                                        [(ngModel)]=\"registroProceso.nombreSitio\" autocomplete=\"off\" disabled />\n                                    <label htmlFor=\"id_sitio\">{{'sitio' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- PROCESO -->\n                            <div\n                                [class]=\"!!registroProceso.nombreSitio ? 'field col-12 md:col-6 lg:col-4' : 'field col-12 md:col-6 lg:col-6'\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaProceso\" id=\"procesoliqui\"\n                                        [(ngModel)]=\"registroProceso.procesoLiquidacion\" optionLabel=\"label\"\n                                        optionValue=\"key\" [disabled]=\"disabledDetalle\">\n                                    </p-dropdown>\n                                    <label htmlFor=\"procesoliqui\">{{'procesoliquidacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- MENSAJE -->\n                            <div class=\"field col-12 md:col-6 lg:col-12\" *ngIf=\"registroProceso.mensaje != null\">\n                                <span class=\"p-float-label\">\n                                    <textarea pInputText id=\"mensaje\" [(ngModel)]=\"registroProceso.mensaje\"\n                                        class=\"w-full min-h-50 max-h-150 border-2 border-color-500\"\n                                        [disabled]=\"true\"></textarea>\n                                    <label class=\"color-500\" htmlFor=\"mensaje\">{{'mensaje' | translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div id=\"id_tablaAutorizacion\" *ngIf=\"labelTarea == 'autorizacion'\">\n                <app-listado-conceptos-por-autorizar #conceptosPorAutorizar></app-listado-conceptos-por-autorizar>\n            </div>\n        </p-tabPanel>\n    </p-tabView>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MenuService, UtilsService } from 'general-library-union';\nimport { MenuItem } from 'primeng/api';\nimport { MenubarModule } from 'primeng/menubar';\n\n\n@Component({\n    selector: 'app-menu-control-tiempos',\n    templateUrl: './menu-control-tiempos.component.html',\n    styleUrls: ['./menu-control-tiempos.component.scss'],\n    standalone: true,\n    imports: [MenubarModule]\n})\nexport class MenuControlTiemposComponent implements OnInit {\n\n  items: MenuItem[];\n\n  constructor(\n    private translateService: TranslateService,\n    private menuService: MenuService,\n    private router: Router,\n    private utilsService: UtilsService) { }\n\n  ngOnInit(): void {\n    this.cargarMenu();\n  }\n\n  private cargarMenu() {\n\n    this.items = [\n      {\n        label: this.translateService.instant('sitio') + ' ' + this.translateService.instant('turno'),\n        icon: 'glyphicons glyphicons-server x1_3',\n        command: (event) => { this.router.navigate([this.utilsService.obtenerBase() + '/controltiempos/calendario/calendarioJornada']) }\n      },\n      {\n        label: this.translateService.instant('grupo') + ' ' + this.translateService.instant('persona'),\n        icon: 'glyphicons glyphicons-user x1_3',\n        command: (event) => { this.router.navigate([this.utilsService.obtenerBase() + '/controltiempos/calendario/calendarioJornada/US_editar/grupoPersona']) }\n      },\n      {\n        label: this.translateService.instant('sitio') + ' ' + this.translateService.instant('persona'),\n        icon: 'glyphicons glyphicons-group x1_3',\n        command: (event) => { this.router.navigate([this.utilsService.obtenerBase() + '/controltiempos/calendario/calendarioJornada/US_editar/sitioPersona']) }\n      },\n      {\n        label: this.translateService.instant('grupo') + ' ' + this.translateService.instant('turno'),\n        icon: 'glyphicons glyphicons-group x1_3',\n        command: (event) => { this.router.navigate([this.utilsService.obtenerBase() + '/controltiempos/calendario/calendarioJornada/US_editar/grupoTurno']) }\n      },\n\n    ];\n  }\n\n\n}\n","<p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>","import { Component, OnInit, ViewChild, forwardRef } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { GeneralModel, ToastService, UtilsService, MenuService, CargarControlFuncionalidadService, cargarmapasGlobal, AuthService, FiltroGeneralComponent } from 'general-library-union';\nimport { Router } from '@angular/router';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { FechaUtilsService } from 'general-library-union';\nimport { DatePipe, NgIf, NgFor, TitleCasePipe, NgStyle } from '@angular/common';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { ControlTiemposService } from '../../../services/controlTiempos.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { JornadaModel } from '../../../models/JornadaModel';\nimport { jornadaConsPipe } from '../../../pipes/JornadaCons.pipe';\nimport { PopupJonadaComponent } from '../../../popups/popup-jonada/popup-jonada.component';\nimport { EventoJornadaModel } from '../../../models/EventoJornadaModel';\nimport { PopupRelojComponent } from '../../../popups/popup-reloj/popup-reloj.component';\nimport { SitioTurnoModel } from '../../../models/SitioTurnoModel';\nimport { CodigoBaseTiempoModel } from '../../../models/CodigoBaseTiempoModel';\nimport { PopupLiquidacionSitioTiempoComponent } from '../popups/popup-liquidacion-sitio-tiempo/popup-liquidacion-sitio-tiempo.component';\nimport { DetallePersonaComponent } from '../../persona/detalle-persona/detalle-persona.component';\nimport { PopupFechaLiquidacionComponent } from '../../../popups/popup-fecha-liquidacion/popup-fecha-liquidacion.component';\nimport { DetalleLiquidacionTiemposComponent } from '../../liquidacionTiempos/detalle-liquidacion-tiempos/detalle-liquidacion-tiempos.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective, ButtonModule } from 'primeng/button';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { MenuControlTiemposComponent } from '../menu-control-tiempos/menu-control-tiempos.component';\nimport { ChipModule } from 'primeng/chip';\n\n@Component({\n  selector: 'sitio-persona',\n  templateUrl: './lista-sitio-persona.page.html',\n  styleUrls: ['./lista-sitio-persona.page.scss'],\n  standalone: true,\n  imports: [NgIf, MenuControlTiemposComponent, DropdownModule, FormsModule, ButtonDirective, Ripple, CheckboxModule, ReactiveFormsModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, NgFor, PopupJonadaComponent, PopupRelojComponent, forwardRef(() => PopupLiquidacionSitioTiempoComponent), forwardRef(() => PopupFechaLiquidacionComponent), forwardRef(() => DetalleLiquidacionTiemposComponent), forwardRef(() => DetallePersonaComponent), TitleCasePipe, TranslateModule, FiltroGeneralComponent, ButtonModule, NgStyle, ChipModule],\n  providers: [DatePipe]\n})\nexport class ListaSitioPersonaPage implements OnInit {\n\n  @ViewChild(PopupJonadaComponent) popupJonada: PopupJonadaComponent;\n  @ViewChild(PopupRelojComponent) popupReloj: PopupRelojComponent;\n  @ViewChild(PopupLiquidacionSitioTiempoComponent) popupLiquidacionSitio: PopupLiquidacionSitioTiempoComponent;\n  @ViewChild('detallePersona') detallePersona: DetallePersonaComponent;\n  @ViewChild(PopupFechaLiquidacionComponent) popupFechaLiq: PopupFechaLiquidacionComponent;\n  @ViewChild('detalleLiquidacion') detalleLiquidacion: DetalleLiquidacionTiemposComponent;\n\n  public mostrarTipoHorario: boolean;\n  public entroPersona: boolean;\n  public sitioSeleccionado: string;\n  public listaSitio = [];\n  public listaEstacionTrabajo = [];\n  public listaTipoHorarios = [];\n  public fechaBase: Date;\n  public fechaLimite: Date;\n  public persona: PersonaModel;\n  public lineas = [];\n  public semanas = [];\n  public personaModel: PersonaModel;\n  public mostrarRecursos: boolean;\n  public tipoHorario: string = null;\n  public nombreTipoHorario: string = null;\n  public mostrarSitios: boolean;\n  public nombreBuscar: string;\n  public sitioBuscar: string;\n  public estacionSeleccion: string;\n  public origen: string;\n  public verFechaAnterior: boolean;\n  public listaCargo = [];\n  public filtroPersona: PersonaModel;\n  public hayRegistro: boolean;\n  public mapaTipoHorarios: Map<string, string> = new Map<string, string>();\n  public mapaEstaciones: Map<string, string> = new Map<string, string>();\n  public fechaTexto;\n  public isLoadingData: boolean = false;\n  public isLoadingDataButton: boolean = false;\n  public nombrePersona: string = '';\n  public rendered: boolean = false;\n  public vistaVisualizar: string = 'lista';\n  public mostrarPopup: string;\n  public clickObligatorio: boolean = false;\n  public cadenaFechaCalendario: string = null;\n  expandedRows: {} = {};\n  filters = [];\n\n  constructor(\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private toastService: ToastService,\n    private router: Router,\n    public utilsService: UtilsService,\n    private menuService: MenuService,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private cargarMapas: cargarmapasGlobal,\n    private saraappservice: SaraAplicacionService,\n    public authService: AuthService,\n    private controlTiemposService: ControlTiemposService,\n    private jornadaPipe: jornadaConsPipe\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('calendario'), command: (event) => this.router.navigate([this.utilsService.obtenerBase() + '/controltiempos/calendario/calendarioJornada']) }, { label: this.translateService.instant('sitio') + ' ' + this.translateService.instant('persona') }]);\n    this.inicializar(null, 'calendariotodos', null);\n    this.vistaVisualizar = 'lista';\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async inicializar(persona?: PersonaModel, origen?: string, diasVer?: number) {\n    this.hayRegistro = false;\n    this.listaCargo = [];\n    this.filtroPersona = new PersonaModel();\n    this.origen = origen;\n    this.persona = persona;\n    this.tipoHorario = null;\n    this.fechaBase = new Date();\n    this.fechaLimite = new Date();\n    this.verFechaAnterior = true;\n    if (diasVer != null) {\n      let fechaSuma = await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), dias: diasVer }).toPromise();\n      let consultaFecha = await this.fechaUtils.primerDiaSemana({ fechaBase: this.datePipe.transform(new Date(fechaSuma.respuesta), 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n      this.fechaLimite = new Date(consultaFecha.respuesta);\n    }\n    this.entroPersona = false;\n    this.mostrarTipoHorario = false;\n    this.estacionSeleccion = null;\n    if (this.controlFuncionalidad.getControlFuncionalidad('caltiempo:estacion')) {\n      this.estacionSeleccion = 'directa'\n    }\n    this.cargarCalendario();\n    this.cargarListaEstacionTrabajo();\n    this.crearFiltros();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  crearFiltros() {\n    this.filters = [\n      {\n        field: 'persona',\n        header: this.translateService.instant('persona'),\n        matchMode: 'contains'\n      },\n      {\n        field: 'cargo',\n        header: this.translateService.instant('cargo'),\n        values: (value) => this.transform(value, 'listaCargo'),\n        matchMode: 'contains'\n      }]\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n\n  async cargarListaEstacionTrabajo() {\n    this.listaEstacionTrabajo = [];\n    this.mapaEstaciones = new Map<string, string>();\n    try {\n      const directItem = { key: 'directa', label: 'Estación de Trabajo Relacionado a la Persona' };\n      let codigoBaseTiempoDTO = new CodigoBaseTiempoModel();\n      codigoBaseTiempoDTO.tipo = 'ESTAC';\n      this.listaEstacionTrabajo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, codigoBaseTiempoDTO));\n      this.listaEstacionTrabajo.unshift(directItem);\n      for (const unCodigoBase of this.listaEstacionTrabajo) {\n        this.mapaEstaciones.set(unCodigoBase.key, unCodigoBase.label);\n      }\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarCalendario() {\n    if (this.persona != null) {\n      this.cargarSemanaPersona(true);\n      return;\n    }\n    this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioSaraDTO', null, false, {\n      organizacion: (await this.saraappservice.getEmpresa()).organizacion,\n      login: this.authService.getTokenKey('usuario')\n    }));\n    if (this.listaSitio.length != 0) {\n      this.sitioSeleccionado = this.listaSitio[0].key;\n      this.cargarSemanaPersona(true);\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cambiarFiltro(event) {\n    this.filtroPersona.nombresPersona = event['persona'] ? event['persona']['value'] : null;\n    this.filtroPersona.cargo = event['cargo'] ? event['cargo']['value'].padEnd(8, ' ') : null;\n    this.cargarSemanaPersona(false);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarSemanaPersona(iniciaProceso: boolean) {\n    this.isLoadingData = true;\n    if (this.persona == null && this.sitioSeleccionado == null) {\n      this.isLoadingData = false;\n      this.toastService.showError('Debe seleccionar un sitio');\n      return;\n    }\n    let consultaFechaTex = await this.fechaUtils.formatFecha({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), formato: this.jornadaPipe.FORMATO_SEMANAL }).toPromise();\n    this.fechaTexto = consultaFechaTex.respuesta;\n    let consultaFecha = await this.fechaUtils.primerDiaSemana({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n    let fechaEntrada = new Date(consultaFecha);\n    this.verFechaAnterior = true;\n    if (this.fechaLimite != null) {\n      this.verFechaAnterior = fechaEntrada > this.fechaLimite ? true : false;\n    }\n    this.semanas = [];\n    var consultaSemana = await this.controlTiemposService.cargarSemana({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S') }).toPromise();\n    this.semanas = consultaSemana.semana;\n    this.cadenaFechaCalendario = consultaSemana.semanaTexto;\n    this.lineas = [];\n    if (iniciaProceso) {\n      this.cargarListaHorarios();\n    }\n    if (this.persona != null) {\n      var data = await this.controlTiemposService.cargarSemanaPersona({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), llaveTipo: this.persona.llaveTabla, tipo: 'persona' }).toPromise();\n      this.lineas = this.transformacionArray(data);\n    } else {\n      if (this.utilsService.isBlank(this.filtroPersona.nombresPersona)) {\n        this.filtroPersona.nombresPersona = null;\n      }\n      var data = await this.controlTiemposService.cargarSemanaPersona({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), llaveTipo: this.sitioSeleccionado, tipo: 'sitio', filtroPersona: this.filtroPersona }).toPromise();\n      this.lineas = this.transformacionArray(data);\n      this.hayRegistro = this.lineas.length > 0;\n      if (!this.hayRegistro) {\n        this.mostrarTipoHorario = false;\n        this.mostrarRecursos = false;\n        this.nombreTipoHorario = null;\n        this.filtroPersona = new PersonaModel();\n      }\n      if (iniciaProceso) {\n        this.armaListaCargo();\n      }\n    }\n    this.lineas.forEach(data => {\n      this.expandedRows[String(data.descripcion)] = true;\n      this.expandedRows = Object.assign({}, this.expandedRows);\n    })\n    this.validacionRendered();\n    this.isLoadingData = false;\n    await this.utilsService.sleep(100);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  transformacionArray(dato: any[]): any {\n    const result = [];\n    dato.forEach(items => {\n      items.lineasCalendario.forEach(datos => {\n        datos.descripcion = items.descripcion;\n        result.push(datos);\n        result.sort((a, b) => {\n          const descA = a.descripcion ?? \".\";\n          const descB = b.descripcion ?? \".\";\n          return descA.localeCompare(descB);\n        });\n      });\n    });\n\n    return result;\n  }\n\n  armaListaCargo() {\n    this.listaCargo = [];\n    let mapa: Map<string, string> = new Map<string, string>();\n    this.lineas.forEach(unaPersona => {\n      if (unaPersona.persona && unaPersona.persona.cargo) {\n        const cargo = unaPersona.persona.cargo.trim();\n        if (!mapa.has(cargo)) {\n          mapa.set(cargo, unaPersona.persona.cargo);\n          this.listaCargo.push({ label: unaPersona.persona.nombreCargo, value: cargo });\n        }\n      }\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  transform(value: any, ...args: any[]): any {\n    let result = value\n    if (args[0] == 'listaCargo') { this.listaCargo.forEach(data => { if (data.value === value) { result = data.label } }); };\n    return result;\n  }\n\n  async cambiarTipoHorario(evento) {\n    let llaveHorario: string = evento.value;\n    this.nombreTipoHorario = this.mapaTipoHorarios.get(llaveHorario);\n    if (llaveHorario !== 'directa' && llaveHorario !== 'directaausencia') {\n      this.nombreTipoHorario = this.nombreTipoHorario + ' ( -' + this.mapaEstaciones.get('directa') + '- )';\n    }\n    this.estacionSeleccion = 'directa';\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cambiarEstacion(evento) {\n    this.nombreTipoHorario = this.mapaTipoHorarios.get(this.tipoHorario) + ' ( -' + this.mapaEstaciones.get(evento.value) + '- )';\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async anterior() {\n    let consultaFecha = await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), dias: -7 }).toPromise();\n    this.fechaBase = new Date(consultaFecha.respuesta);\n    this.cargarSemanaPersona(false);\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async siguiente() {\n    let consultaFecha = await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), dias: 7 }).toPromise();\n    this.fechaBase = new Date(consultaFecha.respuesta);\n    this.cargarSemanaPersona(false);\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  validacionRendered() {\n    this.rendered = false;\n    if (this.controlFuncionalidad.getControlFuncionalidad('caltiempo:programa')) {\n      this.rendered = true\n    }\n    if (!this.controlFuncionalidad.getControlFuncionalidad('caltiempo:programa') && this.mostrarRecursos) {\n      this.rendered = true;\n    }\n    if (this.lineas.length > 0) {\n      this.rendered = true;\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  async verJornada(parametroJornada, parametroNoHabilita, index: number) {\n    if (this.mostrarTipoHorario) {\n      this.toastService.showError('Acci' + Constantes.O_TIDLE_MIN + 'n no permitida en proceso de programaci' + Constantes.O_TIDLE_MIN + 'n')\n      return;\n    }\n    if (this.origen === 'directopersona') {\n      return;\n    }\n    try {\n      this.isLoadingData = true;\n      let jornadaEspecifica = new JornadaModel();\n      jornadaEspecifica = parametroJornada.jornada;\n\n      let noHabilitado: string;\n      noHabilitado = parametroNoHabilita;\n\n      if (jornadaEspecifica.llaveTabla == null || jornadaEspecifica.llaveTabla.trim() == Constantes.PUNTO) {\n        this.isLoadingData = false;\n        return;\n      }\n      if (jornadaEspecifica.tipo != null && 'reloj' === jornadaEspecifica.tipo) {\n        let eventoJoranda = new EventoJornadaModel();\n        eventoJoranda.llaveTabla = jornadaEspecifica.llaveTabla;\n        eventoJoranda = await this.generalService.queryForObject(new GeneralModel('EventoJornadaDTO', null, false, eventoJoranda)).toPromise();\n        if (eventoJoranda == null) {\n          this.isLoadingData = false;\n          return;\n        }\n        this.popupReloj.cargar(eventoJoranda, false, index).then(data => {\n          this.isLoadingData = false;\n        });\n        return;\n      }\n\n      let llaveJornadaVer: string = '';\n      if (jornadaEspecifica.depende != null) {\n        llaveJornadaVer = jornadaEspecifica.depende;\n      } else {\n        llaveJornadaVer = jornadaEspecifica.llaveTabla\n      }\n      let jorVer = new JornadaModel();\n      jorVer.llaveTabla = llaveJornadaVer;\n      jorVer = await this.generalService.queryForObject(new GeneralModel('JornadaDTO', null, false, jorVer)).toPromise();\n      if (jorVer == null) {\n        this.toastService.showError('Registro no fue encontrado');\n        this.isLoadingData = false;\n        return;\n      }\n      if (jornadaEspecifica.depende == null) {\n        jornadaEspecifica = jorVer\n      }\n      if (this.sitioSeleccionado !== jorVer.sitio && noHabilitado != null) {\n        this.toastService.showError('Jornada pertenece a otro sitio');\n        this.isLoadingData = false;\n        return;\n      }\n      this.popupJonada.ver(jorVer, jornadaEspecifica, false, true, index, 'sitioPersona').then(data => {\n        this.isLoadingData = false;\n      });\n    } catch (error) {\n      this.toastService.showError(error.error.mensajeEtiqueta);\n    }\n  }\n\n  async programarTurnoPersona(parametroPersona: string, diaPersona: number, indexOrigen: number) {\n    if (!this.mostrarRecursos) {\n      return;\n    }\n    this.clickObligatorio = false;\n    if (this.tipoHorario == null) {\n      this.toastService.showError('Seleccione un Horario');\n      this.clickObligatorio = true;\n      return;\n    }\n    if (!this.mostrarTipoHorario) {\n      return;\n    }\n    let llavePersona: string = parametroPersona;\n    let dia: number = diaPersona;\n    let fecha = await this.fechaUtils.cambiarDiaSemana({ fechaBase: this.datePipe.transform(this.fechaBase, 'yyyy-MM-dd HH:mm:ss.S'), dias: dia }).toPromise();\n    if (this.tipoHorario === 'directa') {\n      this.popupJonada.nuevoCalendario(llavePersona, fecha, true, indexOrigen);\n      return;\n    }\n    if (this.tipoHorario === 'directaausencia') {\n      this.popupJonada.nuevoCalendario(llavePersona, fecha, false, indexOrigen);\n      return;\n    }\n    if (this.estacionSeleccion == null) {\n      this.toastService.showError('Seleccione una Estaci' + Constantes.O_TIDLE_MIN + \"n\");\n      return;\n    }\n    let estacion: string = this.estacionSeleccion;\n    if (estacion === 'directa') {\n      estacion = null;\n    }\n    await this.controlTiemposService.crearJornadaTurno({\n      llavePersona: llavePersona,\n      llaveTurno: this.tipoHorario,\n      sitio: this.sitioSeleccionado,\n      empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      estacion: estacion,\n      fechaBase: this.datePipe.transform(new Date(fecha), 'yyyy-MM-dd HH:mm:ss.S')\n    }).toPromise().then(data => {\n      if (data.mensaje !== null) {\n        this.toastService.showError(data.mensaje);\n        return;\n      }\n      this.actualizarLinea(indexOrigen);\n      this.toastService.showSuccess('Programado');\n    }).catch();\n  }\n\n  cambiarSitio(sitio) {\n    this.sitioSeleccionado = sitio.value;\n    this.mostrarTipoHorario = false;\n    this.mostrarRecursos = false;\n    this.listaCargo = [];\n    this.nombreTipoHorario = null;\n    this.filtroPersona = new PersonaModel();\n    this.cargarSemanaPersona(true);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarListaHorarios() {\n    this.listaTipoHorarios = [];\n    this.mapaTipoHorarios = new Map<string, string>();\n    if (this.sitioSeleccionado == null) {\n      this.utilsService.resizeWindowIFrame();\n      return;\n    }\n    let sitioTurno = new SitioTurnoModel();\n    sitioTurno.sitio = this.sitioSeleccionado;\n    this.listaTipoHorarios = await this.cargarMapas.cargarSelectItemString('tipoHorario', 'nombreTurno', new GeneralModel('SitioTurnoDTO', null, false, sitioTurno));\n    for (const sitioTurnoDTO of this.listaTipoHorarios) {\n      this.mapaTipoHorarios.set(sitioTurnoDTO.key, sitioTurnoDTO.label);\n    }\n\n    let nombreTipoHorario: string = null;\n    nombreTipoHorario = '- Ingreso Programaci' + Constantes.O_TIDLE_MIN + 'n Jornada Manual';\n    this.listaTipoHorarios.unshift({ key: 'directa', label: nombreTipoHorario });\n    this.mapaTipoHorarios.set('directa', nombreTipoHorario);\n\n    nombreTipoHorario = '- Ingreso Ausencia';\n    this.listaTipoHorarios.unshift({ key: 'directaausencia', label: nombreTipoHorario });\n    this.mapaTipoHorarios.set('directaausencia', nombreTipoHorario);\n\n    this.listaTipoHorarios.sort((a, b) => a.label.localeCompare(b.label));\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  programar(program) {\n    if (program.checked == null) {\n      this.mostrarRecursos = false;\n    }\n    if (program.checked) {\n      this.mostrarRecursos = true;\n      this.tipoHorario = this.listaTipoHorarios[0].key;\n      this.nombreTipoHorario = this.listaTipoHorarios[0].label;\n    } else {\n      this.mostrarRecursos = false;\n      this.nombreTipoHorario = null;\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async verPersona(evento, indexOrigen: number) {\n    if (this.persona != null) {\n      this.utilsService.resizeWindowIFrame();\n      return;\n    }\n    if (this.validacion(evento)) {\n      this.utilsService.resizeWindowIFrame();\n      return;\n    }\n    this.vistaVisualizar = 'detallePersona';\n    await this.utilsService.sleep(100);\n    this.detallePersona.cargarPersonaExterna(evento.llaveTabla, 'calendario', indexOrigen);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async irLiquidacion() {\n    if (this.sitioSeleccionado == null) {\n      this.utilsService.resizeWindowIFrame();\n      return;\n    }\n    this.isLoadingDataButton = true;\n    this.mostrarPopup = 'liqSitioTiempo';\n    await this.utilsService.sleep(10);\n    await this.popupLiquidacionSitio.inicializar(this.sitioSeleccionado).then(data => {\n      this.isLoadingDataButton = false;\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async regresarPopup(evento: any) {\n    this.vistaVisualizar = 'lista';\n    let actualizo: boolean = evento?.procesoActualiza;\n    let indexOrigen: number = evento?.indexDestino;\n    let persona: string = evento?.llaveTabla;\n    if (actualizo) {\n      if (persona != 'detallePersona') {\n        this.actualizarLinea(indexOrigen);\n      } else {\n        this.cargarSemanaPersona(true);\n      }\n    }\n    await this.utilsService.sleep(100);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async actualizarLinea(index: number): Promise<void> {\n    var data = this.transformacionArray(await this.controlTiemposService.cargarSemanaPersona({ fechaBase: this.datePipe.transform(new Date(this.fechaBase), 'yyyy-MM-dd HH:mm:ss.S'), llaveTipo: this.sitioSeleccionado, tipo: 'sitio', filtroPersona: this.filtroPersona }).toPromise());\n    const findIndex = data.findIndex((item, idx) => idx === index);\n    if (findIndex !== -1) {\n      this.lineas[index] = data[findIndex];\n      this.lineas = [...this.lineas];\n    }\n  }\n\n  public validacion(item: any): boolean {\n    let result: boolean = false;\n    if (item.listaTraslado != null || this.origen == 'directopersona') {\n      result = true\n    }\n    return result;\n  }\n\n  setVistaVisualizar(evento) {\n    this.vistaVisualizar = evento;\n  }\n\n  async setMostrarPopup(evento): Promise<void> {\n    this.mostrarPopup = evento;\n  }\n\n  async liquidacionSitio(evento) {\n    await this.utilsService.sleep(10);\n    await this.popupFechaLiq.buscar('sitioPersona', evento);\n  }\n\n  async nuevoProcesoLiq(data): Promise<void> {\n    await this.utilsService.sleep(10);\n    await this.detalleLiquidacion?.cargar(data, false);\n  }\n\n  async mostrarRegresar() {\n    this.mostrarPopup = 'liqSitioTiempo';\n    await this.utilsService.sleep(10);\n    await this.popupLiquidacionSitio.inicializar(this.sitioSeleccionado).then(data => {\n      this.isLoadingDataButton = false;\n    });\n  }\n\n  retornaClassCheck(): string {\n    let result: string;\n    if (!this.rendered) {\n      result = 'col-9 col:md-4'\n    } else if (!this.mostrarRecursos) {\n      result = 'col-6 col:md-4 mt-2'\n    } else {\n      result = 'col-3 col:md-4 mb-2'\n    }\n    return result;\n  }\n\n  retornaClassCalendario(): string {\n    const calTiempoPrograma = this.controlFuncionalidad.getControlFuncionalidad('caltiempo:programa');\n    const calTiempoLiquidacion = this.controlFuncionalidad.getControlFuncionalidad('caltiempo:verliquidacion');\n    const { hayRegistro, persona, nombreTipoHorario, origen, mostrarRecursos } = this;\n    const personaNoDefinida = persona == null;\n    const sinTipoHorario = nombreTipoHorario === null;\n    const origenEsCalendarioPersona = origen === 'calendariopersona';\n    const clases = {\n      colGrande: 'col-12 col:md-4',\n      colMediana: 'col-9 col:md-4',\n      colMedia: 'col-8 col:md-4',\n      colPequeña: 'col-6 col:md-4',\n      colMuyPequeña: 'col-4 col:md-4',\n      colPersonalizada: 'col-5 col:md-4',\n      colReducida: 'col-3 col:md-4'\n    };\n\n    if (personaNoDefinida) {\n      if (hayRegistro) {\n        if (sinTipoHorario && calTiempoPrograma) {\n          return calTiempoLiquidacion ? clases.colMuyPequeña : clases.colMedia;\n        }\n        if (!calTiempoPrograma && calTiempoLiquidacion) {\n          return origenEsCalendarioPersona ? clases.colGrande : clases.colPersonalizada;\n        }\n        if (calTiempoPrograma) {\n          return sinTipoHorario ? clases.colPequeña : clases.colReducida;\n        }\n        if (!calTiempoPrograma && !calTiempoLiquidacion) {\n          return clases.colPequeña;\n        }\n      } else if (!hayRegistro) {\n        if (!mostrarRecursos && calTiempoPrograma) {\n          return !calTiempoLiquidacion && persona != null ? clases.colMediana : clases.colPequeña;\n        }\n        if (!calTiempoPrograma && !calTiempoLiquidacion) {\n          return clases.colPequeña;\n        }\n      }\n    }\n    return persona ? clases.colGrande : clases.colMediana;\n  }\n\n  retornaClassFiltro(): string {\n    const calTiempoPrograma = this.controlFuncionalidad.getControlFuncionalidad('caltiempo:programa');\n    const calTiempoLiquidacion = this.controlFuncionalidad.getControlFuncionalidad('caltiempo:verliquidacion');\n    const { hayRegistro, nombreTipoHorario } = this;\n    const tipoHorarioVacio = !nombreTipoHorario;\n    const clases = {\n      colMedia: 'col-8 col:md-4',\n      colPequeña: 'col-6 col:md-4',\n      colMuyPequeña: 'col-4 col:md-4',\n    };\n\n    if (hayRegistro) {\n      if (calTiempoPrograma && tipoHorarioVacio && calTiempoLiquidacion) {\n        return clases.colMedia;\n      }\n      if (!calTiempoPrograma && !calTiempoLiquidacion) {\n        return clases.colPequeña;\n      }\n    }\n\n    return hayRegistro ? clases.colMuyPequeña : clases.colPequeña;\n  }\n\n\n}\n","<div id=\"id_lista_sitioPersona\" *ngIf=\"vistaVisualizar == 'lista'\">\n    @if(authService.getTokenKey('aplicacion') !== '10'){\n    <h1 class=\"mb-3\" *ngIf=\"origen === 'calendariotodos' \">{{'calendario' | translate}}</h1>\n    <!-- Menu Horizontal -->\n    <app-menu-control-tiempos\n        *ngIf=\"persona == null\"></app-menu-control-tiempos>\n    <h4 class=\"mt-3 text-xl\" *ngIf=\"origen === 'calendariotodos'\">\n        {{'sitio' | translate}} {{'persona' | translate}}\n    </h4>\n    }\n    <div [class]=\"origen === 'calendariotodos' ? 'card p-4' : null \">\n        <!-- FILTROS -->\n        <div>\n            <div class=\"p-fluid grid\">\n                <!-- LISTA SITIO -->\n                <div [class]=\"!controlFuncionalidad.getControlFuncionalidad('caltiempo:verliquidacion') && !controlFuncionalidad.getControlFuncionalidad('caltiempo:programa') && hayRegistro ? 'col-12 col:md-4': 'col-3 col:md-4'\"\n                    *ngIf=\"persona == null\">\n                    <span class=\"p-float-label\"\n                        [style]=\"!controlFuncionalidad.getControlFuncionalidad('caltiempo:verliquidacion') && !controlFuncionalidad.getControlFuncionalidad('caltiempo:programa') && hayRegistro ? 'width:24%' : null\">\n                        <p-dropdown inputId=\"id_sitio\" [options]=\"listaSitio\" optionLabel=\"label\" optionValue=\"key\"\n                            [(ngModel)]=\"sitioSeleccionado\" appendTo=\"body\" (onChange)=\"cambiarSitio($event)\">\n                        </p-dropdown>\n                        <label htmlFor=\"sitio\">{{'sitio' | translate}} </label>\n                    </span>\n                </div>\n                <!-- LISTA TIPO HORARIO -->\n                <div class=\"col-3 col:md-4\" *ngIf=\"mostrarRecursos\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_turno\" [options]=\"listaTipoHorarios\" optionLabel=\"label\"\n                            optionValue=\"key\" [(ngModel)]=\"tipoHorario\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\n                            (onChange)=\"cambiarTipoHorario($event)\" [class.ng-dirty]=\"clickObligatorio\"\n                            [class.ng-invalid]=\"clickObligatorio\">\n                        </p-dropdown>\n                        <label htmlFor=\"id_turno\">{{'turno' | translate}} *</label>\n                    </span>\n                </div>\n                <!-- ESTACION TRABAJO -->\n                <div class=\"col-3 col:md-4\"\n                    *ngIf=\"mostrarRecursos && tipoHorario !== null && tipoHorario !== 'directa' && tipoHorario !== 'directaausencia'\">\n                    <span class=\"p-float-label\">\n                        <p-dropdown inputId=\"id_estaciontrabajo\" [options]=\"listaEstacionTrabajo\" optionLabel=\"label\"\n                            optionValue=\"key\" [(ngModel)]=\"estacionSeleccion\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\n                            (onChange)=\"cambiarEstacion($event)\">\n                        </p-dropdown>\n                        <label htmlFor=\"id_estaciontrabajo\">{{'estaciontrabajo' | translate}} </label>\n                    </span>\n                </div>\n                <!-- IR LIQUIDACION -->\n                <div class=\"col-1 col:md-4 mb-2\"\n                    *ngIf=\"!mostrarRecursos && persona == null && controlFuncionalidad.getControlFuncionalidad('caltiempo:verliquidacion')\">\n                    <p-button icon=\"glyphicons glyphicons-calculator text-lg\"\n                        class=\"loading-rounded loading-secondary ml-2\"\n                        [ngStyle]=\"{'height': '2.5rem', 'width':'2.5rem !important;'}\" title=\"Liquidación Jornada\"\n                        (click)=\"irLiquidacion()\" [loading]=\"isLoadingDataButton\"></p-button>\n                </div>\n                <!-- CHECK PROGRAMAR -->\n                <div [class]=\"retornaClassCheck()\"\n                    *ngIf=\"persona == null && hayRegistro && controlFuncionalidad.getControlFuncionalidad('caltiempo:programa')\">\n                    <p-checkbox [(ngModel)]=\"mostrarTipoHorario\" [binary]=\"true\" [ngModelOptions]=\"{standalone: true}\"\n                        (onChange)=\"programar($event)\"></p-checkbox>\n                    <label class=\"ml-1\"> {{'programar' | translate}}</label>\n                </div>\n            </div>\n            <div class=\"p-fluid grid\">\n                <!-- FILTRO -->\n                <div [class]=\"retornaClassFiltro()\" *ngIf=\"persona == null\">\n                    <app-filtro-general [filtros]=\"filters\" (metodoRegresar)=\"cambiarFiltro($event)\">\n                        <ng-template let-form>\n                            <ng-container [formGroup]=\"form\">\n                                <div class=\"field\">\n                                    <span class=\"p-float-label\">\n                                        <input pInputText autofocus id=\"id_persona\" type=\"text\"\n                                            formControlName=\"persona\" autocomplete=\"off\" maxlength=\"25\" />\n                                        <label htmlFor=\"id_persona\">{{'persona' | translate}} </label>\n                                    </span>\n                                </div>\n                                <div class=\"field\">\n                                    <span class=\"p-float-label\">\n                                        <p-dropdown inputId=\"id_cargo\" [options]=\"listaCargo\" optionLabel=\"label\"\n                                            optionValue=\"value\" formControlName=\"cargo\" appendTo=\"body\"\n                                            [autoDisplayFirst]=\"false\" [showClear]=\"true\">\n                                        </p-dropdown>\n                                        <label htmlFor=\"id_cargo\">{{'cargo' | translate}} </label>\n                                    </span>\n                                </div>\n                            </ng-container>\n                        </ng-template>\n                    </app-filtro-general>\n                </div>\n                <!-- MUESTRA LABEL TURNO SELECCIONADO -->\n                <div class=\"col-5 col:md-4 chip-programar\"\n                    *ngIf=\"lineas.length > 0 && nombreTipoHorario !== null && controlFuncionalidad.getControlFuncionalidad('caltiempo:programa')\">\n                    <p-chip *ngIf=\"nombreTipoHorario\"\n                        class=\" p-chip p-1-5 pl-1 pr-1 mt-1 color-600 border-color-500\">Aplicando:\n                        {{nombreTipoHorario}}</p-chip>\n                </div>\n                <!-- CALENDARIO -->\n                <div [class]=\"retornaClassCalendario()\">\n                    <div class=\"flex justify-content-end\">\n                        <h6 class=\"text-700 mt-3 mr-5\"><span>{{fechaTexto | titlecase}}</span></h6>\n                        <button pButton pRipple class=\"p-button p-button-rounded p-button-outlined mt-2\"\n                            icon=\"pi pi-angle-left\" (click)=\"anterior()\" title=\"{{'anterior' | translate}}\"></button>\n                        <button pButton pRipple class=\"p-button p-button-rounded p-button-outlined mt-2\"\n                            icon=\"pi pi-angle-right\" (click)=\"siguiente()\" title=\"{{'siguiente' | translate}}\"></button>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div>\n            <p-table [value]=\"lineas\" responsiveLayout=\"scroll\" styleClass=\"p-datatable-gridlines\"\n                [tableStyle]=\"{ 'text-align': 'center' }\" [rows]=\"10\" [totalRecords]=\"lineas.length\"\n                [paginator]=\"lineas.length > 10\"\n                currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" [loading]=\"isLoadingData\"\n                [scrollable]=\"true\" rowGroupMode=\"subheader\" expandableRowGroups=\"true\" [expandedRowKeys]=\"expandedRows\"\n                sortField=\"descripcion\" groupRowsBy=\"descripcion\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th class=\"centrar-texto\" style=\"width: 20%;\">{{ 'personal' | translate }}</th>\n                        <th class=\"centrar-texto\" style=\"width: 10%;\" *ngFor=\"let columnas of semanas\"><span\n                                [style.font-weight]=\"columnas.pesoFuente\">{{ columnas.texto }}</span></th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"groupheader\" let-rowData let-rowIndex=\"rowIndex\" let-expanded=\"expanded\">\n                    <tr class=\"background-100\" pRowGroupHeader>\n                        <td colspan=\"4\" class=\"text-center\">\n                            <span><b>{{'estaciontrabajo' | translate}}:\n                                    {{utilsService.capitalizeFully(rowData.descripcion)}}</b></span>\n                        </td>\n                        <td colspan=\"4\" class=\"text-center\">\n                            <span> <b> {{cadenaFechaCalendario}}</b> </span>\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"rowexpansion\" let-item let-i=\"rowIndex\">\n                    <tr>\n                        <td style=\"width: 20%;\" class=\"centrar-texto\">\n                            <div (click)=\"verPersona(item['persona'], i)\"\n                                [style]=\"!validacion(item['persona']) && persona==null? 'cursor: pointer;' : item['persona'].listaTraslado === null ? null : 'background-color:#CFECEC; padding: 5px; border-radius:8px;'\">\n                                <div class=\"flex text-left\">\n                                    <div style=\"width:30%\">\n                                        <img [src]=\"item?.baseFoto ? 'data:image/png;base64,'+item?.baseFoto : '/assets/images/foto_vacia.png'\"\n                                            alt=\"Foto\" class=\"avatar-image\">\n                                    </div>\n                                    <div style=\"width:70%\" class=\"mt-2\">\n                                        <div class=\"font-semibold\">{{item.titulo}}</div>\n                                        <div>{{item.horas}}</div>\n                                        <div>{{item.horasReloj}}</div>\n                                    </div>\n                                </div>\n                                <div class=\"flex text-left\"\n                                    *ngIf=\"item['persona'].nombreCargo != null && item['persona'].nombreCargo != '.'\">\n                                    <span>{{item['persona'].nombreCargo}}</span>\n                                </div>\n                            </div>\n                        </td>\n                        <td style=\"width: 10%;\" *ngFor=\"let columnas of semanas \">\n                            <div style=\"width: 100%;\"\n                                [style]=\"item.mapaNoHabilitado[columnas.index] != null ? 'background: #CFECEC; padding: 5px; border-radius:8px;' : ''\"\n                                [style.background-color]=\"item.mapaNoHabilitado[columnas.index] == null ? '' : '#CFECEC;'\">\n                                <div style=\"width: 100%;\"\n                                    *ngIf=\"mostrarTipoHorario && item.mapaNoHabilitado[columnas.index] == null \">\n                                    <span *ngIf=\"tipoHorario === 'directa'\" class=\"glyphicons glyphicons-calendar\"\n                                        [title]=\"'Programar Jornada para el dia '+[columnas.texto]\"\n                                        style=\"cursor: pointer; text-align: center; width: 100%;\"\n                                        (click)=\"programarTurnoPersona(item.parametro, columnas.index, i)\"></span>\n                                    <span *ngIf=\"tipoHorario === 'directaausencia'\"\n                                        class=\"glyphicons glyphicons-meditation\"\n                                        [title]=\"'Registrar Ausencia para el dia '+[columnas.texto]\"\n                                        style=\"cursor: pointer; text-align: center; width: 100%;\"\n                                        (click)=\"programarTurnoPersona(item.parametro, columnas.index, i)\"></span>\n                                    <span *ngIf=\"tipoHorario !== 'directaausencia' && tipoHorario !== 'directa' \"\n                                        class=\"glyphicons glyphicons-businessman\"\n                                        [title]=\"'Programar Jornada para el dia '+[columnas.texto]\"\n                                        style=\"cursor: pointer; text-align: center; width: 100%;\"\n                                        (click)=\"programarTurnoPersona(item.parametro, columnas.index, i)\"></span>\n                                </div>\n                                <div style=\"width: 100%;\">\n                                    <span *ngIf=\"!mostrarTipoHorario && item.mapaNoHabilitado[columnas.index] != null\"\n                                        class=\"glyphicons glyphicons-reflect-x\"\n                                        style=\"text-align: center; width: 100%;\">{{item.mapaNoHabilitado[columnas.index]}}</span>\n                                </div>\n                                <div *ngFor=\"let programadas of item.mapaJornadas[columnas.index]\">\n                                    <a (click)=\"verJornada(programadas, item.mapaNoHabilitado[columnas.index], i)\"\n                                        class=\"cuadroCalJornada\"\n                                        [style]=\"!mostrarTipoHorario && origen !== 'directopersona' ?  'cursor: pointer' : null\"\n                                        [style.border-color]=\"item.mapaHallazgo[columnas.index]\"\n                                        [style.background-color]=\"programadas.colorCalendario\">\n                                        <div class=\"m-2\">\n                                            <div *ngIf=\"programadas.jornada.estado === 'I'\"\n                                                class=\"glyphicons glyphicons-warning-sign\" style=\"font-size: 15px\">\n                                            </div>\n                                            <div>\n                                                <span\n                                                    [class]=\"programadas.textoMostrar == 'Reloj' ? 'glyphicons glyphicons-fingerprint' : programadas.textoMostrar == 'I' ? 'glyphicons glyphicons-warning-sign' : '' \">{{programadas.horario\n                                                    }}</span>\n                                            </div>\n                                            <div style=\"width:100%\">\n                                                <ng-container\n                                                    *ngIf=\"programadas.textoMostrar !== 'Reloj' && programadas.textoMostrar !== null\">\n                                                    <span>{{ programadas.textoMostrar }}</span>\n                                                </ng-container>\n                                            </div>\n                                            <div style=\"width:100%\">\n                                                <ng-container\n                                                    *ngIf=\"programadas.textoMostrar !== 'Reloj' && programadas.textoMostrar2 !== null\">\n                                                    <span>{{ programadas.textoMostrar2 }}</span>\n                                                </ng-container>\n                                            </div>\n                                        </div>\n                                    </a>\n                                </div>\n                            </div>\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n        </div>\n    </div>\n</div>\n<app-popup-jonada (regresar)=\"regresarPopup($event)\"></app-popup-jonada>\n<app-popup-reloj (regresar)=\"regresarPopup($event)\"></app-popup-reloj>\n<div *ngIf=\"mostrarPopup == 'liqSitioTiempo' \">\n    <app-popup-liquidacion-sitio-tiempo (setMostrarPopup)=\"setMostrarPopup($event)\"\n        (envioData)=\"liquidacionSitio($event)\" (regresar)=\"setVistaVisualizar('lista')\"\n        (setVistaVisualizar)=\"setVistaVisualizar($event)\"\n        (envioDetalle)=\"nuevoProcesoLiq($event)\"></app-popup-liquidacion-sitio-tiempo>\n</div>\n<div *ngIf=\"mostrarPopup == 'fechaLiq' && vistaVisualizar != 'detalle'\">\n    <app-popup-fecha-liquidacion (regresar)=\"regresarPopup($event)\" (AplicarDestino)=\"setVistaVisualizar($event)\"\n        (envioNuevo)=\"nuevoProcesoLiq($event)\" (anteriorPopup)=\"mostrarRegresar()\"\n        (setVistaVisualizar)=\"regresarPopup($event)\"></app-popup-fecha-liquidacion>\n</div>\n<div *ngIf=\"vistaVisualizar == 'detalle'\">\n    <app-detalle-liquidacion-tiempos #detalleLiquidacion\n        (regresar)=\"regresarPopup($event)\"></app-detalle-liquidacion-tiempos>\n</div>\n<div *ngIf=\"vistaVisualizar === 'detallePersona'\">\n    <app-detalle-persona #detallePersona (regresar)=\"regresarPopup($event)\"></app-detalle-persona>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class SitioPersonaModel extends UnionModel {\n\n\tsitio: String;\n\tpersona: String;\n\tlogin: String;\n\tempresa: number;\n\torganizacion: number;\n\n\t\n}","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { UtilsService, CargarControlFuncionalidadService, GeneralModel, ToastService, FiltroGeneralComponent, SitioModel, AuthService } from 'general-library-union';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SitioPersonaModel } from '../../../models/SitioPersonaModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { UpperCasePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { PickListModule } from 'primeng/picklist';\n\n\n@Component({\n    selector: 'app-sitios-persona',\n    templateUrl: './sitios-persona.component.html',\n    styleUrls: ['./sitios-persona.component.scss'],\n    standalone: true,\n    imports: [PickListModule, PrimeTemplate, UpperCasePipe]\n})\nexport class SitiosPersonaComponent implements OnInit {\n\n  @Input() persona: PersonaModel;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  listaSitioDisponible: SitioModel[] = [];\n  listaSitioAsociada: SitioModel[] = [];\n\n  constructor(\n    private generalService: GeneralService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private utilService: UtilsService,\n    private toastService: ToastService,\n    private translateService: TranslateService,\n    private saraappservice: SaraAplicacionService,\n    private authService: AuthService\n  ) { }\n\n  ngOnInit(): void {\n    if (this.persona) {\n      this.loadData();\n    }\n  }\n\n  async loadData() {\n    try {\n      this.listaSitioDisponible = [];\n      this.listaSitioAsociada = [];\n      let sitioPer: SitioPersonaModel = new SitioPersonaModel();\n      sitioPer.organizacion = (await this.saraappservice.getEmpresa()).organizacion,\n        sitioPer.empresa = this.persona.empresa;\n      sitioPer.login = this.authService.getTokenKey('usuario'),\n        sitioPer.persona = this.persona.llaveTabla;\n      this.listaSitioDisponible = await this.generalService.queryForList(new GeneralModel('SitioPersonaDTO', 'SitioSara.consultarSitioSinPersona', false, sitioPer)).toPromise();\n      sitioPer = new SitioPersonaModel();\n      sitioPer.persona = this.persona.llaveTabla;\n      sitioPer.login = this.authService.getTokenKey('usuario'),\n        this.listaSitioAsociada = await this.generalService.queryForList(new GeneralModel('SitioPersonaDTO', 'SitioSara.consultarSitioPersona', false, sitioPer)).toPromise();\n    } catch (error) {\n    }\n  }\n\n  desasociar(evento) {\n    let sitio = evento.items[0];\n    let sitioPerona: SitioPersonaModel = new SitioPersonaModel();\n    sitioPerona.persona = this.persona.llaveTabla;\n    sitioPerona.sitio = sitio.llaveTabla    \n    try {\n      this.generalService.queryForList(new GeneralModel('SitioPersonaDTO', null, false, sitioPerona)).subscribe(data => {\n        if (data.length > 0 ) {\n          let sitioPersonaEliminar = data[0];\n          this.generalService.delete(new GeneralModel('SitioPersonaDTO', null, false, sitioPersonaEliminar)).subscribe({\n            next: (data) => {\n              if (data == 1) {\n                this.toastService.showSuccess('Sitios de Trabajo actualizados');\n                this.loadData();\n              } else {\n                this.toastService.showError('Error en el método de eliminar recurso');\n              }\n            },\n            error: (err) => {\n              var data = JSON.stringify(err.error.mensajeEtiqueta);\n              this.toastService.showError('No es posible eliminar el registro');\n            },\n          });\n        } else {\n          this.toastService.showError('Registro no encontrado');\n          this.loadData();\n          return;\n        }\n      });\n    } catch (error) {\n    }\n  }\n\n\n  asociar(evento) {\n    let sitio = evento.items[0];\n    let sitioPerona: SitioPersonaModel = new SitioPersonaModel();\n    sitioPerona.persona = this.persona.llaveTabla;\n    sitioPerona.sitio = sitio.llaveTabla\n    try {\n      this.generalService.crearRegistro(new GeneralModel('SitioPersonaDTO', null, false, sitioPerona)).subscribe({\n        next: (data) => {\n          if (data != null) {\n            this.toastService.showSuccess('Sitios de Trabajo actualizados');\n            this.loadData();\n          } else {\n            this.toastService.showError('Registro no asignado');\n          }\n        },\n        error: (err) => {\n          this.toastService.showError('Error al ingresar en el servicio');\n        },\n      });\n    } catch (error) {\n    }\n  }\n\n\n}\n","<div id=\"id_panelSitioPersona\">\n    <div class=\"mt-4\">\n        <p-pickList [source]=\"listaSitioDisponible\" [target]=\"listaSitioAsociada\" sourceHeader=\"Desasociado\"\n            sourceFilterPlaceholder=\"Desasociado\" targetHeader=\"Asasociado\" targetFilterPlaceholder=\"Asasociado\" [dragdrop]=\"true\"\n            [responsive]=\"true\" (onMoveToSource)=\"desasociar($event)\" (onMoveToTarget)=\"asociar($event)\"\n            [sourceStyle]=\"{'height':'25rem'}\" [targetStyle]=\"{'height':'25rem'}\" filterBy=\"descripcion\">\n            <ng-template let-sitio pTemplate=\"sitio\">\n                <div class=\"p-picklist-filter\">\n                    <div>\n                        {{sitio.codigo | uppercase}} - {{sitio.descripcion | uppercase}}\n                    </div>\n                </div>\n            </ng-template>\n        </p-pickList>\n    </div>\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class DispositivoHojaVidaModel extends UnionModel {\n\n\thojaVida: number;\n\tdispositivo: String;\n\ttipoRol: String;\n\tdescripcion: String;\n\t\n}","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { DispositivoModel } from '../../../models/DispositivoModel';\nimport { DispositivoHojaVidaModel } from '../../../models/DispositivoHojaVidaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { UtilsService, CargarControlFuncionalidadService, GeneralModel, ToastService, FiltroGeneralComponent } from 'general-library-union';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UpperCasePipe } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { PickListModule } from 'primeng/picklist';\n\n@Component({\n    selector: 'app-dispositivo-persona',\n    templateUrl: './dispositivo-persona.component.html',\n    styleUrls: ['./dispositivo-persona.component.scss'],\n    standalone: true,\n    imports: [PickListModule, PrimeTemplate, UpperCasePipe]\n})\nexport class DispositivoPersonaComponent implements OnInit {\n\n  @Input() identifica: number;\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n\n  listaDispositivoNoAsignado: DispositivoModel[] = [];\n  listaDispositivoNoAsignadoOrgin: DispositivoModel[] = [];\n  listaDispositivoAsignado: DispositivoHojaVidaModel[] = [];\n  filtroDispositivo: DispositivoHojaVidaModel = new DispositivoHojaVidaModel();\n  filtro: DispositivoModel = new DispositivoModel();\n  filters = [];\n  busqueda : string = '';\n\n  constructor(\n    private generalService: GeneralService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    private utilService: UtilsService,\n    private toastService: ToastService,\n    private translateService: TranslateService\n  ) { }\n\n  ngOnInit(): void {\n    this.filtroDispositivo = new DispositivoHojaVidaModel();\n    this.filtro = new DispositivoModel();\n    this.listaDispositivoAsignado = [];\n    this.cargarListas();\n    this.filters = [\n      {\n        field: 'descripcionAsignado',\n        header: this.translateService.instant('dispositivo') + ' ' + this.translateService.instant('no') + ' ' + this.translateService.instant('asignado'),\n        matchMode: 'contains'\n      }]\n  }\n\n  async cargarListas() {\n    try {\n      this.filtro.identificaNoAsociado = this.identifica;\n      this.filtro.descripcion = this.filtro.descripcion ? '%' + this.filtro.descripcion + '%' : null;\n      this.filtroDispositivo.hojaVida = this.identifica;\n      this.listaDispositivoNoAsignado = await this.generalService.queryForList(new GeneralModel('DispositivoDTO', null, false, this.filtro)).toPromise();\n      this.listaDispositivoNoAsignadoOrgin = this.listaDispositivoNoAsignado;\n      this.listaDispositivoAsignado = await this.generalService.queryForList(new GeneralModel('DispositivoHojaVidaDTO', null, false, this.filtroDispositivo)).toPromise();\n    } catch (error) {\n    }\n  }\n\n  onChange(){\n    this.listaDispositivoNoAsignado = null;\n    if(this.busqueda != \"\"){\n      this.listaDispositivoNoAsignado = this.listaDispositivoNoAsignadoOrgin.filter(x => (x.descripcion.toUpperCase().includes(this.busqueda.toUpperCase())));\n    }else{\n      this.listaDispositivoNoAsignado = this.listaDispositivoNoAsignadoOrgin;\n    }\n  }\n\n  desasociar(evento) {\n    let dispositivo = evento.items[0];\n    try {\n      this.generalService.queryForObject(new GeneralModel('DispositivoHojaVidaDTO', null, false, dispositivo)).subscribe(dispositivoHojaVidaDTO => {\n        if (dispositivoHojaVidaDTO != null) {\n          this.generalService.delete(new GeneralModel('DispositivoHojaVidaDTO', null, false, dispositivoHojaVidaDTO)).subscribe({\n            next: (data) => {\n              if (data == 1) {\n                this.toastService.showSuccess('Dispositivos actualizados');\n                this.cargarListas();\n              } else {\n                this.toastService.showError('Error en el método de eliminar recurso');\n              }\n            },\n            error: (err) => {\n              var data = JSON.stringify(err.error.mensajeEtiqueta);\n              this.toastService.showError('No es posible eliminar el registro');\n            },\n          });\n        }\n      });\n    } catch (error) {\n    }\n  }\n\n  asociar(evento) {\n    let dispositivo = evento.items[0];\n    let dto: DispositivoHojaVidaModel = new DispositivoHojaVidaModel();\n    dto.llaveTabla = this.utilService.generarLlave();\n    dto.dispositivo = dispositivo.llaveTabla;\n    dto.hojaVida = this.identifica;\n    try {\n      this.generalService.crearRegistro(new GeneralModel('DispositivoHojaVidaDTO', null, false, dto)).subscribe({\n        next: (data) => {\n          if (data != null) {\n            this.toastService.showSuccess('Dispositivos actualizados');\n            this.cargarListas();\n          } else {\n            this.toastService.showError('Registro no asignado');\n          }\n        },\n        error: (err) => {\n          this.toastService.showError('Error al ingresar en el servicio');\n        },\n      });\n    } catch (error) {\n    }\n  }\n\n\n\n}\n","<div id=\"id_panelDispositivoPersona\">\n    <p-pickList [source]=\"listaDispositivoNoAsignado\" [target]=\"listaDispositivoAsignado\"\n        sourceHeader=\"Desasociado\" sourceFilterPlaceholder=\"Desasociado\"\n        targetHeader=\"Asasociado\" targetFilterPlaceholder=\"Asasociado\" [dragdrop]=\"true\"\n        filterBy=\"descripcion\" [responsive]=\"true\"\n        (onMoveToSource)=\"desasociar($event)\" (onMoveToTarget)=\"asociar($event)\" [sourceStyle]=\"{'height':'25rem'}\"\n        [targetStyle]=\"{'height':'25rem'}\">\n        <ng-template let-dispositivo pTemplate=\"dispositivo\">\n            <div class=\"p-picklist-filter\">\n                {{dispositivo.descripcion | uppercase}}\n            </div>\n        </ng-template>\n    </p-pickList>\n</div>","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { PuestoTrabajoModel } from '../../models/PuestoTrabajoModel';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { FiltroGeneralComponent, GeneralModel, GeneralService } from 'general-library-union';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { DialogModule } from 'primeng/dialog';\nimport { Table, TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n  selector: 'app-popup-puesto-trabajo',\n  standalone: true,\n  imports: [DialogModule, ReactiveFormsModule, InputTextModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, FiltroGeneralComponent],\n  templateUrl: './popup-puesto-trabajo.component.html',\n  styleUrl: './popup-puesto-trabajo.component.scss'\n})\nexport class PopupPuestoTrabajoComponent implements OnInit {\n\n  @Output() puestoTrabajo = new EventEmitter;\n\n  public filtroBean: PuestoTrabajoModel = new PuestoTrabajoModel();\n  public listaPuestoTrabajo: PuestoTrabajoModel[] = [];\n  public codigoUnidad: string;\n  public mostraBuscar: boolean;\n  public mostrarPunto: boolean;\n  public showDialog: boolean = false;\n  public isLoadingData: boolean = false;  \n  public filters: any;\n  @ViewChild('tablaPuestoTrabajo') tablaPuesto : Table\n  @ViewChild('filtroGeneral') filtroGeneral : FiltroGeneralComponent\n\n  constructor(\n    private saraappservice: SaraAplicacionService,\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n  ) { }\n\n  ngOnInit(): void {\n    this.filters = [\n      {\n        field: 'filtro',\n        header: this.translateService.instant('filtro'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  public async cargarPuestos(objeto?): Promise<PuestoTrabajoModel[]> {\n    if (objeto == null) {\n      this.filtroBean = new PuestoTrabajoModel();\n      this.filtroBean.empresa = (await this.saraappservice.getEmpresa()).empresa;\n      this.filtroBean.unidad = this.codigoUnidad;\n    }\n    let lista: PuestoTrabajoModel[] = await this.generalService.queryForList(new GeneralModel('PuestoTrabajoDTO', null, false, this.filtroBean)).toPromise();\n    if (this.mostrarPunto) {\n      let punto: PuestoTrabajoModel = new PuestoTrabajoModel();\n      punto.llave = Constantes.PUNTO;\n      punto.nombreOcupa = Constantes.ESPACIO_NULO;\n      punto.nombreCargo = 'No tiene jefe en la unidad';\n      punto.nombreUnidad = Constantes.ESPACIO_NULO;\n      lista.unshift(punto);\n    }\n    return lista;\n  }\n\n  async buscar(listaPuesto: PuestoTrabajoModel[]) {\n    this.filtroBean = new PuestoTrabajoModel();\n    if (listaPuesto == null) {\n      this.listaPuestoTrabajo = [];\n      this.mostraBuscar = true;\n    }\n    if (this.codigoUnidad != null) {\n      this.listaPuestoTrabajo = await this.cargarPuestos();\n    } else {\n      this.mostrarPunto = false;\n      this.listaPuestoTrabajo = listaPuesto;\n    }\n    this.mostrarPopup();\n  }\n\n  seleccionar(evento) {\n    this.puestoTrabajo.emit(evento.data);\n    this.ocultarPopup();\n  }  \n\n  mostrarPopup() {\n    this.showDialog = true;\n  }\n\n  ocultarPopup() {\n    this.showDialog = false;\n  }\n\n  filtro(event,tablaPuestoTrabajo: Table){\n    if(event?.filtro?.value != null){\n      this.tablaPuesto.filterGlobal(event.filtro.value,'contains');\n    }else{\n      tablaPuestoTrabajo.clear();\n    }\n  }\n\n}\n","<p-dialog header=\"{{'puestos' | translate}} {{'de' | translate}} {{'trabajo' | translate}}\" [(visible)]=\"showDialog\"\n    (onShow)=\"mostrarPopup()\" (onHide)=\"ocultarPopup()\" [modal]=\"true\" appendTo=\"body\"\n    [breakpoints]=\"{'960px': '80vw', '640px': '100vw'}\" [style]=\"{ width: '60vw'}\">\n    <div class=\"flex justify-content-start mb-3\">\n        <app-filtro-general #filtroGeneral [filtros]=\"filters\"\n            (metodoRegresarAdicional)=\"filtro($event,tablaPuestoTrabajo)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"field\">\n                        <span class=\"p-float-label\">\n                            <input pInputText autofocus type=\"text\" id=\"codigo\" formControlName=\"filtro\"\n                                autocomplete=\"off\" />\n                            <label for=\"codigo\">{{'filtro' | translate}}</label>\n                        </span>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n    </div>\n    <p-table #tablaPuestoTrabajo [value]=\"listaPuestoTrabajo\" responsiveLayout=\"scroll\" [rows]=\"10\"\n        [totalRecords]=\"listaPuestoTrabajo.length\" [paginator]=\"listaPuestoTrabajo.length > 10\"\n        [globalFilterFields]=\"['nombreOcupa', 'nombreEmpresa', 'nombreCargo', 'nombreUnidad','numeroPuesto']\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" (onRowSelect)=\"seleccionar($event)\"\n        [scrollable]=\"true\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'empleado' | translate}}</th>\n                <th>{{'nombre' | translate}}</th>\n                <th>{{'numero' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data>\n            <tr [pSelectableRow]=\"data\">\n                <td>{{data.nombreOcupa}}</td>\n                <td>{{data.nombreEmpresa}} <br> {{data.nombreCargo}} <br> {{data.nombreUnidad}} </td>\n                <td>{{data.numeroPuesto}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</p-dialog>","import { Component, EventEmitter, OnInit, Output, ViewChild, forwardRef } from '@angular/core';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { AuthService, CargarControlFuncionalidadService, GeneralModel, MenuService, UtilsService, cargarmapasGlobal, ToastService, EncriptadoBasicoService } from 'general-library-union';\nimport { ConfirmationService, MenuItem } from 'primeng/api';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { PersonaConsPipe } from '../../../pipes/personaCons.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { jornadaConsPipe } from '../../../pipes/JornadaCons.pipe';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { HojaVidaModel } from '../../../../hojavida/models/HojaVidaModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { PuestoTrabajoModel } from '../../../../talento/models/PuestoTrabajoModel';\nimport { PuestoTrabajoService } from '../../../../talento/services/puesto-trabajo.service';\nimport { PerfilFuncionModel } from '../../../../talento/models/PerfilFuncionModel';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { ProgramacionPersonaComponent } from '../programacion-persona/programacion-persona.component';\nimport { JornadaPersonaComponent } from '../jornada-persona/jornada-persona.component';\nimport { ConceptosTiempoPersonaComponent } from '../conceptos-tiempo-persona/conceptos-tiempo-persona.component';\nimport { RelojPersonaComponent } from '../reloj-persona/reloj-persona.component';\nimport { EventoJornadaConsPipe } from '../../../pipes/eventoJornadaCons.pipe';\nimport { ListadoTrasladoTemporalPersonaComponent } from '../listado-traslado-temporal-persona/listado-traslado-temporal-persona.component';\nimport { ProgramacionPersonaHistoricoComponent } from '../programacion-persona-historico/programacion-persona-historico.component';\nimport { RelojPersonaHistoricoComponent } from '../reloj-persona-historico/reloj-persona-historico.component';\nimport { ListaSitioPersonaPage } from '../../calendario/lista-sitio-persona/lista-sitio-persona.page';\nimport { ListadoNovedadEmpleadoComponent } from '../../../../compensacion/pages/empleados/listado-novedad-empleado/listado-novedad-empleado.component';\nimport { FuncionPuestraComponent } from '../../../../talento/pages/descripcion-cargo/funcion-puestra/funcion-puestra.component';\nimport { SitiosPersonaComponent } from '../sitios-persona/sitios-persona.component';\nimport { ListadoNovedadEmpleadoComponent as ListadoNovedadEmpleadoComponent_1 } from '../../../../compensacion/pages/empleados/listado-novedad-empleado/listado-novedad-empleado.component';\nimport { FuncionPuestraComponent as FuncionPuestraComponent_1 } from '../../../../talento/pages/descripcion-cargo/funcion-puestra/funcion-puestra.component';\nimport { DispositivoPersonaComponent } from '../dispositivo-persona/dispositivo-persona.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Calendar, CalendarModule } from 'primeng/calendar';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { FormsModule } from '@angular/forms';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { NgIf } from '@angular/common';\nimport { MenubarModule } from 'primeng/menubar';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { PopupPuestoTrabajoComponent } from '../../../../talento/popups/popup-puesto-trabajo/popup-puesto-trabajo.component';\nimport { PasswordModule } from 'primeng/password';\n\n@Component({\n  selector: 'app-detalle-persona',\n  templateUrl: './detalle-persona.component.html',\n  styleUrls: ['./detalle-persona.component.scss'],\n  standalone: true,\n  imports: [ConfirmPopupModule, ButtonDirective, Ripple, MenubarModule, NgIf, InputHelperHojaVidaComponent, FormsModule, InputTextModule, InputHelperEmpleadoBotonComponent, CalendarModule, DropdownModule, DispositivoPersonaComponent, FuncionPuestraComponent_1, ProgramacionPersonaComponent, ListadoTrasladoTemporalPersonaComponent, ListadoNovedadEmpleadoComponent_1, JornadaPersonaComponent, RelojPersonaComponent, RelojPersonaHistoricoComponent, ProgramacionPersonaHistoricoComponent, ConceptosTiempoPersonaComponent, forwardRef(() => SitiosPersonaComponent), forwardRef(() => ListaSitioPersonaPage), TranslateModule, PopupPuestoTrabajoComponent, PasswordModule]\n})\nexport class DetallePersonaComponent implements OnInit {\n\n  @Output() public regresar: EventEmitter<any> = new EventEmitter();\n  @ViewChild('programacionPersona') programacionPersona: ProgramacionPersonaComponent;\n  @ViewChild('jornadaPersona') jornadaPersona: JornadaPersonaComponent;\n  @ViewChild('conceptoPersona') conceptoPersona: ConceptosTiempoPersonaComponent;\n  @ViewChild('relojPersona') relojPersona: RelojPersonaComponent;\n  @ViewChild('trasladoPersona') trasladoPersona: ListadoTrasladoTemporalPersonaComponent;\n  @ViewChild('historicoProgramacion') historicoProgramacion: ProgramacionPersonaHistoricoComponent;\n  @ViewChild('historicoRelojPersona') historicoRelojPersona: RelojPersonaHistoricoComponent;\n  @ViewChild('sitioPersonaCalendario') sitioPersonaCalendario: ListaSitioPersonaPage;\n  @ViewChild('novedadPersona') novedadPersona: ListadoNovedadEmpleadoComponent;\n  @ViewChild('funcionTra') funcionTra: FuncionPuestraComponent;\n  @ViewChild('popupPuestoTrabajo') popupPuestoTrabajo: PopupPuestoTrabajoComponent;\n  @ViewChild('calendar') calendar: Calendar;\n\n  sitiosMultiples: boolean;\n  externo: boolean;\n  items: MenuItem[];\n  opcionSeleccionada: string = '';\n  panel: string = '';\n  pin: string = '';\n  labelButton: string;\n  selectedPanel: string;\n  relojPropio: boolean;\n  empleado: EmpleadoModel;\n  persona: PersonaModel\n  nuevo: any;\n  listaTipo = [];\n  listaTipoHorario = [];\n  listaTipoLiquidacion = [];\n  listaTipoSitio = [];\n  listaSitio = [];\n  listaEstado = [];\n  listaMarcacionPortal = [];\n  listaGrupo = [];\n  listaTipoLabor = [];\n  listaEstacionTrabajo = [];\n  programacion: boolean = false;\n  jornada: boolean = false;\n  concepto: boolean = false;\n  reloj: boolean = false;\n  novedad: boolean = false;\n  trasladoTemporal: boolean = false;\n  sitioTrabajo: boolean = false;\n  historicoPrograma: boolean = false;\n  historicoReloj: boolean = false;\n  dispositivos: boolean = false;\n  calendario: boolean = false;\n  convenios: boolean = false;\n  funciones: boolean = false;\n  buscarHoja: boolean = false;\n  clickGuardar: boolean = false;\n  nombreConsulta: string = 'HojaVida.obtenerHojaVida';\n  cantidadConsulta: string = 'HojaVida.cantidadObtenerHojaVida';\n  filtroRolCliente: boolean = false;\n  columna: string = 'snombre';\n  indesxDestino: number;\n\n  constructor(\n    private menuService: MenuService,\n    public translateService: TranslateService,\n    public utilService: UtilsService,\n    public controlFuncionalidad: CargarControlFuncionalidadService,\n    public personaPipe: PersonaConsPipe,\n    private generalPipe: GeneralPipe,\n    private cargarMapas: cargarmapasGlobal,\n    private saraappservice: SaraAplicacionService,\n    private jornadaPipe: jornadaConsPipe,\n    public authService: AuthService,\n    private generalService: GeneralService,\n    private puestoTrabajoService: PuestoTrabajoService,\n    private toastService: ToastService,\n    private confirmationService: ConfirmationService,\n    private encriptadorBasicoService: EncriptadoBasicoService,\n    private eventoJornadaPipe: EventoJornadaConsPipe\n  ) { }\n\n  async ngOnInit(): Promise<void> {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('listado') + ' ' + this.translateService.instant('persona') }]);\n    this.persona = new PersonaModel();\n    this.inicializar();\n    this.utilService.resizeWindowIFrame();\n  }\n\n  async inicializar() {\n    this.externo = false;\n    this.panel = 'persona';\n    this.labelButton = 'listadopersona';\n    this.sitiosMultiples = this.controlFuncionalidad.getControlFuncionalidad('perjor:verSitios');\n    this.relojPropio = this.controlFuncionalidad.getControlFuncionalidad('perjor:verRelojPropio');\n  }\n\n  async verPopupHoja(hoja: HojaVidaModel) {\n    try {\n      let emp: any = await this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, { cedula: hoja.identifica })).toPromise();\n      if (emp != null && emp.length == 1 && emp[0].empresa == (await this.saraappservice.getEmpresa()).empresa) {\n        emp = emp[0];\n        this.persona.contrato = emp.contrato;\n        this.persona.empresa = emp.empresa;\n        this.persona.fechaIngreso = emp.fechaIngreso ? new Date(emp.fechaIngreso) : null;\n        this.persona.fechaRetiro = emp.fechaRetiro ? new Date(emp.fechaRetiro) : null;\n        this.persona.tipoVinculacion = emp.vinculacionNombre;\n        this.persona.nombreCargo = emp.cargoNombreTitular;\n      }\n      this.persona.nombresPersona = hoja.nombreCompleto;\n      this.persona.hojaVida = hoja.identifica;\n      this.persona.pais = (await this.saraappservice.getEmpresa()).pais;\n      this.persona.empresa = (await this.saraappservice.getEmpresa()).empresa;\n      this.persona.nombreEmpresa = (await this.saraappservice.getEmpresa()).nombre;\n    } catch (error) {\n    }\n  }\n\n  async verPopupEmpleado(empleado: EmpleadoModel) {\n    if (this.persona.hojaVida == null || this.persona.hojaVida == 0) {\n      this.toastService.showWarning('Identificaci' + Constantes.O_TIDLE_MIN + 'n de la persona no incluida');\n      return;\n    }\n    this.persona.fechaIngreso = empleado.fechaIngreso ? new Date(empleado.fechaIngreso) : null;\n    this.persona.fechaRetiro = empleado.fechaRetiro ? new Date(empleado.fechaRetiro) : null;\n    this.persona.contrato = empleado.contrato;\n  }\n\n  async cargarListas() {\n    try {\n      this.listaTipo = this.personaPipe.mapaTipo;\n      this.listaEstado = this.generalPipe.LISTA_ACTIVO;\n      this.listaMarcacionPortal = this.personaPipe.mapaTipoMarcacion.sort((a, b) => a.nombre.localeCompare(b.nombre));;\n      this.listaTipoHorario = [];\n      this.listaTipoHorario = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoHorarioDTO', null, false, { empresa: (await this.saraappservice.getEmpresa()).empresa, organizacion: (await this.saraappservice.getEmpresa()).organizacion, tipo: this.jornadaPipe.SEMANA }));\n      this.listaTipoLiquidacion = [];\n      this.listaTipoLiquidacion = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoLiquidacionTiempoDTO', null, false, { empresa: (await this.saraappservice.getEmpresa()).empresa, organizacion: (await this.saraappservice.getEmpresa()).organizacion }));\n      this.listaTipoSitio = this.personaPipe.mapaTipoSitio;\n      this.listaGrupo = [];\n      this.listaGrupo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { modoParametro: (await this.saraappservice.getEmpresa()).modoCompensacion, tipo: 'GRUPO' }));\n      this.listaEstacionTrabajo = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'ESTAC' }));\n      this.listaTipoLabor = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('CodigoBaseTiempoDTO', null, false, { tipo: 'TIPLA' }));\n      this.listaSitio = [];\n      this.listaSitio = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('SitioSaraDTO', null, false, { empresa: (await this.saraappservice.getEmpresa()).empresa }));\n      if (!this.nuevo) {\n        this.persona = await this.generalService.queryForObject(new GeneralModel('PersonaDTO', null, false, { llaveTabla: this.persona.llaveTabla })).toPromise();\n        this.persona.fechaIngreso = this.persona.fechaIngreso ? new Date(this.persona.fechaIngreso) : null;\n        this.persona.fechaRetiro = this.persona.fechaRetiro ? new Date(this.persona.fechaRetiro) : null;\n        this.persona.fechaDesde = this.persona.fechaDesde ? new Date(this.persona.fechaDesde) : null;\n        this.persona.fechaTermina = this.persona.fechaTermina ? new Date(this.persona.fechaTermina) : null;\n      }\n    } catch (error) {\n    }\n  }\n\n  cargarMenu() {\n    this.items = [\n      {\n        label: 'Detalle',\n        expanded: true,\n        icon: 'glyphicons glyphicons-sort-by-attributes-alt',\n        items: [\n          {\n            label: this.translateService.instant('persona'),\n            icon: 'glyphicons glyphicons-user',\n            command: (event) => {\n              this.panel = 'persona';\n            },\n            visible: true\n          },\n          {\n            label: this.translateService.instant('sitiotrabajo'),\n            icon: 'glyphicons glyphicons-industrial-zone',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarSitios();\n            },\n            visible: this.sitiosMultiples && !this.nuevo\n          },\n          {\n            label: this.translateService.instant('dispositivo'),\n            icon: 'glyphicons glyphicons-fingerprint',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarDispositivo();\n            },\n            visible: this.isFuncional() && this.relojPropio && !this.nuevo\n          },\n          {\n            label: this.translateService.instant('funciones'),\n            icon: 'glyphicons glyphicons-cogwheels',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.verFunciones();\n            },\n            visible: !this.nuevo\n          },\n          {\n            label: this.translateService.instant('trasladotemporal'),\n            icon: 'glyphicons glyphicons-industrial-zone',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.verTrasladoTemporal();\n            },\n            visible: !this.nuevo\n          },\n          {\n            label: this.translateService.instant('novedadempleado'),\n            icon: 'glyphicons glyphicons-magic',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.verNovedadEmpleado();\n            },\n            visible: this.empleado != null\n          }\n        ]\n      },\n      {\n        label: 'Tiempos',\n        expanded: true,\n        icon: 'glyphicons glyphicons-stopwatch',\n        visible: !this.nuevo,\n        items: [\n          {\n            label: this.translateService.instant('programacion'),\n            icon: 'glyphicons glyphicons-calendar',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarProgramacion();\n            },\n            visible: !this.externo\n          },\n          {\n            label: this.translateService.instant('jornada'),\n            icon: 'glyphicons glyphicons-clock',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarJornada();\n            },\n            visible: !this.externo\n          },\n          {\n            label: this.translateService.instant('concepto') + 's',\n            icon: 'glyphicons glyphicons-send-to-back',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarConceptos();\n            },\n            visible: true\n          },\n          {\n            label: this.translateService.instant('calendario'),\n            icon: 'glyphicons glyphicons-calendar',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.verCalendario();\n            },\n            visible: this.controlFuncionalidad.getControlFuncionalidad('perjor:verCalendario') && !this.externo && this.persona.tipo == this.personaPipe.PROGRAMACION\n          },\n          {\n            label: this.translateService.instant('reloj'),\n            icon: 'glyphicons glyphicons-clock',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarReloj();\n            },\n            visible: true\n          }\n        ]\n      },\n      {\n        label: 'Históricos',\n        expanded: true,\n        icon: 'glyphicons glyphicons-repeat',\n        visible: this.controlFuncionalidad.getControlFuncionalidad('perconv:guardar') && !this.nuevo,\n        items: [\n          {\n            label: this.translateService.instant('historicoprogramacion'),\n            icon: 'glyphicons glyphicons-calendar',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarProgramacionHistorico();\n            },\n            visible: this.isFuncional()\n          },\n          {\n            label: this.translateService.instant('historicoreloj'),\n            icon: 'glyphicons glyphicons-clock',\n            command: (event) => {\n              this.opcionSeleccionada = event.item.label;\n              this.iniciarJornadaHistorico();\n            },\n            visible: this.isFuncional()\n          },\n        ]\n      }\n    ]\n  }\n\n  async iniciarProgramacion() {\n    this.panel = 'programacion';\n    this.programacion = true;\n    await this.utilService.sleep(100);\n    this.programacionPersona.cargar(this.persona);\n  }\n\n  async iniciarJornada() {\n    this.panel = 'jornada';\n    this.jornada = true;\n    await this.utilService.sleep(50);\n    this.jornadaPersona.cargar(this.persona).then(data => { });\n  }\n\n  async iniciarConceptos() {\n    this.panel = 'concepto';\n    this.concepto = true;\n    await this.utilService.sleep(50);\n    this.conceptoPersona.cargar(this.persona).then(data => { });\n  }\n\n  async iniciarReloj() {\n    this.panel = 'reloj';\n    this.reloj = true;\n    await this.utilService.sleep(50);\n    this.relojPersona.cargar(this.persona, this.eventoJornadaPipe.ORIGEN_TIEMPOS).then(data => { });\n  }\n\n  iniciarSitios() {\n    this.panel = 'sitio';\n    this.sitioTrabajo = true;\n  }\n\n  iniciarDispositivo() {\n    this.panel = 'dispositivo';\n    this.dispositivos = true;\n  }\n\n  async iniciarProgramacionHistorico() {\n    this.panel = 'programacionhistorico';\n    this.historicoPrograma = true;\n    await this.utilService.sleep(50);\n    this.historicoProgramacion.cargar(this.persona).then(data => { });\n  }\n\n  async iniciarJornadaHistorico() {\n    this.panel = 'relojpersonahistorico';\n    this.historicoReloj = true;\n    await this.utilService.sleep(50);\n    this.historicoRelojPersona.cargar(this.persona).then(data => { });\n  }\n\n  iniciarConvenios() {\n    this.panel = 'convenios';\n    this.convenios = true;\n  }\n\n  async verTrasladoTemporal() {\n    this.panel = 'trasladotemporal';\n    this.trasladoTemporal = true;\n    await this.utilService.sleep(50);\n    this.trasladoPersona.cargar(this.persona).then(data => { });\n  }\n\n  async verCalendario() {\n    this.calendario = true;\n    this.panel = 'sitioPersona';\n    await this.utilService.sleep(50);\n    this.sitioPersonaCalendario.inicializar(this.persona, 'calendariopersona', null).then(data => { });\n  }\n\n  async verFunciones() {\n    this.funciones = false;\n    let puestoTrabajo = new PuestoTrabajoModel();\n    let lista: any = [];\n    lista = await this.puestoTrabajoService.traerListaPuesto({ cedula: this.persona.hojaVida }).toPromise();\n    if (lista.length == 0) {\n      this.toastService.showWarning('Puesto de trabajo activos no encontrados.');\n      this.panel = 'persona'\n      return;\n    }\n    if (lista.length == 1) {\n      this.panel = 'funciones';\n      this.funciones = true;\n      puestoTrabajo = lista[0];\n      let perfilFuncion = new PerfilFuncionModel();\n      perfilFuncion.llaveTabla = puestoTrabajo.perfilFuncion;\n      perfilFuncion = await this.generalService.queryForObject(new GeneralModel('PerfilFuncionDTO', null, false, perfilFuncion)).toPromise();\n      this.funcionTra.init(perfilFuncion, false, false);\n    } else {\n      this.seleccionPuestoTrabajo(lista);\n    }\n  }\n\n  async seleccionPuestoTrabajo(listaPuesto: any) {\n    await this.utilService.sleep(50);\n    this.popupPuestoTrabajo.codigoUnidad = null;\n    this.popupPuestoTrabajo.buscar(listaPuesto);\n  }\n\n  async seleccionaPuestoTrabajo(puesto) {\n    this.panel = 'funciones';\n    this.funciones = true;\n    let puestoTrabajoDTO: PuestoTrabajoModel = new PuestoTrabajoModel();\n    puestoTrabajoDTO = Object.assign({}, puesto);\n    let perfilFuncion: PerfilFuncionModel = new PerfilFuncionModel();\n    perfilFuncion.llaveTabla = puestoTrabajoDTO.perfilFuncion;\n    perfilFuncion = await this.generalService.queryForObject(new GeneralModel('PerfilFuncionDTO', null, false, perfilFuncion)).toPromise();\n    this.funcionTra.init(perfilFuncion, true, true);\n    this.funcionTra.nuevo = false;\n  }\n\n\n  async verNovedadEmpleado() {\n    this.novedad = true;\n    this.panel = 'novedadempleado';\n    await this.utilService.sleep(50);\n    this.novedadPersona.origenEmpleado = false;\n  }\n\n  cambiarTipoSitio(sitio) {\n    if (sitio.value == null) {\n      return\n    }\n    this.persona.tipoSitio = sitio.value;\n    this.cargarMenu();\n  }\n\n  async cargarPersonaExterna(llave: string, labelButton: string, indexOrigen?: number) {\n    this.inicializar();\n    this.indesxDestino = indexOrigen;\n    this.labelButton = labelButton;\n    try {\n      this.nuevo = false;\n      this.externo = true;\n      let comodin: PersonaModel = new PersonaModel();\n      comodin.llaveTabla = llave;\n      comodin = await this.generalService.queryForObject(new GeneralModel('PersonaDTO', null, false, comodin)).toPromise();\n      this.traerPersona(comodin);\n    } catch (error) {\n    }\n  }\n\n  async cargarPersona(personaDTO: PersonaModel, isNew: boolean) {\n    this.inicializar();\n    this.nuevo = isNew;\n    this.externo = false;\n    this.traerPersona(personaDTO);\n    this.utilService.resizeWindowIFrame();\n  }\n\n  async traerPersona(personaDTO: PersonaModel) {\n    this.persona = personaDTO;\n    if (this.persona.tipoFiltro == null) {\n      this.persona.tipoFiltro = this.personaPipe.UNICO;\n    }\n    this.pin = null;\n    if (!this.nuevo) {\n      if (personaDTO.tipoVinculacion != null) {\n        this.persona.tipoVinculacion = personaDTO.tipoVinculacion.trim();\n      }\n    } else {\n      this.persona.estado = this.personaPipe.ACTIVO;\n    }\n    this.traerEmpleado();\n    if (!this.sitiosMultiples) {\n      this.persona.tipoSitio = this.personaPipe.UNICO;\n    }\n    this.persona.fechaIngreso = this.persona.fechaIngreso ? new Date(this.persona.fechaIngreso) : null;\n    this.persona.fechaRetiro = this.persona.fechaRetiro ? new Date(this.persona.fechaRetiro) : null;\n    this.persona.fechaDesde = this.persona.fechaDesde ? new Date(this.persona.fechaDesde) : null;\n    this.persona.fechaTermina = this.persona.fechaTermina ? new Date(this.persona.fechaTermina) : null;\n    this.pin = this.persona.pin && this.persona.pin !== Constantes.CONSTANTE_SI && this.persona.pin !== Constantes.CONSTANTE_NO && this.persona.pin !== 'P' && this.relojPropio ? this.encriptadorBasicoService.desencriptar(this.persona.pin) : null;\n    this.cargarListas();\n    this.cargarMenu();\n    this.panel = 'persona';\n    this.utilService.resizeWindowIFrame();\n  }\n\n  async traerEmpleado() {\n    this.empleado = null;\n    if (this.persona.empresa == null || this.persona.contrato == null) {\n      return;\n    }\n    if (this.persona.contrato == 0) {\n      return;\n    }\n    this.empleado = new EmpleadoModel();\n    this.empleado.empresa = this.persona.empresa;\n    this.empleado.contrato = this.persona.contrato;\n    try {\n      this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, this.empleado)).toPromise();\n    } catch (error) {\n      this.empleado = null;\n    }\n  }\n\n  showEliminarConfirmDialog(): void {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_ELIMINAR_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.eliminarRegistro();\n      },\n      reject: () => {\n      }\n    });\n  };\n\n  async eliminarRegistro() {\n    if (this.persona != null) {\n      if ((await this.generalService.delete(new GeneralModel('PersonaDTO', null, false, this.persona)).toPromise()) <= 0) {\n        this.toastService.showError(this.generalPipe.MENSAJE_ELIMINAR_NO);\n        return;\n      }\n      this.toastService.showSuccess(this.generalPipe.MENSAJE_ELIMINAR);\n      this.regresarLista();\n    }\n  }\n\n  async guardar() {\n    this.clickGuardar = true;\n    if (!this.validarCampos()) {\n      this.toastService.showError('Faltan campos obligatorios');\n      return;\n    }\n    try {\n      if (this.utilService.isNotBlank(this.pin) && this.relojPropio) {\n        this.persona.pin = this.encriptadorBasicoService.encriptar(this.pin);\n      }\n      if (this.nuevo) {\n        this.persona.llaveTabla = this.utilService.generarLlave();\n        await this.generalService.crearRegistro(new GeneralModel('PersonaDTO', null, false, this.persona)).toPromise();\n        this.toastService.showSuccess(this.generalPipe.MENSAJE_GUARDAR);\n        this.nuevo = false;\n        this.clickGuardar = false;\n        this.cargarPersona(this.persona, false);\n        await this.generalService.procedure(new GeneralModel('PersonaDTO', 'Persona.procesoMarcacionIngreso', false, { llaveTabla: this.persona.llaveTabla })).toPromise();\n      } else {\n        if (this.persona.fechaIngreso != null) {\n          this.persona.fechaDesde = new Date(this.persona.fechaIngreso);\n          this.persona.fechaTermina = this.persona.fechaRetiro ? new Date(this.persona.fechaRetiro) : null;\n        }\n        if ((await this.generalService.update(new GeneralModel('PersonaDTO', null, false, this.persona)).toPromise()) <= 0) {\n          this.toastService.showError(this.generalPipe.MENSAJE_ACTUALIZAR_NO);\n          return null;\n        }\n        this.toastService.showSuccess(this.generalPipe.MENSAJE_ACTUALIZAR);\n        this.clickGuardar = false;\n      }\n      this.nuevo = false;\n      this.traerPersona(this.persona);\n    } catch (error) {\n    }\n  }\n\n  public validarCampos(): boolean {\n    let valido: boolean = true;\n    valido = valido && this.utilService.validarCampoObligatorio(this.persona.hojaVida);\n    valido = valido && this.utilService.validarCampoObligatorio(this.persona.tipo);\n    if (this.persona.tipo == this.personaPipe.FIJO) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.persona.tipoHorario);\n    }\n    valido = valido && this.utilService.validarCampoObligatorio(this.persona.tipoLiquidacion);\n    if (this.sitiosMultiples) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.persona.tipoSitio);\n    }\n    valido = valido && this.utilService.validarCampoObligatorio(this.persona.grupo);\n    valido = valido && this.utilService.validarCampoObligatorio(this.persona.estado);\n    if (this.generalPipe.ESTADO_INACTIVO == this.persona.estado) {\n      valido = valido && this.utilService.validarCampoObligatorio(this.persona.fechaTermina);\n    }\n    return valido;\n  }\n\n  public regresarLista() {\n    this.regresar.emit({ procesoActualiza: true, indexDestino: this.indesxDestino, llaveTabla: 'detallePersona' });\n  }\n\n  isFuncional(): boolean {\n    return this.authService.getTokenKey('tipoLogin') == 'U';\n  }\n\n  public isEditable() {\n    return this.persona != null && this.persona.empresa != null;\n  }\n\n  onFocus(event: Event) {\n    event.preventDefault();\n    this.calendar.hideOverlay();\n  }\n\n  allowOnlyNumbers(event: KeyboardEvent) {\n    const charCode = event.which ? event.which : event.keyCode;\n    // Permitir solo números (charCode de 48 a 57 son los números del 0 al 9)\n    if (charCode < 48 || charCode > 57) {\n      event.preventDefault();\n    }\n  }\n\n  // Método para limitar el input a 10 caracteres\n  enforceMaxLength(event: any) {\n    if (event.target.value.length > 10) {\n      event.target.value = event.target.value.slice(0, 10);  // Cortar el exceso\n    }\n  }\n\n  // Método para prevenir la escritura si el largo supera los 10 dígitos\n  preventExcess(event: KeyboardEvent) {\n    const inputValue: string = (event.target as HTMLInputElement).value;\n    // Si ya hay 10 caracteres, no permitir más entradas\n    if (inputValue.length >= 10 && event.key !== 'Backspace' && event.key !== 'Delete') {\n      event.preventDefault();\n    }\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n<div [class]=\"authService.getTokenKey('aplicacion') !== '10' ? 'flex justify-content-between align-items-center mb-2' : 'flex justify-content-end align-items-center mb-2'\">\n    @if(authService.getTokenKey('aplicacion') !== '10'){\n    <h1 class=\"mb-2\">{{'listado' | translate}} {{'persona' | translate}}</h1>\n    }\n    <button pButton pRipple (click)=\"regresarLista()\" label=\"{{labelButton | translate}}\" icon=\"pi pi-chevron-left\"\n        class=\"p-button-text font-semibold flex-shrink-0\"></button>\n</div>\n<div class=\"Inputgroup-borde mt-0\">\n    <!-- Menu Superior -->\n    <p-menubar [model]=\"items\" class=\"menu-accion-sara flex mb-3\"><label>Menú</label></p-menubar>\n    <h5 *ngIf=\"panel === 'persona'\">{{'persona' | translate}}</h5>\n    <div id=\"id_persona\" class=\"card p-4 mt-3\" *ngIf=\"panel === 'persona'\">\n        <h5><i class='glyphicons glyphicons-user'></i>{{'detalle' | translate}} {{'persona' | translate}}</h5>\n        <div class=\"contenedor\">\n            <div class=\"Inputgroup\">\n                <div class=\"p-fluid grid mb-1\">\n                    <!-- IDENTIFICACION -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!externo\">\n                        <app-input-helper-hoja-vida #hojaVida [consulta]=\"nombreConsulta\"\n                            [cantidadConsulta]=\"cantidadConsulta\" [filtroRolCliente]=\"filtroRolCliente\"\n                            [readonly]=\"false\" [label]=\"persona.hojaVida ? persona.hojaVida.toString() : ''\"\n                            [header]=\"this.translateService.instant('identificacion')+' *'\"\n                            [(ngModel)]=\"persona.hojaVida\" [ocultarBtnLimpiar]=\"false\"\n                            [booleano]=\"persona.hojaVida == null\" (onSelected)=\"verPopupHoja($event)\">\n                        </app-input-helper-hoja-vida>\n                    </div>\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"externo\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"identificacion\" [(ngModel)]=\"persona.hojaVida\" [disabled]=\"true\">\n                            <label htmlFor=\"identificacion\">{{'identificacion' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- NOMBRE -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"nombre\" [(ngModel)]=\"persona.nombresPersona\" [disabled]=\"true\">\n                            <label htmlFor=\"nombre\">{{'nombre' | translate}}s </label>\n                        </span>\n                    </div>\n                    <!-- EMPRESA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"empresa\" [(ngModel)]=\"persona.nombreEmpresa\" [disabled]=\"true\">\n                            <label htmlFor=\"empresa\">{{'empresa' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- CONTRATO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <app-input-helper-empleado-boton [(ngModel)]=\"persona.contrato\"\n                            (onSelected)=\"verPopupEmpleado($event)\"\n                            [label]=\"persona.contrato  ? persona.contrato.toString() : ''\"\n                            [filtroPorCedula]=\"persona.hojaVida\" [nombreInput]=\"'Contrato'\" [mostrarX]=\"true\">\n                        </app-input-helper-empleado-boton>\n                    </div>\n                    <!-- INGRESO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"persona.contrato != null\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"persona.fechaIngreso\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [disabled]=\"true\"></p-calendar>\n                            <label htmlFor=\"ingreso\">{{'ingreso' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- RETIRO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"persona.contrato != null\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"persona.fechaRetiro\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\" [disabled]=\"true\"></p-calendar>\n                            <label htmlFor=\"retiro\">{{'retiro' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- DESDE -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"persona.contrato == null\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"persona.fechaDesde\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\"></p-calendar>\n                            <label htmlFor=\"fechaDesde\">{{'desde' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- TIPO VINCULACION -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"tipovinculacion\" [(ngModel)]=\"persona.tipoVinculacion\"\n                                [disabled]=\"true\">\n                            <label htmlFor=\"tipovinculacion\">{{'tipovinculacion' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- CARGO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <input pInputText id=\"cargo\" [(ngModel)]=\"persona.nombreCargo\" [disabled]=\"true\">\n                            <label htmlFor=\"cargo\">{{'cargo' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- TIPO TURNO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"tipo\" [options]=\"listaTipo\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                                [(ngModel)]=\"persona.tipo\" [autoDisplayFirst]=\"false\" [disabled]=\"externo\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.tipo) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.tipo) && clickGuardar\">\n                            </p-dropdown>\n                            <label htmlFor=\"tipo\">{{'tipoturno' | translate}} * </label>\n                        </span>\n                    </div>\n                    <!-- TIPO HORARIO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"persona.tipo == personaPipe.FIJO\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"tipoHorario\" [options]=\"listaTipoHorario\" optionLabel=\"label\"\n                                optionValue=\"key\" [(ngModel)]=\"persona.tipoHorario\" [autoDisplayFirst]=\"false\"\n                                [disabled]=\"externo\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.tipoHorario) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.tipoHorario) && clickGuardar\">\n                            </p-dropdown>\n                            <label htmlFor=\"tipoHorario\">{{'tipohorario' | translate}} * </label>\n                        </span>\n                    </div>\n                    <!-- TIPO LIQUIDACION -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"tipoLiquidacion\" [options]=\"listaTipoLiquidacion\" optionLabel=\"label\"\n                                optionValue=\"key\" [(ngModel)]=\"persona.tipoLiquidacion\" [autoDisplayFirst]=\"false\"\n                                [disabled]=\"externo\" [disabled]=\"externo\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.tipoLiquidacion) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.tipoLiquidacion) && clickGuardar\">\n                            </p-dropdown>\n                            <label htmlFor=\"tipoLiquidacion\">{{'tipoliquidacion' | translate}} * </label>\n                        </span>\n                    </div>\n                    <!-- GRUPO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"grupo\" [options]=\"listaGrupo\" optionLabel=\"label\" optionValue=\"key\"\n                                [(ngModel)]=\"persona.grupo\" [autoDisplayFirst]=\"false\" [disabled]=\"externo\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.grupo) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.grupo) && clickGuardar\">\n                            </p-dropdown>\n                            <label htmlFor=\"grupo\">{{'grupo' | translate}} * </label>\n                        </span>\n                    </div>\n                    <!-- TIPO SITIO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"sitiosMultiples\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"tipositio\" [options]=\"listaTipoSitio\" optionLabel=\"nombre\"\n                                optionValue=\"codigo\" [(ngModel)]=\"persona.tipoSitio\" [autoDisplayFirst]=\"false\"\n                                [disabled]=\"externo\" (onChange)=\"cambiarTipoSitio($event)\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.tipoSitio) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.tipoSitio)&& clickGuardar\">\n                            </p-dropdown>\n                            <label htmlFor=\"tipositio\">{{'tipositio' | translate}} * </label>\n                        </span>\n                    </div>\n                    <!-- SITIO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"sitio\" [options]=\"listaSitio\" optionLabel=\"label\" optionValue=\"key\"\n                                [(ngModel)]=\"persona.sitio\" [autoDisplayFirst]=\"false\" [disabled]=\"externo\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.sitio) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.sitio) && clickGuardar\">\n                            </p-dropdown>\n                            <label htmlFor=\"sitio\" *ngIf=\"persona.tipoSitio == 'U'\">{{'sitio' | translate}} * </label>\n                            <label htmlFor=\"sitio\" *ngIf=\"persona.tipoSitio != 'U'\">{{'sitioadministracion' |\n                                translate}} *\n                            </label>\n                        </span>\n                    </div>\n                    <!-- ESTACION TRABAJO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"estacionTrabajo\" [options]=\"listaEstacionTrabajo\" optionLabel=\"label\"\n                                optionValue=\"key\" [(ngModel)]=\"persona.estacionTrabajo\" [autoDisplayFirst]=\"false\">\n                            </p-dropdown>\n                            <label htmlFor=\"estacionTrabajo\">{{'estaciontrabajo' | translate}} </label>\n                        </span>\n                    </div>\n                    <!-- PIN -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"relojPropio\">\n                        <span class=\"p-float-label right-eye\">\n                            <p-password [(ngModel)]=\"pin\" [toggleMask]=\"true\" [feedback]=\"false\"\n                                [disabled]=\"!isEditable()\" (input)=\"enforceMaxLength($event)\"\n                                (keypress)=\"allowOnlyNumbers($event)\" (keydown)=\"preventExcess($event)\"\n                                maxlength=\"10\"></p-password>\n                            <label htmlFor=\"pin\">{{'pin' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- RELOJ -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"!relojPropio\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"reloj\" [options]=\"listaMarcacionPortal\" optionLabel=\"nombre\"\n                                optionValue=\"codigo\" [(ngModel)]=\"persona.pin\" [autoDisplayFirst]=\"false\">\n                            </p-dropdown>\n                            <label htmlFor=\"reloj\">{{'reloj' | translate}}</label>\n                        </span>\n                    </div>\n                    <!-- ESTADO -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\">\n                        <span class=\"p-float-label\">\n                            <p-dropdown inputId=\"estado\" [options]=\"listaEstado\" optionLabel=\"nombre\"\n                                optionValue=\"codigo\" [(ngModel)]=\"persona.estado\" [autoDisplayFirst]=\"false\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.estado) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.estado) && clickGuardar\"\n                                [disabled]=\"externo\">\n                            </p-dropdown>\n                            <label htmlFor=\"estado\">{{'estado' | translate}} *</label>\n                        </span>\n                    </div>\n                    <!-- FECHA TERMINA -->\n                    <div class=\"field col-12 md:col-6 lg:col-4\" *ngIf=\"persona.estado == 'I'\">\n                        <span class=\"p-float-label\">\n                            <p-calendar [(ngModel)]=\"persona.fechaTermina\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\"\n                                [class.ng-dirty]=\"!utilService.validarCampoObligatorio(persona.fechaTermina) && clickGuardar\"\n                                [class.ng-invalid]=\"!utilService.validarCampoObligatorio(persona.fechaTermina) && clickGuardar\"></p-calendar>\n                            <label htmlFor=\"fechaTermina\">{{'fechatermina' | translate}} *</label>\n                        </span>\n                    </div>\n                </div>\n                <div class=\"flex justify-content-end\">\n                    <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n                        *ngIf=\"nuevo && controlFuncionalidad.getControlFuncionalidad('perjor:guardar')\"\n                        icon=\"glyphicons glyphicons-floppy-save\" label=\"{{'link_guardar' | translate}}\"\n                        (click)=\"guardar()\">\n                    </button>\n                    <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n                        *ngIf=\"!nuevo && controlFuncionalidad.getControlFuncionalidad('perjor:guardar')\"\n                        icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"\n                        (click)=\"guardar()\">\n                    </button>\n                    <button pButton pRipple class=\"ml-2 p-button-outlined\"\n                        *ngIf=\"!nuevo && controlFuncionalidad.getControlFuncionalidad('perjor:eliminar') && !externo\"\n                        icon=\"glyphicons glyphicons-bin\" label=\"{{'link_eliminar' | translate}}\"\n                        (click)=\"showEliminarConfirmDialog()\">\n                    </button>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div *ngIf=\"panel !== 'persona'\">\n        <div class=\"card p-4 mt-5 mb-3\">\n            <h5><i class='glyphicons glyphicons-user'></i>{{'detalle' | translate}} {{'persona' | translate}}</h5>\n            <div class=\"p-fluid grid\">\n                <!-- IDENTIFICACION -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"identificacion\" [(ngModel)]=\"persona.hojaVida\" [disabled]=\"true\">\n                        <label htmlFor=\"identificacion\">{{'identificacion' | translate}} </label>\n                    </span>\n                </div>\n                <!-- NOMBRES -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"nombre\" [(ngModel)]=\"persona.nombresPersona\" [disabled]=\"true\">\n                        <label htmlFor=\"nombre\">{{'nombre' | translate}}s </label>\n                    </span>\n                </div>\n                <!-- EMPRESA -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"empresa\" [(ngModel)]=\"persona.nombreEmpresa\" [disabled]=\"true\">\n                        <label htmlFor=\"empresa\">{{'empresa' | translate}} </label>\n                    </span>\n                </div>\n                <!-- CONTRATO -->\n                <div class=\"field col-12 md:col-6 lg:col-6\">\n                    <span class=\"p-float-label\">\n                        <input pInputText id=\"contrato\" [(ngModel)]=\"persona.contrato\" [disabled]=\"true\">\n                        <label htmlFor=\"contrato\">{{'contrato' | translate}} </label>\n                    </span>\n                </div>\n            </div>\n        </div>\n    </div>\n    <h5 *ngIf=\"panel !== 'persona'\">{{opcionSeleccionada}}</h5>\n    <div id=\"id_dispositivos\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'dispositivo' && dispositivos\">\n        <app-dispositivo-persona #dispositivoPersona [identifica]=\"persona.hojaVida\"></app-dispositivo-persona>\n    </div>\n    <div id=\"id_funciones\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'funciones' && funciones\">\n        <app-funcion-puestra #funcionTra></app-funcion-puestra>\n    </div>\n    <div id=\"id_programacion\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'programacion' && programacion\">\n        <app-programacion-persona #programacionPersona></app-programacion-persona>\n    </div>\n    <div id=\"id_trasladoTemporal\" class=\"card p-4 p-fluid mt-4\"\n        *ngIf=\"panel === 'trasladotemporal' && trasladoTemporal\">\n        <app-listado-traslado-temporal-persona #trasladoPersona></app-listado-traslado-temporal-persona>\n    </div>\n    <div id=\"id_novedadEmpleado\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'novedadempleado' && novedad\">\n        <app-listado-novedad-empleado #novedadPersona [empleado]=\"empleado\"></app-listado-novedad-empleado>\n    </div>\n    <div id=\"id_jornada\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'jornada' && jornada\">\n        <app-jornada-persona #jornadaPersona></app-jornada-persona>\n    </div>\n    <div id=\"id_relojPersona\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'reloj' && reloj\">\n        <app-reloj-persona #relojPersona></app-reloj-persona>\n    </div>\n    <div id=\"id_relojPersonaHistorico\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'relojpersonahistorico'\">\n        <app-reloj-persona-historico #historicoRelojPersona></app-reloj-persona-historico>\n    </div>\n    <div id=\"id_programacionHistorico\" class=\"card p-4 p-fluid mt-4\"\n        *ngIf=\"panel === 'programacionhistorico' && historicoPrograma\">\n        <app-programacion-persona-historico #historicoProgramacion></app-programacion-persona-historico>\n    </div>\n    <div id=\"id_conceptosTiempoPersona\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'concepto' && concepto\">\n        <app-conceptos-tiempo-persona #conceptoPersona></app-conceptos-tiempo-persona>\n    </div>\n    <div id=\"id_sitios\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'sitio' && sitioTrabajo\">\n        <app-sitios-persona [persona]=\"persona\"></app-sitios-persona>\n    </div>\n    <div id=\"id_sitiosCalendario\" class=\"card p-4 p-fluid mt-4\" *ngIf=\"panel === 'sitioPersona' && calendario\">\n        <sitio-persona #sitioPersonaCalendario></sitio-persona>\n    </div>\n    <app-popup-puesto-trabajo #popupPuestoTrabajo\n        (puestoTrabajo)=\"seleccionaPuestoTrabajo($event)\"></app-popup-puesto-trabajo>\n</div>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { PersonaModel } from '../../../models/PersonaModel';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, MenuService, PuntoProcesoCompComponent, UtilsService, cargarmapasGlobal } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { PersonaConsPipe } from '../../../pipes/personaCons.pipe';\nimport { TipoLiquidacionTiempoModel } from '../../../models/TipoLiquidacionTiempoModel';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { DetallePersonaComponent } from '../detalle-persona/detalle-persona.component';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgIf } from '@angular/common';\n\n@Component({\n  selector: 'listado-persona',\n  templateUrl: './listado-persona.page.html',\n  styleUrls: ['./listado-persona.page.scss'],\n  standalone: true,\n  imports: [NgIf, FormsModule, ReactiveFormsModule, InputHelperHojaVidaComponent, InputTextModule, DropdownModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DetallePersonaComponent, TranslateModule, FiltroGeneralComponent, PuntoProcesoCompComponent]\n})\nexport class ListadoPersonaPage implements OnInit {\n\n  @ViewChild('filtroItem') filtroItem: FiltroGeneralComponent;\n  @ViewChild('detallePersona') detallePersona: DetallePersonaComponent;\n\n\n  listaTipo = [];\n  listaEstado = [];\n  listaTipoLiquidacionPersona;\n  persona: PersonaModel[] = [];\n  filtro: PersonaModel;\n  hayFiltro: boolean = true;\n  nombreConsulta: string = 'HojaVida.obtenerHojaVida';\n  cantidadConsulta: string = 'HojaVida.cantidadObtenerHojaVida';\n  filtroRolCliente: boolean = false;\n  isLoadingData: boolean = false;\n  columna: string = 'snombre';\n  vistaVisualizar: string = null;\n  filters = [];\n  paginator = {\n    rows: 10,\n    totalRecords: 0\n  }\n  estadoDefecto: string;\n\n  constructor(\n    public authService: AuthService,\n    private generalService: GeneralService,\n    public translateService: TranslateService,\n    private menuService: MenuService,\n    private personaPipe: PersonaConsPipe,\n    private saraappservice: SaraAplicacionService,\n    private cargarMapas: cargarmapasGlobal,\n    private utilsService: UtilsService,\n    public controlFuncionalidad: CargarControlFuncionalidadService\n  ) { }\n\n  async ngOnInit() {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('listado') + ' ' + this.translateService.instant('persona') }]);\n    this.cargarFiltros();\n    this.cargarListas();\n    this.estadoDefecto = this.personaPipe.ACTIVO;\n    await this.utilsService.sleep(100)\n    this.filtroItem?.aplicarFiltros();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  cargarFiltros() {\n    this.filtro = new PersonaModel();\n    this.filters = [\n      {\n        field: 'nombrePersona',\n        header: this.translateService.instant('nombrepersona'),\n        values: (value) => this.filtro.nombresPersona,\n        matchMode: 'equal',\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('identificacion'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'contrato',\n        header: this.translateService.instant('contrato'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'tipo',\n        header: this.translateService.instant('tipoturno'),\n        values: (value) => this.transform(value, 'listaTipo'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'tipoLiquidacion',\n        header: this.translateService.instant('tipoliquidacion'),\n        values: (value) => this.transform(value, 'listaTipoLiqPer'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (value) => this.transform(value, 'listaEstado'),\n        matchMode: 'equal',\n      }\n    ]\n  }\n\n  async cargarPersona(event) {\n    var objetoFiltro = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      login: this.authService.getTokenKey('usuario').trim(),\n      empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      estado: event.filters['estado'] ? event.filters['estado'].value : this.estadoDefecto,\n      documento: event.filters['documento'] ? event.filters['documento'].value : null,\n      contrato: event.filters['contrato'] ? event.filters['contrato'].value : null,\n      tipo: event.filters['tipo'] ? event.filters['tipo'].value : null,\n      tipoLiquidacion: event.filters['tipoLiquidacion'] ? event.filters['tipoLiquidacion'].value : null,\n    }\n    this.isLoadingData = true;\n    this.persona = await this.generalService.queryForList(new GeneralModel('PersonaDTO', null, false, objetoFiltro)).toPromise();\n    this.isLoadingData = false;\n    this.persona.forEach(item => {\n      item.nombresPersona = item.nombresPersona.toLowerCase();\n      item.nombresPersona = item.nombresPersona.replace(/\\b\\w/g, l => l.toUpperCase())\n    });\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('PersonaDTO', null, false, objetoFiltro)).toPromise();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async cargarListas() {\n    this.listaEstado = this.personaPipe.mapaEstado;\n    this.listaTipo = this.personaPipe.mapaTipo;\n    this.listaEstado.sort((a, b) => a.nombre.localeCompare(b.nombre));\n    this.listaTipo.sort((a, b) => a.nombre.localeCompare(b.nombre));\n    this.listaTipoLiquidacionPersona = [];\n    let tlt = new TipoLiquidacionTiempoModel();\n    tlt.empresa = (await this.saraappservice.getEmpresa()).empresa;\n    tlt.organizacion = (await this.saraappservice.getEmpresa()).organizacion;\n    this.listaTipoLiquidacionPersona = await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoLiquidacionTiempoDTO', null, false, tlt));\n  }\n\n  transform(value: any, ...args: any[]): any {\n    let result = value\n    if (args[0] == 'listaEstado') { this.listaEstado.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n    if (args[0] == 'listaTipo') { this.listaTipo.forEach(data => { if (data.codigo === value) { result = data.nombre } }); };\n    if (args[0] == 'listaTipoLiqPer') { this.listaTipoLiquidacionPersona.forEach(data => { if (data.key === value) { result = data.label } }); };\n    return result;\n  }\n\n  async cargarListaFiltros(event) {\n    var chipNombre = this.filtroItem.chips.filter(data => data.field == 'nombrePersona')\n    var chipDocumento = this.filtroItem.chips.filter(data => data.field == 'documento')\n    if (event['nombrePersona'] && chipDocumento.length == 0 && !this.filtroItem.panel.overlayVisible) {\n      this.filtroItem.chips = this.filtroItem.chips.filter(chip => chip.field !== 'nombrePersona')\n      this.filtroItem.removeChip(chipNombre[0]);\n      this.filtro = new PersonaModel();\n      return;\n    }\n    if (!this.filtroItem.isApply) {\n      if (this.filtroItem.chips.length == 0) {\n        this.filtro = new PersonaModel();\n        this.estadoDefecto = null;\n      }\n      if (this.filtroItem.chips.filter(chip => chip.field == 'nombrePersona').length == 0) {\n        this.filtro.nombresPersona = null;\n      };\n    }\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async verPersonaAction(routing) {\n    this.vistaVisualizar = 'detalle';\n    let persona: PersonaModel = routing.data;\n    await this.utilsService.sleep(100);\n    this.detallePersona.cargarPersona(persona, false);\n  }\n\n  async nuevaPersona() {\n    this.vistaVisualizar = 'detalle';\n    let persona = new PersonaModel()\n    await this.utilsService.sleep(100);\n    this.detallePersona.cargarPersona(persona, true);\n  }\n\n  verPopupHoja(hojaVida) {\n    this.filtro.nombresPersona = hojaVida.nombreCompleto ? hojaVida.nombreCompleto : null;\n    this.filtro.hojaVida = hojaVida.identifica ? hojaVida.identifica : null;\n    this.filtro.documento = hojaVida.documento ? hojaVida.documento : null;;\n  }\n\n  filtrarEnter(event) {\n    if (event.key === 'Enter') {\n      this.filtroItem.aplicarFiltros();\n    }\n  }\n\n  public MapEstado(valor): any {\n    let result;\n    this.listaEstado.forEach(data => { if (data.codigo === valor) { result = data.nombre } });\n    return result;\n  }\n\n  async regresar() {\n    this.vistaVisualizar = null;\n    this.filtro = new PersonaModel();\n    await this.utilsService.sleep(500);\n    this.filtroItem?.aplicarFiltros();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  public handleEnterKey(event: any) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n}\n","<div id=\"id_listado_persona\" *ngIf=\"!vistaVisualizar\">\n    <h1 *ngIf=\"authService.getTokenKey('aplicacion') !== '10'\" class=\"mb-2\">{{'listado' | translate}} {{'persona' | translate}}</h1>\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <!-- FILTRO -->\n        <app-filtro-general #filtroItem [filtros]=\"filters\" [datatable]=\"tablaGeneral\"\n            (metodoRegresarAdicional)=\"cargarListaFiltros($event)\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex\">\n                        <!-- NOMBRE PERSONA -->\n                        <div class=\"field mr-2\" style=\"width: 50%;\">\n                            <app-input-helper-hoja-vida #hojaVida [consulta]=\"nombreConsulta\"\n                                [cantidadConsulta]=\"cantidadConsulta\" [filtroRolCliente]=\"filtroRolCliente\"\n                                [readonly]=\"false\" [label]=\"filtro.nombresPersona ? filtro.nombresPersona : ''\"\n                                [header]=\"translateService.instant('nombrepersona')\" formControlName=\"nombrePersona\"\n                                [ocultarBtnLimpiar]=\"true\" (onSelected)=\"verPopupHoja($event)\">\n                            </app-input-helper-hoja-vida>\n                        </div>\n                        <!-- IDENTIFICACION -->\n                        <div class=\"field\" style=\"width: 50%;\">\n                            <div class=\"p-float-label\">\n                                <input pInputText autofocus type=\"text\" formControlName=\"documento\" autocomplete=\"off\"\n                                    [maxlength]=\"16\" [(ngModel)]=\"filtro.documento\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" (keydown)=\"filtrarEnter($event)\" />\n                                <label>{{'identificacion' | translate}}</label>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"flex\">\n                        <!-- CONTRATO -->\n                        <div class=\"field mr-2\" style=\"width: 50%;\">\n                            <div class=\"p-float-label\">\n                                <input type=\"text\" pInputText id=\"contrato\" autocomplete=\"off\"\n                                    formControlName=\"contrato\" maxlength=\"18\"\n                                    oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 18);\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" (keydown)=\"filtrarEnter($event)\">\n                                <label>{{'contrato' | translate}}</label>\n                            </div>\n                        </div>\n                        <!-- TIPO TURNO -->\n                        <div class=\"field\" style=\"width: 50%;\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [showClear]=\"true\"></p-dropdown>\n                                <label>{{'tipoturno' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                    <div class=\"flex\">\n                        <!-- TIPO LIQUIDACION -->\n                        <div class=\"field mr-2\" style=\"width: 50%;\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaTipoLiquidacionPersona\" [autoDisplayFirst]=\"false\"\n                                    formControlName=\"tipoLiquidacion\" optionLabel=\"label\" optionValue=\"key\"\n                                    [showClear]=\"true\"></p-dropdown>\n                                <label>{{'tipoliquidacion' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- ESTADO -->\n                        <div class=\"field\" style=\"width: 50%;\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaEstado\" [autoDisplayFirst]=\"false\" formControlName=\"estado\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [showClear]=\"true\"\n                                    [(ngModel)]=\"estadoDefecto\"></p-dropdown>\n                                <label>{{'estado' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n        <div class=\"flex justify-content-between align-items-center\">\n            <app-punto-proceso-comp [key]=\"'listadoPersonaBean'\" [componente]=\"this\"></app-punto-proceso-comp>\n            <!--boton nueva persona-->\n            <button pButton pRipple (click)=\"nuevaPersona()\" class=\"p-button-secondary font-semibold ml-2\"\n                icon=\"pi pi-plus\" label=\"{{'link_nuevo' | translate}}\"\n                *ngIf=\"controlFuncionalidad.getControlFuncionalidad('perjor:nuevo')\">\n            </button>\n        </div>\n    </div>\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"persona\" [rows]=\"paginator.rows\"\n        [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n        [rowsPerPageOptions]=\"[10, 20, 50]\" [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\"\n        [lazy]=\"true\" (onLazyLoad)=\"cargarPersona($event)\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        (onRowSelect)=\"verPersonaAction($event)\" [loading]=\"isLoadingData\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th style=\"width: 20%;\">{{'identificacion' | translate}}</th>\n                <th style=\"width: 70%;\">{{'funcionario' | translate}}</th>\n                <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-data>\n            <tr [pSelectableRow]=\"data\">\n                <td style=\"width: 20%;\">{{data.hojaVida}}</td>\n                <td style=\"width: 70%;\">{{data.nombresPersona}}</td>\n                <td style=\"width: 10%;\">{{MapEstado(data.estado)}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n<div *ngIf=\"vistaVisualizar == 'detalle'\">\n    <app-detalle-persona #detallePersona (regresar)=\"regresar()\"></app-detalle-persona>\n</div>","import { AuthService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { SelectListCompensa } from '../../../compensacion/services/select-list-compensa.service';\nimport { UnidadOrganizacionalModel } from '../../models/UnidadOrganizacionalModel';\nimport { CargoModel } from '../../models/CargoModel';\nimport { CentroCostoModel } from '../../../compensacion/models/CentroCostoModel';\nimport { PuestoTrabajoPipe } from '../../../../shared/pipes/puestoTrabajo.pipe';\nimport { PuestoTrabajoService } from '../../services/puesto-trabajo.service';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { InputHelperSeleccionCargoComponent } from '../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\nimport { PuestoTrabajoModel } from '../../models/PuestoTrabajoModel';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\n\n@Component({\n  selector: 'app-popup-reclasificacion',\n  standalone: true,\n  imports: [InputTextModule,\n    ButtonDirective,\n    Ripple,\n    NgIf,\n    DialogModule,\n    FormsModule,\n    ReactiveFormsModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    TranslateModule,\n    InputHelperSeleccionZonaCentroComponent,\n    InputHelperUnidadComponent,\n    InputHelperSeleccionCargoComponent,\n    CalendarModule,\n    DropdownModule,\n    ConfirmPopupModule,\n    InputNumberModule,\n    DatePipe,\n    ],\n  templateUrl: './popup-reclasificacion.component.html',\n  styleUrl: './popup-reclasificacion.component.scss'\n})\nexport class PopupReclasificacionComponent {\n  public filtroPuesto: PuestoTrabajoModel = new PuestoTrabajoModel();\n  public puesto: PuestoTrabajoModel = new PuestoTrabajoModel();\n  public listaTipoCambio: any[] = [];\n  public listaLineaCosto: any[] = [];\n  public listaUbicacionFisica: any[] = [];\n  public tipocambio: boolean;\n  public destino: string;\n  public visible: boolean;\n  @Output() recla: EventEmitter<any> = new EventEmitter();\n  clickGuardar: boolean;\n\n  constructor(public utilsService: UtilsService, private notificationBusService: ToastService, private generalSvc: GeneralService, private selectListCompensa: SelectListCompensa, private puestoTrabajoCons: PuestoTrabajoPipe,\n    private authService: AuthService, private puestoSvc: PuestoTrabajoService,public translateService: TranslateService, private generalPipe: GeneralPipe,\n  ) { }\n\n  public async buscar(destino: string, puestoParametro: PuestoTrabajoModel): Promise<void> {\n    this.destino = destino;\n    this.filtroPuesto = puestoParametro;\n    if (this.utilsService.isBlank(puestoParametro.llave)) {\n      return;\n    }\n    // PuestoTrabajoDTO \n    let trabajoDTO = new PuestoTrabajoModel();\n    trabajoDTO.llave = (puestoParametro.llave);\n    this.puesto = await this.generalSvc.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, trabajoDTO)).toPromise();\n    this.listaTipoCambio = await this.selectListCompensa.getListaTipoCambio(\"P\");\n    this.listaLineaCosto = await this.selectListCompensa.getListaLineaCosto();\n    this.listaUbicacionFisica = await this.selectListCompensa.getListaUbicacionFisica();\n    if (this.filtroPuesto.contrato === 0 && this.filtroPuesto.contratoTemporal === 0) {\n      this.tipocambio = false;\n    } else {\n      this.tipocambio = true;\n    }\n    this.mostrarPopup();\n  }\n\n  public setUnidad(aux: UnidadOrganizacionalModel): void {\n    if (aux.unidad != null) {\n      this.puesto.unidad = (aux.unidad);\n      this.puesto.nombreUnidad = (aux.nombreUnidad);\n    }\n  }\n\n  public setCargoPopup(cargoDTO: CargoModel): void {\n    try {\n      this.puesto.nombreCargo = (cargoDTO.descripcion);\n      this.puesto.cargo = (cargoDTO.cargo);\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  public setZonaCentro(centroCostoDTO: CentroCostoModel) {\n    if (centroCostoDTO.descripcion != null) {\n      this.puesto.zonaEconomica = (centroCostoDTO.zonaEconomica);\n      this.puesto.nombreZonaEconomica = (centroCostoDTO.descripcionZona);\n      this.puesto.centroCosto = (centroCostoDTO.centroCosto);\n      this.puesto.nombreCentro = (centroCostoDTO.descripcion);\n\n    }\n  }\n\n  public validar(): boolean {\n    try {\n      let validador = true;\n      this.clickGuardar = true;\n      validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.unidad);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.cargo);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.zonaEconomica);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.centroCosto);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.lineaCosto);\n      validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.ubicacionFisica);\n      if (this.tipocambio) {\n        validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.tipoCambio);\n        validador = validador && this.utilsService.validarCampoObligatorio(this.puesto.ultimaActualizacion);\n      }\n      return validador;\n    } catch (e) {\n      console.error(e);\n      return false;\n    }\n  }\n\n  public async aplicar(): Promise<void> {\n    try {\n      if (this.validar()) {\n        this.clickGuardar = false;\n        if (this.filtroPuesto.unidad == (this.puesto.unidad)) {\n          await this.generalSvc.update(new GeneralModel('PuestoTrabajoDTO', null, false, this.puesto)).toPromise();\n        } else {\n          let max: number = await this.generalSvc.queryForObject(new GeneralModel('PuestoTrabajoDTO', 'PuestoTrabajo.maximoPuestoTrabajo', false, this.puesto)).toPromise();\n          this.puesto.numeroPuesto = (max + 1);\n          this.puesto.responsableUnidad = (Constantes.CONSTANTE_NO);\n          await this.generalSvc.update(new GeneralModel('PuestoTrabajoDTO', null, false, this.puesto)).toPromise();\n          await this.generalSvc.update(new GeneralModel('PuestoTrabajoDTO', 'PuestoTrabajo.reorganizarHijos', false, this.puesto)).toPromise();\n        }\n\n        if (this.filtroPuesto.cedulaOcupa != 0 && this.filtroPuesto.estado == this.puestoTrabajoCons.OCUPADO_Y_NO_DISPONIBLE) {\n          if (this.filtroPuesto.unidad == (this.puesto.unidad) && this.filtroPuesto.cargo == (this.puesto.cargo)) {\n            this.puesto.tipo = (\"Z\");\n          } else {\n            this.puesto.tipo = (\"C\");\n          }\n          this.puesto.usuario = (this.authService.getTokenKey('login'));\n          this.puesto.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n          await this.puestoSvc.reclasificacionPuesto(this.puesto).toPromise();\n        }\n        this.notificationBusService.showInfo(\"Se movio el empleado\");\n        this.recla.emit(this.puesto);\n        this.ocultarPopup();\n      }else{\n        this.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      }\n\n    } catch (e) {\n      console.error(e);\n    }\n  }\n\n  public getFiltroPuesto(): PuestoTrabajoModel {\n    return this.filtroPuesto;\n  }\n  public setFiltroPuesto(filtroPuesto: PuestoTrabajoModel): void {\n    this.filtroPuesto = filtroPuesto;\n  }\n\n\n  public getPuesto(): PuestoTrabajoModel {\n    return this.puesto;\n  }\n\n  public mostrarPopup() {\n    this.visible = true\n  }\n\n  public ocultarPopup() {\n    this.visible = false\n  }\n\n  handleEnterKey(event: any) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n}\n","<p-dialog header=\"{{'link_reclasificacion' | translate}}\" [(visible)]=\"visible\" [style]=\"{width: '42vw'}\" (onHide)=\"ocultarPopup()\"\n    [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n    <div class=\"p-fluid grid\">\n        <!-- TITULAR -->\n        <div class=\"field col-8 md:col-8 lg:col-8\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"titular\" value=\"{{filtroPuesto.contratoOcupa}} - {{filtroPuesto.nombreOcupa}}\"\n                    [disabled]=\"true\">\n                <label for=\"titular\">{{'titular' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- UNIDAD ORGANIZACIONAL -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"nombreUnidad\" autocomplete=\"[false]\" [disabled]=\"true\"\n                    [(ngModel)]=\"filtroPuesto.nombreUnidad\">\n                <label for=\"nombreUnidad\">{{'unidadorganizacional' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- CARGO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"nombreCargo\" autocomplete=\"[false]\" [disabled]=\"true\"\n                    [(ngModel)]=\"filtroPuesto.nombreCargo\">\n                <label for=\"nombreCargo\">{{'cargo' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- ZONA ECONOMICA -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"zonaeconomica\" autocomplete=\"[false]\" [disabled]=\"true\"\n                    [(ngModel)]=\"filtroPuesto.nombreZonaEconomica\">\n                <label for=\"zonaeconomica\">{{'zonaeconomica' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- CENTRO COSTO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"nombreCentro\" autocomplete=\"[false]\" [disabled]=\"true\"\n                    [(ngModel)]=\"filtroPuesto.nombreCentro\">\n                <label for=\"nombreCentro\">{{'centrocosto' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- LINEA COSTO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaLineaCosto\" [(ngModel)]=\"filtroPuesto.lineaCosto\" optionLabel=\"label\"\n                    [disabled]=\"true\" optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"codigo\">{{'lineacosto' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- UBICACION FISICA -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaUbicacionFisica\" [(ngModel)]=\"filtroPuesto.ubicacionFisica\"\n                    optionLabel=\"label\" [disabled]=\"true\" optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"codigo\">{{'lineacosto' | translate}}</label>\n            </span>\n        </div>\n\n        <!-- UNIDAD -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <app-input-helper-unidad [readonly]=\"false\" [label]=\"puesto.nombreUnidad\" (onSelected)=\"setUnidad($event)\"\n                [mostrarX]=\"false\" [header]=\"this.translateService.instant('unidad' | translate) + '*'\" [booleano]=\"!utilsService.validarCampoObligatorio(puesto.nombreUnidad) && (clickGuardar)\"\n                (keydown.enter)=\"handleEnterKey($event)\">\n            </app-input-helper-unidad>\n        </div>\n\n        <!-- CARGO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <app-input-helper-seleccion-cargo [readonly]=\"false\" [label]=\"puesto.nombreCargo\" [booleano]=\"!utilsService.validarCampoObligatorio(puesto.nombreCargo) && (clickGuardar)\"\n                    (onSelected)=\"setCargoPopup($event)\" [header]=\"('cargo' | translate)+'*'\">\n                </app-input-helper-seleccion-cargo>\n\n            </span>\n        </div>\n\n        \n\n        <!-- ZONA CENTRO ECONOMICA -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <app-input-helper-seleccion-zona-centro [readonly]=\"false\" [showDialog]=\"false\" [booleano]=\"!utilsService.validarCampoObligatorio(puesto.nombreZonaEconomica) && (clickGuardar)\"\n                [label]=\"puesto.nombreZonaEconomica\" [labelIntput]=\"'Zona Económica*'\"\n                (onSelected)=\"setZonaCentro($event)\" (keydown.enter)=\"handleEnterKey($event)\" [mostrarZonaLabel]=\"true\">\n            </app-input-helper-seleccion-zona-centro>\n        </div>\n\n        <!-- CENTRO COSTO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <input pInputText id=\"centroCosto_nuevo\" autocomplete=\"[false]\" [disabled]=\"true\"\n                    [(ngModel)]=\"puesto.nombreCentro\">\n                <label for=\"centroCosto_nuevo\">{{'centrocosto' | translate}}*</label>\n            </span>\n        </div>\n\n        <!-- LINEA COSTO -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaLineaCosto\" id=\"lineaCosto_nuevo\" [(ngModel)]=\"puesto.lineaCosto\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(puesto.lineaCosto) && (clickGuardar)\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(puesto.lineaCosto) && (clickGuardar)\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"lineaCosto_nuevo\">{{'lineacosto' | translate}}*</label>\n            </span>\n        </div>\n\n        <!-- UBICACION FISICA -->\n        <div class=\"field col-4 md:col-4 lg:col-4\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaUbicacionFisica\" id=\"ubicacionFisica_nuevo\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(puesto.ubicacionFisica) && (clickGuardar)\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(puesto.ubicacionFisica) && (clickGuardar)\"\n                    [(ngModel)]=\"puesto.ubicacionFisica\" optionLabel=\"label\" optionValue=\"value\"\n                    [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"ubicacionFisica_nuevo\">{{'ubicacionfisica' | translate}}*</label>\n            </span>\n        </div>\n\n        <!-- TIPO -->\n        @if(tipocambio){\n        <div class=\"field col-6 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n                <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" [options]=\"listaUbicacionFisica\" [(ngModel)]=\"filtroPuesto.tipoCambio\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(puesto.tipoCambio) && (clickGuardar)\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(puesto.tipoCambio) && (clickGuardar)\"\n                    optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                </p-dropdown>\n                <label for=\"codigo\">{{'tipo' | translate}}*</label>\n            </span>\n        </div>\n        }\n\n        <!-- FECHA -->\n        @if(tipocambio){\n        <div class=\"field col-6 md:col-6 lg:col-6\">\n            <span class=\"p-float-label\">\n                <p-calendar [(ngModel)]=\"puesto.ultimaActualizacion\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\" appendTo=\"body\" [autoZIndex]=\"false\"\n                [class.ng-dirty]=\"!utilsService.validarCampoObligatorio(puesto.ultimaActualizacion) && (clickGuardar)\"\n                [class.ng-invalid]=\"!utilsService.validarCampoObligatorio(puesto.ultimaActualizacion) && (clickGuardar)\">\n                </p-calendar>\n                <label htmlFor=\"actualizacion_fecha\">{{'fecha' | translate}} *</label>\n            </span>\n        </div>\n        }\n    </div>\n    <div class=\"flex justify-content-between align-content-center\">\n        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"aplicar()\"\n                    icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_aplicar' | translate}}\"></button>\n    </div>\n\n    \n\n</p-dialog>","import { CargoModel } from './../../../models/CargoModel';\nimport { SelectListCompensa } from '../../../../compensacion/services/select-list-compensa.service';\nimport { SaraAplicacionService } from './../../../../../shared/servicios/sara-aplicacion.service';\nimport { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { AuthService, CargarControlFuncionalidadService, EncriptadoBasicoService, GeneralModel, TableColumn, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { EmpleadoModel } from '../../../../compensacion/models/EmpleadoModel';\nimport { ActoCambioEmpleadoModel } from '../../../../actos/models/ActoCambioEmpleadoModel';\nimport { CambioEmpleadoModel } from '../../../../compensacion/models/CambioEmpleadoModel';\nimport { PerfilFuncionModel } from '../../../models/PerfilFuncionModel';\nimport { DatosBasicosEmpresaModel } from '../../../../compensacion/models/DatosBasicosEmpresaModel';\nimport { cargarmapasGlobal } from '../../../../../shared/servicios/cargar-mapas.service';\nimport { UbicacionFisicaModel } from '../../../../compensacion/models/UbicacionFisicaModel';\nimport { PuestoTrabajoPipe } from '../../../../../shared/pipes/puestoTrabajo.pipe';\nimport { UnidadOrganizacionalService } from '../../../services/unidadorganizacional.service';\nimport { MenuItem, PrimeTemplate } from 'primeng/api';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { DescripcionCargoPipe } from '../../../pipes/descripcion-cargo.pipe';\nimport { SelectListEvaluacionesService } from '../../../services/select-list-evaluaciones.service';\nimport { FormBuilder, FormControl, FormGroup, Validators, FormsModule } from '@angular/forms';\nimport { PuestoTrabajoService } from '../../../services/puesto-trabajo.service';\nimport { ParametrosGeneralModel } from '../../../../compensacion/models/ParametrosGeneralModel';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputHelperSeleccionZonaEconomicaComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-economica/input-helper-seleccion-zona-economica.component';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CalendarModule } from 'primeng/calendar';\nimport { NgIf, DatePipe } from '@angular/common';\nimport { TabViewModule } from 'primeng/tabview';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputHelperSeleccionCargoComponent } from '../../../../../shared/componentes/input-helper-seleccion-cargo/input-helper-seleccion-cargo.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CardModule } from 'primeng/card';\nimport { ProgressBarModule } from 'primeng/progressbar';\nimport { ClasificacionModel } from '../../../../compensacion/models/ClasificacionModel';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { PopupReclasificacionComponent } from '../../../popups/popup-reclasificacion/popup-reclasificacion.component';\nimport { CentroCostoModel } from '../../../../compensacion/models/CentroCostoModel';\nimport { InputHelperUnidadComponent } from '../../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { InputHelperPlantaLiderComponent } from '../../../../../shared/componentes/input-helper-planta-lider/input-helper-planta-lider.component';\nimport { InputHelperSeleccionZonaCentroComponent } from '../../../../../shared/componentes/input-helper-seleccion-zona-centro/input-helper-seleccion-zona-centro.component';\n\n@Component({\n  selector: 'app-datos-puesto-trabajo-cont',\n  templateUrl: './datos-puesto-trabajo-cont.component.html',\n  styleUrls: ['./datos-puesto-trabajo-cont.component.scss'],\n  standalone: true,\n  imports: [InputHelperPlantaLiderComponent,InputHelperSeleccionZonaCentroComponent,InputHelperUnidadComponent,CardModule, FormsModule, InputTextModule, InputHelperSeleccionCargoComponent, DropdownModule, TabViewModule, NgIf, CalendarModule, ButtonDirective, Ripple, InputHelperEmpleadoBotonComponent, InputHelperSeleccionZonaEconomicaComponent, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DatePipe, TranslateModule, DescripcionCargoPipe,ProgressBarModule,PopupReclasificacionComponent]\n})\nexport class DatosPuestoTrabajoContComponent implements OnInit {\n\n  @Output() public regresarVista = new EventEmitter\n\n  bloqueaContrato: boolean;\n  bloqueaLinea: boolean;\n  bloqueaCosto: boolean;\n  manejoFlexible: boolean;\n  unidadSeleccion: UnidadOrganizacionalModel = new UnidadOrganizacionalModel();\n  puestoTrabajoDTO: PuestoTrabajoModel = new PuestoTrabajoModel();\n  llaveDepende: string;\n  mensajePuestos: string;\n  listaHistoricoActosAdministrativo: ActoCambioEmpleadoModel[] = [];\n  listaHistoricoCambioEmpleado: CambioEmpleadoModel[] = [];\n  listaPerfilFuncion: PerfilFuncionModel[] = [];\n  listaLineaCostoItem: any[] = [];\n  listaUbicacionFisicaItem: any[] = [];\n  listaEstadoPuestoTrabajoItem: any[] = [];\n  listaReservaPuestoTrabajoItem: any[] = [];\n  listaTipoTemporales: any[] = [];\n  listaCompanero: any;\n  menu: MenuItem[]\n  listaResponsable: [{ codigo: any, nombre: any }, { codigo: any, nombre: any }];\n  creacionPuesto;\n  perfilEmpresa: string;\n  selectPanel: string = null;\n  columnsR: TableColumn[];\n  listaTipoPuestoN: any[] = [];\n  listaTipoPuestoS: any[] = [];\n  listadoTurno: any[] = []\n  listadoTipoPeriodo: any[] = []\n  listadoVinculacionLaboral: any[] = [];\n  listadoRol: any[]= [];\n  formularioPrincipal: FormGroup;\n  formularioDetalle: FormGroup;\n  formularioDatosNomina: FormGroup;\n  activeIndex: number = 0;\n  public urlFoto: string = '';\n  paginatorR = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  paginatorAD = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  paginatorAE = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  loading: boolean;\n  clickGuardar: boolean;\n  temporal: boolean;\n  caminoFoto: any;\n  @ViewChild('popupReclasificacion') popupReclasificacion: PopupReclasificacionComponent;\n  constructor(private generalService: GeneralService, private authService: AuthService, private cargarMapas: cargarmapasGlobal, public puestoTrabajoPipe: PuestoTrabajoPipe, public generalPipe: GeneralPipe, public desCargoPiPe: DescripcionCargoPipe,\n    private unidadOrganizacionalService: UnidadOrganizacionalService, public translateService: TranslateService, private controlFuncionService: CargarControlFuncionalidadService, private selectListEvaluaciones: SelectListEvaluacionesService,\n    private formBuilder: FormBuilder, private puestoTrabajoService: PuestoTrabajoService, private notificationBusService: ToastService, private saraAplicacionService: SaraAplicacionService, private selectListCompensa: SelectListCompensa,public utilsService: UtilsService,\n    private cargarArchivo: CargarArchivosService,private encriptadoBasico: EncriptadoBasicoService) {\n\n  }\n\n  ngOnInit(): void {\n    this.listaResponsable = [{ codigo: this.generalPipe.SI, nombre: 'Es responsable de la Unidad' }, { codigo: this.generalPipe.NO, nombre: 'No es responsable de la Unidad' }];\n    this.selectPanel = 'detalle'\n    this.loadSelectEvaluaciones();\n    this.getListadoTurno();\n    this.getlistadoTipoPeriodo();\n    this.getListadoVinculacionLaboral();\n    this.getListaRoles();\n  }\n\n  async cargarFormularioDatosNomina() { }\n\n  async loadSelectEvaluaciones() {\n    try {\n      this.listaTipoPuestoN = (await this.selectListEvaluaciones.getListaTipoPuestoN()).map(data => ({ value: data.value, label: data.label }));\n      this.listaTipoPuestoS = (await this.selectListEvaluaciones.getListaTipoPuestoS()).map(data => ({ value: data.value, label: data.label }));\n    } catch (error) {\n      console.log(error);\n    }\n\n  }\n\n\n  public cargarDatosPuestoTrabajoNuevo(comodin: UnidadOrganizacionalModel,destino: string){\n\t\ttry {\n      this.loading = true;\n\t\t\t// setDestino(destino);\n\t\t\tthis.creacionPuesto = true;\n\t\t\tthis.bloqueaContrato = false;\n\t\t\tthis.bloqueaLinea = false;\n\t\t\tthis.bloqueaCosto = false;\n\t\t\tthis.temporal = false;\n\t\t\tthis.unidadSeleccion=comodin;\n\t\t\tthis.puestoTrabajoDTO = new PuestoTrabajoModel();\n\t\t\tthis.puestoTrabajoDTO.unidad = (comodin.unidad);\n\t\t\tthis.puestoTrabajoDTO.empresa = (comodin.empresa);\n\t\t\tthis.puestoTrabajoDTO.nombreEmpresa = (comodin.nombreEmpresa);\n\t\t\tthis.puestoTrabajoDTO.nombreUnidad = (comodin.nombreUnidad);\n\t\t\tthis.puestoTrabajoDTO.contrato = (0);\n\t\t\tthis.puestoTrabajoDTO.contratoTemporal = (0);\n\t\t\tthis.puestoTrabajoDTO.cedulaOcupa = (0);\n\t\t\tthis.cargarFlexible();\n\t\t\tthis.listasDatosPuestosTrabajo();\n\t\t\t// setSelectedPanel(\"detalle\");\n      this.utilsService.resizeWindowIFrame();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t\treturn \"cargarDatosPuestoTrabajo\";\n\t}\n\n\n  public async cargarDatosPuestoTrabajo(llavePuesto: string, unidad: UnidadOrganizacionalModel, navegacion: String) {\n    try {\n      await this.cargarHistoricoActosAdministrativos(llavePuesto);\n      await this.cargarHistoricoCambioEmpleado(llavePuesto);\n      await this.cargarListaPerfilFuncion(llavePuesto);\n      this.bloqueaContrato = false;\n      this.bloqueaLinea = false;\n      this.bloqueaCosto = false;\n      this.unidadSeleccion = unidad;\n      this.cargarFlexible();\n      this.puestoTrabajoDTO = new PuestoTrabajoModel();\n      this.puestoTrabajoDTO.llave = llavePuesto;\n      this.puestoTrabajoDTO = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, this.puestoTrabajoDTO)).toPromise();\n      await this.cargarImagenFoto();\n      this.puestoTrabajoDTO.disponible = new Date(this.puestoTrabajoDTO.disponible)\n      this.puestoTrabajoDTO.fechaModificado = new Date(this.puestoTrabajoDTO.fechaModificado)\n      this.puestoTrabajoDTO.creacion = new Date(this.puestoTrabajoDTO.creacion)\n      if (this.puestoTrabajoDTO != null) {\n        this.llaveDepende = this.puestoTrabajoDTO.depende;\n      } else {\n        this.llaveDepende = null;\n      }\n      if (this.puestoTrabajoDTO.facilitador == null) {\n        this.puestoTrabajoDTO.facilitador = Constantes.CONSTANTE_NO;\n      }\n\n      await this.listasDatosPuestosTrabajo();\n\n      this.mensajePuestos = null;\n\n      if (this.puestoTrabajoDTO.contrato != null && this.puestoTrabajoDTO.contrato != 0) {\n        let countPuestrostrabajo = 0;\n        countPuestrostrabajo = await this.generalService.cantidadRegistros(new GeneralModel('PuestoTrabajoDTO', null, false, {\n          empresa: this.puestoTrabajoDTO.empresa,\n          contratoOcupa: this.puestoTrabajoDTO.contrato,\n          puestoAtraer: 'Activos'\n        })).toPromise();\n\n        if (countPuestrostrabajo > 1) {\n          this.mensajePuestos = 'Contrato con m\\u00E1s de un puesto de trabajo'\n          this.utilsService.resizeWindowIFrame()\n          return 'cargarDatosPuestoTrabajo'\n        }\n\n        let counTipoPeriodoEmpleado = 0;\n        if (this.puestoTrabajoDTO.contratoOcupa != 0) {\n          counTipoPeriodoEmpleado = await this.generalService.cantidadRegistros(new GeneralModel('PuestoTrabajoDTO', 'PuestoTrabajo.obtenerCantidadTipoPeriodoPorEmpleado', false, this.puestoTrabajoDTO)).toPromise();\n          if (counTipoPeriodoEmpleado == 0) {\n            this.utilsService.resizeWindowIFrame()\n            this.mensajePuestos = 'Relaci\\u00F3n Empleado/Puesto trabajo incorrecta. Contrato: ' + this.puestoTrabajoDTO.contratoOcupa + ' Cargo: ' + this.puestoTrabajoDTO.cargo + ' Unidad: ' + this.puestoTrabajoDTO.unidad;\n            return 'cargarDatosPuestoTrabajo';\n          }\n        }\n        else if (this.puestoTrabajoDTO.contrato != 0) {\n\n          this.puestoTrabajoDTO.contratoOcupa = this.puestoTrabajoDTO.contrato;\n          let cantidad = await this.generalService.cantidadRegistros(new GeneralModel('PuestoTrabajoDTO', 'PuestoTrabajo.obtenerCantidadTipoPeriodoPorEmpleado', false, this.puestoTrabajoDTO)).toPromise();\n          if (cantidad == 0) {\n            this.utilsService.resizeWindowIFrame()\n            this.mensajePuestos = 'Relaci\\u00F3n Titular Empleado/Puesto trabajo incorrecta. Contrato: ' + this.puestoTrabajoDTO.contrato + ' Cargo: ' + this.puestoTrabajoDTO.cargo + ' Unidad: ' + this.puestoTrabajoDTO.unidad;\n            return 'cargarDatosPuestoTrabajo';\n          }\n        }\n        if (counTipoPeriodoEmpleado == 1) {\n          let comodinEmpleado: EmpleadoModel = new EmpleadoModel();\n          let empleado: EmpleadoModel = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, { empresa: this.puestoTrabajoDTO.empresa, contrato: this.puestoTrabajoDTO.contrato })).toPromise();\n          this.bloqueaContrato = true;\n          if (empleado.lineaCosto.trim().toUpperCase == this.puestoTrabajoDTO.lineaCosto.trim().toUpperCase) {\n            this.bloqueaLinea = true;\n          }\n          if (empleado.centroCosto.trim().toUpperCase == this.puestoTrabajoDTO.centroCosto.trim().toUpperCase &&\n            empleado.zonaEconomica.trim().toUpperCase == this.puestoTrabajoDTO.zonaEconomica.trim().toUpperCase) {\n            this.bloqueaCosto = true;\n          }\n        }\n      }\n    } catch (error) {\n      console.log(error);\n    }\n    this.utilsService.resizeWindowIFrame()\n    return \"cargarDatosPuestoTrabajo\";\n  }\n\n \n\n  cargarImagenFoto() {\n      let propiedad = 'ruta_fotos';\n      let aplicacion = this.authService.getTokenKey('aplicacion');\n      this.caminoFoto = '1019123245'\n      console.log('caminoFoto',this.caminoFoto);\n      \n      try {\n        this.cargarArchivo.descargarArchivo(this.encriptadoBasico.encriptar(this.puestoTrabajoDTO.contrato + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n          this.blobToBase64(blob)        \n        });    \n      } catch (error) {\n      }\n    \n  }\n\n  blobToBase64(blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      this.urlFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n\n  async cargarHistoricoActosAdministrativos(llavePuesto) {\n    try {\n      this.listaHistoricoActosAdministrativo = await this.generalService.queryForList(new GeneralModel('ActoCambioEmpleadoDTO', null, false, { llavePuesto: llavePuesto })).toPromise();\n    } catch (error) {\n\n    }\n  }\n\n  async cargarHistoricoCambioEmpleado(llavePuesto) {\n    try {\n      this.listaHistoricoCambioEmpleado = await this.generalService.queryForList(new GeneralModel('CambioEmpleadoDTO', null, false, { puestoTrabajo: llavePuesto })).toPromise();\n    } catch (error) {\n\n    }\n  }\n\n\n  async cargarListaPerfilFuncion(llavePuesto) {\n    try {\n      this.listaPerfilFuncion = await this.generalService.queryForList(new GeneralModel('PerfilFuncionDTO', null, false, { puestoTrabajo: llavePuesto })).toPromise();\n      this.paginatorR.totalRecords = this.listaPerfilFuncion.length\n    } catch (error) {\n\n    }\n  }\n\n  async cargarFlexible() {\n    this.manejoFlexible = false;\n    let datosBasicos: DatosBasicosEmpresaModel = await this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, { empresa: this.authService.getTokenKey('numeroEmpresa') })).toPromise();\n    if ('S' == datosBasicos.flexible) {\n      this.manejoFlexible = true;\n    }\n  }\n\n  async listasDatosPuestosTrabajo() {\n    try {\n      await this.cargarLineaCosto();\n      this.listaUbicacionFisicaItem = (await this.generalService.queryForList(new GeneralModel('UbicacionFisicaDTO', null, false, new UbicacionFisicaModel())).toPromise()).map((data) =>\n        ({ key: data.ubicacionFisica, label: data.descripcion }));\n      this.listaEstadoPuestoTrabajoItem = this.puestoTrabajoPipe.LISTAESTADOPUESTOTRABAJO;\n      this.listaReservaPuestoTrabajoItem = this.puestoTrabajoPipe.LISTARESERVAPUESTOTRABAJO;\n      this.listaTipoTemporales = this.puestoTrabajoPipe.LISTATIPOTEMPORAL;\n      if (this.puestoTrabajoDTO.unidad == null && this.puestoTrabajoDTO.empresa != null) {\n        this.listaCompanero = await this.unidadOrganizacionalService.selectListPosibleJefe(this.puestoTrabajoDTO).toPromise();\n      }\n    } catch (error) {\n\n    }\n  }\n\n  async cargarLineaCosto() {\n    this.listaLineaCostoItem = (await this.generalService.queryForList(new GeneralModel('LineaCostoDTO', null, false, { empresa: this.authService.getTokenKey('numeroEmpresa') })).toPromise()).map(element => ({ codigo: element.lineaCosto, nombre: element.descripcion + ' - ' + element.lineaCosto }))\n  }\n\n  async regresar() {\n    this.regresarVista.emit;\n  }\n  isPerfilMultiple() {\n    if (this.perfilEmpresa == 'M') {\n      return true;\n    }\n    return true;\n  }\n\n  cargarCargo(event : CargoModel) { \n    this.puestoTrabajoDTO.cargo = (event.cargo);\n\t\tthis.puestoTrabajoDTO.nombreCargo = (event.descripcion);\n  }\n\n  public verificarControl(control) {\n    return this.controlFuncionService.getControlFuncionalidad(control);\n  }\n\n\n  async getListadoTurno() {\n    this.listadoTurno = (await this.generalService.queryForList(new GeneralModel('TurnoDTO', null, false, { modo: (await this.saraAplicacionService.getEmpresa()).modoCompensacion })).toPromise()).map((data) => ({ codigo: data.turno, nombre: data.turno.toString() + ':' + data.descripcion }));\n  }\n\n  async getlistadoTipoPeriodo() {\n    try {\n      this.listadoTipoPeriodo = (await this.generalService.queryForList(new GeneralModel('TipoPeriodoDTO', null, false, { aliasRol: this.authService.getTokenKey('AliasRol'), usuarioLogin: this.authService.getTokenKey('usuario'), empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')) })).toPromise()).map((data) => \n        ({codigo: data.tipo, nombre: data.descripcion}));\n    } catch (error) {\n\n    }\n  }\n\n  async getListadoVinculacionLaboral() {\n    this.listadoVinculacionLaboral = await this.selectListCompensa.getListadoVinculacionLaboral();\n  }\n\n  async getListaRoles() {\n    this.listadoRol = await this.selectListCompensa.getListaRoles(new ClasificacionModel());\n  }\n\n\n  // async actualizarPuestoTrabajo() {\n  //   try {\n  //     this.puestoTrabajoDTO = await this.puestoTrabajoService.actualizarPuestoTrabajo(new ParametrosGeneralModel(null, null, null, { puesto: this.puestoTrabajoDTO, llaveDependeAntes: this.llaveDepende, usuario: this.authService.getTokenKey('usuario') })).toPromise();\n  //     this.notificationBusService.showInfo(Constantes.MENSAJE_ACTUALIZAR)\n  //   } catch (error) {\n\n  //   }\n  // }\n\n  public async actualizarPuestoTrabajo(): Promise<string>{\n\t\ttry {\n\t\t\tif ( this.puestoTrabajoDTO.facilitador == null ) {\n\t\t\t\tthis.puestoTrabajoDTO.facilitador = (Constantes.CONSTANTE_NO);\n\t\t\t}\n      this.clickGuardar = true;\n\t\t\tif (!this.validar()) {\n\t\t\t\tif(this.activeIndex == 0){\n\t\t\t\t\tif(this.validarDetalle()){\n\t\t\t\t\t\tthis.activeIndex = 1;\n\t\t\t\t\t\tthis.validar();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(this.activeIndex == 1){\n\t\t\t\t\tif(this.validarDatosNomina()){\n\t\t\t\t\t\tthis.activeIndex = 0;\n\t\t\t\t\t\tthis.validar();\n\t\t\t\t\t}\n\t\t\t\t}\n        this.notificationBusService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS)\n\t\t\t\treturn null;\n\t\t\t}\n      this.clickGuardar = true;\n\t\t\tlet nuevo=false;\n\t\t\tif (this.puestoTrabajoDTO.llave != null) {\n\t\t\t\tnuevo=true;\n\t\t\t}\n\t\t\t\n\t\t\tthis.puestoTrabajoDTO = await this.puestoTrabajoService.actualizarPuestoTrabajo(new ParametrosGeneralModel(null, null, null, { puesto: this.puestoTrabajoDTO, llaveDependeAntes: this.llaveDepende, usuario: this.authService.getTokenKey('usuario') })).toPromise();\n\t\t\tthis.puestoTrabajoDTO.disponible = new Date(this.puestoTrabajoDTO.disponible)\n      this.puestoTrabajoDTO.fechaModificado = new Date(this.puestoTrabajoDTO.fechaModificado)\n      this.puestoTrabajoDTO.creacion = new Date(this.puestoTrabajoDTO.creacion)\n      this.llaveDepende = this.puestoTrabajoDTO.depende;\n\t\t\tif ( nuevo ) {\n\t\t\t\tthis.notificationBusService.showInfo(\"Se Actualizo el registro correctamente\");\n\t\t\t}else{\n\t\t\t\tthis.temporal = true;\n\t\t\t\tthis.notificationBusService.showInfo(\"Se Inserto el registro correctamente\");\n\t\t\t}\n\t\t\tthis.creacionPuesto=false;\n    } catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t\treturn null;\n\t}\n\n  public validarDatosNomina(): boolean{\n\t\ttry {\n\t\t\tlet validador = true;\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.lineaCosto);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.zonaEconomica);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.ubicacionFisica);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.turno);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.tipoPeriodo);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.vinculacion);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.asignacion);\t\t\t\n\t\t\treturn validador;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t\treturn false;\n\t\t}\n\t}\n\n  public validarDetalle(): boolean{\n\t\ttry {\n\t\t\tlet validador = true;\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.estado);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.responsableUnidad);\n\t\t\treturn validador;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t\treturn false;\n\t\t}\n\t}\n\n  public validar(): boolean{\n\t\ttry {\n\t\t\tlet validador = true;\n      this.clickGuardar = true\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.cargo);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.lineaCosto);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.tipoPuestoTrabajo);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.zonaEconomica);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.ubicacionFisica);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.turno);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.tipoPeriodo);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.vinculacion);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.asignacion);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.estado);\t\t\t\n\t\t\tvalidador = validador && this.utilsService.validarCampoObligatorio(this.puestoTrabajoDTO.responsableUnidad);\n\t\t\treturn validador;\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t\treturn false;\n\t\t}\n\t}\n\n  setSelectPanel(event){\n    this.selectPanel = event;\n  }\n\n  public reclacificacion(): void{\n\t\ttry{\n\t\tthis.popupReclasificacion.buscar(\"#{puestoTrabajoBean.recla}\" ,this.puestoTrabajoDTO);\n\t\t}catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n  public async setRecla(puesto: PuestoTrabajoModel) : Promise<void>{\n\t\tlet pu=new PuestoTrabajoModel();\n\t\tpu.llave = (puesto.llave);\n\t\tthis.puestoTrabajoDTO = await this.generalService.queryForObject(new GeneralModel('PuestoTrabajoDTO',null,false,pu)).toPromise();\n\t}\n\n  public setZonaCentro(centroCostoDTO: CentroCostoModel){\n    if(centroCostoDTO.descripcion != null){\n      console.log('');\n      \n\t\t\tthis.puestoTrabajoDTO.zonaEconomica = (centroCostoDTO.zonaEconomica);\n\t\t\tthis.puestoTrabajoDTO.nombreZonaEconomica = (centroCostoDTO.descripcionZona);\n\t\t\tthis.puestoTrabajoDTO.centroCosto = (centroCostoDTO.centroCosto);\n\t\t\tthis.puestoTrabajoDTO.nombreCentro = (centroCostoDTO.descripcion);\n\t\t}\n\t}\n\n  public isMostrarEliminarEntidad(): boolean {\n\t\treturn (this.puestoTrabajoDTO.cedulaOcupa == null || this.puestoTrabajoDTO.cedulaOcupa  === 0  )\n\t\t\t\t&& (this.puestoTrabajoDTO.cedulaTemporal == null || this.puestoTrabajoDTO.cedulaTemporal === 0);\n\t}\n\n  public setLoading(event): void{\n    this.loading = event\n  }\n\n  eliminar($event) { }\n\n\n  public setUnidad(unidadUsuarioDTO){\t\t\n\t\ttry {\t\t\n\t\t\tthis.puestoTrabajoDTO.unidadJerarquica = (unidadUsuarioDTO.unidad);\n\t\t\tthis.puestoTrabajoDTO.nombreUnidadJerarquia = (unidadUsuarioDTO.nombreUnidad);\t\t\t\n\t\t} catch (e) {\n\t\t}\n\t}\n\n\n  public setPuestoSeleccionado(dtoPt){\n\t\tif(dtoPt != null){\n\t\t\tthis.puestoTrabajoDTO.depende = (dtoPt.llave);\t\t\n\t\t\tthis.puestoTrabajoDTO.nombreJefe = (dtoPt.nombreOcupa);\n\t\t}\n\t}\n\n  handleEnterKey(event) {\n    event.preventDefault(); // Prevenir que el evento \"Enter\" se propague\n  }\n\n\n}\n","@if(loading){\n<p-progressBar mode=\"indeterminate\" [style]=\"{ height: '6px' }\"></p-progressBar>\n}\n\n@if(!loading){\n<div id=\"datosPuestoTrabajoCont\">\n    <!-- DATOS BASICOS -->\n    <div class=\"mb-2\">\n        <p-card>\n            <div class=\"mb-2\">\n                <div class=\"col-12 md:col-12 lg:col-12 flex\">\n                    <div class=\"col-6 md:col-6 lg:col-6\">\n                        <div class=\"p-fluid grid\">\n                            <!-- UNIDAD -->\n                            <div class=\"field col-6 md:col-6 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText id=\"codigo\" maxlength=\"5\" required autocomplete=\"[false]\"\n                                        [disabled]=\"true\"\n                                        value=\"{{puestoTrabajoDTO.unidad}} - {{puestoTrabajoDTO.nombreUnidad}}\">\n                                    <label for=\"codigo\">{{'unidad' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- CARGO -->\n                            <div class=\"field col-6 md:col-6 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <app-input-helper-seleccion-cargo [readonly]=\"false\"\n                                        [booleano]=\"!this.utilsService.validarCampoObligatorio(puestoTrabajoDTO.cargo) && clickGuardar\"\n                                        [label]=\"puestoTrabajoDTO.nombreCargo == null ? '' :  puestoTrabajoDTO.cargo + ' - ' + puestoTrabajoDTO.nombreCargo\"\n                                        (onSelected)=\"cargarCargo($event)\" [header]=\"('cargo' | translate)+'*'\">\n                                    </app-input-helper-seleccion-cargo>\n\n                                </span>\n                            </div>\n                            <!-- TIPO PUESTO DE TRABAJO -->\n                            <div class=\"field col-6 md:col-6 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaTipoPuestoN\"\n                                        [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.tipoPuestoTrabajo) && clickGuardar)\"\n                                        [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.tipoPuestoTrabajo) && clickGuardar)\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.tipoPuestoTrabajo\" optionLabel=\"label\"\n                                        optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                                    </p-dropdown>\n                                    <label for=\"codigo\">{{'tipo' | translate}} {{'puesto' | translate}} {{'de' |\n                                        translate}} {{'trabajo' | translate}} * </label>\n                                </span>\n                            </div>\n                            <!-- CLASE PUESTO -->\n                            <div class=\"field col-6 md:col-6 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaTipoPuestoS\" [(ngModel)]=\"puestoTrabajoDTO.clasePuesto\"\n                                        optionLabel=\"label\" optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                                    </p-dropdown>\n                                    <label for=\"codigo\">{{'clase' | translate}} {{'puesto' | translate}} </label>\n                                </span>\n                            </div>\n                            <!-- PUESTO -->\n                            <div class=\"field col-6 md:col-6 lg:col-6\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText id=\"codigo\" maxlength=\"5\" required autocomplete=\"[false]\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.numeroPuesto\">\n                                    <label for=\"codigo\">{{'puesto' | translate}} * </label>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                    <!-- OCUPADO POR -->\n                    <div class=\"col-6 md:col-6 lg:col-6\">\n                        <div class=\"grid\">\n                            <div class=\"col-3 md:col-3 lg:col-3\">\n                                <div class=\"flex\" style=\"margin-left: 11%;margin-top: 20%;\">\n                                    <div class=\"avatar-container\">\n                                        @if(urlFoto){\n                                        <img [src]=\"urlFoto\" alt=\"Foto\" class=\"avatar-image\">\n                                        }@else {\n                                        <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"avatar-image\">\n                                        }\n                                    </div>\n                                </div>\n                            </div>\n                            <div class=\"col-6 md:col-6 lg:col-6\">\n                                <div class=\"p-fluid grid\">\n                                    <div class=\"field col-12 md:col-12 lg:col-12\">\n                                        <span class=\"p-float-label\">\n                                            <input pInputText id=\"codigo\" maxlength=\"5\" required autocomplete=\"[false]\"\n                                                [(ngModel)]=\"puestoTrabajoDTO.documentoOcupa\" disabled>\n                                            <label for=\"codigo\">{{'documento' | translate}} * </label>\n                                        </span>\n                                    </div>\n                                    <div class=\"field col-12 md:col-12 lg:col-12\">\n                                        <span class=\"p-float-label\">\n                                            <input pInputText id=\"codigo\" maxlength=\"5\" required autocomplete=\"[false]\"\n                                                [(ngModel)]=\"puestoTrabajoDTO.contrato\" disabled>\n                                            <label for=\"codigo\">{{'contrato' | translate}}</label>\n                                        </span>\n                                    </div>\n                                    <div class=\"field col-12 md:col-12 lg:col-12\">\n                                        <span class=\"p-float-label\">\n                                            <input pInputText id=\"codigo\" maxlength=\"5\" required autocomplete=\"[false]\"\n                                                [(ngModel)]=\"puestoTrabajoDTO.nombreOcupa\" disabled>\n                                            <label for=\"codigo\">{{'nombre' | translate}}</label>\n                                        </span>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </p-card>\n    </div>\n\n    <!-- <p-menubar [model]=\"menu\" class=\"menu-accion-sara\"></p-menubar> -->\n\n    <p-tabView [(activeIndex)]=\"activeIndex\">\n        <p-tabPanel header=\"{{'detalle' | translate }}\">\n            <!-- DETALLE -->\n            <div class=\"mt-2\">\n                <p-card>\n                    <div class=\"col-12 md:col-12 lg:col-12\">\n                        <div class=\"p-fluid grid\">\n                            <!-- ESTADO -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaEstadoPuestoTrabajoItem\"\n                                        [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.estado) && clickGuardar)\"\n                                        [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.estado) && clickGuardar)\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.estado\" optionLabel=\"nombre\" optionValue=\"codigo\"\n                                        [autoDisplayFirst]=\"false\">\n                                    </p-dropdown>\n                                    <label for=\"codigo\">{{'estado' | translate}} * </label>\n                                </span>\n                            </div>\n                            <!-- CREACION -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"id_fechaInicial\" type=\"text\" [(ngModel)]=\"puestoTrabajoDTO.creacion\"\n                                        dateFormat=\"dd/mm/yy\" [disabled]=\"!verificarControl('puetra:guardar')\">\n                                    </p-calendar>\n                                    <label for=\"codigo\">{{'creacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- FECHA DISPONIBLE -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"id_fechaInicial\" type=\"text\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.disponible\"\n                                        [disabled]=\"!verificarControl('puetra:guardar')\" dateFormat=\"dd/mm/yy\">\n                                    </p-calendar>\n                                    <label for=\"codigo\">{{'fecha' | translate}} {{'disponible' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- FECHA ELIMINACION / BLOQUEO -->\n                            @if(puestoTrabajoDTO.estado == 'E' || puestoTrabajoDTO.estado == 'B'){\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-calendar id=\"id_fechaInicial\" type=\"text\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.eliminacion\" dateFormat=\"dd/mm/yy\"></p-calendar>\n                                    @if(puestoTrabajoDTO.estado == 'E'){\n                                    <label for=\"codigo\">{{'fechaeliminacion' | translate}}</label>\n                                    }\n                                    @if(puestoTrabajoDTO.estado == 'E'){\n                                    <label for=\"codigo\">{{'fechabloqueo' | translate}}</label>\n                                    }\n                                </span>\n                            </div>\n                            }\n                            <!-- OBSERVACION -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <input pInputText id=\"codigo\" required autocomplete=\"[false]\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.observacion\"\n                                        [disabled]=\"!verificarControl('puetra:guardar')\">\n                                    <label for=\"codigo\">{{'observacion' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ESTADO PROCESO -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaReservaPuestoTrabajoItem\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.reserva\"\n                                        [disabled]=\"!verificarControl('puetra:guardar')\" optionLabel=\"nombre\"\n                                        optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                                    </p-dropdown>\n                                    <label for=\"codigo\">{{'estado' | translate}} {{'proceso' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- ESTADO TEMPORAL -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaTipoTemporales\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.tipoTemporal\"\n                                        [disabled]=\"!verificarControl('puetra:guardar')\" optionLabel=\"nombre\"\n                                        optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                                    </p-dropdown>\n                                    <label for=\"codigo\">{{'estado' | translate}} {{'temporal' | translate}}</label>\n                                </span>\n                            </div>\n                            <!-- RESPONSABLE -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listaResponsable\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.responsableUnidad\"\n                                        [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.responsableUnidad) && clickGuardar)\"\n                                        [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.responsableUnidad) && clickGuardar)\"\n                                        [disabled]=\"!verificarControl('puetra:guardar')\" optionLabel=\"nombre\"\n                                        optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                                    </p-dropdown>\n                                    <label for=\"codigo\">{{'responsable' | translate}} *</label>\n                                </span>\n                            </div>\n                            <!-- LIDER -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <app-input-helper-planta-lider [readonly]=\"!verificarControl('puetra:guardar')\" [showDialog]=\"false\"\n                                    [label]=\"puestoTrabajoDTO.nombreJefe  == null ? '' : puestoTrabajoDTO.nombreJefe\"\n                                    [llaveUnidad]=\"unidadSeleccion.unidad\" [llavePuestoActual]=\"puestoTrabajoDTO.depende\"\n                                    (onSelected)=\"setPuestoSeleccionado($event)\" [mostrarX]=\"true\" >\n                                </app-input-helper-planta-lider>\n                                </span>\n                            </div>\n                            <!-- UNIDAD JERARQUICA -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <app-input-helper-unidad [readonly]=\"!verificarControl('puetra:guardar')\"\n                                    [label]=\"puestoTrabajoDTO.unidadJerarquica == null ? '' : puestoTrabajoDTO.unidadJerarquica\"\n                                    (onSelected)=\"setUnidad($event)\" [header]=\"this.translateService.instant('unidad') + ' ' + this.translateService.instant('jerarquica')\"\n                                    (keydown.enter)=\"handleEnterKey($event)\" [mostrarX]=\"true\">\n                                </app-input-helper-unidad>\n                                </span>\n                            </div>\n                            <!-- FACILITADOR DEL AREA -->\n                            <div class=\"field col-4 md:col-4 lg:col-4\">\n                                <span class=\"p-float-label\">\n                                    <p-dropdown [options]=\"generalPipe.LISTA_SINO\"\n                                        [(ngModel)]=\"puestoTrabajoDTO.facilitador\"\n                                        [disabled]=\"!verificarControl('puetra:guardar')\" optionLabel=\"nombre\"\n                                        optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                                    </p-dropdown>\n                                    <label for=\"codigo\">{{'facilitador' | translate}} {{'del' | translate}} {{'area' |\n                                        translate}}</label>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"flex justify-content-end mt-3 mb-2\">\n                        @if(verificarControl('puetra:guardar')){\n                        <button pButton pRipple class=\"ml-2 p-button p-button-raised\"\n                            (click)=\"actualizarPuestoTrabajo()\" icon=\"glyphicons glyphicons-refresh\"\n                            label=\"{{'link_actualizar' | translate}}\"></button>\n                        }\n                        @if((verificarControl('puetra:reclasificar')) && (puestoTrabajoDTO.estado != 'E' &&\n                        puestoTrabajoDTO.llave != null)){\n                        <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"reclacificacion()\"\n                            icon=\"glyphicons glyphicons-floppy-save\"\n                            label=\"{{'link_reclasificacion' | translate}}\"></button>\n                        }\n                        @if(isMostrarEliminarEntidad() && verificarControl('puetra:eliminar')){\n                        <button pButton pRipple label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\"\n                            class=\"p-button-outlined p-button p-component ml-2\" type=\"button\">\n                            <span class=\"glyphicons glyphicons-bin\"></span>\n                        </button>\n                        }\n\n                    </div>\n                </p-card>\n            </div>\n        </p-tabPanel>\n        <p-tabPanel header=\"{{'datos' | translate }} {{'de' | translate }} {{'nomina' | translate }}\">\n            <p-card>\n                <div class=\"col-12 md:col-12 lg:col-12\">\n                    <div class=\"p-fluid grid\">\n                        <!-- TITULAR -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-empleado-boton id=\"empleado\" [nombreInput]=\"'titular' | translate\"\n                                    [label]=\"puestoTrabajoDTO.documentoTitular != null ? puestoTrabajoDTO.documentoTitular + ' - ' + puestoTrabajoDTO.nombreTitular: ''\">\n                                </app-input-helper-empleado-boton>\n                            </span>\n                        </div>\n                        <!-- MESADA -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"codigo\" required autocomplete=\"[false]\" disabled\n                                    (input)=\"utilsService.validarCampoNumerico($event)\"\n                                    onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                                    [(ngModel)]=\"puestoTrabajoDTO.sueldoTitular\">\n                                <label for=\"codigo\">{{'mesada' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- CUPO -->\n                        @if(manejoFlexible){\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"codigo\" autocomplete=\"[false]\" disabled\n                                    [(ngModel)]=\"puestoTrabajoDTO.cupo\">\n                                <label for=\"codigo\">{{'cupo' | translate}}</label>\n                            </span>\n                        </div>\n                        }\n\n                        <!-- SUELDO TOTAL TITULAR -->\n                        @if(manejoFlexible){\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"codigo\" autocomplete=\"[false]\" disabled\n                                    [(ngModel)]=\"puestoTrabajoDTO.asignacionTotal\">\n                                <label for=\"codigo\">{{'sueldototal' | translate}}</label>\n                            </span>\n                        </div>\n                        }\n                        <!-- TEMPORAL -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-empleado-boton id=\"empleado\" [nombreInput]=\"'temporal' | translate\"\n                                    [label]=\"puestoTrabajoDTO.documentoTemporal != null ? puestoTrabajoDTO.documentoTemporal + ' - ' + puestoTrabajoDTO.nombreTemporal : ''\">\n                                </app-input-helper-empleado-boton>\n                            </span>\n                        </div>\n                        <!-- FUNCION -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-empleado-boton id=\"empleado\" [nombreInput]=\"'funcion' | translate\"\n                                    [label]=\"puestoTrabajoDTO.documentoFuncion ? puestoTrabajoDTO.documentoFuncion + ' - ' + puestoTrabajoDTO.nombreEmpleadoFuncion : ''\">\n                                </app-input-helper-empleado-boton>\n                            </span>\n                        </div>\n                        <!-- EMPALME -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-empleado-boton id=\"empleado\" [nombreInput]=\"'empalme' | translate\"\n                                    [label]=\"puestoTrabajoDTO.documentoEmpalme != null ? puestoTrabajoDTO.documentoEmpalme + ' - ' + puestoTrabajoDTO.nombreEmpleadoEmpalme: ''\">\n                                </app-input-helper-empleado-boton>\n                            </span>\n                        </div>\n                        <!-- ZONA ECONOMICA -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <app-input-helper-seleccion-zona-centro #zonaEconomica [labelIntput]=\"('zonaeconomica'| translate) + '*'\" [booleano]=\"!utilsService.validarCampoObligatorio(puestoTrabajoDTO.zonaEconomica) && clickGuardar\"\n                                [(ngModel)]=\"puestoTrabajoDTO.nombreZonaEconomica\" (onSelected)=\"setZonaCentro($event)\"></app-input-helper-seleccion-zona-centro>\n                                <!-- <label for=\"codigo\">{{'zona' | translate}} {{'economica' | translate}}</label> -->\n                            </span>\n                        </div>\n                        <!-- DESCRIPCION CENTRO -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"codigo\" autocomplete=\"[false]\"\n                                    [(ngModel)]=\"puestoTrabajoDTO.nombreCentro\">\n                                <label for=\"codigo\">{{'descripcion' | translate}} {{'centro' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- LINEA COSTO -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaLineaCostoItem\" [(ngModel)]=\"puestoTrabajoDTO.lineaCosto\"\n                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.lineaCosto) && clickGuardar)\"\n                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.lineaCosto) && clickGuardar)\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                                </p-dropdown>\n                                <label for=\"codigo\">{{'linea' | translate}} {{'costo' | translate}} *</label>\n                            </span>\n                        </div>\n                        <!-- UBICACION GEOGRAFICA -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"codigo\" autocomplete=\"[false]\" disabled\n                                    [(ngModel)]=\"puestoTrabajoDTO.nombreUbicacionGeografica\">\n                                <label for=\"codigo\">{{'ubicacion' | translate}} {{'geografica' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- UBICACION FISICA -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listaUbicacionFisicaItem\"\n                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.ubicacionFisica) && clickGuardar)\"\n                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.ubicacionFisica) && clickGuardar)\"\n                                    [(ngModel)]=\"puestoTrabajoDTO.ubicacionFisica\" optionLabel=\"label\" optionValue=\"key\"\n                                    [autoDisplayFirst]=\"false\">\n                                </p-dropdown>\n                                <label for=\"codigo\">{{'ubicacion' | translate}} {{'fisica' | translate}} *</label>\n                            </span>\n                        </div>\n                        <!-- TURNO -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listadoTurno\" [(ngModel)]=\"puestoTrabajoDTO.turno\"\n                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.turno) && clickGuardar)\"\n                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.turno) && clickGuardar)\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                                </p-dropdown>\n                                <label for=\"codigo\">{{'turno' | translate}} *</label>\n                            </span>\n                        </div>\n                        <!-- TIPO PERIODO -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listadoTipoPeriodo\" [(ngModel)]=\"puestoTrabajoDTO.tipoPeriodo\"\n                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.tipoPeriodo) && clickGuardar)\"\n                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.tipoPeriodo) && clickGuardar)\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\">\n                                </p-dropdown>\n                                <label for=\"codigo\">{{'tipo' | translate}} {{'periodo' | translate}} *</label>\n                            </span>\n                        </div>\n                        <!-- VINCULACION -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listadoVinculacionLaboral\"\n                                [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.vinculacion) && clickGuardar)\"\n                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.vinculacion) && clickGuardar)\"\n                                    [(ngModel)]=\"puestoTrabajoDTO.vinculacion\" optionLabel=\"label\" optionValue=\"value\"\n                                    [autoDisplayFirst]=\"false\">\n                                </p-dropdown>\n                                <label for=\"codigo\">{{'vinculacion' | translate}} *</label>\n                            </span>\n                        </div>\n                        <!-- ROL -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown [options]=\"listadoRol\" [(ngModel)]=\"puestoTrabajoDTO.clasificacion\"\n                                    [disabled]=\"!verificarControl('puetra:guardar')\" optionLabel=\"label\"\n                                    optionValue=\"value\" [autoDisplayFirst]=\"false\">\n                                </p-dropdown>\n                                <label for=\"codigo\">{{'rol' | translate}}</label>\n                            </span>\n                        </div>\n                        <!-- MESADA -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"codigo\" required autocomplete=\"[false]\"\n                                    [disabled]=\"!verificarControl('puetra:guardar')\"\n                                    (input)=\"utilsService.validarCampoNumerico($event)\"\n                                    [class.ng-dirty]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.asignacion) && clickGuardar)\"\n                                [class.ng-invalid]=\"(!utilsService.validarCampoObligatorio(puestoTrabajoDTO.asignacion) && clickGuardar)\"\n                                    onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                                    [(ngModel)]=\"puestoTrabajoDTO.asignacion\">\n                                <label for=\"codigo\">{{'mesada' | translate}} *</label>\n                            </span>\n                        </div>\n                        <!-- NEGOCIACION -->\n                        <div class=\"field col-4 md:col-4 lg:col-4\">\n                            <span class=\"p-float-label\">\n                                <input pInputText id=\"codigo\" required autocomplete=\"[false]\"\n                                    [disabled]=\"!verificarControl('puetra:guardar')\"\n                                    (input)=\"utilsService.validarCampoNumerico($event)\"\n                                    onkeypress='return event.charCode >= 48 && event.charCode <= 57'\n                                    [(ngModel)]=\"puestoTrabajoDTO.negociacion\">\n                                <label for=\"codigo\">{{'negociacion' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"flex justify-content-end mt-3 mb-2\">\n                    @if(verificarControl('puetra:guardar')){\n                    <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizarPuestoTrabajo()\"\n                        icon=\"glyphicons glyphicons-refresh\" label=\"{{'link_actualizar' | translate}}\"></button>\n                    }\n                    @if((verificarControl('puetra:reclasificar')) && (puestoTrabajoDTO.estado != 'E' &&\n                    puestoTrabajoDTO.llave != null)){\n                    <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"reclacificacion()\"\n                        icon=\"glyphicons glyphicons-floppy-save\"\n                        label=\"{{'link_reclasificacion' | translate}}\"></button>\n                    }\n                    @if(isMostrarEliminarEntidad() && verificarControl('puetra:eliminar')){\n                    <button pButton pRipple label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\"\n                        class=\"p-button-outlined p-button p-component ml-2\" type=\"button\">\n                        <span class=\"glyphicons glyphicons-bin\"></span>\n                    </button>\n                    }\n\n                </div>\n            </p-card>\n        </p-tabPanel>\n        @if(!creacionPuesto){\n        <p-tabPanel header=\"{{'registro' | translate }}  {{'descripcion' | translate }}\">\n            <p-table [value]=\"listaPerfilFuncion\" styleClass=\"p-datatable-striped\" [lazy]=\"true\" scrollDirection=\"both\"\n                styleClass=\"p-datatable-striped\" scrollDirection=\"horizontal\" scrollHeight=\"400px\" [scrollable]=\"true\"\n                responsiveLayout=\"scroll\" [showCurrentPageReport]=\"true\" scrollDirection=\"both\"\n                scrollDirection=\"horizontal\" responsiveLayout=\"scroll\" selectionMode=\"single\"\n                [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th style=\"width: 50%;\">{{'unidad' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'cargo' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'fechainicial' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'fechafinal' | translate}}</th>\n                        <th style=\"width: 10%;\">{{'estado' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-campo>\n                    <tr>\n                        <td style=\"width: 50%;\">\n                            {{ (campo.unidad != null ? campo.unidad : '' ) +' - '+ (campo.nombreUnidad != null ?\n                            campo.nombreUnidad : '') }}\n                        </td>\n                        <td style=\"width: 10%;\">\n                            {{ (campo.cargo != null ? campo.cargo: '' )+' - '+(campo.nombreCargo != null ?\n                            campo.nombreCargo : '')}}\n                        </td>\n                        <td style=\"width: 10%;\">\n                            {{campo.fechaInicial | date:'dd/mm/yyyy'}}\n                        </td>\n                        <td style=\"width: 10%;\">\n                            {{campo.fechaFinal | date:'dd/mm/yyyy'}}\n                        </td>\n                        <td style=\"width: 10%;\">\n                            {{ campo.estado | descripcionCargoPipe:'estadoDesCargo'}}\n                        </td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n\n        </p-tabPanel>\n\n        <p-tabPanel header=\"{{'historico' | translate }} {{'actos' | translate }} {{'administrativo' | translate }}\">\n\n\n            <p-table [value]=\"listaHistoricoActosAdministrativo\" scrollDirection=\"both\" styleClass=\"p-datatable-striped\"\n                [lazy]=\"true\" [showCurrentPageReport]=\"true\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n                selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th>{{'contrato' | translate}}</th>\n                        <th>{{'documento' | translate}}</th>\n                        <th>{{'nombre' | translate}}</th>\n                        <th>{{'documento' | translate}}</th>\n                        <!-- <th>{{'fecha' | translate}} {{'del' | translate}} {{'documento' | translate}}</th> -->\n                        <th>{{'nombre' | translate}} {{'de' | translate}} {{'formato' | translate}}</th>\n                        <th>{{'fecha' | translate}} {{'desde' | translate}}</th>\n                        <th>{{'fecha' | translate}} {{'hasta' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-campo>\n                    <tr>\n                        <td>{{ campo.empleado }}</td>\n                        <td>{{ campo.documentoEmpleado }}</td>\n                        <td>{{campo.segundoApellido + ' ' + campo.primerApellido + ' ' + campo.nombresEmpleado }}</td>\n                        <!-- <td>{{campo.fechaDocumento | date:'dd/mm/yyyy'}}</td> -->\n                        <td>{{ campo.hojaVida }}</td>\n                        <td>{{ campo.nombreFormato }}</td>\n                        <td>{{ campo.cambio | date:'dd/mm/yyyy' }}</td>\n                        <td>{{ campo.fechafinal | date:'dd/mm/yyyy' }}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n\n        </p-tabPanel>\n\n        <p-tabPanel header=\"{{'historico' | translate }}  {{'actos' | translate }} {{'empleado' | translate }}\">\n\n            <p-table [value]=\"listaHistoricoCambioEmpleado\" scrollDirection=\"both\" styleClass=\"p-datatable-striped\"\n                [lazy]=\"true\" [showCurrentPageReport]=\"true\" scrollDirection=\"horizontal\" responsiveLayout=\"scroll\"\n                selectionMode=\"single\" [rowsPerPageOptions]=\"[10, 20, 30]\" [showCurrentPageReport]=\"true\">\n                <ng-template pTemplate=\"header\">\n                    <tr>\n                        <th>{{'contrato' | translate}}</th>\n                        <th>{{'documento' | translate}}</th>\n                        <th>{{'nombre' | translate}}</th>\n                        <th>{{'fecha' | translate}} {{'desde' | translate}}</th>\n                        <th>{{'fecha' | translate}} {{'hasta' | translate}}</th>\n                        <th>{{'tipo' | translate}} {{'de' | translate}} {{'cambio' | translate}}</th>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"body\" let-campo>\n                    <tr>\n                        <td>{{ campo.contrato }}</td>\n                        <td>{{ campo.documentoEmpleado }}</td>\n                        <td>{{campo.segundoApellido + campo.segundoApellido + campo.nombresEmpleado }}</td>\n                        <td>{{ campo.fechaInicia | date:'dd/mm/yyyy' }}</td>\n                        <td>{{ campo.hasta | date:'dd/mm/yyyy' }}</td>\n                        <td>{{ campo.tipoCambio }}</td>\n                    </tr>\n                </ng-template>\n                <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>            </p-table>\n\n        </p-tabPanel>\n    }\n    </p-tabView>\n</div>\n<app-popup-reclasificacion #popupReclasificacion (recla)=\"setRecla($event)\"></app-popup-reclasificacion>\n}","import { AuthService, CargarControlFuncionalidadService, ParametrosGeneralModel } from 'general-library-union';\nimport { SaraAplicacionService } from './../../../../../shared/servicios/sara-aplicacion.service';\nimport { UtilsService } from 'general-library-union';\nimport { Component, ViewChild } from '@angular/core';\nimport { PuestoTrabajoModel } from '../../../models/PuestoTrabajoModel';\nimport { NivelCargoModel } from '../../../../compensacion/models/NivelCargoModel';\nimport { EncriptadoBasicoService, GeneralModel, GeneralService, ToastService } from 'general-library-union';\nimport { CargarArchivosService } from '../../../../../shared/servicios/cargar-archivos.service';\nimport { PuestoTrabajoService } from '../../../services/puesto-trabajo.service';\nimport { Constantes } from '../../../../../shared/constantes/Constantes';\nimport { PuestoRequerimientoModel } from '../../../models/PuestoRequerimientoModel';\nimport { PuestoRequerimientoService } from '../../../services/puesto-Requerimiento.service';\nimport { RequerimientoPersonalModel } from '../../../models/RequerimientoPersonalModel';\nimport { CargoModel } from '../../../models/CargoModel';\nimport { DescripcionCargoComponent } from '../../descripcion-cargo/descripcion-cargo/descripcion-cargo.component';\nimport { RequerimientoPmPage } from '../requerimiento-pm/requerimiento-pm.page';\nimport { DatosPuestoTrabajoContComponent } from '../datos-puesto-trabajo-cont/datos-puesto-trabajo-cont.component';\nimport { PopupUnidadOrganizacionalComponent } from '../popup-unidad-organizacional/popup-unidad-organizacional.component';\nimport { PopupMotivoRequerimientoComponent } from '../../../popups/popup-motivo-requerimiento/popup-motivo-requerimiento.component';\nimport { UnidadOrganizacionalModel } from '../../../models/UnidadOrganizacionalModel';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DividerModule } from 'primeng/divider';\nimport { NgFor, NgIf } from '@angular/common';\nimport { PanelModule } from 'primeng/panel';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Button, ButtonDirective } from 'primeng/button';\nimport { PrimeTemplate } from 'primeng/api';\nimport { Ripple } from 'primeng/ripple';\nimport { FormsModule } from '@angular/forms';\n\n\n@Component({\n  selector: 'app-planta-personal-cliente',\n  standalone: true,\n  imports: [NgIf, ButtonDirective, PrimeTemplate, Button, TooltipModule, PanelModule, NgFor, DividerModule, RequerimientoPmPage,\n    FormsModule, Ripple, DatosPuestoTrabajoContComponent, DescripcionCargoComponent,PopupMotivoRequerimientoComponent,\n    TranslateModule,PopupUnidadOrganizacionalComponent],\n  templateUrl: './planta-personal-cliente.component.html',\n  styleUrl: './planta-personal-cliente.component.scss'\n})\nexport class PlantaPersonalClienteComponent {\n\n  public rutaFoto=null;\n\tpublic puestoJefe: PuestoTrabajoModel = new PuestoTrabajoModel();\n\tpublic puestoSubalternoSeleccionado: PuestoTrabajoModel = new PuestoTrabajoModel();\n\tpublic listaNiveles: NivelCargoModel[] = [];\n\tpublic llaveOriginal: string;\n\tpublic maxinoNivel: number;\n  public vistaVisualizar: string;\n\n  //ViewChild's\n  @ViewChild('datosPuestoTrabajoContComponent') puestoTrabajoBean: DatosPuestoTrabajoContComponent;\n  @ViewChild('descripcionCargoBean') descripcionCargoBean: DescripcionCargoComponent;\n  @ViewChild('requerimientoPM') requerimientoPM: RequerimientoPmPage;\n  @ViewChild('popupMotivoReq') popupMotivoReq: PopupMotivoRequerimientoComponent;\n  \n\n constructor(private generalSvc: GeneralService, private notificationBusService: ToastService, private encriptadorbasico: EncriptadoBasicoService, private utilsService: UtilsService, private controlFuncionService: CargarControlFuncionalidadService,\n      private saraAplicacionService: SaraAplicacionService, private authService: AuthService,private cargarArchivo: CargarArchivosService,private puestoSvc: PuestoTrabajoService, private puestoRequerimientoSvc: PuestoRequerimientoService) {}\n \n async inicializa(llavePuesto: string) {\n    this.llaveOriginal = llavePuesto;\n    await this.traerJefe(llavePuesto);\n  }\n\n  async traerJefe(llavePuesto: string) {\n    await this.consultarPuestoJefe(llavePuesto);\n    await this.consultarPuestosSubalternos(llavePuesto);\n  }\n\n  public async consultarPuestoJefe(llavePuesto: string){\n\t\tthis.puestoJefe = new PuestoTrabajoModel();\n\t\tthis.puestoJefe.llave = (llavePuesto);\n\t\tthis.puestoJefe = await this.generalSvc.queryForObject(new GeneralModel('PuestoTrabajoDTO', null, false, this.puestoJefe)).toPromise();\n\t\tif(this.puestoJefe==null){\n\t\t\tthis.notificationBusService.showWarning(\"No se encontro puesto de trabajo del jefe\");\n\t\t\treturn;\n\t\t}\n    let caminoFoto: string = null;\n    if (this.puestoJefe.cedulaOcupa != null) {\n      if (this.puestoJefe.caminoFotoOcupa != null || this.puestoJefe.caminoFotoOcupa != '') {\n        caminoFoto = this.rutaFoto = this.puestoJefe.caminoFotoOcupa + 'jpg';\n        let propiedad = 'ruta_fotos'; \n        let aplicacion = this.authService.getTokenKey('aplicacion');\n        this.cargarArchivo.descargarArchivo(this.encriptadorbasico.encriptar(this.puestoJefe.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n          const reader = new FileReader();\n          reader.onload = () => {\n            const dataUrl = reader.result as string;\n            const base64 = dataUrl.split(',')[1];\n            this.puestoJefe.caminoFotoTemporal = 'data:image/png;base64,' + base64\n          };\n          reader.readAsDataURL(blob)\n        }, err => this.puestoJefe.caminoFotoTemporal = '/assets/images/foto_vacia.png'\n      );\n\n      }\n    }\n    \n    if (this.puestoJefe.llaveComparte == null || this.puestoJefe.llaveComparte.trim() == '.') {\n      this.puestoJefe.llaveComparte = '.'\n    }\n\t}\n  public retorno(llavesJefes) {\n\t\t//String[] \n    let dato = llavesJefes.split(\"%\");\n\t\tthis.llaveOriginal = dato[0];\n\t\tthis.traerJefe(dato[1]);\n\t}\n  \n  async consultarPuestosSubalternos(llavePuestoJefe: string) {\n    try {\n      this.listaNiveles = await this.puestoSvc.obtenerPuestosDependeNiveles(new ParametrosGeneralModel(null, null, null, {\n        llaveDepende: llavePuestoJefe,\n        unidad: null,\n        empresa: null\n      })).toPromise();\n      this.maxinoNivel = 0\n      let caminoFoto: string;\n\n      for await (const unNivel of this.listaNiveles) {\n        if (unNivel.listaPuesto.length > this.maxinoNivel) {\n          this.maxinoNivel = unNivel.listaPuesto.length;\n        }\n        for await (const subAlterno of unNivel.listaPuesto) {\n          let propiedad = 'ruta_fotos';\n          let aplicacion = this.authService.getTokenKey('aplicacion');\n          await this.utilsService.sleep(100);\n          try {\n            await this.cargarArchivo.descargarArchivo(this.encriptadorbasico.encriptar(subAlterno.caminoFotoOcupa + '.jpg'), propiedad, aplicacion).subscribe(blob => {\n              const reader = new FileReader();\n              reader.onload = () => {\n                const dataUrl = reader.result as string;\n                const base64 = dataUrl.split(',')[1];\n                subAlterno.caminoFotoTemporal = 'data:image/png;base64,' + base64\n              };\n              reader.readAsDataURL(blob)\n            }, err => subAlterno.caminoFotoTemporal = '/assets/images/foto_vacia.png'\n            );\n          } catch (error) {\n\n          }\n\n          if (subAlterno.cedulaOcupa != null) {\n            if (subAlterno.caminoFotoOcupa != null) {\n              caminoFoto = this.rutaFoto + subAlterno.caminoFotoOcupa + Constantes.PUNTO + Constantes.ARCHIVO_JPG;\n              caminoFoto = this.encriptadorbasico.encriptar(caminoFoto);\n            }\n          }\n          subAlterno.caminoFotoOcupa = caminoFoto;\n          if (subAlterno.colorComparte == null || '.' == subAlterno.llaveComparte) {\n            subAlterno.llaveComparte = '.'\n          }\n        }\n      }\n    } catch (error) {\n      console.log(error);\n    }\n  }\n  \n  public async verDescripcionCargoJefe(){\n\t\ttry {\n\t\t\tawait this.verDescripcionCargo(this.puestoJefe);\n      this.utilsService.resizeWindowIFrame();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\t\n\tpublic async verDescripcionCargoSubalterno(puestoSubalternoSeleccionado){\n\t\ttry {\n      this.puestoSubalternoSeleccionado = puestoSubalternoSeleccionado;\n\t\t\tthis.verDescripcionCargo(this.puestoSubalternoSeleccionado);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n  \n  public async consultarRequerimiento(puestoSubalternoSeleccionado) {\n\t\ttry{\n\t\t\tthis.puestoSubalternoSeleccionado = puestoSubalternoSeleccionado;\n      let llaveRequerimiento = null;\n\t\t\tlet llave = this.puestoSubalternoSeleccionado.llave;\n\t\t\t//PuestoRequerimientoDTO \n      let comodin = new PuestoRequerimientoModel();\n\t\t\tcomodin.puesto = (llave);\n\t\t\t//List<PuestoRequerimientoDTO> \n      let listaPuestoRequerimiento: PuestoRequerimientoModel[] = await this.puestoRequerimientoSvc.consultarPuestosRequerimientoSegunPuesto(comodin).toPromise();\n\t\t\tif ( listaPuestoRequerimiento.length != 0 ) {\n\t\t\t\tllaveRequerimiento = this.puestoSubalternoSeleccionado.llaveRequerimiento;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tllaveRequerimiento = null;\n\t\t\t}\n\t\t\tif (llaveRequerimiento == null) {\n\t\t\t\tlet requerimientoPersonalDTO = new RequerimientoPersonalModel();\n\t\t\t\trequerimientoPersonalDTO.puestoTrabajo = (llave);\n\t\t\t\trequerimientoPersonalDTO.estadoMasivo = (\"ACTIVOS\");\n\t\t\t\tlet lista: RequerimientoPersonalModel[] = await this.generalSvc.queryForList(new GeneralModel('RequerimientoPersonalDTO',null,false,requerimientoPersonalDTO)).toPromise();\n\t\t\t\tif ( lista.length != 0 ) {\n\t\t\t\t\tllaveRequerimiento = lista[0].llaveTabla;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (llaveRequerimiento == null) {\n\t\t\t\t//CargoDTO \n        let cargo = new CargoModel();\n\t\t\t\tcargo.empresa = (this.puestoSubalternoSeleccionado.empresa);\n\t\t\t\tcargo.cargo = (this.puestoSubalternoSeleccionado.cargo);\n\t\t\t\tcargo = await this.generalSvc.queryForObject(new GeneralModel('CargoDTO',null,false,cargo)).toPromise();\n\t\t\t\tthis.popupMotivoReq.buscar(\"V\",'PT', cargo.clasificacion, this.puestoSubalternoSeleccionado.empresa);\n        this.utilsService.resizeWindowIFrame()\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tthis.setVistaVisualizar(\"requerimientoPersonal\");\n      await this.utilsService.sleep(20)\n\t\t\tthis.requerimientoPM.verRequerimiento(llaveRequerimiento);\n      this.utilsService.resizeWindowIFrame()\n\t\t\t\n\t\t}catch (e) {\n\t\t\tconsole.error(e); \n\t\t}\n\t\treturn;\n\t\n\t}\n\n\tpublic async setVolverPM(motivo){\n\t\ttry{\n\t\t\tthis.setVistaVisualizar(\"requerimientoPersonal\");\n\t\t\tlet llave = this.puestoSubalternoSeleccionado.llave;\n\t\t\t//RequerimientoPMBean requerimientoPersonalBean = (RequerimientoPMBean) FacesUtils.getBean(\"requerimientoPMBean\");\n\t\t\t//PuestoTrabajoDTO \n      let puestoEncabezadoDTO= new PuestoTrabajoModel();\n\t\t\tpuestoEncabezadoDTO.llave = (llave);\n\t\t\tpuestoEncabezadoDTO = await this.generalSvc.queryForObject(new GeneralModel('PuestoTrabajoDTO',null,false,puestoEncabezadoDTO)).toPromise();\n      this.requerimientoPM.cargarCrear(\"#{plantaPersonalClienteBean.vistaVisualizar}\", puestoEncabezadoDTO, motivo,true);\n      this.utilsService.resizeWindowIFrame()\n\t\t}catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\n\t\n\tpublic async verDescripcionCargo(puestoTrabajoDTO: PuestoTrabajoModel) {\n\t\tthis.setVistaVisualizar(\"descripcioncargo\");\n\t\tawait this.utilsService.sleep(20);\n    await this.descripcionCargoBean?.cargarPerfil(puestoTrabajoDTO.empresa,\n      puestoTrabajoDTO.unidad, puestoTrabajoDTO.cargo,\n      puestoTrabajoDTO.llave, \"#{plantaPersonalBean.vistaVisualizar}\",\n      'plantaPersonal',\n      false);\n      this.utilsService.resizeWindowIFrame()\n    }\n\t\n\tpublic consultarPosicionJefe(){\n\t\ttry {\n\t\t\tthis.consultarPosicion(this.puestoJefe);\n      this.utilsService.resizeWindowIFrame();\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\t\n\tpublic consultarPosicionSubalterno(puestoSubalternoSeleccionado){\n\t\ttry {\n      this.puestoSubalternoSeleccionado = puestoSubalternoSeleccionado\n\t\t\tthis.consultarPosicion(this.puestoSubalternoSeleccionado);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\tpublic consultarOriginal(){\n\t\tthis.consultarPuestoJefe(this.llaveOriginal);\n\t\tthis.consultarPuestosSubalternos(this.llaveOriginal);\n    this.utilsService.resizeWindowIFrame();\n\t}\n\n\tpublic consultarSubalternoSubalterno(puestoSubalternoSeleccionado){\n    this.puestoSubalternoSeleccionado = puestoSubalternoSeleccionado;\n\t\tlet llavePuesto = this.puestoSubalternoSeleccionado.llave;\n\t\tthis.consultarPuestoJefe(llavePuesto);\n\t\tthis.consultarPuestosSubalternos(llavePuesto);\n\t}\n\n\tpublic async consultarPosicion(puestoTrabajoDTO: PuestoTrabajoModel){\n\t\t//UnidadOrganizacionalDTO \n    let unidad = new UnidadOrganizacionalModel();\n\t\tunidad.unidad = (puestoTrabajoDTO.unidad);\n\t\tunidad.empresa = (puestoTrabajoDTO.empresa);\n\t\tunidad = await this.generalSvc.queryForObject(new GeneralModel('UnidadOrganizacionalDTO',null,false,unidad)).toPromise();\n\t\t\n\t\tthis.setVistaVisualizar(\"posicion\");\n    await this.utilsService.sleep(20);\n\t\tthis.puestoTrabajoBean.setLoading(true);\n    await this.puestoTrabajoBean.cargarDatosPuestoTrabajo(puestoTrabajoDTO.llave, unidad, 'plantaPersonal');\n    this.puestoTrabajoBean.setLoading(false);\n    this.utilsService.resizeWindowIFrame()\n\t\t\n\t}\n\n  regresar() {\n    try {\n      this.vistaVisualizar = null;\n    } catch (error) {\n      console.log(error);\n    }\n\n  }\n\n  setVistaVisualizar(event){\n    this.vistaVisualizar = event;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  public verificarControl(control) {\n\t\treturn this.controlFuncionService.getControlFuncionalidad(control);\n\t}\n\n}\n","<div *ngIf=\"vistaVisualizar == null\">\n    <div class=\"card-cargo field col-12 md:col-12 lg:col-4 m-2\">\n        <p-panel>\n            <div class=\"flex\">\n                <div class=\"avatar-container\">\n                    <img [src]=\"puestoJefe?.caminoFotoTemporal\" alt=\"Foto\" class=\"us-foto-perfil avatar-image\">\n                </div>\n                <div class=\"field\">\n                    <div class=\"col-md-12 ml-3\">\n                        <div class=\"p-fluid p-formgrid grid col-12\">\n                            <h1 class=\"w-full\">{{puestoJefe?.nombreOcupa}}</h1>\n                            <h4>{{puestoJefe?.nombreCargo}}</h4>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n            <ng-template pTemplate=\"footer\">\n\n                <div class=\"flex justify-content-end\">\n                <p-button icon=\"glyphicons glyphicons-nameplate-alt\" *ngIf=\"verificarControl('plancli:descar')\"\n                    styleClass=\"p-button-rounded p-button-text \" title=\"{{'descripcioncargo' | translate}}\" (click)=\"verDescripcionCargoJefe()\">\n                </p-button>\n                <p-button icon=\"glyphicons glyphicons-nameplate\" styleClass=\"p-button-rounded p-button-text\" (click)=\"consultarPosicionJefe()\" *ngIf=\"verificarControl('plancli:conpos')\"\n                    title=\"{{'consultaposicion' | translate}}\"></p-button>\n\n                    <p-button icon=\"glyphicons glyphicons-businessman\" *ngIf=\"puestoJefe.llave != llaveOriginal\"\n                    styleClass=\"p-button-rounded p-button-text\" (click)=\"consultarOriginal()\"\n                    title=\"{{'origen' | translate}}\"></p-button>\n                    </div>\n            </ng-template>\n        </p-panel>\n    </div>\n\n\n    <div *ngFor=\"let nivelCargo of listaNiveles\" class=\"field col-12 md:col-12 lg:col-12\">\n        <p-divider>\n            <div class=\"inline-flex align-items-center\">\n                <b>{{nivelCargo.descripcion}}</b>\n            </div>\n        </p-divider>\n\n        <div class=\"flex p-fluid grid\">\n            <div *ngFor=\"let subalterno of nivelCargo.listaPuesto\" class=\"card-cargo field col-12 md:col-12 lg:col-4 m-2\">\n                <p-panel>\n                    <ng-template pTemplate=\"body\">\n                        <div class=\"flex\">\n                            <div>\n                                <img [src]=\"subalterno?.caminoFotoTemporal\" alt=\"Foto\" class=\"us-foto-perfil avatar-image\">\n                            </div>\n                            <div class=\"field\">\n                                <div class=\"col-md-12 ml-3\">\n                                    <div class=\"p-fluid p-formgrid grid col-12\">\n                                        <h1 class=\"w-full mb-0\">{{subalterno?.nombreOcupa}}</h1>\n                                        <h4 class=\"mt-3\">- {{subalterno?.nombreCargo}}</h4>\n                                    </div>\n                                </div>\n                            </div>\n\n                        </div>\n                    </ng-template>\n                    <ng-template pTemplate=\"footer\">\n                        <div class=\"flex justify-content-end\">\n                            <!-- OTROS -->\n                            <p-button icon=\"glyphicons glyphicons-parents\" *ngIf=\"subalterno.cantidadSubAlterno != 0\" (click)=\"consultarSubalternoSubalterno(subalterno)\"\n                                styleClass=\"p-button-rounded p-button-text\" title=\"{{'subalterno' | translate}}\">\n                            </p-button>\n                            <!-- REQUERIMIENTO -->\n                            <p-button icon=\"glyphicons glyphicons-user\"  *ngIf=\"verificarControl('plancli:reqper')\"\n                                styleClass=\"p-button-rounded p-button-text \" title=\"{{'requerimiento' | translate}}\"\n                                (click)=\"consultarRequerimiento(subalterno)\"></p-button>\n                            <!-- DESCRIPCION -->\n                            <p-button icon=\"glyphicons glyphicons-nameplate-alt\" *ngIf=\"verificarControl('plancli:descar')\"\n                                styleClass=\"p-button-rounded p-button-text \" (click)=\"verDescripcionCargoSubalterno(subalterno)\"\n                                title=\"{{'descripcioncargo' | translate}}\"></p-button>\n                            <!-- POSICION -->\n                            <p-button icon=\"glyphicons glyphicons-nameplate\" styleClass=\"p-button-rounded p-button-text\" *ngIf=\"verificarControl('plancli:conpos')\"\n                                (click)=\"consultarPosicionSubalterno(subalterno)\" title=\"{{'consultaposicion' | translate}}\"></p-button>\n                        </div>\n                    </ng-template>\n                </p-panel>\n            </div>\n\n        </div>\n    </div>\n</div>\n\n\n<div *ngIf=\"vistaVisualizar == 'posicion'\">\n    <div class=\"flex align-items-center justify-content-between align-items-center mb-5\">\n        <h1 style=\"margin-top: 1%;\">Planta Personal</h1>\n        <button pButton pRipple (click)=\"regresar()\" label=\"Regresar\"\n            icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold\"></button>\n    </div>\n<app-datos-puesto-trabajo-cont #datosPuestoTrabajoContComponent (regresarVista)=\"setVistaVisualizar(null)\"></app-datos-puesto-trabajo-cont>\n</div>\n<div *ngIf=\"vistaVisualizar == 'descripcioncargo'\">\n    <app-descripcion-cargo #descripcionCargoBean (setVista)=\"setVistaVisualizar(null)\"></app-descripcion-cargo>\n</div>\n<div *ngIf=\"vistaVisualizar == 'requerimientoPersonal'\">\n    <app-requerimiento-pm #requerimientoPM (setVistaVisualizar)=\"setVistaVisualizar($event)\"></app-requerimiento-pm>\n</div>\n\n<app-popup-motivo-requerimiento #popupMotivoReq (aplicarDestinoOcultar)=\"setVolverPM($event)\"></app-popup-motivo-requerimiento>","import { Component, ViewChild, } from '@angular/core';\nimport { PersonaModel } from '../../models/PersonaModel';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { FechaUtilsService, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { EventoJornadaModel } from '../../models/EventoJornadaModel';\nimport { ListaSitioPersonaPage } from '../calendario/lista-sitio-persona/lista-sitio-persona.page';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ButtonDirective } from 'primeng/button';\nimport { Ripple } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\n\n@Component({\n  selector: 'app-calendario-persona',\n  standalone: true,\n  imports: [NgIf, FormsModule, ReactiveFormsModule, InputTextModule, ButtonDirective, Ripple, TooltipModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, TranslateModule, ListaSitioPersonaPage, ConfirmPopupModule, DatePipe],\n  templateUrl: './calendario-persona.component.html',\n  styleUrl: './calendario-persona.component.scss',\n  providers: [DatePipe]\n})\nexport class CalendarioPersonaComponent {\n\n  @ViewChild('sitioPersonaCalendario') sitioPersonaCalendario: ListaSitioPersonaPage;\n\n  habilitado: boolean;\n  personaDTO: PersonaModel;\n  listaMarcaciones: EventoJornadaModel[] = [];\n  diasVer: number;\n  geoPosicion: boolean;\n  isLoadingData: boolean = false;\n  longitud: any;\n  latitud: any;\n  vistaVisualizarCalendario: string = null;\n\n  constructor(\n    private saraAplicacionService: SaraAplicacionService,\n    private generalService: GeneralService,\n    private generalPipe: GeneralPipe,\n    private fechaUtils: FechaUtilsService,\n    private datePipe: DatePipe,\n    private toastService: ToastService,\n    private utilsService: UtilsService,\n    private confirmationService: ConfirmationService\n  ) { }\n\n  async inicializar(isDiasVer: number) {\n    this.diasVer = isDiasVer;\n    this.habilitado = false;\n    if (await this.saraAplicacionService.getCedula() == null || await this.saraAplicacionService.getCedula() === 0) {\n      return;\n    }\n    this.personaDTO = null;\n    let persona: PersonaModel = new PersonaModel();\n    persona.hojaVida = await this.saraAplicacionService.getCedula();\n    persona.estado = 'A';\n    let lista: PersonaModel[] = await this.generalService.queryForList(new GeneralModel('PersonaDTO', null, false, persona)).toPromise();\n    if (lista.length == 0) {\n      return;\n    }\n    this.personaDTO = lista[0];\n    this.vistaVisualizarCalendario = 'calendario';\n    await this.utilsService.sleep(100);\n    this.sitioPersonaCalendario.inicializar(this.personaDTO, 'directopersona', this.diasVer);\n    if (this.personaDTO.pin == null) {\n      await this.utilsService.sleep(500);\n      this.utilsService.resizeWindowIFrame();\n      return;\n    }\n    this.geoPosicion = this.personaDTO.pin === 'P';\n    this.habilitado = this.personaDTO.pin === this.generalPipe.SI || this.geoPosicion;\n    this.traerListaMarcaciones();\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n\n  async traerListaMarcaciones() {\n    await this.utilsService.sleep(100);\n    let consultaFecha = await this.fechaUtils.sumaDiaFecha({ fechaBase: this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss.S'), dias: -1 }).toPromise();\n    let fecha = new Date(consultaFecha.respuesta);\n    let eventoJornada: EventoJornadaModel = new EventoJornadaModel();\n    eventoJornada.persona = this.personaDTO.llaveTabla;\n    eventoJornada.horaInicio = fecha;\n    this.isLoadingData = true;\n    this.listaMarcaciones = await this.generalService.queryForList(new GeneralModel('EventoJornadaDTO', null, false, eventoJornada)).toPromise();\n    this.listaMarcaciones.forEach(data => {\n      data.horaInicio = data.horaInicio ? new Date(data.horaInicio) : null;\n      data.horaFin = data.horaFin ? new Date(data.horaFin) : null;\n    });\n    this.isLoadingData = false;\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  showDialogGenerarMarcacion() {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        this.generarMarcacion();\n      },\n      reject: () => {\n      }\n    });\n  }\n\n  async generarMarcacion() {\n    let localiza: string = null;\n    if (this.longitud != null && this.latitud != null) {\n      localiza = this.latitud + \",\" + this.longitud;\n    }\n    let eventoJornadaDTO: EventoJornadaModel = new EventoJornadaModel();\n    eventoJornadaDTO.hojaVida = this.personaDTO.hojaVida;\n    eventoJornadaDTO.tipoMarcacion = this.generalPipe.NO;\n    eventoJornadaDTO.fechaEvento = new Date();\n    eventoJornadaDTO.conexion = 'M';\n    eventoJornadaDTO.tipoMedio = 'L';\n    eventoJornadaDTO.localizaLectura = localiza;\n    eventoJornadaDTO.persona = null;\n    eventoJornadaDTO.noCommit = null;\n    eventoJornadaDTO = await this.generalService.procedure(new GeneralModel('EventoJornadaDTO', 'EventoJornada.registrarTiempoDispositivo', false, eventoJornadaDTO)).toPromise();\n    if (eventoJornadaDTO.mensaje != null) {\n      if (\"ok\" === eventoJornadaDTO.mensaje) {\n        this.toastService.showInfo(\"Registro marcación ejecutado\");\n      }\n      else {\n        this.toastService.showError(eventoJornadaDTO.mensaje)\n        return;\n      }\n    }\n    await this.utilsService.sleep(100);\n    this.sitioPersonaCalendario.inicializar(this.personaDTO, 'directopersona', this.diasVer);\n    this.traerListaMarcaciones();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async registrarMarcacion(data: { latitud: number, longitud: number }): Promise<void> {\n    this.latitud = data.latitud;\n    this.longitud = data.longitud;\n    this.generarMarcacion();\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async obtenerUbicacion(): Promise<void> {\n    this.confirmationService.confirm({\n      target: event.target,\n      message: Constantes.MENSAJE_CONFIRMAR,\n      acceptLabel: 'Si',\n      rejectLabel: 'No',\n      accept: () => {\n        if (\"geolocation\" in navigator) {\n          navigator.geolocation.getCurrentPosition(\n            (position) => this.registrarMarcacion({\n              latitud: position.coords.latitude,\n              longitud: position.coords.longitude\n            }),\n            (error) => {\n              alert(\"Error al obtener la geolocalización: \" + error.message);\n            }\n          );\n        } else {\n          alert(\"La geolocalización no es soportada por este navegador.\");\n        }\n      }\n    });\n    await this.utilsService.sleep(500);\n    this.utilsService.resizeWindowIFrame();\n  }\n\n}\n","<p-confirmPopup></p-confirmPopup>\n@if(personaDTO !== null){\n    @if(vistaVisualizarCalendario === 'calendario'){\n        <div class=\"card p-4\">\n            <sitio-persona #sitioPersonaCalendario></sitio-persona>\n        </div>\n    }\n<div class=\"card p-4\" *ngIf=\"habilitado\">\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <h4 class=\"text-xl mt-2\">{{'reloj' | translate}}</h4>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                (click)=\"showDialogGenerarMarcacion()\" label=\"{{'registrar' | translate}} {{'marcacion' | translate}}\"\n                *ngIf=\"!geoPosicion\">\n            </button>\n            <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                (click)=\"obtenerUbicacion()\" label=\"{{'registrar' | translate}} {{'marcacion' | translate}}\"\n                *ngIf=\"geoPosicion\">\n            </button>\n        </div>\n    </div>\n    <p-table [value]=\"listaMarcaciones\" responsiveLayout=\"scroll\" [scrollable]=\"true\" styleClass=\"p-datatable-striped\"\n        [rows]=\"10\" [totalRecords]=\"listaMarcaciones.length\" [paginator]=\"listaMarcaciones.length > 10\"\n        [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n        [loading]=\"isLoadingData\">\n        <ng-template pTemplate=\"header\">\n            <tr>\n                <th>{{'entrada' | translate}}</th>\n                <th>{{'salida' | translate}}</th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-marcacion>\n            <tr [pSelectableRow]=\"marcacion\">\n                <td>{{marcacion.horaInicio | date: 'yyyy/MM/dd HH:mm'}}</td>\n                <td>{{marcacion.horaFin | date: 'yyyy/MM/dd HH:mm'}}</td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n</div>\n}","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, ParametrosGeneralModel, UtilsService } from 'general-library-union';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ArchivoModel } from '../../hojavida/models/ArchivoModel';\nimport { CursoModel } from '../../talento/models/CursoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ListaRegistroService {\n\n  constructor(private httpClient: HttpClient , private errorInterceptor : ErrorIntecertorService, private utilsService: UtilsService) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n\n  obtenerListaRegistro(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/obtenerListaRegistro`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n  consultarSalones(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/consultarSalones`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cargarArregloDias(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/cargarArregloDias`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  cargarRutafisica(general: ArchivoModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/cargarRutafisica`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  guardaregistroarchivo(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/guardaregistroarchivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n  \n\n  deleteregistro(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/deleteregistro`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n  \n  \n\neliminaregistroarchivo(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/eliminaregistroarchivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  crearegistroarchivo(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/crearegistroarchivo`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  \n\n\n  cargarlistacurso(general: CursoModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/cargarlistacurso`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n  copiarEvento(general: ParametrosGeneralModel): Observable<any> {\n    return this.httpClient.post<any[]>(`${this.utilsService.obtenerUrlApi()}/requieretoken/capacitacion/parametros/copiarEvento`, general).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n\n\n\n\n\n  \n}\n","import { Component, ViewChild } from '@angular/core';\nimport { EmpleadoModel } from '../../../modules/compensacion/models/EmpleadoModel';\nimport { CabeceraEmpleadoComponent } from '../cabecera-empleado/cabecera-empleado.component';\nimport { EmpleadoService } from '../../../modules/compensacion/services/empleado.service';\nimport { AusentismoPipe } from '../../../shared/pipes/ausentismo.pipe';\nimport { VacacionAusenciaHistoricoComponent } from '../../../modules/compensacion/ausentismos/vacacion-ausencia-historico/vacacion-ausencia-historico.component';\nimport { EditarHistoricoLicenciaComponent } from '../../../modules/compensacion/pages/empleados/ausentismos/editar-historico-licencia/editar-historico-licencia.component';\nimport { EditarHistoricoIncapacidadesComponent } from '../../../modules/compensacion/pages/empleados/ausentismos/editar-historico-incapacidades/editar-historico-incapacidades.component';\nimport { cargarmapasGlobal, GeneralModel, UtilsService } from 'general-library-union';\nimport { DialogModule } from 'primeng/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SaraAplicacionService } from '../../../shared/servicios/sara-aplicacion.service';\nimport { NovedadPipe } from '../../../modules/compensacion/pipes/novedad.pipe';\nimport { LicenciaAusenciaProgramadasComponent } from '../../../modules/compensacion/ausentismos/licencia-ausencia-programadas/licencia-ausencia-programadas.component';\nimport { IncapacidadAusenciaProgramadasComponent } from '../../../modules/compensacion/ausentismos/incapacidad-ausencia-programadas/incapacidad-ausencia-programadas.component';\nimport { VacacionAusenciaProgramadasComponent } from '../../../modules/compensacion/ausentismos/vacacion-ausencia-programadas/vacacion-ausencia-programadas.component';\n\n@Component({\n  selector: 'app-input-helper-detalle-ausencia-historico',\n  standalone: true,\n  imports: [CabeceraEmpleadoComponent, DialogModule, TranslateModule, VacacionAusenciaHistoricoComponent, EditarHistoricoLicenciaComponent, EditarHistoricoIncapacidadesComponent, LicenciaAusenciaProgramadasComponent, IncapacidadAusenciaProgramadasComponent, VacacionAusenciaProgramadasComponent],\n  templateUrl: './input-helper-detalle-ausencia-historico.component.html',\n  styleUrl: './input-helper-detalle-ausencia-historico.component.scss'\n})\nexport class InputHelperDetalleAusenciaHistoricoComponent {\n\n  @ViewChild('detalleHistoricoVacaciones') detalleHistoricoVacaciones: VacacionAusenciaHistoricoComponent;\n  @ViewChild('licenciaAusencia') licenciaAusencia: LicenciaAusenciaProgramadasComponent;\n  @ViewChild('incapacidadAusencia') incapacidadAusencia: IncapacidadAusenciaProgramadasComponent;\n  @ViewChild('vacacionAusenciaProgramadas') vacacionAusenciaProgramadas: VacacionAusenciaProgramadasComponent;\n\n  empleado: EmpleadoModel = new EmpleadoModel();\n  ausentismoDTO: any;\n  showDialog: boolean = false;\n  visibleSections = {\n    verVacacionesHistorico: false,\n    verLicenciaHistorico: false,\n    verIncapacidadHistorico: false,\n    verVacacionesProgramadas: false,\n    verLicenciaProgramadas: false,\n    verIncapacidadProgramadas: false,\n  };\n  listaTipoAusentismoLicencia = [];\n  listaTipoAusentismoIncapacidades = [];\n\n  constructor(\n    private empleadoService: EmpleadoService,\n    private ausentismoPipe: AusentismoPipe,\n    private utilsService: UtilsService,\n    private cargarMapas: cargarmapasGlobal,\n    private saraAplicacionService: SaraAplicacionService,\n    private novedadPipe: NovedadPipe\n  ) { }\n\n  async inicializar(origenTarea: string, ausentismo: any, empleadoDTO: EmpleadoModel, consulta: boolean, origenTabla: string) {\n    await this.cargarListasTipoAusentismo();\n    this.ausentismoDTO = ausentismo;\n    await this.cargarEmpleadoSiExiste(empleadoDTO);\n    this.configurarSeccionHistorico(origenTarea, ausentismo, consulta, origenTabla);\n    this.showDialog = true;\n  }\n\n  async cargarEmpleadoSiExiste(empleadoDTO: EmpleadoModel) {\n    if (empleadoDTO?.empresa && empleadoDTO.cedula) {\n      this.empleado = await this.empleadoService.obtenerEmpleado(empleadoDTO.empresa, empleadoDTO.cedula);\n    }\n  }\n\n  async configurarSeccionHistorico(origenTarea: string, ausentismo: any, consulta: boolean, origenTabla: string) {\n    this.resetearSecciones();\n    const secciones = {\n      [this.ausentismoPipe.VACACION]: () => this.configurarVacaciones(ausentismo, consulta, origenTabla),\n      [this.ausentismoPipe.LICENCIA]: () => this.configurarLicencia(ausentismo, origenTabla),\n      [this.ausentismoPipe.INCAPACIDAD]: () => this.configurarIncapacidad(ausentismo, origenTabla)\n    };\n    secciones[origenTarea]?.();\n  }\n\n  async configurarVacaciones(ausentismo: any, consulta: boolean, origenTabla: string) {\n    const esHistorico = origenTabla === this.novedadPipe.TABLA_AUSENCIA_HISTORICO;\n    this.visibleSections.verVacacionesHistorico = esHistorico;\n    this.visibleSections.verVacacionesProgramadas = !esHistorico;\n    await this.utilsService.sleep(100);\n    if (esHistorico) {\n      this.detalleHistoricoVacaciones.buscar(this.ausentismoPipe.ORIGEN_POPUP_HIST_VACACION, this.ausentismoPipe.FORM_POPUP_HISTORICO_VACACIONES, ausentismo, consulta);\n    } else {\n      this.vacacionAusenciaProgramadas.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_VACACION, null, ausentismo, this.empleado, true);\n    }\n  }\n\n  async configurarLicencia(ausentismo: any, origenTabla: string) {\n    const esHistorico = origenTabla === this.novedadPipe.TABLA_AUSENCIA_HISTORICO;\n    this.visibleSections.verLicenciaHistorico = esHistorico;\n    this.visibleSections.verLicenciaProgramadas = !esHistorico;\n    if (!esHistorico) {\n      await this.utilsService.sleep(500);\n      this.licenciaAusencia.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_LICENCIA, this.ausentismoPipe.FORM_EMPLEADO_LICENCIA, ausentismo, this.empleado, true);\n    }\n  }\n\n  async configurarIncapacidad(ausentismo: any, origenTabla: string) {\n    const esHistorico = origenTabla === this.novedadPipe.TABLA_AUSENCIA_HISTORICO;\n    this.visibleSections.verIncapacidadHistorico = esHistorico;\n    this.visibleSections.verIncapacidadProgramadas = !esHistorico;\n    if (!esHistorico) {\n      await this.utilsService.sleep(500);\n      this.incapacidadAusencia.buscar(this.ausentismoPipe.ORIGEN_EMPLEADO_INCAPACIDAD, this.ausentismoPipe.FORM_EMPLEADO_INCAPACIDAD, ausentismo, this.empleado, true);\n    }\n  }\n\n  resetearSecciones() {\n    Object.keys(this.visibleSections).forEach(section => this.visibleSections[section] = false);\n  }\n\n  async cargarListasTipoAusentismo() {\n    const modoCompensacion = (await this.saraAplicacionService.getEmpresa()).modoCompensacion;\n    this.listaTipoAusentismoLicencia = await this.cargarListaTipoAusentismo(this.ausentismoPipe.LICENCIA, modoCompensacion);\n    this.listaTipoAusentismoIncapacidades = await this.cargarListaTipoAusentismo(this.ausentismoPipe.INCAPACIDAD, modoCompensacion);\n  }\n\n  async cargarListaTipoAusentismo(origen: string, modoCompensacion: string) {\n    return await this.cargarMapas.cargarSelectItemString('llaveTabla', 'descripcion', new GeneralModel('TipoAusenciaDTO', null, false, { modoParametro: modoCompensacion, origen }));\n  }\n\n  mostrar() {\n    this.showDialog = true;\n  }\n\n  ocultar() {\n    this.showDialog = false;\n  }\n}\n","<p-dialog header=\"{{'detalle' | translate}} {{'ausentismo' | translate}}\" [(visible)]=\"showDialog\" [modal]=\"true\" appendTo=\"body\"\n    [style]=\"{ width: '70vw' }\" (onHide)=\"ocultar()\" (onShow)=\"mostrar()\">\n    @if(empleado.documento != null){\n    <div class=\"p-fluid grid mt-3\">\n        <app-cabecera-empleado [empleado]=\"empleado\"></app-cabecera-empleado>\n    </div>\n    @if(visibleSections.verVacacionesHistorico){<app-vacacion-ausencia-historico #detalleHistoricoVacaciones></app-vacacion-ausencia-historico>}\n    @if(visibleSections.verLicenciaHistorico){<app-editar-historico-licencia [ausentismoDTO]=\"ausentismoDTO\" [empleadoDTO]=\"empleado\" [listaTipoLicenciaAusencia]=\"listaTipoAusentismoLicencia\" [unicoRegistro]=\"true\"></app-editar-historico-licencia>}\n    @if(visibleSections.verIncapacidadHistorico){<app-editar-historico-incapacidades  [ausentismoDTO]=\"ausentismoDTO\" [empleadoDTO]=\"empleado\" [listaTipoLicenciaAusencia]=\"listaTipoAusentismoIncapacidades\" [unicoRegistro]=\"true\"></app-editar-historico-incapacidades>}\n\n    @if(visibleSections.verVacacionesProgramadas){<app-vacacion-ausencia-programadas #vacacionAusenciaProgramadas></app-vacacion-ausencia-programadas>}\n    @if(visibleSections.verLicenciaProgramadas){<app-licencia-ausencia-programadas #licenciaAusencia ></app-licencia-ausencia-programadas>}\n    @if(visibleSections.verIncapacidadProgramadas){<app-incapacidad-ausencia-programadas #incapacidadAusencia></app-incapacidad-ausencia-programadas>}\n}\n</p-dialog>","import { Component, signal, ViewChild } from '@angular/core';\nimport { FullCalendarComponent, FullCalendarModule } from '@fullcalendar/angular';\nimport { CalendarOptions } from '@fullcalendar/core';\nimport { Constantes } from '../../../../shared/constantes/Constantes';\nimport { ConfirmationService, PrimeTemplate } from 'primeng/api';\nimport interactionPlugin from '@fullcalendar/interaction';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport listPlugin from '@fullcalendar/list';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { ButtonDirective } from 'primeng/button';\nimport { NgIf } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { Ripple } from 'primeng/ripple';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { AusenciaModel } from '../../models/AusenciaModel';\nimport { EmpleadoModel } from '../../models/EmpleadoModel';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { AusentismoPipe } from '../../../../shared/pipes/ausentismo.pipe';\nimport { InputHelperUnidadComponent } from '../../../../shared/componentes/input-helper-unidad/input-helper-unidad.component';\nimport { UnidadOrganizacionalModel } from '../../../../modules/talento/models/UnidadOrganizacionalModel';\nimport { CalendarModule } from 'primeng/calendar';\nimport { EmpleadoService } from '../../services/empleado.service';\nimport { InputHelperDetalleAusenciaHistoricoComponent } from '../../../../shared/componentes/input-helper-detalle-ausencia-historico/input-helper-detalle-ausencia-historico.component';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { AusentismoService } from '../../services/ausentismo.service';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { BlockUIModule } from 'primeng/blockui';\nimport { NovedadPipe } from '../../pipes/novedad.pipe';\nimport { AusenciaNovedadModel } from '../../models/AusenciaNovedadModel';\n\nexport interface EventoCalendario {\n  id: number;\n  title: string;\n  start: string;\n  end: string;\n  color: string;\n  allDay: boolean;\n  llaveEvento: string;\n  editable: boolean;\n  fechaInicio: Date;\n  fechaFin: Date;\n  fechaTermina: Date;\n  origenTabla: string;\n}\n\n@Component({\n  standalone: true,\n  imports: [ConfirmDialogModule, PrimeTemplate, ConfirmPopupModule, ButtonDirective, NgIf, FormsModule, ReactiveFormsModule, InputTextModule, DropdownModule, Ripple, TranslateModule, FiltroGeneralComponent, TableModule, TemplateTablaVaciaComponent, FullCalendarModule, InputHelperUnidadComponent, CalendarModule, InputHelperDetalleAusenciaHistoricoComponent, ProgressSpinnerModule, BlockUIModule],\n  templateUrl: './calendario-ausentismo.page.html',\n  styleUrl: './calendario-ausentismo.page.scss',\n  selector: 'app-calendario-ausentismo',\n  providers: [ConfirmationService, FullCalendarComponent]\n})\n\nexport class CalendarioAusentismoPage {\n\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n  @ViewChild('detalleAusenciaHistorico') detalleAusenciaHistorico: InputHelperDetalleAusenciaHistoricoComponent;\n  options: any;\n  evento: any[] = [];\n  unidad: string;\n  nombreUnidad: string;\n  llaveAusencia: string;\n  COLOR_VACACION: string = \"#d5e3b8\";\n  COLOR_LICENCIA: string = \"#ffd2b1\";\n  COLOR_INCAPACIDAD: string = \"#c5e8ef\";\n  filters = [];\n  clickedEvent: any;\n  isLoading: boolean = false;\n  loadingPage: boolean = false;\n  primerDiaMes: Date;\n  ultimoDiaMes: Date;\n  origenTabla: string;\n  documento: string;\n\n  option = signal<CalendarOptions>({\n    plugins: [\n      interactionPlugin,\n      dayGridPlugin,\n      timeGridPlugin,\n      listPlugin,\n    ],\n    initialView: 'dayGridMonth',\n    weekends: true,\n    selectMirror: true,\n    dayMaxEvents: true,\n    initialDate: new Date(),\n    headerToolbar: {\n      left: 'prev,next today',\n      center: 'title',\n      right: Constantes.CALENDARIO_GENERAL\n    },\n    buttonText: {\n      prev: \"<\",\n      next: \">\",\n      today: \"Hoy\",\n      month: \"Mes\",\n      week: \"Semana\",\n      day: \"D\\xEDa\",\n      list: \"Agenda\"\n    },\n    droppable: false,\n    editable: false,\n    selectable: false,\n    locale: 'es',\n    events: this.evento,\n    eventClick: this.onEventClick.bind(this),\n    datesSet: this.onDatesSet.bind(this)\n  });\n\n  constructor(\n    private generalService: GeneralService,\n    private ausentismoPipe: AusentismoPipe,\n    private utilsService: UtilsService,\n    private toastService: ToastService,\n    public translateService: TranslateService,\n    private confirmationService: ConfirmationService,\n    private empleadoService: EmpleadoService,\n    private menuService: MenuService,\n    private saraAplicacionService: SaraAplicacionService,\n    private authService: AuthService,\n    private ausentismoService: AusentismoService,\n    private novedadPipe: NovedadPipe\n  ) {\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('calendario') + \" \" + this.translateService.instant('ausentismo') }]);\n    this.filters = [\n      {\n        field: 'unidad',\n        header: this.translateService.instant('unidad'),\n        matchMode: 'contains',\n      },\n      {\n        field: 'documento',\n        header: this.translateService.instant('documento'),\n        matchMode: 'contains',\n      },\n    ];\n  }\n\n  async crearCalendario() {\n    this.loadingPage = true;\n    const eventosTemp: EventoCalendario[] = [];\n    if (this.isCliente() && this.authService.getTokenKey('aplicacion')?.trim() == '10') {\n      let consultaEmpleado: EmpleadoModel = new EmpleadoModel();\n      consultaEmpleado.cedula = await this.saraAplicacionService.getCedula()\n      consultaEmpleado.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n      let listaEmpleado = await this.generalService.queryForList(new GeneralModel('EmpleadoDTO', null, false, consultaEmpleado)).toPromise();\n      if (listaEmpleado.length > 1) {\n        this.toastService.showError('Usuario asociado a más de una hoja de vida');\n        this.utilsService.resizeWindowIFrame();\n        return;\n      }\n    }\n    let listaAusencias: any[] = await this.ausentismoService.calendarioAusentismo({\n      empresa: parseInt(this.authService.getTokenKey('numeroEmpresa')),\n      cedula: await this.saraAplicacionService.getCedula(),\n      fechaInicial: new Date(this.primerDiaMes),\n      fechaFinal: new Date(this.ultimoDiaMes),\n      unidad: this.unidad,\n      usuario: this.authService.getTokenKey('usuario'),\n      rol: this.authService.getTokenKey('aliasRol'),\n      documento: this.documento\n    }).toPromise();\n    let i = 0;\n    for (const dto of listaAusencias) {\n      if (dto.salida == null || dto.regreso == null) {\n        continue;\n      }\n      eventosTemp.push({\n        id: i++,\n        llaveEvento: dto.llaveTabla,\n        title: dto.nombreCompleto + \" \" + Constantes.ESPACIO_BLANCO + \"- Tipo Ausencia :\" + dto.descripcionTipoAusencia,\n        start: new Date(dto.salida).toISOString(),\n        end: new Date(dto.regreso).toISOString(),\n        editable: false,\n        color: this.obtenerColorEvento(dto.origenAusencia),\n        allDay: true,\n        fechaInicio: new Date(dto.salida),\n        fechaFin: new Date(dto.regreso),\n        fechaTermina: new Date(dto.termina),\n        origenTabla: dto.origenTabla\n      });\n    }\n    this.evento = [...eventosTemp];\n    this.option.update((options) => ({ ...options, events: this.evento }));\n    this.loadingPage = false;\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  onSelectUnidad(unidadSelect: UnidadOrganizacionalModel) {\n    this.unidad = unidadSelect.unidad;\n    this.nombreUnidad = unidadSelect.nombreUnidad;\n  }\n\n  obtenerColorEvento(tipo: string): string {\n    switch (tipo) {\n      case this.ausentismoPipe.VACACION:\n        return this.COLOR_VACACION;\n      case this.ausentismoPipe.LICENCIA:\n        return this.COLOR_LICENCIA;\n      case this.ausentismoPipe.INCAPACIDAD:\n        return this.COLOR_INCAPACIDAD;\n      default:\n        return '#000000';\n    }\n  }\n\n  cargarListaFiltros() {\n    const aplicarFiltro = this.filtroGeneral.isApply;\n    if (!aplicarFiltro) {\n      this.unidad = null;\n      this.documento = null;\n    }\n    this.crearCalendario();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  onEventClick(e: any): void {\n    this.clickedEvent = [];\n    this.clickedEvent.start = e.event?.start;\n    this.clickedEvent.end = e.event?._def?.extendedProps.fechaTermina ? e.event?._def?.extendedProps.fechaTermina : (e.event?.end ? e.event?.end : null);\n    this.clickedEvent.title = e.event?.title;\n    this.clickedEvent.id = e.event?.id;\n    this.llaveAusencia = e.event?._def?.extendedProps.llaveEvento;\n    this.origenTabla = e.event?._def?.extendedProps.origenTabla;\n    this.confirmationService.confirm({\n      header: this.translateService.instant('evento'),\n      icon: 'confirmar',\n    });\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  async obtenerAusentismo(): Promise<any> {\n    let ausentismo: any;\n    const modeloAusencia = this.origenTabla === this.novedadPipe.TABLA_AUSENCIA_HISTORICO ? new AusenciaModel() : new AusenciaNovedadModel();\n    modeloAusencia.llaveTabla = this.llaveAusencia;\n    const dto = modeloAusencia instanceof AusenciaNovedadModel ? 'AusenciaNovedadDTO' : 'AusenciaDTO';\n    ausentismo = await this.generalService.queryForObject(new GeneralModel(dto, null, false, modeloAusencia)).toPromise();\n    if (this.origenTabla === this.novedadPipe.TABLA_AUSENCIA) {\n      ausentismo.origenAusencia = ausentismo.origen;\n    }\n    return ausentismo;\n  }\n\n  async verAusencia() {\n    this.isLoading = true;\n    const ausentismo = await this.obtenerAusentismo();\n    if (!ausentismo) {\n      this.isLoading = false;\n      return;\n    }\n    const empleado: EmpleadoModel = await this.empleadoService.obtenerContratoActivo({ empresa: ausentismo.empresa, contrato: ausentismo.contrato }).toPromise();\n    await this.utilsService.sleep(100);\n    if (!ausentismo.origenAusencia) {\n      this.isLoading = false;\n      this.toastService.showWarning(\"El ausentismo no tiene un origen definido\");\n      return;\n    }\n    const origen = ausentismo.origenAusencia;\n    const detallesValidos = [this.ausentismoPipe.VACACION, this.ausentismoPipe.LICENCIA, this.ausentismoPipe.INCAPACIDAD];\n    if (detallesValidos.includes(origen)) {\n      this.detalleAusenciaHistorico.inicializar(origen, ausentismo, empleado, false, this.origenTabla);\n    }\n    this.isLoading = false;\n  }\n\n  handleEnterKey(event: any) {\n    event?.preventDefault();\n  }\n\n  onDatesSet(event: any): void {\n    const currentDate = event.view.currentStart;\n    const year = currentDate.getFullYear();\n    const month = currentDate.getMonth();\n\n    this.primerDiaMes = new Date(year, month, 1);\n    this.ultimoDiaMes = new Date(year, month + 1, 0);\n    this.crearCalendario();\n    this.utilsService.resizeWindowIFrame();\n  }\n\n  isCliente(): boolean {\n    return this.saraAplicacionService.isCliente();\n  }\n\n}\n","@if(loadingPage){\n<p-blockUI [blocked]=\"true\">\n    <p-progressSpinner ariaLabel=\"loading\"></p-progressSpinner>\n    <div class=\"spinner-text\">Procesando</div>\n</p-blockUI>\n}\n<div class=\"flex align-items-center justify-content-between align-items-center\">\n    <h1 class=\"mb-3\">{{'calendarioausentismos' | translate}}</h1>\n</div>\n<div class=\"flex justify-content-between align-items-center mb-3\">\n    <app-filtro-general #filtroGeneral [filtros]=\"filters\" (metodoRegresarAdicional)=\"cargarListaFiltros()\">\n        <ng-template let-form>\n            <ng-container [formGroup]=\"form\">\n                <div class=\"field\">\n                    <span class=\"p-float-label\">\n                        <app-input-helper-unidad formControlName=\"unidad\" [(ngModel)]=\"nombreUnidad\"\n                            [label]=\"unidad ? nombreUnidad : ''\" (onSelected)=\"onSelectUnidad($event)\" [punto]=\"true\"\n                            [verUnidades]=\"true\" [estado]=\"'S'\" (keydown.enter)=\"handleEnterKey($event)\"\n                            [header]=\"translateService.instant('unidad')\">\n                        </app-input-helper-unidad>\n                    </span>\n                </div>\n                <div class=\"field\">\n                    <span class=\"p-float-label\">\n                        <input pInputText autofocus type=\"text\" formControlName=\"documento\" [(ngModel)]=\"documento\"\n                            autocomplete=\"off\" [maxlength]=\"16\" (keydown.enter)=\"handleEnterKey($event)\" />\n                        <label for=\"id_documento\">{{'documento' | translate}}</label>\n                    </span>\n                </div>\n            </ng-container>\n        </ng-template>\n    </app-filtro-general>\n</div>\n<p-confirmDialog #cd [style]=\"{width: '40vw'}\">\n    <ng-template pTemplate=\"footer\">\n        <div class=\"p-fluid p-formgrid grid\">\n            <!-- DESCRIPCION -->\n            <div class=\"field col-12 md:col-6 lg:col-12\">\n                <span class=\"p-float-label\">\n                    <input pInputText id=\"id_descripcion\" [(ngModel)]=\"clickedEvent.title\" disabled>\n                    <label for=\"id_descripcion\">{{'descripcion' | translate}} *</label>\n                </span>\n            </div>\n            <!--FECHA INICIAL  -->\n            <div class=\"field col-6 md:col-6 lg:col-6\">\n                <span class=\"p-float-label\">\n                    <p-calendar id=\"start\" [(ngModel)]=\"clickedEvent.start\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                        name=\"start\" disabled></p-calendar>\n                    <label for=\"start\">{{'fecha_inicial' | translate}} *</label>\n                </span>\n            </div>\n            <!-- FECHA FINAL -->\n            <div class=\"field col-6 md:col-6 lg:col-6\">\n                <span class=\"p-float-label\">\n                    <p-calendar id=\"end\" name=\"end\" [(ngModel)]=\"clickedEvent.end\" dateFormat=\"dd/mm/yy\"\n                        [showIcon]=\"true\" disabled></p-calendar>\n                    <label for=\"end\">{{'fecha_final' | translate}} *</label>\n                </span>\n            </div>\n        </div>\n        <div class=\"flex justify-content-end\">\n            <button pButton pRipple class=\"p-button p-button-raised m-0\" icon=\"glyphicons glyphicons-eye-open\"\n                label=\"{{'ver' | translate}} {{'detalle' | translate}}\" (click)=\"verAusencia()\" [loading]=\"isLoading\">\n            </button>\n        </div>\n    </ng-template>\n</p-confirmDialog>\n<div class=\"card p-4 calendario-ausentismo\">\n    <full-calendar #calendar [options]=\"option()\"></full-calendar>\n</div>\n<app-input-helper-detalle-ausencia-historico #detalleAusenciaHistorico></app-input-helper-detalle-ausencia-historico>","import { Component, EventEmitter, Input, OnInit, Output, input } from '@angular/core';\nimport { CodigoBaseViaticoModel } from '../../models/CodigoBaseViaticoModel';\nimport { AuthService, GeneralModel, GeneralService, ToastService, UtilsService } from 'general-library-union';\nimport { ViaticosPipe } from '../../pipes/viaticos.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { DialogModule } from 'primeng/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FieldsetModule } from 'primeng/fieldset';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { NgFor } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\n\n@Component({\n  selector: 'app-popup-destino-solicitud-viatico',\n  standalone: true,\n  imports: [\n    DialogModule,\n    TranslateModule,\n    FieldsetModule,\n    RadioButtonModule,\n    NgFor,\n    FormsModule,\n    ButtonModule,\n    RippleModule,\n  ],\n  templateUrl: './popup-destino-solicitud-viatico.component.html',\n  styleUrl: './popup-destino-solicitud-viatico.component.scss'\n})\nexport class PopupDestinoSolicitudViaticoComponent implements OnInit{\n\n  public destinoViatico: CodigoBaseViaticoModel;\n\tpublic listaDestinos: any[] = [];\n\n  public clickContinuar: boolean;\n  @Input() public mostrarPopup: boolean;\n  @Output() public regresar = new EventEmitter();\n\n  constructor(private generalService: GeneralService,\n              public utilsService: UtilsService,\n              private viaticosPipe: ViaticosPipe,\n              private generalPipe: GeneralPipe,\n              private notificacionesService: ToastService,\n              private authService: AuthService,\n  ) {}\n\n  ngOnInit() {\n    this.destinoViatico = new CodigoBaseViaticoModel();\n    this.listaDestinos = [];\n    var dto = new CodigoBaseViaticoModel();\n    dto.tabla = this.viaticosPipe.DESTINO;\n    this.generalService.queryForList(new GeneralModel('CodigoBaseViaticoDTO', null, false, dto)).subscribe(data => {\n      for (let destino of data) {\n        this.listaDestinos.push({value: destino.llaveTabla, label: this.utilsService.capitalizeFully(destino.descripcion)});\n      }\n      this.utilsService.sleep(1000).then(data => {\n        this.utilsService.resizeWindowIFrame();\n      })\n    });\n  }\n\n  validar() {\n    var validador: boolean = true;\n    validador = validador && this.utilsService.validarCampoObligatorio(this.destinoViatico.llaveTabla);\n    return validador;\n  }\n\n  continuar() {\n    this.clickContinuar = true;\n    if (!this.validar()) {\n      this.notificacionesService.showError(this.generalPipe.MENSAJE_CAMPOS_OBLIGATORIOS);\n      return;\n    }\n    this.clickContinuar = false;\n    this.regresar.emit(this.destinoViatico.llaveTabla);\n    this.mostrarPopup = false;\n  }\n\n  ocultar() {\n    this.mostrarPopup = false;\n    this.regresar.emit(null);\n  }\n\n}","<p-dialog header=\"{{'destino' | translate}}\"\n    [(visible)]=\"mostrarPopup\" [breakpoints]=\"{'560px': '75vw', '640px': '100vw'}\" [style]=\"{width: '50vw'}\" \n    (onHide)=\"ocultar()\" [modal]=\"true\">\n\n    <p-fieldset class=\"mt-0\" >\n        <ng-template pTemplate=\"header\">\n            <div>\n                <span class=\"pi pi-car\" style=\"color:var(--color-400)\"></span>\n                <span class=\"ml-3\">{{'seleccionedestino' | translate}}*</span>\n            </div>\n        </ng-template>\n        <div class=\"col-md-12\">\n            <div class=\"p-fluid p-formgrid grid text-xs\">\n                <div class=\"field col-12 md:col-6 lg:col-4 align-items-center mb-0\"  *ngFor=\"let valor of listaDestinos\">\n                    <div class=\"field-radiobutton\">\n                        <p-radioButton [inputId]=\"valor.value\" name=\"tipoReporte\"\n                            [value]=\"valor.value\" [(ngModel)]=\"destinoViatico.llaveTabla\" />\n                        <label [for]=\"valor.value\" class=\"ml-2\">\n                            {{ valor.label }}\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        @if (destinoViatico.llaveTabla) {\n            <div class=\"flex justify-content-end\">\n                <button pButton pRipple class=\"ml-2 p-button p-button-raised\" icon=\"pi pi-chevron-right\"\n                    label=\"{{'link_continuar' | translate}}\" (click)=\"continuar()\">\n                </button>\n            </div>\n        }\n    </p-fieldset>\n\n</p-dialog>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ViaticoModel } from '../../../models/ViaticoModel';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AuthService, FiltroGeneralComponent, GeneralModel, UtilsService } from 'general-library-union';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { ViaticosPipe } from '../../../pipes/viaticos.pipe';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { InputHelperHojaVidaComponent } from '../../../../../shared/componentes/input-helper-hoja-vida/input-helper-hoja-vida.component';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { SelectListViaticos } from '../../../services/select-list-viaticos.service';\nimport { DatePipe } from '@angular/common';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { HojaVidaModel } from '../../../../../modules/hojavida/models/HojaVidaModel';\nimport { PopupDestinoSolicitudViaticoComponent } from '../../../popups/popup-destino-solicitud-viatico/popup-destino-solicitud-viatico.component';\nimport { ButtonModule } from 'primeng/button';\nimport { RippleModule } from 'primeng/ripple';\nimport { DetalleSolicitudViaticoComponent } from '../detalle-solicitud-viatico/detalle-solicitud-viatico.component';\n\n@Component({\n  selector: 'app-listado-solicitud-viatico',\n  standalone: true,\n  imports: [\n    TableModule, TemplateTablaVaciaComponent,\n    InputHelperHojaVidaComponent,\n    InputHelperEmpleadoBotonComponent,\n    DropdownModule,\n    FiltroGeneralComponent,\n    ReactiveFormsModule,\n    TranslateModule,\n    DatePipe,\n    PopupDestinoSolicitudViaticoComponent,\n    ButtonModule,\n    RippleModule,\n    DetalleSolicitudViaticoComponent,\n  ],\n  templateUrl: './listado-solicitud-viatico.component.html',\n  styleUrl: './listado-solicitud-viatico.component.scss'\n})\nexport class ListadoSolicitudViaticoComponent implements OnInit{\n\n  public paginador: ViaticoModel[] = [];\n  public filters: any[] = [];\n  private empresa: number;\n  private elabora: number;\n  public loading: boolean = false;\n  public listadoComision: any[] = [];\n  public vistaVisualizar: string = null;\n  public filtroNombre: number;\n  public mostrarSolicitud: boolean;\n  public paginator = {\n    totalRecords: 0, \n    rows: 10\n  }\n\n  @ViewChild('filtro') filtro: FiltroGeneralComponent;\n  @ViewChild('solicitado') solicitado: InputHelperHojaVidaComponent;\n  @ViewChild('participante') participante: InputHelperEmpleadoBotonComponent;\n  @ViewChild('detalle') detalle: DetalleSolicitudViaticoComponent;\n\n  constructor(private generalService: GeneralService,\n              private translateService: TranslateService,\n              private authService: AuthService,\n              private saraAplicacionService: SaraAplicacionService,\n              private viaticosPipe: ViaticosPipe,\n              private selectListViaticos: SelectListViaticos,\n              public sanitizer: DomSanitizer,\n              private utilsService: UtilsService,\n  ) {}\n\n  async ngOnInit() {\n    this.filters = [\n      {\n        field: 'solicita',\n        header: this.translateService.instant('solicitado'),\n        values: (key) => this.solicitado.label,\n        matchMode: 'equal',\n      },\n      {\n        field: 'programacionParticipante',\n        header: this.translateService.instant('participante'),\n        values: (key) => this.participante.label,\n        matchMode: 'equal',\n      },\n      {\n        field: 'tipoComision',\n        header: this.translateService.instant('tipocomision'),\n        values: (key) => this.listadoComision.filter(data => data.value == key)[0].label,\n        matchMode: 'equal',\n      },\n    ];\n    await this.inicializar();\n  }\n\n  async inicializar() {\n    this.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.elabora = this.saraAplicacionService.isCliente() ? await this.saraAplicacionService.getCedula() : null;\n    console.log('elabora: ' + this.elabora)\n    this.listadoComision = await this.selectListViaticos.getListadoComision();\n    await this.utilsService.sleep(500);\n    this.filtro.aplicarFiltros();\n    \n  }\n\n  cargarPaginador(event) {\n    this.loading = true;\n    if (!event.filters.solicita?.value && this.solicitado) {\n      this.solicitado.label = '';\n    }\n    if (!event.filters.programacionParticipante?.value && this.participante) {\n      this.participante.label = '';\n    }\n    let objeto = {\n      paginacionRegistroInicial: event.first,\n      paginacionRegistroFinal: event.rows,\n      empresa: this.empresa,\n      elabora: this.elabora,\n      estado: this.viaticosPipe.SOLICITADO,\n      solicita: event.filters.solicita?.value,\n      programacionParticipante: event.filters.programacionParticipante?.value,\n      tipoComision: event.filters.tipoComision?.value\n    }\n    this.generalService.queryForList(new GeneralModel('ViaticoDTO', null, false, objeto)).subscribe(data => {\n      this.paginador = data;\n      this.generalService.cantidadRegistros(new GeneralModel('ViaticoDTO', null, false, objeto)).subscribe(data => {\n        this.paginator.totalRecords = data;\n        this.loading = false;\n        this.utilsService.resizeWindowIFrame();\n      })\n    })\n  }\n\n  nuevo() {\n    this.mostrarSolicitud = true;\n  }\n\n  setDestinoViatico(event) {\n    this.vistaVisualizar = 'detalle';\n  }\n\n  async verDetalle(event) {\n    this.vistaVisualizar = 'detalle';\n    await this.utilsService.sleep(1000);\n    await this.detalle.cargar(event.data);\n  }\n\n  async regresarSolicitud(event) {\n    this.mostrarSolicitud = false;\n    if (event) {\n      this.vistaVisualizar = 'detalle';\n      await this.utilsService.sleep(1000);\n      await this.detalle.nuevoViatico(event);\n    } else {\n      this.vistaVisualizar = null;\n      await this.utilsService.sleep(500);\n      this.filtro.aplicarFiltros();\n    }\n  }\n\n  regresar(event) {\n    this.vistaVisualizar = null;\n  }\n\n  setPopupHoja(empleado: HojaVidaModel) {\n    this.filtroNombre = empleado.identifica;\n  }\n\n  sanitizeHtml(html: string) {\n    if (!html) {\n      return '';\n    }\n    return this.sanitizer.bypassSecurityTrustHtml(html);\n  }\n\n  handleEnterKey(event: any) {\n    event.preventDefault();\n  }\n\n  filtrarEnter(event) {\n    if (event.key === 'Enter') {\n      this.filtro.aplicarFiltros();\n    }\n  }\n}\n","@if(vistaVisualizar == null || vistaVisualizar == undefined) {\n    <h1 class=\"mb-2\">{{'solicitudviatico' | translate}}</h1>\n    <div class=\"flex justify-content-between align-items-center mb-3\">\n        <app-filtro-general #filtro [filtros]=\"filters\" [datatable]=\"tablaGeneral\"  >\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex filtroContainer\" style=\"min-width:30rem\">\n                         <div class=\"field mr-2 w-full\">\n                            <div class=\"w-full\">\n                                <app-input-helper-hoja-vida #solicitado [ocultarBtnLimpiar]=\"true\" [header]=\"'solicitado' | translate\"\n                                    formControlName=\"solicita\" (onSelected)=\"setPopupHoja($event)\" [(ngModel)]=\"filtroNombre\">\n                                </app-input-helper-hoja-vida>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"flex filtroContainer\" style=\"min-width:30rem\">\n                         <div class=\"field mr-2 w-full\">\n                            <div class=\"w-full\">\n                                <app-input-helper-empleado-boton #participante [nombreInput]=\"'participante' | translate\"\n                                    formControlName=\"programacionParticipante\"></app-input-helper-empleado-boton>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"flex filtroContainer\" style=\"min-width:30rem\">\n                         <div class=\"field mr-2 w-full\">\n                            <div class=\"w-full\">\n                                <div class=\"p-float-label\">\n                                    <p-dropdown [options]=\"listadoComision\" [autoDisplayFirst]=\"false\" formControlName=\"tipoComision\" \n                                        [showClear]=\"true\"  (keydown)=\"filtrarEnter($event)\" (keydown.enter)=\"handleEnterKey($event)\"></p-dropdown>\n                                    <label>{{'tipo' | translate}}</label>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </ng-container>\n            </ng-template>\n        </app-filtro-general>\n\n        <button pButton pRipple label=\"{{'link_nuevo' | translate}}\" icon=\"glyphicons glyphicons-file-plus\"\n            class=\"p-button-outlined claro ml-3\" (click)=\"nuevo()\"></button>\n    </div>\n\n    <p-table #tablaGeneral [value]=\"paginador\" responsiveLayout=\"scroll\" [scrollable]=\"true\"\n      styleClass=\"p-datatable-striped\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\"\n      [paginator]=\"paginator.totalRecords > paginator.rows\" (onLazyLoad)=\"cargarPaginador($event)\" [lazy]=\"true\"\n      [scrollable]=\"true\" [showCurrentPageReport]=\"true\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n      [loading]=\"loading\" selectionMode=\"single\" (onRowSelect)=\"verDetalle($event)\" scrollDirection=\"horizontal\">\n      <ng-template pTemplate=\"header\">\n        <tr class=\"fondoTablaPincipal\">\n          <th style=\"width: 20%;\">{{'documento' | translate}}</th>\n          <th style=\"width: 40%;\">{{'datosviatico' | translate}}</th>\n          <th style=\"width: 20%;\">{{'solicitado' | translate}}</th>\n          <th style=\"width: 20%;\">{{'participantes' | translate}}</th>\n        </tr>\n        <th>\n      </ng-template>\n      <ng-template pTemplate=\"body\" let-bean let-expanded=\"expanded\">\n        <tr [pSelectableRow]=\"bean\">\n          <td style=\"width: 20%;\">\n            <div class=\"p-fluid p-formgrid grid col-12\" style=\"align-items: center\">\n                <div class=\"col-12 md:col-5 lg:col-5\">\n                    <label class=\" font-semibold\">{{'numero' | translate}}:</label>\n                </div>\n                <div class=\"col-12 md:col-7 lg:col-7\">\n                    <label>{{bean.numero}}</label>\n                </div>\n                <div class=\"col-12 md:col-5 lg:col-5\">\n                    <label class=\" font-semibold\">{{'fecha' | translate}}:</label>\n                </div>\n                <div class=\"col-12 md:col-7 lg:col-7\">\n                    <label>{{bean.fechaNumero | date : ('formatofecha' | translate)}}</label>\n                </div>\n            </div>\n          </td>\n          <td style=\"width: 40%;\">\n            <div class=\"p-fluid p-formgrid grid \" style=\"align-items: center\">\n                <div class=\"col-12 md:col-3 lg:col-3\">\n                    <label class=\" font-semibold\">{{'destino' | translate}}:</label>\n                </div>\n                <div class=\"col-12 md:col-9 lg:col-9\">\n                    <label>{{bean.destino_viaVal}}</label>\n                </div>\n                <div class=\"col-12 md:col-3 lg:col-3\">\n                    <label class=\" font-semibold\">{{'tipocomision' | translate}}:</label>\n                </div>\n                <div class=\"col-12 md:col-9 lg:col-9\">\n                    <label>{{bean.tipoComision_viaVal}}</label>\n                </div>\n                <div class=\"col-12 md:col-3 lg:col-3\">\n                    <label class=\" font-semibold\">{{'ambito' | translate}}:</label>\n                </div>\n                <div class=\"col-12 md:col-9 lg:col-9\">\n                    <label>{{bean.ambito_viaVal}}</label>\n                </div>\n            </div>\n          </td>\n          <td style=\"width: 20%;\">{{bean.nombreSolicita}}</td>\n          <td style=\"width: 20%;\">    \n            <div [innerHTML]=\"sanitizeHtml(bean.personas)\"></div>\n          </td>\n        </tr>\n      </ng-template>\n      <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n    @if (mostrarSolicitud) {\n        <app-popup-destino-solicitud-viatico [mostrarPopup]=\"mostrarSolicitud\" (regresar)=\"regresarSolicitud($event)\"></app-popup-destino-solicitud-viatico>\n    }\n\n} @else if (vistaVisualizar == 'detalle'){\n    <app-detalle-solicitud-viatico #detalle (regresar)=\"regresar($event)\"></app-detalle-solicitud-viatico>\n} ","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ErrorIntecertorService, RecursoPuntoModel, ReporteFuenteModel, UtilsService } from 'general-library-union';\nimport { catchError, Observable, throwError } from 'rxjs';\nimport { EmpleadoModel } from '../../compensacion/models/EmpleadoModel';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CumpleaniosService {\n\n  constructor(private httpClient: HttpClient, private errorInterceptor: ErrorIntecertorService, private utilsService: UtilsService,) {\n    this.handleError = this.handleError.bind(this);\n  }\n\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 500) {\n      //Llamado a interceptor\n      this.errorInterceptor.showError(JSON.stringify(error.error));\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n      console.error(\n        `Backend returned code ${error.status}, body was: `, error.error);\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => new Error('Something bad happened; please try again later.'));\n  }\n\n  consultarEmpleadoCumpleanios(empleadoModel: EmpleadoModel, reporteFuenteModel: ReporteFuenteModel, recursoPuntoModel: RecursoPuntoModel): Observable<any> {\n\n    const data = {\n      empleadoModel: empleadoModel,\n      reporteFuenteModel: reporteFuenteModel,\n      recursoPuntoModel: recursoPuntoModel,\n    };\n\n    return this.httpClient.post<any>(`${this.utilsService.obtenerUrlApi()}/requieretoken/bienestar/cumpleanios/consultarEmpleadoCumpleanios`, data).pipe(\n      catchError(this.handleError)\n    );\n  }\n\n}\n","import { CommonModule, NgFor, NgIf } from '@angular/common';\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AuthService, CargarControlFuncionalidadService, EncriptadoBasicoService, GeneralModel, GeneralService, MenuService, PuntoProcesoModel, RecursoPuntoModel, ReporteColumnaModel, ReporteFuenteModel, ToastService, UtilsService } from 'general-library-union';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { EmpleadoModel } from '../../../compensacion/models/EmpleadoModel';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\nimport { firstValueFrom } from 'rxjs';\nimport { CumpleaniosService } from '../../services/cumpleanios.service';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { PrimeTemplate } from 'primeng/api';\nimport { PanelModule } from 'primeng/panel';\nimport { CargarArchivosService } from '../../../../shared/servicios/cargar-archivos.service';\nimport { InputHelperEmpleadoComponent } from '../../../../shared/componentes/input-helper-empleado/input-helper-empleado.component';\n\n@Component({\n  selector: 'app-cumpleanios',\n  standalone: true,\n  imports: [\n    ConfirmPopupModule,\n    NgIf,\n    NgFor,\n    FormsModule,\n    ReactiveFormsModule,\n    InputTextModule,\n    DropdownModule,\n    TranslateModule,\n    CommonModule,\n    TableModule, TemplateTablaVaciaComponent,\n    PrimeTemplate,\n    PanelModule,\n    InputHelperEmpleadoComponent\n  ],\n  templateUrl: './cumpleanios.component.html',\n  styleUrl: './cumpleanios.component.scss'\n})\nexport class CumpleaniosComponent implements OnInit {\n\n  @ViewChild('popUpEmpleado') popUpEmpleado: InputHelperEmpleadoComponent;\n  //Parametros Portal\n  @Input() visualizarCampos: any[] = [];\n\n  empleadoModel: EmpleadoModel;\n  listaRegistro: any[];\n  columnas: any;\n  descripcionMes: any;\n  mostrarpopUpEmpleado: boolean = false;\n\n  constructor(private generalService: GeneralService, private menuService: MenuService, private cumpleaniosService: CumpleaniosService,\n    private generalPipe: GeneralPipe, private saraAplicacionService: SaraAplicacionService, public translateService: TranslateService,\n    private toastService: ToastService, public controlFuncionService: CargarControlFuncionalidadService, private authServices: AuthService,\n    private cargarArchivo: CargarArchivosService, private encriptadorbasico: EncriptadoBasicoService, private utilsServices: UtilsService,\n  ) { }\n\n  ngOnInit(): void {\n\n    this.mostrarpopUpEmpleado = false\n    this.columnas = [];\n    this.listaRegistro = [];\n    this.cargarMigadePan();\n    this.validarContrato();\n  }\n\n  cargarMigadePan() {\n    this.menuService.setBreadcrumb([{ label: 'Cumpleaños' }]);\n  }\n\n  async validarContrato() {\n\n    try {\n\n      let emp = new EmpleadoModel();\n      emp.cedula = await this.saraAplicacionService.getCedula();\n      emp.soloActivos = this.generalPipe.ACTIVOS_LIQUIDADOS;\n      let lista = [];\n\n      let filtroEmp = new GeneralModel('EmpleadoDTO', null, false, emp);\n      let cantidad = await firstValueFrom(this.generalService.cantidadRegistros(filtroEmp));\n\n      if (cantidad > 0) {\n        emp.soloActivos = null;\n        lista = await firstValueFrom(this.generalService.queryForList(filtroEmp));\n      } else {\n        lista = null;\n        this.toastService.showWarning(\"No tiene contratos activos\");\n        return;\n      }\n\n      if (lista.length === 1) {\n        this.setCargarEmpleado(lista[0]);\n      } else {\n        this.mostrarpopUpEmpleado = true;\n        const sleep = (m) => new Promise((r) => setTimeout(r, m));\n        await sleep(1000);\n        this.popUpEmpleado.buscarSegunLista(lista);\n      }\n    } catch (error) {\n      throw new Error(error);\n    }\n  }\n\n  async setCargarEmpleado(empleado: EmpleadoModel): Promise<string> {\n\n    this.empleadoModel = empleado;\n\n    let puntoProcesoDTO = new PuntoProcesoModel();\n    puntoProcesoDTO.punto = \"calendarioCumpleanosBean\";\n    let filtroPuntoProceso = new GeneralModel('PuntoProcesoDTO', null, false, puntoProcesoDTO);\n    puntoProcesoDTO = await firstValueFrom(this.generalService.queryForObject(filtroPuntoProceso));\n\n    let recursoPuntoDTO = new RecursoPuntoModel();\n    recursoPuntoDTO.puntoProceso = puntoProcesoDTO.llaveTabla;\n    let filtroRecursoPunto = new GeneralModel('RecursoPuntoDTO', null, false, recursoPuntoDTO);\n    let listaRecurso = await firstValueFrom(this.generalService.queryForList(filtroRecursoPunto));\n\n    if (listaRecurso == null || listaRecurso.length == 0) {\n      return \"No hay reporte fuente con el punto proceso calendarioCumpleanosBean\";\n    }\n\n    recursoPuntoDTO = listaRecurso[0];\n    let reporteFuente = new ReporteFuenteModel();\n    reporteFuente.llave = recursoPuntoDTO.reporteFuente;\n    let filtroReporteFuente = new GeneralModel('ReporteFuenteDTO', null, false, reporteFuente),\n      reporteFuenteDTO = await firstValueFrom(this.generalService.queryForObject(filtroReporteFuente));\n\n    if (reporteFuenteDTO == null) {\n      return \"No hay reporte configurado\";\n    }\n\n    let rc = new ReporteColumnaModel;\n    rc.reporteFuente = reporteFuenteDTO.llave;\n    let filtroRc = new GeneralModel('ReporteColumnaDTO', null, false, rc);\n    let columnas = await firstValueFrom(this.generalService.queryForList(filtroRc));\n\n    // Validar parámetros(campos) en ejecución reporte\n    const valoresBuscados = [\"nombre\", \"mes\", \"dia\", \"nombrefoto\"];\n\n    const valoresFaltantes = valoresBuscados.filter(valor =>\n      !columnas.some(item => item.nombre === valor)\n    );\n\n    if (valoresFaltantes.length > 0) {\n      this.toastService.showError('Faltan configurar parámetros: ' + valoresFaltantes);\n      return null;\n    }\n\n    let data = await firstValueFrom(this.cumpleaniosService.consultarEmpleadoCumpleanios(this.empleadoModel, reporteFuenteDTO, recursoPuntoDTO));\n    this.listaRegistro = data?.listaRegistro;\n    this.descripcionMes = this.listaRegistro[0].mes\n    this.columnas = data?.columnas;\n\n    for (let item of this.listaRegistro) {\n      this.cargarImagenFoto(item);\n    }\n\n    await this.utilsServices.sleep(500);\n    this.utilsServices.resizeWindowIFrame();\n\n    return null;\n  }\n\n  cargarImagenFoto(item: any) {\n    let propiedad = 'ruta_fotos';\n    let aplicacion = this.authServices.getTokenKey('aplicacion');;\n    this.cargarArchivo.descargarArchivo(this.encriptadorbasico.encriptar(item.nombrefoto), propiedad, aplicacion).subscribe(blob => {\n      this.blobToBase64(item, blob);\n    });\n  }\n\n  blobToBase64(item: any, blob: Blob) {\n    const reader = new FileReader();\n    reader.onload = () => {\n      const dataUrl = reader.result as string;\n      const base64 = dataUrl.split(',')[1];\n      item.nombreFoto = 'data:image/png;base64,' + base64\n    };\n    reader.readAsDataURL(blob);\n  }\n\n  regresarPopup() {\n    this.mostrarpopUpEmpleado = false;\n  }\n\n  setEmpleado(empleadoDTO: EmpleadoModel) {\n\n    if (empleadoDTO == null) {\n      return;\n    }\n\n    this.setCargarEmpleado(empleadoDTO);\n  }\n\n  getFilteredColumns() {\n\n    if (!this.columnas || !this.visualizarCampos) {\n      return [];\n    }\n\n    //Si ingresa por sara lista todo los campos adicionales\n    if (this.visualizarCampos.length === 0 && this.authServices.getTokenKey('aplicacion') == this.generalPipe.APLICACION_SARA) {\n      return this.columnas;\n    }\n\n    //Si ingresa por Portal sin prametros que se configuran en el componente, no muestra atributos adicionales\n    if (this.visualizarCampos.length === 0 && this.authServices.getTokenKey('aplicacion') == this.generalPipe.APLICACION_PORTAL) {\n      return [];\n    }\n\n    //Si ingresa por Portal se listan los prametros que se configuran en el componente\n    return this.columnas.filter(col => this.visualizarCampos.includes(col.nombre))\n\n  }\n\n  isCliente(): boolean {\n    if (this.authServices.getTokenKey('isCliente') == 'true') {\n      return true;\n    }\n    return false;\n  }\n\n}\n","<div id=\"cumpleanos\">\n    @if(!isCliente()){\n        <h1 class=\"mb-3\">{{'cumpleanios' | translate}} </h1>\n    }\n    <div class=\"p-fluid grid\">\n        <div *ngFor=\"let item of listaRegistro\" class=\"card-cargo field col-12 md:col-6 lg:col-4 p-3\">\n            <p-panel>\n                <ng-template pTemplate=\"body\">\n                    <div>\n                        <div class=\"avatar-container-cumple\">\n                            <div class=\"datos-cumple\">\n                                <img [src]=\"item?.nombreFoto\" alt=\"Foto\" class=\"us-foto-perfil avatar-image\"\n                                    *ngIf=\"item?.nombreFoto\">\n                                <img src=\"/assets/images/foto_vacia.png\" alt=\"Foto\" class=\"us-foto-perfil-cumple avatar-image\"\n                                    *ngIf=\"!item?.nombreFoto\">\n                                <div class=\"principal\">\n                                    <h1 class=\"w-full mb-0 nombre\">{{item?.nombre}}</h1>\n                                    <div class=\"fecha-cumple flex\">\n                                        <span class=\"icono-cumple\">\n                                            <img src=\"/assets/images/Ico-cumple.svg\">\n                                        </span>\n                                        <h1 class=\"w-full mb-0\">{{item?.mes}} {{item?.dia}}</h1>\n\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n                        <!-- Permite mostrar la información extra del cumpleaniero -->\n                        @if(getFilteredColumns().length > 0){\n                        <div class=\"info-container\">\n                            <div *ngFor=\"let col of getFilteredColumns()\"\n                                class=\"info-item justify-content-center align-content-center mb-1\">\n\n                                @if(col.nombre != 'nombrefoto' && col.nombre != 'nombre' && col.nombre != 'mes' && col.nombre != 'dia' ){\n                                @if(col.nombre != 'nombreoculto' && col.nombre != 'cargooculto'){\n                                <h4>{{ col.nombre }}:</h4>\n                                }\n                                <span>{{ item[col.nombre] }}</span>\n                                }\n                            </div>\n                        </div>\n                        }\n                    </div>\n                </ng-template>\n            </p-panel>\n        </div>\n    </div>\n    <app-input-helper-empleado #popUpEmpleado [mostrar]=\"mostrarpopUpEmpleado\" (onSelected)=\"setEmpleado($event)\"\n        (regresar)=\"regresarPopup()\"></app-input-helper-empleado>\n\n</div>","import { UnionModel } from 'general-library-union'\n\nexport class NovedadAplicarDTO  extends UnionModel{\n\n\t\n\torigen: string;\n\tllave: string;\n\tdescripcion: string;\n\tnombreFuncionario: string;\n\tdesde: Date;\n\thasta: Date;\n\tdatoFecha: Date;\n\tdatoValor: number;\n\tdatoCantidad: number;\n\tcontrato: number;\n\tcedula: number;\n\tempresa: number;\n\tautoriza: number;\n\testado: string;\n\ttipoNovedad: string;\n\tnombreZonaEconomica: string;\n\tlineacosto: string;\n\tsinLiquidar: string;\n\tdocumento: string;\n\tnumeroProceso: string;\n\tfiltroZona: string;\n\tfiltroUnidad: string;\n\tusuarioRol: string;\n\tllaveTipoNovedad: string;\n\tcodConcepto: number;\n\tnumeroNovedad: number;\n\tdescripcionConcepto: string;\n\torigenNovedad: string;\n\ttipoRegistros: string;\n\tloginAutorizaNovedad: string;\n\tproceso: string;\n\tperiodo: string;\n\tconcepto: number;\n\tconceptoFiltro: string;\n\terrorLegalizados: string;\n\tmensaje: string;\n\tmotivo: string;\n\ttipoProceso: string;\n\tcedulaContratacion: number;\n\tnombreContratacion: string;\n\tformaPago: string;\n\tfechaPago: Date;\n\tsinAsignar: string;\n\tvariable: string;\n\tvariableFecha: string;\n\tliquidacionPeriodica: string;\n\tcodigoVariableFecha: string;\n\tdescripcionVariable: string;\n\tdescripcionVariableFecha: string;\n\tdescripcionLiquidaPeriodica: string;\n\tsolicita: number;\n\tloginSolicitaNovedad: string;\n\tcomprobante: string;\n\tllaveActo: string;\n\tdependeNovedad: string;\n\ttipoPeriodo: number;\n\tusuarioLogin: string;\n\tfechaInicial: Date;\n\tfechaFinal: Date;\n \n\n\tget nombreEstado() : string {\n\t\tvar nombreEstado = \"ESTADO NO DEFINIDO\";\n\t\tif (this.estado == null) {\n\t\t\treturn 'No hay estado';\n\t\t} \n\t\tif ( this.estado == ('P')) {\n\t\t\tnombreEstado = 'Programada';\n\t\t} else if ( this.estado == ('L')) {\n\t\t\tnombreEstado = 'Generada';\n\t\t} else if ( this.estado == ('A')) {\n\t\t\tnombreEstado = 'Por Generar';\n\t\t} else if ( this.estado == ('N')) {\n\t\t\tnombreEstado = 'No autorizada';\n\t\t} else if ( this.estado == ('S')) {\n\t\t\tnombreEstado = 'Solicitud';\n\t\t}\n\t\treturn nombreEstado;\n\t}\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { NovedadAplicarDTO } from '../../models/NovedadAplicarModel';\nimport { AusentismoPipe } from '../../pipes/ausentismo.pipe';\nimport { GeneralPipe } from '../../../../shared/pipes/general.pipe';\nimport { GeneralService } from '../../../../shared/servicios/general.service';\nimport { FiltroGeneralComponent, GeneralModel, ToastService, UtilsService } from 'general-library-union';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { AusentismoService } from '../../services/ausentismo.service';\nimport { AusentismoPipe as AusentismoPipe_1 } from '../../../../shared/pipes/ausentismo.pipe';\nimport { DatePipe, NgIf } from '@angular/common';\nimport { PrimeTemplate } from 'primeng/api';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { DialogModule } from 'primeng/dialog';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { AusenciaNovedadModel } from '../../models/AusenciaNovedadModel';\nimport { SaraAplicacionService } from '../../../../shared/servicios/sara-aplicacion.service';\n@Component({\n  selector: 'app-popup-cambiar-datos-pago-vacacion',\n  templateUrl: './popup-cambiar-datos-pago-vacacion.component.html',\n  styleUrls: ['./popup-cambiar-datos-pago-vacacion.component.scss'],\n  standalone: true,\n  imports: [DialogModule, DropdownModule, FormsModule, CalendarModule, ReactiveFormsModule, InputHelperEmpleadoBotonComponent, InputNumberModule, CheckboxModule, ButtonDirective, Ripple, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DatePipe, TranslateModule, AusentismoPipe_1, FiltroGeneralComponent, InputTextModule, NgIf]\n})\nexport class PopupCambiarDatosPagoVacacionComponent implements OnInit {\n\n  public lista: any[];\n  public listaSeleccionada: any[] = [];\n  public listaFormaPago: any[];\n  public listaTipoNovedad: any[] = [];\n  public filtroNovedad: NovedadAplicarDTO = new NovedadAplicarDTO();\n  @Input() public filtroNovedadOrigen: NovedadAplicarDTO;\n  public novedadAplicarDTO: NovedadAplicarDTO;\n  public seleccionar: boolean;\n  @Input() public showDialog: boolean;\n  @Output() regresar = new EventEmitter()\n  @ViewChild('documento') documento: InputHelperEmpleadoBotonComponent;\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n  public filters = [];\n  public habilitar: boolean = false;\n  public contrato;\n  public contratoDesdePopup: boolean = false;\n  public sinAsignar: boolean = true;\n\n  paginator = {\n    rows: 10,\n    totalRecords: 0,\n  };\n  public edicionDatosOriginales: { [key: string]: any } = {};\n\n  constructor(private ausentismoPipe: AusentismoPipe,\n    private generalPipe: GeneralPipe,\n    private generalService: GeneralService,\n    private translateService: TranslateService,\n    private notificacionesService: ToastService,\n    private utilsService: UtilsService,\n    private ausentismoService: AusentismoService,\n    private saraAplicacionService: SaraAplicacionService\n  ) { }\n\n  ngOnInit(): void {\n    this.listaFormaPago = this.ausentismoPipe.FORMAPAGO;\n    this.listaTipoNovedad = [];\n    this.listaTipoNovedad.push({ codigo: this.ausentismoPipe.VACACION, nombre: this.ausentismoPipe.DESCVACACION })\n    this.novedadAplicarDTO = new NovedadAplicarDTO();\n    this.filtroNovedad = new NovedadAplicarDTO();\n    this.utilsService.sleep(300).then(data => {\n      this.filtroNovedad.tipoNovedad = this.ausentismoPipe.VACACION;\n    })\n    this.sinAsignar = true;\n    this.filters = [\n      {\n        field: 'contrato',\n        header: this.translateService.instant('nombrefuncionario'),\n        values: (key) => this.documento.label,\n        matchMode: 'equal',\n      },\n      {\n        field: 'contrato2',\n        header: this.translateService.instant('contrato'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'tipoNovedad',\n        header: this.translateService.instant('tiponovedad'),\n        disabled: true,\n        values: (key) => this.listaTipoNovedad.filter(data => data.codigo === key)[0].nombre,\n        matchMode: 'equal',\n      },\n      {\n        field: 'sinAsignar',\n        header: this.translateService.instant('sinasignar'),\n        value: true,\n        matchMode: 'equal',\n      },\n    ]\n    this.utilsService.sleep(500).then(data => {\n      this.filtroGeneral.aplicarFiltros();\n    })\n\n    //    this.cargarListado({first:0, rows: 10})\n  }\n\n  onShow() {\n    if (this.saraAplicacionService.isAutoServicioPortal()){\n      this.utilsService.resizeWindowIFrame();\n      this.utilsService.calcularPosicionDialog();\n    }\n  }\n\n  regresarPopupEmpleadoFiltro(event) {\n    this.contratoDesdePopup = true;\n    this.contrato = event.contrato;\n  }\n\n  async cargarListado(event) {\n    /*if (this.contratoDesdePopup && !event.filters?.contrato2){\n      this.contratoDesdePopup = false;\n      this.documento.label = '';\n      var chipContrato = this.filtroGeneral.chips.filter(data => data.field == 'contrato')\n      this.filtroGeneral.removeChip(chipContrato[0])\n      return;\n    }*/\n    if (this.filtroNovedadOrigen != null) {\n      this.filtroNovedad.empresa = this.filtroNovedadOrigen.empresa;\n      this.filtroNovedad.filtroZona = this.filtroNovedadOrigen.filtroZona;\n      this.filtroNovedad.sinLiquidar = this.filtroNovedadOrigen.sinLiquidar;\n      this.filtroNovedad.tipoRegistros = this.filtroNovedadOrigen.tipoRegistros;\n      this.filtroNovedad.usuarioRol = this.filtroNovedadOrigen.usuarioRol;\n      this.filtroNovedad.usuarioLogin = this.filtroNovedadOrigen.usuarioLogin;\n    }\n    this.filtroNovedad.tipoNovedad = event.filters.tipoNovedad?.value ? event.filters.tipoNovedad?.value : this.ausentismoPipe.VACACION;\n    if (this.sinAsignar) {\n      this.filtroNovedad.sinAsignar = this.sinAsignar ? this.generalPipe.SI : this.generalPipe.NO;\n    } else {\n      this.filtroNovedad.sinAsignar = event.filters.sinAsignar?.value == true ? this.generalPipe.SI : this.generalPipe.NO;\n    }\n\n    this.filtroNovedad.paginacionRegistroInicial = event.first;\n    this.filtroNovedad.paginacionRegistroFinal = event.rows;\n    this.filtroNovedad.contrato = this.contrato ? this.contrato : event.filters.contrato?.value;\n    this.lista = await this.generalService.queryForList(new GeneralModel('NovedadAplicarDTO', 'Novedad.traerNovedadesVacacion', false, this.filtroNovedad)).toPromise();\n    this.paginator.totalRecords = await this.generalService.cantidadRegistros(new GeneralModel('NovedadAplicarDTO', 'Novedad.cantidadNovedadVacacion', false, this.filtroNovedad)).toPromise();\n  }\n\n  async aplicar() {\n    if (this.listaSeleccionada.length == 0) {\n      this.notificacionesService.showError('Seleccione al menos un registro');\n      return;\n    }\n    this.listaSeleccionada.forEach(async novedadSeleccionada => {\n      let novedadOrigen: AusenciaNovedadModel = new AusenciaNovedadModel();\n      novedadOrigen.llaveTabla = novedadSeleccionada.llave;\n      novedadOrigen = await this.generalService.queryForObject(new GeneralModel('AusenciaNovedadDTO', null, false, novedadOrigen)).toPromise();\n      if ((novedadSeleccionada.formaPago == null && this.novedadAplicarDTO.formaPago != null) || (novedadSeleccionada.formaPago != null && novedadSeleccionada.formaPago === novedadOrigen.formaPago) && this.novedadAplicarDTO.formaPago != null) {\n        novedadSeleccionada.formaPago = this.novedadAplicarDTO.formaPago;\n      }\n      if ((novedadSeleccionada.fechaPago == null && this.novedadAplicarDTO.fechaPago != null) || (novedadSeleccionada.fechaPago != null && novedadSeleccionada.fechaPago === novedadOrigen.fechaPago) && this.novedadAplicarDTO.fechaPago != null) {\n        novedadSeleccionada.fechaPago = this.novedadAplicarDTO.fechaPago;\n      }\n    })\n    let data = await this.ausentismoService.autorizarAusentismoVacacion({ listadoSeleccion: this.listaSeleccionada, formaPago: this.novedadAplicarDTO.formaPago, fechaPago: this.novedadAplicarDTO.fechaPago }).toPromise();\n    if (data?.mensaje == 'OK') {\n      this.notificacionesService.showInfo(this.generalPipe.MENSAJE_ACTUALIZAR_VARIOS);\n      this.showDialog = false;\n      this.regresar.emit(false)\n    }\n  }\n\n  iniciarEdicion(data: NovedadAplicarDTO) {\n    data.fechaPago = data.fechaPago ? new Date(data.fechaPago) : null;\n    this.habilitar = true;\n    this.edicionDatosOriginales[data.llave] = { ...data };\n  }\n\n  cancelaEdicion(data) {\n    this.habilitar = false;\n    if (this.edicionDatosOriginales[data.llave]) {\n      Object.assign(data, this.edicionDatosOriginales[data.llave]);\n    }\n  }\n\n  guardar(){\n    this.habilitar = false;\n  }\n\n  ocultar() {\n    this.regresar.emit(false)\n  }\n\n}\n\n","<p-dialog header=\"{{'formadepago' | translate}}\" [(visible)]=\"showDialog\" [style]=\"{width: '60vw'}\" (onHide)=\"ocultar()\" (onShow)=\"onShow()\"\n    [modal]=\"true\" [draggable]=\"false\" [resizable]=\"false\">\n\n    <div class=\"card mt-3\">\n        <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-book\"></i>{{'formadepago' | translate}}</h5>\n        <div class=\"Inputgroup p-fluid p-formgrid grid\">\n            <div class=\"field col-12 md:col-6 lg:col-6\">\n                <span class=\"p-float-label\">\n                    <p-dropdown appendTo=\"body\" [autoZIndex]=\"false\" class=\"w-full\" [options]=\"listaFormaPago\"\n                        optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\"\n                        [(ngModel)]=\"novedadAplicarDTO.formaPago\" [showClear]=\"false\"></p-dropdown>\n                    <label>{{'formadepago' | translate}}</label>\n                </span>\n            </div>\n\n            <div class=\"field col-12 md:col-6 lg:col-6\">\n                <span class=\"p-float-label\">\n                    <p-calendar [(ngModel)]=\"novedadAplicarDTO.fechaPago\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                        appendTo=\"body\" ></p-calendar>\n                    <label>{{'fechapago' | translate}}</label>\n                </span>\n            </div>\n        </div>\n    </div>\n\n    <div class=\"flex justify-content-between align-items-center mt-2 mb-4\">\n\n        <app-filtro-general #filtroGeneral [filtros]=\"filters\" [datatable]=\"tablaGeneral\">\n            <ng-template let-form>\n                <ng-container [formGroup]=\"form\">\n                    <div class=\"flex mt-3\">\n                        <div class=\"mr-3 w-full\">\n                            <app-input-helper-empleado-boton #documento\n                                (onSelected)=\"regresarPopupEmpleadoFiltro($event)\"\n                                [nombreInput]=\"'empleado' | translate\"\n                                formControlName=\"contrato\"></app-input-helper-empleado-boton>\n                        </div>\n                        <div class=\"w-full\">\n                            <span class=\"p-float-label\">\n                                <p-inputNumber formControlName=\"contrato2\" autocomplete=\"off\" [(ngModel)]=\"contrato\"\n                                    [maxlength]=\"14\"></p-inputNumber>\n                                <label>{{'contrato' | translate}}</label>\n                            </span>\n                        </div>\n                    </div>\n\n                    <div class=\"flex mt-3\">\n                        @if (listaTipoNovedad.length > 0 && filtroNovedad.tipoNovedad) {\n                        <div class=\"mr-3 w-full\">\n                            <span class=\"p-float-label\">\n                                <p-dropdown class=\"w-full\" [options]=\"listaTipoNovedad\"\n                                    [(ngModel)]=\"filtroNovedad.tipoNovedad\" [autoDisplayFirst]=\"false\"\n                                    formControlName=\"tipoNovedad\" [showClear]=\"false\" optionLabel=\"nombre\"\n                                    [readonly]=\"true\" optionValue=\"codigo\" [disabled]=\"true\"></p-dropdown>\n                                <label>{{'tiponovedad' | translate}}</label>\n                            </span>\n                        </div>\n                        }\n                        <div class=\"w-full\">\n                            <span class=\"p-float-label mt-3\">\n                                <label class=\"ml-3\">{{'sinasignar' | translate}}</label>\n                                <p-checkbox class=\"ml-1\" formControlName=\"sinAsignar\" [(ngModel)]=\"sinAsignar\"\n                                    [binary]=\"true\"> </p-checkbox>\n                            </span>\n                        </div>\n                    </div>\n\n                </ng-container>\n            </ng-template>\n\n        </app-filtro-general>\n\n        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"glyphicons glyphicons-check\"\n            label=\"{{'link_aplicar' | translate}}\" (click)=\"aplicar()\" [disabled]=\"habilitar\">\n        </button>\n    </div>\n\n    <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"lista\" [rows]=\"paginator.rows\" [lazy]=\"true\"\n        (onLazyLoad)=\"cargarListado($event)\" [totalRecords]=\"paginator.totalRecords\"\n        [paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n        [showCurrentPageReport]=\"true\" [scrollable]=\"true\" [(selection)]=\"listaSeleccionada\"\n        currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" dataKey=\"llave\" editMode=\"row\"\n        selectionMode=\"single\">\n        <ng-template pTemplate=\"header\">\n\n            <tr class=\"fondoTablaPincipal\">\n                <th style=\"width: 5%;\">\n                    <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n                </th>\n                <th style=\"width: 15%;\">{{'identificacion' | translate}}</th>\n                <th style=\"width: 25%;\">{{'nombrefuncionario' | translate}}</th>\n                <th style=\"width: 25%;\">{{'formadepago' | translate}}</th>\n                <th style=\"width: 20%;\">{{'fechapago' | translate}}</th>\n                <th style=\"width: 10%;\"></th>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"body\" let-bean let-editing=\"editing\" let-ri=\"rowIndex\">\n            <tr [pEditableRow]=\"bean\">\n                <td style=\"width: 5%;\">\n                    <p-tableCheckbox [value]=\"bean\"></p-tableCheckbox>\n                </td>\n                <td style=\"width: 15%;\">{{bean.documento}}</td>\n                <td style=\"width: 25%;\">{{bean.nombreFuncionario}}</td>\n                <td style=\"width: 25%;\">\n                    <div style=\"min-width: 12rem; max-width: 12rem;\">\n                        <p-cellEditor>\n                            <ng-template pTemplate=\"input\">\n                                <p-dropdown appendTo=\"body\" class=\"w-full\" [options]=\"listaFormaPago\"\n                                    optionLabel=\"nombre\" optionValue=\"codigo\" [autoDisplayFirst]=\"false\"\n                                    [(ngModel)]=\"bean.formaPago\" [showClear]=\"false\"></p-dropdown>\n                            </ng-template>\n                            <ng-template pTemplate=\"output\">\n                                {{bean.formaPago | ausentismoPipe : 'listaFormaPago'}}\n                            </ng-template>\n                        </p-cellEditor>\n                    </div>\n                </td>\n                <td style=\"width: 20%;\">\n                    <p-cellEditor>\n                        <ng-template pTemplate=\"input\">\n                            <p-calendar [(ngModel)]=\"bean.fechaPago\" dateFormat=\"dd/mm/yy\" [showIcon]=\"true\"\n                                appendTo=\"body\"></p-calendar>\n                        </ng-template>\n                        <ng-template pTemplate=\"output\">\n                            {{ bean.fechaPago | date: ('formatofecha' | translate) }}\n                        </ng-template>\n                    </p-cellEditor>\n                </td>\n                <td style=\"width: 10%;\">\n                    <div class=\"flex justify-content-end\">\n                        <!-- CHECK GUARDAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pSaveEditableRow icon=\"pi pi-check\"\n                            class=\"p-element p-ripple p-button-rounded p-button-success mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            (click)=\"guardar()\"></button>\n                        <!-- CANCELAR -->\n                        <button *ngIf=\"editing\" pButton pRipple type=\"button\" pCancelEditableRow icon=\"pi pi-times\"\n                            class=\"p-element p-ripple p-button-rounded p-button-danger mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            (click)=\"cancelaEdicion(bean)\"></button>\n                        <!-- EDITAR -->\n                        <button *ngIf=\"!editing\" pButton pRipple type=\"button\" pInitEditableRow\n                            icon=\"glyphicons glyphicons-pencil\"\n                            class=\"p-element p-ripple p-button-rounded p-button-secondary mr-2 mb-2 p-button p-component p-button-icon-only\"\n                            (click)=\"iniciarEdicion(bean)\" [disabled]=\"habilitar\"></button>\n                    </div>\n                </td>\n            </tr>\n        </ng-template>\n        <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>    </p-table>\n\n</p-dialog>","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MenuItem, PrimeTemplate } from 'primeng/api';\nimport { NovedadAplicarDTO } from '../../../models/NovedadAplicarModel';\nimport { TipoAusenciaModel } from '../../../models/TipoAusenciaModel';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { AuthService, CargarControlFuncionalidadService, FiltroGeneralComponent, GeneralModel, MenuService, ToastService, UtilsService } from 'general-library-union';\nimport { NovedadPipe } from '../../../pipes/novedad.pipe';\nimport { GeneralService } from '../../../../../shared/servicios/general.service';\nimport { AusentismoPipe } from '../../../pipes/ausentismo.pipe';\nimport { GeneralPipe } from '../../../../../shared/pipes/general.pipe';\nimport { SaraAplicacionService } from '../../../../../shared/servicios/sara-aplicacion.service';\nimport { InputHelperEmpleadoBotonComponent } from '../../../../../shared/componentes/input-helper-empleado-boton/input-helper-empleado-boton.component';\nimport { TipoPeriodoModel } from '../../../models/TipoPeriodoModel';\nimport { NovedadService } from '../../../services/novedad.service';\nimport { TipoNovedadCons } from '../../../../../shared/pipes/tipoNovedadCons.pipe';\nimport { EmpleadoModel } from '../../../models/EmpleadoModel';\nimport { MantenimientoDetalleNovedadComponent } from '../mantenimiento-detalle-novedad/mantenimiento-detalle-novedad.component';\nimport { NovedadModel } from '../../../models/NovedadModel';\nimport { LicenciaAusenciaProgramadasComponent } from '../../../ausentismos/licencia-ausencia-programadas/licencia-ausencia-programadas.component';\nimport { IncapacidadAusenciaProgramadasComponent } from '../../../ausentismos/incapacidad-ausencia-programadas/incapacidad-ausencia-programadas.component';\nimport { AusentismoService } from '../../../services/ausentismo.service';\nimport { VacacionAusenciaProgramadasComponent } from '../../../ausentismos/vacacion-ausencia-programadas/vacacion-ausencia-programadas.component';\nimport { PopupSeleccionAusentismoComponent } from '../../../ausentismos/popups/popup-seleccion-ausentismo/popup-seleccion-ausentismo.component';\nimport { AusenciaNovedadModel } from '../../../models/AusenciaNovedadModel';\nimport { DetalleSolicitudComponent } from '../../solicitudes/detalle-solicitud/detalle-solicitud.component';\nimport { RegistroNovedadMasivaContComponent } from '../registro-novedad-masiva-cont/registro-novedad-masiva-cont.component';\nimport { VacacionAusenciaInterrupcionComponent } from '../../ausentismos/vacacion-ausencia-interrupcion/vacacion-ausencia-interrupcion.component';\nimport { PopupCambiarDatosPagoVacacionComponent } from '../../../popups/popup-cambiar-datos-pago-vacacion/popup-cambiar-datos-pago-vacacion.component';\nimport { TableModule } from 'primeng/table';\nimport { TemplateTablaVaciaComponent } from 'general-library-union';\nimport { CalendarModule } from 'primeng/calendar';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Ripple } from 'primeng/ripple';\nimport { ButtonDirective } from 'primeng/button';\nimport { MenubarModule } from 'primeng/menubar';\nimport { NgIf, DecimalPipe, DatePipe } from '@angular/common';\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\n\n@Component({\n    selector: 'app-aplicar-novedad-proceso-empleado',\n    templateUrl: './aplicar-novedad-proceso-empleado.page.html',\n    styleUrls: ['./aplicar-novedad-proceso-empleado.page.scss'],\n    standalone: true,\n    imports: [ConfirmPopupModule, NgIf, MenubarModule, ButtonDirective, Ripple, FormsModule, ReactiveFormsModule, InputHelperEmpleadoBotonComponent, InputNumberModule, DropdownModule, CheckboxModule, InputTextModule, CalendarModule, TableModule, TemplateTablaVaciaComponent, PrimeTemplate, DetalleSolicitudComponent, MantenimientoDetalleNovedadComponent, RegistroNovedadMasivaContComponent, VacacionAusenciaProgramadasComponent, LicenciaAusenciaProgramadasComponent, IncapacidadAusenciaProgramadasComponent, VacacionAusenciaInterrupcionComponent, PopupSeleccionAusentismoComponent, PopupCambiarDatosPagoVacacionComponent, DecimalPipe, DatePipe, TranslateModule, FiltroGeneralComponent, NovedadPipe]\n})\nexport class AplicarNovedadProcesoEmpleadoPage implements OnInit {\n\n  public vistaVisualizar: string = null;\n  public items: MenuItem[];\n  public filtro: NovedadAplicarDTO;\n\tpublic listaTipoNovedad: any[];\n\tpublic listaEstado: any[] = [];\n\tpublic listadoSeleccion: NovedadAplicarDTO[];\n\tpublic seleccionear: boolean;\n\tpublic sinLiquidar:boolean = true;\n\tpublic mostrarSolicitud: boolean;\n\tpublic mostrarNovedades: boolean;\n\tpublic mostrarNovedadesMasivas: boolean;\n\tpublic mostrarVacaciones: boolean;\n\tpublic mostrarLicencias: boolean;\n\tpublic mostrarIncapacidades: boolean;\n\tpublic mostrarInterrupcionVac: boolean;\n\tpublic paginadorNovedades: NovedadAplicarDTO[];\n\tpublic empresa: number;\n  public mapaestado = [];\n\tpublic tipoFiltroDatosBasicoEmp: string;\n\tpublic tarea: string;\n\tpublic nombreTarea: string;\n\tpublic estado: string = null;\n\tpublic listaSeleccionable: any[];\n\tpublic tipoAusenciaSeleccionada: TipoAusenciaModel;\n\tpublic reIniciarPaginacion: boolean;\n\tpublic cantidadRegistros: number;\n\tpublic verBotonCambiar: boolean;\n\tpublic llaveProceso: string;\n\tpublic mapaOrigenesAusentismo = [];\n\n  public opcionSeleccionada: string;\n  public modoCompensacion: string;\n  public idCantidadRegistros: string = null;\n  public idTraerListadoNovedad: string = null;\n  public cedula: number;\n  public filters = [];\n  public listaTipoPeriodo: TipoPeriodoModel[];\n  public paginadorSeleccionado: any[];\n  public empleado: EmpleadoModel;\n  public contrato;\n  public contratoDesdePopup: boolean = false;\n  @ViewChild('documento') documento: InputHelperEmpleadoBotonComponent;\n  @ViewChild('filtroGeneral') filtroGeneral: FiltroGeneralComponent;\n  @ViewChild('detalleNovedad') detalleNovedad: MantenimientoDetalleNovedadComponent;\n  @ViewChild('licenciaAusencia') licenciaAusencia: LicenciaAusenciaProgramadasComponent;\n  @ViewChild('incapacidadAusencia') incapacidadAusencia: IncapacidadAusenciaProgramadasComponent;\n  @ViewChild('vacacionAusencia') vacacionAusencia: VacacionAusenciaProgramadasComponent;\n  @ViewChild('seleccionAusentismo') seleccionAusentismo: PopupSeleccionAusentismoComponent;\n  @ViewChild('solicitud') solicitud: DetalleSolicitudComponent;\n  @ViewChild('novedadMasiva') novedadMasiva: RegistroNovedadMasivaContComponent;\n  @ViewChild('interrupcionVacacion') interrupcionVacacion: VacacionAusenciaInterrupcionComponent;\n\tpublic mostrarPopupEmpleado: boolean;\n  public mostrarPopupCambiarDatos: boolean;\n\n  public paginator = {\n    totalRecords: 0,\n    rows: 10\n  }\n  constructor(private generalService: GeneralService,\n    private authService: AuthService,\n    private novedadPipe: NovedadPipe,\n    private ausentismoPipe: AusentismoPipe,\n    private ausentismoService: AusentismoService,\n    public utilsService: UtilsService,\n    private generalPipe: GeneralPipe,\n    private tipoNovedadPipe: TipoNovedadCons,\n    private novedadService: NovedadService,\n    private notificacionesService: ToastService,\n    private controlFuncionService: CargarControlFuncionalidadService,\n    private saraAplicacionService: SaraAplicacionService,\n    private menuService: MenuService,\n    private translateService: TranslateService) { }\n\n  ngOnInit() {\n    this.listaEstado = this.novedadPipe.ESTADONOVEDADLISTADO;\n    this.mapaestado = this.novedadPipe.ESTADONOVEDADLISTADO;\n    this.mapaOrigenesAusentismo = this.ausentismoPipe.ORIGENAUSENCIA;\n    this.menuService.setBreadcrumb([{ label: this.translateService.instant('aplicarnovedadempleado') }]);\n    this.filtro = new NovedadAplicarDTO();\n    this.vistaVisualizar = null;\n    this.saraAplicacionService.getCedula().then(data => {\n      this.cedula = data\n    this.empresa = parseInt(this.authService.getTokenKey('numeroEmpresa'));\n    this.verBotonCambiar = false;\n    this.generalService.queryForList(new GeneralModel('TipoPeriodoDTO', null, false, {empresa: this.empresa, aliasRol: this.authService.getTokenKey('aliasRol'), usuarioLogin: this.authService.getTokenKey('usuario')})).subscribe(data => {\n      this.listaTipoPeriodo = data;\n\n    this.generalService.queryForObject(new GeneralModel('DatosBasicosEmpresaDTO', null, false, {empresa: this.empresa})).subscribe(data => {\n      this.tipoFiltroDatosBasicoEmp = data.tipoFiltro\n    })\n    this.generalService.queryForObject(new GeneralModel('EmpresaDTO', null, false, {empresa: this.empresa})).subscribe(data => {\n      this.modoCompensacion = data.modoCompensacion\n      this.llaveProceso = null;\n      this.tarea = this.novedadPipe.OPCION_MENU_NOVEDAD;\n      this.setEstadoPorDefecto();\n      this.initNovedad();\n      this.cargarMenu();\n      this.estado = this.novedadPipe.NOVEDAD_POR_SOLICITAR;\n      this.cargarFiltros();\n      this.cargarPaginador({first:0, rows:10})\n    })\n  })\n  });\n  }\n\n  private cargarFiltros(){\n   \n    this.filters = [\n      {\n        field: 'contrato',\n        header: this.translateService.instant('nombrefuncionario'),\n        values: (key) => this.documento.label,\n        matchMode: 'equal',\n      },\n      {\n        field: 'contrato2',\n        header: this.translateService.instant('contrato'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'llaveTipoNovedad',\n        header: this.translateService.instant('tiponovedad'),\n        values: (key) => this.listaTipoNovedad.filter(data => data.llave === key)[0].descripcion,\n        matchMode: 'equal',\n      },\n      {\n        field: 'tipoNovedad',\n        header: this.translateService.instant('tiponovedad'),\n        values: (key) => this.listaTipoNovedad.filter(data => data.codigo === key)[0].nombre,\n        matchMode: 'equal',\n      },\n      {\n        field: 'estado',\n        header: this.translateService.instant('estado'),\n        values: (key) => this.listaEstado.filter(data => data.codigo === key)[0].nombre,\n        matchMode: 'equal',\n      },\n      {\n        field: 'sinLiquidar',\n        header: this.translateService.instant('activo'),\n        value: true,\n        matchMode: 'equal',\n      },\n      {\n        field: 'loginAutorizaNovedad',\n        header: this.translateService.instant('loginautoriza'),\n        matchMode: 'equal',\n      },\n      {\n        field: 'tipoPeriodo',\n        header: this.translateService.instant('tipoperiodo'),\n        values: (key) => this.listaTipoPeriodo.filter(data => data.tipo === key)[0].descripcion,\n        matchMode: 'equal',\n      },\n      {\n        field: 'fechaInicial',\n        header: this.translateService.instant('desde'),\n        formatDate: true,\n        matchMode: 'equal',\n      },\n      {\n        field: 'fechaFinal',\n        header: this.translateService.instant('hasta'),\n        formatDate: true,\n        matchMode: 'equal',\n      }\n    ]\n  }\n\n  cargarPaginador(event){\n    if (this.contratoDesdePopup && !event.filters?.contrato2){\n      this.contratoDesdePopup = false;\n      this.documento.label = '';\n      var chipContrato = this.filtroGeneral.chips.filter(data => data.field == 'contrato')\n      this.filtroGeneral.removeChip(chipContrato[0])\n      this.utilsService.resizeWindowIFrame();\n      return;\n    }\n    this.filtro.contrato = event.filters?.contrato ? event.filters?.contrato?.value : event.filters?.contrato2?.value;\n    this.filtro.llaveTipoNovedad = event.filters?.llaveTipoNovedad?.value;\n    this.filtro.tipoNovedad = event.filters?.tipoNovedad?.value;\n    this.filtro.estado = event.filters?.estado?.value;\n    this.sinLiquidar = event.filters?.sinLiquidar?.value == true;\n    this.filtro.loginAutorizaNovedad = event.filters?.loginAutorizaNovedad?.value;\n    this.filtro.tipoPeriodo = event.filters?.tipoPeriodo?.value;\n    this.filtro.fechaInicial = event.filters?.fechaInicial?.value[0] ? new Date(event.filters?.fechaInicial?.value[0]) : null,\n    this.filtro.fechaFinal = event.filters?.fechaInicial?.value[1] ? new Date(event.filters?.fechaInicial?.value[1]) : null,\n    this.colocarFiltro();\n    this.filtro.paginacionRegistroInicial = event.first;\n    this.filtro.paginacionRegistroFinal = event.rows;\n    if (this.idTraerListadoNovedad != null && this.idCantidadRegistros != null){\n      this.generalService.queryForList(new GeneralModel('NovedadAplicarDTO', this.idTraerListadoNovedad, false, this.filtro)).subscribe(data => {this.paginadorNovedades = data; });\n    this.generalService.cantidadRegistros(new GeneralModel('NovedadAplicarDTO', this.idCantidadRegistros, false, this.filtro)).subscribe(data => {this.paginator.totalRecords = data; this.utilsService.resizeWindowIFrame()});\n    }\n  }\n\n  colocarFiltro(){\n    var login = this.authService.getTokenKey('usuario')\n    this.filtro.empresa = this.empresa;\n    this.filtro.sinLiquidar = null;\n    this.filtro.tipoRegistros = this.estado;\n    if (this.novedadPipe.NOVEDAD_POR_LEGALIZAR == this.estado) {\n      this.filtro.tipoProceso = 'procesoNovedadesAplicar'\n    } else {\n      this.filtro.tipoProceso = 'procesoNovedades'\n    }\n    this.filtro.usuarioRol = this.authService.getTokenKey('aliasRol');\n    this.filtro.usuarioLogin = login;\n    if (this.tipoFiltroDatosBasicoEmp){\n      this.filtro.filtroZona = this.tipoFiltro(this.tipoFiltroDatosBasicoEmp, 'ZO');\n      this.filtro.filtroUnidad = this.tipoFiltro(this.tipoFiltroDatosBasicoEmp, 'UN');\n    }\n    if (this.sinLiquidar){\n      this.filtro.sinLiquidar = this.generalPipe.SI;\n    }\n    if (this.authService.getTokenKey('tipoLogin') == 'C'){\n      if (this.novedadPipe.NOVEDAD_POR_SOLICITAR == this.estado){\n        this.filtro.solicita = this.cedula;\n        this.filtro.loginSolicitaNovedad = login ? '%' + login + '%' : null;\n      } else if (this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estado){\n        this.filtro.autoriza = this.cedula;\n        this.filtro.loginAutorizaNovedad = login ? '%' + login + '%' : null;\n      }\n    } else {\n      if (!this.isFiltroTodos()){\n        if (this.novedadPipe.NOVEDAD_POR_SOLICITAR == this.estado){\n          this.filtro.solicita = this.cedula;\n          this.filtro.loginSolicitaNovedad = login ? '%' + login + '%' : null;\n        } else if (this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estado){\n          this.filtro.autoriza = this.cedula;\n          this.filtro.loginAutorizaNovedad = login ? '%' + login + '%' : null;\n        }\n      }\n    }\n    if (this.isNovedades() && this.novedadPipe.NOVEDAD_POR_LEGALIZAR == this.estado){\n      this.filtro.tipoProceso = 'procesoEmpleado'\n    } else {\n      this.filtro.tipoProceso = null\n    }\n  }\n\n  tipoFiltro(tipoFiltro, constanteFiltro): string{\n    var tiposFiltros = tipoFiltro.split(',');\n    var retorno = null;\n    tiposFiltros.forEach(data => {\n      if (data.trim() == constanteFiltro){\n        retorno = 'S'\n      }\n    })\n    return retorno;\n  }\n\n  private setEstadoPorDefecto() {\n\t\tif (this.isVerMenuSolicitar()) {\n\t\t\tthis.estado = this.novedadPipe.NOVEDAD_POR_SOLICITAR;\n\t\t} else if (this.isVerMenuPorAutorizar()) {\n\t\t\tthis.estado = this.novedadPipe.NOVEDAD_POR_AUTORIZAR;\n\t\t} else if (this.isVerMenuPorLegalizar()) {\n\t\t\tthis.estado = this.novedadPipe.NOVEDAD_POR_LEGALIZAR;\n\t\t} else {\n\t\t\tthis.notificacionesService.showInfo('No tiene permisos asociados..');\n\t\t}\n\t}\n\n  cargarMenu(){\n    this.items = [\n      {\n        label: 'Solicitud',\n        icon: 'glyphicons glyphicons-sort-by-attributes-alt',\n        items: [\n          {\n            label: this.translateService.instant('novedad'),\n            icon: 'glyphicons glyphicons-user',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarSolicitar(this.novedadPipe.OPCION_MENU_NOVEDAD);\n            },\n            visible: this.obtenerControlPermisos('solicitudNovedad')\n          },\n          {\n            label: this.translateService.instant('ausentismo'),\n            icon: 'glyphicons glyphicons-list-numbered',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarSolicitar(this.novedadPipe.OPCION_MENU_AUSENTISMO);\n            },\n            visible: this.obtenerControlPermisos('solicitudAusentismo')\n          },\n          {\n            label: this.translateService.instant('solicitud'),\n            icon: 'glyphicons glyphicons-notes',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarSolicitar(this.novedadPipe.OPCION_MENU_SOLICITUD);\n            },\n            visible: this.obtenerControlPermisos('solicitudEmpleado')\n          },\n        ]\n      },\n      {\n        label: 'Por Autorizar',\n        icon: 'glyphicons glyphicons-sort-by-attributes-alt',\n        items: [\n          {\n            label: this.translateService.instant('novedad'),\n            icon: 'glyphicons glyphicons-user',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorAutorizar(this.novedadPipe.OPCION_MENU_NOVEDAD);\n            },\n            visible: this.obtenerControlPermisos('autorizarNovedad')\n          },\n          {\n            label: this.translateService.instant('ausentismo'),\n            icon: 'glyphicons glyphicons-list-numbered',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorAutorizar(this.novedadPipe.OPCION_MENU_AUSENTISMO);\n            },\n            visible: this.obtenerControlPermisos('autorizarAusentismo')\n          },\n          {\n            label: this.translateService.instant('solicitud'),\n            icon: 'glyphicons glyphicons-file-import',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorAutorizar(this.novedadPipe.OPCION_MENU_SOLICITUD);\n            },\n            visible: this.obtenerControlPermisos('autorizarSolicitud')\n          },\n          {\n            label: this.translateService.instant('ajustenomina'),\n            icon: 'glyphicons glyphicons-money',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorAutorizar(this.novedadPipe.OPCION_MENU_AJUSTE_NOMINA);\n            },\n            visible: this.obtenerControlPermisos('autorizarAjusteNom')\n          },\n        ]\n      },\n      {\n        label: 'Por Legalizar',\n        icon: 'glyphicons glyphicons-sort-by-attributes-alt',\n        items: [\n          {\n            label: this.translateService.instant('novedad'),\n            icon: 'glyphicons glyphicons-user',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorLegalizar(this.novedadPipe.OPCION_MENU_NOVEDAD);\n            },\n            visible: this.obtenerControlPermisos('legalizarNovedad')\n          },\n          {\n            label: this.translateService.instant('ausentismo'),\n            icon: 'glyphicons glyphicons-list-numbered',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorLegalizar(this.novedadPipe.OPCION_MENU_AUSENTISMO);\n            },\n            visible: this.obtenerControlPermisos('legalizarAusentismo')\n          },\n          {\n            label: this.translateService.instant('solicitud'),\n            icon: 'glyphicons glyphicons-file-import',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorLegalizar(this.novedadPipe.OPCION_MENU_SOLICITUD);\n            },\n            visible: this.obtenerControlPermisos('legalizarSolicitud')\n          },\n          {\n            label: this.translateService.instant('flexible'),\n            icon: 'glyphicons glyphicons-object-align-horizontal',\n            command:   (event) => {\n              this.opcionSeleccionada = event.item.label;\n               this.seleccionarPorLegalizar(this.novedadPipe.OPCION_MENU_FLEXIBLE);\n            },\n            visible: this.obtenerControlPermisos('legalizarFlexible')\n          },\n        ]\n      }\n    ]\n  }\n\n  private initNovedad() {\n\n\t\tif (this.isNovedades()) {\n\t\t\tif (this.isPorSolicitar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('solicitarnovedad');\n\t\t\t} else if (this.isPorAutorizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('novedadporautorizar');\n\t\t\t} else if (this.isPorLegalizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('novedadporlegalizar');\n\t\t\t}\n      this.idCantidadRegistros = 'Novedad.cantidadNovedades'\n      this.idTraerListadoNovedad = 'Novedad.traerNovedades'\n      this.listaTipoNovedad = []\n      this.generalService.queryForList(new GeneralModel('TipoNovedadDTO', 'TipoNovedad.obtenerTipoNovedadAplicarNovedadEmpleado', false, {modo: this.modoCompensacion})).subscribe(data => {\n        this.listaTipoNovedad = data;\n        /*data.forEach(element => {\n          if (element.llave.trim() != '.'){\n            this.listaTipoNovedad.push({codigo: element.llave.trim(), nombre: element.descripcion})\n          }\n        });*/\n      });\n\n    } else if (this.isAusentismos()) {\n\t\t\tif (this.isPorSolicitar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('solicitarausentismo');\n\t\t\t} else if (this.isPorLegalizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('ausentismoporlegalizar');\n\t\t\t} else if (this.isPorAutorizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('ausentismoporautorizar');\n\t\t\t}\n      this.idCantidadRegistros = 'Novedad.cantidadAusentismos'\n      this.idTraerListadoNovedad = 'Novedad.traerAusentismos'\n      this.listaTipoNovedad = this.ausentismoPipe.ORIGEN_AUSENTISMOS;\n\t\t\t//novedadUtils = new NovedadAusentismos(getDataSource(), novedadSvc, tipoNovedadSvc,\n\t\t\t//saraAplicacionBean.getEmpresaDTO().getModoCompensacion(), estado);\n\t\t} else if (this.isSolicitudes()) {\n      this.idCantidadRegistros = 'Novedad.cantidadSolicitudes'\n      this.idTraerListadoNovedad = 'Novedad.traerSolicitudes'\n      this.listaTipoNovedad = this.tipoNovedadPipe.TIPOS_SOLICITUDES;\n\t\t\tif (this.isPorLegalizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('solicitudporlegalizar');\n\t\t\t} else if (this.isPorAutorizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('solicitudporautorizar');\n\t\t\t} else if (this.isPorSolicitar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('solicitud');\n\t\t\t}\n\t\t  //novedadUtils = new NovedadSolicitudes(getDataSource(), novedadSvc, tipoNovedadSvc,\n\t\t\t//saraAplicacionBean.getEmpresaDTO().getModoCompensacion(), estado);\n\t\t} else if (this.isFlexible()) {\n\t\t\tif (this.isPorLegalizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('flexibleporlegalizar');\n\t\t\t}\n\t\t\t//novedadUtils = new NovedadFlexible(getDataSource(), novedadSvc, tipoNovedadSvc,\n\t\t\t//saraAplicacionBean.getEmpresaDTO().getModoCompensacion(), estado);\n\t\t} else if (this.isAjusteNomina()) {\n\t\t\tif (this.isPorAutorizar()) {\n\t\t\t\tthis.nombreTarea =  this.translateService.instant('ajustenominaporautorizar');\n        this.idCantidadRegistros = 'Novedad.cantidadAjusteNomina'\n        this.idTraerListadoNovedad = 'Novedad.traerAjusteNomina'\n\t\t\t}\n\t\t  //novedadUtils = new NovedadAjusteNomina(getDataSource(), novedadSvc, tipoNovedadSvc,\n\t\t\t//saraAplicacionBean.getEmpresaDTO().getModoCompensacion(), estado);\n\t\t}\n   // this.listaTipoNovedad = []\n\t}\n\n  public obtenerControlPermisos(control: string){\n    return this.controlFuncionService.getControlFuncionalidad('aplnov:'+control);\n  }\n\n  seleccionarSolicitar(parametro){\n    this.tarea = parametro\n    this.estado = this.novedadPipe.NOVEDAD_POR_SOLICITAR;\n    this.seleccionarTarea();\n    this.setMostrarListadoNovedades();\n  }\n\n  seleccionarPorAutorizar(parametro){\n    this.tarea = parametro\n    this.estado = this.novedadPipe.NOVEDAD_POR_AUTORIZAR;\n    this.seleccionarTarea();\n    this.setMostrarListadoNovedades();\n  }\n\n  seleccionarPorLegalizar(parametro){\n    this.tarea = parametro\n    this.estado = this.novedadPipe.NOVEDAD_POR_LEGALIZAR;\n    this.seleccionarTarea();\n    this.setMostrarListadoNovedades();\n  }\n\n  seleccionarTarea(){\n    this.initNovedad();\n    this.filtro = new NovedadAplicarDTO();\n    this.paginadorNovedades = []\n    this.filtroGeneral?.limpiarFiltros()\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  async solicitarNovedad(){\n    this.mostrarNovedades = true;\n    await this.sleep(1000)\n    await this.detalleNovedad.cargarBean(this.novedadPipe.ORIGEN_APLICAR_NOVEDAD, true, null, null, this.estado, \"aplicaNovedadProceso:\", true).then(a => {})\n  }\n\n  esNuevoNovedad(){\n    return !this.detalleNovedad?.mostrar;\n  }\n\n  sleep(ms: number): Promise<void> {\n    return new Promise((resolve) => setTimeout(resolve, ms));\n  }\n\n  solicitarAusentismo(){\n    this.seleccionAusentismo.inicializar(null).then(data =>{});\n  }\n\n  autorizacionMasiva(){\n    if (this.paginadorSeleccionado.length  == 0){\n      this.notificacionesService.showInfo('Seleccione al menos una novedad');\n      return;\n    }\n    this.run();\n  }\n\n  legalizacionMasiva(){\n    if (this.paginadorSeleccionado.length  == 0){\n      this.notificacionesService.showInfo('Seleccione al menos una novedad');\n      return;\n    }\n    this.run();\n  }\n\n  async cambiarDatosPago(){\n    this.mostrarPopupCambiarDatos = true;\n    await this.utilsService.sleep(500)\n  }\n\n  run(){\n    if (this.isPorAutorizar()) {\n      if (this.isNovedades()) {\n        this.autorizarNovedad();\n      } else if (this.isAusentismos()) {\n        this.autorizarAusentismo();\n      } else if (this.isAjusteNomina()) {\n        this.autorizarAjusteNomina();\n      } else if (this.isSolicitudes()) {\n        this.autorizarSolicitudesMasiva();\n      }\n    } else if (this.isPorLegalizar()) {\n      if (this.isNovedades()) {\n        this.legalizarNovedad();\n      } else if (this.isAusentismos()) {\n        this.legalizarAusentismo();\n      } else if (this.isAjusteNomina()) {\n      }\n    }\n  }\n\n  public formatearFechaPaginadorSeleccionado(){\n    this.paginadorSeleccionado.forEach( novedad => {\n      novedad.desde = novedad.desde ? new Date(novedad.desde) : null;\n      novedad.hasta = novedad.desde ? new Date(novedad.desde) : null;\n      novedad.datoFecha = novedad.desde ? new Date(novedad.desde) : null;\n      novedad.fechaPago = novedad.desde ? new Date(novedad.desde) : null;\n      novedad.fechaInicial = novedad.desde ? new Date(novedad.desde) : null;\n      novedad.fechaFinal = novedad.desde ? new Date(novedad.desde) : null;\n    })\n  }\n\n  autorizarNovedad(){\n    this.formatearFechaPaginadorSeleccionado();\n    this.novedadService.novedadAutorizarDirecta(this.paginadorSeleccionado).subscribe(data => {\n      this.notificacionesService.showInfo('Se ha realizado el proceso')\n      this.filtroGeneral.aplicarFiltros();\n    })\n  }\n\n  autorizarAusentismo(){\n    this.formatearFechaPaginadorSeleccionado();\n    this.novedadService.autorizarAusentismoDirecta(this.paginadorSeleccionado).subscribe(data => {\n      this.notificacionesService.showInfo('Se ha realizado el proceso')\n      this.filtroGeneral.aplicarFiltros();\n    })\n  }\n\n  autorizarSolicitudesMasiva(){\n    this.formatearFechaPaginadorSeleccionado();\n    this.novedadService.actualizarSolicitudesDirecta(this.paginadorSeleccionado).subscribe(data => {\n      this.notificacionesService.showInfo('Se ha realizado el proceso')\n      this.filtroGeneral.aplicarFiltros();\n    })\n  }\n\n  autorizarAjusteNomina(){\n    this.formatearFechaPaginadorSeleccionado();\n    this.novedadService.autorizarAjusteNominaDirecta(this.paginadorSeleccionado).subscribe(data => {\n      this.notificacionesService.showInfo('Se ha realizado el proceso')\n      this.filtroGeneral.aplicarFiltros();\n    })\n  }\n\n  legalizarNovedad(){\n    this.formatearFechaPaginadorSeleccionado();\n    this.novedadService.legalizarNovedadesMasivoNovedad(this.paginadorSeleccionado).subscribe(data => {\n      this.llaveProceso = data.llave;\n      this.notificacionesService.showInfo('Se ha realizado el proceso')\n      this.filtroGeneral.aplicarFiltros();\n    })\n  }\n\n  legalizarAusentismo(){\n    this.formatearFechaPaginadorSeleccionado();\n    this.novedadService.legalizarAusentismosMasivo(this.paginadorSeleccionado).subscribe(data => {\n      this.llaveProceso = data.llave;\n      this.notificacionesService.showInfo('Se ha realizado el proceso')\n      this.filtroGeneral.aplicarFiltros();\n    })\n  }\n\n  async verAction(event){\n    this.mostrarSolicitud = false;\n    var novedad: NovedadAplicarDTO = event;\n\t\tif (novedad.origen == this.tipoNovedadPipe.TERMINACION) {\n      this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, {empresa: this.empresa, contrato: novedad.contrato})).toPromise()\n      return;\n    }\n    this.empleado = await this.generalService.queryForObject(new GeneralModel('EmpleadoDTO', null, false, {empresa: this.empresa, contrato: novedad.contrato, soloActivos: 'L'})).toPromise()\n    if (this.empleado == null){\n      this.notificacionesService.showInfo('El empleado al cual esta asociado la novedad no esta activo')\n      return;\n    }\n    if (this.empleado.contrato == null){\n      this.notificacionesService.showInfo('El empleado al cual esta asociado la novedad no esta activo')\n      return;\n    }\n\n    var ausenciaNovedad = await this.ausentismoService.consultarAusenciaNovedad({llaveTabla: novedad.llave}).toPromise();    \n      if (novedad.origen == this.novedadPipe.VACACION){\n        this.mostrarVacaciones = true;\n        await this.sleep(1000)\n        this.vacacionAusencia.buscar(this.ausentismoPipe.ORIGEN_APLICAR_NOVEDAD_VACACION, this.ausentismoPipe.FORM_APLICAR_NOV_EMPLEADO_VACACION, ausenciaNovedad, this.empleado).then(data => {})\n        this.vacacionAusencia.estadoNovedad = this.estado\n      } else if (novedad.origen == this.novedadPipe.LICANCIA){\n        this.mostrarLicencias = true;\n        await this.sleep(1000)\n        this.licenciaAusencia.buscar(this.ausentismoPipe.ORIGEN_APLICAR_NOVEDAD_LICENCIA, this.ausentismoPipe.FORM_APLICAR_NOV_EMPLEADO_LICENCIA, ausenciaNovedad, this.empleado, false).then(data=>{})\n        this.licenciaAusencia.estadoNovedad = this.estado;\n      } else if (novedad.origen == this.novedadPipe.INCAPACIDAD){\n        this.mostrarIncapacidades = true;\n        await this.sleep(1000);\n        this.incapacidadAusencia.buscar(this.ausentismoPipe.ORIGEN_APLICAR_NOVEDAD_INCAPACIDAD, this.ausentismoPipe.FORM_APLICAR_NOV_EMPLEADO_INCAPACIDAD, ausenciaNovedad, this.empleado).then(data => {})\n        this.incapacidadAusencia.estadoNovedad = this.estado\n      } else if (novedad.origen == this.novedadPipe.NOVEDAD){\n        if (novedad.dependeNovedad != null && this.isPorSolicitar()){\n          this.mostrarNovedades = false;\n          this.mostrarNovedadesMasivas = true;\n          await this.utilsService.sleep(2000)\n          await this.novedadMasiva.init(event.llaveTipoNovedad, this.empleado, false, novedad.dependeNovedad, null, event.tareaOrigen);\n          return;\n        }\n        this.mostrarNovedades = true;\n        var nove = await this.generalService.queryForObject(new GeneralModel('NovedadDTO', null, false, {llaveTabla: novedad.llave})).toPromise();\n        nove = this.formatearDateNovedad(nove)\n        await this.detalleNovedad.cargarBean(this.novedadPipe.ORIGEN_APLICAR_NOVEDAD, false,  nove, this.empleado, this.estado,\n        this.novedadPipe.FORM_APLICAR_NOV_EMPLEADO, true);\n      } else if (novedad.origen == 'O'){\n        this.mostrarSolicitud = true;\n        await this.sleep(1000)\n        await this.solicitud.mostrarSolicitud(novedad.llave, this.empleado, '', this.novedadPipe.ORIGEN_APLICAR_NOV_SOLICITUD_EMPLEADO);\n      } else if (novedad.origen == this.novedadPipe.FLEXIBLE){\n\n      } else if (novedad.origen == this.novedadPipe.INTERRUPCION_VAC){\n        this.mostrarInterrupcionVac = true;\n        await this.sleep(1000)\n        await this.interrupcionVacacion.buscar(this.ausentismoPipe.ORIGEN_APLICAR_NOVEDAD_VACACION_INTERRUPCION,\n          this.ausentismoPipe.FORM_EMPLEADO_VACACION_INTERRUPCION, ausenciaNovedad, this.empleado)\n      }\n\n\n  }\n\n  async verMasivo(event){    \n    if (event?.ver === true){\n      this.mostrarNovedades = false;\n      this.mostrarNovedadesMasivas = true;\n      await this.utilsService.sleep(2000)\n      await this.novedadMasiva.init(event.llaveTipoNovedad, this.empleado, true, null, null, event.tareaOrigen);\n    }\n  }\n\n  regresarPopupEmpleadoFiltro(event){\n    this.contratoDesdePopup = true;\n    this.contrato = event.contrato;\n  }\n\n  formatearDateNovedad(novedad: NovedadModel){\n    novedad.dato = novedad.dato ? new Date(novedad.dato) : null;\n    novedad.hasta = novedad.hasta ? new Date(novedad.hasta) : null;\n    novedad.desde = novedad.desde ? new Date(novedad.desde) : null;\n    novedad.aprobado = novedad.aprobado ? new Date(novedad.aprobado) : null;\n    novedad.aplicado = novedad.aplicado ? new Date(novedad.aplicado) : null;\n    novedad.fechaInicial = novedad.fechaInicial ? new Date(novedad.fechaInicial) : null;\n    novedad.fechaFinal = novedad.fechaFinal ? new Date(novedad.fechaFinal) : null;\n    novedad.fechapago = novedad.fechapago ? new Date(novedad.fechapago) : null;\n    novedad.fechaCancelacion = novedad.fechaCancelacion ? new Date(novedad.fechaCancelacion) : null;\n    novedad.fechaDesembolso = novedad.fechaDesembolso ? new Date(novedad.fechaDesembolso) : null;\n    novedad.fechaIniciaInteres = novedad.fechaIniciaInteres ? new Date(novedad.fechaIniciaInteres) : null;\n    novedad.fechaPresupuestal = novedad.fechaPresupuestal ? new Date(novedad.fechaPresupuestal) : null;\n    novedad.actoFechaCambio = novedad.actoFechaCambio ? new Date(novedad.actoFechaCambio) : null;\n    novedad.horaInicial = novedad.horaInicial ? new Date(novedad.horaInicial) : null;\n    novedad.horaFinal = novedad.horaFinal ? new Date(novedad.horaFinal) : null;\n    return novedad\n  }\n\n  regresarSolicitud(){\n    this.mostrarSolicitud = false;\n    this.contrato = null;\n    this.paginadorSeleccionado = [];\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  regresarMantenimiento(){\n    this.mostrarNovedades = false;\n    this.contrato = null;\n    this.paginadorSeleccionado = [];\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  regresarMantenimientoMasivo(){\n    this.mostrarNovedadesMasivas = false;\n    this.contrato = null;\n    this.paginadorSeleccionado = [];\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  regresarVacacion(){\n    this.mostrarVacaciones = false;\n    this.contrato = null;\n    this.paginadorSeleccionado = [];\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  regresarInterrupcionVacacion(){\n    this.mostrarInterrupcionVac = false;\n    this.contrato = null;\n    this.paginadorSeleccionado = [];\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  regresarLicencia(){\n    this.mostrarLicencias = false;\n    this.contrato = null;\n    this.paginadorSeleccionado = [];\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  regresarIncapacidad(){\n    this.mostrarIncapacidades = false;\n    this.contrato = null;\n    this.paginadorSeleccionado = [];\n    this.cargarPaginador({first:0, rows:10})\n  }\n\n  regresarPopupSeleccionAusentismo(){\n  }\n\n  seleccionarPopupSeleccionAusentismo(event){\n    this.tipoAusenciaSeleccionada = event;\n    this.mostrarPopupEmpleado = true;\n  }\n\n  regresarPopupEmpleado(){\n    this.mostrarPopupEmpleado = false;\n  }\n\n  setEmpleadoPopup(event){\n    this.setAusentismo(event)\n  }\n\n  regresarPopupCambiarDatos(event) {\n    this.mostrarPopupCambiarDatos = false;\n  }\n\n  setAusentismo(empleado: EmpleadoModel) {\n    if (empleado == null) {\n      return;\n    }\n\n    var ausenciaNovedadDTO = new AusenciaNovedadModel();\n    ausenciaNovedadDTO.horasDisfrute = 0;\n\n    if (this.tipoAusenciaSeleccionada.origen == this.novedadPipe.VACACION){\n      this.mostrarVacaciones = true;\n      this.sleep(1000).then(data => {\n        this.vacacionAusencia.buscar(this.ausentismoPipe.ORIGEN_APLICAR_NOVEDAD_VACACION, this.ausentismoPipe.FORM_APLICAR_NOV_EMPLEADO_VACACION, ausenciaNovedadDTO, empleado).then(data => {})\n        this.vacacionAusencia.estadoNovedad = this.estado\n      })\n    } else if (this.tipoAusenciaSeleccionada.origen == this.novedadPipe.LICANCIA){\n      this.mostrarLicencias = true;\n      this.sleep(1000).then(data => {\n        ausenciaNovedadDTO.tipoAusencia = this.tipoAusenciaSeleccionada.llaveTabla;\n        ausenciaNovedadDTO.nombreTipoAusencia = this.tipoAusenciaSeleccionada.descripcion;\n        this.licenciaAusencia.buscar(this.ausentismoPipe.ORIGEN_APLICAR_NOVEDAD_LICENCIA, this.ausentismoPipe.FORM_APLICAR_NOV_EMPLEADO_LICENCIA, ausenciaNovedadDTO, empleado, false).then(data=>{})\n        this.licenciaAusencia.estadoNovedad = this.estado;\n      } )\n    } else if (this.tipoAusenciaSeleccionada.origen == this.novedadPipe.INCAPACIDAD){\n      this.mostrarIncapacidades = true;\n      this.sleep(1000).then(data => {\n        ausenciaNovedadDTO.tipoAusencia = this.tipoAusenciaSeleccionada.llaveTabla;\n        this.incapacidadAusencia.buscar(this.ausentismoPipe.ORIGEN_APLICAR_NOVEDAD_INCAPACIDAD, this.ausentismoPipe.FORM_APLICAR_NOV_EMPLEADO_INCAPACIDAD, ausenciaNovedadDTO, empleado).then(data => {})\n        this.incapacidadAusencia.estadoNovedad = this.estado\n      })\n    }\n  }\n\n  setMostrarListadoNovedades() {\n\t\tthis.mostrarNovedades = false;\n\t\tthis.mostrarSolicitud = false;\n\t\tthis.mostrarVacaciones = false;\n\t\tthis.mostrarLicencias = false;\n\t\tthis.mostrarIncapacidades = false;\n\t\tthis.mostrarInterrupcionVac = false;\n\t\tthis.mostrarNovedadesMasivas = false;\n\t}\n\n  isVerListadoNovedades() {\n\t\treturn !this.mostrarNovedades && !this.mostrarSolicitud && !this.mostrarVacaciones && !this.mostrarLicencias\n\t\t\t\t&& !this.mostrarIncapacidades && !this.mostrarInterrupcionVac && !this.mostrarNovedadesMasivas;\n\t}\n\n  public obtenerOrigenAusentismo(origen){\n    var data =  this.mapaOrigenesAusentismo.filter(data => data.codigo == origen)\n    if (data.length > 0) {\n      return data[0].nombre\n    }\n    return '';\n  }\n\n  public obtenerMapaEstado(origen){\n    return this.mapaestado.filter(data => data.codigo == origen)[0].nombre\n  }\n\n\tpublic isVerMenuPorLegalizar(): boolean {\n\t\treturn this.obtenerControlPermisos('menuPorLegalizar');\n\t}\n\n\tpublic isVerMenuPorAutorizar() {\n\t\treturn this.obtenerControlPermisos('menuPorAutorizar');\n\t}\n\n\tpublic isVerMenuSolicitar() {\n\t\treturn this.obtenerControlPermisos('menuSolicitar');\n\t}\n\n\tpublic isFiltroTodos() {\n\t\treturn this.obtenerControlPermisos('todos');\n\t}\n\n\tpublic isPorLegalizar() {\n\t\treturn this.novedadPipe.NOVEDAD_POR_LEGALIZAR == this.estado;\n\t}\n\n\tpublic isPorAutorizar() {\n\t\treturn this.novedadPipe.NOVEDAD_POR_AUTORIZAR == this.estado;\n\t}\n\n\tpublic isPorSolicitar() {\n\t\treturn this.novedadPipe.NOVEDAD_POR_SOLICITAR == this.estado;\n\t}\n\n  public isNovedades(): boolean {\n\t\treturn this.tarea != null && this.novedadPipe.OPCION_MENU_NOVEDAD == this.tarea;\n\t}\n\n  public isSolicitudes() {\n\t\treturn this.novedadPipe.OPCION_MENU_SOLICITUD == this.tarea;\n\t}\n\n\tpublic isFlexible() {\n\t\treturn this.novedadPipe.OPCION_MENU_FLEXIBLE == this.tarea;\n\t}\n\n\tpublic isAusentismos() {\n\t\treturn this.novedadPipe.OPCION_MENU_AUSENTISMO == this.tarea;\n\t}\n\n\tpublic isAjusteNomina() {\n\t\treturn this.novedadPipe.OPCION_MENU_AJUSTE_NOMINA == this.tarea;\n\t}\n\n  isVerLoginAutoriza() {\n\t\treturn this.isNovedades() && this.isPorLegalizar();\n\t}\n\n  isVerCheck(bean){\n    return (bean.origen == 'V'  && this.isPorLegalizar()) ? (bean.fechaPago != null || bean.formaPago != null) :true && bean.mensaje == null && bean.llaveActo == null\n  }\n\n  get autoServicio(): boolean {\n    return this.saraAplicacionService.isAutoServicioPortal();\n  }\n}\n","<p-confirmPopup [showTransitionOptions]=\"'10ms'\" [hideTransitionOptions]=\"'10ms'\"></p-confirmPopup>\n<h1 *ngIf=\"!autoServicio\">{{'aplicarnovedadempleado' | translate}}</h1>\n<div *ngIf=\"vistaVisualizar == null\">\n    <div class=\"Inputgroup-borde mt-0\">\n    \n            \n                <p-menubar [model]=\"items\" class=\"menu-accion-sara\"></p-menubar>\n                <div class=\"flex justify-content-between align-items-center mt-2\">\n                    <h2 class=\"mt-1\">{{nombreTarea}}</h2>\n                    <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\" *ngIf=\"mostrarSolicitud\"\n                      (click)=\"regresarSolicitud()\" label=\"{{'link_regresar' | translate}}\" >\n                    </button>\n                    <button pButton pRipple icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 ml-4\" *ngIf=\"mostrarNovedades && esNuevoNovedad()\"\n                      (click)=\"regresarMantenimiento()\" label=\"{{'link_regresar' | translate}}\" >\n                    </button>\n                </div>\n\n            <div *ngIf=\"isVerListadoNovedades()\">\n                <div class=\"flex justify-content-between align-items-center mb-3\">\n\n                    <app-filtro-general #filtroGeneral [filtros]=\"filters\" [datatable]=\"tablaGeneral\" *ngIf=\"filters.length > 0\">\n                        <ng-template let-form>\n                            <ng-container [formGroup]=\"form\">\n                                <div class=\"flex mt-3\">\n                                    <div class=\"mr-3 w-full\">\n                                        <app-input-helper-empleado-boton #documento (onSelected)=\"regresarPopupEmpleadoFiltro($event)\" [nombreInput]=\"'empleado' | translate\"\n                                            formControlName=\"contrato\"></app-input-helper-empleado-boton>\n                                    </div>\n                                    <div class=\"w-full\">\n                                        <span class=\"p-float-label\">\n                                            <p-inputNumber formControlName=\"contrato2\" autocomplete=\"off\" [(ngModel)]=\"contrato\"\n                                                [maxlength]=\"14\"></p-inputNumber>\n                                            <label>{{'contrato' | translate}}</label>\n                                        </span>\n                                    </div>\n                                </div>\n                               \n                                <div class=\"flex mt-3\">\n                                    <div class=\"{{!isPorLegalizar() ? 'mr-3 w-full' : 'w-full'}}\" *ngIf=\"isNovedades() || isSolicitudes() || isAusentismos()\" >\n                                        <span class=\"p-float-label\">\n                                            <p-dropdown class=\"w-full\" [options]=\"listaTipoNovedad\" [autoDisplayFirst]=\"false\"\n                                                formControlName=\"llaveTipoNovedad\" [showClear]=\"true\" optionLabel=\"descripcion\"\n                                                optionValue=\"llave\" *ngIf=\"isNovedades() || isSolicitudes()\"></p-dropdown>\n                                            <p-dropdown class=\"w-full\" [options]=\"listaTipoNovedad\" [autoDisplayFirst]=\"false\"\n                                                formControlName=\"tipoNovedad\" [showClear]=\"true\" optionLabel=\"nombre\"\n                                                optionValue=\"codigo\" *ngIf=\"isAusentismos()\"></p-dropdown>\n                                            <label>{{'tiponovedad' | translate}}</label>\n                                        </span>\n                                    </div>\n                                    <div class=\"mr-3 w-full\"  *ngIf=\"!(isNovedades() || isSolicitudes() || isAusentismos() ) && isPorAutorizar() || isPorLegalizar()\">\n                                        <span class=\"p-float-label\" >\n                                            <p-dropdown class=\"w-full\" [options]=\"listaTipoPeriodo\" [autoDisplayFirst]=\"false\"\n                                                formControlName=\"tipoPeriodo\" [showClear]=\"true\" optionLabel=\"descripcion\"\n                                                optionValue=\"tipo\"></p-dropdown>\n                                            <label>{{'tipoperiodo' | translate}}</label>\n                                        </span>\n                                    </div>\n                                    <div class=\"w-full\" *ngIf=\"!isPorLegalizar()\">\n                                        <span class=\"p-float-label\" *ngIf=\"!isPorLegalizar()\">\n                                            <p-dropdown class=\"w-full\" [options]=\"listaEstado\" [autoDisplayFirst]=\"false\"\n                                                formControlName=\"estado\" [showClear]=\"true\" optionLabel=\"nombre\"\n                                                optionValue=\"codigo\"></p-dropdown>\n                                            <label>{{'estado' | translate}}</label>\n                                        </span>\n                                    </div>\n                                </div>\n                                \n                                <div class=\"flex mt-3\">\n                                    <div class=\"mr-3 w-full\">\n                                            <p-checkbox class=\"ml-1\" formControlName=\"sinLiquidar\" [(ngModel)]=\"sinLiquidar\" [binary]=\"true\"> </p-checkbox>\n                                            <label class=\"ml-1\">{{'activo' | translate}}</label>\n                                    </div>\n                                    <div class=\"w-full\">\n                                        <span class=\"p-float-label\" *ngIf=\"isVerLoginAutoriza()\">\n                                            <input pInputText autofocus type=\"text\" formControlName=\"loginAutorizaNovedad\" autocomplete=\"off\" />\n                                            <label>{{'loginautoriza' | translate}}</label>\n                                        </span>\n                                    </div>\n                                </div>\n\n                                <div class=\"flex mt-3\">\n                                    <div class=\"mr-3 w-full\" *ngIf=\"(isNovedades() || isSolicitudes() || isAusentismos()) && isPorAutorizar() || isPorLegalizar() && !isFlexible()\">\n                                        <span class=\"p-float-label\" >\n                                            <p-dropdown class=\"w-full\" [options]=\"listaTipoPeriodo\" [autoDisplayFirst]=\"false\"\n                                                formControlName=\"tipoPeriodo\" [showClear]=\"true\" optionLabel=\"descripcion\"\n                                                optionValue=\"tipo\"></p-dropdown>\n                                            <label>{{'tipoperiodo' | translate}}</label>\n                                        </span>\n                                    </div>\n                                    <div class=\"w-full\" *ngIf=\"isNovedades() && (isPorAutorizar() || isPorLegalizar())\">\n                                        <span class=\"p-float-label\" >\n                                            <p-calendar formControlName=\"fechaInicial\" selectionMode=\"range\" dateFormat=\"dd/mm/yy\"\n                                            [readonlyInput]=\"true\" [showIcon]=\"true\" ></p-calendar>\n                                            <label>{{'rango' | translate}}</label>\n                                        </span>\n                                    </div>\n                                </div>\n                                \n                            </ng-container>\n                        </ng-template>\n                    </app-filtro-general>\n\n                    <div class=\"flex justify-content-end align-items-center\">\n                        <!-- BOTONES SOLICITUD -->\n                        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                            *ngIf=\"isPorSolicitar() && isNovedades()\"\n                            label=\"{{'link_nuevo' | translate}}\" (click)=\"solicitarNovedad()\">\n                        </button>\n                        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\"\n                            *ngIf=\"isPorSolicitar() && isAusentismos()\"\n                            label=\"{{'link_nuevo' | translate}}\" (click)=\"solicitarAusentismo()\">\n                        </button>\n    \n                        <!-- BOTONES AUTORIZAR -->\n                        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"glyphicons glyphicons-check\"\n                            *ngIf=\"obtenerControlPermisos('autorizar') && isPorAutorizar()\" \n                            label=\"{{'link_autorizar' | translate}}\" (click)=\"autorizacionMasiva()\">\n                        </button>\n    \n                        <!-- BOTONES LEGALIZAR -->\n                        <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"glyphicons glyphicons-check\"\n                            *ngIf=\"obtenerControlPermisos('legalizar') && isPorLegalizar() && (isNovedades() || isAusentismos())\"\n                            label=\"{{'link_legalizacion' | translate}}\" (click)=\"legalizacionMasiva()\">\n                        </button>\n                        <button pButton pRipple class=\" p-button-outlined font-semibold ml-2\" icon=\"glyphicons glyphicons-calculator\"\n                            *ngIf=\"obtenerControlPermisos('legalizar') && isPorLegalizar() && isAusentismos() || verBotonCambiar\"\n                            label=\"{{'datospago' | translate}}\" (click)=\"cambiarDatosPago()\">\n                        </button>\n                    </div>\n                </div>\n                <p-table #tablaGeneral responsiveLayout=\"scroll\" [value]=\"paginadorNovedades\" [rows]=\"paginator.rows\"\n                    [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\" [rowsPerPageOptions]=\"[10, 20, 50]\"\n                    [showCurrentPageReport]=\"true\" selectionMode=\"single\" [scrollable]=\"true\" [value]=\"paginadorNovedades\"\n                    [lazy]=\"true\" (onLazyLoad)=\"cargarPaginador($event)\" [(selection)]=\"paginadorSeleccionado\"\n                    currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\" >\n                    <ng-template pTemplate=\"header\">\n                        <tr class=\"fondoTablaPincipal\">\n                            <th  style=\"width: 2%\" [style.flex]=\"'0 1 auto'\" *ngIf=\"!isPorSolicitar()\">\n                                <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n                            </th>\n                            <th style=\"width: 5%\">{{'identificacion' | translate}}</th>   \n                            <th style=\"width: 5%\">{{'contrato' | translate}}</th>\n                            <th style=\"width: 10%\">{{'nombrefuncionario' | translate}}</th>\n                            <th style=\"width: 10%\" *ngIf=\"isAjusteNomina()\">{{'concepto' | translate}}</th>\n                            <th style=\"width: 10%\" *ngIf=\"isAjusteNomina()\">{{'numero' | translate}}</th>\n                            <th style=\"width: 10%\" *ngIf=\"!isAjusteNomina()\">{{'descripcion' | translate}}</th>\n                            <th style=\"width: 10%\" *ngIf=\"!isAjusteNomina() && !isFlexible() && !isAusentismos()\">{{'resumen' | translate}}</th>\n                            <th style=\"width: 10%\" *ngIf=\"isAusentismos()\">{{'origen' | translate}}</th>\n                            <th style=\"width: 10%\" *ngIf=\"isAusentismos()\">{{'fecha' | translate}}</th>\n                            <th style=\"width: 10%\">{{'estado' | translate}}</th>\n\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"body\" let-bean>\n                        <tr>\n                            <td style=\"width: 2%\" [style.flex]=\"'0 1 auto'\" *ngIf=\"!isPorSolicitar()\" pFrozenColumn>\n                                <p-tableCheckbox [value]=\"bean\" *ngIf=\"isVerCheck(bean)\"></p-tableCheckbox>\n                            </td>\n                            <td style=\"width: 5%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\"> \n                                <div *ngIf=\"bean.documento != null && bean.documento != '0'\">{{bean.documento}}</div>\n                                <div *ngIf=\"bean.documento == null && bean.documento == '0'\">{{bean.cedulaContratacion}}</div>\n                            </td>\n                            <td style=\"width: 5%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\"> \n                                <div>{{bean.contrato}}</div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\"> \n                                <div *ngIf=\"bean.documento != null && bean.documento != '0'\">{{bean.nombreFuncionario}}</div>\n                                <div *ngIf=\"bean.documento == null && bean.documento == '0'\">{{bean.nombreContratacion}}</div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\" *ngIf=\"isAjusteNomina()\"> \n                                <div>{{bean.codConcepto}} - {{bean.descripcionConcepto}}</div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\" *ngIf=\"isAjusteNomina()\"> \n                                <div>{{bean.numeroNovedad}}</div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\" *ngIf=\"!isAjusteNomina()\"> \n                                <div>\n                                    <label>{{bean.descripcion}}</label><br/>\n                                    <label *ngIf=\"bean.variable != null && isNovedades()\">({{bean.variable}}) {{bean.descripcionVariable}}</label>\n                                    <label *ngIf=\"bean.codigoVariableFecha != null && isNovedades()\">({{bean.codigoVariableFecha}}) {{bean.descripcionVariableFecha}}</label>\n                                    <label *ngIf=\"bean.concepto != null && isNovedades()\">({{bean.concepto}}) {{bean.descripcionConcepto}}</label>\n                                    <label *ngIf=\"bean.liquidacionPeriodica != null && isNovedades()\">({{bean.liquidacionPeriodica}}) {{bean.descripcionLiquidaPeriodica}}</label> \n                                </div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\" *ngIf=\"!isAjusteNomina() && !isFlexible() && !isAusentismos()\"> \n                                <div>\n                                    <label *ngIf=\"bean.origen == 'N' && bean.desde != null\">{{'desde' | translate}}: </label>\n                                    <label *ngIf=\"bean.origen == 'N' && bean.desde != null\">{{bean.desde | date : ('formatofecha' | translate)}} </label> \n                                    <br *ngIf=\"bean.origen == 'N' && bean.desde != null\"/>\n\n                                    <label *ngIf=\"bean.origen == 'N' && bean.hasta != null\">{{'hasta' | translate}}: </label>\n                                    <label *ngIf=\"bean.origen == 'N' && bean.hasta != null\">{{bean.hasta | date : ('formatofecha' | translate)}} </label> \n                                    <br  *ngIf=\"bean.origen == 'N' && bean.hasta != null\"/>\n\n                                    <label *ngIf=\"bean.origen == 'N' && bean.datoValor != null && bean.datoValor != 0\">{{'dato' | translate}} {{'valor' | translate}}: </label>\n                                    <label *ngIf=\"bean.origen == 'N' && bean.datoValor != null && bean.datoValor != 0\">{{bean.datoValor | number : '1.2-2'}} </label> \n                                    <br  *ngIf=\"bean.origen == 'N' && bean.datoValor != null && bean.datoValor != 0\"/>\n\n                                    <label *ngIf=\"bean.origen == 'N' && bean.datoFecha != null\">{{'dato' | translate}} {{'fecha' | translate}}: </label>\n                                    <label *ngIf=\"bean.origen == 'N' && bean.datoFecha != null\">{{bean.datoFecha | date : ('formatofecha' | translate)}} </label> \n                                    <br  *ngIf=\"bean.origen == 'N' && bean.datoFecha != null\"/>\n                                    \n                                    <label *ngIf=\"bean.origen == 'N' && bean.nombreZonaEconomica != null\">{{'zonaEconomica' | translate}}: </label>\n                                    <label *ngIf=\"bean.origen == 'N' && bean.nombreZonaEconomica != null\">{{bean.nombreZonaEconomica}} </label> \n                                    <br  *ngIf=\"bean.origen == 'N' && bean.nombreZonaEconomica != null\"/>\n\n                                    <label *ngIf=\"bean.origen == 'N' && bean.lineacosto != null && bean.lineacosto != '.'\">{{'lineacosto' | translate}}: </label>\n                                    <label *ngIf=\"bean.origen == 'N' && bean.lineacosto != null && bean.lineacosto != '.'\">{{bean.lineacosto}} </label> \n                                    <br  *ngIf=\"bean.origen == 'N' && bean.lineacosto != null && bean.lineacosto != '.'\"/>\n                                </div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\" *ngIf=\"isAusentismos()\"> \n                                <div>\n                                    <label>{{obtenerOrigenAusentismo(bean.origen)}}</label>\n                                </div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\" *ngIf=\"isAusentismos()\"> \n                                <div>\n                                    <label>{{'salida' | translate}}: </label>\n                                    <label>{{bean.desde | date : ('formatofecha' | translate)}} </label> \n                                    <br/>\n\n                                    <label>{{'regreso' | translate}}: </label>\n                                    <label>{{bean.datoFecha | date : ('formatofecha' | translate)}} </label> \n                                </div>\n                            </td>\n                            <td style=\"width: 10%\" [pSelectableRow]=\"bean\" (click)=\"verAction(bean)\"> \n                                <div>\n                                    <label *ngIf=\"!isSolicitudes()\">{{obtenerMapaEstado(bean.estado)}}</label>\n                                    <label *ngIf=\"isSolicitudes()\">{{bean.estado | novedadPipe : 'listaEstadoSolicitud'}}</label> \n                                    <br/>\n                                    <label *ngIf=\"isNovedades()\">{{bean.mensaje}} </label> \n                                </div>\n                            </td>\n                        </tr>\n                    </ng-template>\n                    <ng-template pTemplate=\"emptymessage\">\n        <tr>\n            <td colspan=\"100\"> \n                <app-template-tabla-vacia></app-template-tabla-vacia>\n            </td>\n        </tr>\n    </ng-template>                </p-table>\n\n            </div>\n            <!--<div *ngIf=\"!isVerListadoNovedades() && empleado != null\">\n                <app-cabecera-empleado [empleado]=\"empleado\"></app-cabecera-empleado>\n            </div>-->\n            \n            <div *ngIf=\"mostrarSolicitud\">\n                <app-detalle-solicitud #solicitud (regresar)=\"regresarSolicitud()\" ></app-detalle-solicitud>\n            </div>\n\n            <div *ngIf=\"mostrarNovedades\">\n                <app-mantenimiento-detalle-novedad #detalleNovedad (regresarMasivo)=\"verMasivo($event)\" (regresar)=\"regresarMantenimiento()\"></app-mantenimiento-detalle-novedad>\n            </div>\n\n            <div *ngIf=\"mostrarNovedadesMasivas\">\n                <app-registro-novedad-masiva-cont #novedadMasiva (regresar)=\"regresarMantenimientoMasivo()\"></app-registro-novedad-masiva-cont>\n            </div>\n\n            <div *ngIf=\"mostrarVacaciones\">\n                <app-vacacion-ausencia-programadas #vacacionAusencia (regresar)=\"regresarVacacion()\"></app-vacacion-ausencia-programadas>\n            </div>\n\n            <div *ngIf=\"mostrarLicencias\">\n                <app-licencia-ausencia-programadas #licenciaAusencia (regresar)=\"regresarLicencia()\"></app-licencia-ausencia-programadas>\n            </div>\n\n            <div *ngIf=\"mostrarIncapacidades\">\n                <app-incapacidad-ausencia-programadas #incapacidadAusencia (regresar)=\"regresarIncapacidad()\"></app-incapacidad-ausencia-programadas>\n            </div>\n\n            <div *ngIf=\"mostrarInterrupcionVac\">\n                <app-vacacion-ausencia-interrupcion #interrupcionVacacion (regresar)=\"regresarInterrupcionVacacion()\"></app-vacacion-ausencia-interrupcion>\n            </div>\n    </div>\n</div>\n\n<app-popup-seleccion-ausentismo #seleccionAusentismo (regresar)=\"regresarPopupSeleccionAusentismo()\" (seleccionar)=\"seleccionarPopupSeleccionAusentismo($event)\"></app-popup-seleccion-ausentismo>\n<app-input-helper-empleado-boton [showDialog]=\"mostrarPopupEmpleado\" [soloPopup]=\"true\" \n    (regresar)=\"regresarPopupEmpleado()\" (onSelected)=\"setEmpleadoPopup($event)\"></app-input-helper-empleado-boton>\n<app-popup-cambiar-datos-pago-vacacion [showDialog]=\"mostrarPopupCambiarDatos\" [filtroNovedadOrigen]=\"filtro\"\n    (regresar)=\"regresarPopupCambiarDatos($event)\" *ngIf=\"mostrarPopupCambiarDatos\"></app-popup-cambiar-datos-pago-vacacion>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["AusentismoPipe","i3.GeneralService","i4.GeneralPipe","i4.ParametrosCompensacion","i1.DatosBasicosEmpresaCons","i1.GeneralService","i2","i3","i6","EmpresaModel","i4.SaraAplicacionService","i5","i8","i9","i1","i3.BienestarPipe","i7","ParametrosGeneralModel","i1.CargarArchivosService","i3.HojaVidaPipe","i4.ArchivoAnexoHojaVidaService","i5.GeneralService","i11","i1.PipeJornadaPipe","i3.GeneralPipe","i4","i12","InstructorEntidadModel","i2.EntidadInstructorService","i2.SemestrePipe","i10","i4.SeguridadSocialPipe","i7.GeneralPipe","i4.PeriodoPipe","i2.GeneralService","i4.cargarmapasGlobal","i5.PuestoTrabajoService","i3.ListaConstantesPipe","i4.CargarArchivosService","i5.GeneralPipe","i6.SelectListEvaluacionesService","i13","i14","i2.UbicacionFisicaPipe","i5.SaraAplicacionService","i15","i3.ConceptoService","i6.GeneralPipe","i1.GeneralPipe","i4.HojaVidaPipe","i6.SolicitudPuntajeDocentePipe","i2.GeneralPipe","i4.HojaVidaService","i2.HojaVidaService","i3.CargarArchivosService","i4.GeneralService","i5.EncriptadoBasicoService","i6.HojaVidaService","i7.HojaVidaPipe","i10.PopupsDinamicosPipe","i11.ArchivoAnexoHojaVidaService","i12.GeneralPipe","i16","i17","i18","i19","i20","i21","i22","i24","i25","i26","i27","i1.EncriptadoBasicoService","i3.AusentismoPipe","i1.ActividadFuenteTareaService","i6.ActividadFuenteTareaService","i1.NovedadPipe","i4.WorkflowPipe","i6.AusentismoPipe","i8.AusentismoService","i10.SaraAplicacionService","i11.DatosBasicosEmpresaCons","EjecucionAutorizacionComponent_1","EjecucionEncuestaComponent_1","i1.AusentismoPipe","i4.NovedadPipe","i6.DatosBasicosEmpresaCons","i8.GeneralService","i9.WorkflowPipe","i10.AusentismoService","i3.GeneracionVacacionesService","i4.LiquidacionPerPipe","i5.PlanillaPipe","i6.SaraAplicacionService","i2.LiquidacionNominaService","i4.HistoricoPipe","i5.ComprobanteVacacionService","i5.ParametrosCompensacion","i6.ComprobanteVacacionService","i4.ComprobanteVacacionService","i5.CargarArchivosService","i6.EncriptadoBasicoService","i7.PeriodoPipe","i8.LiquidacionPerPipe","i10.ControlProcesoService","i11.EmpleadoService","i7.GeneralService","i9.ComprobanteVacacionService","i4.ListaConstantesPipe","i5.AusentismoPipe","i6.UbicacionFisicaPipe","i7.SaraAplicacionService","i2.AusentismoService","i4.SelectListCompensa","i5.NovedadPipe","i8.GeneralPipe","i3.NovedadPipe","i5.EmpleadoService","i2.cargarmapasGlobal","i6.CargarArchivosService","i7.ParametrosPipe","i9.EncriptadoBasicoService","i3.TipoNovedadCons","i5.ParametrosPipe","i9.DatoOrganizacionPipe","i10.ListaConstantesPipe","i11.PopupsDinamicosPipe","i14.EncriptadoBasicoService","i15.WorkflowPipe","i16.CargarArchivosService","i23","i28","i4.AusentismoService","i5.ListaConstantesPipe","i6.PopupsDinamicosPipe","i8.ParametrosPipe","i9.TipoNovedadPipe","i10.CargarArchivosService","i11.EncriptadoBasicoService","LicenciaAusenciaProgramadasComponent_1","PopupSeleccionAusentismoComponent_1","i2.CargarArchivosService","i3.EncriptadoBasicoService","i6.GeneralService","i12.ParametrosCompensacion","i13.HojaVidaService","i15.EmpleadoService","i1.ListaConstantesPipe","i8.HojaVidaPipe","i10.GeneralService","i2.TipoNovedadCons","i3.ParametroFormatoPipe","i1.SelectListCompensa","i3.SaraAplicacionService","i5.ActoCambioEmpleadoService","i6.ParametroFormatoPipe","i1.ActoCambioEmpleadoService","i4.ParametroFormatoPipe","i7.DatosBasicosEmpresaCons","i2.FormatoService","i3.ActoCambioEmpleadoService","i4.CampoFormularioPipe","i8.PlanillaService","i9.ParametrosPipe","i10.SelectListActos","i11.CargarArchivosService","i12.NovedadPipe","i13.PopupsDinamicosPipe","i14.ParametroFormatoPipe","i1.CampoFormularioPipe","i2.ParametroFormatoPipe","i4.PopupsDinamicosPipe","i7.EncriptadoBasicoService","i8.SelectListActos","i3.FormatoService","i4.ActoCambioEmpleadoService","i5.CampoFormularioPipe","i6.NovedadPipe","i9.PopupsDinamicosPipe","i10.EmpleadoService","i11.ParametroFormatoPipe","i1.ParametroFormatoPipe","i4.FormatoService","i5.SelectListActos","i6.EmpleadoService","i8.SelectListCompensa","i9.ActoAusenciaService","i12.CampoFormularioPipe","i13.ParametroFormatoPipe","i14.SaraAplicacionService","i15.ActoCambioEmpleadoService","i5.SolicitudService","i1.LiquidacionPerPipe","i4.ParametrosPipe","i5.HojaVidaPipe","i6.TipoNovedadService","i7.TipoNovedadCons","i10.NovedadPipe","i11.NovedadService","i12.WorkflowPipe","i13.DatoOrganizacionPipe","i15.CargarArchivosService","i16.EncriptadoBasicoService","i17.HojaVidaService","i18.ArchivoAnexoHojaVidaService","i19.ParametroFormatoPipe","i20.UsuarioFormatoService","i21.ListaConstantesPipe","i30","i31","InputHelperHojaVidaComponent_1","i32","i34","i2.NovedadPipe","i4.TipoNovedadPipe","i5.NovedadService","i6.LiquidacionPerPipe","i3.TipoNovedadPipe","i8.SolicitudService","i9.GeneralService","i11.ParametrosPipe","i12.PopupsDinamicosPipe","i13.CargarArchivosService","i14.WorkflowPipe","i15.SaraAplicacionService","FormularioNuevoComponent_1","i5.TipoNovedadService","i4.PublicacionPipe","i6.UnidadOrganizacionalService","i2.ListaConstantesPipe","i3.DimensionCargoService","i5.PerfilFuncionService","i6.CompetenciasService","i7.DatoOrganizacionPipe","i8.TablaCaracteristicaPipe","i3.FuncionPuestraService","i4.DatoOrganizacionPipe","i6.TablaCaracteristicaPipe","i2.TalentoPMService","i4.PerfilFuncionService","i1.TablaAdicionalService","i3.DatoOrganizacionPipe","i5.EventoPipe","i10.PerfilTablaService","i1.DimensionCargoService","i3.DescripcionCargoService","i4.DescripcionCargoPipe","i7.PerfilFuncionService","i8.PuestoTrabajoService","i9.datoOrganizacionService","i10.DatoOrganizacionPipe","i11.DescripcionCargoService","i12.DatosBasicosEmpresaCons","i13.GeneralPipe","i14.TablaCaracteristicaPipe","i16.SaraAplicacionService","i3.PuestoTrabajoService","i5.SelectListEvaluacionesService","i6.PerfilFuncionService","i3.cargarmapasGlobal","i4.TipoActividadPipe","i7.ProcesoSeleccionCandidatoFacadeService","i8.ProcesoSeleccionService","i9.CandidatoService","i10.DimensionGestionHojaService","i11.HojaVidaPipe","i12.CargarArchivosService","i13.EncriptadoBasicoService","i6.ConvocatoriaService","i7.ReclamacionProcesoService","i8.EtapaProcesoService","i9.SaraAplicacionService","i11.ListaConstantesPipe","i12.ParametrosEvaluacionPipe","i13.CandidatoService","i15.ProcesoSeleccionService","i16.ConvocatoriaPipe","i17.AutoServicioPipe","i5.InstructorEntidadPipe","i3.BienestarService","i5.BienestarPipe","i6.BienestarPipe","i7.EmpleadoService","i9.GeneralPipe","i11.BienestarLogicaService","i12.EventoPipe","i4.BienestarPipe","i5.requisitoService","i7.BienestarService","i8.EmpleadoService","i4.BeneficioService","i5.PopupsDinamicosPipe","i2.BeneficioService","i3.PopupsDinamicosPipe","i7.BeneficioService","i9.CargarArchivosService","i11.SaraAplicacionService","i12.FiltroEmpleadoService","i13.BeneficioTipoCostoService","i3.FiltroEmpleadoService","i6.BienestarService","i4.ParametrosGeneralesService","i4.ParametrosEvaluacionPipe","i1.EvaluacionEntPruService","i3.EvaluacionesPipe","i10.HojaVidaPipe","i13.cargarmapasGlobal","i1.EvaluacionesPipe","i3.EvaluacionEntPruService","i7.CargarArchivosService","i8.EncriptadoBasicoService","PopupSeccionHojaComponent_1","i5.EtapaProcesoService","i6.EvaluacionEntPruService","i7.ParametrosEvaluacionPipe","i8.SaraAplicacionService","i9.cargarmapasGlobal","i5.DatoOrganizacionPipe","i3.SelectListCompensa","i5.EntidadEmpleadoService","i6.DatoOrganizacionPipe","i7.HistoricoPipe","i8.ControlProcesoService","i9.LiquidacionNominaService","i2.ActoCambioEmpleadoService","i3.PersonaConsPipe","i6.SelectListActos","i7.PlanillaService","i8.HojaVidaService","i11.SelectListCompensa","i12.ActoIngresoService","i13.CampoFormularioPipe","i14.PopupsDinamicosPipe","i15.ParametroFormatoPipe","i17.DatosBasicosEmpresaCons","i18.ActoCambioEmpleadoService","i12.ParametroFormatoPipe","i1.GestionReportePipe","i8.ActoEspecialService","i11.CampoFormularioPipe","i13.ActoCambioEmpleadoService","i2.ActoMovPlantaService","i5.ParametroFormatoPipe","i1.ActoMovPlantaService","i3.CampoFormularioPipe","i6.FormatoService","i8.ActoMovPlantaService","i9.PuestoTrabajoService","i3.ActoMovPlantaService","i7.PuestoTrabajoService","i4.PlanillaPipe","i5.cargarmapasGlobal","i6.GeneracionVacacionesService","i8.ActoAusenciaService","i10.CampoFormularioPipe","i12.ActoVacacionesService","i13.ParametroFormatoWeb","i14.ActoCambioEmpleadoService","i4.DatosBasicosEmpresaCons","i7.FormatoService","i4.EmpleadoService","i6.NovedadService","i7.UsuarioFormatoService","i8.ParametroFormatoPipe","i3.EvaluacionService","i5.DocumentoSoporteService","i5.FaseGestionHojaPipe","i6.EvaluacionesService","i8.GestionHerramientasPipe","i10.EncriptadoBasicoService","i11.ParametrosEvaluacionPipe","i12.SelectListEvaluacionesService","i10.SelectListEvaluacionesService","i4.SelectListActos","i5.ViaticosPipe","i1.ViaticosPipe","i4.datoOrganizacionService","i8.ViaticosService","i9.SelectListViaticos","i1.SelectListEvaluacionesService","i2.SelectListEvaluacionesService","i1.cargarmapasGlobal","i5.SelectListTalento","i8.CargarArchivosService","i3.RequerimientoPersonalPipe","i4.PuestoRequerimientoService","i1.RequerimientoPersonalService","i1.motivoRequerimientoService","i4.PuestoTrabajoPipe","i5.SeccionCampoService","i6.ListadoHojaVidaService","i9.RequerimientoPersonalPmService","i10.RequerimientoPersonalPipe","i12.DatoOrganizacionPipe","i13.ConvocatoriaPipe","i16.DatosBasicosEmpresaCons","i17.RequerimientoPersonalService","i18.OrigenDatosPipe","i19.FormularioProcesoService","i20.CandidatoService","i21.PerfilFuncionService","i23.WorkflowPipe","i1.ParametrosPipe","i6.HojaVidaPipe","i7.ListaConstantesPipe","i4.AnexoNecesidadService","i5.CompensacionPipe","i9.ArchivoAnexoHojaVidaService","CompensacionPipe_1","i2.CompensacionPipe","i4.NecesidadCapacitacionFormularioService","i4.CompensacionPipe","i8.DatosBasicosEmpresaCons","i10.NecesidadCapacitacionFormularioService","i13.SaraAplicacionService","i14.EmpleadoService","i16.GeneralPipe","i18.cargarmapasGlobal","i19.HojaVidaService","i20.OrigenDatosPipe","i21.WorkflowPipe","i4.RequerimientoPersonalService","i7.ContratacionBpmService","i10.ActividadFuenteTareaService","i6.ParametrosPipe","i7.ContratacionPipe","i8.WorkflowPipe","i9.ContratacionBpmService","i3.ParametrosPipe","i9.ActoAdministrativoService","i10.ContratacionPipe","i12.EncriptadoBasicoService","i13.HojaVidaPipe","i4.InstructorEntidadPipe","i1.HojaVidaPipe","i2.SaraAplicacionService","i3.SolicitudPuntajeDocentePipe","i4.SolicitudPuntoService","i9.ActasComiteService","i3.ActasComitePipe","i1.SolicitudPuntajeDocentePipe","i2.SelectListCompensa","i2.SolicitudPuntajeDocentePipe","i2.SolicitudPuntoService","i1.ActasComitePipe","i7.SolicitudPuntoService","i9.HojaVidaService","i11.ActasComiteService","i15.ArchivoAnexoHojaVidaService","i17.EncriptadoBasicoService","i4.SeccionCampoService","i3.WorkflowPipe","i6.SelectListCompensa","i8.SolicitudPuntoService","i9.SolicitudPuntajeDocentePipe","i2.SeparadorArchivoPlanoPipe","i5.TipoActividadService","i6.ProcesoSeleccionService","i4.EvaluacionesPipe","i6.WorkflowPipe","i5.BeneficioService","i7.BienestarPipe","i9.ProcesoSeleccionService","i7.EtapaProcesoService","i10.ProcesoSeleccionService","i11.HojaVidaService","i1.WorkflowPipe","i2.ActividadFuenteTareaService","i5.ProcesoSeleccionService","i4.ReclamacionProcesoService","i7.ProcesoSeleccionService","i7.TipoActividadPipe","i8.ListaConstantesPipe","i4.MedioProcesoSeleccionService","i3.RequerimientoPersonalService","i4.RequerimientoPersonalPipe","i8.cargarmapasGlobal","i9.TipoActividadPipe","i10.ProcesoSeleccionCandidatoFacadeService","i4.requisitoService","i6.RequisitoConsPipe","GeneralPipe_1","i6.EtapaProcesoService","i7.cargarmapasGlobal","i6.cargarmapasGlobal","i12.RequisitoConsPipe","i14.PublicacionPipe","i15.OrigenDatosPipe","i16.ParametrosEvaluacionPipe","i7.WorkflowPipe","i2.PeriodoEvaluacionPipe","i3.ParametrosEvaluacionPipe","i4.PlanillaGestionService","i5.datoOrganizacionService","InputHelperUnidadComponent_1","InputHelperCargoComponent_1","i3.SeparadorArchivoPlanoPipe","i4.CargarArchivoRespuestaService","i6.ConstantesService","i8.CaracteristicaPipe","i10.GeneralPipe","i11.datoOrganizacionService","i1.FaseGestionHojaPipe","i8.DocumentoSoporteService","i6.MetaEvaluacionService","i3.FaseGestionHojaPipe","i7.PeriodoEvaluacionPipe","i9.ParametrosEvaluacionPipe","i3.PeriodoEvaluacionService","i6.EvaluacionHojaService","i9.PeriodoEvaluacionService","i10.EvaluacionService","i11.GeneralPipe","i4.SelectListEvaluacionesService","i5.PeriodoEvaluacionPipe","i6.ParametrosEvaluacionPipe","i7.PeriodoEvaluacionService","i8.RequisitoConsPipe","i4.CargarProgramacionEvaluacionService","i1.ParametrosEvaluacionPipe","i6.FaseGestionHojaPipe","i7.EvaluacionHojaService","i8.SelectListEvaluacionesService","i4.PeriodoEvaluacionPipe","PeriodoEvaluacionPipe_1","i1.EmpleadoService","i6.ReservaSalonesService","i4.EventoPipe","i5.OrigenDatosPipe","i7.PlanInversionService","i8.EventoService","i8.EventoPipe","i9.AsistenteEventoService","i10.DiaEventoService","i11.PuestoTrabajoService","i1.BienestarPipe","i3.EventoPipe","i6.AsistenteEventoService","EventoPipe_1","i7.DiaEventoService","i8.AsistenteEventoService","i10.PuestoTrabajoService","i1.SaraAplicacionService","i5.PublicacionWebCursoService","i1.RequerimientoPersonalPipe","i2.SelectListTalento","i6.PuestoTrabajoService","i3.SelectListEvaluacionesService","i3.motivoRequerimientoService","i4.UnidadOrganizacionalService","InputHelperTipoComponent_1","i2.jornadaConsPipe","i5.PersonaConsPipe","i6.PipeJornadaPipe","i7.ControlTiemposService","i1.PersonaConsPipe","i5.liquidacionTiempoPipe","i3.liquidacionTiempoPipe","i4.liquidacionTiempoPipe","i5.jornadaConsPipe","i3.EventoJornadaConsPipe","i5.EventoJornadaConsPipe","i6.jornadaConsPipe","i4.EventoJornadaConsPipe","i6.ControlTiemposService","i3.jornadaConsPipe","i8.jornadaConsPipe","i10.EventoJornadaConsPipe","FuncionPuestraComponent_1","ListadoNovedadEmpleadoComponent_1","i4.PersonaConsPipe","i6.DescripcionCargoPipe","i7.UnidadOrganizacionalService","i9.SelectListEvaluacionesService","i12.SaraAplicacionService","i13.SelectListCompensa","i14.CargarArchivosService","i4.PuestoTrabajoService","i5.PuestoRequerimientoService","i2.AusentismoPipe","i9.NovedadPipe","i2.ViaticosPipe","i6.SelectListViaticos","i2.CumpleaniosService","i6.AusentismoService","AusentismoPipe_1","i4.AusentismoPipe","i5.AusentismoService","i8.NovedadService"],"mappings":"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AAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9B,QAAA,EAAE,MAAM,EAAE,IAA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"}